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