source: rtos_arduino/trunk/arduino_lib/hardware/arduino/samd/cores/validation/validation_core/build_gcc/test.mk@ 136

Last change on this file since 136 was 136, checked in by ertl-honda, 8 years ago

ライブラリとOS及びベーシックなサンプルの追加.

File size: 7.1 KB
Line 
1#
2# Copyright (c) 2014 Arduino. All right reserved.
3#
4# This library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8#
9# This library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12# See the GNU Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public
15# License along with this library; if not, write to the Free Software
16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17#
18
19# Makefile for compiling validation application
20.SUFFIXES: .o .a .c .cpp .s
21
22# putting default variant
23ifeq ("$(VARIANT)", "")
24VARIANT=arduino_zero
25endif
26
27ifeq ("$(VARIANT)", "arduino_zero")
28DEVICE=__SAMD21G18A__
29endif
30
31ifeq ($(DEVICE), __SAMD21G18A__)
32DEVICE_NAME=samd21g18
33DEVICE_SERIE=samd21
34else ifeq ($(DEVICE), __SAMD21J18A__)
35DEVICE_NAME=samd21j18
36DEVICE_SERIE=samd21
37endif
38
39#-------------------------------------------------------------------------------
40# Path
41#-------------------------------------------------------------------------------
42HARDWARE_PATH=../../../../../..
43ARCH_PATH=$(HARDWARE_PATH)/arduino/samd
44ARDUINO_CORE_PATH=$(ARCH_PATH)/cores/arduino
45ARDUINO_USB_PATH=$(ARDUINO_CORE_PATH)/USB
46LIBRARIES_PATH = $(ARCH_PATH)/libraries
47SPI_PATH = $(LIBRARIES_PATH)/SPI
48WIRE_PATH = $(LIBRARIES_PATH)/Wire
49VARIANT_PATH = $(ARCH_PATH)/variants/$(VARIANT)
50TOOLS_PATH = $(HARDWARE_PATH)/tools
51CMSIS_ROOT_PATH=$(TOOLS_PATH)/CMSIS
52CMSIS_ARM_PATH=$(CMSIS_ROOT_PATH)/CMSIS/Include
53CMSIS_ATMEL_PATH=$(CMSIS_ROOT_PATH)/Device/ATMEL
54#CMSIS_DEVICE_PATH=$(CMSIS_ROOT_PATH)/Device/ATMEL/$(DEVICE_SERIE)
55
56PROJECT_BASE_PATH = ..
57
58TOOLCHAIN=gcc
59
60
61# Output directories
62OUTPUT_PATH = debug_$(VARIANT)
63
64#-------------------------------------------------------------------------------
65# Files
66#-------------------------------------------------------------------------------
67
68vpath %.cpp $(PROJECT_BASE_PATH) $(ARDUINO_CORE_PATH) $(VARIANT_PATH) $(SPI_PATH) $(WIRE_PATH)
69vpath %.c $(ARDUINO_CORE_PATH) $(VARIANT_PATH)
70
71#VPATH+=$(PROJECT_BASE_PATH)
72
73INCLUDES = -I$(ARDUINO_CORE_PATH)
74INCLUDES += -I$(ARDUINO_USB_PATH)
75INCLUDES += -I$(VARIANT_PATH)
76INCLUDES += -I$(CMSIS_ARM_PATH)
77INCLUDES += -I$(CMSIS_ATMEL_PATH)
78INCLUDES += -I$(SPI_PATH)
79INCLUDES += -I$(WIRE_PATH)
80
81#-------------------------------------------------------------------------------
82ifdef DEBUG
83include debug.mk
84else
85include release.mk
86endif
87
88#-------------------------------------------------------------------------------
89# Tools
90#-------------------------------------------------------------------------------
91
92include $(TOOLCHAIN).mk
93
94CFLAGS += -DUSB_VID=0x2341 -DUSB_PID=0x004d
95CPPFLAGS += -DUSB_VID=0x2341 -DUSB_PID=0x004d
96
97#-------------------------------------------------------------------------------
98ifdef DEBUG
99OUTPUT_OBJ=debug
100LIBS_POSTFIX=dbg
101else
102OUTPUT_OBJ=release
103LIBS_POSTFIX=rel
104endif
105
106OUTPUT_BIN=test_$(TOOLCHAIN)_$(LIBS_POSTFIX)
107LIBS=-Wl,--start-group -lgcc -lc -lstdc++ -Wl,--end-group
108#LIBS=--specs=nano.specs -Wl,--start-group -lc lnosys -Wl,--end-group
109
110LIB_PATH =-L$(PROJECT_BASE_PATH)/..
111LIB_PATH+=-L=/lib/thumb2
112#LIB_PATH+=-L=/../lib/gcc/arm-none-eabi/4.5.2/thumb2
113
114#-------------------------------------------------------------------------------
115# C source files and objects
116#-------------------------------------------------------------------------------
117C_SRC=
118C_SRC+=$(wildcard $(PROJECT_BASE_PATH)/*.c)
119C_SRC+=$(wildcard $(ARDUINO_CORE_PATH)/*.c)
120C_SRC+=$(wildcard $(VARIANT_PATH)/*.c)
121
122C_OBJ_TEMP = $(patsubst %.c, %.o, $(notdir $(C_SRC)))
123
124# during development, remove some files
125C_OBJ_FILTER=
126
127C_OBJ=$(filter-out $(C_OBJ_FILTER), $(C_OBJ_TEMP))
128
129#-------------------------------------------------------------------------------
130# CPP source files and objects
131#-------------------------------------------------------------------------------
132CPP_SRC=$(wildcard $(PROJECT_BASE_PATH)/*.cpp)
133CPP_SRC+=$(wildcard $(ARDUINO_CORE_PATH)/*.cpp)
134CPP_SRC+=$(wildcard $(VARIANT_PATH)/*.cpp)
135
136CPP_OBJ_TEMP = $(patsubst %.cpp, %.o, $(notdir $(CPP_SRC)))
137
138# during development, remove some files
139CPP_OBJ_FILTER=
140
141CPP_OBJ=$(filter-out $(CPP_OBJ_FILTER), $(CPP_OBJ_TEMP))
142
143#-------------------------------------------------------------------------------
144# Rules
145#-------------------------------------------------------------------------------
146all: test
147
148test: create_output $(OUTPUT_BIN)
149
150
151.PHONY: create_output
152create_output:
153 @echo ------------------------------------------------------------------------------------
154 @echo --- Preparing $(VARIANT) files in $(OUTPUT_PATH) $(OUTPUT_BIN)
155 @echo -
156 @echo -
157 @echo INCLUDES -------------------------
158 @echo $(INCLUDES)
159 @echo -
160 @echo -
161 @echo C_SRC -------------------------
162 @echo $(C_SRC)
163 @echo -
164 @echo -
165 @echo C_OBJ -------------------------
166 @echo $(C_OBJ)
167 @echo -
168 @echo -
169 @echo C_OBJ prefix -------------------------
170 @echo $(addprefix $(OUTPUT_PATH)/, $(C_OBJ))
171 @echo -
172 @echo -
173 @echo CPP_SRC -------------------------
174 @echo $(CPP_SRC)
175 @echo -
176 @echo -
177 @echo CPP_OBJ -------------------------
178 @echo $(CPP_OBJ)
179 @echo -
180 @echo -
181 @echo CPP_OBJ prefix -------------------------
182 @echo $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ))
183# @echo A_SRC -------------------------
184# @echo $(A_SRC)
185 @echo -------------------------
186
187 -@mkdir $(OUTPUT_PATH) 1>NUL 2>&1
188 @echo ------------------------------------------------------------------------------------
189
190$(addprefix $(OUTPUT_PATH)/,$(C_OBJ)): $(OUTPUT_PATH)/%.o: %.c
191 @echo Current folder is $(shell cd) - $@ $^
192 @"$(CC)" -c $(CFLAGS) $< -o $@
193# "$(CC)" -v -c $(CFLAGS) $< -o $@
194# "$(CC)" -c $(CFLAGS) $< -o $@
195
196$(addprefix $(OUTPUT_PATH)/,$(CPP_OBJ)): $(OUTPUT_PATH)/%.o: %.cpp
197 @echo Current folder is $(shell cd) - $@ $^
198 @"$(CXX)" -c $(CPPFLAGS) $< -o $@
199# "$(CXX)" -v -c $(CPPFLAGS) $< -o $@
200# "$(CXX)" -c $(CPPFLAGS) $< -o $@
201
202$(OUTPUT_BIN): $(addprefix $(OUTPUT_PATH)/, $(C_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(A_OBJ))
203 @"$(CC)" $(LIB_PATH) $(LDFLAGS) -T"$(VARIANT_PATH)/linker_scripts/gcc/flash.ld" -Wl,-Map,$(OUTPUT_PATH)/$@.map -o $(OUTPUT_PATH)/$@.elf $^ $(LIBS)
204 @"$(NM)" $(OUTPUT_PATH)/$@.elf >$(OUTPUT_PATH)/$@.elf.txt
205 @"$(OBJCOPY)" -O binary $(OUTPUT_PATH)/$@.elf $(OUTPUT_PATH)/$@.bin
206 $(SIZE) $^ $(OUTPUT_PATH)/$@.elf
207
208.PHONY: clean
209clean:
210 @echo ------------------------------------------------------------------------------------
211 @echo --- Cleaning test files for $(VARIANT)
212 @$(RM) --version
213 -@$(RM) $(OUTPUT_PATH) 1>NUL 2>&1
214# -@$(RM) $(OUTPUT_PATH)
215 @echo ------------------------------------------------------------------------------------
216
217# -$(RM) $(OUTPUT_PATH)/test.o
218# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf
219# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf.txt
220# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).bin
221# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).map
222
223debug: test
224 @"$(GDB)" -x "$(VARIANT_PATH)/debug_scripts/gcc/$(VARIANT)_flash.gdb" -ex "reset" -readnow -se $(OUTPUT_PATH)/$(OUTPUT_BIN).elf
225
Note: See TracBrowser for help on using the repository browser.