From dac076fe406adace826766f6cc3cfdadc5f06be4 Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Fri, 6 Sep 2024 19:21:12 +0200 Subject: [PATCH] configure: Allow to detect git checkout if .git is not a directory E.g. if you use openvpn as a git submodule, it can be a file that points to the parent's git directory. The changes to Makefile.am are not strictly required, they still work with that case, but I wanted to keep the usage consistent. Change-Id: I9b7a3df012e7606ddb04a944e3fa33247180e8dd Signed-off-by: Frank Lichtenheld Acked-by: Arne Schwabe Acked-by: Yuriy Darnobyt Message-Id: <20240906172112.87148-1-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg29092.html Signed-off-by: Gert Doering --- Makefile.am | 6 +++--- configure.ac | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index 87230fea..84b7112a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -75,9 +75,9 @@ dist_noinst_DATA = \ README.wolfssl config-version.h: - @CONFIGURE_GIT_CHFILES="`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) diff-files --name-status -r --ignore-submodules --quiet -- || echo \"+\"`"; \ - CONFIGURE_GIT_UNCOMMITTED="`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) diff-index --cached --quiet --ignore-submodules HEAD || echo \"*\"`"; \ - CONFIGURE_GIT_REVISION="`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) rev-parse --symbolic-full-name HEAD | cut -d/ -f3-`/`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) rev-parse --short=16 HEAD`"; \ + @CONFIGURE_GIT_CHFILES="`$(GIT) -C \"$(top_srcdir)\" diff-files --name-status -r --ignore-submodules --quiet -- || echo \"+\"`"; \ + CONFIGURE_GIT_UNCOMMITTED="`$(GIT) -C \"$(top_srcdir)\" diff-index --cached --quiet --ignore-submodules HEAD || echo \"*\"`"; \ + CONFIGURE_GIT_REVISION="`$(GIT) -C \"$(top_srcdir)\" rev-parse --symbolic-full-name HEAD | cut -d/ -f3-`/`$(GIT) -C \"$(top_srcdir)\" rev-parse --short=16 HEAD`"; \ echo "#define CONFIGURE_GIT_REVISION \"$${CONFIGURE_GIT_REVISION}\"" > config-version.h.tmp; \ echo "#define CONFIGURE_GIT_FLAGS \"$${CONFIGURE_GIT_CHFILES}$${CONFIGURE_GIT_UNCOMMITTED}\"" >> config-version.h.tmp diff --git a/configure.ac b/configure.ac index 9ce826ca..ea0da1ff 100644 --- a/configure.ac +++ b/configure.ac @@ -1308,9 +1308,11 @@ fi AC_MSG_CHECKING([git checkout]) GIT_CHECKOUT="no" -if test -n "${GIT}" -a -d "${srcdir}/.git"; then - AC_DEFINE([HAVE_CONFIG_VERSION_H], [1], [extra version available in config-version.h]) - GIT_CHECKOUT="yes" +if test -n "${GIT}"; then + if ${GIT} -C "$srcdir" rev-parse --is-inside-work-tree >/dev/null 2>&1; then + AC_DEFINE([HAVE_CONFIG_VERSION_H], [1], [extra version available in config-version.h]) + GIT_CHECKOUT="yes" + fi fi AC_MSG_RESULT([${GIT_CHECKOUT}])