BTSTACK_ROOT = ../.. CFLAGS = -g -Wall -I. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include CFLAGS += -I${BTSTACK_ROOT}/chipset-cc256x CFLAGS += -I${BTSTACK_ROOT}/chipset-csr CFLAGS += -I/usr/local/include -I../../ble -I../.. -I../.. LDFLAGS = -L/usr/local/lib -lusb-1.0 # needed on OS X with libusb compiled stand alone LDFLAGS += -framework IOKit -framework CoreFoundation -framework Foundation CORE = \ ${BTSTACK_ROOT}/src/btstack_memory.c \ ${BTSTACK_ROOT}/src/linked_list.c \ ${BTSTACK_ROOT}/src/memory_pool.c \ ${BTSTACK_ROOT}/src/run_loop.c \ ${BTSTACK_ROOT}/src/run_loop_posix.c \ COMMON = \ ${BTSTACK_ROOT}/src/hci.c \ ${BTSTACK_ROOT}/src/hci_cmds.c \ ${BTSTACK_ROOT}/src/hci_dump.c \ ${BTSTACK_ROOT}/src/hci_transport_h4.c \ ${BTSTACK_ROOT}/src/hci_transport_usb.c \ ${BTSTACK_ROOT}/src/l2cap.c \ ${BTSTACK_ROOT}/src/l2cap_signaling.c \ ${BTSTACK_ROOT}/src/remote_device_db_memory.c \ ${BTSTACK_ROOT}/src/sdp_util.c \ ${BTSTACK_ROOT}/src/utils.c \ ${BTSTACK_ROOT}/src/rfcomm.c \ ${BTSTACK_ROOT}/src/sdp.c \ ${BTSTACK_ROOT}/src/sdp_client.c \ ${BTSTACK_ROOT}/src/sdp_parser.c \ ${BTSTACK_ROOT}/src/sdp_query_util.c \ ${BTSTACK_ROOT}/src/sdp_query_rfcomm.c \ ATT = \ ${BTSTACK_ROOT}/ble/att_dispatch.c \ GATT_SERVER = \ ${BTSTACK_ROOT}/ble/att.c \ ${BTSTACK_ROOT}/ble/att_server.c \ GATT_CLIENT = \ ${BTSTACK_ROOT}/ble/ad_parser.c \ ${BTSTACK_ROOT}/ble/gatt_client.c \ CC2564 = \ ${BTSTACK_ROOT}/chipset-cc256x/bt_control_cc256x.c \ ${BTSTACK_ROOT}/chipset-cc256x/bluetooth_init_cc2564_2.10.c \ CSR = ${BTSTACK_ROOT}/chipset-csr/bt_control_csr.c SM_REAL = \ ${BTSTACK_ROOT}/ble/sm.c \ ${BTSTACK_ROOT}/ble/central_device_db_memory.c \ SM_MINIMAL = \ ${BTSTACK_ROOT}/ble/sm_minimal.c \ ${BTSTACK_ROOT}/ble/central_device_db_dummy.c \ SDP_DES = \ ${BTSTACK_ROOT}/test/des_iterator/des_iterator.c \ CORE_OBJ = $(CORE:.c=.o) COMMON_OBJ = $(COMMON:.c=.o) CC2564_OBJ = $(CC2564:.c=.o) CSR_OBJ = $(CSR:.c=.o) SM_REAL_OBJ = $(SM_REAL:.c=.o) SM_MINIMAL_OBJ = $(SM_MINIMAL:.c=.o) ATT_OBJ = $(ATT:.c=.o) GATT_CLIENT_OBJ = $(GATT_CLIENT:.c=.o) GATT_SERVER_OBJ = $(GATT_SERVER:.c=.o) # create firmware image from common objects and example source file all: ../../include/btstack/version.h gatt_browser sdp_rfcomm_query sdp_general_query spp_counter ble_peripheral \ ble_peripheral_sm_minimal gap_inquiry gap_dedicated_bonding gap_inquiry_and_bond l2cap_test spp_streamer \ classic_test ble_peripheral_uart_csr ble_peripheral_uart_cc256x ancs_client spp_and_le_counter \ sdp_bnep_query \ ../../include/btstack/version.h: cd ..; ../src/get_version.sh sdp_rfcomm_query: ${CORE_OBJ} ${COMMON_OBJ} sdp_rfcomm_query.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ sdp_general_query: ${CORE_OBJ} ${COMMON_OBJ} sdp_general_query.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ sdp_bnep_query: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_DES} sdp_bnep_query.c ${CC} $^ ${CFLAGS} -I../../test/des_iterator ${LDFLAGS} -o $@ spp_counter: ${CORE_OBJ} ${COMMON_OBJ} spp_counter.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ spp_and_le_counter: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} spp_and_le_counter.c spp_and_le_counter.h ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ spp_counter_ssp: ${CORE_OBJ} ${COMMON_OBJ} spp_counter_ssp.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ spp_streamer: ${CORE_OBJ} ${COMMON_OBJ} spp_streamer.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ gap_dedicated_bonding: ${CORE_OBJ} ${COMMON_OBJ} gap_dedicated_bonding.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ gap_inquiry: ${CORE_OBJ} ${COMMON_OBJ} gap_inquiry.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ gap_inquiry_and_bond: ${CORE_OBJ} ${COMMON_OBJ} gap_inquiry_and_bond.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ l2cap_test: ${CORE_OBJ} ${COMMON_OBJ} l2cap_test.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ classic_test: ${CORE_OBJ} ${COMMON_OBJ} classic_test.c ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ # compile .ble description profile.h: profile.gatt python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ ancs_client.h: ancs_client.gatt python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ spp_and_le_counter.h: spp_and_le_counter.gatt python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ ancs_client: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} ancs_client.c ancs_client.h ${CC} ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} ancs_client.c ${CFLAGS} ${LDFLAGS} -o $@ ble_peripheral: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.c profile.h ${CC} ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.c ${CFLAGS} ${LDFLAGS} -o $@ ble_peripheral_uart_csr: ${CORE_OBJ} ${COMMON_OBJ} ${CSR_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.c profile.h ${CC} $ -DHAVE_UART_CSR ${CORE_OBJ} ${COMMON_OBJ} ${CSR_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.c ${CFLAGS} ${LDFLAGS} -o $@ ble_peripheral_uart_cc256x: ${CORE_OBJ} ${COMMON_OBJ} ${CC2564} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.c profile.h ${CC} $ -DHAVE_UART_CC256x ${CORE_OBJ} ${COMMON_OBJ} ${CC2564} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.c ${CFLAGS} ${LDFLAGS} -o $@ ble_peripheral_sm_minimal: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_MINIMAL_OBJ} ble_peripheral.c profile.h ${CC} ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_MINIMAL_OBJ} ble_peripheral.c ${CFLAGS} ${LDFLAGS} -o $@ ble_client: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL} ble_client.c ${CC} ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL} ble_client.c ${CFLAGS} ${LDFLAGS} -o $@ gatt_browser: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_browser.c ${CC} ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_browser.c ${CFLAGS} ${LDFLAGS} -o $@ clean: rm -f spp_counter sdp_rfcomm_query sdp_general_query sdp_bnep_query spp_counter_ssp ble_peripheral ble_client gatt_browser \ gatt_client ancs_client ble_peripheral_sm_minimal classic_test ble_peripheral_uart_csr ble_peripheral_uart \ gap_dedicated_bonding gap_inquiry gap_inquiry_and_bond l2cap_test spp_and_le_counter spp_streamer rm -f *.o *.out *.hex rm -f ${BTSTACK_ROOT}/src/*.o rm -f ${BTSTACK_ROOT}/ble/*.o rm -f ${BTSTACK_ROOT}/chipset-cc256x/*.o rm -f ${BTSTACK_ROOT}/include/btstack/version.h rm -f ${BTSTACK_ROOT}/example/libusb/ancs_client.h rm -f ${BTSTACK_ROOT}/example/libusb/profile.h rm -f ${BTSTACK_ROOT}/example/libusb/spp_and_le_counter.h rm -rf *.dSYM