summaryrefslogtreecommitdiffstats
path: root/make
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-07-26 21:26:44 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-07-26 21:26:44 +0000
commit29e68b75843aa889a15ca8dcfff1cd30fea9e963 (patch)
tree21c6b34565dc7c7e0a7125f0ec71a42b0a3a142c /make
parent08b5f55b6fd9c12c91a4d99219723b88e6c860d5 (diff)
downloadrtems-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 'make')
-rw-r--r--make/Makefile.in26
-rw-r--r--make/README9
-rw-r--r--make/Templates/Makefile.in12
-rw-r--r--make/compilers/Makefile.in12
-rw-r--r--make/custom/Makefile.in12
-rw-r--r--make/custom/ts_386ex.cfg4
-rw-r--r--make/directory.cfg35
-rw-r--r--make/leaf.cfg36
-rw-r--r--make/main.cfg17
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