toolchain/crosstool-NG: add C library config munging
authorYann E. MORIN <yann.morin.1998@anciens.enib.fr>
Sat, 27 Nov 2010 20:50:45 +0000 (21:50 +0100)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sat, 27 Nov 2010 21:29:02 +0000 (22:29 +0100)
For some C libraries, it can be necessary to push the BR settings
down to the libc configuration file. Prepare the infrastructure.

(Note: it will apply only to uClibc for now, and although eglibc
can also be configured, it is not currently supported)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
toolchain/toolchain-crosstool-ng/crosstool-ng.mk

index 48116af872c8d6828572a5f5c7c04a3761b2e3f8..25e12d2dbf3592be65b3b05f7396f875e0352ece 100644 (file)
@@ -93,8 +93,10 @@ $(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/.config
 # - first one for non-path options
 # - second for path options (because they have no prompt, they
 #                            always get set to the default value)
+# - third for C library .config (if it has one, eg. uClibc)
 CTNG_FIX_DOT_CONFIG_SED       :=
 CTNG_FIX_DOT_CONFIG_PATHS_SED :=
+CTNG_FIX_DOT_CONFIG_LIBC_SED  :=
 
 #--------------
 # A few generic functions
@@ -228,8 +230,12 @@ CTNG_FIX_DOT_CONFIG_PATHS_SED += s:^(CT_LIBC_UCLIBC_CONFIG_FILE)=.*:\1="$(CTNG_D
 $(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/libc.config
 
 # And here is how we get this uClibc's .config
-$(CTNG_DIR)/libc.config: $(CTNG_UCLIBC_CONFIG_FILE)
+$(CTNG_DIR)/libc.config: $(CTNG_UCLIBC_CONFIG_FILE) $(CONFIG_DIR)/.config
+       -$(Q)cp -a $@ $@.timestamp
        $(Q)cp -f $< $@
+       $(call ctng-fix-dot-config,$@,$(CTNG_FIX_DOT_CONFIG_LIBC_SED))
+       $(call ctng-check-config-changed,$@,$@.timestamp)
+       $(Q)rm -f $@.timestamp
 
 endif # LIBC is uClibc