diff --git a/build_info_make_target b/build_info_make_target new file mode 100644 index 0000000..932e9f1 --- /dev/null +++ b/build_info_make_target @@ -0,0 +1,42 @@ +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) + +