]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blobdiff - common.mk
Change license to MIT
[pes-rpp/rpp-lib.git] / common.mk
index ef3818d274be7521e9e1fa353e917cdadc71712b..272b1fd98a132f7d9971add620dcfac1a6eeab0f 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -1,5 +1,7 @@
 # Common GNU Make definitions useful for multiple Makefiles
 
+common_mk_dir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
+
 ECLIPSE=$(foreach file,\
                   /opt/ti/ccsv5/eclipse/eclipse \
                   C:/ti/ccsv5/eclipse/eclipsec.exe,\
@@ -29,9 +31,9 @@ cp=cp $1 $2
 endif
 
 # `make release` can ignore files without certain git attribute
-RELEASE_IGNORE_FILES = $(if $(RELEASE_ATTR),\
-       $(shell git ls-files | git check-attr --stdin $(RELEASE_ATTR)|awk -F: '!/$(RELEASE_ATTR): set$$/ {print $$1}'),\
-       $(if $(filter RELEASE_ATTR,$(.VARIABLES)),,$(error Please specify RELEASE_ATTR variable (it can be empty))))
+RELEASE_IGNORE_FILES_CMD = $(strip $(if $(RELEASE_ATTR),\
+       $(common_mk_dir)/etc/git-ls-files-attr --not $(RELEASE_ATTR),\
+       $(if $(filter RELEASE_ATTR,$(.VARIABLES)),,$(error Please specify RELEASE_ATTR variable (it can be empty)))))
 
 # Usage: $(call release_rules,<release_prefix>)
 define release_rules
@@ -51,11 +53,12 @@ RELEASE_BASENAME = $$(RELEASE_PREFIX)-$$(RELEASE_VERSION)
        test ! -e $$A || head -n 1 $$A | grep -F "Automatically generated (yoo9jei6Ee6Teiti)"
        echo "# Automatically generated (yoo9jei6Ee6Teiti)" > $$A
 # Write ignored files there
-       for i in $$(RELEASE_IGNORE_FILES); do echo $$$$i export-ignore >> $$A; echo Not releasing $$$$i; done
+       for i in `$$(RELEASE_IGNORE_FILES_CMD)`; do echo $$$$i export-ignore >> $$A; echo Not releasing $$$$i; done
 
 $$(RELEASE_BASENAME).zip:
        rm -rf $$@ $$(RELEASE_BASENAME)
        $(MAKE) $$(RELEASE_BASENAME)
+       find $$(RELEASE_BASENAME) -type d -empty -print -delete
        zip  -r $$@ $$(RELEASE_BASENAME)
 
 $$(RELEASE_BASENAME):: .git/info/attributes