10f7fd6c1SMilanka Ringwald# Requirements: cpputest.github.io 20f7fd6c1SMilanka Ringwald 30f7fd6c1SMilanka RingwaldBTSTACK_ROOT = ../.. 40f7fd6c1SMilanka Ringwald 598e87e77SMatthias Ringwald# CppuTest from pkg-config 698e87e77SMatthias RingwaldCFLAGS += ${shell pkg-config --cflags CppuTest} 798e87e77SMatthias RingwaldLDFLAGS += ${shell pkg-config --libs CppuTest} 898e87e77SMatthias Ringwald 998e87e77SMatthias RingwaldCFLAGS += -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null -Ibuild-coverage -I../ 100f7fd6c1SMilanka RingwaldCFLAGS += -I${BTSTACK_ROOT}/src 110f7fd6c1SMilanka RingwaldCFLAGS += -I${BTSTACK_ROOT}/src/ble 120f7fd6c1SMilanka RingwaldCFLAGS += -I${BTSTACK_ROOT}/test/mock 130f7fd6c1SMilanka RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael 1476cdba3eSMilanka Ringwald# CFLAGS += -D ENABLE_TESTING_SUPPORT 150f7fd6c1SMilanka Ringwald 160f7fd6c1SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/src 170f7fd6c1SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/src/ble 180f7fd6c1SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/src/ble/gatt-service 190f7fd6c1SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/platform/posix 200f7fd6c1SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/rijndael 210f7fd6c1SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/test/mock 220f7fd6c1SMilanka Ringwald 230f7fd6c1SMilanka RingwaldCOMMON = \ 240f7fd6c1SMilanka Ringwald btstack_linked_list.c \ 250f7fd6c1SMilanka Ringwald btstack_util.c \ 260f7fd6c1SMilanka Ringwald hci_dump.c \ 27*2a954d4aSMatthias Ringwald hci_event_builder.c \ 280f7fd6c1SMilanka Ringwald mock_gatt_client.c \ 290f7fd6c1SMilanka Ringwald 300f7fd6c1SMilanka RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage 310f7fd6c1SMilanka RingwaldCFLAGS_ASAN = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT 320f7fd6c1SMilanka Ringwald 330f7fd6c1SMilanka RingwaldLDFLAGS += -lCppUTest -lCppUTestExt 340f7fd6c1SMilanka RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 350f7fd6c1SMilanka RingwaldLDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 360f7fd6c1SMilanka Ringwald 370f7fd6c1SMilanka RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 380f7fd6c1SMilanka RingwaldCOMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 390f7fd6c1SMilanka Ringwald 400f7fd6c1SMilanka Ringwald 4186d0910fSMilanka Ringwaldall: \ 4286d0910fSMilanka Ringwald build-coverage/battery_service_client_test build-asan/battery_service_client_test \ 4386d0910fSMilanka Ringwald build-coverage/ancs_client_test build-asan/ancs_client_test \ 442b60725aSMilanka Ringwald build-coverage/device_information_service_client_test build-asan/device_information_service_client_test \ 450f7fd6c1SMilanka Ringwald 460f7fd6c1SMilanka Ringwaldbuild-%: 470f7fd6c1SMilanka Ringwald mkdir -p $@ 480f7fd6c1SMilanka Ringwald 490f7fd6c1SMilanka Ringwaldbuild-%/ancs_client_profile.h: ancs_client_profile.gatt| build-% 500f7fd6c1SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 510f7fd6c1SMilanka Ringwald 520f7fd6c1SMilanka Ringwald 530f7fd6c1SMilanka Ringwaldbuild-coverage/%.o: %.c | build-coverage 540f7fd6c1SMilanka Ringwald ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 550f7fd6c1SMilanka Ringwald 561d3bd1e5SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage 571d3bd1e5SMatthias Ringwald ${CXX} -c $(CFLAGS_COVERAGE) $< -o $@ 581d3bd1e5SMatthias Ringwald 590f7fd6c1SMilanka Ringwaldbuild-asan/%.o: %.c | build-asan 600f7fd6c1SMilanka Ringwald ${CC} -c $(CFLAGS_ASAN) $< -o $@ 610f7fd6c1SMilanka Ringwald 621d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan 631d3bd1e5SMatthias Ringwald ${CXX} -c $(CFLAGS_ASAN) $< -o $@ 641d3bd1e5SMatthias Ringwald 6586d0910fSMilanka Ringwaldbuild-coverage/battery_service_client_test: ${COMMON_OBJ_COVERAGE} build-coverage/battery_service_client_test.o build-coverage/battery_service_client.o | build-coverage 661d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 670f7fd6c1SMilanka Ringwald 6886d0910fSMilanka Ringwaldbuild-asan/battery_service_client_test: ${COMMON_OBJ_ASAN} build-asan/battery_service_client_test.o build-asan/battery_service_client.o | build-asan 691d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 700f7fd6c1SMilanka Ringwald 7186d0910fSMilanka Ringwaldbuild-coverage/ancs_client_test: ${COMMON_OBJ_COVERAGE} build-coverage/ancs_client_test.o build-coverage/ancs_client.o | build-coverage 721d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 7386d0910fSMilanka Ringwald 7486d0910fSMilanka Ringwaldbuild-asan/ancs_client_test: ${COMMON_OBJ_ASAN} build-asan/ancs_client_test.o build-asan/ancs_client.o | build-asan 751d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 760f7fd6c1SMilanka Ringwald 772b60725aSMilanka Ringwaldbuild-coverage/device_information_service_client_test: ${COMMON_OBJ_COVERAGE} build-coverage/device_information_service_client_test.o build-coverage/device_information_service_client.o | build-coverage 781d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 792b60725aSMilanka Ringwald 802b60725aSMilanka Ringwaldbuild-asan/device_information_service_client_test: ${COMMON_OBJ_ASAN} build-asan/device_information_service_client_test.o build-asan/device_information_service_client.o | build-asan 811d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 822b60725aSMilanka Ringwald 832b60725aSMilanka Ringwald 840f7fd6c1SMilanka Ringwaldtest: all 850f7fd6c1SMilanka Ringwald build-asan/battery_service_client_test 8686d0910fSMilanka Ringwald build-asan/ancs_client_test 872b60725aSMilanka Ringwald build-asan/device_information_service_client_test 880f7fd6c1SMilanka Ringwald 890f7fd6c1SMilanka Ringwaldcoverage: all 900f7fd6c1SMilanka Ringwald rm -f build-coverage/*.gcda 910f7fd6c1SMilanka Ringwald build-coverage/battery_service_client_test 9286d0910fSMilanka Ringwald build-coverage/ancs_client_test 932b60725aSMilanka Ringwald build-coverage/device_information_service_client_test 940f7fd6c1SMilanka Ringwald 950f7fd6c1SMilanka Ringwaldclean: 960f7fd6c1SMilanka Ringwald rm -rf build-coverage build-asan 970f7fd6c1SMilanka Ringwald 98