useful_linux_scripts/build_info_make_target

43 lines
1.8 KiB
Plaintext

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)