16b7b368aSMatthias Ringwald# Makefile for libusb based PTS tests 26b7b368aSMatthias RingwaldBTSTACK_ROOT = ../.. 36b7b368aSMatthias Ringwald 498e87e77SMatthias Ringwald# CppuTest from pkg-config 598e87e77SMatthias RingwaldCFLAGS += ${shell pkg-config --cflags CppuTest} 698e87e77SMatthias RingwaldLDFLAGS += ${shell pkg-config --libs CppuTest} 798e87e77SMatthias Ringwald 86b7b368aSMatthias RingwaldCORE += \ 96b7b368aSMatthias Ringwald btstack_memory.c \ 106b7b368aSMatthias Ringwald btstack_linked_list.c \ 116b7b368aSMatthias Ringwald btstack_memory_pool.c \ 126b7b368aSMatthias Ringwald btstack_run_loop.c \ 136b7b368aSMatthias Ringwald btstack_util.c \ 146b7b368aSMatthias Ringwald main.c \ 156b7b368aSMatthias Ringwald btstack_stdin_posix.c \ 166b7b368aSMatthias Ringwald btstack_tlv.c \ 176b7b368aSMatthias Ringwald btstack_tlv_posix.c \ 186b7b368aSMatthias Ringwald rijndael.c \ 196b7b368aSMatthias Ringwald 206b7b368aSMatthias RingwaldCOMMON += \ 216b7b368aSMatthias Ringwald hci.c \ 226b7b368aSMatthias Ringwald ad_parser.c \ 236b7b368aSMatthias Ringwald hci_cmd.c \ 24*d6de13b2SMatthias Ringwald hci_event_builder.c \ 256b7b368aSMatthias Ringwald hci_dump.c \ 2614dd5758SMatthias Ringwald hci_dump_posix_fs.c \ 276b7b368aSMatthias Ringwald l2cap.c \ 286b7b368aSMatthias Ringwald l2cap_signaling.c \ 296b7b368aSMatthias Ringwald hci_transport_h2_libusb.c \ 30a921db49SMatthias Ringwald btstack_crypto.c \ 316b7b368aSMatthias Ringwald btstack_run_loop_posix.c \ 326b7b368aSMatthias Ringwald le_device_db_tlv.c \ 336b7b368aSMatthias Ringwald sm.c \ 346b7b368aSMatthias Ringwald uECC.c \ 356b7b368aSMatthias Ringwald btstack_chipset_zephyr.c \ 366b7b368aSMatthias Ringwald 376b7b368aSMatthias RingwaldATT += \ 386b7b368aSMatthias Ringwald att_dispatch.c \ 396b7b368aSMatthias Ringwald 406b7b368aSMatthias RingwaldGATT_SERVER += \ 416b7b368aSMatthias Ringwald att_db.c \ 426b7b368aSMatthias Ringwald att_server.c \ 436b7b368aSMatthias Ringwald 446b7b368aSMatthias RingwaldGATT_CLIENT += \ 456b7b368aSMatthias Ringwald gatt_client.c \ 466b7b368aSMatthias Ringwald 476b7b368aSMatthias RingwaldSM += \ 486b7b368aSMatthias Ringwald sm.c \ 496b7b368aSMatthias Ringwald 50a921db49SMatthias RingwaldCFLAGS += -g -std=c99 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wunused-parameter -Wredundant-decls -Wsign-compare 516b7b368aSMatthias RingwaldCFLAGS += -D ENABLE_TESTING_SUPPORT 5228b5b606SMatthias RingwaldCFLAGS += -DCOVERAGE 53a921db49SMatthias RingwaldCFLAGS += -I. 543d87570fSMatthias RingwaldCFLAGS += -Ibuild-coverage 556b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src 56a921db49SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/micro-ecc 576b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael 586b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/tinydir 596b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/chipset/zephyr 606b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/posix 616b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/embedded 626b7b368aSMatthias Ringwald 636b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src 646b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble 656b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/posix 666b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/libusb 676b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/micro-ecc 686b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/rijndael 696b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/chipset/zephyr 706b7b368aSMatthias Ringwald 71a921db49SMatthias Ringwald# coverage 7228b5b606SMatthias RingwaldCFLAGS += -fprofile-arcs -ftest-coverage 7328b5b606SMatthias RingwaldLDFLAGS += -fprofile-arcs -ftest-coverage 74a921db49SMatthias Ringwald 756b7b368aSMatthias Ringwald# use pkg-config for libusb 766b7b368aSMatthias RingwaldCFLAGS += $(shell pkg-config libusb-1.0 --cflags) 776b7b368aSMatthias RingwaldLDFLAGS += $(shell pkg-config libusb-1.0 --libs) 786b7b368aSMatthias Ringwald 793d87570fSMatthias RingwaldCORE_OBJ = $(addprefix build-coverage/,$(CORE:.c=.o)) 803d87570fSMatthias RingwaldCOMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) 813d87570fSMatthias RingwaldATT_OBJ = $(addprefix build-coverage/,$(ATT:.c=.o)) 823d87570fSMatthias RingwaldSM_OBJ = $(addprefix build-coverage/,$(SM:.c=.o)) 833d87570fSMatthias RingwaldGATT_CLIENT_OBJ = $(addprefix build-coverage/,$(GATT_CLIENT:.c=.o)) 843d87570fSMatthias RingwaldGATT_SERVER_OBJ = $(addprefix build-coverage/,$(GATT_SERVER:.c=.o)) 856b7b368aSMatthias Ringwald 86a921db49SMatthias Ringwald# compile .gatt descriptions 873d87570fSMatthias Ringwaldbuild-coverage/%.h: %.gatt 88a921db49SMatthias Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 89a921db49SMatthias Ringwald 90e8a62bb7SMatthias Ringwald.PHONY: all coverage test 91e8a62bb7SMatthias Ringwald 923d87570fSMatthias Ringwaldall: build-coverage/sm_test 936b7b368aSMatthias Ringwald 94cd56fb44SMatthias Ringwaldbuild-%: 95cd56fb44SMatthias Ringwald mkdir -p $@ 963d87570fSMatthias Ringwald 973d87570fSMatthias Ringwaldbuild-coverage/sm_test.h: sm_test.gatt | build-coverage 983d87570fSMatthias Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 993d87570fSMatthias Ringwald 1003d87570fSMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage 1013d87570fSMatthias Ringwald ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ 1023d87570fSMatthias Ringwald 1033d87570fSMatthias Ringwaldbuild-coverage/sm_test: build-coverage/sm_test.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${GATT_CLIENT_OBJ} ${SM_OBJ} build-coverage/sm_test.o | build-coverage 1043d87570fSMatthias Ringwald ${CC} $(filter-out build-coverage/sm_test.h,$^) ${LDFLAGS} -o $@ 1056b7b368aSMatthias Ringwald 1066b7b368aSMatthias Ringwaldmyclean: 1073d87570fSMatthias Ringwald rm -rf build-coverage 108a921db49SMatthias Ringwald rm -f *.o 109a921db49SMatthias Ringwald rm -rf *.dSYM 110a921db49SMatthias Ringwald rm -f *.gcno *.gcda 1112ce916b3SMatthias Ringwald rm -rf SM_* 1126b7b368aSMatthias Ringwald 1136b7b368aSMatthias Ringwaldclean: myclean 114795c77dcSMatthias Ringwald 115228e70a5SMatthias Ringwaldtest: build-coverage/sm_test 1169a09a08aSMatthias Ringwald rm -rf SM_* 1172ce916b3SMatthias Ringwald python3 ./sm_test.py 118e8a62bb7SMatthias Ringwald 119228e70a5SMatthias Ringwaldcoverage: build-coverage/sm_test 120e8a62bb7SMatthias Ringwald # delete trace data 121cd56fb44SMatthias Ringwald rm -f build-coverage/*.gcda 122e8a62bb7SMatthias Ringwald # run tests 123e8a62bb7SMatthias Ringwald make test 124e8a62bb7SMatthias Ringwald # collect traces 125772d5e9eSMatthias Ringwald lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-sm-sc.info 126e8a62bb7SMatthias Ringwald # demangle 127772d5e9eSMatthias Ringwald python3 ../coverage_demangle.py coverage-sm-sc.info 128