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