shithub: opusfile

Download patch

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}