scripts: add action to extract config from a build.log file

That got removed quite some time ago, but is really usefull to get the
configuration from a build.log file of a failing build.
This commit is contained in:
Yann E. MORIN" 2010-02-11 21:28:10 +01:00
parent 9dc4e8172f
commit 013230cda9
3 changed files with 31 additions and 5 deletions

View File

@ -14,7 +14,7 @@ _ct-ng () {
start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;')
stop_steps=$(echo "${steps}" |sed -r -e 's/(^| )/+\1/;')
actions='help menuconfig oldconfig saveconfig
actions='help menuconfig oldconfig saveconfig extractconfig
build build. build-all build-all.
list-samples list-steps show-tuple show-all show-config
clean distclean wiki-samples updatetools

View File

@ -331,11 +331,20 @@ If you have an existing toolchain, you can re-use the options used to build it
to create a new toolchain. That needs a very little bit of effort on your side
but is quite easy. The options to build a toolchain are saved with the
toolchain, and you can retrieve this configuration by running:
${CT_TARGET}-config
${CT_TARGET}-ct-ng.config
This will dump the configuration to stdout, so to rebuild a toolchain with this
configuration, the following is all you need to do:
${CT_TARGET}-config >.config
An alternate method is to extract the configuration from a build.log file.
This will be necessary if your toolchain was build with crosstool-NG prior
to 1.4.0, but can be used with build.log files from any version:
ct-ng extractconfig <build.log >.config
Or, if your build.log file is compressed (most probably!):
bzcat build.log.bz2 |ct-ng extractconfig >.config
The above commands will dump the configuration to stdout, so to rebuild a
toolchain with this configuration, just redirect the output to the
.config file:
${CT_TARGET}-ct-ng.config >.config
ct-ng oldconfig
Then, you can review and change the configuration by running:

View File

@ -24,12 +24,29 @@ oldconfig: $(obj)/conf .config
@$(ECHO) " CONF $(KCONFIG_TOP)"
$(SILENT)$< -s $(KCONFIG_TOP)
# Always be silent, the stdout an be >.config
extractconfig:
@awk 'BEGIN { dump=0; } \
dump==1 && $$0~/^\[.....\][[:space:]]+(# |)CT_/ { \
$$1=""; \
gsub("^[[:space:]]",""); \
print; \
} \
$$0~/Dumping user-supplied crosstool-NG configuration: done in/ { \
dump=0; \
} \
$$0~/Dumping user-supplied crosstool-NG configuration$$/ { \
dump=1; \
}'
#-----------------------------------------------------------
# Help text used by make help
help-config::
@echo ' menuconfig - Update current config using a menu based program'
@echo ' oldconfig - Update current config using a provided .config as base'
@echo ' extractconfig - Extract to stdout the configuration items from a'
@echo ' build.log file piped to stdin'
#-----------------------------------------------------------
# Hmmm! Cheesy build!