blob: 76842045592463cb200bfdd768fcd95b4d502c43 [file] [log] [blame]
Kévin Redon69b92d92019-01-24 16:39:20 +01001################################################################################
2# Automatically-generated file. Do not edit!
3################################################################################
4
Harald Weltecdb1ee32019-04-17 16:31:27 +02005EXTRA_CFLAGS=-I/usr/local/arm-none-eabi/include -I../../ccid
6
Kévin Redon69b92d92019-01-24 16:39:20 +01007ifdef SystemRoot
8 SHELL = cmd.exe
9 MK_DIR = mkdir
10else
11 ifeq ($(shell uname), Linux)
12 MK_DIR = mkdir -p
13 endif
14
15 ifeq ($(shell uname | cut -d _ -f 1), CYGWIN)
16 MK_DIR = mkdir -p
17 endif
18
19 ifeq ($(shell uname | cut -d _ -f 1), MINGW32)
20 MK_DIR = mkdir -p
21 endif
22
23 ifeq ($(shell uname | cut -d _ -f 1), MINGW64)
24 MK_DIR = mkdir -p
25 endif
26endif
27
28# List the subdirectories for creating object files
29SUB_DIRS += \
30 \
Harald Welte361ed202019-02-24 21:15:39 +010031hal/src \
32hpl/ramecc \
Harald Welte361ed202019-02-24 21:15:39 +010033hpl/oscctrl \
34stdio_redirect/gcc \
Kévin Redon69b92d92019-01-24 16:39:20 +010035gcc \
36hpl/osc32kctrl \
Harald Welte361ed202019-02-24 21:15:39 +010037usb \
Kévin Redon69b92d92019-01-24 16:39:20 +010038hpl/dmac \
39usb/class/cdc/device \
Harald Weltecdb1ee32019-04-17 16:31:27 +020040usb/class/ccid/device \
Harald Welte361ed202019-02-24 21:15:39 +010041stdio_redirect \
Kévin Redon69b92d92019-01-24 16:39:20 +010042hal/utils/src \
Kévin Redon69b92d92019-01-24 16:39:20 +010043hpl/usb \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010044dma_m2m \
Harald Welte361ed202019-02-24 21:15:39 +010045hpl/pm \
46hpl/cmcc \
47hpl/gclk \
48gcc/gcc \
49hpl/mclk \
50usb/device \
51hpl/sercom \
52hpl/core
Kévin Redon69b92d92019-01-24 16:39:20 +010053
54# List the object files
55OBJS += \
56hal/src/hal_io.o \
Harald Welte361ed202019-02-24 21:15:39 +010057stdio_redirect/stdio_io.o \
58stdio_redirect/gcc/write.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010059hpl/core/hpl_core_m4.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010060hal/src/hal_cache.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010061usb/class/cdc/device/cdcdf_acm.o \
Harald Weltecdb1ee32019-04-17 16:31:27 +020062usb/class/ccid/device/ccid_df.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010063hal/utils/src/utils_syscalls.o \
Harald Welte361ed202019-02-24 21:15:39 +010064stdio_redirect/gcc/read.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010065gcc/system_same54.o \
66hpl/usb/hpl_usb.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010067dma_m2m/dma_memory.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010068hal/src/hal_delay.o \
69hpl/pm/hpl_pm.o \
70hpl/core/hpl_init.o \
71hpl/gclk/hpl_gclk.o \
72hal/utils/src/utils_list.o \
73hal/utils/src/utils_assert.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010074hpl/dmac/hpl_dmac.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010075hpl/oscctrl/hpl_oscctrl.o \
Harald Welte361ed202019-02-24 21:15:39 +010076hal/src/hal_usart_sync.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010077hpl/mclk/hpl_mclk.o \
78hpl/ramecc/hpl_ramecc.o \
Harald Welte361ed202019-02-24 21:15:39 +010079stdio_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010080usb/usb_protocol.o \
81hal/src/hal_init.o \
82gcc/gcc/startup_same54.o \
83hal/src/hal_usb_device.o \
Kévin Redon4e39b012019-01-30 15:55:58 +010084main.o \
Harald Welte67b2aba2019-04-16 20:47:22 +020085manual_test.o \
Harald Welte5df0be62019-04-17 20:54:29 +020086talloc.o \
Harald Welte34a87062019-04-19 22:33:36 +020087usb_descriptors.o \
Harald Weltec3f170d2019-02-24 09:06:59 +010088i2c_bitbang.o \
89octsim_i2c.o \
90ncn8025.o \
Harald Welteff9f4ce2019-02-24 22:51:09 +010091command.o \
Kévin Redon632502d2019-05-02 15:55:31 +020092iso7816_3.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010093hpl/osc32kctrl/hpl_osc32kctrl.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010094driver_init.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010095hal/src/hal_usart_async.o \
Kévin Redonde9fb2e2019-04-03 20:55:02 +020096hal/src/hal_usart_async_rings.o \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +010097hpl/sercom/hpl_sercom.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010098hal/utils/src/utils_ringbuffer.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010099hal/src/hal_gpio.o \
100hal/utils/src/utils_event.o \
101hal/src/hal_sleep.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100102usb_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100103hpl/cmcc/hpl_cmcc.o \
104atmel_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100105usb/device/usbdc.o \
106hal/src/hal_atomic.o
107
108OBJS_AS_ARGS += \
109"hal/src/hal_io.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100110"stdio_redirect/stdio_io.o" \
111"stdio_redirect/gcc/write.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100112"hpl/core/hpl_core_m4.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100113"hal/src/hal_cache.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100114"usb/class/cdc/device/cdcdf_acm.o" \
Harald Weltecdb1ee32019-04-17 16:31:27 +0200115"usb/class/ccid/device/ccid_df.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100116"hal/utils/src/utils_syscalls.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100117"stdio_redirect/gcc/read.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100118"gcc/system_same54.o" \
119"hpl/usb/hpl_usb.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100120"dma_m2m/dma_memory.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100121"hal/src/hal_delay.o" \
122"hpl/pm/hpl_pm.o" \
123"hpl/core/hpl_init.o" \
124"hpl/gclk/hpl_gclk.o" \
125"hal/utils/src/utils_list.o" \
126"hal/utils/src/utils_assert.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100127"hpl/dmac/hpl_dmac.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100128"hpl/oscctrl/hpl_oscctrl.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100129"hal/src/hal_usart_sync.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100130"hpl/mclk/hpl_mclk.o" \
131"hpl/ramecc/hpl_ramecc.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100132"stdio_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100133"usb/usb_protocol.o" \
134"hal/src/hal_init.o" \
135"gcc/gcc/startup_same54.o" \
136"hal/src/hal_usb_device.o" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100137"main.o" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200138"manual_test.o" \
Harald Welte5df0be62019-04-17 20:54:29 +0200139"talloc.o" \
Harald Welte34a87062019-04-19 22:33:36 +0200140"usb_descriptors.o" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100141"i2c_bitbang.o" \
142"octsim_i2c.o" \
143"ncn8025.o" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100144"command.o" \
Kévin Redon632502d2019-05-02 15:55:31 +0200145"iso7816_3.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100146"hpl/osc32kctrl/hpl_osc32kctrl.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100147"driver_init.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100148"hal/src/hal_usart_async.o" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200149"hal/src/hal_usart_async_rings.o" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100150"hpl/sercom/hpl_sercom.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100151"hal/utils/src/utils_ringbuffer.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100152"hal/src/hal_gpio.o" \
153"hal/utils/src/utils_event.o" \
154"hal/src/hal_sleep.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100155"usb_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100156"hpl/cmcc/hpl_cmcc.o" \
157"atmel_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100158"usb/device/usbdc.o" \
159"hal/src/hal_atomic.o"
160
161# List the dependency files
162DEPS := $(OBJS:%.o=%.d)
163
164DEPS_AS_ARGS += \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100165"dma_m2m/dma_memory.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100166"stdio_redirect/stdio_io.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100167"hal/utils/src/utils_event.d" \
168"hal/src/hal_io.d" \
169"hpl/ramecc/hpl_ramecc.d" \
170"hpl/core/hpl_core_m4.d" \
171"hal/utils/src/utils_syscalls.d" \
172"usb/class/cdc/device/cdcdf_acm.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100173"stdio_redirect/gcc/write.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100174"gcc/gcc/startup_same54.d" \
175"hpl/usb/hpl_usb.d" \
176"hal/utils/src/utils_list.d" \
177"hpl/cmcc/hpl_cmcc.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100178"hpl/dmac/hpl_dmac.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100179"hal/utils/src/utils_assert.d" \
180"hal/src/hal_delay.d" \
181"hpl/core/hpl_init.d" \
182"hpl/pm/hpl_pm.d" \
183"usb/usb_protocol.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100184"stdio_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100185"hpl/gclk/hpl_gclk.d" \
186"hal/src/hal_usb_device.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100187"usb_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100188"hal/src/hal_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100189"hal/src/hal_usart_sync.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100190"hpl/mclk/hpl_mclk.d" \
191"driver_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100192"stdio_redirect/gcc/read.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100193"hal/src/hal_usart_async.d" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200194"hal/src/hal_usart_async_rings.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100195"hpl/osc32kctrl/hpl_osc32kctrl.d" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100196"main.d" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200197"manual_test.d" \
Harald Welte5df0be62019-04-17 20:54:29 +0200198"talloc.d" \
Harald Welte34a87062019-04-19 22:33:36 +0200199"usb_descriptors.d" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100200"i2c_bitbang.d" \
201"octsim_i2c.d" \
202"ncn8025.d" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100203"command.d" \
Kévin Redon632502d2019-05-02 15:55:31 +0200204"iso7816_3.d" \
205"hal/src/halcache.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100206"hal/src/hal_sleep.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100207"hal/utils/src/utils_ringbuffer.d" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100208"hpl/sercom/hpl_sercom.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100209"hal/src/hal_gpio.d" \
210"hal/src/hal_atomic.d" \
211"usb/device/usbdc.d" \
212"hpl/oscctrl/hpl_oscctrl.d" \
213"gcc/system_same54.d" \
214"atmel_start.d"
215
216OUTPUT_FILE_NAME :=AtmelStart
217QUOTE := "
218OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf
219OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf
220
221vpath %.c ../
222vpath %.s ../
223vpath %.S ../
224
225# All Target
226all: $(SUB_DIRS) $(OUTPUT_FILE_PATH)
227
228# Linker target
229
230$(OUTPUT_FILE_PATH): $(OBJS)
231 @echo Building target: $@
232 @echo Invoking: ARM/GNU Linker
233 $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \
234-Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \
235 \
Kévin Redoneff5cb52019-02-03 14:17:40 +0100236-T"../gcc/gcc/same54n19a_dfu.ld" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100237-L"../gcc/gcc"
238 @echo Finished building target: $@
239
240 "arm-none-eabi-objcopy" -O binary "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).bin"
241 "arm-none-eabi-objcopy" -O ihex -R .eeprom -R .fuse -R .lock -R .signature \
242 "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).hex"
243 "arm-none-eabi-objcopy" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma \
244 .eeprom=0 --no-change-warnings -O binary "$(OUTPUT_FILE_NAME).elf" \
245 "$(OUTPUT_FILE_NAME).eep" || exit 0
246 "arm-none-eabi-objdump" -h -S "$(OUTPUT_FILE_NAME).elf" > "$(OUTPUT_FILE_NAME).lss"
247 "arm-none-eabi-size" "$(OUTPUT_FILE_NAME).elf"
248
249
250
251# Compiler targets
252
253
254
255
256%.o: %.c
257 @echo Building file: $<
258 @echo ARM/GNU C Compiler
259 $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \
Kévin Redon4e39b012019-01-30 15:55:58 +0100260-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Weltecdb1ee32019-04-17 16:31:27 +0200261-I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/class/ccid" -I"../usb/class/ccid/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../dma_m2m" -I"../" -I"../CMSIS/Core/Include" -I"../include" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100262-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
263 @echo Finished building: $<
264
265%.o: %.s
266 @echo Building file: $<
267 @echo ARM/GNU Assembler
268 $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \
Kévin Redon4e39b012019-01-30 15:55:58 +0100269-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Weltecdb1ee32019-04-17 16:31:27 +0200270-I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/class/ccid" -I"../usb/class/ccid/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../dma_m2m" -I"../" -I"../CMSIS/Core/Include" -I"../include" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100271-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
272 @echo Finished building: $<
273
274%.o: %.S
275 @echo Building file: $<
276 @echo ARM/GNU Preprocessing Assembler
277 $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \
Kévin Redon4e39b012019-01-30 15:55:58 +0100278-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Weltecdb1ee32019-04-17 16:31:27 +0200279-I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/class/ccid" -I"../usb/class/ccid/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../dma_m2m" -I"../" -I"../CMSIS/Core/Include" -I"../include" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100280-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
281 @echo Finished building: $<
282
283# Detect changes in the dependent files and recompile the respective object files.
284ifneq ($(MAKECMDGOALS),clean)
285ifneq ($(strip $(DEPS)),)
286-include $(DEPS)
287endif
288endif
289
290$(SUB_DIRS):
291 $(MK_DIR) "$@"
292
293clean:
294 rm -f $(OBJS_AS_ARGS)
295 rm -f $(OUTPUT_FILE_PATH)
296 rm -f $(DEPS_AS_ARGS)
297 rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \
298 $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100299 $(OUTPUT_FILE_NAME).srec