summaryrefslogtreecommitdiffstats
path: root/Makefile.am
diff options
context:
space:
mode:
authorArvind Sankar <[email protected]>2020-06-19 22:08:59 -0400
committerBrian Behlendorf <[email protected]>2020-06-24 18:19:28 -0700
commit109d2c93102049e7d7fdd5de7f9edff717224b32 (patch)
tree08eeeb151b4ecbabe5e3617199da94762e7bdce6 /Makefile.am
parent33982eb24c615f78b8f6b5f54c6acb6c29cbf6e3 (diff)
Move zfs_gitrev.h to build directory
Currently an out-of-tree build does not work with read-only source directory because zfs_gitrev.h can't be created. Move this file to the build directory, which is more appropriate for a generated file, and drop the dist-hook for zfs_gitrev.h. There is no need to distribute this file since it will be regenerated as part of the compilation in any case. scripts/make_gitrev.sh tries to avoid updating zfs_gitrev.h if there has been no change, however this doesn't cover the case when the source directory is not in git: in that case zfs_gitrev.h gets overwritten even though it's always "unknown". Simplify the logic to always write out a new version of zfs_gitrev.h, compare against the old and overwrite only if different. This is now simple enough to just include in the Makefile, so drop the script. Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Arvind Sankar <[email protected]> Closes #10493
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am21
1 files changed, 17 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am
index 101b38ac3..a90c71ee9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -47,11 +47,25 @@ EXTRA_DIST += module/zfs/THIRDPARTYLICENSE.cityhash.descrip
@CODE_COVERAGE_RULES@
+GITREV = include/zfs_gitrev.h
+
.PHONY: gitrev
gitrev:
- -${top_srcdir}/scripts/make_gitrev.sh
+ ZFS_GITREV=$$(cd $(top_srcdir) && \
+ git describe --always --long --dirty 2>/dev/null); \
+ ZFS_GITREV=$${ZFS_GITREV:-unknown}; \
+ printf '#define\tZFS_META_GITREV "%s"\n' \
+ "$${ZFS_GITREV}" >$(GITREV)~; \
+ if cmp -s $(GITREV) $(GITREV)~; then \
+ $(RM) $(GITREV)~; \
+ else \
+ mv -f $(GITREV)~ $(GITREV); \
+ fi
+
+$(GITREV): gitrev
-BUILT_SOURCES = gitrev
+BUILT_SOURCES = $(GITREV)
+CLEANFILES = $(GITREV)
# Double-colon rules are allowed; there are multiple independent definitions.
distclean-local::
@@ -70,8 +84,7 @@ all-local:
-[ -x ${top_builddir}/scripts/zfs-tests.sh ] && \
${top_builddir}/scripts/zfs-tests.sh -c
-dist-hook: gitrev
- cp ${top_srcdir}/include/zfs_gitrev.h $(distdir)/include; \
+dist-hook:
sed ${ac_inplace} -e 's/Release:[[:print:]]*/Release: $(RELEASE)/' \
$(distdir)/META