xref: /btstack/test/l2cap-cbm/Makefile (revision 98e87e7776ef9a7fe55135aea8cddc761fe3a7a5)
1af7c3ae6SMatthias Ringwald# Requirements: cpputest.github.io
2af7c3ae6SMatthias Ringwald
3af7c3ae6SMatthias RingwaldBTSTACK_ROOT =  ../..
4af7c3ae6SMatthias 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 -Ibuild-coverage -I./
10af7c3ae6SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src
11af7c3ae6SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src/ble
12af7c3ae6SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/posix
13af7c3ae6SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/embedded
14af7c3ae6SMatthias Ringwald# CFLAGS += -D ENABLE_TESTING_SUPPORT
15af7c3ae6SMatthias Ringwald
16af7c3ae6SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src
17af7c3ae6SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble
18af7c3ae6SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/embedded
19af7c3ae6SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/posix
20af7c3ae6SMatthias Ringwald
21af7c3ae6SMatthias RingwaldCOMMON = \
22af7c3ae6SMatthias Ringwald	btstack_linked_list.c \
23af7c3ae6SMatthias Ringwald	btstack_util.c \
24af7c3ae6SMatthias Ringwald	hci.c \
25af7c3ae6SMatthias Ringwald	hci_cmd.c \
26af7c3ae6SMatthias Ringwald	ad_parser.c \
27af7c3ae6SMatthias Ringwald	l2cap.c \
28af7c3ae6SMatthias Ringwald	l2cap_signaling.c \
29af7c3ae6SMatthias Ringwald	btstack_memory.c \
30af7c3ae6SMatthias Ringwald	btstack_run_loop.c \
31af7c3ae6SMatthias Ringwald	btstack_run_loop_embedded.c \
32af7c3ae6SMatthias Ringwald	hci_dump.c \
33af7c3ae6SMatthias Ringwald	hci_dump_posix_stdout.c \
34af7c3ae6SMatthias Ringwald
35af7c3ae6SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
36af7c3ae6SMatthias RingwaldCFLAGS_ASAN     = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT
37af7c3ae6SMatthias Ringwald
38af7c3ae6SMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt
39af7c3ae6SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage
40af7c3ae6SMatthias RingwaldLDFLAGS_ASAN     = ${LDFLAGS} -fsanitize=address
41af7c3ae6SMatthias Ringwald
42af7c3ae6SMatthias RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
43af7c3ae6SMatthias RingwaldCOMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
44af7c3ae6SMatthias Ringwald
45af7c3ae6SMatthias Ringwald
46af7c3ae6SMatthias Ringwaldall: \
47af7c3ae6SMatthias Ringwald	build-coverage/l2cap_cbm_test build-asan/l2cap_cbm_test \
48af7c3ae6SMatthias Ringwald
49af7c3ae6SMatthias Ringwaldbuild-%:
50af7c3ae6SMatthias Ringwald	mkdir -p $@
51af7c3ae6SMatthias Ringwald
52af7c3ae6SMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage
53af7c3ae6SMatthias Ringwald	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
54af7c3ae6SMatthias Ringwald
55af7c3ae6SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage
56af7c3ae6SMatthias Ringwald	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
57af7c3ae6SMatthias Ringwald
58af7c3ae6SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan
59af7c3ae6SMatthias Ringwald	${CC} -c $(CFLAGS_ASAN) $< -o $@
60af7c3ae6SMatthias Ringwald
61af7c3ae6SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan
62af7c3ae6SMatthias Ringwald	${CXX} -c $(CFLAGS_ASAN) $< -o $@
63af7c3ae6SMatthias Ringwald
64af7c3ae6SMatthias Ringwaldbuild-coverage/l2cap_cbm_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_cbm_test.o | build-coverage
65af7c3ae6SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
66af7c3ae6SMatthias Ringwald
67af7c3ae6SMatthias Ringwaldbuild-asan/l2cap_cbm_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_cbm_test.o | build-asan
68af7c3ae6SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
69af7c3ae6SMatthias Ringwald
70af7c3ae6SMatthias Ringwaldtest: all
71af7c3ae6SMatthias Ringwald	build-asan/l2cap_cbm_test
72af7c3ae6SMatthias Ringwald
73af7c3ae6SMatthias Ringwaldcoverage: all
74af7c3ae6SMatthias Ringwald	rm -f build-coverage/*.gcda
75af7c3ae6SMatthias Ringwald	build-coverage/l2cap_cbm_test
76af7c3ae6SMatthias Ringwald
77af7c3ae6SMatthias Ringwaldclean:
78af7c3ae6SMatthias Ringwald	rm -rf build-coverage build-asan
79af7c3ae6SMatthias Ringwald
80