1bdcc259dSMatthias Ringwald# Requirements: cpputest.github.io 2bdcc259dSMatthias Ringwald 3bdcc259dSMatthias RingwaldBTSTACK_ROOT = ../.. 4bdcc259dSMatthias 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 101d3bd1e5SMatthias RingwaldCPPFLAGS = -Wall -Wno-unused -fno-exceptions 11f400efd4SMatthias RingwaldCFLAGS += -I. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/platform/posix 12bdcc259dSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/mbedtls/include 13bdcc259dSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/micro-ecc 14f13fc290SMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael 15cd56fb44SMatthias Ringwald 16cd56fb44SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage 1771d52576SMatthias RingwaldCFLAGS_ASAN = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT 18cd56fb44SMatthias Ringwald 19bdcc259dSMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt 20cd56fb44SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 21cd56fb44SMatthias RingwaldLDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 22bdcc259dSMatthias Ringwald 23bdcc259dSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src 24bdcc259dSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble 25bdcc259dSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/posix 26bdcc259dSMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/micro-ecc 27f13fc290SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/3rd-party/rijndael 28bdcc259dSMatthias Ringwald 297a65bea8SMatthias Ringwaldall: build-coverage/aes_ccm_test build-coverage/aestest build-coverage/ecc_micro_ecc build-coverage/aes_cmac_test build-coverage/aes_cmac_test2 \ 307a65bea8SMatthias Ringwald build-asan/aes_ccm_test build-asan/aestest build-asan/ecc_micro_ecc build-asan/aes_cmac_test build-asan/aes_cmac_test2 31bdcc259dSMatthias Ringwald 32cd56fb44SMatthias Ringwaldbuild-%: 33cd56fb44SMatthias Ringwald mkdir -p $@ 34bdcc259dSMatthias Ringwald 35cd56fb44SMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage 367a65bea8SMatthias Ringwald ${CC} -c ${CFLAGS_COVERAGE} $< -o $@ 377a65bea8SMatthias Ringwald 381d3bd1e5SMatthias Ringwaldbuild-coverage/%.o: %.cpp | build-coverage 391d3bd1e5SMatthias Ringwald ${CXX} -c ${CFLAGS_COVERAGE} $< -o $@ 401d3bd1e5SMatthias Ringwald 411d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan 427a65bea8SMatthias Ringwald ${CC} -c ${CFLAGS_ASAN} $< -o $@ 433d87570fSMatthias Ringwald 441d3bd1e5SMatthias Ringwaldbuild-asan/%.o: %.cpp | build-asan 451d3bd1e5SMatthias Ringwald ${CXX} -c ${CFLAGS_ASAN} $< -o $@ 461d3bd1e5SMatthias Ringwald 47bdcc259dSMatthias Ringwald 48cd56fb44SMatthias Ringwaldbuild-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 491d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 50bdcc259dSMatthias Ringwald 51cd56fb44SMatthias Ringwaldbuild-coverage/aestest: build-coverage/aestest.o build-coverage/rijndael.o | build-coverage 521d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 53bdcc259dSMatthias Ringwald 54cd56fb44SMatthias Ringwaldbuild-coverage/ecc_micro_ecc: build-coverage/ecc_micro_ecc.o build-coverage/uECC.o | build-coverage 551d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 56cd56fb44SMatthias Ringwald 57cd56fb44SMatthias Ringwaldbuild-coverage/aes_cmac_test: build-coverage/aes_cmac_test.o build-coverage/aes_cmac.o build-coverage/rijndael.o | build-coverage 581d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 597a65bea8SMatthias Ringwald 60e0ff5d41SMatthias Ringwaldbuild-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 611d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ 62cd56fb44SMatthias Ringwald 63cd56fb44SMatthias Ringwald 64cd56fb44SMatthias Ringwaldbuild-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 651d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 66cd56fb44SMatthias Ringwald 67cd56fb44SMatthias Ringwaldbuild-asan/aestest: build-asan/aestest.o build-asan/rijndael.o | build-asan 681d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 69cd56fb44SMatthias Ringwald 70cd56fb44SMatthias Ringwaldbuild-asan/ecc_micro_ecc: build-asan/ecc_micro_ecc.o build-asan/uECC.o | build-asan 711d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 72cd56fb44SMatthias Ringwald 73cd56fb44SMatthias Ringwaldbuild-asan/aes_cmac_test: build-asan/aes_cmac_test.o build-asan/aes_cmac.o build-asan/rijndael.o | build-asan 741d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 75cd56fb44SMatthias Ringwald 76e0ff5d41SMatthias Ringwaldbuild-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 771d3bd1e5SMatthias Ringwald ${CXX} $^ ${LDFLAGS_ASAN} -o $@ 78bdcc259dSMatthias Ringwald 79bdcc259dSMatthias Ringwaldtest: all 80cd56fb44SMatthias Ringwald build-asan/aes_cmac_test 817a65bea8SMatthias Ringwald build-asan/aes_cmac_test2 82cf5f2658SMatthias Ringwald build-asan/aes_ccm_test 83cd56fb44SMatthias Ringwald build-asan/aestest 84cd56fb44SMatthias Ringwald build-asan/ecc_micro_ecc 853d87570fSMatthias Ringwald 863d87570fSMatthias Ringwaldcoverage: all 87cd56fb44SMatthias Ringwald rm -f build-coverage/*.gcda 883d87570fSMatthias Ringwald build-coverage/aes_cmac_test 897a65bea8SMatthias Ringwald build-coverage/aes_cmac_test2 90cf5f2658SMatthias Ringwald build-coverage/aes_ccm_test 913d87570fSMatthias Ringwald build-coverage/aestest 923d87570fSMatthias Ringwald build-coverage/ecc_micro_ecc 93bdcc259dSMatthias Ringwald 94bdcc259dSMatthias Ringwaldclean: 95cd56fb44SMatthias Ringwald rm -rf build-coverage build-asan 96bdcc259dSMatthias Ringwald 97