summaryrefslogtreecommitdiff
path: root/mk/subdir.mk
blob: ca54176eb154549640b756b28c7a534b85caf65c (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
42
# 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:
	@if test -n "${CLEANFILES}"; then echo "rm -f ${CLEANFILES}"; rm -f ${CLEANFILES}; fi
	${_SUBDIR}
realinstall:
	${_SUBDIR}
install: realinstall ${INSTALLAFTER}
depend:
	${_SUBDIR}
gitignore:
	${_SUBDIR}