xref: /btstack/test/crypto/Makefile (revision 75aabb0d580501618b3e59f4b0ad9f03fa6606ab)
1# Requirements: cpputest.github.io
2
3BTSTACK_ROOT =  ../..
4
5CFLAGS  = -DUNIT_TEST -g
6CPPFLAGS = -Wall -Wno-unused -fno-exceptions
7CFLAGS += -I. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/platform/posix
8CFLAGS += -I${BTSTACK_ROOT}/3rd-party/mbedtls/include
9CFLAGS += -I${BTSTACK_ROOT}/3rd-party/micro-ecc
10CFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael
11
12CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage
13CFLAGS_ASAN     = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT
14
15LDFLAGS += -lCppUTest -lCppUTestExt
16LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage
17LDFLAGS_ASAN     = ${LDFLAGS} -fsanitize=address
18
19VPATH += ${BTSTACK_ROOT}/src
20VPATH += ${BTSTACK_ROOT}/src/ble
21VPATH += ${BTSTACK_ROOT}/platform/posix
22VPATH += ${BTSTACK_ROOT}/3rd-party/micro-ecc
23VPATH += ${BTSTACK_ROOT}/3rd-party/rijndael
24
25all: build-coverage/aes_ccm_test build-coverage/aestest build-coverage/ecc_micro_ecc build-coverage/aes_cmac_test build-coverage/aes_cmac_test2 \
26	 build-asan/aes_ccm_test build-asan/aestest build-asan/ecc_micro_ecc build-asan/aes_cmac_test build-asan/aes_cmac_test2
27
28build-%:
29	mkdir -p $@
30
31build-coverage/%.o: %.c | build-coverage
32	${CC} -c ${CFLAGS_COVERAGE} $< -o $@
33
34build-coverage/%.o: %.cpp | build-coverage
35	${CXX} -c ${CFLAGS_COVERAGE} $< -o $@
36
37build-asan/%.o: %.c | build-asan
38	${CC} -c ${CFLAGS_ASAN} $< -o $@
39
40build-asan/%.o: %.cpp | build-asan
41	${CXX} -c ${CFLAGS_ASAN} $< -o $@
42
43
44build-coverage/aes_ccm_test: build-coverage/aes_ccm.o build-coverage/aes_ccm_test.o build-coverage/btstack_crypto.o build-coverage/btstack_linked_list.o build-coverage/hci_cmd.o build-coverage/btstack_util.o build-coverage/hci_dump.o build-coverage/aes_cmac.o build-coverage/rijndael.o build-coverage/mock.o | build-coverage
45	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
46
47build-coverage/aestest: build-coverage/aestest.o build-coverage/rijndael.o | build-coverage
48	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
49
50build-coverage/ecc_micro_ecc: build-coverage/ecc_micro_ecc.o build-coverage/uECC.o | build-coverage
51	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
52
53build-coverage/aes_cmac_test: build-coverage/aes_cmac_test.o build-coverage/aes_cmac.o build-coverage/rijndael.o | build-coverage
54	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
55
56build-coverage/aes_cmac_test2: build-coverage/aes_cmac_test2.o build-coverage/btstack_crypto.o  build-coverage/btstack_linked_list.o  build-coverage/hci_cmd.o  build-coverage/btstack_util.o  build-coverage/hci_dump.o  build-coverage/rijndael.o | build-asan
57	${CXX} $^ ${LDFLAGS_COVERAGE} -o $@
58
59
60build-asan/aes_ccm_test: build-asan/aes_ccm.o build-asan/aes_ccm_test.o build-asan/btstack_crypto.o build-asan/btstack_linked_list.o build-asan/hci_cmd.o build-asan/btstack_util.o build-asan/hci_dump.o build-asan/aes_cmac.o build-asan/rijndael.o build-asan/mock.o | build-asan
61	${CXX} $^  ${LDFLAGS_ASAN} -o $@
62
63build-asan/aestest: build-asan/aestest.o build-asan/rijndael.o | build-asan
64	${CXX} $^ ${LDFLAGS_ASAN} -o $@
65
66build-asan/ecc_micro_ecc: build-asan/ecc_micro_ecc.o build-asan/uECC.o | build-asan
67	${CXX} $^ ${LDFLAGS_ASAN} -o $@
68
69build-asan/aes_cmac_test: build-asan/aes_cmac_test.o build-asan/aes_cmac.o build-asan/rijndael.o | build-asan
70	${CXX} $^  ${LDFLAGS_ASAN} -o $@
71
72build-asan/aes_cmac_test2: build-asan/aes_cmac_test2.o build-asan/btstack_crypto.o  build-asan/btstack_linked_list.o  build-asan/hci_cmd.o  build-asan/btstack_util.o  build-asan/hci_dump.o  build-asan/rijndael.o | build-asan
73	${CXX} $^ ${LDFLAGS_ASAN} -o $@
74
75test: all
76	build-asan/aes_cmac_test
77	build-asan/aes_cmac_test2
78	build-asan/aes_ccm_test
79	build-asan/aestest
80	build-asan/ecc_micro_ecc
81
82coverage: all
83	rm -f build-coverage/*.gcda
84	build-coverage/aes_cmac_test
85	build-coverage/aes_cmac_test2
86	build-coverage/aes_ccm_test
87	build-coverage/aestest
88	build-coverage/ecc_micro_ecc
89
90clean:
91	rm -rf build-coverage build-asan
92
93