blob: 7496377b896adbcf3c5ef1507d8626bc1274d36b [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 \
31examples \
32hpl/oscctrl \
33stdio_redirect/gcc \
Kévin Redon69b92d92019-01-24 16:39:20 +010034gcc \
35hpl/osc32kctrl \
Harald Welte361ed202019-02-24 21:15:39 +010036usb \
Kévin Redon69b92d92019-01-24 16:39:20 +010037hpl/dmac \
38usb/class/cdc/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 \
Harald Welte361ed202019-02-24 21:15:39 +010042hpl/pm \
43hpl/cmcc \
44hpl/gclk \
45gcc/gcc \
46hpl/mclk \
47usb/device \
48hpl/sercom \
49hpl/core
Kévin Redon69b92d92019-01-24 16:39:20 +010050
51# List the object files
52OBJS += \
53hal/src/hal_io.o \
Harald Welte361ed202019-02-24 21:15:39 +010054stdio_redirect/stdio_io.o \
55stdio_redirect/gcc/write.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010056hpl/core/hpl_core_m4.o \
57usb/class/cdc/device/cdcdf_acm.o \
58hal/utils/src/utils_syscalls.o \
Harald Welte361ed202019-02-24 21:15:39 +010059stdio_redirect/gcc/read.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010060usb_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010061gcc/system_same54.o \
62hpl/usb/hpl_usb.o \
63hal/src/hal_delay.o \
64hpl/pm/hpl_pm.o \
65hpl/core/hpl_init.o \
66hpl/gclk/hpl_gclk.o \
67hal/utils/src/utils_list.o \
68hal/utils/src/utils_assert.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010069hpl/dmac/hpl_dmac.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010070hpl/oscctrl/hpl_oscctrl.o \
Harald Welte361ed202019-02-24 21:15:39 +010071hal/src/hal_usart_sync.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010072hpl/mclk/hpl_mclk.o \
73hpl/ramecc/hpl_ramecc.o \
Harald Welte361ed202019-02-24 21:15:39 +010074stdio_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010075usb/usb_protocol.o \
76hal/src/hal_init.o \
77gcc/gcc/startup_same54.o \
78hal/src/hal_usb_device.o \
Kévin Redon4e39b012019-01-30 15:55:58 +010079main.o \
Harald Weltec3f170d2019-02-24 09:06:59 +010080i2c_bitbang.o \
81octsim_i2c.o \
82ncn8025.o \
Harald Welteff9f4ce2019-02-24 22:51:09 +010083command.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010084hpl/osc32kctrl/hpl_osc32kctrl.o \
85examples/driver_examples.o \
86driver_init.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010087hal/src/hal_usart_async.o \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +010088hpl/sercom/hpl_sercom.o \
Kévin Redonccbed0b2019-01-24 18:30:26 +010089hal/utils/src/utils_ringbuffer.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010090hal/src/hal_gpio.o \
91hal/utils/src/utils_event.o \
92hal/src/hal_sleep.o \
93hal/src/hal_cache.o \
94hpl/cmcc/hpl_cmcc.o \
95atmel_start.o \
Kévin Redon69b92d92019-01-24 16:39:20 +010096usb/device/usbdc.o \
97hal/src/hal_atomic.o
98
99OBJS_AS_ARGS += \
100"hal/src/hal_io.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100101"stdio_redirect/stdio_io.o" \
102"stdio_redirect/gcc/write.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100103"hpl/core/hpl_core_m4.o" \
104"usb/class/cdc/device/cdcdf_acm.o" \
105"hal/utils/src/utils_syscalls.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100106"stdio_redirect/gcc/read.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100107"usb_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100108"gcc/system_same54.o" \
109"hpl/usb/hpl_usb.o" \
110"hal/src/hal_delay.o" \
111"hpl/pm/hpl_pm.o" \
112"hpl/core/hpl_init.o" \
113"hpl/gclk/hpl_gclk.o" \
114"hal/utils/src/utils_list.o" \
115"hal/utils/src/utils_assert.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100116"hpl/dmac/hpl_dmac.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100117"hpl/oscctrl/hpl_oscctrl.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100118"hal/src/hal_usart_sync.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100119"hpl/mclk/hpl_mclk.o" \
120"hpl/ramecc/hpl_ramecc.o" \
Harald Welte361ed202019-02-24 21:15:39 +0100121"stdio_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100122"usb/usb_protocol.o" \
123"hal/src/hal_init.o" \
124"gcc/gcc/startup_same54.o" \
125"hal/src/hal_usb_device.o" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100126"main.o" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100127"i2c_bitbang.o" \
128"octsim_i2c.o" \
129"ncn8025.o" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100130"command.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100131"hpl/osc32kctrl/hpl_osc32kctrl.o" \
132"examples/driver_examples.o" \
133"driver_init.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100134"hal/src/hal_usart_async.o" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100135"hpl/sercom/hpl_sercom.o" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100136"hal/utils/src/utils_ringbuffer.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100137"hal/src/hal_gpio.o" \
138"hal/utils/src/utils_event.o" \
139"hal/src/hal_sleep.o" \
140"hal/src/hal_cache.o" \
141"hpl/cmcc/hpl_cmcc.o" \
142"atmel_start.o" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100143"usb/device/usbdc.o" \
144"hal/src/hal_atomic.o"
145
146# List the dependency files
147DEPS := $(OBJS:%.o=%.d)
148
149DEPS_AS_ARGS += \
Harald Welte361ed202019-02-24 21:15:39 +0100150"stdio_redirect/stdio_io.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100151"hal/utils/src/utils_event.d" \
152"hal/src/hal_io.d" \
153"hpl/ramecc/hpl_ramecc.d" \
154"hpl/core/hpl_core_m4.d" \
155"hal/utils/src/utils_syscalls.d" \
156"usb/class/cdc/device/cdcdf_acm.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100157"stdio_redirect/gcc/write.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100158"gcc/gcc/startup_same54.d" \
159"hpl/usb/hpl_usb.d" \
160"hal/utils/src/utils_list.d" \
161"hpl/cmcc/hpl_cmcc.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100162"hpl/dmac/hpl_dmac.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100163"hal/utils/src/utils_assert.d" \
164"hal/src/hal_delay.d" \
165"hpl/core/hpl_init.d" \
166"hpl/pm/hpl_pm.d" \
167"usb/usb_protocol.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100168"stdio_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100169"hpl/gclk/hpl_gclk.d" \
170"hal/src/hal_usb_device.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100171"usb_start.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100172"hal/src/hal_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100173"hal/src/hal_usart_sync.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100174"hpl/mclk/hpl_mclk.d" \
175"driver_init.d" \
Harald Welte361ed202019-02-24 21:15:39 +0100176"stdio_redirect/gcc/read.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100177"hal/src/hal_usart_async.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100178"hpl/osc32kctrl/hpl_osc32kctrl.d" \
Kévin Redon4e39b012019-01-30 15:55:58 +0100179"main.d" \
Harald Weltec3f170d2019-02-24 09:06:59 +0100180"i2c_bitbang.d" \
181"octsim_i2c.d" \
182"ncn8025.d" \
Harald Welteff9f4ce2019-02-24 22:51:09 +0100183"command.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100184"examples/driver_examples.d" \
185"hal/src/hal_cache.d" \
186"hal/src/hal_sleep.d" \
Kévin Redonccbed0b2019-01-24 18:30:26 +0100187"hal/utils/src/utils_ringbuffer.d" \
Kévin Redon4cd3f7d2019-01-24 17:57:13 +0100188"hpl/sercom/hpl_sercom.d" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100189"hal/src/hal_gpio.d" \
190"hal/src/hal_atomic.d" \
191"usb/device/usbdc.d" \
192"hpl/oscctrl/hpl_oscctrl.d" \
193"gcc/system_same54.d" \
194"atmel_start.d"
195
196OUTPUT_FILE_NAME :=AtmelStart
197QUOTE := "
198OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf
199OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf
200
201vpath %.c ../
202vpath %.s ../
203vpath %.S ../
204
205# All Target
206all: $(SUB_DIRS) $(OUTPUT_FILE_PATH)
207
208# Linker target
209
210$(OUTPUT_FILE_PATH): $(OBJS)
211 @echo Building target: $@
212 @echo Invoking: ARM/GNU Linker
213 $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \
214-Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \
215 \
Kévin Redoneff5cb52019-02-03 14:17:40 +0100216-T"../gcc/gcc/same54n19a_dfu.ld" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100217-L"../gcc/gcc"
218 @echo Finished building target: $@
219
220 "arm-none-eabi-objcopy" -O binary "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).bin"
221 "arm-none-eabi-objcopy" -O ihex -R .eeprom -R .fuse -R .lock -R .signature \
222 "$(OUTPUT_FILE_NAME).elf" "$(OUTPUT_FILE_NAME).hex"
223 "arm-none-eabi-objcopy" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma \
224 .eeprom=0 --no-change-warnings -O binary "$(OUTPUT_FILE_NAME).elf" \
225 "$(OUTPUT_FILE_NAME).eep" || exit 0
226 "arm-none-eabi-objdump" -h -S "$(OUTPUT_FILE_NAME).elf" > "$(OUTPUT_FILE_NAME).lss"
227 "arm-none-eabi-size" "$(OUTPUT_FILE_NAME).elf"
228
229
230
231# Compiler targets
232
233
234
235
236%.o: %.c
237 @echo Building file: $<
238 @echo ARM/GNU C Compiler
239 $(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 +0100240-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte361ed202019-02-24 21:15:39 +0100241-I"../" -I"../config" -I"../examples" -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/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100242-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
243 @echo Finished building: $<
244
245%.o: %.s
246 @echo Building file: $<
247 @echo ARM/GNU Assembler
248 $(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 +0100249-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte361ed202019-02-24 21:15:39 +0100250-I"../" -I"../config" -I"../examples" -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/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100251-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
252 @echo Finished building: $<
253
254%.o: %.S
255 @echo Building file: $<
256 @echo ARM/GNU Preprocessing Assembler
257 $(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 +0100258-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
Harald Welte361ed202019-02-24 21:15:39 +0100259-I"../" -I"../config" -I"../examples" -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/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \
Kévin Redon69b92d92019-01-24 16:39:20 +0100260-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
261 @echo Finished building: $<
262
263# Detect changes in the dependent files and recompile the respective object files.
264ifneq ($(MAKECMDGOALS),clean)
265ifneq ($(strip $(DEPS)),)
266-include $(DEPS)
267endif
268endif
269
270$(SUB_DIRS):
271 $(MK_DIR) "$@"
272
273clean:
274 rm -f $(OBJS_AS_ARGS)
275 rm -f $(OUTPUT_FILE_PATH)
276 rm -f $(DEPS_AS_ARGS)
277 rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \
278 $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \
Kévin Redon4e39b012019-01-30 15:55:58 +0100279 $(OUTPUT_FILE_NAME).srec