kbuild: remove scripts/multiconfig.sh
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 13 Mar 2015 09:08:55 +0000 (18:08 +0900)
committerTom Rini <trini@konsulko.com>
Sat, 28 Mar 2015 13:03:08 +0000 (09:03 -0400)
We have switched to the single .config configuration system,
the same one as used in Linux Kernel.

The necessary glue code is small enough now, so move it to the
top-level Makefile and scripts/kconfig/Makefile, and then delete
scripts/multiconfig.sh.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Makefile
scripts/kconfig/Makefile
scripts/multiconfig.sh [deleted file]

index 1b3ebe7dc25e79733b6bf411cb2ffcd9dc8430bf..346ea27664de9268efed1621a1cc695579f1f4f1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -469,10 +469,10 @@ KBUILD_DEFCONFIG := sandbox_defconfig
 export KBUILD_DEFCONFIG KBUILD_KCONFIG
 
 config: scripts_basic outputmakefile FORCE
-       +$(Q)$(CONFIG_SHELL) $(srctree)/scripts/multiconfig.sh $@
+       $(Q)$(MAKE) $(build)=scripts/kconfig $@
 
 %config: scripts_basic outputmakefile FORCE
-       +$(Q)$(CONFIG_SHELL) $(srctree)/scripts/multiconfig.sh $@
+       $(Q)$(MAKE) $(build)=scripts/kconfig $@
 
 else
 # ===========================================================================
@@ -496,6 +496,15 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
 # we execute the config step to be sure to catch updated Kconfig files
 include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
        $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
+       @# If the following part fails, include/config/auto.conf should be
+       @# deleted so "make silentoldconfig" will be re-run on the next build.
+       $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.autoconf || \
+               { rm -f include/config/auto.conf; false; }
+       @# include/config.h has been updated after "make silentoldconfig".
+       @# We need to touch include/config/auto.conf so it gets newer
+       @# than include/config.h.
+       @# Otherwise, 'make silentoldconfig' would be invoked twice.
+       $(Q)touch include/config/auto.conf
 
 -include include/autoconf.mk
 -include include/autoconf.mk.dep
index 349f77038e63632270a74dce7d460b6bbb11caa4..ff4ce6e92cb4aa7003117f2e759b1ba8eeb68911 100644 (file)
@@ -5,6 +5,12 @@
 PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \
        localmodconfig localyesconfig
 
+# Added for U-Boot
+#  Linux has defconfig files in arch/$(SRCARCH)/configs/,
+#  on the other hand, U-Boot does in configs/.
+#  Set SRCARCH to .. fake this Makefile.
+SRCARCH := ..
+
 ifdef KBUILD_KCONFIG
 Kconfig := $(KBUILD_KCONFIG)
 else
@@ -104,6 +110,10 @@ endif
 %_defconfig: $(obj)/conf
        $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
 
+# Added for U-Boot (backward compatibility)
+%_config: %_defconfig
+       @:
+
 configfiles=$(wildcard $(srctree)/kernel/configs/$(1).config $(srctree)/arch/$(SRCARCH)/configs/$(1).config)
 
 define mergeconfig
diff --git a/scripts/multiconfig.sh b/scripts/multiconfig.sh
deleted file mode 100755 (executable)
index 9c6b256..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/bin/sh
-#
-# A wrapper script to adjust Kconfig for U-Boot
-#
-# This file will be removed after cleaning up defconfig files
-#
-# Copyright (C) 2014, Masahiro Yamada <yamada.m@jp.panasonic.com>
-#
-# SPDX-License-Identifier:     GPL-2.0+
-#
-
-set -e
-
-# Make a configuration target
-# Usage:
-#   run_make_config <target> <objdir>
-# <target>: Make target such as "config", "menuconfig", "defconfig", etc.
-run_make_config () {
-       # Linux expects defconfig files in arch/$(SRCARCH)/configs/ directory,
-       # but U-Boot has them in configs/ directory.
-       # Give SRCARCH=.. to fake scripts/kconfig/Makefile.
-       $MAKE -f $srctree/scripts/Makefile.build obj=scripts/kconfig SRCARCH=.. $1
-}
-
-do_silentoldconfig () {
-       run_make_config silentoldconfig
-
-       # If the following part fails, include/config/auto.conf should be
-       # deleted so "make silentoldconfig" will be re-run on the next build.
-       $MAKE -f $srctree/scripts/Makefile.autoconf || {
-               rm -f include/config/auto.conf
-               exit 1
-       }
-
-       # include/config.h has been updated after "make silentoldconfig".
-       # We need to touch include/config/auto.conf so it gets newer
-       # than include/config.h.
-       # Otherwise, 'make silentoldconfig' would be invoked twice.
-       touch include/config/auto.conf
-}
-
-cleanup_after_defconfig () {
-       rm -f configs/.tmp_defconfig
-       # ignore 'Directory not empty' error
-       # without using non-POSIX option '--ignore-fail-on-non-empty'
-       rmdir arch configs 2>/dev/null || true
-}
-
-# Usage:
-#  do_board_defconfig <board>_defconfig
-do_board_defconfig () {
-       defconfig_path=$srctree/configs/$1
-
-       if [ ! -r $defconfig_path ]; then
-               echo >&2 "***"
-               echo >&2 "*** Can't find default configuration \"configs/$1\"!"
-               echo >&2 "***"
-               exit 1
-       fi
-
-       mkdir -p arch configs
-       # prefix "*:" is deprecated.  Drop it simply.
-       sed -e 's/^[+A-Z]*://' $defconfig_path > configs/.tmp_defconfig
-
-       run_make_config .tmp_defconfig || {
-               cleanup_after_defconfig
-               exit 1
-       }
-
-       cleanup_after_defconfig
-}
-
-do_others () {
-       run_make_config $1
-}
-
-progname=$(basename $0)
-target=$1
-
-case $target in
-*_defconfig)
-       do_board_defconfig $target;;
-*_config)
-       # backward compatibility
-       do_board_defconfig ${target%_config}_defconfig;;
-silentoldconfig)
-       do_silentoldconfig;;
-*)
-       do_others $target;;
-esac