mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
30 lines
1.3 KiB
Makefile
30 lines
1.3 KiB
Makefile
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))
|
|
JS_EXTRA_EXTERNS ?=
|
|
JS_EXTERNS_DIRS ?= /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 \
|
|
$(CVS_PROJ_DIR)/closure-compiler/contrib/closure-compiler/install-root/usr/share/java/closure-compiler.jar \
|
|
/usr/share/java/closure-compiler.jar \
|
|
))
|
|
JS_MINIFY ?= $(JS_MINIFY_EXE) $(JS_MINIFY_OPTS)
|
|
|
|
# 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.
|
|
SOURCE_FILES += $(JS_GENERATED)
|
|
|
|
all: $(JS_GENERATED)
|
|
clean: minify.clean
|
|
|
|
%.min.js: %.js
|
|
cat $< | $(JS_MINIFY_FILTER_IN) > $@.filtered
|
|
$(JS_MINIFY) $@.filtered > $@.tmp
|
|
mv $@.tmp $@
|
|
|
|
minify.clean:
|
|
rm -f $(JS_GENERATED) *.tmp *.filtered
|