xref: /btstack/test/embedded/Makefile (revision 4a9eead824c50b40e12b6f72611a74a3f57a47f6)
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
33FREERTOS = \
34	btstack_run_loop_freertos.c \
35
36COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
37COMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
38
39FREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o))
40FREERTOS_OBJ_ASAN     = $(addprefix build-asan/,    $(FREERTOS:.c=.o))
41
42all: build-coverage/embedded_test build-asan/embedded_test \
43	 build-coverage/run_loop_base_test build-asan/run_loop_base_test \
44	 build-coverage/btstack_util_test build-asan/btstack_util_test \
45	 build-coverage/l2cap_le_signaling_test build-asan/l2cap_le_signaling_test \
46	 build-coverage/hci_cmd_test build-asan/hci_cmd_test \
47	 build-coverage/hci_dump_test build-asan/hci_dump_test \
48	 build-coverage/freertos_test build-asan/freertos_test \
49
50build-%:
51	mkdir -p $@
52
53build-coverage/%.o: %.c | build-coverage
54	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
55
56build-coverage/%.o: %.cpp | build-coverage
57	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
58
59build-asan/%.o: %.c | build-asan
60	${CC} -c $(CFLAGS_ASAN) $< -o $@
61
62build-asan/%.o: %.cpp | build-asan
63	${CXX} -c $(CFLAGS_ASAN) $< -o $@
64
65
66build-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_run_loop_embedded.o build-coverage/embedded_test.o | build-coverage
67	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
68
69build-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o build-asan/btstack_run_loop_embedded.o | build-asan
70	${CXX} $^ ${LDFLAGS_ASAN} -o $@
71
72
73build-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
74	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
75
76build-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
77	${CXX} $^ ${LDFLAGS_ASAN} -o $@
78
79
80build-coverage/run_loop_base_test: ${COMMON_OBJ_COVERAGE} build-coverage/run_loop_base_test.o | build-coverage
81	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
82
83build-asan/run_loop_base_test: ${COMMON_OBJ_ASAN} build-asan/run_loop_base_test.o | build-asan
84	${CXX} $^ ${LDFLAGS_ASAN} -o $@
85
86
87build-coverage/btstack_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_util_test.o | build-coverage
88	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
89
90build-asan/btstack_util_test: ${COMMON_OBJ_ASAN} build-asan/btstack_util_test.o | build-asan
91	${CXX} $^ ${LDFLAGS_ASAN} -o $@
92
93
94build-coverage/l2cap_le_signaling_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_le_signaling_test.o | build-coverage
95	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
96
97build-asan/l2cap_le_signaling_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_le_signaling_test.o | build-asan
98	${CXX} $^ ${LDFLAGS_ASAN} -o $@
99
100
101build-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.o | build-coverage
102	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
103
104build-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan
105	${CXX} $^ ${LDFLAGS_ASAN} -o $@
106
107build-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage
108	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
109
110build-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan
111	${CXX} $^ ${LDFLAGS_ASAN} -o $@
112
113test: all
114	build-asan/embedded_test
115	build-asan/freertos_test
116	build-asan/run_loop_base_test
117	build-asan/btstack_util_test
118	build-asan/l2cap_le_signaling_test
119	build-asan/hci_cmd_test
120	build-asan/hci_dump_test
121
122coverage: all
123	rm -f build-coverage/*.gcda
124	build-coverage/embedded_test
125	build-coverage/freertos_test
126	build-coverage/run_loop_base_test
127	build-coverage/btstack_util_test
128	build-coverage/l2cap_le_signaling_test
129	build-coverage/hci_cmd_test
130	build-coverage/hci_dump_test
131
132clean:
133	rm -rf build-coverage build-asan *.dSYM
134