diff options
author | Nikias Bassen | 2023-04-21 16:38:08 +0200 |
---|---|---|
committer | Nikias Bassen | 2023-04-21 16:38:08 +0200 |
commit | ff258f1bc1ba8dc58a7c061c310d2c6100817a91 (patch) | |
tree | 319586374893a6450cdd4d9a533168ea1926a1b0 | |
parent | 2e9b8a8bc5cfb968e29a195e0077f2876e648296 (diff) | |
download | libimobiledevice-glue-ff258f1bc1ba8dc58a7c061c310d2c6100817a91.tar.gz libimobiledevice-glue-ff258f1bc1ba8dc58a7c061c310d2c6100817a91.tar.bz2 |
autoconf: Automatically derive version number from latest git tag
-rw-r--r-- | configure.ac | 9 | ||||
-rwxr-xr-x | git-version-gen | 19 |
2 files changed, 26 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 58d6585..ca69d32 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.68) -AC_INIT([libimobiledevice-glue], [1.0.0], [https://github.com/libimobiledevice/libimobiledevice-glue/issues],, [https://libimobiledevice.org]) +AC_PREREQ([2.68]) +AC_INIT([libimobiledevice-glue], [m4_esyscmd(./git-version-gen $RELEASE_VERSION)], [https://github.com/libimobiledevice/libimobiledevice-glue/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,6 +17,11 @@ dnl libtool versioning # CURRENT : REVISION : AGE LIBIMOBILEDEVICE_GLUE_SO_VERSION=0:0:0 +# 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.3.0 diff --git a/git-version-gen b/git-version-gen new file mode 100755 index 0000000..f6cb31c --- /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 -r "${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" |