js.mk: Add JS_MINIFY_FILTER_IN

Not so great. Doesn't remove console.log(innerfunc()). Another approach would
be to use a global debug() function and set debug to null in an included
javascript file

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2018-09-03 12:29:00 +00:00
commit f17ce9570c
4 changed files with 41 additions and 15 deletions

View file

@ -8,6 +8,7 @@
PROJECT_DIRNAME ?= $(PROJECT) PROJECT_DIRNAME ?= $(PROJECT)
PROJECT_DIRPATH ?= $(shell readlink -f $(TOPDIR)) PROJECT_DIRPATH ?= $(shell readlink -f $(TOPDIR))
PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME)-$(VERSION) PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME)-$(VERSION)
ROOT_PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test
VAR_PREFIX ?= $(PREFIX)/var VAR_PREFIX ?= $(PREFIX)/var
DOC_PREFIX ?= $(PREFIX)/doc/$(PROJECT) DOC_PREFIX ?= $(PREFIX)/doc/$(PROJECT)
EXE_PREFIX ?= $(PREFIX) EXE_PREFIX ?= $(PREFIX)

View file

@ -8,6 +8,7 @@
PROJECT_DIRNAME ?= $(PROJECT) PROJECT_DIRNAME ?= $(PROJECT)
PROJECT_DIRPATH ?= /opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME) PROJECT_DIRPATH ?= /opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME)
PREFIX ?= $(ENV_PREFIX)$(PROJECT_DIRPATH) PREFIX ?= $(ENV_PREFIX)$(PROJECT_DIRPATH)
ROOT_PREFIX ?= $(ENV_PREFIX)
VAR_PREFIX ?= $(ENV_PREFIX)/var/$(FLAVOUR_PATH_PREFIX)lib VAR_PREFIX ?= $(ENV_PREFIX)/var/$(FLAVOUR_PATH_PREFIX)lib
DOC_PREFIX ?= $(ENV_PREFIX)/usr/share/doc/packages/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME) DOC_PREFIX ?= $(ENV_PREFIX)/usr/share/doc/packages/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME)
EXE_PREFIX ?= $(PREFIX) EXE_PREFIX ?= $(PREFIX)

View file

@ -1,15 +1,24 @@
SOURCE_FILES ?= $(filter-out CVS .git Makefile %.done, $(wildcard *)) SOURCE_FILES ?= $(filter-out CVS .git Makefile %.done, $(wildcard *))
TARGET_DIR ?= $(PREFIX)/share TARGET_DIR ?= $(PREFIX)/share
TARGET_MODE ?= 440
TARGET_OWNER ?= root
TARGET_GROUP ?= root
TARGET_DIR_MODE ?= 770
TARGET_DIR_OWNER ?= root
TARGET_DIR_GROUP ?= root
SOURCE_BASE ?= . SOURCE_BASE ?= .
RELPATHS = $(foreach f,$(SOURCE_FILES),$(shell realpath -s --relative-to $(SOURCE_BASE) $f))
INSTALLED_FILES = $(addprefix $(TARGET_DIR)/,$(RELPATHS))
include $(MODDIR)/make/defs.mk include $(MODDIR)/make/defs.mk
ifeq ($(DEVELOPMENT),true)
TARGET_OWNER ?= $(shell id -un)
TARGET_GROUP ?= $(shell id -gn)
else
TARGET_OWNER ?= root
TARGET_GROUP ?= root
endif
TARGET_DIR_OWNER ?= $(TARGET_OWNER)
TARGET_DIR_GROUP ?= $(TARGET_GROUP)
TARGET_MODE ?= 440
TARGET_DIR_MODE ?= 770
all: all:
install: install.done install: install.done
clean: done.clean clean: done.clean
@ -18,9 +27,22 @@ distclean:
done.clean: done.clean:
$(RM) -f *.done $(RM) -f *.done
install.done: $(TARGET_DIR)/%: $(SOURCE_BASE)/%
@if [ -d $< ]; then \
echo $(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $@ ;\
$(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $@ ;\
else \
echo $(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $< $@ ;\
$(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $< $@ ;\
fi
install.done: $(INSTALLED_FILES)
touch $@
# this used to work fine until an enormous $(SOURCE_FILES) was encountered
install-old.done:
for f in $(SOURCE_FILES); do \ for f in $(SOURCE_FILES); do \
relpath=`realpath $$f --relative-to $(SOURCE_BASE)` ;\ relpath=`realpath -s --relative-to $(SOURCE_BASE) $$f` ;\
if [ -d $$f ]; then \ if [ -d $$f ]; then \
$(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $(TARGET_DIR)/$$relpath ;\ $(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $(TARGET_DIR)/$$relpath ;\
else \ else \

View file

@ -1,8 +1,9 @@
JAVA ?= /usr/bin/java JAVA ?= /usr/bin/java
JS_MINIFY_EXE ?= $(JAVA) -jar /usr/share/java/closure-compiler.jar JS_MINIFY_EXE ?= $(JAVA) -jar /usr/share/java/closure-compiler.jar --compilation_level ADVANCED --strict_mode_input
JS_LOCAL ?= $(wildcard *.js) JS_MINIFY_FILTER_IN ?= sed 's/console\.[a-z]\+([^)]\+) *;//g'
JS_SRC ?= $(filter-out %.min.js,$(JS_LOCAL)) JS_LOCAL ?= $(wildcard *.js)
JS_GENERATED ?= $(patsubst %.js,%.min.js,$(JS_SRC)) JS_SRC ?= $(filter-out %.min.js,$(JS_LOCAL))
JS_GENERATED ?= $(patsubst %.js,%.min.js,$(JS_SRC))
# This is not nice. It requires install-files to be included from elsewhere, # 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, # which is not obvious. OTOH, if it isn't, SOURCE_FILES doesn't do any harm,
@ -13,8 +14,9 @@ all: $(JS_GENERATED)
clean: minify.clean clean: minify.clean
%.min.js: %.js %.min.js: %.js
$(JS_MINIFY_EXE) $< > $@.tmp cat $< | $(JS_MINIFY_FILTER_IN) > $@.filtered
$(JS_MINIFY_EXE) $@.filtered > $@.tmp
mv $@.tmp $@ mv $@.tmp $@
minify.clean: minify.clean:
rm -f $(JS_GENERATED) *.tmp rm -f $(JS_GENERATED) *.tmp *.filtered