blob: 52872e9d067a405ca8958eea137b624a39a79bf8 [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 Weltebf6c6102019-04-17 20:54:29 +020084talloc.o \
Harald Weltec3f170d2019-02-24 09:06:59 +010085i2c_bitbang.o \
86octsim_i2c.o \
87ncn8025.o \
Harald Welteff9f4ce2019-02-24 22:51:09 +010088command.o \
Kévin Redon632502d2019-05-02 15:55:31 +020089iso7816_3.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010090hpl/osc32kctrl/hpl_osc32kctrl.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010091driver_init.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010092hal/src/hal_usart_async.o \
Kévin Redonde9fb2e2019-04-03 20:55:02 +020093hal/src/hal_usart_async_rings.o \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +010094hpl/sercom/hpl_sercom.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010095hal/utils/src/utils_ringbuffer.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010096hal/src/hal_gpio.o \
97hal/utils/src/utils_event.o \
98hal/src/hal_sleep.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010099usb_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100100hpl/cmcc/hpl_cmcc.o \
101atmel_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100102usb/device/usbdc.o \
103hal/src/hal_atomic.o
104
105OBJS_AS_ARGS += \
106"hal/src/hal_io.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100107"stdio_redirect/stdio_io.o" \
108"stdio_redirect/gcc/write.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100109"hpl/core/hpl_core_m4.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100110"hal/src/hal_cache.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100111"usb/class/cdc/device/cdcdf_acm.o" \
Harald Welte76105252019-04-17 16:31:27 +0200112"usb/class/ccid/device/ccid_df.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100113"hal/utils/src/utils_syscalls.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100114"stdio_redirect/gcc/read.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100115"gcc/system_same54.o" \
116"hpl/usb/hpl_usb.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100117"dma_m2m/dma_memory.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100118"hal/src/hal_delay.o" \
119"hpl/pm/hpl_pm.o" \
120"hpl/core/hpl_init.o" \
121"hpl/gclk/hpl_gclk.o" \
122"hal/utils/src/utils_list.o" \
123"hal/utils/src/utils_assert.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100124"hpl/dmac/hpl_dmac.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100125"hpl/oscctrl/hpl_oscctrl.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100126"hal/src/hal_usart_sync.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100127"hpl/mclk/hpl_mclk.o" \
128"hpl/ramecc/hpl_ramecc.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100129"stdio_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100130"usb/usb_protocol.o" \
131"hal/src/hal_init.o" \
132"gcc/gcc/startup_same54.o" \
133"hal/src/hal_usb_device.o" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100134"main.o" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200135"manual_test.o" \
Harald Weltebf6c6102019-04-17 20:54:29 +0200136"talloc.o" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100137"i2c_bitbang.o" \
138"octsim_i2c.o" \
139"ncn8025.o" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100140"command.o" \
Kévin Redon632502d2019-05-02 15:55:31 +0200141"iso7816_3.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100142"hpl/osc32kctrl/hpl_osc32kctrl.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100143"driver_init.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100144"hal/src/hal_usart_async.o" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200145"hal/src/hal_usart_async_rings.o" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100146"hpl/sercom/hpl_sercom.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100147"hal/utils/src/utils_ringbuffer.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100148"hal/src/hal_gpio.o" \
149"hal/utils/src/utils_event.o" \
150"hal/src/hal_sleep.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100151"usb_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100152"hpl/cmcc/hpl_cmcc.o" \
153"atmel_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100154"usb/device/usbdc.o" \
155"hal/src/hal_atomic.o"
156
157# List the dependency files
158DEPS := $(OBJS:%.o=%.d)
159
160DEPS_AS_ARGS += \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100161"dma_m2m/dma_memory.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100162"stdio_redirect/stdio_io.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100163"hal/utils/src/utils_event.d" \
164"hal/src/hal_io.d" \
165"hpl/ramecc/hpl_ramecc.d" \
166"hpl/core/hpl_core_m4.d" \
167"hal/utils/src/utils_syscalls.d" \
168"usb/class/cdc/device/cdcdf_acm.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100169"stdio_redirect/gcc/write.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100170"gcc/gcc/startup_same54.d" \
171"hpl/usb/hpl_usb.d" \
172"hal/utils/src/utils_list.d" \
173"hpl/cmcc/hpl_cmcc.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100174"hpl/dmac/hpl_dmac.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100175"hal/utils/src/utils_assert.d" \
176"hal/src/hal_delay.d" \
177"hpl/core/hpl_init.d" \
178"hpl/pm/hpl_pm.d" \
179"usb/usb_protocol.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100180"stdio_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100181"hpl/gclk/hpl_gclk.d" \
182"hal/src/hal_usb_device.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100183"usb_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100184"hal/src/hal_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100185"hal/src/hal_usart_sync.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100186"hpl/mclk/hpl_mclk.d" \
187"driver_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100188"stdio_redirect/gcc/read.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100189"hal/src/hal_usart_async.d" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200190"hal/src/hal_usart_async_rings.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100191"hpl/osc32kctrl/hpl_osc32kctrl.d" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100192"main.d" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200193"manual_test.d" \
Harald Weltebf6c6102019-04-17 20:54:29 +0200194"talloc.d" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100195"i2c_bitbang.d" \
196"octsim_i2c.d" \
197"ncn8025.d" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100198"command.d" \
Kévin Redon632502d2019-05-02 15:55:31 +0200199"iso7816_3.d" \
200"hal/src/halcache.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100201"hal/src/hal_sleep.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100202"hal/utils/src/utils_ringbuffer.d" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100203"hpl/sercom/hpl_sercom.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100204"hal/src/hal_gpio.d" \
205"hal/src/hal_atomic.d" \
206"usb/device/usbdc.d" \
207"hpl/oscctrl/hpl_oscctrl.d" \
208"gcc/system_same54.d" \
209"atmel_start.d"
210
211OUTPUT_FILE_NAME :=AtmelStart
212QUOTE := "
213OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf
214OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf
215
216vpath %.c ../
217vpath %.s ../
218vpath %.S ../
219
220# All Target
221all: $(SUB_DIRS) $(OUTPUT_FILE_PATH)
222
223# Linker target
224
225$(OUTPUT_FILE_PATH): $(OBJS)
226 @echo Building target: $@
227 @echo Invoking: ARM/GNU Linker
228 $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \
229-Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \
230 \
Kévin Redoneff5cb52019-02-03 14:17:40 +0100231-T"../gcc/gcc/same54n19a_dfu.ld" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100232-L"../gcc/gcc"
233 @echo Finished building target: $@
234
235 "arm-none-eabi-objcopy" -O binary "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).bin"
236 "arm-none-eabi-objcopy" -O ihex -R .eeprom -R .fuse -R .lock -R .signature \
237 "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).hex"
238 "arm-none-eabi-objcopy" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma \
239 .eeprom=0 --no-change-warnings -O binary "$(OUTPUT_FILE_NAME).elf" \
240 "$(OUTPUT_FILE_NAME).eep" || exit 0
241 "arm-none-eabi-objdump" -h -S "$(OUTPUT_FILE_NAME).elf" > "$(OUTPUT_FILE_NAME).lss"
242 "arm-none-eabi-size" "$(OUTPUT_FILE_NAME).elf"
243
244
245
246# Compiler targets
247
248
249
250
251%.o: %.c
252 @echo Building file: $<
253 @echo ARM/GNU C Compiler
254 $(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 +0100255-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte76105252019-04-17 16:31:27 +0200256-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 +0100257-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
258 @echo Finished building: $<
259
260%.o: %.s
261 @echo Building file: $<
262 @echo ARM/GNU Assembler
263 $(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 +0100264-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte76105252019-04-17 16:31:27 +0200265-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 +0100266-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
267 @echo Finished building: $<
268
269%.o: %.S
270 @echo Building file: $<
271 @echo ARM/GNU Preprocessing Assembler
272 $(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 +0100273-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte76105252019-04-17 16:31:27 +0200274-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 +0100275-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
276 @echo Finished building: $<
277
278# Detect changes in the dependent files and recompile the respective object files.
279ifneq ($(MAKECMDGOALS),clean)
280ifneq ($(strip $(DEPS)),)
281-include $(DEPS)
282endif
283endif
284
285$(SUB_DIRS):
286 $(MK_DIR) "$@"
287
288clean:
289 rm -f $(OBJS_AS_ARGS)
290 rm -f $(OUTPUT_FILE_PATH)
291 rm -f $(DEPS_AS_ARGS)
292 rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \
293 $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100294 $(OUTPUT_FILE_NAME).srec