]> cloudbase.mooo.com Git - z180-stamp.git/blame - stm32/Rules.mk
ROM files in Z180 dir
[z180-stamp.git] / stm32 / Rules.mk
CommitLineData
88d31d11
L
1
2BINARY := z180-stamp-stm32
3P_BINARY := $(OBJPATH)/$(BINARY)
4
78a3a76d 5TARGETS := $(BINARY).elf
88d31d11 6
78a3a76d
L
7###############################################################################
8# Source files
88d31d11 9
78a3a76d
L
10SRCS := z180-stamp-stm32.c serial.c z80-if.c hdrom.c
11
12SRCS_VPATH := ../Z180
88d31d11
L
13
14LIBNAME = opencm3_stm32f1
6b81b39f 15DEFS = -DSTM32F1 -DDEBUG=2
88d31d11
L
16OPENCM3_DIR := $(TOP)/libopencm3
17LDSCRIPT := $(d)/stm32vl-discovery.ld
18
19FP_FLAGS ?= -msoft-float
20ARCH_FLAGS = -mthumb -mcpu=cortex-m3 $(FP_FLAGS) -mfix-cortex-m3-ldrd
21
22STLINK_PORT = :3333
23
24###############################################################################
25# Executables
26
6b81b39f 27TOOLCHAINDIR := /usr/local/gcc-arm-none-eabi-4_8-2014q2/bin
88d31d11
L
28TOOLCHAIN := $(TOOLCHAINDIR)/arm-none-eabi
29
30CC := $(TOOLCHAIN)-gcc
31LD := $(TOOLCHAIN)-gcc
32AR := $(TOOLCHAIN)-ar
33AS := $(TOOLCHAIN)-as
34OBJCOPY := $(TOOLCHAIN)-objcopy
35OBJDUMP := $(TOOLCHAIN)-objdump
36GDB := $(TOOLCHAIN)-gdb
37
38###############################################################################
88d31d11
L
39
40
41ifeq ($(VERBOSE),true)
42$(info Using $(OPENCM3_DIR) path to library)
43endif
44
45INCLUDES_$(d) := $(OPENCM3_DIR)/include
46LIBDIRS_$(d) := $(OPENCM3_DIR)/lib
47
48SCRIPT_DIR = $(OPENCM3_DIR)/scripts
49
50###############################################################################
51# C flags
52
53CFLAGS_$(d) := -Os -g
54CFLAGS_$(d) += -Wextra -Wshadow -Wimplicit-function-declaration
55CFLAGS_$(d) += -Wredundant-decls #-Wstrict-prototypes
56CFLAGS_$(d) += -fno-common -ffunction-sections -fdata-sections
57CFLAGS_$(d) += -std=c99
58CFLAGS_$(d) += $(ARCH_FLAGS)
59
60###############################################################################
61# C & C++ preprocessor common flags
62
63CPPFLAGS_$(d) := $(DEFS)
64
65###############################################################################
66# Linker flags
67
68LDFLAGS += --static -nostartfiles
69LDFLAGS += -T$(LDSCRIPT)
70LDFLAGS += -Wl,-Map=$(*).map
71LDFLAGS += -Wl,--gc-sections
72
73#ifeq ($(VERBOSE),true)
74#LDFLAGS += -Wl,--print-gc-sections
75#endif
76
77###############################################################################
78# Used libraries
79
80LDLIBS += -l$(LIBNAME)
81LDLIBS += -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
92elf: $(P_BINARY).elf
93bin: $(P_BINARY).bin
94hex: $(P_BINARY).hex
95srec: $(P_BINARY).srec
96list: $(P_BINARY).list
97
98images: $(P_BINARY).images
99flash: $(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