summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2022-04-20 21:47:07 +0200
committerGitHub <noreply@github.com>2022-04-20 21:47:07 +0200
commitf579b163fe7ccdb0f713001d4253c5d68a3b8280 (patch)
treea085ae1b5080f292d6b469d1080d4546b348978e /configure.ac
parent1ca7b38f3c174a95e391b4251eebfc98ca66fd17 (diff)
downloadflac-f579b163fe7ccdb0f713001d4253c5d68a3b8280.tar.gz
Add git commit tag, hash and date to vendor string when available
In some circles (Hydrogenaud.io for example) people share binaries compiled from git, i.e. inbetween official releases. Files created with these binaries cannot be discerned from others. To improve troubleshooting, compiles from a git repository are marked with the commit hash and date when configured with autotools or CMake
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac34
1 files changed, 34 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 7f3bfc20..fafd0bbc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -417,6 +417,12 @@ AC_ARG_ENABLE([examples],
AS_HELP_STRING([--disable-examples], [Don't build and install examples]))
AM_CONDITIONAL([EXAMPLES], [test "x$enable_examples" != "xno"])
+dnl Ask git which version FLAC is
+AC_ARG_ENABLE([version-from-git],
+ AS_HELP_STRING([--disable-version-from-git], [Don't use git tag, commit hash and commit date for version number]),
+ [ enable_version_from_git=$enableval ], [ enable_version_from_git=yes ])
+
+
dnl check for i18n(internationalization); these are from libiconv/gettext
AM_ICONV
AM_LANGINFO_CODESET
@@ -540,6 +546,28 @@ dnl for correct FLAC_API
CPPFLAGS="-DFLAC__NO_DLL $CPPFLAGS"
fi
+AC_CHECK_PROG(GIT_FOUND,git,yes)
+
+if test x$GIT_FOUND$enable_version_from_git = "xyesyes"; then
+ GIT_COMMIT_TAG=`git -C $srcdir describe --tags --exact-match 2>/dev/null`
+ GIT_COMMIT_HASH=`git -C $srcdir log -1 --pretty=format:%h 2>/dev/null`
+ GIT_COMMIT_DATE=`git -C $srcdir log -1 --pretty=format:%cd --date=format:%Y%m%d 2>/dev/null`
+ if test ${#GIT_COMMIT_HASH} = 8 && test ${#GIT_COMMIT_DATE} = 8; then
+ GIT_COMMIT_VERSION_AVAIL=yes
+ if test ${#GIT_COMMIT_TAG} != 0 ; then
+ GIT_COMMIT_TAG_AVAIL=yes
+ AC_DEFINE_UNQUOTED(GIT_COMMIT_TAG, "${GIT_COMMIT_TAG}", "Define to the tag of the current git HEAD")
+ else
+ GIT_COMMIT_VERSION_HASH=yes
+ fi
+ AC_DEFINE_UNQUOTED(GIT_COMMIT_HASH, "${GIT_COMMIT_HASH}", "Define to the short hash of the current git HEAD")
+ AC_DEFINE_UNQUOTED(GIT_COMMIT_DATE, "${GIT_COMMIT_DATE}", "Define to the commit date of the current git HEAD")
+ fi
+fi
+
+AC_SUBST(GIT_COMMIT_VERSION_HASH)
+
+
AC_CONFIG_FILES([ \
Makefile \
src/Makefile \
@@ -614,6 +642,12 @@ AC_MSG_RESULT([
Host OS : ................................. ${host_os}
])
+if test x$GIT_COMMIT_TAG_AVAIL = xyes ; then
+ echo " Version string : reference libFLAC ${GIT_COMMIT_TAG} ${GIT_COMMIT_DATE}"
+elif test x$GIT_COMMIT_VERSION_AVAIL = xyes ; then
+ echo " Version string : reference libFLAC git-${GIT_COMMIT_HASH} ${GIT_COMMIT_DATE}"
+fi
+ echo ""
echo " Compiler is GCC : ......................... ${ac_cv_c_compiler_gnu}"
if test x$ac_cv_c_compiler_gnu = xyes ; then
echo " GCC version : ............................. ${GCC_VERSION}"