From f17ce9570c4147cbf570e1ea9eecbaccba178de7 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 3 Sep 2018 12:29:00 +0000 Subject: [PATCH] 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 --- make/defs-dev.mk | 1 + make/defs-dist.mk | 1 + make/install-files.mk | 38 ++++++++++++++++++++++++++++++-------- make/js.mk | 16 +++++++++------- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/make/defs-dev.mk b/make/defs-dev.mk index 848ccdf5..f1bfd869 100644 --- a/make/defs-dev.mk +++ b/make/defs-dev.mk @@ -8,6 +8,7 @@ PROJECT_DIRNAME ?= $(PROJECT) PROJECT_DIRPATH ?= $(shell readlink -f $(TOPDIR)) PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME)-$(VERSION) +ROOT_PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test VAR_PREFIX ?= $(PREFIX)/var DOC_PREFIX ?= $(PREFIX)/doc/$(PROJECT) EXE_PREFIX ?= $(PREFIX) diff --git a/make/defs-dist.mk b/make/defs-dist.mk index 030bf6a0..875d44d3 100644 --- a/make/defs-dist.mk +++ b/make/defs-dist.mk @@ -8,6 +8,7 @@ PROJECT_DIRNAME ?= $(PROJECT) PROJECT_DIRPATH ?= /opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME) PREFIX ?= $(ENV_PREFIX)$(PROJECT_DIRPATH) +ROOT_PREFIX ?= $(ENV_PREFIX) VAR_PREFIX ?= $(ENV_PREFIX)/var/$(FLAVOUR_PATH_PREFIX)lib DOC_PREFIX ?= $(ENV_PREFIX)/usr/share/doc/packages/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME) EXE_PREFIX ?= $(PREFIX) diff --git a/make/install-files.mk b/make/install-files.mk index fb86cbd9..44a1b923 100644 --- a/make/install-files.mk +++ b/make/install-files.mk @@ -1,15 +1,24 @@ SOURCE_FILES ?= $(filter-out CVS .git Makefile %.done, $(wildcard *)) 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 ?= . +RELPATHS = $(foreach f,$(SOURCE_FILES),$(shell realpath -s --relative-to $(SOURCE_BASE) $f)) +INSTALLED_FILES = $(addprefix $(TARGET_DIR)/,$(RELPATHS)) 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: install: install.done clean: done.clean @@ -18,9 +27,22 @@ distclean: done.clean: $(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 \ - relpath=`realpath $$f --relative-to $(SOURCE_BASE)` ;\ + relpath=`realpath -s --relative-to $(SOURCE_BASE) $$f` ;\ if [ -d $$f ]; then \ $(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $(TARGET_DIR)/$$relpath ;\ else \ diff --git a/make/js.mk b/make/js.mk index 843617e6..a80f7f8f 100644 --- a/make/js.mk +++ b/make/js.mk @@ -1,8 +1,9 @@ -JAVA ?= /usr/bin/java -JS_MINIFY_EXE ?= $(JAVA) -jar /usr/share/java/closure-compiler.jar -JS_LOCAL ?= $(wildcard *.js) -JS_SRC ?= $(filter-out %.min.js,$(JS_LOCAL)) -JS_GENERATED ?= $(patsubst %.js,%.min.js,$(JS_SRC)) +JAVA ?= /usr/bin/java +JS_MINIFY_EXE ?= $(JAVA) -jar /usr/share/java/closure-compiler.jar --compilation_level ADVANCED --strict_mode_input +JS_MINIFY_FILTER_IN ?= sed 's/console\.[a-z]\+([^)]\+) *;//g' +JS_LOCAL ?= $(wildcard *.js) +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, # 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 %.min.js: %.js - $(JS_MINIFY_EXE) $< > $@.tmp + cat $< | $(JS_MINIFY_FILTER_IN) > $@.filtered + $(JS_MINIFY_EXE) $@.filtered > $@.tmp mv $@.tmp $@ minify.clean: - rm -f $(JS_GENERATED) *.tmp + rm -f $(JS_GENERATED) *.tmp *.filtered