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

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

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

File size: 7.3 KB
Line 
1#
2# Copyright (c) 2011 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 libArduino
20.SUFFIXES: .o .a .c .s
21
22# putting default variant
23ifeq ("$(VARIANT)", "")
24#VARIANT=sam3s_ek
25#VARIANT=sam3u_ek
26VARIANT=arduino_due_x
27endif
28
29ifeq ("$(VARIANT)", "sam3s_ek")
30CHIP=__SAM3S4C__
31VARIANT_PATH = ../../../../atmel/sam/variants/$(VARIANT)
32else ifeq ("$(VARIANT)", "sam3u_ek")
33CHIP=__SAM3U4E__
34VARIANT_PATH = ../../../../atmel/sam/variants/$(VARIANT)
35else ifeq ("$(VARIANT)", "sam3x_ek")
36CHIP=__SAM3X8H__
37VARIANT_PATH = ../../../../atmel/sam/variants/$(VARIANT)
38else ifeq ("$(VARIANT)", "arduino_due_u")
39CHIP=__SAM3U4E__
40VARIANT_PATH = ../../../../variants/$(VARIANT)
41else ifeq ("$(VARIANT)", "arduino_due_x")
42CHIP=__SAM3X8E__
43VARIANT_PATH = ../../../../variants/$(VARIANT)
44endif
45
46TOOLCHAIN=gcc
47
48#-------------------------------------------------------------------------------
49# Path
50#-------------------------------------------------------------------------------
51
52# Libraries
53PROJECT_BASE_PATH = ./..
54SYSTEM_PATH = ../../../../system
55
56ifeq ($(CHIP), __SAM3S4C__)
57CHIP_NAME=sam3s4c
58CHIP_SERIE=sam3s
59else ifeq ($(CHIP), __SAM3U4E__)
60CHIP_NAME=sam3u4e
61CHIP_SERIE=sam3u
62else ifeq ($(CHIP), __SAM3N4C__)
63CHIP_NAME=sam3n4c
64CHIP_SERIE=sam3n
65else ifeq ($(CHIP), __SAM3X8H__)
66CHIP_NAME=sam3x8h
67CHIP_SERIE=sam3xa
68else ifeq ($(CHIP), __SAM3X8E__)
69CHIP_NAME=sam3x8e
70CHIP_SERIE=sam3xa
71else
72endif
73
74CMSIS_ROOT_PATH = $(SYSTEM_PATH)/CMSIS
75CMSIS_ARM_PATH=$(CMSIS_ROOT_PATH)/CMSIS/Include
76CMSIS_ATMEL_PATH=$(CMSIS_ROOT_PATH)/Device/ATMEL
77CMSIS_CHIP_PATH=$(CMSIS_ROOT_PATH)/Device/ATMEL/$(CHIP_SERIE)
78
79ARDUINO_CORE_PATH=$(PROJECT_BASE_PATH)/..
80ARDUINO_USB_PATH=$(PROJECT_BASE_PATH)/../USB
81ARDUINO_USB_HOST_PATH=$(PROJECT_BASE_PATH)/../../../system/USBHost
82
83# Output directories
84OUTPUT_PATH = debug_$(VARIANT)
85
86#-------------------------------------------------------------------------------
87# Files
88#-------------------------------------------------------------------------------
89
90vpath %.h $(PROJECT_BASE_PATH)/.. $(VARIANT_PATH) $(SYSTEM_PATH) $(CMSIS_ARM_PATH)
91vpath %.cpp $(PROJECT_BASE_PATH)
92
93VPATH+=$(PROJECT_BASE_PATH)
94
95INCLUDES = -I$(PROJECT_BASE_PATH)/..
96INCLUDES += -I$(VARIANT_PATH)
97#INCLUDES += -I$(VARIANT_PATH)/..
98#INCLUDES += -I$(SYSTEM_PATH)
99INCLUDES += -I$(SYSTEM_PATH)/libsam
100INCLUDES += -I$(CMSIS_ARM_PATH)
101INCLUDES += -I$(CMSIS_ATMEL_PATH)
102INCLUDES += -I$(CMSIS_CHIP_PATH)
103INCLUDES += -I$(ARDUINO_USB_PATH)
104INCLUDES += -I$(ARDUINO_USB_HOST_PATH)
105
106#-------------------------------------------------------------------------------
107ifdef DEBUG
108include debug.mk
109else
110include release.mk
111endif
112
113#-------------------------------------------------------------------------------
114# Tools
115#-------------------------------------------------------------------------------
116
117include $(TOOLCHAIN).mk
118
119#-------------------------------------------------------------------------------
120ifdef DEBUG
121OUTPUT_OBJ=debug
122LIBS_POSTFIX=dbg
123else
124OUTPUT_OBJ=release
125LIBS_POSTFIX=rel
126endif
127
128OUTPUT_BIN=test_$(TOOLCHAIN)_$(LIBS_POSTFIX)
129LIBS=-Wl,--start-group -lgcc -lc -lstdc++ -lsam_$(CHIP_NAME)_$(TOOLCHAIN)_$(LIBS_POSTFIX) -larduino_$(VARIANT)_$(TOOLCHAIN)_$(LIBS_POSTFIX) -lvariant_$(VARIANT)_$(TOOLCHAIN)_$(LIBS_POSTFIX) -Wl,--end-group
130
131LIB_PATH =-L$(PROJECT_BASE_PATH)/..
132LIB_PATH+=-L=/lib/thumb2
133#LIB_PATH+=-L=/../lib/gcc/arm-none-eabi/4.5.2/thumb2
134
135LDFLAGS= -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols
136
137#-------------------------------------------------------------------------------
138# CPP source files and objects
139#-------------------------------------------------------------------------------
140CPP_SRC=$(wildcard $(PROJECT_BASE_PATH)/*.cpp)
141
142CPP_OBJ_TEMP = $(patsubst %.cpp, %.o, $(notdir $(CPP_SRC)))
143
144# during development, remove some files
145CPP_OBJ_FILTER=
146
147CPP_OBJ=$(filter-out $(CPP_OBJ_FILTER), $(CPP_OBJ_TEMP))
148
149#-------------------------------------------------------------------------------
150# Rules
151#-------------------------------------------------------------------------------
152all: test
153
154test: create_output libsam_$(CHIP_NAME)_$(TOOLCHAIN)_$(LIBS_POSTFIX).a libarduino_$(VARIANT)_$(TOOLCHAIN)_$(LIBS_POSTFIX).a libvariant_$(VARIANT)_$(TOOLCHAIN)_$(LIBS_POSTFIX).a $(OUTPUT_BIN)
155
156
157.PHONY: create_output
158create_output:
159 @echo --- Preparing $(VARIANT) files in $(OUTPUT_PATH) $(OUTPUT_BIN)
160# @echo -------------------------
161# @echo *$(INCLUDES)
162# @echo -------------------------
163# @echo *$(C_SRC)
164# @echo -------------------------
165# @echo *$(C_OBJ)
166# @echo -------------------------
167# @echo *$(addprefix $(OUTPUT_PATH)/, $(C_OBJ))
168# @echo -------------------------
169# @echo *$(CPP_SRC)
170# @echo -------------------------
171# @echo *$(CPP_OBJ)
172# @echo -------------------------
173# @echo *$(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ))
174# @echo -------------------------
175# @echo *$(A_SRC)
176# @echo -------------------------
177
178 -@mkdir $(OUTPUT_PATH) 1>NUL 2>&1
179
180$(addprefix $(OUTPUT_PATH)/,$(CPP_OBJ)): $(OUTPUT_PATH)/%.o: %.cpp
181# @"$(CC)" -c $(CPPFLAGS) $< -o $@
182 @"$(CXX)" -c $(CPPFLAGS) $< -o $@
183# @"$(CXX)" -v -c $(CPPFLAGS) $< -o $@
184
185$(OUTPUT_BIN): $(addprefix $(OUTPUT_PATH)/, $(C_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(A_OBJ))
186 @"$(CC)" $(LIB_PATH) $(LDFLAGS) -T"$(VARIANT_PATH)/linker_scripts/gcc/flash.ld" -Wl,-Map,$(OUTPUT_PATH)/$@.map -o $(OUTPUT_PATH)/$@.elf $^ $(LIBS)
187# @"$(CC)" $(LIB_PATH) $(LDFLAGS) -T"$(VARIANT_PATH)/linker_scripts/gcc/sram.ld" -Wl,-Map,$(OUTPUT_PATH)/$@.map -o $(OUTPUT_PATH)/$@.elf $^ $(LIBS)
188 @"$(NM)" $(OUTPUT_PATH)/$@.elf >$(OUTPUT_PATH)/$@.elf.txt
189 @"$(OBJCOPY)" -O binary $(OUTPUT_PATH)/$@.elf $(OUTPUT_PATH)/$@.bin
190 $(SIZE) $^ $(OUTPUT_PATH)/$@.elf
191
192.PHONY: clean
193clean:
194 @echo --- Cleaning test files
195 -@$(RM) $(OUTPUT_PATH) 1>NUL 2>&1
196
197# -$(RM) $(OUTPUT_PATH)/test.o
198# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf
199# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf.txt
200# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).bin
201# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).map
202
203debug: test
204 @"$(GDB)" -x "$(VARIANT_PATH)/debug_scripts/gcc/$(VARIANT)_flash.gdb" -ex "reset" -readnow -se $(OUTPUT_PATH)/$(OUTPUT_BIN).elf
205# @"$(GDB)" -w -x "$(VARIANT_PATH)/debug_scripts/gcc/$(VARIANT)_sram.gdb" -ex "reset" -readnow -se $(OUTPUT_PATH)/$(OUTPUT_BIN).elf
206
207libsam_$(CHIP_NAME)_$(TOOLCHAIN)_$(LIBS_POSTFIX).a:
208 @echo Building $@
209 @$(MAKE) -C $(SYSTEM_PATH)/libsam/build_gcc -f Makefile $@
210
211libarduino_$(VARIANT)_$(TOOLCHAIN)_$(LIBS_POSTFIX).a:
212 @echo Building $@
213 $(MAKE) -C $(ARDUINO_CORE_PATH)/build_gcc -f Makefile $(VARIANT)
214
215libvariant_$(VARIANT)_$(TOOLCHAIN)_$(LIBS_POSTFIX).a:
216 @echo Building $@
217 $(MAKE) -C $(VARIANT_PATH)/build_gcc -f Makefile $(VARIANT)
218
Note: See TracBrowser for help on using the repository browser.