DATESTAMP := $(shell date +"%d%m%Y_%H%M%S") # =========================================== # Build information variables # =========================================== DATESTAMP := $(shell date +"%Y%m%d_%H%M%S") GITHASH := $(shell git rev-parse --short HEAD 2>/dev/null || echo "no-git") GITORG := $(shell git remote -v) GITBRANCH := $(shell git branch --show-current) HOSTNAME := $(shell hostname) PWD := $(shell pwd) USER := $(shell echo $$USER) # Optional: define version manually or via a file VERSION := 1.0.0 # Path to generated header BUILDINFO_H = build_info.h # =========================================== # Rule to auto-generate the header # =========================================== .PHONY: buildinfo buildinfo: @echo "Generating $(BUILDINFO_H)" @echo "/* Auto-generated: DO NOT EDIT */" > $(BUILDINFO_H) @echo "#ifndef BUILD_INFO_H" >> $(BUILDINFO_H) @echo "#define BUILD_INFO_H" >> $(BUILDINFO_H) @echo "" >> $(BUILDINFO_H) @echo "#define BUILD_DATE \"$(DATESTAMP)\"" >> $(BUILDINFO_H) @echo "#define BUILD_GIT_HASH \"$(GITHASH)\"" >> $(BUILDINFO_H) @echo "#define BUILD_HOST \"$(HOSTNAME)\"" >> $(BUILDINFO_H) @echo "#define BUILD_PWD \"$(PWD)\"" >> $(BUILDINFO_H) @echo "#define BUILD_USER \"$(USER)\"" >> $(BUILDINFO_H) @echo "#define BUILD_VERSION \"$(VERSION)\"" >> $(BUILDINFO_H) @echo "#define GITORG \"$(GITORG)\"" >> $(BUILDINFO_H) @echo "#define GITBRANCH \"$(GITBRANCH)\"" >> $(BUILDINFO_H) @echo "" >> $(BUILDINFO_H) @echo "#endif /* BUILD_INFO_H */" >> $(BUILDINFO_H)