From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnout Vandecappelle Date: Mon, 06 Apr 2015 16:16:37 +0200 Subject: [Buildroot] [PATCH 2/3] Transformation of package 'at91bootstrap3' to KConfig style. In-Reply-To: <20150406133219.GE4369@free.fr> References: <1425850629-14725-1-git-send-email-mc5686@mclink.it> <1425850629-14725-2-git-send-email-mc5686@mclink.it> <20150406122020.5ea2e6df@free-electrons.com> <20150406133219.GE4369@free.fr> Message-ID: <55229545.4010103@mind.be> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net On 06/04/15 15:32, Yann E. MORIN wrote: > Thomas, Mauro, All, > > On 2015-04-06 12:20 +0200, Thomas Petazzoni spake thusly: >> Adding our kconfig-package guys Yann and Thomas DS in Cc. See below for >> some comments. >> >> On Sun, 8 Mar 2015 22:37:08 +0100, Mauro Condarelli wrote: >>> >>> Signed-off-by: Mauro Condarelli >>> --- >>> boot/at91bootstrap3/at91bootstrap3.mk | 9 ++++++++- >>> 1 file changed, 8 insertions(+), 1 deletion(-) >>> >>> diff --git a/boot/at91bootstrap3/at91bootstrap3.mk b/boot/at91bootstrap3/at91bootstrap3.mk >>> index 098e7bf..37e1bdd 100644 >>> --- a/boot/at91bootstrap3/at91bootstrap3.mk >>> +++ b/boot/at91bootstrap3/at91bootstrap3.mk >>> @@ -46,7 +46,14 @@ define AT91BOOTSTRAP3_INSTALL_IMAGES_CMDS >>> cp $(@D)/binaries/*.bin $(BINARIES_DIR) >>> endef >>> >>> -$(eval $(generic-package)) >>> +ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y) >>> +AT91BOOTSTRAP3_KCONFIG_FILE = $(call qstrip,$(AT91BOOTSTRAP3_DEFCONFIG)) >>> +else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y) >>> +AT91BOOTSTRAP3_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)) >>> +endif >>> +AT91BOOTSTRAP3_KCONFIG_EDITORS = menuconfig xconfig gconfig >>> +AT91BOOTSTRAP3_KCONFIG_OPTS = $(AT91BOOTSTRAP3_MAKE_OPTS) >>> +$(eval $(kconfig-package)) >> >> This is not going far enough: the kconfig-package infra is taking care >> of implementing the _CONFIGURE_CMDS for you. So the following >> chunk of code should go away: >> >> ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y) >> define AT91BOOTSTRAP3_CONFIGURE_CMDS >> $(MAKE) $(AT91BOOTSTRAP3_MAKE_OPTS) -C $(@D) $(AT91BOOTSTRAP3_DEFCONFIG)_defconfig >> endef >> else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y) >> define AT91BOOTSTRAP3_CONFIGURE_CMDS >> cp $(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE) $(@D)/.config >> endef >> endif >> >> and be replaced by a chunk of code that sets >> AT91BOOTSTRAP3_KCONFIG_FILE. > > Indeed. > >> However, while this is reasy to do for the >> BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG case, it is much more >> complicated for the BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG case. This >> is because we do not know the path to the defconfig file in the >> at91bootstrap3 source tree. >> >> For the linux and barebox package, when a defconfig name is passed, its >> path in the linux or barebox source tree is easily found: it's >> arch//configs/_defconfig. But for at91bootstrap3, defconfig >> files are spread throughout the tree, in directories named after the >> board. There is no real way of inferring the location of the defconfig >> file just by looking at its name. >> >> Therefore, I am not sure how we can initialize >> AT91BOOTSTRAP3_KCONFIG_FILE in such a situation. >> >> Thomas DS, Yann, am I missing something? > > Well, it looks like the defconfig files are all in sub-directories of > boards/ and that each defconfig is unique in name. > > So, we could probably do something like: > > AT91BOOTSTRAP3_KCONFIG_FILE = boards/*/$(call qstrip,$(AT91BOOTSTRAP3_DEFCONFIG))_defconfig Add a $(wildcard ...) around it, then you'll get the missing config file error if it doesn't match anything. Regards, Arnout > > This would be resolved by the 'cp' we do at the very begining, but is > not very robust (and would anyway warrant a big fat comment). > > I'll see if that would work. > > Regards, > Yann E. MORIN. > -- Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F