diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-07-26 21:26:44 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-07-26 21:26:44 +0000 |
commit | 29e68b75843aa889a15ca8dcfff1cd30fea9e963 (patch) | |
tree | 21c6b34565dc7c7e0a7125f0ec71a42b0a3a142c /make | |
parent | Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>: (diff) | |
download | rtems-29e68b75843aa889a15ca8dcfff1cd30fea9e963.tar.bz2 |
Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
This patch is an addition to "The big-patch"
CHANGES:
* FIX: c/Makefile.am: bogus comment which changed the behavior of
c/Makefile.am removed
* FIX: make/custom/ts_i386ex.cfg did not set HAS_NETWORKING correctly
(Me thinks it might have been me who added this bogus setting :-).
* NEW: removing make targets get, protos, debug_install, profile_install
* NEW: replacing clobber with distclean
* NEW: Reimplement distclean and clean as reverse depth first make
targets (adaptation to automake's behavior)
* NEW: removing RCS_CLEAN from make distclean (tools/build/rcs_clean is
still in - remove it?)
* NEW: "$(RM) Makefile" added to make distclean (adaptation to
automake's behavior)
* NEW: "$(RM) config.cache config.log" to CLOBBER_ADDITIONS in
[lib|exec|tests]/Makefile.in (adaptation to automake's behavior)
* NEW: "$(CLEAN_PROTOS)" removed (Not used anywhere)
* NEW: binpatch.c moved from i386 bsp tools to tools/build (AFAIS,
binpatch is not specific to the pc386 BSP at all)
* NEW: AC_EXEEXT added to all configure scripts which contain AC_PROG_CC
(Cygwin support)
* NEW/Experimental: An experimental implementation of temporary
installation tree support in libbsp/i386/pc386/tools/Makefile.am, based
on dependency tracking with make, instead of applying INSTALL_CHANGE.
REMARK:
* This patch is small in size, but changes the behavior of "make
clean|distclean|clobber" basically.
* This patch does not alter building/compiling RTEMS, ie. there should
be no need to rerun all "make all" building tests.
KNOWN BUGS:
* make RTEMS_BSP="..." distclean in c/ runs "make distclean" in BSPs
subdirectories passed through RTEMS_BSP and in "c/." only, but does not
descend into other BSP subdirectories previously configured with
different settings of make RTEMS_BSP="...".
=> Workaround: always use the same setting of RTEMS_BSP when working
inside the build-tree.
* "make [distclean|clean]" do not clean subdirectories, which have been
configured at configuration time, but which are not used due to
make-time configuration (e.g. macros/networking/rdgb subdirectories).
This will problem will vanish by itself when migrating from make-time to
configuration-time configuration
APPLYING THE PATCH
mv c/src/lib/libbsp/i386/pc386/tools/binpatch.c tools/build
patch -p1 < rtems-rc-19990709-2.diff
autogen
Diffstat (limited to '')
-rw-r--r-- | make/Makefile.in | 26 | ||||
-rw-r--r-- | make/README | 9 | ||||
-rw-r--r-- | make/Templates/Makefile.in | 12 | ||||
-rw-r--r-- | make/compilers/Makefile.in | 12 | ||||
-rw-r--r-- | make/custom/Makefile.in | 12 | ||||
-rw-r--r-- | make/custom/ts_386ex.cfg | 4 | ||||
-rw-r--r-- | make/directory.cfg | 35 | ||||
-rw-r--r-- | make/leaf.cfg | 36 | ||||
-rw-r--r-- | make/main.cfg | 17 |
9 files changed, 69 insertions, 94 deletions
diff --git a/make/Makefile.in b/make/Makefile.in index 652737519e..39ba5d995a 100644 --- a/make/Makefile.in +++ b/make/Makefile.in @@ -328,12 +328,9 @@ maintainer-clean-generic clean mostlyclean distclean maintainer-clean depend-recursive \ -clobber-recursive \ preinstall-recursive \ debug-recursive \ -debug_install-recursive \ -profile-recursive \ -profile_install-recursive: +profile-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ @@ -355,21 +352,12 @@ profile_install-recursive: debug: debug-recursive .PHONY: debug-recursive -debug_install: debug_install-recursive -.PHONY: debug_install-recursive - profile: profile-recursive .PHONY: profile-recursive -profile_install: profile_install-recursive -.PHONY: profile-recursive - preinstall: preinstall-recursive .PHONY: preinstall-recursive -clobber: clobber-recursive -.PHONY: clobber-recursive - depend: depend-recursive .PHONY: depend-recursive @@ -377,26 +365,14 @@ debug-am: debug: debug-am .PHONY: debug debug-am -debug_install-am: -debug_install: debug_install-am -.PHONY: debug_install debug_install-am - profile-am: profile: profile-am .PHONY: profile profile-am -profile_install-am: -profile_install: profile_install-am -.PHONY: profile_install profile_install-am - preinstall-am: preinstall: preinstall-am .PHONY: preinstall preinstall-am -clobber-am: -clobber: clobber-am -.PHONY: clobber clobber-am - depend-am: depend: depend-am .PHONY: depend depend-am diff --git a/make/README b/make/README index 6cdc4b2c6e..fbc4ba5cca 100644 --- a/make/README +++ b/make/README @@ -116,17 +116,14 @@ CFLAGS and/or LDFLAGS are modified as per the compiler config file for debug and profile support. - Targets debug_install and profile_install are equivalent to 'make - install' except that debug (or profile) variants are built and - installed. - - The targets debug, profile, debug_install, profile_install, etc., can be + The targets debug, profile, etc., can be invoked recursively at the directory make level. So from the top of a tree, one could install a debug version of everything under that point by: $ cd src/lib - $ gmake debug_install + $ gmake debug + $ gmake install When building a command that is linked with a generated library, the appropriate version of the library will be linked in. diff --git a/make/Templates/Makefile.in b/make/Templates/Makefile.in index 43c56ada2f..2bafd8f7f2 100644 --- a/make/Templates/Makefile.in +++ b/make/Templates/Makefile.in @@ -196,26 +196,14 @@ debug-am: debug: debug-am .PHONY: debug debug-am -debug_install-am: -debug_install: debug_install-am -.PHONY: debug_install debug_install-am - profile-am: profile: profile-am .PHONY: profile profile-am -profile_install-am: -profile_install: profile_install-am -.PHONY: profile_install profile_install-am - preinstall-am: preinstall: preinstall-am .PHONY: preinstall preinstall-am -clobber-am: -clobber: clobber-am -.PHONY: clobber clobber-am - depend-am: depend: depend-am .PHONY: depend depend-am diff --git a/make/compilers/Makefile.in b/make/compilers/Makefile.in index 364bd47e32..0ca5e4ad5d 100644 --- a/make/compilers/Makefile.in +++ b/make/compilers/Makefile.in @@ -196,26 +196,14 @@ debug-am: debug: debug-am .PHONY: debug debug-am -debug_install-am: -debug_install: debug_install-am -.PHONY: debug_install debug_install-am - profile-am: profile: profile-am .PHONY: profile profile-am -profile_install-am: -profile_install: profile_install-am -.PHONY: profile_install profile_install-am - preinstall-am: preinstall: preinstall-am .PHONY: preinstall preinstall-am -clobber-am: -clobber: clobber-am -.PHONY: clobber clobber-am - depend-am: depend: depend-am .PHONY: depend depend-am diff --git a/make/custom/Makefile.in b/make/custom/Makefile.in index fe7c0a5f5a..84f9b50cfb 100644 --- a/make/custom/Makefile.in +++ b/make/custom/Makefile.in @@ -224,26 +224,14 @@ debug-am: debug: debug-am .PHONY: debug debug-am -debug_install-am: -debug_install: debug_install-am -.PHONY: debug_install debug_install-am - profile-am: profile: profile-am .PHONY: profile profile-am -profile_install-am: -profile_install: profile_install-am -.PHONY: profile_install profile_install-am - preinstall-am: preinstall: preinstall-am .PHONY: preinstall preinstall-am -clobber-am: -clobber: clobber-am -.PHONY: clobber clobber-am - depend-am: depend: depend-am .PHONY: depend depend-am diff --git a/make/custom/ts_386ex.cfg b/make/custom/ts_386ex.cfg index 7a609e2f7c..3502933fca 100644 --- a/make/custom/ts_386ex.cfg +++ b/make/custom/ts_386ex.cfg @@ -23,10 +23,6 @@ CPU_CFLAGS =-msoft-float -mno-fp-ret-in-387 # -fomit-frame-pointer breaks debugging and C++ exceptions CFLAGS_OPTIMIZE_V=-O4 -# This target does support the TCP/IP stack so honour requests -# to enable it. -HAS_NETWORKING=yes - # This BSP does not support librdbg HAS_RDBG=no diff --git a/make/directory.cfg b/make/directory.cfg index 056e9fa55e..c3efc38bf0 100644 --- a/make/directory.cfg +++ b/make/directory.cfg @@ -21,5 +21,40 @@ $(RECURSE_TARGETS): || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" + +# mostlyclean-recursive maintainer-clean-recursive: +clean-recursive \ +distclean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUB_DIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" + +clean-am: clean-generic +distclean-am: distclean-generic clean-am + preinstall: preinstall-recursive .PHONY: preinstall preinstall-am preinstall-recursive + +distclean: distclean-recursive + -$(RM) config.status + +.PHONY: distclean distclean-am distclean-recursive + +clean: clean-recursive +.PHONY: clean clean-am clean-recursive + diff --git a/make/leaf.cfg b/make/leaf.cfg index 0dba22970e..0106dc19ce 100644 --- a/make/leaf.cfg +++ b/make/leaf.cfg @@ -55,13 +55,13 @@ endif # # Builtin targets for compilation variants # -debug debug_install: +debug: $(MAKE) -f $(MAKEFILE) MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-debug" \ "CFLAGS_DEBUG=$(CFLAGS_DEBUG_V)" \ "CFLAGS_OPTIMIZE=$(CFLAGS_DEBUG_OPTIMIZE_V)" \ "LDFLAGS_DEBUG=$(LDFLAGS_DEBUG_V)" $(TARGET_VA) -profile profile_install: +profile: $(MAKE) -f $(MAKEFILE) \ MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-profile" \ "CFLAGS_PROFILE=$(CFLAGS_PROFILE_V)" \ @@ -80,8 +80,7 @@ VARIANT-$(TARGET_ARCH)-profile-v = profile VARIANT_VA = $(VARIANT-$(ARCH)-v) # -# TARGET_VA will convert $@ (expected to be 'debug' or -# 'debug_install' or 'profile' etc.) +# TARGET_VA will convert $@ (expected to be 'debug' or 'profile' etc.) # into "" or "install" as appropriate. # Used for variant recursion. # @@ -89,9 +88,6 @@ VARIANT_VA = $(VARIANT-$(ARCH)-v) TARGET_debug_V = all TARGET_profile_V = all -TARGET_debug_install_V = install -TARGET_profile_install_V = install - TARGET_VA = $(TARGET_$@_V) # @@ -107,24 +103,26 @@ LIBSUFFIX_$(TARGET_ARCH)-profile_V=_p LIB_VARIANT=$(LIBSUFFIX_$(ARCH)_V) LIBSUFFIX_VA = $(LIB_VARIANT).a -get: $(SRCS) $(GET_ADDITIONS) - # -# Builtin clean and clobber rules +# Builtin clean and distclean rules # Individual makefiles can add stuff via CLEAN_ADDITIONS and CLOBBER_ADDITIONS # If desperate to save something, they can override CLEAN_OS, CLEAN_CC, etc. # -clean: - $(RM) -r a.out core mon.out gmon.out $(CLEAN_OS) $(CLEAN_CC) - $(RM) -r $(CLEAN_PROTO) $(CLEAN_DEPEND) a.out - $(RM) -r $(VARIANTS) $(CLEAN_ADDITIONS) $(IMPORT_SOURCE) +clean-am: clean-generic + -$(RM) -r $(CLEAN_OS) $(CLEAN_CC) $(CLEAN_DEPEND) + -$(RM) -r $(VARIANTS) +# -$(RM) -r $(IMPORT_SOURCE) -clobber: clean - -$(RCS_CLEAN) - $(RM) .#* - $(RM) -r $(CLOBBER_OS) $(CLOBBER_CC) $(CLOBBER_DEPEND) - $(RM) -r $(CLOBBER_ADDITIONS) a.out +distclean-am: distclean-generic clean-am + -$(RM) -r $(CLOBBER_OS) $(CLOBBER_CC) $(CLOBBER_DEPEND) preinstall-am: preinstall: preinstall-am + +distclean: distclean-am + -$(RM) config.status +clean: clean-am + +.PHONY: distclean distclean-am +.PHONY: clean clean-am diff --git a/make/main.cfg b/make/main.cfg index 031a4047f2..f64b75ad64 100644 --- a/make/main.cfg +++ b/make/main.cfg @@ -57,17 +57,26 @@ VARIANTS=${TARGET_ARCH} ${TARGET_VARIANTS:%=${TARGET_ARCH}-%} # List of "recursion-able" targets for directory Makefiles # -RECURSE_TARGETS=all clean protos get clobber depend install \ +RECURSE_TARGETS=all depend install \ preinstall-recursive \ -$(TARGET_VARIANTS) $(TARGET_VARIANTS:%=%_install) +$(TARGET_VARIANTS) ${ARCH}: test -d ${ARCH} || mkdir ${ARCH} - # general purpose forcing dependency; try to use .PHONY instead FORCEIT: FORCE: -.PHONY: $(RECURSE_TARGETS) +distclean-generic: + -$(RM) Makefile .#* $(CONFIG_CLEAN_FILES) + -$(RM) -r $(CLOBBER_ADDITIONS) + +clean-generic: + -$(RM) a.out core mon.out gmon.out + -$(RM) -r $(CLEAN_ADDITIONS) + +.PHONY: $(RECURSE_TARGETS) +.PHONY: clean-generic +.PHONY: distclean-generic |