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