lpc-field

Template project for programming NXP's LPC1768 MCUs
git clone git://git.mdnr.space/lpc-field
Log | Files | Refs | README | LICENSE

make-version.mk (1179B)


      1 GLOBAL_DIR = $(SRC_DIR)/globals
      2 ###############################################################################
      3 # Versioning
      4 HAS_TAG := $(shell git tag -l "v[0-9]*.[0-9]*")
      5 ifeq ($(HAS_TAG),)
      6 $(info No tags found. Define a tag like 'v0.1' to get versioning in build outputs)
      7 else
      8 VERSION = $(shell git describe --always --abbrev=4 --long)
      9 VERSION_MAJOR = $(shell git describe --always --long | sed "s/^v\([0-9]\+\).*/\1/")
     10 VERSION_MINOR = $(shell git describe --always --long | sed "s/^v[0-9]\+\.\([0-9]\+\).*/\1/")
     11 VERSION_PATCH = $(shell git describe --always --long | sed "s/^v[0-9]\+\.[0-9]\+-\([0-9]\+\).*/\1/")
     12 VERSION_HASH  = $(shell git describe --always --abbrev=4 --long | sed "s/^v[0-9]\+\.[0-9]\+-[0-9]\+-\([a-z0-9]\{5\}\).*/\1/")
     13 endif
     14 
     15 VERSION_FILE = $(GLOBAL_DIR)/version.h
     16 
     17 version: | $(VERSION_FILE)
     18 	$(Q)printf "// fw version: $(VERSION)\n \
     19 	#include <stdint.h>\n \
     20 	const uint8_t gGIT_VERSION_MAJOR = $(VERSION_MAJOR);\n \
     21 	const uint8_t gGIT_VERSION_MINOR = $(VERSION_MINOR);\n \
     22 	const uint8_t gGIT_VERSION_PATCH = $(VERSION_PATCH);\n \
     23 	#define gGIT_VERSION_HASH \"$(VERSION_HASH)\"\n" > $(VERSION_FILE)
     24 
     25 $(VERSION_FILE):
     26 	$(shell touch $(VERSION_FILE)) \