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