diff mbox

[OpenWrt-Devel,08/14] targets images: Add a version 'flavour'

Message ID 1451800982-112057-9-git-send-email-openwrt@daniel.thecshore.com
State Changes Requested
Headers show

Commit Message

Daniel Dickinson Jan. 3, 2016, 6:02 a.m. UTC
From: Daniel Dickinson <openwrt@daniel.thecshore.com>

The version flavour is string that goes into output filenames
and the openwrt_release file, and is available for opkg repositories.
It is intended to make it easy to manage parallel streams of SDK etc that
are built with different options depending on the intended type of target
use.

Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
---
 include/image.mk                             |  3 ++-
 include/version.mk                           |  6 ++++++
 package/base-files/files/etc/openwrt_release |  1 +
 package/base-files/image-config.in           | 13 +++++++++++++
 target/imagebuilder/Makefile                 |  2 +-
 target/sdk/Makefile                          |  2 +-
 target/toolchain/Makefile                    |  2 +-
 7 files changed, 25 insertions(+), 4 deletions(-)
diff mbox

Patch

diff --git a/include/image.mk b/include/image.mk
index cebe42e..8b8e867 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -32,8 +32,9 @@  endef
 
 DIST_SANITIZED:=$(call sanitize,$(VERSION_DIST))
 EXTRA_NAME_SANITIZED=$(call sanitize,$(EXTRA_IMAGE_NAME))
+FLAVOUR_SANITIZED=$(call sanitize,$(VERSION_FLAVOUR))
 
-IMG_PREFIX:=$(DIST_SANITIZED)-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(if $(EXTRA_NAME_SANITIZED),$(EXTRA_NAME_SANITIZED)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
+IMG_PREFIX:=$(DIST_SANITIZED)-$(if $(FLAVOUR_SANITIZED),$(FLAVOUR_SANITIZED)-)$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(if $(EXTRA_NAME_SANITIZED),$(EXTRA_NAME_SANITIZED)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
 
 MKFS_DEVTABLE_OPT := -D $(INCLUDE_DIR)/device_table.txt
 
diff --git a/include/version.mk b/include/version.mk
index 4bce096..3817780 100644
--- a/include/version.mk
+++ b/include/version.mk
@@ -11,6 +11,7 @@ 
 PKG_CONFIG_DEPENDS += \
 	CONFIG_VERSION_NUMBER \
 	CONFIG_VERSION_NICK \
+	CONFIG_VERSION_FLAVOUR \
 	CONFIG_VERSION_REPO \
 	CONFIG_VERSION_DIST \
 	CONFIG_VERSION_MANUFACTURER \
@@ -30,6 +31,9 @@  VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),Bleeding Edge)
 VERSION_NICK:=$(call qstrip_escape,$(CONFIG_VERSION_NICK))
 VERSION_NICK:=$(if $(VERSION_NICK),$(VERSION_NICK),$(RELEASE))
 
+VERSION_FLAVOUR:=$(call qstrip_escape,$(CONFIG_VERSION_FLAVOUR))
+VERSION_FLAVOUR:=$(if $(VERSION_FLAVOUR),$(VERSION_FLAVOUR))
+
 VERSION_REPO:=$(call qstrip_escape,$(CONFIG_VERSION_REPO))
 VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),http://downloads.openwrt.org/snapshots/trunk/%S/packages)
 
@@ -79,6 +83,8 @@  VERSION_SED:=$(SED) 's,%U,$(VERSION_REPO),g' \
 	-e 's,%c,\L$(subst $(space),_,$(VERSION_CODE)),g' \
 	-e 's,%N,$(VERSION_NICK),g' \
 	-e 's,%n,\L$(subst $(space),_,$(VERSION_NICK)),g' \
+	-e 's,%F,$(VERSION_FLAVOUR),g' \
+	-e 's,%f,\L$(subst $(space),_,$(VERSION_FLAVOUR)),g' \
 	-e 's,%D,$(VERSION_DIST),g' \
 	-e 's,%d,\L$(subst $(space),_,$(VERSION_DIST)),g' \
 	-e 's,%R,$(REVISION),g' \
diff --git a/package/base-files/files/etc/openwrt_release b/package/base-files/files/etc/openwrt_release
index 9b2a40c..df91f72 100644
--- a/package/base-files/files/etc/openwrt_release
+++ b/package/base-files/files/etc/openwrt_release
@@ -1,5 +1,6 @@ 
 DISTRIB_ID='%D'
 DISTRIB_RELEASE='%C'
