]> mj.ucw.cz Git - home-hw.git/blob - test-modbus/Makefile
Modbus test: clean up Makefile
[home-hw.git] / test-modbus / Makefile
1 BINARY=test
2 OBJS=test.o
3
4 # Library modules to use
5 vpath %.c ../lib
6 OBJS += util-debug.o modbus.o
7
8 OPENCM3_DIR=/home/mj/stm/libopencm3
9 DEVICE=stm32f103x8
10
11 all: $(BINARY).elf $(BINARY).bin
12
13 flash: all
14         ../bin/st-flash write $(BINARY).bin 0x8000000
15
16 reset: all
17         ../bin/st-flash reset
18
19 ifneq ($(V),1)
20 Q               := @
21 NULL            := 2>/dev/null
22 endif
23
24 include $(OPENCM3_DIR)/mk/genlink-config.mk
25
26 PREFIX          ?= arm-none-eabi
27
28 CC              := $(PREFIX)-gcc
29 CXX             := $(PREFIX)-g++
30 LD              := $(PREFIX)-gcc
31 AR              := $(PREFIX)-ar
32 AS              := $(PREFIX)-as
33 OBJCOPY         := $(PREFIX)-objcopy
34 OBJDUMP         := $(PREFIX)-objdump
35 GDB             := $(PREFIX)-gdb
36 OPT             := -Os
37 DEBUG           := -ggdb3
38 CSTD            ?= -std=c99
39
40 TGT_CFLAGS      += $(OPT) $(CSTD) $(DEBUG)
41 TGT_CFLAGS      += $(ARCH_FLAGS)
42 TGT_CFLAGS      += -Wall -Wextra -Wshadow -Wimplicit-function-declaration
43 TGT_CFLAGS      += -Wredundant-decls -Wmissing-prototypes -Wstrict-prototypes
44 TGT_CFLAGS      += -fno-common -ffunction-sections -fdata-sections
45 TGT_CFLAGS      += -I. -I../lib
46
47 TGT_CPPFLAGS    += -MD
48
49 TGT_LDFLAGS     += --static -nostartfiles
50 TGT_LDFLAGS     += -T$(LDSCRIPT)
51 TGT_LDFLAGS     += $(ARCH_FLAGS) $(DEBUG)
52 TGT_LDFLAGS     += -Wl,-Map=$(*).map -Wl,--cref
53 TGT_LDFLAGS     += -Wl,--gc-sections
54 ifeq ($(V),99)
55 TGT_LDFLAGS     += -Wl,--print-gc-sections
56 endif
57
58 LDLIBS          += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
59
60 include $(OPENCM3_DIR)/mk/genlink-rules.mk
61
62 %.bin: %.elf
63         @printf "  OBJCOPY $(*).bin\n"
64         $(Q)$(OBJCOPY) -Obinary $(*).elf $(*).bin
65
66 %.elf: $(OBJS) $(LDSCRIPT)
67         @printf "  LD      $(*).elf\n"
68         $(Q)$(LD) $(TGT_LDFLAGS) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $*.elf
69
70 %.o: %.c
71         @printf "  CC      $(*).c\n"
72         $(Q)$(CC) $(TGT_CFLAGS) $(CFLAGS) $(TGT_CPPFLAGS) $(CPPFLAGS) -o $@ -c $<
73
74 .PHONY: clean
75 clean:
76         @printf "  CLEAN\n"
77         $(Q)rm -f *.elf *.bin *.o *.d *.map $(LDSCRIPT)
78
79 %.stlink-flash: %.bin
80         @printf "  FLASH  $<\n"
81         $(STFLASH) write $(*).bin 0x8000000
82
83 .SECONDEXPANSION:
84 .SECONDARY:
85
86 -include $(OBJS:.o=.d)