summaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index f5c07739dea..45590c0a07a 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