summaryrefslogtreecommitdiff
path: root/ACE/include/makeinclude/rules.nested.GNU
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/include/makeinclude/rules.nested.GNU')
-rw-r--r--ACE/include/makeinclude/rules.nested.GNU43
1 files changed, 43 insertions, 0 deletions
diff --git a/ACE/include/makeinclude/rules.nested.GNU b/ACE/include/makeinclude/rules.nested.GNU
new file mode 100644
index 00000000000..d248105628d
--- /dev/null
+++ b/ACE/include/makeinclude/rules.nested.GNU
@@ -0,0 +1,43 @@
+# -*- Makefile -*-
+
+#----------------------------------------------------------------------------
+# $Id$
+#
+# Nested directory targets makefile definitions
+#----------------------------------------------------------------------------
+
+# If the client makefile is not called "Makefile", the MAKEFILE
+# variable must be set to its actual name before including this
+# file to allow the recursive MAKE to work properly.
+
+MAKEFILE ?= GNUmakefile
+SUBDIR_MAKEFILE ?= $(MAKEFILE)
+
+# Make sure that we build directories with DIRS= in sequence instead of in
+# parallel, unless DIRS_PARALLEL is set, in which case they may be built
+# in parallel if enabled by the proper flags and not disabled elsewhere.
+DIRS_PARALLEL ?=
+
+ifeq ($(DIRS_PARALLEL),)
+.NOTPARALLEL:
+endif
+
+# A rule to build DIR.subdir from DIR by calling MAKE again, with
+# DIR as the new directory, SUBDIR_TARGET as the target to build, and
+# "GNUmakefile" as the makefile to use in the new directory.
+
+# Triggered by the $(TARGETS_NESTED) target, below.
+
+%.subdir: %
+ cd $< && $(MAKE) -f $(SUBDIR_MAKEFILE) $(SUBDIR_TARGET)
+
+# Build FOO.nested by calling MAKE again, this time with DIRS (with
+# ".subdir" appended to each) as the targets, and passing FOO as the
+# real target to build in the SUBDIR_TARGET variable.
+
+$(TARGETS_NESTED):
+ifdef DIRS
+ ifneq ($(DIRS),)
+ $(MAKE) -f $(MAKEFILE) SUBDIR_TARGET=$(@:.nested=) $(addsuffix .subdir, $(DIRS))
+ endif # DIRS
+endif # DIRS