xref: /btstack/test/embedded/Makefile (revision cd5f23a3250874824c01a2b3326a9522fea3f99f)
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_base.c \
31	btstack_run_loop_embedded.c \
32    btstack_util.c		  \
33    hci_dump.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-coverage/freertos_test build-asan/embedded_test build-asan/freertos_test
61
62build-%:
63	mkdir -p $@
64
65build-coverage/%.o: %.c | build-coverage
66	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
67
68build-asan/%.o: %.c | build-asan
69	${CC} -c $(CFLAGS_ASAN) $< -o $@
70
71
72build-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/embedded_test.o | build-coverage
73	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
74
75build-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
76	${CC} $^ ${LDFLAGS_COVERAGE} -o $@
77
78build-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o | build-asan
79	${CC} $^ ${LDFLAGS_ASAN} -o $@
80
81build-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
82	${CC} $^ ${LDFLAGS_ASAN} -o $@
83
84test: all
85	build-asan/embedded_test
86	build-asan/freertos_test
87
88coverage: all
89	rm -f build-coverage/*.gcda
90	build-coverage/embedded_test
91	build-coverage/freertos_test
92
93clean:
94	rm -rf build-coverage build-asan
95