xref: /btstack/test/embedded/Makefile (revision 98e87e7776ef9a7fe55135aea8cddc761fe3a7a5)
1353d71a9SMatthias Ringwald# Requirements: cpputest.github.io
2353d71a9SMatthias Ringwald
3353d71a9SMatthias RingwaldBTSTACK_ROOT =  ../..
4353d71a9SMatthias Ringwald
5*98e87e77SMatthias Ringwald# CppuTest from pkg-config
6*98e87e77SMatthias RingwaldCFLAGS  += ${shell pkg-config --cflags CppuTest}
7*98e87e77SMatthias RingwaldLDFLAGS += ${shell pkg-config --libs   CppuTest}
8*98e87e77SMatthias Ringwald
9*98e87e77SMatthias RingwaldCFLAGS += -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null
10e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src
11e0ff5d41SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/embedded
12e0ff5d41SMatthias RingwaldCFLAGS += -I.
13353d71a9SMatthias Ringwald
14713ac744SMatthias RingwaldCFLAGS += -DHAVE_HAL_AUDIO
15713ac744SMatthias Ringwald
16cd56fb44SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
1771d52576SMatthias RingwaldCFLAGS_ASAN     = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT
18cd56fb44SMatthias Ringwald
19353d71a9SMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt
20cd56fb44SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage
21cd56fb44SMatthias RingwaldLDFLAGS_ASAN     = ${LDFLAGS} -fsanitize=address
22353d71a9SMatthias Ringwald
23353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src
24353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble
25353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/embedded
26713ac744SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/freertos
27353d71a9SMatthias Ringwald
28353d71a9SMatthias RingwaldCOMMON = \
291f56122cSMatthias Ringwald    btstack_linked_list.c  \
30516e2db7SMilanka Ringwald	btstack_memory.c 	\
31a288e044SMatthias Ringwald	btstack_run_loop.c 	\
32a288e044SMatthias Ringwald    btstack_util.c		\
33353d71a9SMatthias Ringwald    hci_dump.c    		\
34c9f0088dSMilanka Ringwald    l2cap_signaling.c   \
3522b6e67bSMilanka Ringwald    hci_cmd.c 			\
3689d7e14eSMatthias Ringwald    hci_event.c         \
371f56122cSMatthias Ringwald
38cd56fb44SMatthias RingwaldFREERTOS = \
39cd56fb44SMatthias Ringwald	btstack_run_loop_freertos.c \
40353d71a9SMatthias Ringwald
41cd56fb44SMatthias RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
42cd56fb44SMatthias RingwaldCOMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
43713ac744SMatthias Ringwald
44cd56fb44SMatthias RingwaldFREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o))
45cd56fb44SMatthias RingwaldFREERTOS_OBJ_ASAN     = $(addprefix build-asan/,    $(FREERTOS:.c=.o))
46353d71a9SMatthias Ringwald
47a93e262fSMilanka Ringwaldall: build-coverage/embedded_test build-asan/embedded_test \
48a93e262fSMilanka Ringwald	 build-coverage/run_loop_base_test build-asan/run_loop_base_test \
49a93e262fSMilanka Ringwald	 build-coverage/btstack_util_test build-asan/btstack_util_test \
50a93e262fSMilanka Ringwald	 build-coverage/l2cap_le_signaling_test build-asan/l2cap_le_signaling_test \
51a93e262fSMilanka Ringwald	 build-coverage/hci_cmd_test build-asan/hci_cmd_test \
52798de539SMatthias Ringwald	 build-coverage/hci_dump_test build-asan/hci_dump_test \
5389d7e14eSMatthias Ringwald	 build-coverage/hci_event_test build-asan/hci_event_test \
54a93e262fSMilanka Ringwald	 build-coverage/freertos_test build-asan/freertos_test \
553d87570fSMatthias Ringwald
56cd56fb44SMatthias Ringwaldbuild-%:
57cd56fb44SMatthias Ringwald	mkdir -p $@
58353d71a9SMatthias Ringwald
59cd56fb44SMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage
60cd56fb44SMatthias Ringwald	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
61cd56fb44SMatthias Ringwald
621d3bd1e5SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage
631d3bd1e5SMatthias Ringwald	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
641d3bd1e5SMatthias Ringwald
65cd56fb44SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan
66cd56fb44SMatthias Ringwald	${CC} -c $(CFLAGS_ASAN) $< -o $@
67cd56fb44SMatthias Ringwald
681d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan
691d3bd1e5SMatthias Ringwald	${CXX} -c $(CFLAGS_ASAN) $< -o $@
701d3bd1e5SMatthias Ringwald
71cd56fb44SMatthias Ringwald
72a93e262fSMilanka Ringwaldbuild-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_run_loop_embedded.o build-coverage/embedded_test.o | build-coverage
731d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
74cd56fb44SMatthias Ringwald
75a93e262fSMilanka Ringwaldbuild-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o build-asan/btstack_run_loop_embedded.o | build-asan
761d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
77a93e262fSMilanka Ringwald
78a93e262fSMilanka Ringwald
7938b632b5SMatthias Ringwaldbuild-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage
801d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
81cd56fb44SMatthias Ringwald
8238b632b5SMatthias Ringwaldbuild-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan
831d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
84713ac744SMatthias Ringwald
85a93e262fSMilanka Ringwald
86a93e262fSMilanka Ringwaldbuild-coverage/run_loop_base_test: ${COMMON_OBJ_COVERAGE} build-coverage/run_loop_base_test.o | build-coverage
871d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
88a93e262fSMilanka Ringwald
89a93e262fSMilanka Ringwaldbuild-asan/run_loop_base_test: ${COMMON_OBJ_ASAN} build-asan/run_loop_base_test.o | build-asan
901d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
91a93e262fSMilanka Ringwald
92a93e262fSMilanka Ringwald
93a93e262fSMilanka Ringwaldbuild-coverage/btstack_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_util_test.o | build-coverage
941d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
95a93e262fSMilanka Ringwald
96a93e262fSMilanka Ringwaldbuild-asan/btstack_util_test: ${COMMON_OBJ_ASAN} build-asan/btstack_util_test.o | build-asan
971d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
98a93e262fSMilanka Ringwald
99a93e262fSMilanka Ringwald
100a93e262fSMilanka Ringwaldbuild-coverage/l2cap_le_signaling_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_le_signaling_test.o | build-coverage
1011d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
102a93e262fSMilanka Ringwald
103a93e262fSMilanka Ringwaldbuild-asan/l2cap_le_signaling_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_le_signaling_test.o | build-asan
1041d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
105a93e262fSMilanka Ringwald
106a93e262fSMilanka Ringwald
107a93e262fSMilanka Ringwaldbuild-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.o | build-coverage
1081d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
109a93e262fSMilanka Ringwald
110a93e262fSMilanka Ringwaldbuild-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan
1111d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
112a93e262fSMilanka Ringwald
113798de539SMatthias Ringwaldbuild-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage
1141d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
115798de539SMatthias Ringwald
116798de539SMatthias Ringwaldbuild-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan
1171d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
118a93e262fSMilanka Ringwald
11989d7e14eSMatthias Ringwaldbuild-coverage/hci_event_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_event_test.o | build-coverage
12089d7e14eSMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
12189d7e14eSMatthias Ringwald
12289d7e14eSMatthias Ringwaldbuild-asan/hci_event_test: ${COMMON_OBJ_ASAN} build-asan/hci_event_test.o | build-asan
12389d7e14eSMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
12489d7e14eSMatthias Ringwald
125353d71a9SMatthias Ringwaldtest: all
126cd56fb44SMatthias Ringwald	build-asan/embedded_test
127cd56fb44SMatthias Ringwald	build-asan/freertos_test
128a93e262fSMilanka Ringwald	build-asan/run_loop_base_test
129a93e262fSMilanka Ringwald	build-asan/btstack_util_test
130a93e262fSMilanka Ringwald	build-asan/l2cap_le_signaling_test
131a93e262fSMilanka Ringwald	build-asan/hci_cmd_test
132798de539SMatthias Ringwald	build-asan/hci_dump_test
13389d7e14eSMatthias Ringwald	build-asan/hci_event_test
1343d87570fSMatthias Ringwald
1353d87570fSMatthias Ringwaldcoverage: all
136cd56fb44SMatthias Ringwald	rm -f build-coverage/*.gcda
1373d87570fSMatthias Ringwald	build-coverage/embedded_test
1383d87570fSMatthias Ringwald	build-coverage/freertos_test
139a93e262fSMilanka Ringwald	build-coverage/run_loop_base_test
140a93e262fSMilanka Ringwald	build-coverage/btstack_util_test
141a93e262fSMilanka Ringwald	build-coverage/l2cap_le_signaling_test
142a93e262fSMilanka Ringwald	build-coverage/hci_cmd_test
143798de539SMatthias Ringwald	build-coverage/hci_dump_test
14489d7e14eSMatthias Ringwald	build-coverage/hci_event_test
145353d71a9SMatthias Ringwald
146353d71a9SMatthias Ringwaldclean:
147a93e262fSMilanka Ringwald	rm -rf build-coverage build-asan *.dSYM
148