From a83d032731e12da9297b696a6d08c014d81640db Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 1 Sep 2014 11:20:30 -0300 Subject: [PATCH] fsl-kernel-localversion: Easy LOCALVERSION handling This class allow for easy extending of kernel recipes to easy the LOCALVERSION handling, allowing to reuse of code between different kernel recipes The following options are supported: SCMVERSION Puts the Git hash in kernel local version LOCALVERSION Value used in LOCALVERSION (default to '+fslc') This about avoid code duplication among Layerscape and i.MX. Change-Id: I3999dbdc2cb761063fe5f83dea65ddb14adec80c Signed-off-by: Otavio Salvador --- .../classes/fsl-kernel-localversion.bbclass | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 meta-fsl-arm/classes/fsl-kernel-localversion.bbclass diff --git a/meta-fsl-arm/classes/fsl-kernel-localversion.bbclass b/meta-fsl-arm/classes/fsl-kernel-localversion.bbclass new file mode 100644 index 00000000..bb4bdf59 --- /dev/null +++ b/meta-fsl-arm/classes/fsl-kernel-localversion.bbclass @@ -0,0 +1,39 @@ +# Freescale Kernel LOCALVERSION extension +# +# This allow to easy reuse of code between different kernel recipes +# +# The following options are supported: +# +# SCMVERSION Puts the Git hash in kernel local version +# LOCALVERSION Value used in LOCALVERSION (default to '+fslc') +# +# Copyright 2014 (C) O.S. Systems Software LTDA. + +SCMVERSION ??= "y" +LOCALVERSION ??= "+fslc" + +kernel_conf_variable() { + CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;" + if test "$2" = "n" + then + echo "# CONFIG_$1 is not set" >> ${S}/.config + else + echo "CONFIG_$1=$2" >> ${S}/.config + fi +} + +do_configure_prepend() { + echo "" > ${S}/.config + CONF_SED_SCRIPT="" + + kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\"" + kernel_conf_variable LOCALVERSION_AUTO y + + sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${S}/.config' + + if [ "${SCMVERSION}" = "y" ]; then + # Add GIT revision to the local version + head=`git rev-parse --verify --short HEAD 2> /dev/null` + printf "%s%s" +g $head > ${S}/.scmversion + fi +} -- 2.40.1