summaryrefslogtreecommitdiff
path: root/src/scripts/reversion
diff options
context:
space:
mode:
authorTony Finch <dot@dotat.at>2011-06-30 20:03:17 +0100
committerTony Finch <dot@dotat.at>2011-06-30 20:39:52 +0100
commit5901f0abfe16545a81e820cd9816e830287776a7 (patch)
tree12c576867ba49f756cfea51b2632b36e4f50dcdd /src/scripts/reversion
parent74fc64f2283f197ce744cc8c786f26bd8b16d323 (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-xsrc/scripts/reversion61
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