4 # Library modules to use
6 OBJS += util-debug.o modbus.o
8 OPENCM3_DIR=/home/mj/stm/libopencm3
11 all: $(BINARY).elf $(BINARY).bin
14 ../bin/st-flash write $(BINARY).bin 0x8000000
24 include $(OPENCM3_DIR)/mk/genlink-config.mk
26 PREFIX ?= arm-none-eabi
33 OBJCOPY := $(PREFIX)-objcopy
34 OBJDUMP := $(PREFIX)-objdump
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
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
55 TGT_LDFLAGS += -Wl,--print-gc-sections
58 LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
60 include $(OPENCM3_DIR)/mk/genlink-rules.mk
63 @printf " OBJCOPY $(*).bin\n"
64 $(Q)$(OBJCOPY) -Obinary $(*).elf $(*).bin
66 %.elf: $(OBJS) $(LDSCRIPT)
67 @printf " LD $(*).elf\n"
68 $(Q)$(LD) $(TGT_LDFLAGS) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $*.elf
71 @printf " CC $(*).c\n"
72 $(Q)$(CC) $(TGT_CFLAGS) $(CFLAGS) $(TGT_CPPFLAGS) $(CPPFLAGS) -o $@ -c $<
77 $(Q)rm -f *.elf *.bin *.o *.d *.map $(LDSCRIPT)
81 $(STFLASH) write $(*).bin 0x8000000
86 -include $(OBJS:.o=.d)