]> granicus.if.org Git - zziplib/blob - GNUmakefile
simplify GNUmakefile to reuse ./build for make/ninja builds alike
[zziplib] / GNUmakefile
1 #! /usr/bin/gmake -f
2
3 # the 'all' target is included from the 'configure'd Makefile
4
5 BUILDSOURCES=..
6 BUILD=build
7 CMAKE=cmake
8 NINJA=ninja
9 PREFIX=$$HOME/local
10
11 .PHONY: build docs bins test
12
13 default: build
14 build:
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
21 new: ; rm -rf $(BUILD); $(MAKE) build
22
23 ninja: ; rm -rf $(BUILD) && $(MAKE) build OPTIONS=-GNinja
24 nmake: ; rm -rf $(BUILD) && $(MAKE) build OPTIONS=-GNmake
25 cmake: ; rm -rf $(BUILD) && $(MAKE) build "OPTIONS=-DZZIP_MANPAGES=OFF -DZZIP_INSTALL_BINS=OFF -DZZIP_TESTCVE=OFF"
26
27 check checks:
28         @ test ! -f $(BUILD)/Makefile    || (set -x; cd $(BUILD) && $(MAKE) $@ VERBOSE=1)
29         @ test ! -f $(BUILD)/rules.ninja || (set -x; cd $(BUILD) && $(NINJA) $@)
30 install docs:
31         @ test ! -f $(BUILD)/Make        || (set -x; cd $(BUILD) && $(MAKE) $@)
32         @ test ! -f $(BUILD)/rules.ninja || (set -x; cd $(BUILD) && $(NINJA) $@)
33
34 un uninstalls:
35         @ case "$(PREFIX)" in */local) echo rm -rf "'$(PREFIX)'" ; rm -rf "$(PREFIX)" ;; *) echo skipped rm -rf "'$(PREFIX)'" ;; esac
36
37 st_%: ; python3 testbuilds.py te$@ -vv
38 tests:  ; python3 testbuilds.py -vv
39 test_%: ; cd build/test && python3 ../../test/zziptests.py $@ -vv
40
41 downloads:
42         - rm -rf test/tmp.download build/test/tmp.download
43         cd build/test && python3 ../../test/zziptests.py --downloadonly -vv
44
45 version:
46         oldv=`sed -e '/zziplib.VERSION/!d' -e 's:.*zziplib.VERSION."::' -e 's:".*::' CMakeLists.txt` \
47         ; oldr=`echo $$oldv | sed -e 's:.*[.]::'` ; newr=`expr $$oldr + 1` \
48         ; newv=`echo $$oldv | sed -e "s:[.]$$oldr\$$:.$$newr:"` \
49         ; echo "$$oldv -> $$newv" \
50         ; sed -i -e "s:$$oldv:$$newv:" zziplib.spec testbuilds.py \
51         ; sed -i -e "s:$$oldv:$$newv:" */CMakeLists.txt \
52         ; sed -i -e "s:$$oldv:$$newv:" CMakeLists.txt \
53         ; git diff -U0