Currently the build is not reproducible because make(1) runs
date(1) to provide the month and the year for the man page. Fix
this by honouring SOURCE_DATE_EPOCH as described in
https://reproducible-builds.org/specs/source-date-epoch/
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
GZIP := gzip -f9
ZCAT := zcat
-DATE := $(shell date '+%B %Y')
+DATE_FMT := +%B %Y
+# To get a reproducible build, we use $(SOURCE_DATE_EPOCH) instead of the
+# current time if this variable is set.
+ifdef SOURCE_DATE_EPOCH
+ DATE := $(shell LC_ALL=C date -u -d '@$(SOURCE_DATE_EPOCH)' \
+ '$(DATE_FMT)' 2>/dev/null || LC_ALL=C date -u '$(DATE_FMT)')
+else
+ DATE := $(shell date '+$(DATE_FMT)')
+endif
GIT_VERSION := $(shell ./version-gen.sh)
PLAIN_VERSION := $(firstword $(subst -, , $(GIT_VERSION)))
MAJOR_VERSION := $(firstword $(subst ., , $(PLAIN_VERSION)))