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 = -g -Wall -Wmissing-prototypes -Wnarrowing 44# CFLAGS += -Werror 45CFLAGS += -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/src/classic -I${POSIX_ROOT} -I${BTSTACK_ROOT}/include 46# CFLAGS += -D OCTAVE_OUTPUT 47 48CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage 49CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT 50 51LDFLAGS += -lCppUTest -lCppUTestExt 52LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 53LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 54 55COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 56COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 57MOCK_OBJ_COVERAGE = $(addprefix build-coverage/,$(MOCK:.c=.o)) 58MOCK_OBJ_ASAN = $(addprefix build-asan/, $(MOCK:.c=.o)) 59 60 61# CC = gcc-fsf-4.9 62VPATH += ${BTSTACK_ROOT}/src 63VPATH += ${BTSTACK_ROOT}/src/classic 64VPATH += ${BTSTACK_ROOT}/platform/posix 65 66EXAMPLES = hfp_at_parser_test hfp_ag_client_test hfp_hf_client_test cvsd_plc_test hfp_link_settings_test 67 68all: $(addprefix build-coverage/,${EXAMPLES}) $(addprefix build-asan/,${EXAMPLES}) build-asan/pklg_cvsd_test 69 70build-%: 71 mkdir -p $@ 72 73 74build-coverage/%.o: %.c | build-coverage 75 ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 76 77build-asan/%.o: %.c | build-asan 78 ${CC} -c $(CFLAGS_ASAN) $< -o $@ 79 80build-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 81 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 82 83build-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 84 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 85 86build-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 87 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 88 89build-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 90 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 91 92build-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 93 ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 94 95 96build-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 97 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 98 99build-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 100 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 101 102build-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 103 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 104 105build-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 106 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 107 108build-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 109 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 110 111build-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 112 ${CC} $^ ${LDFLAGS_ASAN} -o $@ 113 114test: all 115 mkdir -p results 116 build-asan/hfp_at_parser_test 117 build-asan/hfp_ag_client_test 118 build-asan/hfp_hf_client_test 119 build-asan/cvsd_plc_test 120 build-asan/hfp_link_settings_test 121 122coverage: all 123 mkdir -p results 124 build-coverage/hfp_at_parser_test 125 build-coverage/hfp_ag_client_test 126 build-coverage/hfp_hf_client_test 127 build-coverage/cvsd_plc_test 128 build-coverage/hfp_link_settings_test 129 130pklg-test: build-asan/pklg_cvsd_test 131 build-asan/pklg_cvsd_test pklg/test1 132 build-asan/pklg_cvsd_test pklg/test2 133 build-asan/pklg_cvsd_test pklg/test3 134 build-asan/pklg_cvsd_test pklg/test4 135 build-asan/pklg_cvsd_test pklg/test5 136 137clean: 138 rm -rf build-coverage build-asan 139 rm -rf *.wav results/* pklg/*.wav 140