diff mbox

[U-Boot,2/2] kbuild: remove scripts/multiconfig.sh

Message ID 1426237735-29887-3-git-send-email-yamada.masahiro@socionext.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada March 13, 2015, 9:08 a.m. UTC
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>
---

This patch requires
http://patchwork.ozlabs.org/patch/449347/
as a prerequisite.


 Makefile                 | 13 +++++--
 scripts/kconfig/Makefile | 10 ++++++
 scripts/multiconfig.sh   | 90 ------------------------------------------------
 3 files changed, 21 insertions(+), 92 deletions(-)
 delete mode 100755 scripts/multiconfig.sh

Comments

Simon Glass March 23, 2015, 9:11 p.m. UTC | #1
On 13 March 2015 at 03:08, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> 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>
> ---
>
> This patch requires
> http://patchwork.ozlabs.org/patch/449347/
> as a prerequisite.
>
>
>  Makefile                 | 13 +++++--
>  scripts/kconfig/Makefile | 10 ++++++
>  scripts/multiconfig.sh   | 90 ------------------------------------------------
>  3 files changed, 21 insertions(+), 92 deletions(-)
>  delete mode 100755 scripts/multiconfig.sh

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini March 28, 2015, 6:07 p.m. UTC | #2
On Fri, Mar 13, 2015 at 06:08:55PM +0900, Masahiro Yamada wrote:

> 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>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 9747bd2..73e1362 100644
--- 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
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 349f770..ff4ce6e 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -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
index 9c6b256..0000000
--- a/scripts/multiconfig.sh
+++ /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