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