xref: /btstack/test/embedded/Makefile (revision 1d3bd1e51ca491d6783233c8d7431c44f06daa5a)
1353d71a9SMatthias Ringwald# Requirements: cpputest.github.io
2353d71a9SMatthias Ringwald
3353d71a9SMatthias RingwaldBTSTACK_ROOT =  ../..
4353d71a9SMatthias Ringwald
5*1d3bd1e5SMatthias RingwaldCFLAGS  = -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null
6e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src
7e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/embedded
8e0ff5d41SMatthias RingwaldCFLAGS += -I.
9353d71a9SMatthias Ringwald
10713ac744SMatthias RingwaldCFLAGS += -DHAVE_HAL_AUDIO
11713ac744SMatthias Ringwald
12cd56fb44SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
1371d52576SMatthias RingwaldCFLAGS_ASAN     = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT
14cd56fb44SMatthias Ringwald
15353d71a9SMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt
16cd56fb44SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage
17cd56fb44SMatthias RingwaldLDFLAGS_ASAN     = ${LDFLAGS} -fsanitize=address
18353d71a9SMatthias Ringwald
19353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src
20353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble
21353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/embedded
22713ac744SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/freertos
23353d71a9SMatthias Ringwald
24353d71a9SMatthias RingwaldCOMMON = \
251f56122cSMatthias Ringwald    btstack_linked_list.c  \
26516e2db7SMilanka Ringwald	btstack_memory.c 	\
27a288e044SMatthias Ringwald	btstack_run_loop.c 	\
28a288e044SMatthias Ringwald    btstack_util.c		\
29353d71a9SMatthias Ringwald    hci_dump.c    		\
30c9f0088dSMilanka Ringwald    l2cap_signaling.c   \
3122b6e67bSMilanka Ringwald    hci_cmd.c 			\
321f56122cSMatthias Ringwald
33cd56fb44SMatthias RingwaldFREERTOS = \
34cd56fb44SMatthias Ringwald	btstack_run_loop_freertos.c \
35353d71a9SMatthias Ringwald
36cd56fb44SMatthias RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
37cd56fb44SMatthias RingwaldCOMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
38713ac744SMatthias Ringwald
39cd56fb44SMatthias RingwaldFREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o))
40cd56fb44SMatthias RingwaldFREERTOS_OBJ_ASAN     = $(addprefix build-asan/,    $(FREERTOS:.c=.o))
41353d71a9SMatthias Ringwald
42a93e262fSMilanka Ringwaldall: build-coverage/embedded_test build-asan/embedded_test \
43a93e262fSMilanka Ringwald	 build-coverage/run_loop_base_test build-asan/run_loop_base_test \
44a93e262fSMilanka Ringwald	 build-coverage/btstack_util_test build-asan/btstack_util_test \
45a93e262fSMilanka Ringwald	 build-coverage/l2cap_le_signaling_test build-asan/l2cap_le_signaling_test \
46a93e262fSMilanka Ringwald	 build-coverage/hci_cmd_test build-asan/hci_cmd_test \
47798de539SMatthias Ringwald	 build-coverage/hci_dump_test build-asan/hci_dump_test \
48a93e262fSMilanka Ringwald	 build-coverage/freertos_test build-asan/freertos_test \
493d87570fSMatthias Ringwald
50cd56fb44SMatthias Ringwaldbuild-%:
51cd56fb44SMatthias Ringwald	mkdir -p $@
52353d71a9SMatthias Ringwald
53cd56fb44SMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage
54cd56fb44SMatthias Ringwald	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
55cd56fb44SMatthias Ringwald
56*1d3bd1e5SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage
57*1d3bd1e5SMatthias Ringwald	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
58*1d3bd1e5SMatthias Ringwald
59cd56fb44SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan
60cd56fb44SMatthias Ringwald	${CC} -c $(CFLAGS_ASAN) $< -o $@
61cd56fb44SMatthias Ringwald
62*1d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan
63*1d3bd1e5SMatthias Ringwald	${CXX} -c $(CFLAGS_ASAN) $< -o $@
64*1d3bd1e5SMatthias Ringwald
65cd56fb44SMatthias Ringwald
66a93e262fSMilanka Ringwaldbuild-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_run_loop_embedded.o build-coverage/embedded_test.o | build-coverage
67*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
68cd56fb44SMatthias Ringwald
69a93e262fSMilanka Ringwaldbuild-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o build-asan/btstack_run_loop_embedded.o | build-asan
70*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
71a93e262fSMilanka Ringwald
72a93e262fSMilanka Ringwald
7338b632b5SMatthias Ringwaldbuild-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
74*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
75cd56fb44SMatthias Ringwald
7638b632b5SMatthias Ringwaldbuild-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
77*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
78713ac744SMatthias Ringwald
79a93e262fSMilanka Ringwald
80a93e262fSMilanka Ringwaldbuild-coverage/run_loop_base_test: ${COMMON_OBJ_COVERAGE} build-coverage/run_loop_base_test.o | build-coverage
81*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
82a93e262fSMilanka Ringwald
83a93e262fSMilanka Ringwaldbuild-asan/run_loop_base_test: ${COMMON_OBJ_ASAN} build-asan/run_loop_base_test.o | build-asan
84*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
85a93e262fSMilanka Ringwald
86a93e262fSMilanka Ringwald
87a93e262fSMilanka Ringwaldbuild-coverage/btstack_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_util_test.o | build-coverage
88*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
89a93e262fSMilanka Ringwald
90a93e262fSMilanka Ringwaldbuild-asan/btstack_util_test: ${COMMON_OBJ_ASAN} build-asan/btstack_util_test.o | build-asan
91*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
92a93e262fSMilanka Ringwald
93a93e262fSMilanka Ringwald
94a93e262fSMilanka Ringwaldbuild-coverage/l2cap_le_signaling_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_le_signaling_test.o | build-coverage
95*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
96a93e262fSMilanka Ringwald
97a93e262fSMilanka Ringwaldbuild-asan/l2cap_le_signaling_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_le_signaling_test.o | build-asan
98*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
99a93e262fSMilanka Ringwald
100a93e262fSMilanka Ringwald
101a93e262fSMilanka Ringwaldbuild-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.o | build-coverage
102*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
103a93e262fSMilanka Ringwald
104a93e262fSMilanka Ringwaldbuild-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan
105*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
106a93e262fSMilanka Ringwald
107798de539SMatthias Ringwaldbuild-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage
108*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
109798de539SMatthias Ringwald
110798de539SMatthias Ringwaldbuild-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan
111*1d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
112a93e262fSMilanka Ringwald
113353d71a9SMatthias Ringwaldtest: all
114cd56fb44SMatthias Ringwald	build-asan/embedded_test
115cd56fb44SMatthias Ringwald	build-asan/freertos_test
116a93e262fSMilanka Ringwald	build-asan/run_loop_base_test
117a93e262fSMilanka Ringwald	build-asan/btstack_util_test
118a93e262fSMilanka Ringwald	build-asan/l2cap_le_signaling_test
119a93e262fSMilanka Ringwald	build-asan/hci_cmd_test
120798de539SMatthias Ringwald	build-asan/hci_dump_test
1213d87570fSMatthias Ringwald
1223d87570fSMatthias Ringwaldcoverage: all
123cd56fb44SMatthias Ringwald	rm -f build-coverage/*.gcda
1243d87570fSMatthias Ringwald	build-coverage/embedded_test
1253d87570fSMatthias Ringwald	build-coverage/freertos_test
126a93e262fSMilanka Ringwald	build-coverage/run_loop_base_test
127a93e262fSMilanka Ringwald	build-coverage/btstack_util_test
128a93e262fSMilanka Ringwald	build-coverage/l2cap_le_signaling_test
129a93e262fSMilanka Ringwald	build-coverage/hci_cmd_test
130798de539SMatthias Ringwald	build-coverage/hci_dump_test
131353d71a9SMatthias Ringwald
132353d71a9SMatthias Ringwaldclean:
133a93e262fSMilanka Ringwald	rm -rf build-coverage build-asan *.dSYM
134