blob: 3d967bf60a5f4b49e68d6a4a3b86f553e40e1b74 [file] [log] [blame]
Stephen Cpreke7254c72015-02-19 14:33:38 -06001################################################################################
2#
3# pkg-versions
4#
5# Read VERSION.readme in the current directory to learn about the version
6# string structure
7#
8################################################################################
9
10define OPENPOWER_SUBPACKAGE_VERSION
11
12$(2)_VERSION_FILE = $$(OPENPOWER_VERSION_DIR)/$(1).version.txt
13ALL_SUBPACKAGE_VERSIONS += $$($(2)_VERSION_FILE)
14
15### Create subpackage patch file
16define $(2)_OPENPOWER_PATCH_FILE
17
18mkdir -p "$$(OPENPOWER_VERSION_DIR)";
19
20# Remove patch file to start off fresh
21if [ -f $$(OPENPOWER_VERSION_DIR)/$(1).patch.txt ]; then \
22 rm -rf $$(OPENPOWER_VERSION_DIR)/$(1).patch.txt; \
23fi
24
25# Check all global patch directories
26$$(foreach path, $$(BR2_GLOBAL_PATCH_DIR),if ls $$(path)/$(1)/*.patch 2>/dev/null; then \
27 sha512sum $$(path)/$(1)/*.patch | sha512sum | \
28 xargs echo >> $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt; fi;)
29
30# Check the package patch dir, $$(PKGDIR) doesn't exist when running the version rules
31if [ -n "$$(PKGDIR)" ]; then \
32 if ls $$(PKGDIR)*.patch 2>/dev/null; then sha512sum $$(PKGDIR)*.patch | sha512sum | \
33 xargs echo >> $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt; \
34 fi; \
35else \
Joel Stanley5ab5fdb2016-10-31 23:10:24 +103036 if ls $$(BR2_EXTERNAL_OP_BUILD_PATH)/package/$(1)/*.patch 2>/dev/null; then sha512sum \
37 $$(BR2_EXTERNAL_OP_BUILD_PATH)/package/$(1)/*.patch | sha512sum | \
Stephen Cpreke7254c72015-02-19 14:33:38 -060038 xargs echo >> $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt; \
39 fi; \
40fi
41
Sam Mendoza-Jonase56617a2016-03-09 11:59:08 +110042# If this is for linux, also check openpower/linux
Stewart Smithfd7a2262017-02-17 17:20:54 +110043if [ "LINUX" == "$(2)" ]; then \
Joel Stanley5ab5fdb2016-10-31 23:10:24 +103044 if ls $$(BR2_EXTERNAL_OP_BUILD_PATH)/$(1)/*.patch 2>/dev/null; then sha512sum \
45 $$(BR2_EXTERNAL_OP_BUILD_PATH)/$(1)/*.patch | sha512sum | \
Sam Mendoza-Jonase56617a2016-03-09 11:59:08 +110046 xargs echo >> $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt; \
47 fi; \
48fi;
49
Stephen Cpreke7254c72015-02-19 14:33:38 -060050# Combine all the patches found in the package and global package directories
51if [ -f $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt ]; then \
52 cat $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt | sha512sum | cut -c 1-7 | \
53 xargs echo -n > $$(OPENPOWER_VERSION_DIR)/$(1).patch.txt; \
54fi
55
56# Remove the tmp_patch file
57if [ -f $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt ]; then \
58 rm -rf $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt; \
59fi
60
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -030061endef # $(2)_OPENPOWER_PATCH_FILE
Stephen Cpreke7254c72015-02-19 14:33:38 -060062
63### Create subpackage version file
64define $(2)_OPENPOWER_VERSION_FILE
65
66mkdir -p "$$(OPENPOWER_VERSION_DIR)"
67
68# Add package name
69echo -n " $(1)-" > $$($(2)_VERSION_FILE)
70
71# If site local
72# Add site local and user, local commit, if local is dirty
73# Else not local
Sam Mendoza-Jonasddc5fab2016-03-11 14:37:04 +110074# Add package version, extraversion if linux, op-build is dirty, op-build patches
Stephen Cpreke7254c72015-02-19 14:33:38 -060075if [ "$$($(2)_SITE_METHOD)" == "local" ]; then \
76echo -n "site_local-" >> $$($(2)_VERSION_FILE); \
77whoami | xargs echo -n >> $$($(2)_VERSION_FILE); \
78echo -n "-" >> $$($(2)_VERSION_FILE); \
79\
Stewart Smithfd7a2262017-02-17 17:20:54 +110080cd "$$($(2)_SITE)"; (git describe --always --dirty || echo "unknown") \
81 |sed -e 's/$(1)-//' | xargs echo -n\
Stephen Cpreke7254c72015-02-19 14:33:38 -060082 >> $$($(2)_VERSION_FILE); \
83\
Stephen Cpreke7254c72015-02-19 14:33:38 -060084else \
85\
86[ `echo -n $$($(2)_VERSION) | wc -c` == "40" ] && (echo -n $$($(2)_VERSION) | \
Stewart Smith93157d12015-05-14 16:01:44 +100087 sed "s/^\([0-9a-f]\{7\}\).*/\1/;s/$(1)-//;" >> $$($(2)_VERSION_FILE)) \
88 || echo -n $$($(2)_VERSION) | sed -e 's/$(1)-//' >> $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -060089\
Stewart Smithfd7a2262017-02-17 17:20:54 +110090if [ "LINUX" == "$(2)" ]; then \
Sam Mendoza-Jonasddc5fab2016-03-11 14:37:04 +110091 if ls $$(BUILD_DIR)/$(1)-$$($(2)_VERSION)/Makefile 1>/dev/null; then \
92 head $$(BUILD_DIR)/$(1)-$$($(2)_VERSION)/Makefile | grep EXTRAVERSION \
93 | cut -d ' ' -f 3 | \
94 xargs echo -n >> $$($(2)_VERSION_FILE); \
95 fi; \
96fi; \
97\
Stephen Cpreke7254c72015-02-19 14:33:38 -060098if [ -f $$(OPENPOWER_VERSION_DIR)/$(1).patch.txt ]; then \
Stewart Smithfd7a2262017-02-17 17:20:54 +110099 echo -n "-p" >> $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600100 cat $$(OPENPOWER_VERSION_DIR)/$(1).patch.txt >> $$($(2)_VERSION_FILE); fi \
101fi
102
103# Add new line to version.txt
104echo "" >> $$($(2)_VERSION_FILE);
105
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300106endef # $(2)_OPENPOWER_VERSION_FILE
Stephen Cpreke7254c72015-02-19 14:33:38 -0600107
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300108# Add appropriate templates to hooks if they're not there already
109ifeq (,$$(findstring $(2)_OPENPOWER_PATCH_FILE,$$($(2)_POST_PATCH_HOOKS)))
Stephen Cpreke7254c72015-02-19 14:33:38 -0600110$(2)_POST_PATCH_HOOKS += $(2)_OPENPOWER_PATCH_FILE
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300111endif
112ifeq (,$$(findstring $(2)_OPENPOWER_VERSION_FILE,$$($(2)_PRE_CONFIGURE_HOOKS)))
Samuel Mendoza-Jonasd38455d2016-07-15 16:32:18 +1000113$(2)_PRE_CONFIGURE_HOOKS += $(2)_OPENPOWER_VERSION_FILE
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300114endif
Stephen Cpreke7254c72015-02-19 14:33:38 -0600115
116# Top-level rule to print or generate a subpackage version
117$(1)-version: $$(if $$(wildcard $$($(2)_VERSION_FILE)),$(1)-print-version,$(1)-build-version)
118
119# Rule to print out subpackage version
120$(1)-print-version:
121 @echo "=== $(2)_VERSION ==="
122 @cat $$($(2)_VERSION_FILE) | xargs echo
123
124# Rule to generate subpackage version
125$(1)-build-version:
126 @echo "=== $(2)_VERSION ==="
127 @echo " Searching for patches..."
128 @$$($(2)_OPENPOWER_PATCH_FILE)
129 @echo " End of patches...";
130 @echo " Creating version string (various output may display)..."
131 @$$($(2)_OPENPOWER_VERSION_FILE)
132 @echo " End creating version string..."
133 @echo -n " version: "; cat $$($(2)_VERSION_FILE) | xargs echo
134
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300135endef # OPENPOWER_SUBPACKAGE_VERSION
Stephen Cpreke7254c72015-02-19 14:33:38 -0600136
Stephen Cpreke7254c72015-02-19 14:33:38 -0600137
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300138####
139# $(1) is the lowercase package version
140# $(2) is the uppercase pacakge version
141####
142define INNER_OPENPOWER_VERSION
143
144$(2)_VERSION_FILE = $$(OPENPOWER_VERSION_DIR)/$(1).version.txt
145ifeq ($$(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
146UPPER_CASE_SIGN_MODE = $(call UPPERCASE,$$(BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE))
147CONFIG_NAME = $$(BR2_OPENPOWER_P10_CONFIG_NAME)
148VERSIONED_SUBPACKAGES = $$(OPENPOWER_PNOR_P10_VERSIONED_SUBPACKAGES)
149else
Nick Bofferding6fafd622017-09-28 15:23:23 -0500150UPPER_CASE_SIGN_MODE = $(call UPPERCASE,$$(BR2_OPENPOWER_SECUREBOOT_SIGN_MODE))
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300151CONFIG_NAME = $$(BR2_OPENPOWER_CONFIG_NAME)
152VERSIONED_SUBPACKAGES = $$(OPENPOWER_VERSIONED_SUBPACKAGES)
153endif
Stephen Cpreke7254c72015-02-19 14:33:38 -0600154
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300155$$(eval $$(foreach pkg,$$(VERSIONED_SUBPACKAGES), \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600156 $$(call OPENPOWER_SUBPACKAGE_VERSION,$$(pkg),$$(call UPPERCASE,$$(pkg)))))
157
158### Combine subpackage files into one version file
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300159define $(2)_OPENPOWER_VERSION_FILE
Stephen Cpreke7254c72015-02-19 14:33:38 -0600160
161mkdir -p "$$(OPENPOWER_VERSION_DIR)"
162
163# Add vendor or default open-power
Stewart Smithfd7a2262017-02-17 17:20:54 +1100164if [ -n "$$(OPBUILD_VENDOR)" ]; then \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300165echo -n "$$(OPBUILD_VENDOR)-" > $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600166else \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300167echo -n "open-power-" > $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600168fi
169
170# Add platform or default from defconfig
Stewart Smithfd7a2262017-02-17 17:20:54 +1100171if [ -n "$$(OPBUILD_PLATFORM)" ]; then \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300172echo -n "$$(OPBUILD_PLATFORM)-" >> $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600173else \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300174echo -n "$$(CONFIG_NAME)-" >> $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600175fi
176
177# Add op-build version
178# Order: OPBUILD_VERSION, tag, commit, unknown
Stewart Smithfd7a2262017-02-17 17:20:54 +1100179if [ -n "$$(OPBUILD_VERSION)" ]; then \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300180 echo -n "$$(OPBUILD_VERSION)" >> $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600181else \
Stewart Smithfd7a2262017-02-17 17:20:54 +1100182cd "$$(BR2_EXTERNAL_OP_BUILD_PATH)"; (git describe --always --dirty || echo "unknown") \
183 | xargs echo -n \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300184 >> $$($(2)_VERSION_FILE); \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600185fi
186
Nick Bofferding6fafd622017-09-28 15:23:23 -0500187# Flag whether op-build is production signed
188if [ "$$(UPPER_CASE_SIGN_MODE)" == 'PRODUCTION' ]; then \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300189 echo -n "-prod" >> $$($(2)_VERSION_FILE); \
Nick Bofferding6fafd622017-09-28 15:23:23 -0500190fi
191
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300192# Add new line to $$($(2)_VERSION_FILE)
193echo "" >> $$($(2)_VERSION_FILE);
Stephen Cpreke7254c72015-02-19 14:33:38 -0600194
Sam Mendoza-Jonasdc7e2382016-03-09 16:13:02 +1100195# Add a specific line for op-build if it has been overwritten
Stewart Smithfd7a2262017-02-17 17:20:54 +1100196if [ -n "$$(OPBUILD_VENDOR)" ]; then \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300197echo -n " op-build-" >> $$($(2)_VERSION_FILE); \
Stewart Smithfd7a2262017-02-17 17:20:54 +1100198(cd "$$(BR2_EXTERNAL_OP_BUILD_PATH)"; (git describe --always --dirty || echo "unknown")) \
199 | xargs echo \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300200 >> $$($(2)_VERSION_FILE); \
Sam Mendoza-Jonasdc7e2382016-03-09 16:13:02 +1100201fi
202
203# Include the currently checked-out buildroot version
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300204echo -n " buildroot-" >> $$($(2)_VERSION_FILE);
Stewart Smithfd7a2262017-02-17 17:20:54 +1100205(git describe --always --dirty || echo "unknown") \
206 | xargs echo \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300207 >> $$($(2)_VERSION_FILE); \
Sam Mendoza-Jonasdc7e2382016-03-09 16:13:02 +1100208
209
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300210# Combing subpackage version files into $$($(2)_VERSION_FILE)
Stephen Cpreke7254c72015-02-19 14:33:38 -0600211$$(foreach verFile,$$(ALL_SUBPACKAGE_VERSIONS),
212 if [ -f $$(verFile) ]; then cat $$(verFile) \
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300213 >>$$($(2)_VERSION_FILE); fi )
Stephen Cpreke7254c72015-02-19 14:33:38 -0600214
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300215endef # $(2)_OPENPOWER_VERSION_FILE
Stephen Cpreke7254c72015-02-19 14:33:38 -0600216
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300217$(2)_PRE_BUILD_HOOKS += $(2)_OPENPOWER_VERSION_FILE
Stephen Cpreke7254c72015-02-19 14:33:38 -0600218
219# Top-level rule to print or generate openpower-pnor version
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300220$(1)-version: $$(if $$(wildcard $$($(2)_VERSION_FILE)),$(1)-print-version,$(1)-build-version)
Stephen Cpreke7254c72015-02-19 14:33:38 -0600221
222# Rule to print out pnor version
223$(1)-print-version:
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300224 @echo "=== $(2)_VERSION ==="
225 @cat $$($(2)_VERSION_FILE)
Stephen Cpreke7254c72015-02-19 14:33:38 -0600226 @echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
227
Stephen Cpreke7254c72015-02-19 14:33:38 -0600228# Rule to generate pnor version
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300229$(1)-build-version: $$(foreach pkg,$$(VERSIONED_SUBPACKAGES), $$(pkg)-version)
230 @$$($(2)_OPENPOWER_VERSION_FILE)
231 @echo "=== $(2)_VERSION ==="
232 @cat $$($(2)_VERSION_FILE)
Stephen Cpreke7254c72015-02-19 14:33:38 -0600233 @echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
234
Stephen Cprekded98fb2015-04-15 17:11:52 -0500235# Rule to force re-generation of all versioned subpackages
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300236$(1)-build-version-all: $$(foreach pkg,$$(VERSIONED_SUBPACKAGES), $$(pkg)-build-version)
237 @$$($(2)_OPENPOWER_VERSION_FILE)
238 @echo "=== $(2)_VERSION ==="
239 @cat $$($(2)_VERSION_FILE)
Stephen Cprekded98fb2015-04-15 17:11:52 -0500240 @echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
241
Klaus Heinrich Kiwid2551242020-07-16 16:59:04 -0300242endef # INNER_OPENPOWER_VERSION
243
244OPENPOWER_VERSION = $(call INNER_OPENPOWER_VERSION,$(pkgname),$(call UPPERCASE,$(pkgname)))
245