1353d71a9SMatthias Ringwald# Requirements: cpputest.github.io 2353d71a9SMatthias Ringwald 3353d71a9SMatthias RingwaldBTSTACK_ROOT = ../.. 4353d71a9SMatthias 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 -g -Wall -Wnarrowing -Wconversion-null 10e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src 11e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/embedded 12e0ff5d41SMatthias RingwaldCFLAGS += -I. 13353d71a9SMatthias Ringwald 14713ac744SMatthias RingwaldCFLAGS += -DHAVE_HAL_AUDIO 15713ac744SMatthias Ringwald 16cd56fb44SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage 1771d52576SMatthias RingwaldCFLAGS_ASAN = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT 18cd56fb44SMatthias Ringwald 19353d71a9SMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt 20cd56fb44SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 21cd56fb44SMatthias RingwaldLDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 22353d71a9SMatthias Ringwald 23353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src 24353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble 25353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/embedded 26713ac744SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/freertos 27353d71a9SMatthias Ringwald 28353d71a9SMatthias RingwaldCOMMON = \ 291f56122cSMatthias Ringwald btstack_linked_list.c \ 30516e2db7SMilanka Ringwald btstack_memory.c \ 31a288e044SMatthias Ringwald btstack_run_loop.c \ 32a288e044SMatthias Ringwald btstack_util.c \ 33353d71a9SMatthias Ringwald hci_dump.c \ 34c9f0088dSMilanka Ringwald l2cap_signaling.c \ 3522b6e67bSMilanka Ringwald hci_cmd.c \ 3689d7e14eSMatthias Ringwald hci_event.c \ 371f56122cSMatthias Ringwald 38cd56fb44SMatthias RingwaldFREERTOS = \ 39cd56fb44SMatthias Ringwald btstack_run_loop_freertos.c \ 40353d71a9SMatthias Ringwald 41cd56fb44SMatthias RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 42cd56fb44SMatthias RingwaldCOMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 43713ac744SMatthias Ringwald 44cd56fb44SMatthias RingwaldFREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o)) 45cd56fb44SMatthias RingwaldFREERTOS_OBJ_ASAN = $(addprefix build-asan/, $(FREERTOS:.c=.o)) 46353d71a9SMatthias Ringwald 47a93e262fSMilanka Ringwaldall: build-coverage/embedded_test build-asan/embedded_test \ 48a93e262fSMilanka Ringwald build-coverage/run_loop_base_test build-asan/run_loop_base_test \ 49a93e262fSMilanka Ringwald build-coverage/btstack_util_test build-asan/btstack_util_test \ 50a93e262fSMilanka Ringwald build-coverage/l2cap_le_signaling_test build-asan/l2cap_le_signaling_test \ 51a93e262fSMilanka Ringwald build-coverage/hci_cmd_test build-asan/hci_cmd_test \ 52798de539SMatthias Ringwald build-coverage/hci_dump_test build-asan/hci_dump_test \ 5389d7e14eSMatthias Ringwald build-coverage/hci_event_test build-asan/hci_event_test \ 54a93e262fSMilanka Ringwald build-coverage/freertos_test build-asan/freertos_test \ 553d87570fSMatthias Ringwald 56cd56fb44SMatthias Ringwaldbuild-%: 57cd56fb44SMatthias Ringwald mkdir -p $@ 58353d71a9SMatthias Ringwald 59cd56fb44SMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage 60cd56fb44SMatthias Ringwald ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 61cd56fb44SMatthias Ringwald 621d3bd1e5SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage 631d3bd1e5SMatthias Ringwald ${CXX} -c $(CFLAGS_COVERAGE) $< -o $@ 641d3bd1e5SMatthias Ringwald 65cd56fb44SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan 66cd56fb44SMatthias Ringwald ${CC} -c $(CFLAGS_ASAN) $< -o $@ 67cd56fb44SMatthias Ringwald 681d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan 691d3bd1e5SMatthias Ringwald ${CXX} -c $(CFLAGS_ASAN) $< -o $@ 701d3bd1e5SMatthias Ringwald 71cd56fb44SMatthias Ringwald 72a93e262fSMilanka Ringwaldbuild-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_run_loop_embedded.o build-coverage/embedded_test.o | build-coverage 731d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 74cd56fb44SMatthias Ringwald 75a93e262fSMilanka Ringwaldbuild-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o build-asan/btstack_run_loop_embedded.o | build-asan 761d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 77a93e262fSMilanka Ringwald 78a93e262fSMilanka Ringwald 7938b632b5SMatthias Ringwaldbuild-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage 801d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 81cd56fb44SMatthias Ringwald 8238b632b5SMatthias Ringwaldbuild-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan 831d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 84713ac744SMatthias Ringwald 85a93e262fSMilanka Ringwald 86a93e262fSMilanka Ringwaldbuild-coverage/run_loop_base_test: ${COMMON_OBJ_COVERAGE} build-coverage/run_loop_base_test.o | build-coverage 871d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 88a93e262fSMilanka Ringwald 89a93e262fSMilanka Ringwaldbuild-asan/run_loop_base_test: ${COMMON_OBJ_ASAN} build-asan/run_loop_base_test.o | build-asan 901d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 91a93e262fSMilanka Ringwald 92a93e262fSMilanka Ringwald 93a93e262fSMilanka Ringwaldbuild-coverage/btstack_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_util_test.o | build-coverage 941d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 95a93e262fSMilanka Ringwald 96a93e262fSMilanka Ringwaldbuild-asan/btstack_util_test: ${COMMON_OBJ_ASAN} build-asan/btstack_util_test.o | build-asan 971d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 98a93e262fSMilanka Ringwald 99a93e262fSMilanka Ringwald 100a93e262fSMilanka Ringwaldbuild-coverage/l2cap_le_signaling_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_le_signaling_test.o | build-coverage 1011d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 102a93e262fSMilanka Ringwald 103a93e262fSMilanka Ringwaldbuild-asan/l2cap_le_signaling_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_le_signaling_test.o | build-asan 1041d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 105a93e262fSMilanka Ringwald 106a93e262fSMilanka Ringwald 107a93e262fSMilanka Ringwaldbuild-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.o | build-coverage 1081d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 109a93e262fSMilanka Ringwald 110a93e262fSMilanka Ringwaldbuild-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan 1111d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 112a93e262fSMilanka Ringwald 113798de539SMatthias Ringwaldbuild-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage 1141d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 115798de539SMatthias Ringwald 116798de539SMatthias Ringwaldbuild-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan 1171d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 118a93e262fSMilanka Ringwald 11989d7e14eSMatthias Ringwaldbuild-coverage/hci_event_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_event_test.o | build-coverage 12089d7e14eSMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 12189d7e14eSMatthias Ringwald 12289d7e14eSMatthias Ringwaldbuild-asan/hci_event_test: ${COMMON_OBJ_ASAN} build-asan/hci_event_test.o | build-asan 12389d7e14eSMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 12489d7e14eSMatthias Ringwald 125353d71a9SMatthias Ringwaldtest: all 126cd56fb44SMatthias Ringwald build-asan/embedded_test 127cd56fb44SMatthias Ringwald build-asan/freertos_test 128a93e262fSMilanka Ringwald build-asan/run_loop_base_test 129a93e262fSMilanka Ringwald build-asan/btstack_util_test 130a93e262fSMilanka Ringwald build-asan/l2cap_le_signaling_test 131a93e262fSMilanka Ringwald build-asan/hci_cmd_test 132798de539SMatthias Ringwald build-asan/hci_dump_test 13389d7e14eSMatthias Ringwald build-asan/hci_event_test 1343d87570fSMatthias Ringwald 1353d87570fSMatthias Ringwaldcoverage: all 136cd56fb44SMatthias Ringwald rm -f build-coverage/*.gcda 1373d87570fSMatthias Ringwald build-coverage/embedded_test 1383d87570fSMatthias Ringwald build-coverage/freertos_test 139a93e262fSMilanka Ringwald build-coverage/run_loop_base_test 140a93e262fSMilanka Ringwald build-coverage/btstack_util_test 141a93e262fSMilanka Ringwald build-coverage/l2cap_le_signaling_test 142a93e262fSMilanka Ringwald build-coverage/hci_cmd_test 143798de539SMatthias Ringwald build-coverage/hci_dump_test 14489d7e14eSMatthias Ringwald build-coverage/hci_event_test 145353d71a9SMatthias Ringwald 146353d71a9SMatthias Ringwaldclean: 147a93e262fSMilanka Ringwald rm -rf build-coverage build-asan *.dSYM 148