kbuild: remove scripts/multiconfig.sh
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>
This commit is contained in:
parent
97ec89e501
commit
5f9eb22075
13
Makefile
13
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
|
||||
|
@ -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
|
||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user