build system: allow overriding the build's timestamp
authorPatrick Georgi <pgeorgi@google.com>
Thu, 28 Jan 2016 13:46:18 +0000 (14:46 +0100)
committerPatrick Georgi <pgeorgi@google.com>
Sat, 6 Feb 2016 22:30:31 +0000 (23:30 +0100)
This allows reproducible builds (same source and same compiler produce
bit-identical results) and also allows coordinating the timestamp across
multiple projects, eg. with another firmware.

Signed-off-by: Patrick Georgi <pgeorgi@google.com>
make_helpers/build_macros.mk

index d6a4e3ab73e957a0139e6d42b7fe40eba8769c97..b22eaf900d866f096a4d705b1278fa74be8c382b 100644 (file)
@@ -290,6 +290,10 @@ define MAKE_TOOL_ARGS
         $(if $(3),$(eval $(call FIP_ADD_PAYLOAD,$(2),--$(3),bl$(1))))
 endef
 
+# Allow overriding the timestamp, for example for reproducible builds, or to
+# synchronize timestamps across multiple projects.
+# This must be set to a C string (including quotes where applicable).
+BUILD_MESSAGE_TIMESTAMP ?= __TIME__", "__DATE__
 
 # MAKE_BL macro defines the targets and options to build each BL image.
 # Arguments:
@@ -315,7 +319,7 @@ $(BUILD_DIR):
 
 $(ELF): $(OBJS) $(LINKERFILE)
        @echo "  LD      $$@"
-       @echo 'const char build_message[] = "Built : "__TIME__", "__DATE__; \
+       @echo 'const char build_message[] = "Built : "$(BUILD_MESSAGE_TIMESTAMP); \
               const char version_string[] = "${VERSION_STRING}";' | \
                $$(CC) $$(CFLAGS) -xc - -o $(BUILD_DIR)/build_message.o
        $$(Q)$$(LD) -o $$@ $$(LDFLAGS) -Map=$(MAPFILE) --script $(LINKERFILE) \