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