added make ext-* targets for submodules
[wmiirc-lua.git] / Makefile.ext
blob42846d8c6fab64df5c1226a1f1687c1f25631d1f
1 # ------------------------------------------------------------------------
2 # local variable overrides
4 EXT_DIR = ext
6 PWD     = $(shell pwd)
8 CCPIC   = cc -c -fPIC
10 # ------------------------------------------------------------------------
11 # help
13 .PHONY: ext-help
14 ext-help:
15         @echo " extra packages"
16         @echo "   ext              - build all extra packages"
17         @echo "   ext-install      - install extra packages in system dir"
18         @echo "   ext-install-user - install extra packages in user home dir"
19         @echo "   ext-check        - check if sources are uptodate"
20         @echo "   ext-update       - update everything from git submodules"
22 # ------------------------------------------------------------------------
23 # git submodules
25 EXT_SM_NAMES  = libixp wmii
26 EXT_SM_DIRS   = ${EXT_SM_NAMES:%=${EXT_DIR}/%}
27 EXT_SM_REGEXP = submodule\.($(shell echo ${EXT_SM_DIRS} | tr ' ' '|'))\.url
28 EXT_SM_COUNT  = $(shell echo ${EXT_SM_NAMES} | wc -w)
30 .PHONY: ext-check ext-update
32 ext-check:
33         @echo "Checking git submodules..."
34         @if ! test ${EXT_SM_COUNT} = $$(git config --get-regexp "${EXT_SM_REGEXP}" | wc -l) ; then \
35                 echo "ERROR: submodules not initialized, run:" >&2 ; \
36                 echo "       make update"                      >&2 ; \
37                 $(if ${NOCHECK},true,false) ; \
38          fi
39         @if (git submodule status | grep '^[+-]' 2>/dev/null) ; then \
40                 echo "ERROR: submodules out of date, run:"     >&2 ; \
41                 echo "       make update"                      >&2 ; \
42                 $(if ${NOCHECK},true,false) ; \
43          fi
44         @echo "CHECK OK"
46 update:
47 ext-update:
48         @echo "Updating git submodules..."
49         @if ! test ${EXT_SM_COUNT} = $$(git config --get-regexp "${EXT_SM_REGEXP}" | wc -l) ; then \
50                 git submodule init ; \
51          fi
52         @if (git submodule status | grep '^[+-]' 2>/dev/null) ; then \
53                 git submodule update ; \
54          fi
55         @echo "UPDATE OK"
57 # ------------------------------------------------------------------------
58 # building & installing
60 .PHONY: ext
61 ext: ext-all
63 .PHONY: ext-all ext-clean ext-install ext-install-user ext-user
65 ext-all ext-user:               BUILD_STR="BUILD"
66 ext-install ext-install-user:   BUILD_STR="INSTALL"
68 ext-all ext-user:               BUILD_BASE_RULE=all
69 ext-all ext-user:               BUILD_WMIIRCLUA_RULE=all
71 ext-install ext-install-user:   BUILD_BASE_RULE=install
72 ext-install:                    BUILD_WMIIRCLUA_RULE=install
73 ext-install-user:               BUILD_WMIIRCLUA_RULE=install-user
75 ext-all ext-install:            BUILD_RULE=all
76 ext-all ext-install:            BUILD_PREFIX=${PREFIX}
77 ext-all:                        ext-build-helper
78 ext-install:                    ext-build-helper
79 ext-install:                    install-variable-check
81 ext-user ext-install-user:      BUILD_RULE=all
82 ext-user ext-install-user:      BUILD_PREFIX=${HOME_PREFIX}
83 ext-user:                       ext-build-helper
84 ext-install-user:               ext-build-helper
85 ext-install-user:               install-user-variable-check
87 ext-clean:                      BUILD_RULE=clean
88 ext-clean:                      BUILD_PREFIX=
89 ext-clean:                      ext-build-helper
91 .PHONY: ext-build-helper
92 ext-build-helper: ext-check
93         $(if ${BUILD_RULE},,$(error $@ is an internal rule))
94         #
95         @echo ${BUILD_STR} libixp
96         ${MAKE} -C ${EXT_DIR}/libixp ${BUILD_RULE} \
97                 "CC=${CCPIC}" \
98                 "PREFIX=${BUILD_PREFIX}" \
99                 ${BUILD_BASE_RULE}
100         #
101         @echo ${BUILD_STR} wmii
102         ${MAKE} -C ${EXT_DIR}/wmii ${BUILD_RULE} \
103                 "INCLUDE=${IXP_INC}:${INCLUDE}" \
104                 "LIBIXP=${PWD}/${EXT_DIR}/libixp/lib/libixp.a" "CC=${CCPIC}" \
105                 "PREFIX=${BUILD_PREFIX}" \
106                 "CONFVERSION=lua" \
107                 ${BUILD_BASE_RULE}
108         #
109         @echo ${BUILD_STR} OK
112 # ------------------------------------------------------------------------
113 # more cleaning
115 .PHONY: lcl-gitclean
116 gitclean: lcl-gitclean
117 lcl-gitclean:
118         -cd ${EXT_DIR}/libixp && git clean -d -x -f
119         -cd ${EXT_DIR}/wmii && git clean -d -x -f