From f88e9ec4df375522678e4134c87f4e9967f42395 Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Sun, 8 Jan 2023 19:38:30 +0300 Subject: [PATCH] change Makefiles (versioning support) --- G0:G070/blink/Makefile | 9 ++++++--- G0:G070/blink/blink.bin | Bin 880 -> 880 bytes G0:G070/i2c/Makefile | 28 +++++++++++++++++++++++++--- G0:G070/usart/Makefile | 28 +++++++++++++++++++++++++--- 4 files changed, 56 insertions(+), 9 deletions(-) diff --git a/G0:G070/blink/Makefile b/G0:G070/blink/Makefile index 9835964..f82d9ea 100644 --- a/G0:G070/blink/Makefile +++ b/G0:G070/blink/Makefile @@ -5,7 +5,7 @@ BOOTSPEED ?= 115200 FAMILY = G0 # MCU code MCU = G070xx -DEFS = -DEBUG -g3 +#DEFS = -DEBUG -g3 # change this linking script depending on particular MCU model, # for example, if you have STM32F103VBT6, you should write: LDSCRIPT = stm32g070xb.ld @@ -22,6 +22,7 @@ PREFIX ?= /opt/bin/arm-none-eabi RM := rm -f RMDIR := rmdir +SIZE := $(PREFIX)-size CC := $(PREFIX)-gcc LD := $(PREFIX)-gcc AR := $(PREFIX)-ar @@ -80,7 +81,7 @@ LIST := $(OBJDIR)/$(BINARY).list BIN := $(BINARY).bin HEX := $(BINARY).hex -all: bin list +all: bin list size elf: $(ELF) bin: $(BIN) @@ -125,6 +126,8 @@ clean: $(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map @rmdir $(OBJDIR) 2>/dev/null || true +size: $(ELF) + $(SIZE) $(ELF) flash: $(BIN) @echo " FLASH $(BIN)" @@ -140,4 +143,4 @@ dbg: arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt' -.PHONY: clean flash boot openocd dbg +.PHONY: clean flash boot size openocd dbg diff --git a/G0:G070/blink/blink.bin b/G0:G070/blink/blink.bin index 68908371e3479ba0c3d5055d41ff901b15605123..b058600a3f0e9cdca0cdf42c4423f9fc0cb86a14 100755 GIT binary patch delta 18 Ycmeys_JM7}j)@5@EDS)f@xTTq07HldQ2+n{ delta 13 Vcmeys_JM7}j)@aEHXhi(1OP9_27v$o diff --git a/G0:G070/i2c/Makefile b/G0:G070/i2c/Makefile index 32f5a2c..364a3a4 100644 --- a/G0:G070/i2c/Makefile +++ b/G0:G070/i2c/Makefile @@ -5,7 +5,7 @@ BOOTSPEED ?= 115200 FAMILY = G0 # MCU code MCU = G070xx -DEFS = -DEBUG -g3 +#DEFS = -DEBUG -g3 # change this linking script depending on particular MCU model, # for example, if you have STM32F103VBT6, you should write: LDSCRIPT = stm32g070xb.ld @@ -16,12 +16,23 @@ FP_FLAGS ?= -msoft-float ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS) +# autoincremental version & build date +VERSION_FILE = version.inc +ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes) + NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1) +else + NEXTVER := "1" +endif + +BUILDDATE := $(shell date +%Y-%m-%d) + ############################################################################### # Executables PREFIX ?= /opt/bin/arm-none-eabi RM := rm -f RMDIR := rmdir +SIZE := $(PREFIX)-size CC := $(PREFIX)-gcc LD := $(PREFIX)-gcc AR := $(PREFIX)-ar @@ -80,7 +91,7 @@ LIST := $(OBJDIR)/$(BINARY).list BIN := $(BINARY).bin HEX := $(BINARY).hex -all: bin list +all: bin list size elf: $(ELF) bin: $(BIN) @@ -97,6 +108,15 @@ $(OBJDIR): $(STARTUP): $(INC_DIR)/startup/vector.c $(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $< +$(VERSION_FILE): *.[ch] + [ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE) + @echo " Generate version: $(NEXTVER) for date $(BUILDDATE)" + @sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE) + @sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE) + +# Uncomment and rename file, which includes version.inc +#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE) + $(OBJDIR)/%.o: %.c @echo " CC $<" $(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $< @@ -125,6 +145,8 @@ clean: $(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map @rmdir $(OBJDIR) 2>/dev/null || true +size: $(ELF) + $(SIZE) $(ELF) flash: $(BIN) @echo " FLASH $(BIN)" @@ -140,4 +162,4 @@ dbg: arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt' -.PHONY: clean flash boot openocd dbg +.PHONY: clean flash boot size openocd dbg diff --git a/G0:G070/usart/Makefile b/G0:G070/usart/Makefile index c117530..383edc8 100644 --- a/G0:G070/usart/Makefile +++ b/G0:G070/usart/Makefile @@ -5,7 +5,7 @@ BOOTSPEED ?= 115200 FAMILY = G0 # MCU code MCU = G070xx -DEFS = -DEBUG -g3 +#DEFS = -DEBUG -g3 # change this linking script depending on particular MCU model, # for example, if you have STM32F103VBT6, you should write: LDSCRIPT = stm32g070xb.ld @@ -16,12 +16,23 @@ FP_FLAGS ?= -msoft-float ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS) +# autoincremental version & build date +VERSION_FILE = version.inc +ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes) + NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1) +else + NEXTVER := "1" +endif + +BUILDDATE := $(shell date +%Y-%m-%d) + ############################################################################### # Executables PREFIX ?= /opt/bin/arm-none-eabi RM := rm -f RMDIR := rmdir +SIZE := $(PREFIX)-size CC := $(PREFIX)-gcc LD := $(PREFIX)-gcc AR := $(PREFIX)-ar @@ -80,7 +91,7 @@ LIST := $(OBJDIR)/$(BINARY).list BIN := $(BINARY).bin HEX := $(BINARY).hex -all: bin list +all: bin list size elf: $(ELF) bin: $(BIN) @@ -97,6 +108,15 @@ $(OBJDIR): $(STARTUP): $(INC_DIR)/startup/vector.c $(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $< +$(VERSION_FILE): *.[ch] + [ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE) + @echo " Generate version: $(NEXTVER) for date $(BUILDDATE)" + @sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE) + @sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE) + +# Uncomment and rename file, which includes version.inc +#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE) + $(OBJDIR)/%.o: %.c @echo " CC $<" $(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $< @@ -125,6 +145,8 @@ clean: $(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map @rmdir $(OBJDIR) 2>/dev/null || true +size: $(ELF) + $(SIZE) $(ELF) flash: $(BIN) @echo " FLASH $(BIN)" @@ -140,4 +162,4 @@ dbg: arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt' -.PHONY: clean flash boot openocd dbg +.PHONY: clean flash boot size openocd dbg