summaryrefslogtreecommitdiffstats
path: root/automake
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-04-05 12:51:51 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-04-05 12:51:51 +0000
commit12edad69e38c4c0d10717bed0016993fc4d25553 (patch)
tree4bcd496919813554cc65d9677df8f2eac1efdbdc /automake
parentPatch rtems-rc-4.5.0-8-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. (diff)
downloadrtems-12edad69e38c4c0d10717bed0016993fc4d25553.tar.bz2
Patch rtems-rc-4.5-10-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
Ralf's description of the patch follows: Now that make VARIANT=xxx has prooven not to be simple enough, I made up my mind to change again the internals of the mechanism being used to handle variants: With the patch below, I introduce the indirection step I had mentioned in one of my recent mails to translate settings of VARIANT. The trick is to use the contents of VARIANT as keyword to lookup another internal keyword (VARIANT_V), which then is used as keyword to lookup values for setting ARCH, LIB_VARIANT, LIBSUFFIX_VA and AM_CFLAGS from ARCH_$(VARIANT_V)_V etc. (cf automake/local.am). This means, at first to translate VARIANT=[optimize|OPTIMIZE] into VARIANT_V=OPTIMIZE VARIANT=[debug|DEBUG] into VARIANT_V=DEBUG VARIANT=[profile|PROFILE] into VARIANT_V=PROFILE VARIANT=<anything> into VARIANT_V=<anything> => perform keyword conversion to uppercase and reduction from 6 to 3+1 internal keywords. $(VARIANT_V) then is used to lookup make variables from other tables (eg. CFLAGS_*_V). Eg. ARCH is set up this way: ARCH_OPTIMIZE_V = o-optimize ARCH_DEBUG_V = o-debug ARCH_PROFILE_V = o-profile ARCH__V = $(ARCH_OPTIMIZE_V) ARCH = $(ARCH_$(VARIANT_V)_V) Note the ARCH__V variable. When VARIANT=<anything> is passed to make, VARIANT_V=<anything> will be set, resulting into ARCH = $(ARCH_$(<anything>)_V) = $(ARCH__V) = $(ARCH_OPTIMIZE_V), ie. falling back to OPTIMIZE. => o- or o-<anything> should never popup anymore.
Diffstat (limited to 'automake')
-rw-r--r--automake/local.am39
1 files changed, 34 insertions, 5 deletions
diff --git a/automake/local.am b/automake/local.am
index 93ecbe32d0..324a803a37 100644
--- a/automake/local.am
+++ b/automake/local.am
@@ -5,14 +5,43 @@
## Once automake is fully integrated these make targets
## and this file will probably be removed
+## translate VARIANT into VARIANT_V
VARIANT = OPTIMIZE
-VARIANT_OPTIMIZE_V = optimize
-VARIANT_DEBUG_V = debug
-VARIANT_PROFILE_V = profile
+VARIANT_OPTIMIZE_V = OPTIMIZE
+VARIANT_DEBUG_V = DEBUG
+VARIANT_PROFILE_V = PROFILE
+VARIANT_optimize_V = OPTIMIZE
+VARIANT_debug_V = DEBUG
+VARIANT_profile_V = PROFILE
-ARCH = o-$(VARIANT_$(VARIANT)_V)
-AM_CFLAGS += $(CFLAGS_$(VARIANT)_V)
+VARIANT_V = $(VARIANT_$(VARIANT)_V)
+
+## Setup the variant build subdirectory
+ARCH_OPTIMIZE_V = o-optimize
+ARCH_DEBUG_V = o-debug
+ARCH_PROFILE_V = o-profile
+
+ARCH__V = $(ARCH_OPTIMIZE_V)
+ARCH = $(ARCH_$(VARIANT_V)_V)
+
+## Setup the library suffix
+LIBSUFFIX_OPTIMIZE_V =
+LIBSUFFIX_DEBUG_V = _g
+LIBSUFFIX_PROFILE_V = _p
+
+LIBSUFFIX__V = $(LIBSUFFIX_OPTIMIZE_V)
+LIB_VARIANT = $(LIBSUFFIX_$(VARIANT_V)_V)
+
+LIBSUFFIX_VA = $(LIB_VARIANT).a
+
+## These are supposed to be set in make/custom/<bsp>.cfg
+## CFLAGS_OPTIMIZE_V =
+## CFLAGS_DEBUG_V =
+## CFLAGS_PROFILE_V =
+
+CFLAGS__V = $(CFLAGS_OPTIMIZE_V)
+AM_CFLAGS += $(CFLAGS_$(VARIANT_V)_V)
debug:
@echo