[Buildroot] [PATCH 2/3] Transformation of package 'at91bootstrap3' to KConfig style.

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Apr 6 10:20:20 UTC 2015


Dear Mauro Condarelli,

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 <mc5686 at mclink.it>
> ---
>  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 <pkg>_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.

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/<ARCH>/configs/<name>_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?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the buildroot mailing list