1 # Makefile for libusb based examples 2BTSTACK_ROOT = ../.. 3 4ATT += \ 5 att_dispatch.c \ 6 att_db.c \ 7 att_server.c \ 8 gatt_bearer.c \ 9 mesh_proxy_service_server.c \ 10 11CORE += \ 12 adv_bearer.c \ 13 beacon.c \ 14 btstack_link_key_db_fs.c \ 15 btstack_run_loop_posix.c \ 16 btstack_stdin_posix.c \ 17 btstack_uart_block_posix_pty.c \ 18 hci_transport_h2_libusb.c \ 19 hci_transport_h4.c \ 20 btstack_tlv_posix.c \ 21 mesh_iv_index_seq_number.c \ 22 mesh_node.c \ 23 le_device_db_fs.c \ 24 l2cap.c \ 25 uECC.c \ 26 rijndael.c \ 27 28 29 30# examples 31include ${BTSTACK_ROOT}/example/Makefile.inc 32include ${BTSTACK_ROOT}/src/ble/gatt-service/Makefile.inc 33 34 35CFLAGS += -g -DUNIT_TEST -Wall \ 36 -I$(BTSTACK_ROOT)/platform/embedded \ 37 -I$(BTSTACK_ROOT)/platform/posix \ 38 -I$(BTSTACK_ROOT)/3rd-party/tinydir \ 39 -I$(BTSTACK_ROOT)/3rd-party/rijndael \ 40 41CFLAGS += -fprofile-arcs -ftest-coverage 42 43CFLAGS += -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wunused-parameter -Wredundant-decls -Wsign-compare 44 45VPATH += ${BTSTACK_ROOT}/3rd-party/rijndael 46VPATH += ${BTSTACK_ROOT}/src/mesh 47VPATH += ${BTSTACK_ROOT}/src/classic 48VPATH += ${BTSTACK_ROOT}/platform/posix 49VPATH += ${BTSTACK_ROOT}/platform/embedded 50VPATH += ${BTSTACK_ROOT}/platform/libusb 51VPATH += ${BTSTACK_ROOT}/src/ble/gatt-service 52 53# cpputest 54CC_UNIT = g++ 55 56# libusb 57CFLAGS += $(shell pkg-config libusb-1.0 --cflags) 58LDFLAGS += $(shell pkg-config libusb-1.0 --libs) 59 60# cppUTest 61LDFLAGS += -lCppUTest -lCppUTestExt 62 63 64mesh_pts: mesh_pts.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_OBJ} ${MESH_OBJ} main.o mesh_pts.o 65 ${CC} $(filter-out mesh_pts.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ 66 67provisioner: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${SM_OBJ} main.o pb_adv.o mesh_crypto.o provisioning_provisioner.o mesh_keys.o mesh_foundation.o mesh_network.o provisioner.o 68 ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ 69 70mesh_message_test: mesh_message_test.cpp mesh_foundation.o mesh_node.o mesh_iv_index_seq_number.o mesh_network.o mesh_peer.o mesh_lower_transport.o mesh_upper_transport.o mesh_virtual_addresses.o mesh_keys.o mesh_crypto.o btstack_memory.o btstack_memory_pool.o btstack_util.o btstack_crypto.o btstack_linked_list.o hci_dump.o uECC.o mock.o rijndael.o hci_cmd.o 71 g++ $^ ${CFLAGS} ${LDFLAGS} -o $@ 72 73sniffer: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${SM_OBJ} main.o mesh_keys.o mesh_network.o mesh_foundation.o sniffer.c 74 ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ 75 76provisioning_device_test: provisioning_device_test.cpp uECC.o mesh_crypto.o provisioning_device.o btstack_crypto.o btstack_util.o btstack_linked_list.o mesh_node.o mock.o rijndael.o hci_cmd.o hci_dump.o 77 ${CC_UNIT} ${CFLAGS} ${LDFLAGS} $^ -lCppUTest -lCppUTestExt -o $@ 78 79provisioning_provisioner_test: provisioning_provisioner_test.cpp uECC.o mesh_crypto.o provisioning_provisioner.o btstack_crypto.o btstack_util.o btstack_linked_list.o mock.o rijndael.o hci_cmd.o hci_dump.o 80 ${CC_UNIT} ${CFLAGS} ${LDFLAGS} $^ -lCppUTest -lCppUTestExt -o $@ 81 82mesh_configuration_composition_data_message_test: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${MESH_OBJ} mesh_configuration_composition_data_message_test.cpp 83 ${CC_UNIT} ${CFLAGS} ${LDFLAGS} $^ -lCppUTest -lCppUTestExt -o $@ 84 85EXAMPLES = mesh_pts provisioner sniffer provisioning_device_test provisioning_provisioner_test mesh_message_test mesh_configuration_composition_data_message_test 86 87all: ${EXAMPLES} 88 89test: mesh_message_test provisioning_device_test provisioning_provisioner_test mesh_configuration_composition_data_message_test 90 # Ignore leaks in mesh message test as tests stop before all PDUs are fully processed 91 ASAN_OPTIONS=detect_leaks=0 ./mesh_message_test 92 ./provisioning_device_test 93 ./provisioning_provisioner_test 94 ./mesh_configuration_composition_data_message_test 95 96clean: 97 rm -f *.o *.out *.exe 98 rm -rf *.dSYM 99 rm -f ${EXAMPLES} 100 rm -f mesh_provisioning_device.h 101 rm -f *.gcno *.gcda 102 103