Add the Git revision used for the build. It is very useful especially when
using custom or vendor U-Boot forks so we can map a binary to a specific
source revision. Valid values are "0" or "1".

This is based on a class which has been in use in `meta-freescale` BSP
for years and has been very useful especially for custom U-Boot releases
as it allow we to know the exact Git revision used for the binary.

Signed-off-by: Otavio Salvador <ota...@ossystems.com.br>
---

 meta/recipes-bsp/u-boot/u-boot.inc | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/meta/recipes-bsp/u-boot/u-boot.inc 
b/meta/recipes-bsp/u-boot/u-boot.inc
index b13db224732..39d35500e11 100644
--- a/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/meta/recipes-bsp/u-boot/u-boot.inc
@@ -24,6 +24,11 @@ PACKAGECONFIG[openssl] = ",,openssl-native"
 # file already exists it will not be overwritten.
 UBOOT_LOCALVERSION ?= ""
 
+# Add the Git revision used for the build. It is very useful especially when
+# using custom or vendor U-Boot forks so we can map a binary to a specific
+# source revision. Valid values are "0" or "1".
+UBOOT_LOCALVERSION_AUTO ?= "0"
+
 # Some versions of u-boot use .bin and others use .img.  By default use .bin
 # but enable individual recipes to change this value.
 UBOOT_SUFFIX ??= "bin"
@@ -84,6 +89,19 @@ do_configure () {
             oe_runmake -C ${S} O=${B} oldconfig
         fi
         merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
+
+        if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]; then
+            if [ "${UBOOT_LOCALVERSION_AUTO}" = "1" ]; then
+                # Add GIT revision to the local version
+                head=`cd ${S} ; git rev-parse --verify --short HEAD 2> 
/dev/null`
+                printf "%s%s%s" "${UBOOT_LOCALVERSION}" +g $head > 
${S}/.scmversion
+                printf "%s%s%s" "${UBOOT_LOCALVERSION}" +g $head > 
${B}/.scmversion
+            else
+                printf "%s" "${UBOOT_LOCALVERSION}" > ${S}/.scmversion
+                printf "%s" "${UBOOT_LOCALVERSION}" > ${B}/.scmversion
+            fi
+        fi
+
         cml1_do_configure
     else
         DEVTOOL_DISABLE_MENUCONFIG=true
@@ -99,12 +117,6 @@ do_compile () {
        unset CFLAGS
        unset CPPFLAGS
 
-       if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
-       then
-               echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
-               echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
-       fi
-
     if [ -n "${UBOOT_CONFIG}" ]
     then
         unset i j k
-- 
2.26.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#136888): 
https://lists.openembedded.org/g/openembedded-core/message/136888
Mute This Topic: https://lists.openembedded.org/mt/72682446/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to