Skip to contentSkip to conversation

kbuild: clean up glue code to delete scripts/multoconfig.sh

PATCH New Masahiro Yamada 3 participants 7 messages Mar 13, 2015 – Mar 28, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover kbuild: clean up glue code to delete scripts/multoconfig.sh

Masahiro Yamada (2):
kbuild: remove "*_felconfig" target
kbuild: remove scripts/multiconfig.sh

 Makefile                 |  13 +++++-
 scripts/kconfig/Makefile |  10 +++++
 scripts/multiconfig.sh   | 102 -----------------------------------------------
 3 files changed, 21 insertions(+), 104 deletions(-)
 delete mode 100755 scripts/multiconfig.sh
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/2 kbuild: remove "*_felconfig" target

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.

Cc Ian Campbell <[email protected]>
Cc Hans de Goede <[email protected]>

---

 scripts/multiconfig.sh | 12 ------------
 1 file changed, 12 deletions(-)
scripts/multiconfig.sh +0 -12
index cc8a787..9c6b256 100755
@@ -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;;
Signature · 1 line
1.9.1
#2 lore raw

PATCH 1/2 kbuild: remove "*_felconfig" target

Quoted 11 lines · Masahiro Yamada

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.

Quoted 7 lines
Cc Ian Campbell <[email protected]>
Cc Hans de Goede <[email protected]>

---

 scripts/multiconfig.sh | 12 ------------
 1 file changed, 12 deletions(-)
#3 lore raw

PATCH 1/2 kbuild: remove "*_felconfig" target

In reply to Masahiro Yamada
Quoted 7 lines · Masahiro Yamada

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.

Quoted 8 lines

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.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150328/fe88a608/attachment.sig>
#4 lore raw

PATCH 2/2 kbuild: remove scripts/multiconfig.sh

In reply to Masahiro Yamada

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.

---

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
Makefile +11 -2
index 9747bd2..73e1362 100644
@@ -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
scripts/kconfig/Makefile +10 -0
index 349f770..ff4ce6e 100644
@@ -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
scripts/multiconfig.sh deleted +0 -90

90 lines not on this page · raw message

Signature · 1 line
1.9.1
#5 lore raw

PATCH 2/2 kbuild: remove scripts/multiconfig.sh

Quoted 15 lines · Masahiro Yamada

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.

---

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

Quoted 5 lines
 Makefile                 | 13 +++++--
 scripts/kconfig/Makefile | 10 ++++++
 scripts/multiconfig.sh   | 90 ------------------------------------------------
 3 files changed, 21 insertions(+), 92 deletions(-)
 delete mode 100755 scripts/multiconfig.sh
#6 lore raw

PATCH 2/2 kbuild: remove scripts/multiconfig.sh

In reply to Masahiro Yamada
Quoted 9 lines · Masahiro Yamada

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.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150328/be536c22/attachment.sig>