176181014SMilanka Ringwald# Requirements: cpputest.github.io 276181014SMilanka Ringwald 376181014SMilanka RingwaldBTSTACK_ROOT = ../.. 476181014SMilanka Ringwald 5*98e87e77SMatthias Ringwald# CppuTest from pkg-config 6*98e87e77SMatthias RingwaldCFLAGS += ${shell pkg-config --cflags CppuTest} 7*98e87e77SMatthias RingwaldLDFLAGS += ${shell pkg-config --libs CppuTest} 8*98e87e77SMatthias Ringwald 9*98e87e77SMatthias 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 \ 2776181014SMilanka Ringwald battery_service_server.c \ 2876181014SMilanka Ringwald btstack_linked_list.c \ 2976181014SMilanka Ringwald btstack_memory.c \ 3076181014SMilanka Ringwald btstack_memory_pool.c \ 3176181014SMilanka Ringwald btstack_util.c \ 3276181014SMilanka Ringwald cycling_power_service_server.c \ 3376181014SMilanka Ringwald cycling_speed_and_cadence_service_server.c \ 3476181014SMilanka Ringwald device_information_service_server.c \ 3576181014SMilanka Ringwald hci_dump.c \ 3676181014SMilanka Ringwald heart_rate_service_server.c \ 3776181014SMilanka Ringwald hids_device.c \ 3876181014SMilanka Ringwald mock_att_server.c \ 3976181014SMilanka Ringwald nordic_spp_service_server.c \ 4076181014SMilanka Ringwald tx_power_service_server.c \ 4176181014SMilanka Ringwald ublox_spp_service_server.c \ 4276181014SMilanka Ringwald 4376181014SMilanka Ringwald 4476181014SMilanka RingwaldCFLAGS_COVERAGE = ${CFLAGS} -Ibuild-coverage -fprofile-arcs -ftest-coverage 4576181014SMilanka RingwaldCFLAGS_ASAN = ${CFLAGS} -Ibuild-asan -fsanitize=address -DHAVE_ASSERT 4676181014SMilanka Ringwald 4776181014SMilanka RingwaldLDFLAGS += -lCppUTest -lCppUTestExt 4876181014SMilanka RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 4976181014SMilanka RingwaldLDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 5076181014SMilanka Ringwald 5176181014SMilanka RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 5276181014SMilanka RingwaldCOMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 5376181014SMilanka Ringwald 5476181014SMilanka Ringwald 5576181014SMilanka Ringwaldall: build-coverage/battery_service_server_test build-asan/battery_service_server_test \ 5676181014SMilanka Ringwald build-coverage/device_information_service_server_test build-asan/device_information_service_server_test \ 5776181014SMilanka Ringwald build-coverage/tx_power_service_server_test build-asan/tx_power_service_server_test \ 5876181014SMilanka Ringwald build-coverage/bond_management_service_server_test build-asan/bond_management_service_server_test \ 59c435f47bSMilanka Ringwald build-coverage/heart_rate_service_server_test build-asan/heart_rate_service_server_test \ 6076181014SMilanka Ringwald 6176181014SMilanka Ringwaldbuild-%: 6276181014SMilanka Ringwald mkdir -p $@ 6376181014SMilanka Ringwald 6476181014SMilanka Ringwaldbuild-%/battery_service_server_test.h: battery_service_server_test.gatt | build-% 6576181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 6676181014SMilanka Ringwald 6776181014SMilanka Ringwaldbuild-%/device_information_service_server_test.h: device_information_service_server_test.gatt| build-% 6876181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 6976181014SMilanka Ringwald 7076181014SMilanka Ringwaldbuild-%/tx_power_service_server_test.h: tx_power_service_server_test.gatt| build-% 7176181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 7276181014SMilanka Ringwald 7376181014SMilanka Ringwaldbuild-%/bond_management_service_server_test.h: bond_management_service_server_test.gatt| build-% 7476181014SMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 7576181014SMilanka Ringwald 76c435f47bSMilanka Ringwaldbuild-%/heart_rate_service_server_test.h: heart_rate_service_server_test.gatt| build-% 77c435f47bSMilanka Ringwald python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ 78c435f47bSMilanka Ringwald 7976181014SMilanka Ringwaldbuild-coverage/%.o: %.c | build-coverage 8076181014SMilanka Ringwald ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 8176181014SMilanka Ringwald 8276181014SMilanka Ringwaldbuild-coverage/%.o: %.cpp | build-coverage 8376181014SMilanka Ringwald ${CXX} -c $(CFLAGS_COVERAGE) $< -o $@ 8476181014SMilanka Ringwald 8576181014SMilanka Ringwaldbuild-asan/%.o: %.c | build-asan 8676181014SMilanka Ringwald ${CC} -c $(CFLAGS_ASAN) $< -o $@ 8776181014SMilanka Ringwald 8876181014SMilanka Ringwaldbuild-asan/%.o: %.cpp | build-asan 8976181014SMilanka Ringwald ${CXX} -c $(CFLAGS_ASAN) $< -o $@ 9076181014SMilanka Ringwald 9176181014SMilanka 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 9276181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/battery_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 9376181014SMilanka Ringwald 9476181014SMilanka 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 9576181014SMilanka Ringwald ${CXX} $(filter-out build-asan/battery_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 9676181014SMilanka Ringwald 9776181014SMilanka 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 9876181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/device_information_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 9976181014SMilanka Ringwald 10076181014SMilanka 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 10176181014SMilanka Ringwald ${CXX} $(filter-out build-asan/device_information_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 10276181014SMilanka Ringwald 10376181014SMilanka 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 10476181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/tx_power_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 10576181014SMilanka Ringwald 10676181014SMilanka 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 10776181014SMilanka Ringwald ${CXX} $(filter-out build-asan/tx_power_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 10876181014SMilanka Ringwald 10976181014SMilanka 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 11076181014SMilanka Ringwald ${CXX} $(filter-out build-coverage/bond_management_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 11176181014SMilanka Ringwald 11276181014SMilanka 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 11376181014SMilanka Ringwald ${CXX} $(filter-out build-asan/bond_management_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 11476181014SMilanka Ringwald 115c435f47bSMilanka 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 116c435f47bSMilanka Ringwald ${CXX} $(filter-out build-coverage/heart_rate_service_server_test.h,$^) ${LDFLAGS_COVERAGE} -o $@ 117c435f47bSMilanka Ringwald 118c435f47bSMilanka 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 119c435f47bSMilanka Ringwald ${CXX} $(filter-out build-asan/heart_rate_service_server_test.h,$^) ${LDFLAGS_ASAN} -o $@ 120c435f47bSMilanka Ringwald 12176181014SMilanka Ringwaldtest: all 12276181014SMilanka Ringwald build-asan/battery_service_server_test 12376181014SMilanka Ringwald build-asan/device_information_service_server_test 12476181014SMilanka Ringwald build-asan/tx_power_service_server_test 12576181014SMilanka Ringwald build-asan/bond_management_service_server_test 126c435f47bSMilanka Ringwald build-asan/heart_rate_service_server_test 12776181014SMilanka Ringwald 12876181014SMilanka Ringwaldcoverage: all 12976181014SMilanka Ringwald rm -f build-coverage/*.gcda 13076181014SMilanka Ringwald build-coverage/battery_service_server_test 13176181014SMilanka Ringwald build-coverage/device_information_service_server_test 13276181014SMilanka Ringwald build-coverage/tx_power_service_server_test 13376181014SMilanka Ringwald build-coverage/bond_management_service_server_test 134c435f47bSMilanka Ringwald build-coverage/heart_rate_service_server_test 13576181014SMilanka Ringwald 13676181014SMilanka Ringwaldclean: 13776181014SMilanka Ringwald rm -rf build-coverage build-asan 13876181014SMilanka Ringwald 139