Explorar o código

autoconf: Automatically derive version number from latest git tag

Nikias Bassen %!s(int64=2) %!d(string=hai) anos
pai
achega
1d20bed9ab
Modificáronse 3 ficheiros con 26 adicións e 2 borrados
  1. 5 1
      Makefile.am
  2. 1 1
      configure.ac
  3. 20 0
      git-version-gen

+ 5 - 1
Makefile.am

@@ -3,7 +3,11 @@ ACLOCAL_AMFLAGS = -I m4
 SUBDIRS = src include tools udev
 
 EXTRA_DIST = \
-	README.md
+	README.md \
+	git-version-gen
+
+dist-hook:
+	echo $(VERSION) > $(distdir)/.tarball-version
 
 DISTCHECK_CONFIGURE_FLAGS = \
 	--with-udevrulesdir=$$dc_install_base/$(udevrulesdir)

+ 1 - 1
configure.ac

@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.68)
-AC_INIT([libirecovery], [1.0.1], [https://github.com/libimobiledevice/libirecovery/issues],, [https://libimobiledevice.org])
+AC_INIT([libirecovery], [m4_esyscmd(./git-version-gen $RELEASE_VERSION)], [https://github.com/libimobiledevice/libirecovery/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/])

+ 20 - 0
git-version-gen

@@ -0,0 +1,20 @@
+#!/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
+VER=`printf %s "$VER" | head -n1`
+printf %s "$VER"