xref: /btstack/test/gap/Makefile (revision e3ba22907f903f11cd12321c31e7936b8dd1157e)
1# Requirements: cpputest.github.io
2
3BTSTACK_ROOT =  ../..
4
5CFLAGS  = -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null -I. -I${BTSTACK_ROOT}/src  -I${BTSTACK_ROOT}/platform/posix
6CFLAGS += -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
7
8VPATH += ${BTSTACK_ROOT}/src
9VPATH += ${BTSTACK_ROOT}/src/ble
10VPATH += ${BTSTACK_ROOT}/platform/posix
11
12COMMON = \
13	ad_parser.c                 \
14	btstack_linked_list.c       \
15	btstack_memory.c            \
16	btstack_memory_pool.c       \
17	btstack_util.c              \
18	btstack_run_loop.c           \
19	hci.c                       \
20	hci_cmd.c                   \
21	hci_dump.c                  \
22	hci_dump_posix_fs.c         \
23	le_device_db_memory.c       \
24
25CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
26CFLAGS_ASAN     = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT
27
28LDFLAGS += -lCppUTest -lCppUTestExt
29LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage
30LDFLAGS_ASAN     = ${LDFLAGS} -fsanitize=address
31
32COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
33COMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
34
35all: build-coverage/test_le_scan build-asan/test_le_scan build-coverage/hci_test build-asan/hci_test
36
37build-%:
38	mkdir -p $@
39
40# compile .ble description
41build-%/profile.h: profile.gatt | build-%
42	python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
43
44build-coverage/%.o: %.c | build-coverage
45	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
46
47build-coverage/%.o: %.cpp | build-coverage
48	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
49
50build-asan/%.o: %.c | build-asan
51	${CC} -c $(CFLAGS_ASAN) $< -o $@
52
53build-asan/%.o: %.cpp | build-asan
54	${CXX} -c $(CFLAGS_ASAN) $< -o $@
55
56build-coverage/test_le_scan: ${COMMON_OBJ_COVERAGE} build-coverage/test_le_scan.o | build-coverage
57	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
58
59build-asan/test_le_scan: ${COMMON_OBJ_ASAN} build-asan/test_le_scan.o | build-asan
60	${CXX} $^ ${LDFLAGS_ASAN} -o $@
61
62build-coverage/hci_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_test.o | build-coverage
63	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
64
65build-asan/hci_test: ${COMMON_OBJ_ASAN} build-asan/hci_test.o | build-asan
66	${CXX} $^ ${LDFLAGS_ASAN} -o $@
67
68test: all
69	build-asan/test_le_scan
70	build-asan/hci_test
71
72coverage: all
73	rm -f build-coverage/*.gcda
74	build-coverage/test_le_scan
75	build-coverage/hci_test
76
77clean:
78	rm -rf build-coverage build-asan
79
80