summaryrefslogtreecommitdiff
path: root/mk/subdir.mk
blob: 6d9031d213f0c2f0687f0000a92303a9630023f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Recursive rules
# Adapted from FreeBSDs bsd.subdir.mk
# Copyright 2007-2008 Roy Marples <roy@marples.name>

_+_ ?= +
ECHODIR ?= echo 
_SUBDIR = @${_+_}for x in ${SUBDIR}; do \
	if test -d $$x; then \
	${ECHODIR} "===> ${DIRPRFX}$$x (${@:realinstall=install})"; \
		cd $$x; \
		${MAKE} ${@:realinstall=install} \
		DIRPRFX=${DIRPRFX}$$x/ || exit $$?; \
		cd ..; \
	fi; \
	if test -d $$x.${OS}; then \
	${ECHODIR} "===> ${DIRPRFX}$$x.${OS} (${@:realinstall=install})"; \
		cd $$x.${OS}; \
		${MAKE} ${@:realinstall=install} \
		DIRPRFX=${DIRPRFX}$$x.${OS}/ || exit $$?; \
		cd ..; \
	fi; \
	if test "${SUBOS}" != "${OS}" && test -d $$x.${SUBOS}; then \
	${ECHODIR} "===> ${DIRPRFX}$$x.${SUBOS} (${@:realinstall=install})"; \
		cd $$x.${SUBOS}; \
		${MAKE} ${@:realinstall=install} \
		DIRPRFX=${DIRPRFX}$$x.${SUBOS}/ || exit $$?; \
		cd ..; \
	fi; \
done

all:
	${_SUBDIR}
clean:
	${_SUBDIR}
realinstall:
	${_SUBDIR}
install: realinstall ${INSTALLAFTER}
depend:
	${_SUBDIR}
gitignore:
	${_SUBDIR}