blob: 66b39b39b5592e2952c6b8ea25f945377fdf2c5c [file] [log] [blame]
Kévin Redon69b92d92019-01-24 16:39:20 +01001################################################################################
2# Automatically-generated file. Do not edit!
3################################################################################
4
5ifdef SystemRoot
6 SHELL = cmd.exe
7 MK_DIR = mkdir
8else
9 ifeq ($(shell uname), Linux)
10 MK_DIR = mkdir -p
11 endif
12
13 ifeq ($(shell uname | cut -d _ -f 1), CYGWIN)
14 MK_DIR = mkdir -p
15 endif
16
17 ifeq ($(shell uname | cut -d _ -f 1), MINGW32)
18 MK_DIR = mkdir -p
19 endif
20
21 ifeq ($(shell uname | cut -d _ -f 1), MINGW64)
22 MK_DIR = mkdir -p
23 endif
24endif
25
26# List the subdirectories for creating object files
27SUB_DIRS += \
28 \
Harald Welte361ed202019-02-24 21:15:39 +010029hal/src \
30hpl/ramecc \
Harald Welte361ed202019-02-24 21:15:39 +010031hpl/oscctrl \
32stdio_redirect/gcc \
Kévin Redon69b92d92019-01-24 16:39:20 +010033gcc \
34hpl/osc32kctrl \
Harald Welte361ed202019-02-24 21:15:39 +010035usb \
Kévin Redon69b92d92019-01-24 16:39:20 +010036hpl/dmac \
37usb/class/cdc/device \
Harald Welte76105252019-04-17 16:31:27 +020038usb/class/ccid/device \
Harald Welte361ed202019-02-24 21:15:39 +010039stdio_redirect \
Kévin Redon69b92d92019-01-24 16:39:20 +010040hal/utils/src \
Kévin Redon69b92d92019-01-24 16:39:20 +010041hpl/usb \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010042dma_m2m \
Harald Welte361ed202019-02-24 21:15:39 +010043hpl/pm \
44hpl/cmcc \
45hpl/gclk \
46gcc/gcc \
47hpl/mclk \
48usb/device \
49hpl/sercom \
50hpl/core
Kévin Redon69b92d92019-01-24 16:39:20 +010051
52# List the object files
53OBJS += \
54hal/src/hal_io.o \
Harald Welte361ed202019-02-24 21:15:39 +010055stdio_redirect/stdio_io.o \
56stdio_redirect/gcc/write.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010057hpl/core/hpl_core_m4.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010058hal/src/hal_cache.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010059usb/class/cdc/device/cdcdf_acm.o \
Harald Welte76105252019-04-17 16:31:27 +020060usb/class/ccid/device/ccid_df.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010061hal/utils/src/utils_syscalls.o \
Harald Welte361ed202019-02-24 21:15:39 +010062stdio_redirect/gcc/read.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010063gcc/system_same54.o \
64hpl/usb/hpl_usb.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010065dma_m2m/dma_memory.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010066hal/src/hal_delay.o \
67hpl/pm/hpl_pm.o \
68hpl/core/hpl_init.o \
69hpl/gclk/hpl_gclk.o \
70hal/utils/src/utils_list.o \
71hal/utils/src/utils_assert.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010072hpl/dmac/hpl_dmac.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010073hpl/oscctrl/hpl_oscctrl.o \
Harald Welte361ed202019-02-24 21:15:39 +010074hal/src/hal_usart_sync.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010075hpl/mclk/hpl_mclk.o \
76hpl/ramecc/hpl_ramecc.o \
Harald Welte361ed202019-02-24 21:15:39 +010077stdio_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010078usb/usb_protocol.o \
79hal/src/hal_init.o \
80gcc/gcc/startup_same54.o \
81hal/src/hal_usb_device.o \
Kévin Redon4e39b012019-01-30 15:55:58 +010082main.o \
Harald Welte67b2aba2019-04-16 20:47:22 +020083manual_test.o \
Harald Weltec3f170d2019-02-24 09:06:59 +010084i2c_bitbang.o \
85octsim_i2c.o \
86ncn8025.o \
Harald Welteff9f4ce2019-02-24 22:51:09 +010087command.o \
Kévin Redon632502d2019-05-02 15:55:31 +020088iso7816_3.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010089hpl/osc32kctrl/hpl_osc32kctrl.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010090driver_init.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010091hal/src/hal_usart_async.o \
Kévin Redonde9fb2e2019-04-03 20:55:02 +020092hal/src/hal_usart_async_rings.o \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +010093hpl/sercom/hpl_sercom.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010094hal/utils/src/utils_ringbuffer.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010095hal/src/hal_gpio.o \
96hal/utils/src/utils_event.o \
97hal/src/hal_sleep.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010098usb_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010099hpl/cmcc/hpl_cmcc.o \
100atmel_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100101usb/device/usbdc.o \
102hal/src/hal_atomic.o
103
104OBJS_AS_ARGS += \
105"hal/src/hal_io.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100106"stdio_redirect/stdio_io.o" \
107"stdio_redirect/gcc/write.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100108"hpl/core/hpl_core_m4.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100109"hal/src/hal_cache.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100110"usb/class/cdc/device/cdcdf_acm.o" \
Harald Welte76105252019-04-17 16:31:27 +0200111"usb/class/ccid/device/ccid_df.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100112"hal/utils/src/utils_syscalls.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100113"stdio_redirect/gcc/read.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100114"gcc/system_same54.o" \
115"hpl/usb/hpl_usb.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100116"dma_m2m/dma_memory.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100117"hal/src/hal_delay.o" \
118"hpl/pm/hpl_pm.o" \
119"hpl/core/hpl_init.o" \
120"hpl/gclk/hpl_gclk.o" \
121"hal/utils/src/utils_list.o" \
122"hal/utils/src/utils_assert.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100123"hpl/dmac/hpl_dmac.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100124"hpl/oscctrl/hpl_oscctrl.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100125"hal/src/hal_usart_sync.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100126"hpl/mclk/hpl_mclk.o" \
127"hpl/ramecc/hpl_ramecc.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100128"stdio_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100129"usb/usb_protocol.o" \
130"hal/src/hal_init.o" \
131"gcc/gcc/startup_same54.o" \
132"hal/src/hal_usb_device.o" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100133"main.o" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200134"manual_test.o" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100135"i2c_bitbang.o" \
136"octsim_i2c.o" \
137"ncn8025.o" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100138"command.o" \
Kévin Redon632502d2019-05-02 15:55:31 +0200139"iso7816_3.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100140"hpl/osc32kctrl/hpl_osc32kctrl.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100141"driver_init.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100142"hal/src/hal_usart_async.o" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200143"hal/src/hal_usart_async_rings.o" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100144"hpl/sercom/hpl_sercom.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100145"hal/utils/src/utils_ringbuffer.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100146"hal/src/hal_gpio.o" \
147"hal/utils/src/utils_event.o" \
148"hal/src/hal_sleep.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100149"usb_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100150"hpl/cmcc/hpl_cmcc.o" \
151"atmel_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100152"usb/device/usbdc.o" \
153"hal/src/hal_atomic.o"
154
155# List the dependency files
156DEPS := $(OBJS:%.o=%.d)
157
158DEPS_AS_ARGS += \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100159"dma_m2m/dma_memory.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100160"stdio_redirect/stdio_io.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100161"hal/utils/src/utils_event.d" \
162"hal/src/hal_io.d" \
163"hpl/ramecc/hpl_ramecc.d" \
164"hpl/core/hpl_core_m4.d" \
165"hal/utils/src/utils_syscalls.d" \
166"usb/class/cdc/device/cdcdf_acm.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100167"stdio_redirect/gcc/write.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100168"gcc/gcc/startup_same54.d" \
169"hpl/usb/hpl_usb.d" \
170"hal/utils/src/utils_list.d" \
171"hpl/cmcc/hpl_cmcc.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100172"hpl/dmac/hpl_dmac.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100173"hal/utils/src/utils_assert.d" \
174"hal/src/hal_delay.d" \
175"hpl/core/hpl_init.d" \
176"hpl/pm/hpl_pm.d" \
177"usb/usb_protocol.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100178"stdio_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100179"hpl/gclk/hpl_gclk.d" \
180"hal/src/hal_usb_device.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100181"usb_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100182"hal/src/hal_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100183"hal/src/hal_usart_sync.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100184"hpl/mclk/hpl_mclk.d" \
185"driver_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100186"stdio_redirect/gcc/read.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100187"hal/src/hal_usart_async.d" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200188"hal/src/hal_usart_async_rings.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100189"hpl/osc32kctrl/hpl_osc32kctrl.d" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100190"main.d" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200191"manual_test.d" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100192"i2c_bitbang.d" \
193"octsim_i2c.d" \
194"ncn8025.d" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100195"command.d" \
Kévin Redon632502d2019-05-02 15:55:31 +0200196"iso7816_3.d" \
197"hal/src/halcache.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100198"hal/src/hal_sleep.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100199"hal/utils/src/utils_ringbuffer.d" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100200"hpl/sercom/hpl_sercom.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100201"hal/src/hal_gpio.d" \
202"hal/src/hal_atomic.d" \
203"usb/device/usbdc.d" \
204"hpl/oscctrl/hpl_oscctrl.d" \
205"gcc/system_same54.d" \
206"atmel_start.d"
207
208OUTPUT_FILE_NAME :=AtmelStart
209QUOTE := "
210OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf
211OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf
212
213vpath %.c ../
214vpath %.s ../
215vpath %.S ../
216
217# All Target
218all: $(SUB_DIRS) $(OUTPUT_FILE_PATH)
219
220# Linker target
221
222$(OUTPUT_FILE_PATH): $(OBJS)
223 @echo Building target: $@
224 @echo Invoking: ARM/GNU Linker
225 $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \
226-Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \
227 \
Kévin Redoneff5cb52019-02-03 14:17:40 +0100228-T"../gcc/gcc/same54n19a_dfu.ld" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100229-L"../gcc/gcc"
230 @echo Finished building target: $@
231
232 "arm-none-eabi-objcopy" -O binary "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).bin"
233 "arm-none-eabi-objcopy" -O ihex -R .eeprom -R .fuse -R .lock -R .signature \
234 "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).hex"
235 "arm-none-eabi-objcopy" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma \
236 .eeprom=0 --no-change-warnings -O binary "$(OUTPUT_FILE_NAME).elf" \
237 "$(OUTPUT_FILE_NAME).eep" || exit 0
238 "arm-none-eabi-objdump" -h -S "$(OUTPUT_FILE_NAME).elf" > "$(OUTPUT_FILE_NAME).lss"
239 "arm-none-eabi-size" "$(OUTPUT_FILE_NAME).elf"
240
241
242
243# Compiler targets
244
245
246
247
248%.o: %.c
249 @echo Building file: $<
250 @echo ARM/GNU C Compiler
251 $(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 +0100252-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte76105252019-04-17 16:31:27 +0200253-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 +0100254-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
255 @echo Finished building: $<
256
257%.o: %.s
258 @echo Building file: $<
259 @echo ARM/GNU Assembler
260 $(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 +0100261-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte76105252019-04-17 16:31:27 +0200262-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 +0100263-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
264 @echo Finished building: $<
265
266%.o: %.S
267 @echo Building file: $<
268 @echo ARM/GNU Preprocessing Assembler
269 $(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 +0100270-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte76105252019-04-17 16:31:27 +0200271-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 +0100272-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
273 @echo Finished building: $<
274
275# Detect changes in the dependent files and recompile the respective object files.
276ifneq ($(MAKECMDGOALS),clean)
277ifneq ($(strip $(DEPS)),)
278-include $(DEPS)
279endif
280endif
281
282$(SUB_DIRS):
283 $(MK_DIR) "$@"
284
285clean:
286 rm -f $(OBJS_AS_ARGS)
287 rm -f $(OUTPUT_FILE_PATH)
288 rm -f $(DEPS_AS_ARGS)
289 rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \
290 $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100291 $(OUTPUT_FILE_NAME).srec