1353d71a9SMatthias Ringwald# Requirements: cpputest.github.io 2353d71a9SMatthias Ringwald 3353d71a9SMatthias RingwaldBTSTACK_ROOT = ../.. 4353d71a9SMatthias Ringwald 5*1d3bd1e5SMatthias RingwaldCFLAGS = -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null 6e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src 7e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/embedded 8e0ff5d41SMatthias RingwaldCFLAGS += -I. 9353d71a9SMatthias Ringwald 10713ac744SMatthias RingwaldCFLAGS += -DHAVE_HAL_AUDIO 11713ac744SMatthias Ringwald 12cd56fb44SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage 1371d52576SMatthias RingwaldCFLAGS_ASAN = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT 14cd56fb44SMatthias Ringwald 15353d71a9SMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt 16cd56fb44SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 17cd56fb44SMatthias RingwaldLDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 18353d71a9SMatthias Ringwald 19353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src 20353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble 21353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/embedded 22713ac744SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/freertos 23353d71a9SMatthias Ringwald 24353d71a9SMatthias RingwaldCOMMON = \ 251f56122cSMatthias Ringwald btstack_linked_list.c \ 26516e2db7SMilanka Ringwald btstack_memory.c \ 27a288e044SMatthias Ringwald btstack_run_loop.c \ 28a288e044SMatthias Ringwald btstack_util.c \ 29353d71a9SMatthias Ringwald hci_dump.c \ 30c9f0088dSMilanka Ringwald l2cap_signaling.c \ 3122b6e67bSMilanka Ringwald hci_cmd.c \ 321f56122cSMatthias Ringwald 33cd56fb44SMatthias RingwaldFREERTOS = \ 34cd56fb44SMatthias Ringwald btstack_run_loop_freertos.c \ 35353d71a9SMatthias Ringwald 36cd56fb44SMatthias RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 37cd56fb44SMatthias RingwaldCOMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 38713ac744SMatthias Ringwald 39cd56fb44SMatthias RingwaldFREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o)) 40cd56fb44SMatthias RingwaldFREERTOS_OBJ_ASAN = $(addprefix build-asan/, $(FREERTOS:.c=.o)) 41353d71a9SMatthias Ringwald 42a93e262fSMilanka Ringwaldall: build-coverage/embedded_test build-asan/embedded_test \ 43a93e262fSMilanka Ringwald build-coverage/run_loop_base_test build-asan/run_loop_base_test \ 44a93e262fSMilanka Ringwald build-coverage/btstack_util_test build-asan/btstack_util_test \ 45a93e262fSMilanka Ringwald build-coverage/l2cap_le_signaling_test build-asan/l2cap_le_signaling_test \ 46a93e262fSMilanka Ringwald build-coverage/hci_cmd_test build-asan/hci_cmd_test \ 47798de539SMatthias Ringwald build-coverage/hci_dump_test build-asan/hci_dump_test \ 48a93e262fSMilanka Ringwald build-coverage/freertos_test build-asan/freertos_test \ 493d87570fSMatthias Ringwald 50cd56fb44SMatthias Ringwaldbuild-%: 51cd56fb44SMatthias Ringwald mkdir -p $@ 52353d71a9SMatthias Ringwald 53cd56fb44SMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage 54cd56fb44SMatthias Ringwald ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 55cd56fb44SMatthias Ringwald 56*1d3bd1e5SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage 57*1d3bd1e5SMatthias Ringwald ${CXX} -c $(CFLAGS_COVERAGE) $< -o $@ 58*1d3bd1e5SMatthias Ringwald 59cd56fb44SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan 60cd56fb44SMatthias Ringwald ${CC} -c $(CFLAGS_ASAN) $< -o $@ 61cd56fb44SMatthias Ringwald 62*1d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan 63*1d3bd1e5SMatthias Ringwald ${CXX} -c $(CFLAGS_ASAN) $< -o $@ 64*1d3bd1e5SMatthias Ringwald 65cd56fb44SMatthias Ringwald 66a93e262fSMilanka Ringwaldbuild-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_run_loop_embedded.o build-coverage/embedded_test.o | build-coverage 67*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 68cd56fb44SMatthias Ringwald 69a93e262fSMilanka Ringwaldbuild-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o build-asan/btstack_run_loop_embedded.o | build-asan 70*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 71a93e262fSMilanka Ringwald 72a93e262fSMilanka Ringwald 7338b632b5SMatthias Ringwaldbuild-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage 74*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 75cd56fb44SMatthias Ringwald 7638b632b5SMatthias Ringwaldbuild-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan 77*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 78713ac744SMatthias Ringwald 79a93e262fSMilanka Ringwald 80a93e262fSMilanka Ringwaldbuild-coverage/run_loop_base_test: ${COMMON_OBJ_COVERAGE} build-coverage/run_loop_base_test.o | build-coverage 81*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 82a93e262fSMilanka Ringwald 83a93e262fSMilanka Ringwaldbuild-asan/run_loop_base_test: ${COMMON_OBJ_ASAN} build-asan/run_loop_base_test.o | build-asan 84*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 85a93e262fSMilanka Ringwald 86a93e262fSMilanka Ringwald 87a93e262fSMilanka Ringwaldbuild-coverage/btstack_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_util_test.o | build-coverage 88*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 89a93e262fSMilanka Ringwald 90a93e262fSMilanka Ringwaldbuild-asan/btstack_util_test: ${COMMON_OBJ_ASAN} build-asan/btstack_util_test.o | build-asan 91*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 92a93e262fSMilanka Ringwald 93a93e262fSMilanka Ringwald 94a93e262fSMilanka Ringwaldbuild-coverage/l2cap_le_signaling_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_le_signaling_test.o | build-coverage 95*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 96a93e262fSMilanka Ringwald 97a93e262fSMilanka Ringwaldbuild-asan/l2cap_le_signaling_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_le_signaling_test.o | build-asan 98*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 99a93e262fSMilanka Ringwald 100a93e262fSMilanka Ringwald 101a93e262fSMilanka Ringwaldbuild-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.o | build-coverage 102*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 103a93e262fSMilanka Ringwald 104a93e262fSMilanka Ringwaldbuild-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan 105*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 106a93e262fSMilanka Ringwald 107798de539SMatthias Ringwaldbuild-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage 108*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 109798de539SMatthias Ringwald 110798de539SMatthias Ringwaldbuild-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan 111*1d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 112a93e262fSMilanka Ringwald 113353d71a9SMatthias Ringwaldtest: all 114cd56fb44SMatthias Ringwald build-asan/embedded_test 115cd56fb44SMatthias Ringwald build-asan/freertos_test 116a93e262fSMilanka Ringwald build-asan/run_loop_base_test 117a93e262fSMilanka Ringwald build-asan/btstack_util_test 118a93e262fSMilanka Ringwald build-asan/l2cap_le_signaling_test 119a93e262fSMilanka Ringwald build-asan/hci_cmd_test 120798de539SMatthias Ringwald build-asan/hci_dump_test 1213d87570fSMatthias Ringwald 1223d87570fSMatthias Ringwaldcoverage: all 123cd56fb44SMatthias Ringwald rm -f build-coverage/*.gcda 1243d87570fSMatthias Ringwald build-coverage/embedded_test 1253d87570fSMatthias Ringwald build-coverage/freertos_test 126a93e262fSMilanka Ringwald build-coverage/run_loop_base_test 127a93e262fSMilanka Ringwald build-coverage/btstack_util_test 128a93e262fSMilanka Ringwald build-coverage/l2cap_le_signaling_test 129a93e262fSMilanka Ringwald build-coverage/hci_cmd_test 130798de539SMatthias Ringwald build-coverage/hci_dump_test 131353d71a9SMatthias Ringwald 132353d71a9SMatthias Ringwaldclean: 133a93e262fSMilanka Ringwald rm -rf build-coverage build-asan *.dSYM 134