diff options
author | Arvind Sankar <[email protected]> | 2020-06-19 22:08:59 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2020-06-24 18:19:28 -0700 |
commit | 109d2c93102049e7d7fdd5de7f9edff717224b32 (patch) | |
tree | 08eeeb151b4ecbabe5e3617199da94762e7bdce6 /Makefile.am | |
parent | 33982eb24c615f78b8f6b5f54c6acb6c29cbf6e3 (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.am | 21 |
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 |