diff options
Diffstat (limited to 'classes/fsl-kernel-localversion.bbclass')
-rw-r--r-- | classes/fsl-kernel-localversion.bbclass | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/classes/fsl-kernel-localversion.bbclass b/classes/fsl-kernel-localversion.bbclass new file mode 100644 index 00000000..1004e355 --- /dev/null +++ b/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, 2015 (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" >> ${B}/.config + else + echo "CONFIG_$1=$2" >> ${B}/.config + fi +} + +do_configure_prepend() { + echo "" > ${B}/.config + CONF_SED_SCRIPT="" + + kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\"" + kernel_conf_variable LOCALVERSION_AUTO y + + sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config' + + if [ "${SCMVERSION}" = "y" ]; then + # Add GIT revision to the local version + head=`git --git-dir=${S}/.git rev-parse --verify --short HEAD 2> /dev/null` + printf "%s%s" +g $head > ${S}/.scmversion + fi +} |