1353d71a9SMatthias RingwaldCC = g++ 2353d71a9SMatthias Ringwald 3353d71a9SMatthias Ringwald# Requirements: cpputest.github.io 4353d71a9SMatthias Ringwald 5353d71a9SMatthias RingwaldBTSTACK_ROOT = ../.. 6353d71a9SMatthias Ringwald 7353d71a9SMatthias RingwaldCFLAGS = -g -Wall \ 8713ac744SMatthias Ringwald -I. \ 9353d71a9SMatthias Ringwald -I${BTSTACK_ROOT}/src \ 10353d71a9SMatthias Ringwald -I${BTSTACK_ROOT}/platform/embedded 11353d71a9SMatthias Ringwald 12713ac744SMatthias RingwaldCFLAGS += -DHAVE_HAL_AUDIO 13713ac744SMatthias Ringwald 14cd56fb44SMatthias RingwaldCFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage 15cd56fb44SMatthias RingwaldCFLAGS_ASAN = ${CFLAGS} -fsanitize=address 16cd56fb44SMatthias Ringwald 17353d71a9SMatthias RingwaldLDFLAGS += -lCppUTest -lCppUTestExt 18cd56fb44SMatthias RingwaldLDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage 19cd56fb44SMatthias RingwaldLDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address 20353d71a9SMatthias Ringwald 21353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src 22353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/src/ble 23353d71a9SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/embedded 24713ac744SMatthias RingwaldVPATH += ${BTSTACK_ROOT}/platform/freertos 25353d71a9SMatthias Ringwald 26353d71a9SMatthias RingwaldCOMMON = \ 27353d71a9SMatthias Ringwald btstack_em9304_spi_embedded.c \ 28516e2db7SMilanka Ringwald btstack_memory.c \ 29a288e044SMatthias Ringwald btstack_run_loop.c \ 30353d71a9SMatthias Ringwald btstack_run_loop_embedded.c \ 31353d71a9SMatthias Ringwald btstack_stdin_embedded.c \ 32353d71a9SMatthias Ringwald btstack_tlv_flash_bank.c \ 33353d71a9SMatthias Ringwald btstack_uart_block_embedded.c \ 34353d71a9SMatthias Ringwald hal_flash_bank_memory.c \ 35a288e044SMatthias Ringwald btstack_audio.c \ 36a288e044SMatthias Ringwald btstack_audio_embedded.c \ 37a288e044SMatthias Ringwald btstack_linked_list.c \ 38a288e044SMatthias Ringwald btstack_resample.c \ 39a288e044SMatthias Ringwald btstack_ring_buffer.c \ 40a288e044SMatthias Ringwald btstack_run_loop_base.c \ 41a288e044SMatthias Ringwald btstack_slip.c \ 42a288e044SMatthias Ringwald btstack_util.c \ 43353d71a9SMatthias Ringwald hci_dump.c \ 44a288e044SMatthias Ringwald hci_transport_em9304_spi.c \ 45a288e044SMatthias Ringwald hci_transport_h4.c \ 46a288e044SMatthias Ringwald hci_transport_h5.c \ 47353d71a9SMatthias Ringwald 48cd56fb44SMatthias RingwaldFREERTOS = \ 49cd56fb44SMatthias Ringwald btstack_run_loop_freertos.c \ 50cd56fb44SMatthias Ringwald btstack_uart_block_freertos.c \ 51353d71a9SMatthias Ringwald 52cd56fb44SMatthias RingwaldCOMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) 53cd56fb44SMatthias RingwaldCOMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) 54713ac744SMatthias Ringwald 55cd56fb44SMatthias RingwaldFREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o)) 56cd56fb44SMatthias RingwaldFREERTOS_OBJ_ASAN = $(addprefix build-asan/, $(FREERTOS:.c=.o)) 57353d71a9SMatthias Ringwald 58cd56fb44SMatthias Ringwaldall: build-coverage/embedded_test build-coverage/freertos_test build-asan/embedded_test build-asan/freertos_test 593d87570fSMatthias Ringwald 60cd56fb44SMatthias Ringwaldbuild-%: 61cd56fb44SMatthias Ringwald mkdir -p $@ 62353d71a9SMatthias Ringwald 63cd56fb44SMatthias Ringwaldbuild-coverage/%.o: %.c | build-coverage 64cd56fb44SMatthias Ringwald ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ 65cd56fb44SMatthias Ringwald 66cd56fb44SMatthias Ringwaldbuild-asan/%.o: %.c | build-asan 67cd56fb44SMatthias Ringwald ${CC} -c $(CFLAGS_ASAN) $< -o $@ 68cd56fb44SMatthias Ringwald 69cd56fb44SMatthias Ringwald 70*38b632b5SMatthias Ringwaldbuild-coverage/embedded_test: ${COMMON_OBJ_COVERAGE} build-coverage/embedded_test.o | build-coverage 71cd56fb44SMatthias Ringwald ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 72cd56fb44SMatthias Ringwald 73*38b632b5SMatthias Ringwaldbuild-coverage/freertos_test: ${COMMON_OBJ_COVERAGE} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage 74cd56fb44SMatthias Ringwald ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ 75cd56fb44SMatthias Ringwald 76*38b632b5SMatthias Ringwaldbuild-asan/embedded_test: ${COMMON_OBJ_ASAN} build-asan/embedded_test.o | build-asan 77cd56fb44SMatthias Ringwald ${CC} $^ ${LDFLAGS_ASAN} -o $@ 78cd56fb44SMatthias Ringwald 79*38b632b5SMatthias Ringwaldbuild-asan/freertos_test: ${COMMON_OBJ_ASAN} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan 80cd56fb44SMatthias Ringwald ${CC} $^ ${LDFLAGS_ASAN} -o $@ 81713ac744SMatthias Ringwald 82353d71a9SMatthias Ringwaldtest: all 83cd56fb44SMatthias Ringwald build-asan/embedded_test 84cd56fb44SMatthias Ringwald build-asan/freertos_test 853d87570fSMatthias Ringwald 863d87570fSMatthias Ringwaldcoverage: all 87cd56fb44SMatthias Ringwald rm -f build-coverage/*.gcda 883d87570fSMatthias Ringwald build-coverage/embedded_test 893d87570fSMatthias Ringwald build-coverage/freertos_test 90353d71a9SMatthias Ringwald 91353d71a9SMatthias Ringwaldclean: 92cd56fb44SMatthias Ringwald rm -rf build-coverage build-asan 93