From patchwork Sun Apr 24 09:18:45 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pieter Smith X-Patchwork-Id: 614126 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id 3qt3hZ45Qrz9t5q for ; Sun, 24 Apr 2016 19:19:26 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=tex7dRGp; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id A0A5D30535; Sun, 24 Apr 2016 09:19:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ki7oxOIHRWXT; Sun, 24 Apr 2016 09:19:17 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 2D4DF30CAE; Sun, 24 Apr 2016 09:19:10 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id A15C01C0F9E for ; Sun, 24 Apr 2016 09:19:04 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 998D28930A for ; Sun, 24 Apr 2016 09:19:04 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tXDD-W3cxMKb for ; Sun, 24 Apr 2016 09:19:04 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 9C0FA892F6 for ; Sun, 24 Apr 2016 09:19:03 +0000 (UTC) Received: by mail-wm0-f67.google.com with SMTP id e201so14601995wme.2 for ; Sun, 24 Apr 2016 02:19:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=CaPzXwfytd5paE/uOp48+XfJ+/ymiYd819DV4GqUUYA=; b=tex7dRGpyDLifvfZZMbUXL7GTV0o+v+yQTJipd5K7s0fNaacXA4hb7Bcjq8sS0Ur/F UVJMlT6A78W6bb3XqhfFHn1yHddO29CLHisteozbG5ghYCaXQgMsQtT0xaV5qICu7q/6 3FzrKCGZT/buI7jmmZOr/X6A45VLrGROtStrsfE9Z398ngK322qKnKvAKY/Rhi4CELqy hhY7e6zyEew3kNgcTsQ783xsiLf3ECRHjE5B8mqtc18r1I2keIjQ72rbiRjxWlkNQtIr 0F1/uT54KSqgFfhev05q1vyfLDETzicnOzzzAg8gvwRLwPZ3BZkR8/CjqNBFRGAmY2ED DQDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:in-reply-to:references; bh=CaPzXwfytd5paE/uOp48+XfJ+/ymiYd819DV4GqUUYA=; b=BgfePED/YSOOUYk4iPJxK2OolbaESfd8xvQ7nB73NwELXaQxPH4+WlVXHeMGKBpIF5 MSt/sJXlXFHwq0E9Qe72CbUVHTYMhgGBtJ07QLSBWAGGgGSZDA8JJvHr5vb9Ht18++jO EEOn3s5u0YKf0HqOE4Tv/Bp16LuUJ7WRfQ7fqgVTGnFe/HSm40jLBZo2B1fBNqV43POi 44KJyIOZIujmgihXz8mjmcebrDX++UsTqDVFc1772AxHyW2SZHEA+GHmhXSOoQOhmk9G CIIVXpSIQD/k1iGBuTqbNwvsDa1tNu7wVbFwiwzTugOQCTYDaMWfq8lDjLfVaoP5VSPQ I/+w== X-Gm-Message-State: AOPr4FWf0l6YpWe69kl0njisc3jo9H6Limw+Avgts4qcjCGAHiI5M24r9DQcIskacQ3Paw== X-Received: by 10.194.84.100 with SMTP id x4mr32866536wjy.169.1461489542239; Sun, 24 Apr 2016 02:19:02 -0700 (PDT) Received: from localhost.localdomain ([31.161.172.8]) by smtp.gmail.com with ESMTPSA id j8sm17390809wjv.44.2016.04.24.02.19.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 24 Apr 2016 02:19:01 -0700 (PDT) From: Pieter Smith To: buildroot@buildroot.org, Yegor Yefremov , Arnout Vandecappelle , Thomas Petazzoni Date: Sun, 24 Apr 2016 11:18:45 +0200 Message-Id: <25e6116304fc372a998f7091f95a08ea91737470.1461489060.git.pieter@boesman.nl> X-Mailer: git-send-email 2.5.0 In-Reply-To: References: In-Reply-To: References: Cc: Pieter Smith , "Yann E. MORIN" , Peter Korsgaard Subject: [Buildroot] [PATCH v5 3/5] barebox: extract package name argument X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" 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. Signed-off-by: Pieter Smith --- boot/barebox/barebox.mk | 121 +++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 59 deletions(-) diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk index 883d083..a5b1b1e 100644 --- a/boot/barebox/barebox.mk +++ b/boot/barebox/barebox.mk @@ -7,125 +7,128 @@ ################################################################################ # 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 -BAREBOX_IMAGE_FILE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_IMAGE_FILE)) +$(1)_IMAGE_FILE = $$(call qstrip,$$(BR2_TARGET_$(1)_IMAGE_FILE)) -define BAREBOX_INSTALL_IMAGES_CMDS - if test -n "$$(BAREBOX_IMAGE_FILE)"; then \ - cp -L $$(@D)/$$(BAREBOX_IMAGE_FILE) $$(BINARIES_DIR) ; \ +define $(1)_INSTALL_IMAGES_CMDS + if test -n "$$($(1)_IMAGE_FILE)"; then \ + cp -L $$(@D)/$$($(1)_IMAGE_FILE) $$(BINARIES_DIR) ; \ elif test -h $$(@D)/barebox-flash-image ; then \ cp -L $$(@D)/barebox-flash-image $$(BINARIES_DIR)/barebox.bin ; \ else \ cp $$(@D)/barebox.bin $$(BINARIES_DIR);\ 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 endif @@ -137,7 +140,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 $(barebox-package))