1#! /usr/bin/gmake -f 2 3# the 'all' target is included from the 'configure'd Makefile 4 5BUILDSOURCES=.. 6BUILD=build 7CMAKE=cmake 8NINJA=ninja 9PREFIX=$$HOME/local 10 11.PHONY: build docs bins test tests testbuilds 12 13default: build 14build: 15 @ test -f Makefile || test -d $(BUILD) || (set -x ; mkdir $(BUILD) ; cd $(BUILD) && $(CMAKE) $(BUILDSOURCES) -DCMAKE_INSTALL_PREFIX:PATH=$(PREFIX) $(OPTIONS)) 16 @ test -f Makefile || test ! -d $(BUILD) || test ! -f $(BUILD)/Makefile || (set -x ; cd $(BUILD) && $(MAKE) all) 17 @ test -f Makefile || test ! -d $(BUILD) || test ! -f $(BUILD)/rules.ninja || (set -x ; cd $(BUILD) && $(NINJA) all) 18 @ test -f Makefile || test ! -d $(BUILD) || test ! -f $(BUILD)/Makefile || echo 'DONE (cd $(BUILD) && $(MAKE) all) - please run (cd $(BUILD) && $(MAKE) check VERBOSE=1) now' 19 @ test -f Makefile || test ! -d $(BUILD) || test ! -f $(BUILD)/rules.ninja || echo 'DONE (cd $(BUILD) && $(NINJA) all) - please run (cd $(BUILD) && $(NINJA) check) now' 20 21new: ; rm -rf $(BUILD); $(MAKE) build 22 23ninja: ; rm -rf $(BUILD) && $(MAKE) build OPTIONS=-GNinja 24nmake: ; rm -rf $(BUILD) && $(MAKE) build OPTIONS=-GNmake 25cmake: ; rm -rf $(BUILD) && $(MAKE) build "OPTIONS=-DZZIP_MANPAGES=OFF -DZZIP_INSTALL_BINS=OFF -DZZIP_TESTCVE=OFF" 26 27check checks: 28 @ test ! -f $(BUILD)/Makefile || (set -x; cd $(BUILD) && $(MAKE) $@ VERBOSE=1) 29 @ test ! -f $(BUILD)/rules.ninja || (set -x; cd $(BUILD) && $(NINJA) $@) 30install docs: 31 @ test ! -f $(BUILD)/Make || (set -x; cd $(BUILD) && $(MAKE) $@) 32 @ test ! -f $(BUILD)/rules.ninja || (set -x; cd $(BUILD) && $(NINJA) $@) 33 34un uninstalls: 35 @ case "$(PREFIX)" in */local) echo rm -rf "'$(PREFIX)'" ; rm -rf "$(PREFIX)" ;; *) echo skipped rm -rf "'$(PREFIX)'" ;; esac 36 37rms: ; docker images --format '{{.Repository}} {{.ID}}' | grep localhost:5000/systemctl/ | cut -d ' ' -f 2 | xargs --no-run-if-empty docker rmi -f 38rmi: ; docker images --format '{{.Repository}} {{.ID}}' | grep localhost:5000/zziplib/ | cut -d ' ' -f 2 | xargs --no-run-if-empty docker rmi -f 39rmf: ; docker ps -a --format '{{.Image}} {{.ID}}' | grep localhost:5000/zziplib/ | cut -d ' ' -f 2 | xargs --no-run-if-empty docker rm -f 40 41st_%: ; python3 testbuilds.py te$@ -vv --no-cache 42tests: ; python3 testbuilds.py -vv 43testbuilds: ; python3 testbuilds.py -vv --no-cache 44test_%: ; cd build/test && python3 ../../test/zziptests.py $@ -vv 45 46downloads: 47 - rm -rf test/tmp.download build/test/tmp.download 48 cd build/test && python3 ../../test/zziptests.py --downloadonly -vv 49 50version: 51 oldv=`sed -e '/zziplib.VERSION/!d' -e 's:.*zziplib.VERSION."::' -e 's:".*::' CMakeLists.txt` \ 52 ; oldr=`echo $$oldv | sed -e 's:.*[.]::'` ; newr=`expr $$oldr + 1` \ 53 ; newv=`echo $$oldv | sed -e "s:[.]$$oldr\$$:.$$newr:"` \ 54 ; echo "$$oldv -> $$newv" \ 55 ; sed -i -e "s:$$oldv:$$newv:" zziplib.spec testbuilds.py \ 56 ; sed -i -e "s:$$oldv:$$newv:" */CMakeLists.txt \ 57 ; sed -i -e "s:$$oldv:$$newv:" CMakeLists.txt \ 58 ; git diff -U0 59 60-include GNUmakefile.win10 61-include docker_mirror.mk 62