aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-02-24 01:10:35 +0100
committerAlejandro Colomar <alx@kernel.org>2024-02-25 10:50:54 +0100
commitcb497121b5fa4be0bb344b8f4bbbdcfb691b016d (patch)
treed277bfd2b5b535b4cc2c1209ef7cca020206a4e8
parent2750149d5af500665e7b554779bdd31b2d089149 (diff)
downloadman-pages-cb497121b5fa4be0bb344b8f4bbbdcfb691b016d.tar.gz
share/mk/: $DISTDATE: If the repository is "dirty", use the newest timestamp
Otherwise, the files within the 'dist' tarball will have a timestamp older than their last actual modification, which is problematic with 'distcheck'. Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--share/mk/configure/build-depends/coreutils.mk1
-rw-r--r--share/mk/configure/version.mk26
-rw-r--r--share/mk/dist/files.mk8
3 files changed, 26 insertions, 9 deletions
diff --git a/share/mk/configure/build-depends/coreutils.mk b/share/mk/configure/build-depends/coreutils.mk
index 4601f73630..f94800cf79 100644
--- a/share/mk/configure/build-depends/coreutils.mk
+++ b/share/mk/configure/build-depends/coreutils.mk
@@ -16,6 +16,7 @@ MKDIR := mkdir
REALPATH := realpath
RM := rm
SORT := sort
+STAT := stat
TAC := tac
TAIL := tail
TEST := test
diff --git a/share/mk/configure/version.mk b/share/mk/configure/version.mk
index 7d10fd1d3c..0996ab3239 100644
--- a/share/mk/configure/version.mk
+++ b/share/mk/configure/version.mk
@@ -8,13 +8,37 @@ ifndef MAKEFILE_CONFIGURE_VERSION_INCLUDED
MAKEFILE_CONFIGURE_VERSION_INCLUDED := 1
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/findutils.mk
include $(MAKEFILEDIR)/configure/build-depends/git.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
include $(MAKEFILEDIR)/configure/verbose.mk
DISTNAME := $(shell $(GIT) describe --dirty)
DISTVERSION := $(patsubst man-pages-%,%,$(DISTNAME))
-DISTDATE := $(shell $(GIT) log -1 --format='%aD')
+
+
+DISTFILESCMD := \
+ $(FIND) $(srcdir) -not -type d \
+ | $(GREP) -v '^$(srcdir)/.git$$' \
+ | $(GREP) -v '^$(srcdir)/.tmp/' \
+ | $(GREP) -v '^$(srcdir)/.checkpatch-camelcase.' \
+ | $(SORT)
+
+DISTDATECMD := \
+ $(ECHO) '$(DISTVERSION)' \
+ | if $(GREP) -- '-dirty$$' >/dev/null; then \
+ $(DISTFILESCMD) \
+ | $(XARGS) $(STAT) -c %y \
+ | $(SORT) -n \
+ | $(TAIL) -n1; \
+ else \
+ $(GIT) log -1 --format='%aD'; \
+ fi;
+
+
+DISTDATE := $(shell $(DISTDATECMD))
endif # include guard
diff --git a/share/mk/dist/files.mk b/share/mk/dist/files.mk
index 08183fd804..08883280e2 100644
--- a/share/mk/dist/files.mk
+++ b/share/mk/dist/files.mk
@@ -14,14 +14,6 @@ include $(MAKEFILEDIR)/configure/version.mk
include $(MAKEFILEDIR)/dist/_.mk
-DISTFILESCMD := \
- $(FIND) $(srcdir) -not -type d \
- | $(GREP) -v "^$(srcdir)/.git$$" \
- | $(GREP) -v "^$(srcdir)/.tmp/" \
- | $(GREP) -v "^$(srcdir)/.checkpatch-camelcase." \
- | $(SORT)
-
-
DISTFILES := $(shell $(DISTFILESCMD) | $(SED) 's,:,\\:,g')
_DISTFILES := $(patsubst $(srcdir)/%,$(_DISTDIR)/%,$(DISTFILES))
_DISTPAGES := $(filter $(_DISTDIR)/man%,$(_DISTFILES))