From 4e87b0a8b24cb9a46d1fbdef2101514c1e31e72c Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Tue, 20 Feb 2018 02:37:54 +0100 Subject: [PATCH] Add a Makefile --- Makefile | 66 ++++++++++++++++++++++++++++++++++++++++ layout/js/breadcrumbs.js | 13 ++++++++ layout/js/list.js | 13 ++++++++ 3 files changed, 92 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fa13e7b --- /dev/null +++ b/Makefile @@ -0,0 +1,66 @@ +# This file is part of nginx-fancyindex-flat-theme. +# +# nginx-fancyindex-flat-theme is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# nginx-fancyindex-flat-theme is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program. If not, see +# +# http://www.gnu.org/licenses/ +# +# +# Copyright (C) +# 2018 Alexander Haase + +all: build/theme.css \ + build/js/list.js \ + build/js/breadcrumbs.js \ + build/header.html \ + build/footer.html + +# Generate the build directory if it doesn't exist yet. +build: + mkdir -p build build/js + +# The following definitions will be used to generate CSS files from the +# corresponding LESS files. +# +# NOTE: Developers need to install lessc by the platform-dependent package +# manager or npm. +LESSC ?= lessc +LESSC_FLAGS ?= --clean-css +build/%.css: layout/%.less build + $(LESSC) -M $< $@ > layout/$*.d + $(LESSC) $(LESSC_FLAGS) ${} $< $@ + +# Include the generated dependency list of the main less file to regenerate the +# CSS file, if one of its imported files is touched. +-include layout/theme.d + +# The following definitions will be used to minify the JavaScript files of the +# theme. +# +# NOTE: Developers need to install uglifyjs by the platform-dependent package +# manager or npm. +UGLIFYJS ?= uglifyjs +UGLIFYJS_FLAGS = --compress --mangle --comments '/^!/' +build/js/%.js: layout/js/%.js build + $(UGLIFYJS) $(UGLIFYJS_FLAGS) ${} -- $< > $@ + +# Most of the files just need to be copied into the build directory. This rule +# will match all files, that are not matched by any other (specialized) rule +# above. +build/%: layout/% build + cp $< $@ + +# Clean the build directory. +.PHONY: clean +clean: + rm -rf build layout/*.d diff --git a/layout/js/breadcrumbs.js b/layout/js/breadcrumbs.js index a83a612..91e67b7 100644 --- a/layout/js/breadcrumbs.js +++ b/layout/js/breadcrumbs.js @@ -18,6 +18,19 @@ * * Copyright (C) * 2018 Alexander Haase + * + * + * NOTE: The following comment will be used as short version of the copyright + * notice above to be included in compressed files, too. + */ + +/*! + * + * This file is part of the nginx-fancyindex-flat-theme, licensed under the GNU + * General Public License. See the LICENSE file for details. + * + * Copyright (C) + * 2018 Alexander Haase */ /** diff --git a/layout/js/list.js b/layout/js/list.js index 215b23b..c782a26 100644 --- a/layout/js/list.js +++ b/layout/js/list.js @@ -18,6 +18,19 @@ * * Copyright (C) * 2018 Alexander Haase + * + * + * NOTE: The following comment will be used as short version of the copyright + * notice above to be included in compressed files, too. + */ + +/*! + * + * This file is part of the nginx-fancyindex-flat-theme, licensed under the GNU + * General Public License. See the LICENSE file for details. + * + * Copyright (C) + * 2018 Alexander Haase */ /**