176181014SMilanka Ringwald# Requirements: cpputest.github.io 276181014SMilanka Ringwald 376181014SMilanka RingwaldBTSTACK_ROOT = ../.. 476181014SMilanka 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 -x c++ -g -Wall -Wnarrowing -Wconversion-null 1076181014SMilanka RingwaldCFLAGS += -I../ 1176181014SMilanka Ringwald 1276181014SMilanka RingwaldCFLAGS += -I${BTSTACK_ROOT}/src 1376181014SMilanka RingwaldCFLAGS += -I${BTSTACK_ROOT}/test/mock 1476181014SMilanka RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael 1576181014SMilanka Ringwald 1676181014SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/src 1776181014SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/src/ble 1876181014SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/src/ble/gatt-service 1970cea164SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/le-audio/gatt-service 2076181014SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/platform/posix 2176181014SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/rijndael 2276181014SMilanka RingwaldVPATH += ${BTSTACK_ROOT}/test/mock 2376181014SMilanka Ringwald 2476181014SMilanka RingwaldCOMMON = \ 2576181014SMilanka Ringwald ad_parser.c \ 2676181014SMilanka Ringwald att_db.c \ 27*ec4690afSMatthias Ringwald btstack_hid_parser.c \ 2876181014SMilanka Ringwald battery_service_server.c \ 2976181014SMilanka Ringwald btstack_linked_list.c \ 3076181014SMilanka Ringwald btstack_memory.c \ 3176181014SMilanka Ringwald btstack_memory_pool.c \ 3276181014SMilanka Ringwald btstack_util.c \ 3376181014SMilanka Ringwald cycling_power_service_server.c \ 3476181014SMilanka Ringwald cycling_speed_and_cadence_service_server.c \ 3576181014SMilanka Ringwald device_information_service_server.c \ 3676181014SMilanka Ringwald hci_dump.c \ 3776181014SMilanka Ringwald heart_rate_service_server.c \ 3876181014SMilanka Ringwald hids_device.c \ 3976181014SMilanka Ringwald mock_att_server.c \ 4076181014SMilanka Ringwald nordic_spp_service_server.c \ 4176181014SMilanka Ringwald tx_power_service_server.c \ 4276181014SMilanka Ringwald ublox_spp_service_server.c \ 4376181014SMilanka Ringwald 4476181014SMilanka Ringwald 4576181014SMilanka RingwaldCFLAGS_COVERAGE = ${CFLAGS} -Ibuild-coverage -fprofile-arcs -ftest-coverage 4676181014SMilanka RingwaldCFLAGS_ASAN = ${CFLAGS} -Ibuild-asan -fsanitize=address -DHAVE_ASSERT 4776181014SMilanka Ringwald 4876181014SMilanka RingwaldLDFLAGS += -lCppUTest -lCppUTestExt 4976181014SMilanka RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 5076181014SMilanka RingwaldLDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 5176181014SMilanka Ringwald 5276181014SMilanka RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 5376181014SMilanka RingwaldCOMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 5476181014SMilanka Ringwald 5576181014SMilanka Ringwald 5676181014SMilanka Ringwaldall: build-coverage/battery_service_server_test build-asan/battery_service_server_test \ 5776181014SMilanka Ringwald build-coverage/device_information_service_server_test build-asan/device_information_service_server_test \ 5876181014SMilanka Ringwald build-coverage/tx_power_service_server_test build-asan/tx_power_service_server_test \ 5976181014SMilanka Ringwald build-coverage/bond_management_service_server_test build-asan/bond_management_service_server_test \ 60c435f47bSMilanka Ringwald build-coverage/heart_rate_service_server_test build-asan/heart_rate_service_server_test \ 6176181014SMilanka Ringwald 6276181014SMilanka Ringwaldbuild-%: 6376181014SMilanka Ringwald mkdir -p $@ 6476181014SMilanka Ringwald 6576181014SMilanka Ringwaldbuild-%/battery_service_server_test.h: battery_service_server_test.gatt | build-% 6676181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 6776181014SMilanka Ringwald 6876181014SMilanka Ringwaldbuild-%/device_information_service_server_test.h: device_information_service_server_test.gatt| build-% 6976181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 7076181014SMilanka Ringwald 7176181014SMilanka Ringwaldbuild-%/tx_power_service_server_test.h: tx_power_service_server_test.gatt| build-% 7276181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 7376181014SMilanka Ringwald 7476181014SMilanka Ringwaldbuild-%/bond_management_service_server_test.h: bond_management_service_server_test.gatt| build-% 7576181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 7676181014SMilanka Ringwald 77c435f47bSMilanka Ringwaldbuild-%/heart_rate_service_server_test.h: heart_rate_service_server_test.gatt| build-% 78c435f47bSMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 79c435f47bSMilanka Ringwald 8076181014SMilanka Ringwaldbuild-coverage/%.o: %.c | build-coverage 8176181014SMilanka Ringwald ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 8276181014SMilanka Ringwald 8376181014SMilanka Ringwaldbuild-coverage/%.o: %.cpp | build-coverage 8476181014SMilanka Ringwald ${CXX} -c $(CFLAGS_COVERAGE) $< -o $@ 8576181014SMilanka Ringwald 8676181014SMilanka Ringwaldbuild-asan/%.o: %.c | build-asan 8776181014SMilanka Ringwald ${CC} -c $(CFLAGS_ASAN) $< -o $@ 8876181014SMilanka Ringwald 8976181014SMilanka Ringwaldbuild-asan/%.o: %.cpp | build-asan 9076181014SMilanka Ringwald ${CXX} -c $(CFLAGS_ASAN) $< -o $@ 9176181014SMilanka Ringwald 9276181014SMilanka Ringwaldbuild-coverage/battery_service_server_test: build-coverage/battery_service_server_test.h ${COMMON_OBJ_COVERAGE} build-coverage/battery_service_server_test.o | build-coverage 9376181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/battery_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 9476181014SMilanka Ringwald 9576181014SMilanka Ringwaldbuild-asan/battery_service_server_test: build-asan/battery_service_server_test.h ${COMMON_OBJ_ASAN} build-asan/battery_service_server_test.o | build-asan 9676181014SMilanka Ringwald ${CXX} $(filter-out build-asan/battery_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 9776181014SMilanka Ringwald 9876181014SMilanka Ringwaldbuild-coverage/device_information_service_server_test: build-coverage/device_information_service_server_test.h ${COMMON_OBJ_COVERAGE} build-coverage/device_information_service_server_test.o | build-coverage 9976181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/device_information_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 10076181014SMilanka Ringwald 10176181014SMilanka Ringwaldbuild-asan/device_information_service_server_test: build-asan/device_information_service_server_test.h ${COMMON_OBJ_ASAN} build-asan/device_information_service_server_test.o | build-asan 10276181014SMilanka Ringwald ${CXX} $(filter-out build-asan/device_information_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 10376181014SMilanka Ringwald 10476181014SMilanka Ringwaldbuild-coverage/tx_power_service_server_test: build-coverage/tx_power_service_server_test.h ${COMMON_OBJ_COVERAGE} build-coverage/tx_power_service_server_test.o | build-coverage 10576181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/tx_power_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 10676181014SMilanka Ringwald 10776181014SMilanka Ringwaldbuild-asan/tx_power_service_server_test: build-asan/tx_power_service_server_test.h ${COMMON_OBJ_ASAN} build-asan/tx_power_service_server_test.o | build-asan 10876181014SMilanka Ringwald ${CXX} $(filter-out build-asan/tx_power_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 10976181014SMilanka Ringwald 11076181014SMilanka Ringwaldbuild-coverage/bond_management_service_server_test: build-coverage/bond_management_service_server_test.h ${COMMON_OBJ_COVERAGE} build-coverage/bond_management_service_server.o build-coverage/bond_management_service_server_test.o | build-coverage 11176181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/bond_management_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 11276181014SMilanka Ringwald 11376181014SMilanka Ringwaldbuild-asan/bond_management_service_server_test: build-asan/bond_management_service_server_test.h ${COMMON_OBJ_ASAN} build-asan/bond_management_service_server.o build-asan/bond_management_service_server_test.o | build-asan 11476181014SMilanka Ringwald ${CXX} $(filter-out build-asan/bond_management_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 11576181014SMilanka Ringwald 116c435f47bSMilanka Ringwaldbuild-coverage/heart_rate_service_server_test: build-coverage/heart_rate_service_server_test.h ${COMMON_OBJ_COVERAGE} build-coverage/heart_rate_service_server.o build-coverage/heart_rate_service_server_test.o | build-coverage 117c435f47bSMilanka Ringwald ${CXX} $(filter-out build-coverage/heart_rate_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 118c435f47bSMilanka Ringwald 119c435f47bSMilanka Ringwaldbuild-asan/heart_rate_service_server_test: build-asan/heart_rate_service_server_test.h ${COMMON_OBJ_ASAN} build-asan/heart_rate_service_server.o build-asan/heart_rate_service_server_test.o | build-asan 120c435f47bSMilanka Ringwald ${CXX} $(filter-out build-asan/heart_rate_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 121c435f47bSMilanka Ringwald 12276181014SMilanka Ringwaldtest: all 12376181014SMilanka Ringwald build-asan/battery_service_server_test 12476181014SMilanka Ringwald build-asan/device_information_service_server_test 12576181014SMilanka Ringwald build-asan/tx_power_service_server_test 12676181014SMilanka Ringwald build-asan/bond_management_service_server_test 127c435f47bSMilanka Ringwald build-asan/heart_rate_service_server_test 12876181014SMilanka Ringwald 12976181014SMilanka Ringwaldcoverage: all 13076181014SMilanka Ringwald rm -f build-coverage/*.gcda 13176181014SMilanka Ringwald build-coverage/battery_service_server_test 13276181014SMilanka Ringwald build-coverage/device_information_service_server_test 13376181014SMilanka Ringwald build-coverage/tx_power_service_server_test 13476181014SMilanka Ringwald build-coverage/bond_management_service_server_test 135c435f47bSMilanka Ringwald build-coverage/heart_rate_service_server_test 13676181014SMilanka Ringwald 13776181014SMilanka Ringwaldclean: 13876181014SMilanka Ringwald rm -rf build-coverage build-asan 13976181014SMilanka Ringwald 140