xref: /btstack/test/gap/Makefile (revision 98e87e7776ef9a7fe55135aea8cddc761fe3a7a5)
11470db0cSMatthias Ringwald# Requirements: cpputest.github.io
21470db0cSMatthias Ringwald
31470db0cSMatthias RingwaldBTSTACK_ROOT =  ../..
41470db0cSMatthias 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 -I. -I${BTSTACK_ROOT}/src  -I${BTSTACK_ROOT}/platform/posix
101470db0cSMatthias RingwaldCFLAGS += -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
111470db0cSMatthias Ringwald
121470db0cSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src
131470db0cSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble
141470db0cSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/posix
151470db0cSMatthias Ringwald
161470db0cSMatthias RingwaldCOMMON = \
171470db0cSMatthias Ringwald	ad_parser.c                 \
181470db0cSMatthias Ringwald	btstack_linked_list.c       \
191470db0cSMatthias Ringwald	btstack_memory.c            \
201470db0cSMatthias Ringwald	btstack_memory_pool.c       \
211470db0cSMatthias Ringwald	btstack_util.c              \
221470db0cSMatthias Ringwald	btstack_run_loop.c          \
23fcebe167SMilanka Ringwald	btstack_run_loop_posix.c    \
241470db0cSMatthias Ringwald	hci.c                       \
251470db0cSMatthias Ringwald	hci_cmd.c                   \
261470db0cSMatthias Ringwald	hci_dump.c                  \
2731437b52SMatthias Ringwald	hci_dump_posix_fs.c         \
281470db0cSMatthias Ringwald	le_device_db_memory.c       \
291470db0cSMatthias Ringwald
30cd56fb44SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
3171d52576SMatthias RingwaldCFLAGS_ASAN     = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT
321470db0cSMatthias Ringwald
33cd56fb44SMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt
34cd56fb44SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage
35cd56fb44SMatthias RingwaldLDFLAGS_ASAN     = ${LDFLAGS} -fsanitize=address
363d87570fSMatthias Ringwald
37cd56fb44SMatthias RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o))
38cd56fb44SMatthias RingwaldCOMMON_OBJ_ASAN     = $(addprefix build-asan/,    $(COMMON:.c=.o))
39cd56fb44SMatthias Ringwald
40d3762d15SMatthias Ringwaldall: build-coverage/test_le_scan build-asan/test_le_scan build-coverage/hci_test build-asan/hci_test
41cd56fb44SMatthias Ringwald
42cd56fb44SMatthias Ringwaldbuild-%:
43cd56fb44SMatthias Ringwald	mkdir -p $@
441470db0cSMatthias Ringwald
451470db0cSMatthias Ringwald# compile .ble description
46cd56fb44SMatthias Ringwaldbuild-%/profile.h: profile.gatt | build-%
4775c13281SMatthias Ringwald	python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
481470db0cSMatthias Ringwald
493d87570fSMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage
50cd56fb44SMatthias Ringwald	${CC} -c $(CFLAGS_COVERAGE) $< -o $@
513d87570fSMatthias Ringwald
521d3bd1e5SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage
531d3bd1e5SMatthias Ringwald	${CXX} -c $(CFLAGS_COVERAGE) $< -o $@
541d3bd1e5SMatthias Ringwald
55cd56fb44SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan
56cd56fb44SMatthias Ringwald	${CC} -c $(CFLAGS_ASAN) $< -o $@
57cd56fb44SMatthias Ringwald
581d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan
591d3bd1e5SMatthias Ringwald	${CXX} -c $(CFLAGS_ASAN) $< -o $@
601d3bd1e5SMatthias Ringwald
61cd56fb44SMatthias Ringwaldbuild-coverage/test_le_scan: ${COMMON_OBJ_COVERAGE} build-coverage/test_le_scan.o | build-coverage
621d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
63cd56fb44SMatthias Ringwald
64cd56fb44SMatthias Ringwaldbuild-asan/test_le_scan: ${COMMON_OBJ_ASAN} build-asan/test_le_scan.o | build-asan
651d3bd1e5SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
661470db0cSMatthias Ringwald
67d3762d15SMatthias Ringwaldbuild-coverage/hci_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_test.o | build-coverage
68d3762d15SMatthias Ringwald	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
69d3762d15SMatthias Ringwald
70d3762d15SMatthias Ringwaldbuild-asan/hci_test: ${COMMON_OBJ_ASAN} build-asan/hci_test.o | build-asan
71d3762d15SMatthias Ringwald	${CXX} $^ ${LDFLAGS_ASAN} -o $@
72d3762d15SMatthias Ringwald
731470db0cSMatthias Ringwaldtest: all
74cd56fb44SMatthias Ringwald	build-asan/test_le_scan
75d3762d15SMatthias Ringwald	build-asan/hci_test
763d87570fSMatthias Ringwald
773d87570fSMatthias Ringwaldcoverage: all
78cd56fb44SMatthias Ringwald	rm -f build-coverage/*.gcda
793d87570fSMatthias Ringwald	build-coverage/test_le_scan
80d3762d15SMatthias Ringwald	build-coverage/hci_test
811470db0cSMatthias Ringwald
821470db0cSMatthias Ringwaldclean:
83cd56fb44SMatthias Ringwald	rm -rf build-coverage build-asan
841470db0cSMatthias Ringwald
85