diff options
author | Arvind Sankar <[email protected]> | 2020-07-17 17:30:51 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2020-07-22 09:59:36 -0700 |
commit | d32a59fe2b29a7008a820d597a7efa41ccdf2f09 (patch) | |
tree | e8a87697057f7b4051f8cb09d265d0cf66d0d8a2 | |
parent | 5dd92909c6d1ed606aac7c6ffe3df68513bb5ed1 (diff) |
Restore scripts/make_gitrev.sh
Commit 109d2c931020 ("Move zfs_gitrev.h to build directory") removed
scripts/make_gitrev.sh, putting the logic into the Makefile itself.
However, at least the Arch Linux packager wants the script so that the
file can be generated without having to run configure first, for
DKMS packaging purposes.
So move the make recipe back into the script.
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Eli Schwartz <[email protected]>
Signed-off-by: Arvind Sankar <[email protected]>
Closes #10595
-rw-r--r-- | Makefile.am | 11 | ||||
-rw-r--r-- | scripts/Makefile.am | 1 | ||||
-rwxr-xr-x | scripts/make_gitrev.sh | 50 |
3 files changed, 52 insertions, 10 deletions
diff --git a/Makefile.am b/Makefile.am index 0c0114661..98cf55880 100644 --- a/Makefile.am +++ b/Makefile.am @@ -54,16 +54,7 @@ CLEANFILES = $(GITREV) PHONY = gitrev gitrev: - $(AM_V_GEN)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 + $(AM_V_GEN)$(top_srcdir)/scripts/make_gitrev.sh $(GITREV) all: gitrev diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 2ef9071f1..20c2ee8cd 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -15,6 +15,7 @@ EXTRA_DIST = \ dkms.postbuild \ enum-extract.pl \ kmodtool \ + make_gitrev.sh \ man-dates.sh \ paxcheck.sh \ zfs2zol-patch.sed \ diff --git a/scripts/make_gitrev.sh b/scripts/make_gitrev.sh new file mode 100755 index 000000000..8db4de931 --- /dev/null +++ b/scripts/make_gitrev.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +# +# CDDL HEADER START +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# +# CDDL HEADER END +# + +# Copyright (c) 2018 by Delphix. All rights reserved. +# Copyright (c) 2018 by Matthew Thode. All rights reserved. + +# +# Generate zfs_gitrev.h. Note that we need to do this for every +# invocation of `make`, including for incremental builds. Therefore we +# can't use a zfs_gitrev.h.in file which would be processed only when +# `configure` is run. +# + +set -e -u + +top_srcdir="$(dirname "$0")/.." +GITREV="${1:-include/zfs_gitrev.h}" + +# GITREV should be a relative path (relative to top_builddir) +case "${GITREV}" in + /*) echo "Error: ${GITREV} should be a relative path" >&2 + exit 1;; +esac + +ZFS_GITREV=$({ cd "${top_srcdir}" && + git describe --always --long --dirty 2>/dev/null; } || :) +ZFS_GITREV=${ZFS_GITREV:-unknown} + +GITREVTMP="${GITREV}~" +printf '#define\tZFS_META_GITREV "%s"\n' "${ZFS_GITREV}" >"${GITREVTMP}" +if cmp -s "${GITREV}" "${GITREVTMP}" +then + rm -f "${GITREVTMP}" +else + mv -f "${GITREVTMP}" "${GITREV}" +fi |