xtotp_app.make (1819B)
1 # Makefile base for xtotp-base-firmware 2 # Include this file with 3 # base-firmware relative path to base project 4 XTOTP_BASE_SOURCE_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) 5 # Logger options 6 LOGGER_LEVEL ?= 0 7 # Current time 8 CURRENT_TIME := $(shell date +'%s') 9 # Version.h file in this directory to be fix included and not versioned 10 VERSION_H := $(XTOTP_BASE_SOURCE_DIR)/version.h 11 12 XTOTP_C_ARGS = -DLOGGER_LEVEL=$(LOGGER_LEVEL) 13 XTOTP_LDFLAGS = 14 15 # Module paths 16 LIB_ORIG_DIR := ../third_party/ 17 18 PBM_LIB_DIR := $(XTOTP_BASE_SOURCE_DIR)/$(LIB_ORIG_DIR)/pbmLib 19 TINYTIME_LIB_DIR := $(XTOTP_BASE_SOURCE_DIR)/$(LIB_ORIG_DIR)/tinytime 20 BASEX_LIB_DIR := $(XTOTP_BASE_SOURCE_DIR)/$(LIB_ORIG_DIR)/baseX-Converter 21 22 XTOTP_C_SOURCES = \ 23 $(wildcard $(XTOTP_BASE_SOURCE_DIR)/app/src/*.c) \ 24 $(wildcard $(XTOTP_BASE_SOURCE_DIR)/interfaces/src/*.c) \ 25 $(wildcard $(XTOTP_BASE_SOURCE_DIR)/utils/src/*.c) \ 26 $(PBM_LIB_DIR)/src/pbm_graphics.c \ 27 $(wildcard $(TINYTIME_LIB_DIR)/src/*.c) \ 28 $(wildcard $(BASEX_LIB_DIR)/src/*.c) 29 30 XTOTP_C_INC = \ 31 -I$(XTOTP_BASE_SOURCE_DIR)/app/inc \ 32 -I$(XTOTP_BASE_SOURCE_DIR)/interfaces/inc \ 33 -I$(XTOTP_BASE_SOURCE_DIR)/utils/inc \ 34 -I$(PBM_LIB_DIR)/inc \ 35 -I$(TINYTIME_LIB_DIR)/inc \ 36 -I$(BASEX_LIB_DIR)/inc \ 37 -I$(XTOTP_BASE_SOURCE_DIR) 38 39 .PHONY: all FORCE 40 41 all: $(VERSION_H) 42 43 $(VERSION_H): FORCE 44 @$(Q)echo "-- -- -- -- -- -- -- -- -- -- --" 45 @$(Q)echo "-- Firmware Version Extractor --" 46 @$(Q)echo "-- -- -- -- -- -- -- -- -- -- --" 47 @$(Q)echo "#pragma once" > $@ 48 @$(Q)echo "#define FIRMWARE_VERSION \"$(shell git describe --always --dirty --tags)\"" >> $@ 49 @$(Q)git log --pretty=format:'#define FIRMWARE_DATE "%cs"' -n 1 >> $@ 50 @$(Q)echo "\n#define FIRMWARE_COMPILE_TIME $(CURRENT_TIME)" >> $@ 51 @$(Q)echo "\n Version symboles defined and\n placed in \"$@\" file." 52 53 .PHONY: FORCE 54 FORCE: