]>
Commit | Line | Data |
---|---|---|
88d31d11 L |
1 | |
2 | BINARY := z180-stamp-stm32 | |
3 | P_BINARY := $(OBJPATH)/$(BINARY) | |
4 | ||
78a3a76d | 5 | TARGETS := $(BINARY).elf |
88d31d11 | 6 | |
78a3a76d L |
7 | ############################################################################### |
8 | # Source files | |
88d31d11 | 9 | |
78a3a76d L |
10 | SRCS := z180-stamp-stm32.c serial.c z80-if.c hdrom.c |
11 | ||
12 | SRCS_VPATH := ../Z180 | |
88d31d11 L |
13 | |
14 | LIBNAME = opencm3_stm32f1 | |
6b81b39f | 15 | DEFS = -DSTM32F1 -DDEBUG=2 |
88d31d11 L |
16 | OPENCM3_DIR := $(TOP)/libopencm3 |
17 | LDSCRIPT := $(d)/stm32vl-discovery.ld | |
18 | ||
19 | FP_FLAGS ?= -msoft-float | |
20 | ARCH_FLAGS = -mthumb -mcpu=cortex-m3 $(FP_FLAGS) -mfix-cortex-m3-ldrd | |
21 | ||
22 | STLINK_PORT = :3333 | |
23 | ||
24 | ############################################################################### | |
25 | # Executables | |
26 | ||
6b81b39f | 27 | TOOLCHAINDIR := /usr/local/gcc-arm-none-eabi-4_8-2014q2/bin |
88d31d11 L |
28 | TOOLCHAIN := $(TOOLCHAINDIR)/arm-none-eabi |
29 | ||
30 | CC := $(TOOLCHAIN)-gcc | |
31 | LD := $(TOOLCHAIN)-gcc | |
32 | AR := $(TOOLCHAIN)-ar | |
33 | AS := $(TOOLCHAIN)-as | |
34 | OBJCOPY := $(TOOLCHAIN)-objcopy | |
35 | OBJDUMP := $(TOOLCHAIN)-objdump | |
36 | GDB := $(TOOLCHAIN)-gdb | |
37 | ||
38 | ############################################################################### | |
88d31d11 L |
39 | |
40 | ||
41 | ifeq ($(VERBOSE),true) | |
42 | $(info Using $(OPENCM3_DIR) path to library) | |
43 | endif | |
44 | ||
45 | INCLUDES_$(d) := $(OPENCM3_DIR)/include | |
46 | LIBDIRS_$(d) := $(OPENCM3_DIR)/lib | |
47 | ||
48 | SCRIPT_DIR = $(OPENCM3_DIR)/scripts | |
49 | ||
50 | ############################################################################### | |
51 | # C flags | |
52 | ||
53 | CFLAGS_$(d) := -Os -g | |
54 | CFLAGS_$(d) += -Wextra -Wshadow -Wimplicit-function-declaration | |
55 | CFLAGS_$(d) += -Wredundant-decls #-Wstrict-prototypes | |
56 | CFLAGS_$(d) += -fno-common -ffunction-sections -fdata-sections | |
57 | CFLAGS_$(d) += -std=c99 | |
58 | CFLAGS_$(d) += $(ARCH_FLAGS) | |
59 | ||
60 | ############################################################################### | |
61 | # C & C++ preprocessor common flags | |
62 | ||
63 | CPPFLAGS_$(d) := $(DEFS) | |
64 | ||
65 | ############################################################################### | |
66 | # Linker flags | |
67 | ||
68 | LDFLAGS += --static -nostartfiles | |
69 | LDFLAGS += -T$(LDSCRIPT) | |
70 | LDFLAGS += -Wl,-Map=$(*).map | |
71 | LDFLAGS += -Wl,--gc-sections | |
72 | ||
73 | #ifeq ($(VERBOSE),true) | |
74 | #LDFLAGS += -Wl,--print-gc-sections | |
75 | #endif | |
76 | ||
77 | ############################################################################### | |
78 | # Used libraries | |
79 | ||
80 | LDLIBS += -l$(LIBNAME) | |
81 | LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group | |
82 | ||
88d31d11 L |
83 | ############################################################################### |
84 | ||
85 | ||
6b81b39f | 86 | $(BINARY).elf_DEPS = z180-stamp-stm32.o serial.o z80-if.o hdrom.o |
88d31d11 L |
87 | $(BINARY).elf_CMD = $(call echo_cmd,LINK $@) $(LD) $(LDFLAGS) $(ARCH_FLAGS) $^ $(LDLIBS) -o $@ |
88 | ||
89 | .SUFFIXES: .elf .bin .hex .srec .list .map .images | |
90 | .SECONDEXPANSION: | |
91 | ||
92 | elf: $(P_BINARY).elf | |
93 | bin: $(P_BINARY).bin | |
94 | hex: $(P_BINARY).hex | |
95 | srec: $(P_BINARY).srec | |
96 | list: $(P_BINARY).list | |
97 | ||
98 | images: $(P_BINARY).images | |
99 | flash: $(P_BINARY).flash | |
100 | ||
78a3a76d | 101 | %.images: %.bin %.hex %.list |
88d31d11 L |
102 | $(call echo_cmd,Images generated: $*) |
103 | ||
104 | %.bin: %.elf | |
105 | $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Obinary $< $@ | |
106 | ||
107 | %.hex: %.elf | |
108 | $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Oihex $< $@ | |
109 | ||
110 | %.srec: %.elf | |
111 | $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Osrec $< $@ | |
112 | ||
113 | %.list: %.elf | |
114 | $(call echo_cmd,OBJDUMP $@) $(OBJDUMP) -S $< > $@ | |
115 | ||
116 | #$(OBJPATH)/%.elf: $(OBJS) $(LDSCRIPT) $(LIB_DIR)/lib$(LIBNAME).a | |
117 | # @#printf " LD $(*).elf\n" | |
118 | # $(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS_$(d)) $(LDLIBS) -o $(*).elf | |
119 | ||
120 | #%.o: %.c | |
121 | # @#printf " CC $(*).c\n" | |
122 | # $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).c | |
123 | # | |
124 | #%.o: %.cxx | |
125 | # @#printf " CXX $(*).cxx\n" | |
126 | # $(Q)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).cxx | |
127 | # | |
128 | #%.o: %.cpp | |
129 | # @#printf " CXX $(*).cpp\n" | |
130 | # $(Q)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).cpp | |
131 | ||
132 | #clean: | |
133 | # @#printf " CLEAN\n" | |
134 | # $(Q)$(RM) *.o *.d *.elf *.bin *.hex *.srec *.list *.map | |
135 | ||
136 | ||
137 | %.flash: %.elf | |
138 | $(call echo_cmd,GDB $< (flash)) $(GDB) --batch \ | |
139 | -ex 'target extended-remote $(STLINK_PORT)' \ | |
acd9bdaf L |
140 | -ex 'monitor reset halt' \ |
141 | -ex 'load' \ | |
88d31d11 L |
142 | $< |
143 | ||
acd9bdaf | 144 | |
88d31d11 L |
145 | .PHONY: images elf bin hex srec list flash |
146 |