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