From: James Byrne Date: Tue, 10 Apr 2018 10:28:12 +0000 (+0100) Subject: Makefile: take default SOURCE_DATE_EPOCH from repo containing Makefile X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=49395dc0e5cc5642670d583b9269a3f92943756d;p=buildroot.git Makefile: take default SOURCE_DATE_EPOCH from repo containing Makefile For reproducible builds, SOURCE_DATE_EPOCH will be set to the git commit date if it is not defined in the environment, but this was done by explicitly using $(TOPDIR)/.git as the git repository, which would not give the expected result if Buildroot had been put into a subdirectory of another repository. This commit removes that restriction, meaning that the default date will now be the date of the git commit that contains Makefile, regardless of what level above Makefile the repository is at. This works because the current directory when the 'git log' command is executed will always be the directory containing Makefile (it must be, since TOPDIR is set from CURDIR). In general this should be a sensible default, and in cases where a different date is required SOURCE_DATE_EPOCH can be defined in the environment before invoking make. Signed-off-by: James Byrne Acked-by: "Yann E. MORIN" Signed-off-by: Thomas Petazzoni --- diff --git a/Makefile b/Makefile index cd533624ec..3b846b997a 100644 --- a/Makefile +++ b/Makefile @@ -506,7 +506,7 @@ ifeq ($(BR2_REPRODUCIBLE),y) # If SOURCE_DATE_EPOCH has not been set then use the commit date, or the last # release date if the source tree is not within a Git repository. # See: https://reproducible-builds.org/specs/source-date-epoch/ -BR2_VERSION_GIT_EPOCH := $(shell $(GIT) --git-dir=$(TOPDIR)/.git log -1 --format=%at 2> /dev/null) +BR2_VERSION_GIT_EPOCH := $(shell $(GIT) log -1 --format=%at 2> /dev/null) export SOURCE_DATE_EPOCH ?= $(or $(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH)) endif