diff options
author | Tony Finch <dot@dotat.at> | 2011-06-30 20:03:17 +0100 |
---|---|---|
committer | Tony Finch <dot@dotat.at> | 2011-06-30 20:39:52 +0100 |
commit | 5901f0abfe16545a81e820cd9816e830287776a7 (patch) | |
tree | 12c576867ba49f756cfea51b2632b36e4f50dcdd /src/scripts/reversion | |
parent | 74fc64f2283f197ce744cc8c786f26bd8b16d323 (diff) |
Use git to automatically create version.h
Adapted from git itself via unifdef. This does not (yet) include
the equivalent automation for the doc build.
Diffstat (limited to 'src/scripts/reversion')
-rwxr-xr-x | src/scripts/reversion | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/scripts/reversion b/src/scripts/reversion new file mode 100755 index 000000000..7bc56f620 --- /dev/null +++ b/src/scripts/reversion @@ -0,0 +1,61 @@ +#!/bin/sh + +# Update Exim's version header file. + +# Read version information that was generated by a previous run of +# this script, or during the release process. + +if [ -f version.sh ] +then . version.sh +elif [ -f ../src/version.sh ] +then . ../src/version.sh +fi + +# If this tree is a git working directory, use that to get version information. + +if [ -e ../../.git ] || [ "$1" = "release" ] +then + # Modify the output of git describe into separate parts for + # the name "exim" and the release and variant versions. + # Put a dot in the version number and remove a spurious g. + set $(git describe --dirty=-XX --match 'exim-4*' | + sed 's|-| |;s|_|.|;s|[-_]| _|;s|-g|-|') + # Only update if we need to + if [ "$2 $3" != "$EXIM_RELEASE_VERSION $EXIM_VARIANT_VERSION" ] + then + EXIM_RELEASE_VERSION="$2" + EXIM_VARIANT_VERSION="$3" + rm -f version.h + fi +fi + +# If you are maintaining a patched version of Exim, you can either +# create your own version.sh as part of your release process, or you +# can modify EXIM_VARIANT_VERSION at this point in this script. + +case $EXIM_RELEASE_VERSION in +'') echo "*** Your copy of Exim lacks any version information." + exit 1 +esac + +EXIM_COMPILE_NUMBER=$(expr "${EXIM_COMPILE_NUMBER:-0}" + 1) + +echo "$EXIM_COMPILE_NUMBER" >cnumber.h + +( echo '# automatically generated file - see ../scripts/reversion' + echo EXIM_RELEASE_VERSION='"'"$EXIM_RELEASE_VERSION"'"' + echo EXIM_VARIANT_VERSION='"'"$EXIM_VARIANT_VERSION"'"' + echo EXIM_COMPILE_NUMBER='"'"$EXIM_COMPILE_NUMBER"'"' +) >version.sh + +if [ ! -f version.h ] +then +( echo '/* automatically generated file - see ../scripts/reversion */' + echo '#define EXIM_RELEASE_VERSION "'"$EXIM_RELEASE_VERSION"'"' + echo '#define EXIM_VARIANT_VERSION "'"$EXIM_VARIANT_VERSION"'"' + echo '#define EXIM_VERSION_STR EXIM_RELEASE_VERSION EXIM_VARIANT_VERSION' +) >version.h +fi + +echo ">>> version $EXIM_RELEASE_VERSION$EXIM_VARIANT_VERSION #$EXIM_COMPILE_NUMBER" +echo |