ref: cfd4e2c311e17bae644372f6c87da24446bf09f7
parent: 853393be655b83b4ca09cea672477d0e19dfa125
author: Ralph Giles <[email protected]>
date: Mon Oct 1 07:30:41 EDT 2012
Set the autoconf version from git. AC_INIT requires that the version string passed in be 'static' so we can't use the output of a shell invocation. However, it can be computed by an m4 shell invocation. This is what autoconf itself does to embed its git version number in PACKAGE_VERSION. Doing this necessitates the 'echo -n' in git-version.sh. Make is smart enough to strip the trailing newline, but AC_INIT is not. We must also add -f to autoreconf. Otherwise, autogen.sh will only update configure when configure.ac changes, even if the output of git-version.sh has changed. This is still not ideal, since it runs at autogen.sh time, not at 'make' time, which is what we want. This seems to be a limitation of an upcoming automake release, which removes the old style with PACKAGE and VERSION set by shell variables.
--- a/autogen.sh
+++ b/autogen.sh
@@ -13,4 +13,4 @@
cd "$srcdir"
echo "Updating build configuration files for $package, please wait...."
-autoreconf -is
+autoreconf -isf
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,6 @@
-AC_INIT([opusfile], [0.0])
+# autoconf source script for generating configure
+
+AC_INIT([opusfile], m4_esyscmd([doc/git-version.sh]))
AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
--- a/doc/git-version.sh
+++ b/doc/git-version.sh
@@ -9,4 +9,4 @@
VERSION=${GIT_VERSION}
fi
-echo ${VERSION}
+echo -n ${VERSION}