--- a/Makefile +++ b/Makefile @@ -2,11 +2,11 @@ include version.mk include config.mk include colors.mk -HLWMSRC = $(wildcard src/*.cpp) +HLWMSRC = $(sort $(wildcard src/*.cpp)) HLWMOBJ = $(HLWMSRC:.cpp=.o) HLWMTARGET = herbstluftwm -HCSRC = $(wildcard ipc-client/*.c) +HCSRC = $(sort $(wildcard ipc-client/*.c)) HCOBJ = $(HCSRC:.c=.o) HCTARGET = herbstclient @@ -18,6 +18,15 @@ HERBSTLUFTWMDOC = doc/herbstluftwm.txt TUTORIAL = doc/herbstluftwm-tutorial.txt +DATE_FMT = %Y-%m-%d +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 + +export CPPFLAGS += -DBUILD_DATE="\"$(BUILD_DATE)\"" + .PHONY: depend all all-nodoc doc install install-nodoc info www .PHONY: cleandoc cleanwww cleandeps clean @@ -93,7 +102,7 @@ doc/%.1 doc/%.7: doc/%.txt version.mk $(call colorecho,DOC,$@) - $(VERBOSE) $(A2X) -f manpage -a "herbstluftwmversion=herbstluftwm $(VERSION)" -a "date=`date +%Y-%m-%d`" $< + $(VERBOSE) $(A2X) -f manpage -a "herbstluftwmversion=herbstluftwm $(VERSION)" -a "date=$(BUILD_DATE)" $< doc/%.html: doc/%.txt version.mk $(call colorecho,DOC,$@) --- a/ipc-client/main.c +++ b/ipc-client/main.c @@ -17,7 +17,7 @@ #include "client-utils.h" #define HERBSTCLIENT_VERSION_STRING \ - "herbstclient " HERBSTLUFT_VERSION " (built on " __DATE__ ")\n" + "herbstclient " HERBSTLUFT_VERSION " (built on " BUILD_DATE ")\n" void print_help(char* command, FILE* file); void init_hook_regex(int argc, char* argv[]); --- a/src/globals.h +++ b/src/globals.h @@ -12,7 +12,7 @@ #define HERBSTLUFT_AUTOSTART "herbstluftwm/autostart" #define WINDOW_MANAGER_NAME "herbstluftwm" #define HERBSTLUFT_VERSION_STRING \ - WINDOW_MANAGER_NAME " " HERBSTLUFT_VERSION " (built on " __DATE__ ")" + WINDOW_MANAGER_NAME " " HERBSTLUFT_VERSION " (built on " BUILD_DATE ")" #define HERBST_FRAME_CLASS "_HERBST_FRAME" #define HERBST_DECORATION_CLASS "_HERBST_DECORATION"