From patchwork Fri Mar 13 09:08:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 449932 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3C77B1400EA for ; Fri, 13 Mar 2015 23:27:07 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id BEB6EA742C; Fri, 13 Mar 2015 13:27:05 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HhHSmHZp4f-l; Fri, 13 Mar 2015 13:27:05 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 4A201A7424; Fri, 13 Mar 2015 13:27:05 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D40CEA7421 for ; Fri, 13 Mar 2015 10:10:02 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fM2v1Cb3vkIU for ; Fri, 13 Mar 2015 10:10:02 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from conuserg012-v.nifty.com (conuserg012.nifty.com [202.248.44.38]) by theia.denx.de (Postfix) with ESMTPS id 1B24AA741D for ; Fri, 13 Mar 2015 10:09:59 +0100 (CET) Received: from beagle.diag.org (KD036010032014.au-net.ne.jp [36.10.32.14]) (authenticated) by conuserg012-v.nifty.com with ESMTP id t2D98rg4022380; Fri, 13 Mar 2015 18:09:04 +0900 X-Nifty-SrcIP: [36.10.32.14] From: Masahiro Yamada To: u-boot@lists.denx.de Date: Fri, 13 Mar 2015 18:08:55 +0900 Message-Id: <1426237735-29887-3-git-send-email-yamada.masahiro@socionext.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1426237735-29887-1-git-send-email-yamada.masahiro@socionext.com> References: <1426237735-29887-1-git-send-email-yamada.masahiro@socionext.com> X-Mailman-Approved-At: Fri, 13 Mar 2015 13:27:03 +0100 Cc: Marek Vasut , Tom Rini , Jeroen Hofstee , Brian Norris , Stephen Warren , Josh Triplett , Ian Campbell , Stefan Roese , York Sun Subject: [U-Boot] [PATCH 2/2] kbuild: remove scripts/multiconfig.sh X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "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 Reviewed-by: Simon Glass --- 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 -# -# SPDX-License-Identifier: GPL-2.0+ -# - -set -e - -# Make a configuration target -# Usage: -# run_make_config -# : 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 _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