1MBEDTLS_TEST_PATH:=../../tests/src 2MBEDTLS_TEST_OBJS:=$(patsubst %.c,%.o,$(wildcard ${MBEDTLS_TEST_PATH}/*.c ${MBEDTLS_TEST_PATH}/drivers/*.c)) 3 4CFLAGS ?= -O2 5WARNING_CFLAGS ?= -Wall -Wextra 6LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../../tests/include -I../../include -D_FILE_OFFSET_BITS=64 7LOCAL_LDFLAGS = ${MBEDTLS_TEST_OBJS} \ 8 -L../../library \ 9 -lmbedtls$(SHARED_SUFFIX) \ 10 -lmbedx509$(SHARED_SUFFIX) \ 11 -lmbedcrypto$(SHARED_SUFFIX) 12 13LOCAL_CFLAGS += $(patsubst -I../%,-I../../%,$(THIRDPARTY_INCLUDES)) 14 15ifndef SHARED 16DEP=../../library/libmbedcrypto.a ../../library/libmbedx509.a ../../library/libmbedtls.a 17else 18DEP=../../library/libmbedcrypto.$(DLEXT) ../../library/libmbedx509.$(DLEXT) ../../library/libmbedtls.$(DLEXT) 19endif 20 21 22DLEXT ?= so 23EXEXT= 24SHARED_SUFFIX= 25 26ifdef FUZZINGENGINE 27LOCAL_LDFLAGS += -lFuzzingEngine 28endif 29 30ifdef WINDOWS_BUILD 31LOCAL_LDFLAGS += -lbcrypt 32endif 33 34# A test application is built for each suites/test_suite_*.data file. 35# Application name is same as .data file's base name and can be 36# constructed by stripping path 'suites/' and extension .data. 37APPS = $(basename $(wildcard fuzz_*.c)) 38 39# Construct executable name by adding OS specific suffix $(EXEXT). 40BINARIES := $(addsuffix $(EXEXT),$(APPS)) 41 42.SILENT: 43 44.PHONY: all check test clean 45 46all: $(BINARIES) 47 48$(DEP): 49 $(MAKE) -C ../../library 50 51C_FILES := $(addsuffix .c,$(APPS)) 52 53%.o: %.c 54 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $< -o $@ 55 56 57ifdef FUZZINGENGINE 58$(BINARIES): %$(EXEXT): %.o common.o $(DEP) 59 echo " $(CC) common.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@" 60 $(CXX) common.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 61else 62$(BINARIES): %$(EXEXT): %.o common.o onefile.o $(DEP) 63 echo " $(CC) common.o onefile.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@" 64 $(CC) common.o onefile.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 65endif 66 67clean: 68ifndef WINDOWS 69 rm -rf $(BINARIES) *.o 70else 71 if exist *.o del /Q /F *.o 72 if exist *.exe del /Q /F *.exe 73endif 74