xref: /btstack/test/embedded/Makefile (revision 503a627edab6ba8492c3d0cdd9ac598fe2b0f08a)
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 -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_run_loop_embedded.c \
31    btstack_util.c		  \
32    hci_dump.c    \
33
34# not used yet
35#	btstack_em9304_spi_embedded.c \
36#	btstack_stdin_embedded.c \
37#	btstack_tlv_flash_bank.c \
38#	btstack_uart_block_embedded.c \
39#	hal_flash_bank_memory.c \
40#   btstack_audio.c \
41#   btstack_audio_embedded.c \
42#   btstack_resample.c \
43#   btstack_ring_buffer.c \
44#   btstack_slip.c \
45#   hci_transport_em9304_spi.c \
46#   hci_transport_h4.c \
47#   hci_transport_h5.c \
48
49FREERTOS = \
50	btstack_run_loop_freertos.c \
51#	btstack_uart_block_freertos.c \
52
53COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
54COMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
55
56FREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o))
57FREERTOS_OBJ_ASAN     = $(addprefix build-asan/,    $(FREERTOS:.c=.o))
58
59all: build-coverage/embedded_test build-coverage/freertos_test build-asan/embedded_test build-asan/freertos_test
60
61build-%:
62	mkdir -p $@
63
64build-coverage/%.o: %.c | build-coverage
65	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
66
67build-asan/%.o: %.c | build-asan
68	${CC} -c $(CFLAGS_ASAN) $< -o $@
69
70
71build-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/embedded_test.o | build-coverage
72	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
73
74build-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
75	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
76
77build-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o | build-asan
78	${CC} $^ ${LDFLAGS_ASAN} -o $@
79
80build-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
81	${CC} $^ ${LDFLAGS_ASAN} -o $@
82
83test: all
84	build-asan/embedded_test
85	build-asan/freertos_test
86
87coverage: all
88	rm -f build-coverage/*.gcda
89	build-coverage/embedded_test
90	build-coverage/freertos_test
91
92clean:
93	rm -rf build-coverage build-asan
94