From 0aa19e9457ce3258a4df74876e542f0b6fbbf2ba Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kristian=20H=C3=B8gsberg?= Date: Fri, 31 Jan 2014 16:33:48 -0800 Subject: [PATCH] build: Only regenerate src/git-version.h when .git/logs/HEAD changes We rely on .git/logs/HEAD to be a file that changes when we commit to HEAD. The first idea is to make the makefile rule depend on .git/HEAD, but that's a symbolic ref that points to the current ref in refs/heads. However, .git/logs/HEAD changes whenever we commit to HEAD, so we can use that in the makefile rule. --- Makefile.am | 17 +++++++++++------ configure.ac | 3 +++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index e515736..b2c7a2c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -77,6 +77,12 @@ weston_SOURCES = \ shared/zalloc.h \ src/weston-egl-ext.h +# Track this dependency explicitly instead of using BUILT_SOURCES. We +# add BUILT_SOURCES to CLEANFILES, but we want to keep git-version.h +# in case we're building from tarballs. + +src/compositor.c : $(top_builddir)/src/git-version.h + noinst_LTLIBRARIES += \ libsession-helper.la @@ -99,10 +105,10 @@ libsession_helper_la_LIBADD += $(SYSTEMD_LOGIN_LIBS) $(DBUS_LIBS) endif endif -src/git-version.h : .FORCE - $(AM_V_GEN)(echo "#define BUILD_ID \"$(shell git --git-dir=$(top_srcdir)/.git describe --always --dirty) $(shell git --git-dir=$(top_srcdir)/.git log -1 --format='%s (%ci)')\"" > $@-new; \ - cmp -s $@ $@-new || cp $@-new $@; \ - rm $@-new) +if HAVE_GIT_REPO +src/git-version.h : $(top_srcdir)/.git/logs/HEAD + $(AM_V_GEN)echo "#define BUILD_ID \"$(shell git --git-dir=$(top_srcdir)/.git describe --always --dirty) $(shell git --git-dir=$(top_srcdir)/.git log -1 --format='%s (%ci)')\"" > $@ +endif .FORCE : @@ -339,8 +345,7 @@ BUILT_SOURCES += \ src/workspaces-server-protocol.h \ src/workspaces-protocol.c \ src/scaler-server-protocol.h \ - src/scaler-protocol.c \ - src/git-version.h + src/scaler-protocol.c if BUILD_CLIENTS diff --git a/configure.ac b/configure.ac index d961ea4..3caaa59 100644 --- a/configure.ac +++ b/configure.ac @@ -485,6 +485,9 @@ AC_SUBST([dtddir]) AM_CONDITIONAL([HAVE_XMLLINT], [test "x$XMLLINT" != "x" -a "x$dtddir" != "x"]) AC_CONFIG_FILES([Makefile src/version.h src/weston.pc]) + +AM_CONDITIONAL([HAVE_GIT_REPO], [test -f $srcdir/.git/logs/HEAD]) + AC_OUTPUT AC_MSG_RESULT([ -- 2.7.4