xref: /btstack/test/security_manager_sc/Makefile (revision d6de13b21f4bc2ba779236aacaf9c78424223082)
16b7b368aSMatthias Ringwald# Makefile for libusb based PTS tests
26b7b368aSMatthias RingwaldBTSTACK_ROOT = ../..
36b7b368aSMatthias Ringwald
498e87e77SMatthias Ringwald# CppuTest from pkg-config
598e87e77SMatthias RingwaldCFLAGS  += ${shell pkg-config --cflags CppuTest}
698e87e77SMatthias RingwaldLDFLAGS += ${shell pkg-config --libs   CppuTest}
798e87e77SMatthias Ringwald
86b7b368aSMatthias RingwaldCORE += \
96b7b368aSMatthias Ringwald	btstack_memory.c            \
106b7b368aSMatthias Ringwald	btstack_linked_list.c	    \
116b7b368aSMatthias Ringwald	btstack_memory_pool.c       \
126b7b368aSMatthias Ringwald	btstack_run_loop.c		    \
136b7b368aSMatthias Ringwald	btstack_util.c 	            \
146b7b368aSMatthias Ringwald	main.c 						\
156b7b368aSMatthias Ringwald	btstack_stdin_posix.c       \
166b7b368aSMatthias Ringwald	btstack_tlv.c 		\
176b7b368aSMatthias Ringwald	btstack_tlv_posix.c 		\
186b7b368aSMatthias Ringwald	rijndael.c \
196b7b368aSMatthias Ringwald
206b7b368aSMatthias RingwaldCOMMON += \
216b7b368aSMatthias Ringwald	hci.c			            \
226b7b368aSMatthias Ringwald	ad_parser.c                 \
236b7b368aSMatthias Ringwald	hci_cmd.c		            \
24*d6de13b2SMatthias Ringwald	hci_event_builder.c         \
256b7b368aSMatthias Ringwald	hci_dump.c		            \
2614dd5758SMatthias Ringwald	hci_dump_posix_fs.c         \
276b7b368aSMatthias Ringwald	l2cap.c			            \
286b7b368aSMatthias Ringwald	l2cap_signaling.c	        \
296b7b368aSMatthias Ringwald	hci_transport_h2_libusb.c 	\
30a921db49SMatthias Ringwald	btstack_crypto.c            \
316b7b368aSMatthias Ringwald	btstack_run_loop_posix.c 	\
326b7b368aSMatthias Ringwald	le_device_db_tlv.c 			\
336b7b368aSMatthias Ringwald	sm.c 						\
346b7b368aSMatthias Ringwald	uECC.c 					    \
356b7b368aSMatthias Ringwald	btstack_chipset_zephyr.c    \
366b7b368aSMatthias Ringwald
376b7b368aSMatthias RingwaldATT	+= \
386b7b368aSMatthias Ringwald	att_dispatch.c       	    \
396b7b368aSMatthias Ringwald
406b7b368aSMatthias RingwaldGATT_SERVER += \
416b7b368aSMatthias Ringwald	att_db.c 				 	    \
426b7b368aSMatthias Ringwald	att_server.c        	    \
436b7b368aSMatthias Ringwald
446b7b368aSMatthias RingwaldGATT_CLIENT += \
456b7b368aSMatthias Ringwald	gatt_client.c        	    \
466b7b368aSMatthias Ringwald
476b7b368aSMatthias RingwaldSM += \
486b7b368aSMatthias Ringwald	sm.c 				 	    \
496b7b368aSMatthias Ringwald
50a921db49SMatthias RingwaldCFLAGS += -g -std=c99 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wunused-parameter -Wredundant-decls -Wsign-compare
516b7b368aSMatthias RingwaldCFLAGS += -D ENABLE_TESTING_SUPPORT
5228b5b606SMatthias RingwaldCFLAGS += -DCOVERAGE
53a921db49SMatthias RingwaldCFLAGS += -I.
543d87570fSMatthias RingwaldCFLAGS += -Ibuild-coverage
556b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/src
56a921db49SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/micro-ecc
576b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael
586b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/tinydir
596b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/chipset/zephyr
606b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/posix
616b7b368aSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/platform/embedded
626b7b368aSMatthias Ringwald
636b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src
646b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble
656b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/posix
666b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/libusb
676b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/micro-ecc
686b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/rijndael
696b7b368aSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/chipset/zephyr
706b7b368aSMatthias Ringwald
71a921db49SMatthias Ringwald# coverage
7228b5b606SMatthias RingwaldCFLAGS  += -fprofile-arcs -ftest-coverage
7328b5b606SMatthias RingwaldLDFLAGS += -fprofile-arcs -ftest-coverage
74a921db49SMatthias Ringwald
756b7b368aSMatthias Ringwald# use pkg-config for libusb
766b7b368aSMatthias RingwaldCFLAGS  += $(shell pkg-config libusb-1.0 --cflags)
776b7b368aSMatthias RingwaldLDFLAGS += $(shell pkg-config libusb-1.0 --libs)
786b7b368aSMatthias Ringwald
793d87570fSMatthias RingwaldCORE_OBJ = $(addprefix build-coverage/,$(CORE:.c=.o))
803d87570fSMatthias RingwaldCOMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o))
813d87570fSMatthias RingwaldATT_OBJ = $(addprefix build-coverage/,$(ATT:.c=.o))
823d87570fSMatthias RingwaldSM_OBJ = $(addprefix build-coverage/,$(SM:.c=.o))
833d87570fSMatthias RingwaldGATT_CLIENT_OBJ = $(addprefix build-coverage/,$(GATT_CLIENT:.c=.o))
843d87570fSMatthias RingwaldGATT_SERVER_OBJ = $(addprefix build-coverage/,$(GATT_SERVER:.c=.o))
856b7b368aSMatthias Ringwald
86a921db49SMatthias Ringwald# compile .gatt descriptions
873d87570fSMatthias Ringwaldbuild-coverage/%.h: %.gatt
88a921db49SMatthias Ringwald	python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
89a921db49SMatthias Ringwald
90e8a62bb7SMatthias Ringwald.PHONY: all coverage test
91e8a62bb7SMatthias Ringwald
923d87570fSMatthias Ringwaldall: build-coverage/sm_test
936b7b368aSMatthias Ringwald
94cd56fb44SMatthias Ringwaldbuild-%:
95cd56fb44SMatthias Ringwald	mkdir -p $@
963d87570fSMatthias Ringwald
973d87570fSMatthias Ringwaldbuild-coverage/sm_test.h: sm_test.gatt | build-coverage
983d87570fSMatthias Ringwald	python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
993d87570fSMatthias Ringwald
1003d87570fSMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage
1013d87570fSMatthias Ringwald	${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@
1023d87570fSMatthias Ringwald
1033d87570fSMatthias Ringwaldbuild-coverage/sm_test: build-coverage/sm_test.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${GATT_CLIENT_OBJ}  ${SM_OBJ} build-coverage/sm_test.o | build-coverage
1043d87570fSMatthias Ringwald	${CC} $(filter-out build-coverage/sm_test.h,$^) ${LDFLAGS} -o $@
1056b7b368aSMatthias Ringwald
1066b7b368aSMatthias Ringwaldmyclean:
1073d87570fSMatthias Ringwald	rm -rf build-coverage
108a921db49SMatthias Ringwald	rm -f  *.o
109a921db49SMatthias Ringwald	rm -rf *.dSYM
110a921db49SMatthias Ringwald	rm -f *.gcno *.gcda
1112ce916b3SMatthias Ringwald	rm -rf SM_*
1126b7b368aSMatthias Ringwald
1136b7b368aSMatthias Ringwaldclean: myclean
114795c77dcSMatthias Ringwald
115228e70a5SMatthias Ringwaldtest: build-coverage/sm_test
1169a09a08aSMatthias Ringwald	rm -rf SM_*
1172ce916b3SMatthias Ringwald	python3 ./sm_test.py
118e8a62bb7SMatthias Ringwald
119228e70a5SMatthias Ringwaldcoverage: build-coverage/sm_test
120e8a62bb7SMatthias Ringwald	# delete trace data
121cd56fb44SMatthias Ringwald	rm -f build-coverage/*.gcda
122e8a62bb7SMatthias Ringwald	# run tests
123e8a62bb7SMatthias Ringwald	make test
124e8a62bb7SMatthias Ringwald	# collect traces
125772d5e9eSMatthias Ringwald	lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-sm-sc.info
126e8a62bb7SMatthias Ringwald	# demangle
127772d5e9eSMatthias Ringwald	python3 ../coverage_demangle.py coverage-sm-sc.info
128