[Buildroot] [PATCH v4 5/7] barebox: extract package name argument

Yegor Yefremov yegorslists at googlemail.com
Thu Mar 31 06:16:06 UTC 2016


On Sun, Mar 20, 2016 at 11:35 PM, Pieter Smith <pieter at boesman.nl> wrote:
> No functional changes: Extracts an argument to the inner-barebox-package
> function to automatically determine the uppercase package name. This is needed
> to support a 2nd config build. This results in the following renaming:
>   'BAREBOX' -> '$(1)'
>
> All barebox packages are meant to be built from the same sources, so related
> KConfig variables (origin, version and patch directory) are not extracted.

Kconfig

>
> Signed-off-by: Pieter Smith <pieter at boesman.nl>

Reviewed-by: Yegor Yefremov <yegorslists at googlemail.com>

> ---
>  boot/barebox/barebox.mk | 139 +++++++++++++++++++++++++-----------------------
>  1 file changed, 71 insertions(+), 68 deletions(-)
>
> diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
> index d84c479..8892ab5 100644
> --- a/boot/barebox/barebox.mk
> +++ b/boot/barebox/barebox.mk
> @@ -7,135 +7,138 @@
>  ################################################################################
>  # inner-barebox-package -- generates the KConfig logic and make targets needed
>  # to support a barebox package. All barebox packages are built from the same
> -# source (origin, version and patches).
> +# source (origin, version and patches). The remainder of the package
> +# configuration is unique to each barebox package.
> +#
> +#  argument 1 is the uppercase package name (used for variable name-space)
>  ################################################################################
>
>  define inner-barebox-package
>
> -BAREBOX_VERSION = $$(call qstrip,$$(BR2_TARGET_BAREBOX_VERSION))
> +$(1)_VERSION = $$(call qstrip,$$(BR2_TARGET_BAREBOX_VERSION))
>
> -ifeq ($$(BAREBOX_VERSION),custom)
> +ifeq ($$($(1)_VERSION),custom)
>  # Handle custom Barebox tarballs as specified by the configuration
> -BAREBOX_TARBALL = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION))
> -BAREBOX_SITE = $$(patsubst %/,%,$$(dir $$(BAREBOX_TARBALL)))
> -BAREBOX_SOURCE = $$(notdir $$(BAREBOX_TARBALL))
> -BR_NO_CHECK_HASH_FOR += $$(BAREBOX_SOURCE)
> +$(1)_TARBALL = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION))
> +$(1)_SITE = $$(patsubst %/,%,$$(dir $$($(1)_TARBALL)))
> +$(1)_SOURCE = $$(notdir $$($(1)_TARBALL))
> +BR_NO_CHECK_HASH_FOR += $$($(1)_SOURCE)
>  else ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_GIT),y)
> -BAREBOX_SITE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
> -BAREBOX_SITE_METHOD = git
> +$(1)_SITE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
> +$(1)_SITE_METHOD = git
>  else
>  # Handle stable official Barebox versions
> -BAREBOX_SOURCE = barebox-$$(BAREBOX_VERSION).tar.bz2
> -BAREBOX_SITE = http://www.barebox.org/download
> +$(1)_SOURCE = barebox-$$($(1)_VERSION).tar.bz2
> +$(1)_SITE = http://www.barebox.org/download
>  ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_VERSION),y)
> -BR_NO_CHECK_HASH_FOR += $$(BAREBOX_SOURCE)
> +BR_NO_CHECK_HASH_FOR += $$($(1)_SOURCE)
>  endif
>  endif
>
> -BAREBOX_DEPENDENCIES = host-lzop
> -BAREBOX_LICENSE = GPLv2 with exceptions
> -BAREBOX_LICENSE_FILES = COPYING
> +$(1)_DEPENDENCIES = host-lzop
> +$(1)_LICENSE = GPLv2 with exceptions
> +$(1)_LICENSE_FILES = COPYING
>
>  ifneq ($$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),)
> -define BAREBOX_APPLY_CUSTOM_PATCHES
> +define $(1)_APPLY_CUSTOM_PATCHES
>         $$(APPLY_PATCHES) $$(@D) \
>                 $$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \*.patch
>  endef
>
> -BAREBOX_POST_PATCH_HOOKS += BAREBOX_APPLY_CUSTOM_PATCHES
> +$(1)_POST_PATCH_HOOKS += $(1)_APPLY_CUSTOM_PATCHES
>  endif
>
> -BAREBOX_INSTALL_IMAGES = YES
> -ifneq ($$(BR2_TARGET_BAREBOX_BAREBOXENV),y)
> -BAREBOX_INSTALL_TARGET = NO
> +$(1)_INSTALL_IMAGES = YES
> +ifneq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
> +$(1)_INSTALL_TARGET = NO
>  endif
>
>  ifeq ($$(KERNEL_ARCH),i386)
> -BAREBOX_ARCH = x86
> +$(1)_ARCH = x86
>  else ifeq ($$(KERNEL_ARCH),x86_64)
> -BAREBOX_ARCH = x86
> +$(1)_ARCH = x86
>  else ifeq ($$(KERNEL_ARCH),powerpc)
> -BAREBOX_ARCH = ppc
> +$(1)_ARCH = ppc
>  else
> -BAREBOX_ARCH = $$(KERNEL_ARCH)
> +$(1)_ARCH = $$(KERNEL_ARCH)
>  endif
>
> -BAREBOX_MAKE_FLAGS = ARCH=$$(BAREBOX_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)"
> -BAREBOX_MAKE_ENV = $$(TARGET_MAKE_ENV)
> +$(1)_MAKE_FLAGS = ARCH=$$($(1)_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)"
> +$(1)_MAKE_ENV = $$(TARGET_MAKE_ENV)
>
> -ifeq ($$(BR2_TARGET_BAREBOX_USE_DEFCONFIG),y)
> -BAREBOX_KCONFIG_DEFCONFIG = $$(call qstrip,$$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))_defconfig
> -else ifeq ($$(BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG),y)
> -BAREBOX_KCONFIG_FILE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE))
> +ifeq ($$(BR2_TARGET_$(1)_USE_DEFCONFIG),y)
> +$(1)_KCONFIG_DEFCONFIG = $$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))_defconfig
> +else ifeq ($$(BR2_TARGET_$(1)_USE_CUSTOM_CONFIG),y)
> +$(1)_KCONFIG_FILE = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE))
>  endif
>
> -BAREBOX_KCONFIG_FRAGMENT_FILES = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES))
> -BAREBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
> -BAREBOX_KCONFIG_OPTS = $$(BAREBOX_MAKE_FLAGS)
> +$(1)_KCONFIG_FRAGMENT_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_CONFIG_FRAGMENT_FILES))
> +$(1)_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
> +$(1)_KCONFIG_OPTS = $$($(1)_MAKE_FLAGS)
>
> -ifeq ($$(BR2_TARGET_BAREBOX_BAREBOXENV),y)
> -define BAREBOX_BUILD_BAREBOXENV_CMDS
> +ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
> +define $(1)_BUILD_BAREBOXENV_CMDS
>         $$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \
>                 $$(@D)/scripts/bareboxenv.c
>  endef
>  endif
>
> -ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_ENV),y)
> -BAREBOX_ENV_NAME = $$(notdir $$(call qstrip,\
> -       $$(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)))
> -define BAREBOX_BUILD_CUSTOM_ENV
> +ifeq ($$(BR2_TARGET_$(1)_CUSTOM_ENV),y)
> +$(1)_ENV_NAME = $$(notdir $$(call qstrip,\
> +       $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH)))
> +define $(1)_BUILD_CUSTOM_ENV
>         $$(@D)/scripts/bareboxenv -s \
> -               $$(call qstrip, $$(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)) \
> -               $$(@D)/$$(BAREBOX_ENV_NAME)
> +               $$(call qstrip, $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH)) \
> +               $$(@D)/$$($(1)_ENV_NAME)
>  endef
> -define BAREBOX_INSTALL_CUSTOM_ENV
> -       cp $$(@D)/$$(BAREBOX_ENV_NAME) $$(BINARIES_DIR)
> +define $(1)_INSTALL_CUSTOM_ENV
> +       cp $$(@D)/$$($(1)_ENV_NAME) $$(BINARIES_DIR)
>  endef
>  endif
>
> -define BAREBOX_BUILD_CMDS
> -       $$(BAREBOX_BUILD_BAREBOXENV_CMDS)
> -       $$(TARGET_MAKE_ENV) $$(MAKE) $$(BAREBOX_MAKE_FLAGS) -C $$(@D)
> -       $$(BAREBOX_BUILD_CUSTOM_ENV)
> +define $(1)_BUILD_CMDS
> +       $$($(1)_BUILD_BAREBOXENV_CMDS)
> +       $$(TARGET_MAKE_ENV) $$(MAKE) $$($(1)_MAKE_FLAGS) -C $$(@D)
> +       $$($(1)_BUILD_CUSTOM_ENV)
>  endef
>
> -define BAREBOX_INSTALL_IMAGES_CMDS
> -       if test -e $$(@D)/$$(call qstrip,$$(BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE)); then \
> -               cp -L $$(@D)/$$(call qstrip,$$(BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE)) \
> -                     $$(BINARIES_DIR)/$$(call qstrip,$$(BR2_TARGET_BAREBOX_OUTPUT_IMAGE_FILE)) ; \
> -       elif test -e $$(@D)/images/$$(call qstrip,$$(BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE)); then \
> -               cp $$(@D)/images/$$(call qstrip,$$(BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE)) \
> -                  $$(BINARIES_DIR)/$$(call qstrip,$$(BR2_TARGET_BAREBOX_OUTPUT_IMAGE_FILE)) ; \
> +define $(1)_INSTALL_IMAGES_CMDS
> +       if test -e $$(@D)/$$(call qstrip,$$(BR2_TARGET_$(1)_BUILT_IMAGE_FILE)); then \
> +               cp -L $$(@D)/$$(call qstrip,$$(BR2_TARGET_$(1)_BUILT_IMAGE_FILE)) \
> +                     $$(BINARIES_DIR)/$$(call qstrip,$$(BR2_TARGET_$(1)_OUTPUT_IMAGE_FILE)) ; \
> +       elif test -e $$(@D)/images/$$(call qstrip,$$(BR2_TARGET_$(1)_BUILT_IMAGE_FILE)); then \
> +               cp $$(@D)/images/$$(call qstrip,$$(BR2_TARGET_$(1)_BUILT_IMAGE_FILE)) \
> +                  $$(BINARIES_DIR)/$$(call qstrip,$$(BR2_TARGET_$(1)_OUTPUT_IMAGE_FILE)) ; \
>         else \
> -               echo "error: Specified built image file not found: $$(call qstrip,$$(BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE))" >&2 ; \
> +               echo "error: Specified built image file not found: $$(call qstrip,$$(BR2_TARGET_$(1)_BUILT_IMAGE_FILE))" >&2 ; \
>                 echo "       in: $$(@D)/" >&2 ; \
>                 echo "       or: $$(@D)/images/" >&2 ; \
> -               echo "       Check your BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE setting." >&2 ; \
> +               echo "       Check your BR2_TARGET_$(1)_BUILT_IMAGE_FILE setting." >&2 ; \
>                 exit 1 ; \
>         fi
> -       $$(BAREBOX_INSTALL_CUSTOM_ENV)
> +       $$($(1)_INSTALL_CUSTOM_ENV)
>  endef
>
> -ifeq ($$(BR2_TARGET_BAREBOX_BAREBOXENV),y)
> -define BAREBOX_INSTALL_TARGET_CMDS
> +ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
> +define $(1)_INSTALL_TARGET_CMDS
>         cp $$(@D)/bareboxenv $$(TARGET_DIR)/usr/bin
>  endef
>  endif
>
>  # Checks to give errors that the user can understand
>  # Must be before we call to kconfig-package
> -ifeq ($$(BR2_TARGET_BAREBOX)$$(BR_BUILDING),yy)
> +ifeq ($$(BR2_TARGET_$(1))$$(BR_BUILDING),yy)
>  # We must use the user-supplied kconfig value, because
> -# BAREBOX_KCONFIG_DEFCONFIG will at least contain the
> +# $(1)_KCONFIG_DEFCONFIG will at least contain the
>  # trailing _defconfig
> -ifeq ($$(or $$(BAREBOX_KCONFIG_FILE),$$(call qstrip,$$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))),)
> -$$(error No Barebox config. Check your BR2_TARGET_BAREBOX_BOARD_DEFCONFIG or BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE settings)
> +ifeq ($$(or $$($(1)_KCONFIG_FILE),$$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))),)
> +$$(error No Barebox config. Check your BR2_TARGET_$(1)_BOARD_DEFCONFIG or BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE settings)
>  endif
> -ifndef BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE
> -$$(error No barebox built image filename specified. Check your BR2_TARGET_BAREBOX_BUILT_IMAGE_FILE setting)
> +ifndef BR2_TARGET_$(1)_BUILT_IMAGE_FILE
> +$$(error No barebox built image filename specified. Check your BR2_TARGET_$(1)_BUILT_IMAGE_FILE setting)
>  endif
> -ifndef BR2_TARGET_BAREBOX_OUTPUT_IMAGE_FILE
> -$$(error No barebox output image filename specified. Check your BR2_TARGET_BAREBOX_OUTPUT_IMAGE_FILE setting)
> +ifndef BR2_TARGET_$(1)_OUTPUT_IMAGE_FILE
> +$$(error No barebox output image filename specified. Check your BR2_TARGET_$(1)_OUTPUT_IMAGE_FILE setting)
>  endif
>  endif
>
> @@ -146,7 +149,7 @@ endef
>  # barebox-package -- the target generator macro for barebox packages
>  ################################################################################
>
> -barebox-package=$(call inner-barebox-package)
> +barebox-package=$(call inner-barebox-package,$(call UPPERCASE,$(pkgname)))
>
>  # instantiate this barebox package
>  $(eval $(call barebox-package))
> --
> 2.5.0
>



More information about the buildroot mailing list