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_base.c \ 20 btstack_run_loop_posix.c \ 21 btstack_util.c \ 22 hci.c \ 23 hci_cmd.c \ 24 hci_dump.c \ 25 l2cap.c \ 26 l2cap_signaling.c \ 27 rfcomm.c \ 28 sdp_client.c \ 29 sdp_util.c \ 30 31 32MOCK = \ 33 mock.c \ 34 test_sequences.c \ 35 btstack_link_key_db_memory.c \ 36 btstack_linked_list.c \ 37 btstack_memory.c \ 38 btstack_memory_pool.c \ 39 btstack_util.c \ 40 hci_cmd.c \ 41 hci_dump.c \ 42 sdp_util.c \ 43 44CFLAGS = -g -Wall -Wmissing-prototypes -Wnarrowing 45# CFLAGS += -Werror 46CFLAGS += -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/src/classic -I${POSIX_ROOT} -I${BTSTACK_ROOT}/include 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-asan/%.o: %.c | build-asan 79 ${CC} -c $(CFLAGS_ASAN) $< -o $@ 80 81build-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 82 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 83 84build-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 85 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 86 87build-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 88 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 89 90build-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 91 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 92 93build-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 94 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 95 96 97build-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 98 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 99 100build-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 101 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 102 103build-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 104 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 105 106build-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 107 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 108 109build-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 110 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 111 112build-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 113 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 114 115test: all 116 mkdir -p results 117 build-asan/hfp_at_parser_test 118 build-asan/hfp_ag_client_test 119 build-asan/hfp_hf_client_test 120 build-asan/cvsd_plc_test 121 build-asan/hfp_link_settings_test 122 123coverage: all 124 mkdir -p results 125 build-coverage/hfp_at_parser_test 126 build-coverage/hfp_ag_client_test 127 build-coverage/hfp_hf_client_test 128 build-coverage/cvsd_plc_test 129 build-coverage/hfp_link_settings_test 130 131pklg-test: build-asan/pklg_cvsd_test 132 build-asan/pklg_cvsd_test pklg/test1 133 build-asan/pklg_cvsd_test pklg/test2 134 build-asan/pklg_cvsd_test pklg/test3 135 build-asan/pklg_cvsd_test pklg/test4 136 build-asan/pklg_cvsd_test pklg/test5 137 138clean: 139 rm -rf build-coverage build-asan 140 rm -rf *.wav results/* pklg/*.wav 141