1# Makefile for libusb based PTS tests 2 3BTSTACK_ROOT = ../.. 4POSIX_ROOT= ${BTSTACK_ROOT}/platform/posix 5 6# CppuTest from pkg-config 7CFLAGS += ${shell pkg-config --cflags CppuTest} 8LDFLAGS += ${shell pkg-config --libs CppuTest} 9 10include ${BTSTACK_ROOT}/example/Makefile.inc 11 12COMMON = \ 13 ad_parser.c \ 14 sdp_server.c \ 15 sdp_client_rfcomm.c \ 16 btstack_link_key_db_memory.c \ 17 btstack_linked_list.c \ 18 btstack_memory.c \ 19 btstack_memory_pool.c \ 20 btstack_run_loop.c \ 21 btstack_run_loop_posix.c \ 22 btstack_util.c \ 23 hci.c \ 24 hci_cmd.c \ 25 hci_dump.c \ 26 l2cap.c \ 27 l2cap_signaling.c \ 28 rfcomm.c \ 29 sdp_client.c \ 30 sdp_util.c \ 31 32 33MOCK = \ 34 mock.c \ 35 test_sequences.c \ 36 btstack_link_key_db_memory.c \ 37 btstack_linked_list.c \ 38 btstack_memory.c \ 39 btstack_memory_pool.c \ 40 btstack_util.c \ 41 hci_cmd.c \ 42 hci_dump.c \ 43 sdp_util.c \ 44 45CFLAGS += -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null 46CFLAGS += -I. -I../ 47CFLAGS += -I${BTSTACK_ROOT}/src 48CFLAGS += -I${BTSTACK_ROOT}/src/classic 49CFLAGS += -I${BTSTACK_ROOT}/platform/posix 50# CFLAGS += -D OCTAVE_OUTPUT 51 52CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage 53CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT 54 55LDFLAGS += -lCppUTest -lCppUTestExt 56LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 57LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 58 59COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 60COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 61MOCK_OBJ_COVERAGE = $(addprefix build-coverage/,$(MOCK:.c=.o)) 62MOCK_OBJ_ASAN = $(addprefix build-asan/, $(MOCK:.c=.o)) 63 64 65# CC = gcc-fsf-4.9 66VPATH += ${BTSTACK_ROOT}/src 67VPATH += ${BTSTACK_ROOT}/src/classic 68VPATH += ${BTSTACK_ROOT}/platform/posix 69 70EXAMPLES = hfp_at_parser_test hfp_ag_client_test hfp_hf_client_test cvsd_plc_test hfp_link_settings_test 71 72all: $(addprefix build-coverage/,${EXAMPLES}) $(addprefix build-asan/,${EXAMPLES}) build-asan/pklg_cvsd_test 73 74build-%: 75 mkdir -p $@ 76 77 78build-coverage/%.o: %.c | build-coverage 79 ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 80 81build-coverage/%.o: %.cpp | build-coverage 82 ${CXX} -c $(CFLAGS_COVERAGE) $< -o $@ 83 84build-asan/%.o: %.c | build-asan 85 ${CC} -c $(CFLAGS_ASAN) $< -o $@ 86 87build-asan/%.o: %.cpp | build-asan 88 ${CXX} -c $(CFLAGS_ASAN) $< -o $@ 89 90build-coverage/hfp_at_parser_test: ${COMMON_OBJ_COVERAGE} build-coverage/hfp_gsm_model.o build-coverage/hfp_ag.o build-coverage/hfp.o build-coverage/hfp_at_parser_test.o | build-coverage 91 ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 92 93build-coverage/hfp_hf_client_test: ${MOCK_OBJ_COVERAGE} build-coverage/hfp_hf.o build-coverage/hfp.o build-coverage/hfp_hf_client_test.o | build-coverage 94 ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 95 96build-coverage/hfp_ag_client_test: ${MOCK_OBJ_COVERAGE} build-coverage/hfp_gsm_model.o build-coverage/hfp_ag.o build-coverage/hfp.o build-coverage/hfp_ag_client_test.o | build-coverage 97 ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 98 99build-coverage/cvsd_plc_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_cvsd_plc.o build-coverage/wav_util.o build-coverage/cvsd_plc_test.o | build-coverage 100 ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 101 102build-coverage/hfp_link_settings_test: ${MOCK_OBJ_COVERAGE} build-coverage/hfp_hf.o build-coverage/hfp.o build-coverage/hfp_link_settings_test.o | build-coverage 103 ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 104 105 106build-asan/hfp_at_parser_test: ${COMMON_OBJ_ASAN} build-asan/hfp_gsm_model.o build-asan/hfp_ag.o build-asan/hfp.o build-asan/hfp_at_parser_test.o | build-asan 107 ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 108 109build-asan/hfp_hf_client_test: ${MOCK_OBJ_ASAN} build-asan/hfp_hf.o build-asan/hfp.o build-asan/hfp_hf_client_test.o | build-asan 110 ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 111 112build-asan/hfp_ag_client_test: ${MOCK_OBJ_ASAN} build-asan/hfp_gsm_model.o build-asan/hfp_ag.o build-asan/hfp.o build-asan/hfp_ag_client_test.o | build-asan 113 ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 114 115build-asan/cvsd_plc_test: ${COMMON_OBJ_ASAN} build-asan/btstack_cvsd_plc.o build-asan/wav_util.o build-asan/cvsd_plc_test.o | build-asan 116 ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 117 118build-asan/hfp_link_settings_test: ${MOCK_OBJ_ASAN} build-asan/hfp_hf.o build-asan/hfp.o build-asan/hfp_link_settings_test.o | build-asan 119 ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 120 121build-asan/pklg_cvsd_test: build-asan/hci_dump.o build-asan/btstack_util.o build-asan/btstack_cvsd_plc.o build-asan/wav_util.o build-asan/pklg_cvsd_test.o | build-asan 122 ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 123 124test: all 125 mkdir -p results 126 build-asan/hfp_at_parser_test 127 build-asan/hfp_ag_client_test 128 build-asan/hfp_hf_client_test 129 build-asan/cvsd_plc_test 130 build-asan/hfp_link_settings_test 131 132coverage: all 133 mkdir -p results 134 build-coverage/hfp_at_parser_test 135 build-coverage/hfp_ag_client_test 136 build-coverage/hfp_hf_client_test 137 build-coverage/cvsd_plc_test 138 build-coverage/hfp_link_settings_test 139 140pklg-test: build-asan/pklg_cvsd_test 141 build-asan/pklg_cvsd_test pklg/test1 142 build-asan/pklg_cvsd_test pklg/test2 143 build-asan/pklg_cvsd_test pklg/test3 144 build-asan/pklg_cvsd_test pklg/test4 145 build-asan/pklg_cvsd_test pklg/test5 146 147clean: 148 rm -rf build-coverage build-asan 149 rm -rf *.wav results/* pklg/*.wav 150