+DISTRIB_FLAVOUR='%F'
 DISTRIB_REVISION='%R'
 DISTRIB_CODENAME='%n'
 DISTRIB_TARGET='%S'
diff --git a/package/base-files/image-config.in b/package/base-files/image-config.in
index 3dfbedc..bc865e3 100644
--- a/package/base-files/image-config.in
+++ b/package/base-files/image-config.in
@@ -152,6 +152,17 @@  if VERSIONOPT
 			This is the name of the release distribution.
 			If unspecified, it defaults to OpenWrt.
 
+	config VERSION_FLAVOUR
+		string
+		prompt "Release flavour"
+		default ""
+		help
+			This is an optional string that gets added to
+			output filenames and is part of the version id,
+			which identifies a 'flavour' of build (for example
+			for differentiating between SDK's/images build with
+			NAS vs router appropriate settings).
+
 	config VERSION_NICK
 		string
 		prompt "Release version nickname"
@@ -183,6 +194,8 @@  if VERSIONOPT
 			 %n .. Release name, lowercase
 			 %D .. Distribution name or "OpenWrt", uppercase
 			 %d .. Distribution name or "openwrt", lowercase
+			 %F .. Flavour, uppercase
+			 %f .. flavour, lowercase
 			 %T .. Target name
 			 %S .. Target/Subtarget name
 			 %t .. Build taint flags, e.g. "no-all busybox"
diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index 106ca3d..0f3fc2e 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -13,7 +13,7 @@  include $(INCLUDE_DIR)/feeds.mk
 
 override MAKEFLAGS=
 
-IB_NAME:=$(VERSION_DIST)-ImageBuilder-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET)).$(HOST_OS)-$(HOST_ARCH)
+IB_NAME:=$(VERSION_DIST)-ImageBuilder-$(if $(VERSION_FLAVOUR),$(VERSION_FLAVOUR)-)$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET)).$(HOST_OS)-$(HOST_ARCH)
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(IB_NAME)
 IB_KDIR:=$(patsubst $(TOPDIR)/%,$(PKG_BUILD_DIR)/%,$(KERNEL_BUILD_DIR))
 IB_LDIR:=$(patsubst $(TOPDIR)/%,$(PKG_BUILD_DIR)/%,$(LINUX_DIR))
diff --git a/target/sdk/Makefile b/target/sdk/Makefile
index 012b597..441ffeb 100644
--- a/target/sdk/Makefile
+++ b/target/sdk/Makefile
@@ -12,7 +12,7 @@  include $(INCLUDE_DIR)/version.mk
 
 override MAKEFLAGS=
 
-SDK_NAME:=$(VERSION_DIST)-SDK-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))$(if $(GCCV),_gcc-$(GCCV))$(DIR_SUFFIX).$(HOST_OS)-$(HOST_ARCH)
+SDK_NAME:=$(VERSION_DIST)-SDK-$(if $(VERSION_FLAVOUR),$(VERSION_FLAVOUR)-)$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))$(if $(GCCV),_gcc-$(GCCV))$(DIR_SUFFIX).$(HOST_OS)-$(HOST_ARCH)
 SDK_BUILD_DIR:=$(BUILD_DIR)/$(SDK_NAME)
 
 STAGING_SUBDIR_HOST := staging_dir/host
diff --git a/target/toolchain/Makefile b/target/toolchain/Makefile
index 08e7166..64fbbff 100644
--- a/target/toolchain/Makefile
+++ b/target/toolchain/Makefile
@@ -14,7 +14,7 @@  include $(INCLUDE_DIR)/version.mk
 
 override MAKEFLAGS=
 
-TOOLCHAIN_NAME:=$(VERSION_DIST)-Toolchain-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))_gcc-$(GCCV)$(DIR_SUFFIX).$(HOST_OS)-$(HOST_ARCH)
+TOOLCHAIN_NAME:=$(VERSION_DIST)-Toolchain-$(if $(VERSION_FLAVOUR),$(VERSION_FLAVOUR)-)$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))_gcc-$(GCCV)$(DIR_SUFFIX).$(HOST_OS)-$(HOST_ARCH)
 TOOLCHAIN_BUILD_DIR:=$(BUILD_DIR)/$(TOOLCHAIN_NAME)
 EXCLUDE_DIRS:=*/ccache \
 	*/initial \