xref: /btstack/test/embedded/Makefile (revision 98e87e7776ef9a7fe55135aea8cddc761fe3a7a5)
1# Requirements: cpputest.github.io
2
3BTSTACK_ROOT =  ../..
4
5# CppuTest from pkg-config
6CFLAGS  += ${shell pkg-config --cflags CppuTest}
7LDFLAGS += ${shell pkg-config --libs   CppuTest}
8
9CFLAGS += -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null
10CFLAGS += -I${BTSTACK_ROOT}/src
11CFLAGS += -I${BTSTACK_ROOT}/platform/embedded
12CFLAGS += -I.
13
14CFLAGS += -DHAVE_HAL_AUDIO
15
16CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
17CFLAGS_ASAN     = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT
18
19LDFLAGS += -lCppUTest -lCppUTestExt
20LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage
21LDFLAGS_ASAN     = ${LDFLAGS} -fsanitize=address
22
23VPATH += ${BTSTACK_ROOT}/src
24VPATH += ${BTSTACK_ROOT}/src/ble
25VPATH += ${BTSTACK_ROOT}/platform/embedded
26VPATH += ${BTSTACK_ROOT}/platform/freertos
27
28COMMON = \
29    btstack_linked_list.c  \
30	btstack_memory.c 	\
31	btstack_run_loop.c 	\
32    btstack_util.c		\
33    hci_dump.c    		\
34    l2cap_signaling.c   \
35    hci_cmd.c 			\
36    hci_event.c         \
37
38FREERTOS = \
39	btstack_run_loop_freertos.c \
40
41COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
42COMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
43
44FREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o))
45FREERTOS_OBJ_ASAN     = $(addprefix build-asan/,    $(FREERTOS:.c=.o))
46
47all: build-coverage/embedded_test build-asan/embedded_test \
48	 build-coverage/run_loop_base_test build-asan/run_loop_base_test \
49	 build-coverage/btstack_util_test build-asan/btstack_util_test \
50	 build-coverage/l2cap_le_signaling_test build-asan/l2cap_le_signaling_test \
51	 build-coverage/hci_cmd_test build-asan/hci_cmd_test \
52	 build-coverage/hci_dump_test build-asan/hci_dump_test \
53	 build-coverage/hci_event_test build-asan/hci_event_test \
54	 build-coverage/freertos_test build-asan/freertos_test \
55
56build-%:
57	mkdir -p $@
58
59build-coverage/%.o: %.c | build-coverage
60	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
61
62build-coverage/%.o: %.cpp | build-coverage
63	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
64
65build-asan/%.o: %.c | build-asan
66	${CC} -c $(CFLAGS_ASAN) $< -o $@
67
68build-asan/%.o: %.cpp | build-asan
69	${CXX} -c $(CFLAGS_ASAN) $< -o $@
70
71
72build-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_run_loop_embedded.o build-coverage/embedded_test.o | build-coverage
73	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
74
75build-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o build-asan/btstack_run_loop_embedded.o | build-asan
76	${CXX} $^ ${LDFLAGS_ASAN} -o $@
77
78
79build-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
80	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
81
82build-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
83	${CXX} $^ ${LDFLAGS_ASAN} -o $@
84
85
86build-coverage/run_loop_base_test: ${COMMON_OBJ_COVERAGE} build-coverage/run_loop_base_test.o | build-coverage
87	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
88
89build-asan/run_loop_base_test: ${COMMON_OBJ_ASAN} build-asan/run_loop_base_test.o | build-asan
90	${CXX} $^ ${LDFLAGS_ASAN} -o $@
91
92
93build-coverage/btstack_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_util_test.o | build-coverage
94	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
95
96build-asan/btstack_util_test: ${COMMON_OBJ_ASAN} build-asan/btstack_util_test.o | build-asan
97	${CXX} $^ ${LDFLAGS_ASAN} -o $@
98
99
100build-coverage/l2cap_le_signaling_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_le_signaling_test.o | build-coverage
101	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
102
103build-asan/l2cap_le_signaling_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_le_signaling_test.o | build-asan
104	${CXX} $^ ${LDFLAGS_ASAN} -o $@
105
106
107build-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.o | build-coverage
108	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
109
110build-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan
111	${CXX} $^ ${LDFLAGS_ASAN} -o $@
112
113build-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage
114	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
115
116build-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan
117	${CXX} $^ ${LDFLAGS_ASAN} -o $@
118
119build-coverage/hci_event_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_event_test.o | build-coverage
120	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
121
122build-asan/hci_event_test: ${COMMON_OBJ_ASAN} build-asan/hci_event_test.o | build-asan
123	${CXX} $^ ${LDFLAGS_ASAN} -o $@
124
125test: all
126	build-asan/embedded_test
127	build-asan/freertos_test
128	build-asan/run_loop_base_test
129	build-asan/btstack_util_test
130	build-asan/l2cap_le_signaling_test
131	build-asan/hci_cmd_test
132	build-asan/hci_dump_test
133	build-asan/hci_event_test
134
135coverage: all
136	rm -f build-coverage/*.gcda
137	build-coverage/embedded_test
138	build-coverage/freertos_test
139	build-coverage/run_loop_base_test
140	build-coverage/btstack_util_test
141	build-coverage/l2cap_le_signaling_test
142	build-coverage/hci_cmd_test
143	build-coverage/hci_dump_test
144	build-coverage/hci_event_test
145
146clean:
147	rm -rf build-coverage build-asan *.dSYM
148