xref: /btstack/port/stm32-f4discovery-cc256x/Makefile (revision 225f4ba4fe806afeda1ee8519bb5f4a8ce540af2)
1*225f4ba4SMatthias Ringwald##########################################################################################################################
2*225f4ba4SMatthias Ringwald# File automatically-generated by tool: [projectgenerator] version: [3.1.0] date: [Thu Mar 07 21:47:00 CET 2019]
3*225f4ba4SMatthias Ringwald##########################################################################################################################
4*225f4ba4SMatthias Ringwald
5*225f4ba4SMatthias Ringwald# ------------------------------------------------
6*225f4ba4SMatthias Ringwald# Generic Makefile (based on gcc)
7*225f4ba4SMatthias Ringwald#
8*225f4ba4SMatthias Ringwald# ChangeLog :
9*225f4ba4SMatthias Ringwald#	2017-02-10 - Several enhancements + project update mode
10*225f4ba4SMatthias Ringwald#   2015-07-22 - first version
11*225f4ba4SMatthias Ringwald# ------------------------------------------------
12*225f4ba4SMatthias Ringwald
13*225f4ba4SMatthias Ringwald######################################
14*225f4ba4SMatthias Ringwald# target
15*225f4ba4SMatthias Ringwald######################################
16*225f4ba4SMatthias RingwaldTARGET = stm32f4-discovery-cc256x
17*225f4ba4SMatthias Ringwald
18*225f4ba4SMatthias Ringwald
19*225f4ba4SMatthias Ringwald######################################
20*225f4ba4SMatthias Ringwald# building variables
21*225f4ba4SMatthias Ringwald######################################
22*225f4ba4SMatthias Ringwald# debug build?
23*225f4ba4SMatthias RingwaldDEBUG = 1
24*225f4ba4SMatthias Ringwald# optimization
25*225f4ba4SMatthias RingwaldOPT = -O2
26*225f4ba4SMatthias Ringwald
27*225f4ba4SMatthias Ringwald
28*225f4ba4SMatthias Ringwald#######################################
29*225f4ba4SMatthias Ringwald# paths
30*225f4ba4SMatthias Ringwald#######################################
31*225f4ba4SMatthias Ringwald# Build path
32*225f4ba4SMatthias RingwaldBUILD_DIR = build
33*225f4ba4SMatthias Ringwald
34*225f4ba4SMatthias RingwaldBTSTACK_ROOT = ../..
35*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/micro-ecc
36*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/bluedroid/decoder/srce
37*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/bluedroid/encoder/srce
38*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/hxcmod-player
39*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/hxcmod-player/mods
40*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/md5
41*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/yxml
42*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/segger-rtt
43*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/chipset/cc256x
44*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/example
45*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/embedded
46*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src
47*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble
48*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble/gatt-service
49*225f4ba4SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/classic
50*225f4ba4SMatthias RingwaldVPATH += Drivers/STM32F4xx_HAL_DRIVER/Src
51*225f4ba4SMatthias RingwaldVPATH += Src
52*225f4ba4SMatthias RingwaldVPATH += port
53*225f4ba4SMatthias RingwaldVPATH += bsp
54*225f4ba4SMatthias Ringwald
55*225f4ba4SMatthias Ringwald######################################
56*225f4ba4SMatthias Ringwald# source
57*225f4ba4SMatthias Ringwald######################################
58*225f4ba4SMatthias Ringwald# C sources
59*225f4ba4SMatthias RingwaldC_SOURCES =  \
60*225f4ba4SMatthias Ringwald3rd-party/hxcmod-player/hxcmod.c \
61*225f4ba4SMatthias Ringwald3rd-party/hxcmod-player/mods/nao-deceased_by_disease.c \
62*225f4ba4SMatthias Ringwald3rd-party/micro-ecc/uECC.c \
63*225f4ba4SMatthias Ringwald3rd-party/segger-rtt/SEGGER_RTT.c \
64*225f4ba4SMatthias Ringwald3rd-party/segger-rtt/SEGGER_RTT_Syscalls_GCC.c \
65*225f4ba4SMatthias Ringwald3rd-party/yxml/yxml.c \
66*225f4ba4SMatthias Ringwald3rd-prty/md5.c \
67*225f4ba4SMatthias Ringwaldbluetooth_init_cc2564B_1.6_BT_Spec_4.1.c \
68*225f4ba4SMatthias Ringwaldbsp/audio.c \
69*225f4ba4SMatthias Ringwaldbsp/cs43l22.c \
70*225f4ba4SMatthias Ringwaldbsp/stm32f4_discovery.c \
71*225f4ba4SMatthias Ringwaldbsp/stm32f4_discovery_audio.c \
72*225f4ba4SMatthias Ringwaldchipset/cc256x/btstack_chipset_cc256x.c \
73*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.c \
74*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_cortex.c \
75*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_dma.c \
76*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_dma_ex.c \
77*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_exti.c \
78*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_flash.c \
79*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_flash_ex.c \
80*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_flash_ramfunc.c \
81*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_gpio.c \
82*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_i2c.c \
83*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_i2c_ex.c \
84*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_i2s.c \
85*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_i2s_ex.c \
86*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_pwr.c \
87*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_pwr_ex.c \
88*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_rcc.c \
89*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_rcc_ex.c \
90*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_spi.c \
91*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_tim.c \
92*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_tim_ex.c \
93*225f4ba4SMatthias RingwaldDrivers/STM32F4xx_HAL_Driver/stm32f4xx_hal_uart.c \
94*225f4ba4SMatthias Ringwaldexampe/sco_demo_util.c \
95*225f4ba4SMatthias Ringwaldplatform/embedded/btstack_audio_embedded.c \
96*225f4ba4SMatthias Ringwaldplatform/embedded/btstack_run_loop_embedded.c \
97*225f4ba4SMatthias Ringwaldplatform/embedded/btstack_stdin_embedded.c \
98*225f4ba4SMatthias Ringwaldplatform/embedded/btstack_tlv_flash_bank.c \
99*225f4ba4SMatthias Ringwaldplatform/embedded/btstack_uart_block_embedded.c \
100*225f4ba4SMatthias Ringwaldport/hal_audio_f4discovery.c \
101*225f4ba4SMatthias Ringwaldport/hal_flash_bank_stm32.c \
102*225f4ba4SMatthias Ringwaldsrc/ad_parser.c \
103*225f4ba4SMatthias Ringwaldsrc/ble/ancs_client.c \
104*225f4ba4SMatthias Ringwaldsrc/ble/att_db.c \
105*225f4ba4SMatthias Ringwaldsrc/ble/att_dispatch.c \
106*225f4ba4SMatthias Ringwaldsrc/ble/att_server.c \
107*225f4ba4SMatthias Ringwaldsrc/ble/gatt-service/battery_service_server.c \
108*225f4ba4SMatthias Ringwaldsrc/ble/gatt-service/device_information_service_server.c \
109*225f4ba4SMatthias Ringwaldsrc/ble/gatt-service/hids_device.c \
110*225f4ba4SMatthias Ringwaldsrc/ble/gatt_client.c \
111*225f4ba4SMatthias Ringwaldsrc/ble/le_device_db_memory.c \
112*225f4ba4SMatthias Ringwaldsrc/ble/le_device_db_tlv.c \
113*225f4ba4SMatthias Ringwaldsrc/ble/sm.c \
114*225f4ba4SMatthias Ringwaldsrc/btstack_audio.c \
115*225f4ba4SMatthias Ringwaldsrc/btstack_crypto.c \
116*225f4ba4SMatthias Ringwaldsrc/btstack_hid_parser.c \
117*225f4ba4SMatthias Ringwaldsrc/btstack_linked_list.c \
118*225f4ba4SMatthias Ringwaldsrc/btstack_memory.c \
119*225f4ba4SMatthias Ringwaldsrc/btstack_memory_pool.c \
120*225f4ba4SMatthias Ringwaldsrc/btstack_resample.c \
121*225f4ba4SMatthias Ringwaldsrc/btstack_ring_buffer.c \
122*225f4ba4SMatthias Ringwaldsrc/btstack_run_loop.c \
123*225f4ba4SMatthias Ringwaldsrc/btstack_tlv.c \
124*225f4ba4SMatthias Ringwaldsrc/btstack_util.c \
125*225f4ba4SMatthias Ringwaldsrc/classic/a2dp_sink.c \
126*225f4ba4SMatthias Ringwaldsrc/classic/a2dp_source.c \
127*225f4ba4SMatthias Ringwaldsrc/classic/avdtp.c \
128*225f4ba4SMatthias Ringwaldsrc/classic/avdtp_acceptor.c \
129*225f4ba4SMatthias Ringwaldsrc/classic/avdtp_initiator.c \
130*225f4ba4SMatthias Ringwaldsrc/classic/avdtp_sink.c \
131*225f4ba4SMatthias Ringwaldsrc/classic/avdtp_source.c \
132*225f4ba4SMatthias Ringwaldsrc/classic/avdtp_util.c \
133*225f4ba4SMatthias Ringwaldsrc/classic/avrcp.c \
134*225f4ba4SMatthias Ringwaldsrc/classic/avrcp_browsing_controller.c \
135*225f4ba4SMatthias Ringwaldsrc/classic/avrcp_controller.c \
136*225f4ba4SMatthias Ringwaldsrc/classic/avrcp_media_item_iterator.c \
137*225f4ba4SMatthias Ringwaldsrc/classic/avrcp_target.c \
138*225f4ba4SMatthias Ringwaldsrc/classic/btstack_cvsd_plc.c \
139*225f4ba4SMatthias Ringwaldsrc/classic/btstack_link_key_db_tlv.c \
140*225f4ba4SMatthias Ringwaldsrc/classic/btstack_sbc_decoder_bluedroid.c \
141*225f4ba4SMatthias Ringwaldsrc/classic/btstack_sbc_encoder_bluedroid.c \
142*225f4ba4SMatthias Ringwaldsrc/classic/btstack_sbc_plc.c \
143*225f4ba4SMatthias Ringwaldsrc/classic/device_id_server.c \
144*225f4ba4SMatthias Ringwaldsrc/classic/goep_client.c \
145*225f4ba4SMatthias Ringwaldsrc/classic/hfp.c \
146*225f4ba4SMatthias Ringwaldsrc/classic/hfp_ag.c \
147*225f4ba4SMatthias Ringwaldsrc/classic/hfp_gsm_model.c \
148*225f4ba4SMatthias Ringwaldsrc/classic/hfp_hf.c \
149*225f4ba4SMatthias Ringwaldsrc/classic/hfp_msbc.c \
150*225f4ba4SMatthias Ringwaldsrc/classic/hid_device.c \
151*225f4ba4SMatthias Ringwaldsrc/classic/hsp_ag.c \
152*225f4ba4SMatthias Ringwaldsrc/classic/hsp_hs.c \
153*225f4ba4SMatthias Ringwaldsrc/classic/obex_iterator.c \
154*225f4ba4SMatthias Ringwaldsrc/classic/pbap_client.c \
155*225f4ba4SMatthias Ringwaldsrc/classic/rfcomm.c \
156*225f4ba4SMatthias Ringwaldsrc/classic/sdp_client.c \
157*225f4ba4SMatthias Ringwaldsrc/classic/sdp_client_rfcomm.c \
158*225f4ba4SMatthias Ringwaldsrc/classic/sdp_server.c \
159*225f4ba4SMatthias Ringwaldsrc/classic/sdp_util.c \
160*225f4ba4SMatthias Ringwaldsrc/classic/spp_server.c \
161*225f4ba4SMatthias RingwaldSrc/dma.c \
162*225f4ba4SMatthias RingwaldSrc/gpio.c \
163*225f4ba4SMatthias Ringwaldsrc/hci.c \
164*225f4ba4SMatthias Ringwaldsrc/hci_cmd.c \
165*225f4ba4SMatthias Ringwaldsrc/hci_dump.c \
166*225f4ba4SMatthias Ringwaldsrc/hci_transport_h4.c \
167*225f4ba4SMatthias Ringwaldsrc/l2cap.c \
168*225f4ba4SMatthias Ringwaldsrc/l2cap_signaling.c \
169*225f4ba4SMatthias RingwaldSrc/main.c \
170*225f4ba4SMatthias RingwaldSrc/port.c \
171*225f4ba4SMatthias RingwaldSrc/spi.c \
172*225f4ba4SMatthias RingwaldSrc/stm32f4xx_hal_msp.c \
173*225f4ba4SMatthias RingwaldSrc/stm32f4xx_it.c \
174*225f4ba4SMatthias RingwaldSrc/system_stm32f4xx.c \
175*225f4ba4SMatthias RingwaldSrc/usart.c \
176*225f4ba4SMatthias Ringwald
177*225f4ba4SMatthias Ringwald# ASM sources
178*225f4ba4SMatthias RingwaldASM_SOURCES =  \
179*225f4ba4SMatthias Ringwaldstartup_stm32f407xx.s
180*225f4ba4SMatthias Ringwald
181*225f4ba4SMatthias Ringwald
182*225f4ba4SMatthias Ringwald#######################################
183*225f4ba4SMatthias Ringwald# binaries
184*225f4ba4SMatthias Ringwald#######################################
185*225f4ba4SMatthias RingwaldPREFIX = arm-none-eabi-
186*225f4ba4SMatthias Ringwald# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
187*225f4ba4SMatthias Ringwald# either it can be added to the PATH environment variable.
188*225f4ba4SMatthias Ringwaldifdef GCC_PATH
189*225f4ba4SMatthias RingwaldCC = $(GCC_PATH)/$(PREFIX)gcc
190*225f4ba4SMatthias RingwaldAS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp
191*225f4ba4SMatthias RingwaldCP = $(GCC_PATH)/$(PREFIX)objcopy
192*225f4ba4SMatthias RingwaldSZ = $(GCC_PATH)/$(PREFIX)size
193*225f4ba4SMatthias Ringwaldelse
194*225f4ba4SMatthias RingwaldCC = $(PREFIX)gcc
195*225f4ba4SMatthias RingwaldAS = $(PREFIX)gcc -x assembler-with-cpp
196*225f4ba4SMatthias RingwaldCP = $(PREFIX)objcopy
197*225f4ba4SMatthias RingwaldSZ = $(PREFIX)size
198*225f4ba4SMatthias Ringwaldendif
199*225f4ba4SMatthias RingwaldHEX = $(CP) -O ihex
200*225f4ba4SMatthias RingwaldBIN = $(CP) -O binary -S
201*225f4ba4SMatthias Ringwald
202*225f4ba4SMatthias Ringwald#######################################
203*225f4ba4SMatthias Ringwald# CFLAGS
204*225f4ba4SMatthias Ringwald#######################################
205*225f4ba4SMatthias Ringwald# cpu
206*225f4ba4SMatthias RingwaldCPU = -mcpu=cortex-m4
207*225f4ba4SMatthias Ringwald
208*225f4ba4SMatthias Ringwald# fpu
209*225f4ba4SMatthias RingwaldFPU = -mfpu=fpv4-sp-d16
210*225f4ba4SMatthias Ringwald
211*225f4ba4SMatthias Ringwald# float-abi
212*225f4ba4SMatthias RingwaldFLOAT-ABI = -mfloat-abi=softfp
213*225f4ba4SMatthias Ringwald
214*225f4ba4SMatthias Ringwald# mcu
215*225f4ba4SMatthias RingwaldMCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
216*225f4ba4SMatthias Ringwald
217*225f4ba4SMatthias Ringwald# macros for gcc
218*225f4ba4SMatthias Ringwald# AS defines
219*225f4ba4SMatthias RingwaldAS_DEFS =
220*225f4ba4SMatthias Ringwald
221*225f4ba4SMatthias Ringwald# C defines
222*225f4ba4SMatthias RingwaldC_DEFS =  \
223*225f4ba4SMatthias Ringwald-DUSE_HAL_DRIVER \
224*225f4ba4SMatthias Ringwald-DSTM32F407xx
225*225f4ba4SMatthias Ringwald
226*225f4ba4SMatthias Ringwald
227*225f4ba4SMatthias Ringwald# AS includes
228*225f4ba4SMatthias RingwaldAS_INCLUDES =
229*225f4ba4SMatthias Ringwald
230*225f4ba4SMatthias Ringwald# C includes
231*225f4ba4SMatthias RingwaldC_INCLUDES =  \
232*225f4ba4SMatthias Ringwald-IInc \
233*225f4ba4SMatthias Ringwald-IDrivers/STM32F4xx_HAL_Driver/Inc \
234*225f4ba4SMatthias Ringwald-IDrivers/STM32F4xx_HAL_Driver/Inc/Legacy \
235*225f4ba4SMatthias Ringwald-IDrivers/CMSIS/Device/ST/STM32F4xx/Include \
236*225f4ba4SMatthias Ringwald-IDrivers/CMSIS/Include \
237*225f4ba4SMatthias Ringwald
238*225f4ba4SMatthias RingwaldC_INCLUDES += -I$(BUILD_DIR)
239*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/src/ble
240*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/src/ble/gatt-service
241*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/src/classic
242*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/src
243*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/micro-ecc
244*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/bluedroid/decoder/include
245*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/bluedroid/encoder/include
246*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/hxcmod-player
247*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/hxcmod-player/mods
248*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/md5
249*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/yxml
250*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/3rd-party/segger-rtt
251*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/platform/embedded
252*225f4ba4SMatthias RingwaldC_INCLUDES += -I${BTSTACK_ROOT}/chipset/cc256x
253*225f4ba4SMatthias RingwaldC_INCLUDES += -I Drivers/STM32F4xx_HAL_Driver/Inc
254*225f4ba4SMatthias RingwaldC_INCLUDES += -I bsp
255*225f4ba4SMatthias RingwaldC_INCLUDES += -I pdm
256*225f4ba4SMatthias RingwaldC_INCLUDES += -I port
257*225f4ba4SMatthias RingwaldC_INCLUDES += -I src
258*225f4ba4SMatthias Ringwald
259*225f4ba4SMatthias Ringwald# compile gcc flags
260*225f4ba4SMatthias RingwaldASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
261*225f4ba4SMatthias Ringwald
262*225f4ba4SMatthias RingwaldCFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
263*225f4ba4SMatthias Ringwald
264*225f4ba4SMatthias Ringwaldifeq ($(DEBUG), 1)
265*225f4ba4SMatthias RingwaldCFLAGS += -g -gdwarf-2
266*225f4ba4SMatthias Ringwaldendif
267*225f4ba4SMatthias Ringwald
268*225f4ba4SMatthias Ringwald
269*225f4ba4SMatthias Ringwald# Generate dependency information
270*225f4ba4SMatthias RingwaldCFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
271*225f4ba4SMatthias Ringwald
272*225f4ba4SMatthias Ringwald
273*225f4ba4SMatthias Ringwald#######################################
274*225f4ba4SMatthias Ringwald# LDFLAGS
275*225f4ba4SMatthias Ringwald#######################################
276*225f4ba4SMatthias Ringwald# link script
277*225f4ba4SMatthias RingwaldLDSCRIPT = STM32F407VGTx_FLASH.ld
278*225f4ba4SMatthias Ringwald
279*225f4ba4SMatthias Ringwald# libraries
280*225f4ba4SMatthias RingwaldLIBS = -lPDMFilter_CM4_GCC -lc -lm -lnosys
281*225f4ba4SMatthias RingwaldLIBDIR = -Lpdm
282*225f4ba4SMatthias RingwaldLDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
283*225f4ba4SMatthias Ringwald
284*225f4ba4SMatthias Ringwald# default action: build all
285*225f4ba4SMatthias RingwaldLE_EXAMPLES = \
286*225f4ba4SMatthias Ringwald	ancs_client_demo \
287*225f4ba4SMatthias Ringwald	gap_le_advertisements \
288*225f4ba4SMatthias Ringwald	gatt_battery_query \
289*225f4ba4SMatthias Ringwald	gatt_browser \
290*225f4ba4SMatthias Ringwald	le_counter \
291*225f4ba4SMatthias Ringwald	le_streamer \
292*225f4ba4SMatthias Ringwald	le_streamer_client \
293*225f4ba4SMatthias Ringwald	sm_pairing_peripheral \
294*225f4ba4SMatthias Ringwald	sm_pairing_central
295*225f4ba4SMatthias Ringwald
296*225f4ba4SMatthias RingwaldEXAMPLES = 					\
297*225f4ba4SMatthias Ringwald	audio_duplex            \
298*225f4ba4SMatthias Ringwald	a2dp_sink_demo			\
299*225f4ba4SMatthias Ringwald	a2dp_source_demo        \
300*225f4ba4SMatthias Ringwald	ancs_client_demo		\
301*225f4ba4SMatthias Ringwald	dut_mode_classic        \
302*225f4ba4SMatthias Ringwald	gap_dedicated_bonding	\
303*225f4ba4SMatthias Ringwald	gap_inquiry 			\
304*225f4ba4SMatthias Ringwald	gap_le_advertisements   \
305*225f4ba4SMatthias Ringwald	gatt_battery_query		\
306*225f4ba4SMatthias Ringwald	gatt_browser            \
307*225f4ba4SMatthias Ringwald	hfp_ag_demo             \
308*225f4ba4SMatthias Ringwald	hfp_hf_demo             \
309*225f4ba4SMatthias Ringwald	hid_host_demo           \
310*225f4ba4SMatthias Ringwald	hid_keyboard_demo 	    \
311*225f4ba4SMatthias Ringwald	hid_mouse_demo          \
312*225f4ba4SMatthias Ringwald	hog_keyboard_demo       \
313*225f4ba4SMatthias Ringwald	hog_mouse_demo          \
314*225f4ba4SMatthias Ringwald	hsp_ag_demo             \
315*225f4ba4SMatthias Ringwald	hsp_hs_demo             \
316*225f4ba4SMatthias Ringwald	mod_player              \
317*225f4ba4SMatthias Ringwald	le_counter              \
318*225f4ba4SMatthias Ringwald	le_streamer				\
319*225f4ba4SMatthias Ringwald	le_streamer_client      \
320*225f4ba4SMatthias Ringwald	pbap_client_demo		\
321*225f4ba4SMatthias Ringwald	sdp_bnep_query 			\
322*225f4ba4SMatthias Ringwald	sdp_general_query		\
323*225f4ba4SMatthias Ringwald	sdp_rfcomm_query		\
324*225f4ba4SMatthias Ringwald	sine_player             \
325*225f4ba4SMatthias Ringwald	sm_pairing_central      \
326*225f4ba4SMatthias Ringwald	sm_pairing_peripheral   \
327*225f4ba4SMatthias Ringwald	spp_and_le_counter 		\
328*225f4ba4SMatthias Ringwald	spp_and_le_streamer     \
329*225f4ba4SMatthias Ringwald	spp_counter 			\
330*225f4ba4SMatthias Ringwald	spp_streamer			\
331*225f4ba4SMatthias Ringwald	spp_streamer_client     \
332*225f4ba4SMatthias Ringwald
333*225f4ba4SMatthias RingwaldGATT_FILES = \
334*225f4ba4SMatthias Ringwald	ancs_client_demo.gatt \
335*225f4ba4SMatthias Ringwald	le_counter.gatt \
336*225f4ba4SMatthias Ringwald	le_streamer.gatt \
337*225f4ba4SMatthias Ringwald	gatt_browser.gatt \
338*225f4ba4SMatthias Ringwald	gatt_battery_query.gatt \
339*225f4ba4SMatthias Ringwald	hog_keyboard_demo.gatt \
340*225f4ba4SMatthias Ringwald	hog_mouse_demo.gatt \
341*225f4ba4SMatthias Ringwald	sm_pairing_peripheral.gatt \
342*225f4ba4SMatthias Ringwald	sm_pairing_central.gatt \
343*225f4ba4SMatthias Ringwald	spp_and_le_counter.gatt \
344*225f4ba4SMatthias Ringwald	spp_and_le_streamer.gatt \
345*225f4ba4SMatthias Ringwald
346*225f4ba4SMatthias Ringwaldinclude ${BTSTACK_ROOT}/3rd-party/bluedroid/decoder/Makefile.inc
347*225f4ba4SMatthias Ringwaldinclude ${BTSTACK_ROOT}/3rd-party/bluedroid/encoder/Makefile.inc
348*225f4ba4SMatthias Ringwald
349*225f4ba4SMatthias RingwaldC_SOURCES += ${SBC_ENCODER}
350*225f4ba4SMatthias RingwaldC_SOURCES += ${SBC_DECODER}
351*225f4ba4SMatthias Ringwald
352*225f4ba4SMatthias Ringwald#######################################
353*225f4ba4SMatthias Ringwald# build the application
354*225f4ba4SMatthias Ringwald#######################################
355*225f4ba4SMatthias Ringwald# list of objects
356*225f4ba4SMatthias RingwaldOBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
357*225f4ba4SMatthias Ringwaldvpath %.c $(sort $(dir $(C_SOURCES)))
358*225f4ba4SMatthias Ringwald# list of ASM program objects
359*225f4ba4SMatthias RingwaldOBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
360*225f4ba4SMatthias Ringwaldvpath %.s $(sort $(dir $(ASM_SOURCES)))
361*225f4ba4SMatthias Ringwald
362*225f4ba4SMatthias Ringwaldall: \
363*225f4ba4SMatthias Ringwald	$(OBJECTS) \
364*225f4ba4SMatthias Ringwald	$(addprefix $(BUILD_DIR)/,$(GATT_FILES:.gatt=.h)) \
365*225f4ba4SMatthias Ringwald	$(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.elf)) \
366*225f4ba4SMatthias Ringwald	$(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.hex)) \
367*225f4ba4SMatthias Ringwald	$(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.bin)) \
368*225f4ba4SMatthias Ringwald	$(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.jdebug)) \
369*225f4ba4SMatthias Ringwald
370*225f4ba4SMatthias Ringwaldinclude ${BTSTACK_ROOT}/chipset/cc256x/Makefile.inc
371*225f4ba4SMatthias Ringwald
372*225f4ba4SMatthias Ringwald$(BUILD_DIR)/%.h: %.gatt
373*225f4ba4SMatthias Ringwald	python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
374*225f4ba4SMatthias Ringwald
375*225f4ba4SMatthias Ringwald$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
376*225f4ba4SMatthias Ringwald	$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
377*225f4ba4SMatthias Ringwald
378*225f4ba4SMatthias Ringwald$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
379*225f4ba4SMatthias Ringwald	$(AS) -c $(CFLAGS) $< -o $@
380*225f4ba4SMatthias Ringwald
381*225f4ba4SMatthias Ringwald$(BUILD_DIR)/%.elf: Makefile $(OBJECTS) $(BUILD_DIR)/%.o
382*225f4ba4SMatthias Ringwald	$(CC) $(filter-out Makefile,$^)  $(LDFLAGS) -o $@
383*225f4ba4SMatthias Ringwald	$(SZ) $@
384*225f4ba4SMatthias Ringwald
385*225f4ba4SMatthias Ringwald$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
386*225f4ba4SMatthias Ringwald	$(HEX) $< $@
387*225f4ba4SMatthias Ringwald
388*225f4ba4SMatthias Ringwald$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
389*225f4ba4SMatthias Ringwald	$(BIN) $< $@
390*225f4ba4SMatthias Ringwald
391*225f4ba4SMatthias Ringwald$(BUILD_DIR)/%.jdebug: ozone.jdebug | $(BUILD_DIR)
392*225f4ba4SMatthias Ringwald	sed -e "s|EXAMPLE|$(basename $(notdir $@))|" $<  > $@
393*225f4ba4SMatthias Ringwald
394*225f4ba4SMatthias Ringwald$(BUILD_DIR):
395*225f4ba4SMatthias Ringwald	mkdir $@
396*225f4ba4SMatthias Ringwald
397*225f4ba4SMatthias Ringwald#######################################
398*225f4ba4SMatthias Ringwald# clean up
399*225f4ba4SMatthias Ringwald#######################################
400*225f4ba4SMatthias Ringwaldclean:
401*225f4ba4SMatthias Ringwald	-rm -fR $(BUILD_DIR)
402*225f4ba4SMatthias Ringwald
403*225f4ba4SMatthias Ringwald#######################################
404*225f4ba4SMatthias Ringwald# dependencies
405*225f4ba4SMatthias Ringwald#######################################
406*225f4ba4SMatthias Ringwald-include $(wildcard $(BUILD_DIR)/*.d)
407*225f4ba4SMatthias Ringwald
408*225f4ba4SMatthias Ringwald# *** EOF ***
409