xref: /btstack/test/gatt-service-client/Makefile (revision b5a8309e17279b25c4779bd9b9c0fa4f2540a11d)
1# Requirements: cpputest.github.io
2
3BTSTACK_ROOT =  ../..
4
5CFLAGS  = -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null -Ibuild-coverage -I../
6CFLAGS += -I${BTSTACK_ROOT}/src
7CFLAGS += -I${BTSTACK_ROOT}/src/ble
8CFLAGS += -I${BTSTACK_ROOT}/test/mock
9CFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael
10# CFLAGS += -D ENABLE_TESTING_SUPPORT
11
12VPATH += ${BTSTACK_ROOT}/src
13VPATH += ${BTSTACK_ROOT}/src/ble
14VPATH += ${BTSTACK_ROOT}/src/ble/gatt-service
15VPATH += ${BTSTACK_ROOT}/platform/posix
16VPATH += ${BTSTACK_ROOT}/3rd-party/rijndael
17VPATH += ${BTSTACK_ROOT}/test/mock
18
19COMMON = \
20	btstack_linked_list.c       \
21	btstack_util.c              \
22	hci_dump.c                  \
23	mock_gatt_client.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
35
36all: \
37	build-coverage/battery_service_client_test build-asan/battery_service_client_test \
38	build-coverage/ancs_client_test build-asan/ancs_client_test \
39	build-coverage/device_information_service_client_test build-asan/device_information_service_client_test \
40
41build-%:
42	mkdir -p $@
43
44build-%/ancs_client_profile.h: ancs_client_profile.gatt| build-%
45	python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
46
47
48build-coverage/%.o: %.c | build-coverage
49	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
50
51build-coverage/%.o: %.cpp | build-coverage
52	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
53
54build-asan/%.o: %.c | build-asan
55	${CC} -c $(CFLAGS_ASAN) $< -o $@
56
57build-asan/%.o: %.cpp | build-asan
58	${CXX} -c $(CFLAGS_ASAN) $< -o $@
59
60build-coverage/battery_service_client_test: ${COMMON_OBJ_COVERAGE} build-coverage/battery_service_client_test.o  build-coverage/battery_service_client.o | build-coverage
61	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
62
63build-asan/battery_service_client_test: ${COMMON_OBJ_ASAN} build-asan/battery_service_client_test.o build-asan/battery_service_client.o | build-asan
64	${CXX} $^ ${LDFLAGS_ASAN} -o $@
65
66build-coverage/ancs_client_test: ${COMMON_OBJ_COVERAGE} build-coverage/ancs_client_test.o build-coverage/ancs_client.o | build-coverage
67	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
68
69build-asan/ancs_client_test: ${COMMON_OBJ_ASAN} build-asan/ancs_client_test.o build-asan/ancs_client.o | build-asan
70	${CXX} $^ ${LDFLAGS_ASAN} -o $@
71
72build-coverage/device_information_service_client_test: ${COMMON_OBJ_COVERAGE} build-coverage/device_information_service_client_test.o build-coverage/device_information_service_client.o | build-coverage
73	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
74
75build-asan/device_information_service_client_test: ${COMMON_OBJ_ASAN} build-asan/device_information_service_client_test.o build-asan/device_information_service_client.o | build-asan
76	${CXX} $^ ${LDFLAGS_ASAN} -o $@
77
78
79test: all
80	build-asan/battery_service_client_test
81	build-asan/ancs_client_test
82	build-asan/device_information_service_client_test
83
84coverage: all
85	rm -f build-coverage/*.gcda
86	build-coverage/battery_service_client_test
87	build-coverage/ancs_client_test
88	build-coverage/device_information_service_client_test
89
90clean:
91	rm -rf build-coverage build-asan
92
93