xref: /btstack/test/embedded/Makefile (revision 3cd2e1916c5f7ab2d62c345206543d9c8faaef88)
1CC = g++
2
3# Requirements: cpputest.github.io
4
5BTSTACK_ROOT =  ../..
6
7CFLAGS  = -g -Wall \
8		  -I. \
9		  -I${BTSTACK_ROOT}/src \
10		  -I${BTSTACK_ROOT}/platform/embedded
11
12CFLAGS += -DHAVE_HAL_AUDIO
13
14CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
15CFLAGS_ASAN     = ${CFLAGS} -fsanitize=address
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_em9304_spi_embedded.c \
28	btstack_memory.c \
29	btstack_run_loop.c \
30	btstack_run_loop_embedded.c \
31	btstack_stdin_embedded.c \
32	btstack_tlv_flash_bank.c \
33	btstack_uart_block_embedded.c \
34	hal_flash_bank_memory.c \
35    btstack_audio.c \
36    btstack_audio_embedded.c \
37    btstack_linked_list.c  \
38    btstack_resample.c \
39    btstack_ring_buffer.c \
40    btstack_run_loop_base.c \
41    btstack_slip.c \
42    btstack_util.c		  \
43    hci_dump.c    \
44    hci_transport_em9304_spi.c \
45    hci_transport_h4.c \
46    hci_transport_h5.c \
47
48FREERTOS = \
49	btstack_run_loop_freertos.c \
50	btstack_uart_block_freertos.c \
51
52COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
53COMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
54
55FREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o))
56FREERTOS_OBJ_ASAN     = $(addprefix build-asan/,    $(FREERTOS:.c=.o))
57
58all: build-coverage/embedded_test build-coverage/freertos_test build-asan/embedded_test build-asan/freertos_test
59
60build-%:
61	mkdir -p $@
62
63build-coverage/%.o: %.c | build-coverage
64	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
65
66build-asan/%.o: %.c | build-asan
67	${CC} -c $(CFLAGS_ASAN) $< -o $@
68
69
70build-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/embedded_test.o | build-coverage
71	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
72
73build-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
74	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
75
76build-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o | build-asan
77	${CC} $^ ${LDFLAGS_ASAN} -o $@
78
79build-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
80	${CC} $^ ${LDFLAGS_ASAN} -o $@
81
82test: all
83	build-asan/embedded_test
84	build-asan/freertos_test
85
86coverage: all
87	rm -f build-coverage/*.gcda
88	build-coverage/embedded_test
89	build-coverage/freertos_test
90
91clean:
92	rm -rf build-coverage build-asan
93