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