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