diff --git a/Makefile.am b/Makefile.am index 958edc6fe..762a51c14 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,6 +38,9 @@ Android.common.mk : Android.common.mk.in configure.ac -e "s:\@PACKAGE_VERSION\@:$(PACKAGE_VERSION):" \ $(srcdir)/$@.in > $@ +dist-hook: + @echo $(GIT_VERSION) > $(distdir)/.tarball-git-version + Doxyfile : Doxyfile.in $(AM_V_GEN) \ sed \ diff --git a/configure.ac b/configure.ac index d71ddeb38..6ee47f584 100644 --- a/configure.ac +++ b/configure.ac @@ -326,6 +326,7 @@ ARG_ENABL_SET([tss-tss2], [enable the use of the TSS 2.0 Trusted Software # compile options ARG_ENABL_SET([coverage], [enable lcov coverage report generation.]) +ARG_ENABL_SET([git-version], [use output of 'git describe' as version information in executables.]) ARG_ENABL_SET([leak-detective], [enable malloc hooks to find memory leaks.]) ARG_ENABL_SET([lock-profiler], [enable lock/mutex profiling code.]) ARG_ENABL_SET([log-thread-ids], [use thread ID, if available, instead of an incremented value starting from 1, to identify threads.]) @@ -1384,6 +1385,21 @@ if test "x$ss_cv_static_plugin_constructors" = xyes; then fi fi +AC_MSG_CHECKING([version from Git repository]) +AC_SUBST(GIT_VERSION, [$($srcdir/scripts/git-version "$srcdir")]) +case "$GIT_VERSION" in + "$PACKAGE_VERSION"*) + AC_MSG_RESULT([$GIT_VERSION]) + ;; + *) + AC_MSG_ERROR([$PACKAGE_VERSION is not a prefix of $GIT_VERSION, tag missing?]) + ;; +esac + +if test x$git_version = xtrue; then + AC_DEFINE_UNQUOTED(VERSION, ["$GIT_VERSION"]) +fi + # =============================================== # collect plugin list for strongSwan components # =============================================== diff --git a/scripts/Makefile.am b/scripts/Makefile.am index a793800b7..82d92ef79 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -1,3 +1,5 @@ +EXTRA_DIST = git-version + AM_CPPFLAGS = \ -I$(top_srcdir)/src/libstrongswan \ -I$(top_srcdir)/src/libtls \ diff --git a/scripts/git-version b/scripts/git-version new file mode 100755 index 000000000..f92d0718f --- /dev/null +++ b/scripts/git-version @@ -0,0 +1,16 @@ +#!/bin/sh + +SRCDIR=$1 +TARBALL=$SRCDIR/.tarball-git-version + +if test -f $TARBALL; then + V=$(cat $TARBALL) +elif test -d $SRCDIR/.git; then + V=$(git -C $SRCDIR describe --tags HEAD 2>/dev/null) +fi + +if test -z "$V"; then + V="UNKNOWN" +fi + +echo $V