blob: c51b3ec3184b287fb9ae90c86f772199263b804c [file] [log] [blame]
Kévin Redon69b92d92019-01-24 16:39:20 +01001################################################################################
2# Automatically-generated file. Do not edit!
3################################################################################
4
Harald Welte3304ca22019-04-17 22:08:57 +02005EXTRA_LIBS=/usr/local/arm-none-eabi/lib/libosmocore.a
Harald Weltecdb1ee32019-04-17 16:31:27 +02006EXTRA_CFLAGS=-I/usr/local/arm-none-eabi/include -I../../ccid
7
Kévin Redon69b92d92019-01-24 16:39:20 +01008ifdef SystemRoot
9 SHELL = cmd.exe
10 MK_DIR = mkdir
11else
12 ifeq ($(shell uname), Linux)
13 MK_DIR = mkdir -p
14 endif
15
16 ifeq ($(shell uname | cut -d _ -f 1), CYGWIN)
17 MK_DIR = mkdir -p
18 endif
19
20 ifeq ($(shell uname | cut -d _ -f 1), MINGW32)
21 MK_DIR = mkdir -p
22 endif
23
24 ifeq ($(shell uname | cut -d _ -f 1), MINGW64)
25 MK_DIR = mkdir -p
26 endif
27endif
28
29# List the subdirectories for creating object files
30SUB_DIRS += \
31 \
Harald Welte361ed202019-02-24 21:15:39 +010032hal/src \
33hpl/ramecc \
Harald Welte361ed202019-02-24 21:15:39 +010034hpl/oscctrl \
35stdio_redirect/gcc \
Kévin Redon69b92d92019-01-24 16:39:20 +010036gcc \
37hpl/osc32kctrl \
Harald Welte361ed202019-02-24 21:15:39 +010038usb \
Kévin Redon69b92d92019-01-24 16:39:20 +010039hpl/dmac \
40usb/class/cdc/device \
Harald Weltecdb1ee32019-04-17 16:31:27 +020041usb/class/ccid/device \
Harald Welte361ed202019-02-24 21:15:39 +010042stdio_redirect \
Kévin Redon69b92d92019-01-24 16:39:20 +010043hal/utils/src \
Kévin Redon69b92d92019-01-24 16:39:20 +010044hpl/usb \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010045dma_m2m \
Harald Welte361ed202019-02-24 21:15:39 +010046hpl/pm \
47hpl/cmcc \
48hpl/gclk \
49gcc/gcc \
50hpl/mclk \
51usb/device \
52hpl/sercom \
53hpl/core
Kévin Redon69b92d92019-01-24 16:39:20 +010054
55# List the object files
56OBJS += \
57hal/src/hal_io.o \
Harald Welte361ed202019-02-24 21:15:39 +010058stdio_redirect/stdio_io.o \
59stdio_redirect/gcc/write.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010060hpl/core/hpl_core_m4.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010061hal/src/hal_cache.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010062usb/class/cdc/device/cdcdf_acm.o \
Harald Weltecdb1ee32019-04-17 16:31:27 +020063usb/class/ccid/device/ccid_df.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010064hal/utils/src/utils_syscalls.o \
Harald Welte361ed202019-02-24 21:15:39 +010065stdio_redirect/gcc/read.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010066gcc/system_same54.o \
67hpl/usb/hpl_usb.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +010068dma_m2m/dma_memory.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010069hal/src/hal_delay.o \
70hpl/pm/hpl_pm.o \
71hpl/core/hpl_init.o \
72hpl/gclk/hpl_gclk.o \
73hal/utils/src/utils_list.o \
74hal/utils/src/utils_assert.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010075hpl/dmac/hpl_dmac.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010076hpl/oscctrl/hpl_oscctrl.o \
Harald Welte361ed202019-02-24 21:15:39 +010077hal/src/hal_usart_sync.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010078hpl/mclk/hpl_mclk.o \
79hpl/ramecc/hpl_ramecc.o \
Harald Welte361ed202019-02-24 21:15:39 +010080stdio_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010081usb/usb_protocol.o \
82hal/src/hal_init.o \
83gcc/gcc/startup_same54.o \
84hal/src/hal_usb_device.o \
Kévin Redon4e39b012019-01-30 15:55:58 +010085main.o \
Harald Welte67b2aba2019-04-16 20:47:22 +020086manual_test.o \
Harald Welte5df0be62019-04-17 20:54:29 +020087talloc.o \
Harald Welte34a87062019-04-19 22:33:36 +020088usb_descriptors.o \
Harald Weltec3f170d2019-02-24 09:06:59 +010089i2c_bitbang.o \
90octsim_i2c.o \
91ncn8025.o \
Harald Welteff9f4ce2019-02-24 22:51:09 +010092command.o \
Kévin Redon632502d2019-05-02 15:55:31 +020093iso7816_3.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010094hpl/osc32kctrl/hpl_osc32kctrl.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010095driver_init.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010096hal/src/hal_usart_async.o \
Kévin Redonde9fb2e2019-04-03 20:55:02 +020097hal/src/hal_usart_async_rings.o \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +010098hpl/sercom/hpl_sercom.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010099hal/utils/src/utils_ringbuffer.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100100hal/src/hal_gpio.o \
101hal/utils/src/utils_event.o \
102hal/src/hal_sleep.o \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100103usb_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100104hpl/cmcc/hpl_cmcc.o \
105atmel_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +0100106usb/device/usbdc.o \
107hal/src/hal_atomic.o
108
109OBJS_AS_ARGS += \
110"hal/src/hal_io.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100111"stdio_redirect/stdio_io.o" \
112"stdio_redirect/gcc/write.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100113"hpl/core/hpl_core_m4.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100114"hal/src/hal_cache.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100115"usb/class/cdc/device/cdcdf_acm.o" \
Harald Weltecdb1ee32019-04-17 16:31:27 +0200116"usb/class/ccid/device/ccid_df.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100117"hal/utils/src/utils_syscalls.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100118"stdio_redirect/gcc/read.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100119"gcc/system_same54.o" \
120"hpl/usb/hpl_usb.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100121"dma_m2m/dma_memory.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100122"hal/src/hal_delay.o" \
123"hpl/pm/hpl_pm.o" \
124"hpl/core/hpl_init.o" \
125"hpl/gclk/hpl_gclk.o" \
126"hal/utils/src/utils_list.o" \
127"hal/utils/src/utils_assert.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100128"hpl/dmac/hpl_dmac.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100129"hpl/oscctrl/hpl_oscctrl.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100130"hal/src/hal_usart_sync.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100131"hpl/mclk/hpl_mclk.o" \
132"hpl/ramecc/hpl_ramecc.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100133"stdio_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100134"usb/usb_protocol.o" \
135"hal/src/hal_init.o" \
136"gcc/gcc/startup_same54.o" \
137"hal/src/hal_usb_device.o" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100138"main.o" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200139"manual_test.o" \
Harald Welte5df0be62019-04-17 20:54:29 +0200140"talloc.o" \
Harald Welte34a87062019-04-19 22:33:36 +0200141"usb_descriptors.o" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100142"i2c_bitbang.o" \
143"octsim_i2c.o" \
144"ncn8025.o" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100145"command.o" \
Kévin Redon632502d2019-05-02 15:55:31 +0200146"iso7816_3.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100147"hpl/osc32kctrl/hpl_osc32kctrl.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100148"driver_init.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100149"hal/src/hal_usart_async.o" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200150"hal/src/hal_usart_async_rings.o" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100151"hpl/sercom/hpl_sercom.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100152"hal/utils/src/utils_ringbuffer.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100153"hal/src/hal_gpio.o" \
154"hal/utils/src/utils_event.o" \
155"hal/src/hal_sleep.o" \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100156"usb_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100157"hpl/cmcc/hpl_cmcc.o" \
158"atmel_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100159"usb/device/usbdc.o" \
160"hal/src/hal_atomic.o"
161
162# List the dependency files
163DEPS := $(OBJS:%.o=%.d)
164
165DEPS_AS_ARGS += \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100166"dma_m2m/dma_memory.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100167"stdio_redirect/stdio_io.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100168"hal/utils/src/utils_event.d" \
169"hal/src/hal_io.d" \
170"hpl/ramecc/hpl_ramecc.d" \
171"hpl/core/hpl_core_m4.d" \
172"hal/utils/src/utils_syscalls.d" \
173"usb/class/cdc/device/cdcdf_acm.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100174"stdio_redirect/gcc/write.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100175"gcc/gcc/startup_same54.d" \
176"hpl/usb/hpl_usb.d" \
177"hal/utils/src/utils_list.d" \
178"hpl/cmcc/hpl_cmcc.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100179"hpl/dmac/hpl_dmac.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100180"hal/utils/src/utils_assert.d" \
181"hal/src/hal_delay.d" \
182"hpl/core/hpl_init.d" \
183"hpl/pm/hpl_pm.d" \
184"usb/usb_protocol.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100185"stdio_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100186"hpl/gclk/hpl_gclk.d" \
187"hal/src/hal_usb_device.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100188"usb_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100189"hal/src/hal_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100190"hal/src/hal_usart_sync.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100191"hpl/mclk/hpl_mclk.d" \
192"driver_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100193"stdio_redirect/gcc/read.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100194"hal/src/hal_usart_async.d" \
Kévin Redonde9fb2e2019-04-03 20:55:02 +0200195"hal/src/hal_usart_async_rings.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100196"hpl/osc32kctrl/hpl_osc32kctrl.d" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100197"main.d" \
Harald Welte67b2aba2019-04-16 20:47:22 +0200198"manual_test.d" \
Harald Welte5df0be62019-04-17 20:54:29 +0200199"talloc.d" \
Harald Welte34a87062019-04-19 22:33:36 +0200200"usb_descriptors.d" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100201"i2c_bitbang.d" \
202"octsim_i2c.d" \
203"ncn8025.d" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100204"command.d" \
Kévin Redon632502d2019-05-02 15:55:31 +0200205"iso7816_3.d" \
206"hal/src/halcache.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100207"hal/src/hal_sleep.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100208"hal/utils/src/utils_ringbuffer.d" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100209"hpl/sercom/hpl_sercom.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100210"hal/src/hal_gpio.d" \
211"hal/src/hal_atomic.d" \
212"usb/device/usbdc.d" \
213"hpl/oscctrl/hpl_oscctrl.d" \
214"gcc/system_same54.d" \
215"atmel_start.d"
216
217OUTPUT_FILE_NAME :=AtmelStart
218QUOTE := "
219OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf
220OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf
221
222vpath %.c ../
223vpath %.s ../
224vpath %.S ../
225
226# All Target
227all: $(SUB_DIRS) $(OUTPUT_FILE_PATH)
228
229# Linker target
230
231$(OUTPUT_FILE_PATH): $(OBJS)
232 @echo Building target: $@
233 @echo Invoking: ARM/GNU Linker
Harald Welte3304ca22019-04-17 22:08:57 +0200234 $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) $(EXTRA_LIBS) -Wl,--start-group -lm -Wl,--end-group -mthumb \
Kévin Redon69b92d92019-01-24 16:39:20 +0100235-Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \
236 \
Kévin Redoneff5cb52019-02-03 14:17:40 +0100237-T"../gcc/gcc/same54n19a_dfu.ld" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100238-L"../gcc/gcc"
239 @echo Finished building target: $@
240
241 "arm-none-eabi-objcopy" -O binary "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).bin"
242 "arm-none-eabi-objcopy" -O ihex -R .eeprom -R .fuse -R .lock -R .signature \
243 "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).hex"
244 "arm-none-eabi-objcopy" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma \
245 .eeprom=0 --no-change-warnings -O binary "$(OUTPUT_FILE_NAME).elf" \
246 "$(OUTPUT_FILE_NAME).eep" || exit 0
247 "arm-none-eabi-objdump" -h -S "$(OUTPUT_FILE_NAME).elf" > "$(OUTPUT_FILE_NAME).lss"
248 "arm-none-eabi-size" "$(OUTPUT_FILE_NAME).elf"
249
250
251
252# Compiler targets
253
254
255
256
257%.o: %.c
258 @echo Building file: $<
259 @echo ARM/GNU C Compiler
260 $(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 +0100261-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte3304ca22019-04-17 22:08:57 +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" $(EXTRA_CFLAGS) \
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 Assembler
269 $(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 +0100270-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Weltecdb1ee32019-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%.o: %.S
276 @echo Building file: $<
277 @echo ARM/GNU Preprocessing Assembler
278 $(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 +0100279-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Weltecdb1ee32019-04-17 16:31:27 +0200280-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 +0100281-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
282 @echo Finished building: $<
283
284# Detect changes in the dependent files and recompile the respective object files.
285ifneq ($(MAKECMDGOALS),clean)
286ifneq ($(strip $(DEPS)),)
287-include $(DEPS)
288endif
289endif
290
291$(SUB_DIRS):
292 $(MK_DIR) "$@"
293
294clean:
295 rm -f $(OBJS_AS_ARGS)
296 rm -f $(OUTPUT_FILE_PATH)
297 rm -f $(DEPS_AS_ARGS)
298 rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \
299 $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \
Kévin Redonc94e0fc2019-03-07 19:15:29 +0100300 $(OUTPUT_FILE_NAME).srec