Mesa (master): automake: bring back the .PHONY git_sha1.h.tmp rule

Emil Velikov evelikov at kemper.freedesktop.org
Thu Jun 2 21:33:29 UTC 2016


Module: Mesa
Branch: master
Commit: af2637aa32aac1ef512433407385e8e2bf711aea
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=af2637aa32aac1ef512433407385e8e2bf711aea

Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Tue May 31 14:46:19 2016 +0100

automake: bring back the .PHONY git_sha1.h.tmp rule

With earlier commit 3689ef32afd ("automake: rework the git_sha1.h rule,
include in tarball") we/I erroneously removed the PHONY rule and the
temporary file.

The former is used to ensure that the header is regenerated when on each
make invocation, while the latter helps us avoid the unneeded rebuild(s)
when the SHA1 hasn't changed.

Reported-by: Grazvydas Ignotas <notasas at gmail.com>
Tested-by: Grazvydas Ignotas <notasas at gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>

---

 src/Makefile.am | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index f5c0773..45590c0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -19,13 +19,28 @@
 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 # IN THE SOFTWARE.
 
-git_sha1.h:
+.PHONY: git_sha1.h.tmp
+git_sha1.h.tmp:
+	@# Don't assume that $(top_srcdir)/.git is a directory. It may be
+	@# a gitlink file if $(top_srcdir) is a submodule checkout or a linked
+	@# worktree.
+	@# If we are building from a release tarball copy the bundled header.
 	@if test -e $(top_srcdir)/.git; then \
 		if which git > /dev/null; then \
 		    git --git-dir=$(top_srcdir)/.git log -n 1 --oneline | \
 			sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
-			> git_sha1.h ; \
+			> git_sha1.h.tmp ; \
 		fi \
+	else \
+		cp git_sha1.h git_sha1.h.tmp ;\
+	fi
+
+git_sha1.h: git_sha1.h.tmp
+	@echo "updating git_sha1.h"
+	@if ! cmp -s git_sha1.h.tmp git_sha1.h; then \
+		mv git_sha1.h.tmp git_sha1.h ;\
+	else \
+		rm git_sha1.h.tmp ;\
 	fi
 
 BUILT_SOURCES = git_sha1.h




More information about the mesa-commit mailing list