diff options
author | Martijn van Beurden <mvanb1@gmail.com> | 2022-04-20 21:47:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-20 21:47:07 +0200 |
commit | f579b163fe7ccdb0f713001d4253c5d68a3b8280 (patch) | |
tree | a085ae1b5080f292d6b469d1080d4546b348978e /configure.ac | |
parent | 1ca7b38f3c174a95e391b4251eebfc98ca66fd17 (diff) | |
download | flac-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.ac | 34 |
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}" |