summaryrefslogtreecommitdiff
path: root/include/makeinclude/recurse.bor
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>2000-02-21 23:18:53 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>2000-02-21 23:18:53 +0000
commitb75744d8bffc8cc52e8201369da3bb81d75fe0c9 (patch)
treed8a8fb5b956a97c19bb33c90c6846d0766ebda58 /include/makeinclude/recurse.bor
parentafd3024e1bea027bc86bd4538ec70e6db5e441f1 (diff)
downloadATCD-b75744d8bffc8cc52e8201369da3bb81d75fe0c9.tar.gz
ChangeLogTag:Mon Feb 21 14:35:39 2000 Christopher Kohlhoff <chris@kohlhoff.com>
Diffstat (limited to 'include/makeinclude/recurse.bor')
-rw-r--r--include/makeinclude/recurse.bor73
1 files changed, 73 insertions, 0 deletions
diff --git a/include/makeinclude/recurse.bor b/include/makeinclude/recurse.bor
new file mode 100644
index 00000000000..77c878e6ab7
--- /dev/null
+++ b/include/makeinclude/recurse.bor
@@ -0,0 +1,73 @@
+#
+# Macros for recursive invocations of make
+#
+# Inputs:
+# ~~~~~~~
+# DIRS - list of sub-directories to invoke make in
+# MAKEFILES - list of makefiles to be run
+#
+
+!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
+
+!ifdef DIRS
+
+all: $(DIRS)
+
+# We use an extra level of make recursion to ensure the current directory is
+# automatically restored when the sub-directory is finished.
+$(DIRS):
+ @echo Entering directory $<
+ @$(MAKE) $(MAKE_FLAGS) -f&&!
+all:
+ @cd $<
+ $(MAKE) $(MAKE_FLAGS) -fMakefile.bor
+!
+
+# This ugliness is to remove extra spaces from between the items in the list.
+DIRS_CLEAN_1 = $(DIRS) $(BLANK_SPACE)
+DIRS_CLEAN_2 = $(DIRS_CLEAN_1: =%)
+DIRS_CLEAN_3 = $(DIRS_CLEAN_2:%%=%)
+DIRS_CLEAN_4 = $(DIRS_CLEAN_3:%%=%)
+DIRS_CLEAN = $(DIRS_CLEAN_4:%=.Clean )
+
+clean: $(DIRS_CLEAN)
+
+# We use an extra level of make recursion to ensure the current directory is
+# automatically restored when the sub-directory is finished.
+$(DIRS_CLEAN):
+ @echo Cleaning directory $(<:.Clean=)
+ @$(MAKE) $(MAKE_FLAGS) -f&&!
+all:
+ @cd $(<:.Clean=)
+ $(MAKE) $(MAKE_FLAGS) -fMakefile.bor clean
+!
+
+!endif
+
+!ifdef MAKEFILES
+
+# This ugliness is to remove extra spaces from between the items in the list.
+MAKEFILES_ALL_1 = $(MAKEFILES) $(BLANK_SPACE)
+MAKEFILES_ALL_2 = $(MAKEFILES_ALL_1: =%)
+MAKEFILES_ALL_3 = $(MAKEFILES_ALL_2:%%=%)
+MAKEFILES_ALL_4 = $(MAKEFILES_ALL_3:%%=%)
+MAKEFILES_ALL = $(MAKEFILES_ALL_4:%=.All )
+
+all: $(MAKEFILES_ALL)
+
+$(MAKEFILES_ALL):
+ $(MAKE) $(MAKE_FLAGS) -f$(<:.All=)
+
+# This ugliness is to remove extra spaces from between the items in the list.
+MAKEFILES_CLEAN_1 = $(MAKEFILES) $(BLANK_SPACE)
+MAKEFILES_CLEAN_2 = $(MAKEFILES_CLEAN_1: =%)
+MAKEFILES_CLEAN_3 = $(MAKEFILES_CLEAN_2:%%=%)
+MAKEFILES_CLEAN_4 = $(MAKEFILES_CLEAN_3:%%=%)
+MAKEFILES_CLEAN = $(MAKEFILES_CLEAN_4:%=.Clean )
+
+clean: $(MAKEFILES_CLEAN)
+
+$(MAKEFILES_CLEAN):
+ $(MAKE) $(MAKE_FLAGS) -f$(<:.Clean=) clean
+
+!endif