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