make build date reproducible

Based on https://reproducible-builds.org/docs/source-date-epoch/
They suggest "BUILD_DATE ?=", but it seems to be evaluated for each file
separately, so us "BUILD_DATE :=" to set it once.

Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
This commit is contained in:
Amadeusz Sławiński
2019-02-02 22:35:07 +01:00
parent e99eb0d101
commit 724297c2c2
2 changed files with 9 additions and 2 deletions

View File

@@ -22,11 +22,18 @@ bindir = $(exec_prefix)/bin
VERSION = @PACKAGE_VERSION@
SCREEN = screen-$(VERSION)
DATE_FMT = %Y-%m-%d %H:%m:%S
ifdef SOURCE_DATE_EPOCH
BUILD_DATE := $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u "+$(DATE_FMT)")
else
BUILD_DATE := $(shell date "+$(DATE_FMT)")
endif
SCREENENCODINGS = $(datadir)/screen/utf8encodings
CC = @CC@
CFLAGS = @CFLAGS@ -Wall -Wextra -std=c11
CPPFLAGS = @CPPFLAGS@ -iquote. -DSCREENENCODINGS='"$(SCREENENCODINGS)"'
CPPFLAGS = @CPPFLAGS@ -iquote. -DSCREENENCODINGS='"$(SCREENENCODINGS)"' -DBUILD_DATE='"$(BUILD_DATE)"'
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@

View File

@@ -295,7 +295,7 @@ int main(int argc, char **argv)
* (otherwise, we might have problems with the select() call)
*/
closeallfiles(0);
snprintf(version, 59, "%d.%d.%d (build on %s %s) ", VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, __DATE__, __TIME__);
snprintf(version, 59, "%d.%d.%d (build on %s) ", VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, BUILD_DATE);
nversion = VERSION_MAJOR * 10000 + VERSION_MINOR * 100 + VERSION_REVISION;
BellString = SaveStr("Bell in window %n");