[Buildroot] [git commit] boot/at91bootstrap3: migrate to pkg-kconfig
Patrick Noffke
patrick at noffke.me
Tue Apr 7 15:25:01 UTC 2015
Hi,
I just did a rebase to prepare for submitting a patch, and now at91bootstrap3 doesn't build. I am using a custom config based on an existing board (at91sam9m10g45ek). Buildroot copies my custom config to output/build/at91bootstrap3.7.1/.config, then appears to be running make defconfig prior to running make. make defconfig results in replacing some of my CONFIG_XX settings. If I manually copy the config and then manually run make (thus skipping make defconfig), then it builds as I expect.
I am not sure if this patch is the cause, or something else. I may be using at91bootstrap3 incorrectly (perhaps I needed to make a custom board), but I don't see why defconfig should be done with a custom config.
I'm happy to try and make a patch to fix this, but I could use some guidance of where to start.
Thanks,
Patrick
On Monday, April 06, 2015 11:30:48 PM Thomas Petazzoni wrote:
> commit: http://git.buildroot.net/buildroot/commit/?id=2016cb30f103024a8dfb50bcfe9a68bfac2f1118
> branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master
>
> In at91bootstrap3, defconfig files are spread out in various
> sub-directories, so we can't easily construct the path to those
> defconfig files.
>
> As it turns out, there are no two defconfig files named the same; they
> all contain at least the board name, plus some extra info. And there is
> always only one directory depth below board/ where all defconfig files
> are to be found.
>
> Also, at91bootstrap3's own Makefile relies on this single-match as it
> runs a 'find' command to locate the defconfig file.
>
> So, even though we do not know the path to the defconfig file, we can
> construct a shell-glob quite easily (in the hope that there will never
> be more than one directory depth).
>
> Signed-off-by: Mauro Condarelli <mc5686 at mclink.it>
> [yann.morin.1998 at free.fr:
> - remove custom _CONFIGURE_CMDS, handled by pkg-kconfig (Thomas)
> - remove redundant intermediate variable
> - fix using internal defconfig files
> ]
> Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> Cc: Thomas De Schampheleire <patrickdepinguin at gmail.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
> boot/at91bootstrap3/at91bootstrap3.mk | 27 ++++++++++-----------------
> 1 files changed, 10 insertions(+), 17 deletions(-)
>
> diff --git a/boot/at91bootstrap3/at91bootstrap3.mk b/boot/at91bootstrap3/at91bootstrap3.mk
> index b780617..f35ffc7 100644
> --- a/boot/at91bootstrap3/at91bootstrap3.mk
> +++ b/boot/at91bootstrap3/at91bootstrap3.mk
> @@ -10,10 +10,6 @@ AT91BOOTSTRAP3_SITE = $(call github,linux4sam,at91bootstrap,$(AT91BOOTSTRAP3_VER
> AT91BOOTSTRAP3_INSTALL_IMAGES = YES
> AT91BOOTSTRAP3_INSTALL_TARGET = NO
>
> -AT91BOOTSTRAP3_DEFCONFIG = \
> - $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG))
> -AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE = \
> - $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE))
> AT91BOOTSTRAP3_CUSTOM_PATCH_DIR = \
> $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR))
>
> @@ -27,16 +23,6 @@ endef
> AT91BOOTSTRAP3_POST_PATCH_HOOKS += AT91BOOTSTRAP3_APPLY_CUSTOM_PATCHES
> endif
>
> -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
> -
> define AT91BOOTSTRAP3_BUILD_CMDS
> $(MAKE) $(AT91BOOTSTRAP3_MAKE_OPTS) -C $(@D)
> endef
> @@ -45,18 +31,25 @@ 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 = $(AT91BOOTSTRAP3_DIR)/board/*/$(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG))_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))
>
> # Checks to give errors that the user can understand
> ifeq ($(filter source,$(MAKECMDGOALS)),)
> ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y)
> -ifeq ($(AT91BOOTSTRAP3_DEFCONFIG),)
> +ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG)),)
> $(error No at91bootstrap3 defconfig name specified, check your BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG setting)
> endif
> endif
>
> ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y)
> -ifeq ($(AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE),)
> +ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)),)
> $(error No at91bootstrap3 configuration file specified, check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE setting)
> endif
> endif
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
More information about the buildroot
mailing list