]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Conditionalise the automake git-commit embedding.
authorSimon Tatham <anakin@pobox.com>
Sat, 21 Jan 2017 14:57:31 +0000 (14:57 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 21 Jan 2017 14:57:31 +0000 (14:57 +0000)
This arranges that the mechanism from the previous commit
automatically turns itself on and off depending on whether a .git
directory even exists (so it won't try to do anything in distribution
tarballs), and also arranges that it can be manually turned off by a
configure option (in case someone who _is_ building from a git
checkout finds it inconvenient for some reason I haven't thought of,
which seems quite plausible to me).

Recipe
configure.ac

diff --git a/Recipe b/Recipe
index 952373f20e25bab0c92335cd431bd5b62d5fef0c..3b2db901b650fe84fa2043cdfacbbb9cd4fa698e 100644 (file)
--- a/Recipe
+++ b/Recipe
 # ------------------------------------------------------------
 # Additional text added verbatim to each individual Makefile.
 
-!cflags am version -DSOURCE_COMMIT=\"`git rev-parse HEAD 2>/dev/null`\"
+!cflags am version
 !begin am
+if AUTO_GIT_COMMIT
 BUILT_SOURCES = empty.h
 CLEANFILES = empty.h
+libversion_a_CFLAGS += -DSOURCE_COMMIT=\"`git --git-dir=$(srcdir)/.git rev-parse HEAD 2>/dev/null`\"
 empty.h: $(allsources)
        echo '/* Empty file touched by automake makefile to force rebuild of version.o */' >$@
-
+endif
 !end
 !begin >empty.h
 /* Empty file touched by automake makefile to force rebuild of version.o */
index e951a286b2e884128d2b821b05ed612956052c21..adb31915b501f082e366c2297169df9189147948 100644 (file)
@@ -42,6 +42,18 @@ AS_IF([test "x$setidtype" = "xsetgid"],
 AC_SUBST(SETID_CMD)
 AC_SUBST(SETID_MODE)
 
+AC_ARG_ENABLE([git-commit],
+  [AS_HELP_STRING([--disable-git-commit],
+                  [disable embedding current git HEAD in binaries])],
+  [],
+  [if test -d "$srcdir/.git"; then
+    enable_git_commit=yes; else enable_git_commit=no; fi])
+
+if test "x$enable_git_commit" = "xyes" -a ! -d "$srcdir/.git"; then
+  AC_ERROR([Cannot --enable-git-commit when source tree is not a git checkout])
+fi
+AM_CONDITIONAL(AUTO_GIT_COMMIT, [test "x$enable_git_commit" = "xyes"])
+
 AC_ARG_WITH([gssapi],
   [AS_HELP_STRING([--without-gssapi],
                   [disable GSSAPI support])],