2019-03-03 18:12:28 +00:00
|
|
|
JAVA ?= /usr/bin/java
|
|
|
|
|
JS_MINIFY_FILTER_IN ?= sed 's/console\.[a-z]\+([^)]\+) *;//g'
|
|
|
|
|
JS_SRC ?= $(filter-out %.min.js,$(wildcard *.js))
|
|
|
|
|
JS_GENERATED ?= $(patsubst %.js,%.min.js,$(JS_SRC))
|
2019-03-06 12:38:20 +00:00
|
|
|
JS_EXTRA_EXTERNS ?=
|
2019-03-03 18:12:28 +00:00
|
|
|
JS_CC_BUILD_ROOT ?= $(PROJECTS_DIR)/closure-compiler/contrib/closure-compiler/install-root
|
|
|
|
|
JS_EXTERNS_DIRS ?= $(firstword $(wildcard $(JS_CC_BUILD_ROOT)/$(realpath $(PROJECTS_DIR))/closure-compiler/share/externs /opt/closure-compiler/share/externs))
|
|
|
|
|
JS_EXTERNS ?= $(sort $(JS_EXTRA_EXTERNS) jquery-3.3.js)
|
|
|
|
|
JS_EXTERN_PATHS ?= $(wildcard $(foreach d,$(JS_EXTERNS_DIRS),$(addprefix $d/,$(JS_EXTERNS))))
|
|
|
|
|
JS_MINIFY_OPTS ?= $(addprefix --externs ,$(JS_EXTERN_PATHS)) --compilation_level ADVANCED --strict_mode_input
|
|
|
|
|
JS_MINIFY_EXE ?= $(JAVA) -jar $(firstword $(wildcard \
|
2018-12-12 20:33:38 +00:00
|
|
|
$(JS_CC_BUILD_ROOT)/usr/share/java/closure-compiler.jar \
|
2018-12-12 16:53:20 +00:00
|
|
|
/usr/share/java/closure-compiler.jar \
|
|
|
|
|
))
|
2019-03-03 18:12:28 +00:00
|
|
|
JS_MINIFY ?= $(JS_MINIFY_EXE) $(JS_MINIFY_OPTS)
|
2018-09-03 11:52:45 +00:00
|
|
|
|
|
|
|
|
# This is not nice. It requires install-files to be included from elsewhere,
|
|
|
|
|
# which is not obvious. OTOH, if it isn't, SOURCE_FILES doesn't do any harm,
|
|
|
|
|
# either.
|
2019-03-03 18:12:28 +00:00
|
|
|
SOURCE_FILES += $(JS_GENERATED)
|
2018-09-03 11:52:45 +00:00
|
|
|
|
|
|
|
|
all: $(JS_GENERATED)
|
|
|
|
|
clean: minify.clean
|
|
|
|
|
|
|
|
|
|
%.min.js: %.js
|
2018-09-03 12:29:00 +00:00
|
|
|
cat $< | $(JS_MINIFY_FILTER_IN) > $@.filtered
|
2018-09-04 13:27:19 +00:00
|
|
|
$(JS_MINIFY) $@.filtered > $@.tmp
|
2018-09-03 11:52:45 +00:00
|
|
|
mv $@.tmp $@
|
|
|
|
|
|
|
|
|
|
minify.clean:
|
2018-09-03 12:29:00 +00:00
|
|
|
rm -f $(JS_GENERATED) *.tmp *.filtered
|