From 6b7ab9bf7242773ce8309f6fd5c6e53357fc1fd1 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 16 Apr 1999 18:23:48 +0000 Subject: Patch from Ralf Corsepius : FYI: I am not talking about using "make -C ", which probably is much faster on M$ hosts than RTEMS's implementation, but about removing --enable-gmake-print support and to apply a variant of automake's subdirectory. Automake's subdirectory rule seems to be a little bit faster, but I wouldn't bet on this. Attached to this mail is my proposal. After applying the patch, please run cvs rm aclocal/enable-gmake-print.m4 ./autogen --- make/directory.cfg | 57 ++++++++++++------------------------------------------ 1 file changed, 12 insertions(+), 45 deletions(-) (limited to 'make/directory.cfg') diff --git a/make/directory.cfg b/make/directory.cfg index 68b68d79e0..1714204318 100644 --- a/make/directory.cfg +++ b/make/directory.cfg @@ -8,50 +8,17 @@ # See also make/main.cfg # -# include $(RTEMS_ROOT)/make/main.cfg +# RULE=$(shell echo $@ | $(SED) -e s/debug_// -e s/profile_//) -# on a 'make -k' we don't want to bomb out of directory list -EXIT_CMD=exit 1 -ifeq (k, $(findstring k, $(MAKEFLAGS))) -EXIT_CMD=true -endif - -RULE=$(shell echo $@ | $(SED) -e s/debug_// -e s/profile_//) - -ifeq ($(RTEMS_USE_OWN_PDIR),yes) +# This is a simplified variant of automake-1.4's rule for handling +# subdirectories $(RECURSE_TARGETS): - @$(ECHO); \ - BASEDIR=`pwd`; \ - test -d $$BASEDIR || $(EXIT_CMD) ; \ - for subd in $(SUB_DIRS) xxx; \ - do if [ $$subd != xxx ] ; then \ - cd $$BASEDIR; \ - if [ ! -d $$subd ] ; then \ - $(ECHO) "*** ERROR -- Directory ($$subd) does not exist!!!"; \ - $(EXIT_CMD) ; \ - fi ; \ - $(ECHO); \ - $(ECHO) "*** $$BASEDIR/$$subd ($@)" ; \ - cmd="cd $$subd; $(MAKE) $(RULE)"; \ - $(ECHO) $$cmd; \ - eval $$cmd || $(EXIT_CMD); \ - fi; done; \ - $(ECHO); \ - $(ECHO) "*** $$BASEDIR/$@ ($@) Finished."; \ - $(ECHO) - $($@_WRAPUP) -else -ifdef RECURSE_TARGETS -$(RECURSE_TARGETS): - @$(ECHO) ; set -e ; \ - if [ "$(SUB_DIRS)" != "" ] ; then \ - sdirs="$(SUB_DIRS)" ; \ - else \ - sdirs="xxx" ; \ - fi ; \ - if [ "$$sdirs" != "xxx" ] ; then \ - for subd in $$sdirs; do $(MAKE) -w -C $$subd $(RULE); done ;\ - fi -endif -endif - + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed -e s/-recursive// -e s/debug_// -e s/profile_// `; \ + list='$(SUB_DIRS)'; for subdir in $$list; do \ + echo "Making $$target RTEMS_BSP=${RTEMS_BSP} in $$subdir"; \ + local_target="$$target"; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" -- cgit v1.2.3