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