summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2022-02-10 00:08:37 +0100
committerGravatar Nikias Bassen2022-02-10 00:08:37 +0100
commit2507c9d5e85ee52e4cedad91e16672b6621cd7a3 (patch)
tree71c4c17fc54729138e9b383e7d2f52bf4ee71ad3
parenteefcbbca949ffaaa5b2d1c0cee85e38a22db3f92 (diff)
downloadlibusbmuxd-2507c9d5e85ee52e4cedad91e16672b6621cd7a3.tar.gz
libusbmuxd-2507c9d5e85ee52e4cedad91e16672b6621cd7a3.tar.bz2
autoconf: Automatically derive version number from latest git tag
with a fallback to get the version string from a .tarball-version file
-rw-r--r--configure.ac9
-rwxr-xr-xgit-version-gen19
2 files changed, 26 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 8069397..0a4b79d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.68)
-AC_INIT(libusbmuxd, 2.0.3, [https://github.com/libimobiledevice/libusbmuxd/issues],, [https://libimobiledevice.org])
+AC_INIT(libusbmuxd, [m4_esyscmd(./git-version-gen $RELEASE_VERSION)], [https://github.com/libimobiledevice/libusbmuxd/issues],, [https://libimobiledevice.org])
AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip check-news])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
AC_CONFIG_SRCDIR([src/])
@@ -17,12 +17,17 @@ dnl libtool versioning
# CURRENT : REVISION : AGE
LIBUSBMUXD_SO_VERSION=6:0:0
+AC_SUBST(LIBUSBMUXD_SO_VERSION)
+
+# Check if we have a version defined
+if test -z $PACKAGE_VERSION; then
+ AC_MSG_ERROR([PACKAGE_VERSION is not defined. Make sure to configure a source tree checked out from git or that .tarball-version is present.])
+fi
dnl Minimum package versions
LIBPLIST_VERSION=2.2.0
LIMD_GLUE_VERSION=1.0.0
-AC_SUBST(LIBUSBMUXD_SO_VERSION)
AC_SUBST(LIBPLIST_VERSION)
AC_SUBST(LIMD_GLUE_VERSION)
diff --git a/git-version-gen b/git-version-gen
new file mode 100755
index 0000000..3eb6a42
--- /dev/null
+++ b/git-version-gen
@@ -0,0 +1,19 @@
+#!/bin/sh
+SRCDIR=`dirname $0`
+if test -n "$1"; then
+ VER=$1
+else
+ if test -d "${SRCDIR}/.git" && test -x "`which git`" ; then
+ git update-index -q --refresh
+ if ! VER=`git describe --tags --dirty 2>/dev/null`; then
+ COMMIT=`git rev-parse --short HEAD`
+ DIRTY=`git diff --quiet HEAD || echo "-dirty"`
+ VER=`sed -n '1,/RE/s/Version \(.*\)/\1/p' ${SRCDIR}/NEWS`-git-${COMMIT}${DIRTY}
+ fi
+ else
+ if test -f "${SRCDIR}/.tarball-version"; then
+ VER=`cat "${SRCDIR}/.tarball-version"`
+ fi
+ fi
+fi
+printf %s "$VER"