xref: /btstack/test/hfp/Makefile (revision 98e87e7776ef9a7fe55135aea8cddc761fe3a7a5)
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