diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-02-21 23:18:53 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-02-21 23:18:53 +0000 |
commit | b75744d8bffc8cc52e8201369da3bb81d75fe0c9 (patch) | |
tree | d8a8fb5b956a97c19bb33c90c6846d0766ebda58 /include/makeinclude/recurse.bor | |
parent | afd3024e1bea027bc86bd4538ec70e6db5e441f1 (diff) | |
download | ATCD-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.bor | 73 |
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 |