scripts: ext-toolchain: add option to overwrite config

It can be useful to overwrite an already generated config.
Option are simply added at the end of the config and make defconfig
will overwrite the relevant option with the new one.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Christian Marangi 2022-07-04 18:22:18 +02:00
parent 53c293262f
commit f4dd18ca39
No known key found for this signature in database
GPG Key ID: AC001D09ADBFEAD7

View File

@ -50,6 +50,7 @@ BIN_SPECS="
gdbserver: gdbserver gdbserver: gdbserver
" "
OVERWRITE_CONFIG=""
test_c() { test_c() {
cat <<-EOT | "${CC:-false}" $CFLAGS -o /dev/null -x c - 2>/dev/null cat <<-EOT | "${CC:-false}" $CFLAGS -o /dev/null -x c - 2>/dev/null
@ -320,9 +321,13 @@ print_config() {
fi fi
# bail out if there is a .config already # bail out if there is a .config already
if [ -f "${0%/scripts/*}/.config" ]; then if [ -f "$config" ]; then
echo "There already is a .config file, refusing to overwrite!" >&2 if [ "$OVERWRITE_CONFIG" == "" ]; then
return 1 echo "There already is a .config file, refusing to overwrite!" >&2
return 1
else
echo "There already is a .config file, trying to overwrite!"
fi
fi fi
case "$mktarget" in */*) case "$mktarget" in */*)
@ -330,8 +335,11 @@ print_config() {
mktarget="${mktarget%/*}" mktarget="${mktarget%/*}"
;; esac ;; esac
if [ ! -f "$config" ]; then
touch "$config"
fi
echo "CONFIG_TARGET_${mktarget}=y" > "$config" echo "CONFIG_TARGET_${mktarget}=y" >> "$config"
if [ -n "$mksubtarget" ]; then if [ -n "$mksubtarget" ]; then
echo "CONFIG_TARGET_${mktarget}_${mksubtarget}=y" >> "$config" echo "CONFIG_TARGET_${mktarget}_${mksubtarget}=y" >> "$config"
@ -532,6 +540,10 @@ while [ -n "$1" ]; do
exit $? exit $?
;; ;;
--overwrite-config)
OVERWRITE_CONFIG=y
;;
--config) --config)
if probe_cc; then if probe_cc; then
print_config "$1" print_config "$1"
@ -573,6 +585,8 @@ while [ -n "$1" ]; do
echo -e " is used to specify C flags to be passed to the " >&2 echo -e " is used to specify C flags to be passed to the " >&2
echo -e " cross compiler when performing tests." >&2 echo -e " cross compiler when performing tests." >&2
echo -e " This parameter may be repeated multiple times." >&2 echo -e " This parameter may be repeated multiple times." >&2
echo -e " Use --overwrite-config before --config to overwrite" >&2
echo -e " an already present config with the required changes.">&2
exit 1 exit 1
;; ;;