summaryrefslogtreecommitdiff
path: root/mk/subdir.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/subdir.mk')
-rw-r--r--mk/subdir.mk39
1 files changed, 39 insertions, 0 deletions
diff --git a/mk/subdir.mk b/mk/subdir.mk
new file mode 100644
index 0000000..9750235
--- /dev/null
+++ b/mk/subdir.mk
@@ -0,0 +1,39 @@
+# 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 -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}