build: use perl instead of GNU date for KBUILD_BUILD_TIMESTAMP
[openwrt/openwrt.git] / include / kernel-defaults.mk
index 47befbaab065b5ff2f02e794a94ad02de42a6585..2c4bcec4746178da9a25181eefe4726c4a67b6da 100644 (file)
@@ -5,6 +5,12 @@
 # See /LICENSE for more information.
 #
 
+ifneq ($(SOURCE_DATE_EPOCH),)
+  ifndef DUMP
+    KBUILD_BUILD_TIMESTAMP:=$(shell perl -e 'print scalar gmtime($(SOURCE_DATE_EPOCH))')
+  endif
+endif
+
 KERNEL_MAKEOPTS := -C $(LINUX_DIR) \
        HOSTCFLAGS="$(HOST_CFLAGS) -Wall -Wmissing-prototypes -Wstrict-prototypes" \
        CROSS_COMPILE="$(KERNEL_CROSS)" \
@@ -12,7 +18,7 @@ KERNEL_MAKEOPTS := -C $(LINUX_DIR) \
        KBUILD_HAVE_NLS=no \
        KBUILD_BUILD_USER="$(call qstrip,$(CONFIG_KERNEL_BUILD_USER))" \
        KBUILD_BUILD_HOST="$(call qstrip,$(CONFIG_KERNEL_BUILD_DOMAIN))" \
-       $(if $(SOURCE_DATE_EPOCH),KBUILD_BUILD_TIMESTAMP="$(shell date -u --date="@$(SOURCE_DATE_EPOCH)")") \
+       KBUILD_BUILD_TIMESTAMP="$(KBUILD_BUILD_TIMESTAMP)" \
        KBUILD_BUILD_VERSION="0" \
        CONFIG_SHELL="$(BASH)" \
        $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
@@ -111,6 +117,7 @@ define Kernel/SetNoInitramfs
 endef
 
 define Kernel/Configure/Default
+       rm -f $(LINUX_DIR)/localversion
        $(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target
 # copy CONFIG_KERNEL_* settings over to .config.target
        awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(TOPDIR)/.config >> $(LINUX_DIR)/.config.target