* [U-Boot] [PATCH 1/2] kbuild: remove "*_felconfig" target
2015-03-13 9:08 [U-Boot] [PATCH 0/2] kbuild: clean up glue code to delete scripts/multoconfig.sh Masahiro Yamada
@ 2015-03-13 9:08 ` Masahiro Yamada
2015-03-23 20:23 ` Simon Glass
2015-03-28 18:07 ` [U-Boot] [U-Boot,1/2] " Tom Rini
2015-03-13 9:08 ` [U-Boot] [PATCH 2/2] kbuild: remove scripts/multiconfig.sh Masahiro Yamada
1 sibling, 2 replies; 7+ messages in thread
From: Masahiro Yamada @ 2015-03-13 9:08 UTC (permalink / raw)
To: u-boot
This target was added by commit cbdd9a9737cc (sunxi: kconfig: Add
%_felconfig rule to enable FEL build of sunxi platforms.).
At that time, U-Boot used separate .config files for U-Boot proper
and SPL. I understood the pain to modify both .config and
spl/.config.
Now, we have switched to single .config configuration.
It seems acceptable to run "make menuconfig" or friends to enable
CONFIG_SPL_FEL, as we do for other CONFIGs.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Ian Campbell <ijc@hellion.org.uk>
Cc: Hans de Goede <hdegoede@redhat.com>
---
scripts/multiconfig.sh | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/scripts/multiconfig.sh b/scripts/multiconfig.sh
index cc8a787..9c6b256 100755
--- a/scripts/multiconfig.sh
+++ b/scripts/multiconfig.sh
@@ -70,16 +70,6 @@ do_board_defconfig () {
cleanup_after_defconfig
}
-do_board_felconfig () {
- do_board_defconfig ${1%%_felconfig}_defconfig
- if ! grep -q CONFIG_ARCH_SUNXI=y .config || ! grep -q CONFIG_SPL=y .config ; then
- echo "$progname: Cannot felconfig a non-sunxi or non-SPL platform" >&2
- exit 1
- fi
- sed -i -e 's/\# CONFIG_SPL_FEL is not set/CONFIG_SPL_FEL=y\nCONFIG_UART0_PORT_F=n/g' \
- .config
-}
-
do_others () {
run_make_config $1
}
@@ -90,8 +80,6 @@ target=$1
case $target in
*_defconfig)
do_board_defconfig $target;;
-*_felconfig)
- do_board_felconfig $target;;
*_config)
# backward compatibility
do_board_defconfig ${target%_config}_defconfig;;
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH 2/2] kbuild: remove scripts/multiconfig.sh
2015-03-13 9:08 [U-Boot] [PATCH 0/2] kbuild: clean up glue code to delete scripts/multoconfig.sh Masahiro Yamada
2015-03-13 9:08 ` [U-Boot] [PATCH 1/2] kbuild: remove "*_felconfig" target Masahiro Yamada
@ 2015-03-13 9:08 ` Masahiro Yamada
2015-03-23 21:11 ` Simon Glass
2015-03-28 18:07 ` [U-Boot] [U-Boot,2/2] " Tom Rini
1 sibling, 2 replies; 7+ messages in thread
From: Masahiro Yamada @ 2015-03-13 9:08 UTC (permalink / raw)
To: u-boot
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
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
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread