@@ -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
@@ -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
deleted file mode 100755
@@ -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
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