xref: /btstack/test/embedded/Makefile (revision 4902524cc6a45a01cfead054f48b6584dbb1f1cc)
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/hci_dump_test build-asan/hci_dump_test \
66	 build-coverage/freertos_test build-asan/freertos_test \
67
68build-%:
69	mkdir -p $@
70
71build-coverage/%.o: %.c | build-coverage
72	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
73
74build-asan/%.o: %.c | build-asan
75	${CC} -c $(CFLAGS_ASAN) $< -o $@
76
77
78build-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_run_loop_embedded.o build-coverage/embedded_test.o | build-coverage
79	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
80
81build-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o build-asan/btstack_run_loop_embedded.o | build-asan
82	${CC} $^ ${LDFLAGS_ASAN} -o $@
83
84
85build-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
86	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
87
88build-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
89	${CC} $^ ${LDFLAGS_ASAN} -o $@
90
91
92build-coverage/run_loop_base_test: ${COMMON_OBJ_COVERAGE} build-coverage/run_loop_base_test.o | build-coverage
93	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
94
95build-asan/run_loop_base_test: ${COMMON_OBJ_ASAN} build-asan/run_loop_base_test.o | build-asan
96	${CC} $^ ${LDFLAGS_ASAN} -o $@
97
98
99build-coverage/btstack_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_util_test.o | build-coverage
100	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
101
102build-asan/btstack_util_test: ${COMMON_OBJ_ASAN} build-asan/btstack_util_test.o | build-asan
103	${CC} $^ ${LDFLAGS_ASAN} -o $@
104
105
106build-coverage/l2cap_le_signaling_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_le_signaling_test.o | build-coverage
107	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
108
109build-asan/l2cap_le_signaling_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_le_signaling_test.o | build-asan
110	${CC} $^ ${LDFLAGS_ASAN} -o $@
111
112
113build-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.o | build-coverage
114	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
115
116build-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan
117	${CC} $^ ${LDFLAGS_ASAN} -o $@
118
119build-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage
120	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
121
122build-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan
123	${CC} $^ ${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
134coverage: all
135	rm -f build-coverage/*.gcda
136	build-coverage/embedded_test
137	build-coverage/freertos_test
138	build-coverage/run_loop_base_test
139	build-coverage/btstack_util_test
140	build-coverage/l2cap_le_signaling_test
141	build-coverage/hci_cmd_test
142	build-coverage/hci_dump_test
143
144clean:
145	rm -rf build-coverage build-asan *.dSYM
146