diff options
| author | 2022-10-08 01:08:08 +0200 | |
|---|---|---|
| committer | 2022-10-08 01:08:08 +0200 | |
| commit | bccae83d475ac5a48441001cad3fa8c167ecbb80 (patch) | |
| tree | b686567f95e24044cf84d4c8bcc6cdb76de918bc | |
| parent | 12e24e4bd161c76631c77244f63ff02ef18f251d (diff) | |
| download | usbmuxd-bccae83d475ac5a48441001cad3fa8c167ecbb80.tar.gz usbmuxd-bccae83d475ac5a48441001cad3fa8c167ecbb80.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.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 b751cc2..9b8b038 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -1,14 +1,19 @@ | |||
| 1 | # -*- Autoconf -*- | 1 | # -*- Autoconf -*- |
| 2 | # Process this file with autoconf to produce a configure script. | 2 | # Process this file with autoconf to produce a configure script. |
| 3 | 3 | ||
| 4 | AC_PREREQ(2.68) | 4 | AC_PREREQ([2.68]) |
| 5 | AC_INIT([usbmuxd], [1.1.2], [https://github.com/libimobiledevice/usbmuxd/issues],, [https://libimobiledevice.org]) | 5 | AC_INIT([usbmuxd], [m4_esyscmd(./git-version-gen $RELEASE_VERSION)], [https://github.com/libimobiledevice/usbmuxd/issues], [], [https://libimobiledevice.org]) |
| 6 | AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip check-news]) | 6 | AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip check-news]) |
| 7 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) | 7 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) |
| 8 | AC_CONFIG_SRCDIR([src/]) | 8 | AC_CONFIG_SRCDIR([src/]) |
| 9 | AC_CONFIG_HEADERS([config.h]) | 9 | AC_CONFIG_HEADERS([config.h]) |
| 10 | AC_CONFIG_MACRO_DIR([m4]) | 10 | AC_CONFIG_MACRO_DIR([m4]) |
| 11 | 11 | ||
| 12 | # Check if we have a version defined | ||
| 13 | if test -z $PACKAGE_VERSION; then | ||
| 14 | 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.]) | ||
| 15 | fi | ||
| 16 | |||
| 12 | # Checks for programs. | 17 | # Checks for programs. |
| 13 | AC_PROG_CC | 18 | AC_PROG_CC |
| 14 | AM_PROG_CC_C_O | 19 | AM_PROG_CC_C_O |
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 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | SRCDIR=`dirname $0` | ||
| 3 | if test -n "$1"; then | ||
| 4 | VER=$1 | ||
| 5 | else | ||
| 6 | if test -d "${SRCDIR}/.git" && test -x "`which git`" ; then | ||
| 7 | git update-index -q --refresh | ||
| 8 | if ! VER=`git describe --tags --dirty 2>/dev/null`; then | ||
| 9 | COMMIT=`git rev-parse --short HEAD` | ||
| 10 | DIRTY=`git diff --quiet HEAD || echo "-dirty"` | ||
| 11 | VER=`sed -n '1,/RE/s/Version \(.*\)/\1/p' ${SRCDIR}/NEWS`-git-${COMMIT}${DIRTY} | ||
| 12 | fi | ||
| 13 | else | ||
| 14 | if test -f "${SRCDIR}/.tarball-version"; then | ||
| 15 | VER=`cat "${SRCDIR}/.tarball-version"` | ||
| 16 | fi | ||
| 17 | fi | ||
| 18 | fi | ||
| 19 | printf %s "$VER" | ||
