1*62c56f98SSadaf Ebrahimi 2*62c56f98SSadaf Ebrahimi# To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS 3*62c56f98SSadaf Ebrahimi 4*62c56f98SSadaf EbrahimiCFLAGS ?= -O2 5*62c56f98SSadaf EbrahimiWARNING_CFLAGS ?= -Wall -Wextra -Wformat=2 -Wno-format-nonliteral 6*62c56f98SSadaf EbrahimiWARNING_CXXFLAGS ?= -Wall -Wextra -Wformat=2 -Wno-format-nonliteral 7*62c56f98SSadaf EbrahimiLDFLAGS ?= 8*62c56f98SSadaf Ebrahimi 9*62c56f98SSadaf EbrahimiMBEDTLS_TEST_PATH:=../tests/src 10*62c56f98SSadaf EbrahimiMBEDTLS_TEST_OBJS:=$(patsubst %.c,%.o,$(wildcard ${MBEDTLS_TEST_PATH}/*.c ${MBEDTLS_TEST_PATH}/drivers/*.c)) 11*62c56f98SSadaf Ebrahimi 12*62c56f98SSadaf EbrahimiLOCAL_CFLAGS = $(WARNING_CFLAGS) -I../tests/include -I../include -D_FILE_OFFSET_BITS=64 13*62c56f98SSadaf EbrahimiLOCAL_CXXFLAGS = $(WARNING_CXXFLAGS) -I../include -I../tests/include -D_FILE_OFFSET_BITS=64 14*62c56f98SSadaf EbrahimiLOCAL_LDFLAGS = ${MBEDTLS_TEST_OBJS} \ 15*62c56f98SSadaf Ebrahimi -L../library \ 16*62c56f98SSadaf Ebrahimi -lmbedtls$(SHARED_SUFFIX) \ 17*62c56f98SSadaf Ebrahimi -lmbedx509$(SHARED_SUFFIX) \ 18*62c56f98SSadaf Ebrahimi -lmbedcrypto$(SHARED_SUFFIX) 19*62c56f98SSadaf Ebrahimi 20*62c56f98SSadaf Ebrahimiifeq ($(shell uname -s),Linux) 21*62c56f98SSadaf EbrahimiDLOPEN_LDFLAGS ?= -ldl 22*62c56f98SSadaf Ebrahimielse 23*62c56f98SSadaf EbrahimiDLOPEN_LDFLAGS ?= 24*62c56f98SSadaf Ebrahimiendif 25*62c56f98SSadaf Ebrahimi 26*62c56f98SSadaf Ebrahimiinclude ../3rdparty/Makefile.inc 27*62c56f98SSadaf EbrahimiLOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES) 28*62c56f98SSadaf Ebrahimi 29*62c56f98SSadaf Ebrahimiifndef SHARED 30*62c56f98SSadaf EbrahimiMBEDLIBS=../library/libmbedcrypto.a ../library/libmbedx509.a ../library/libmbedtls.a 31*62c56f98SSadaf Ebrahimielse 32*62c56f98SSadaf EbrahimiMBEDLIBS=../library/libmbedcrypto.$(DLEXT) ../library/libmbedx509.$(DLEXT) ../library/libmbedtls.$(DLEXT) 33*62c56f98SSadaf Ebrahimiendif 34*62c56f98SSadaf EbrahimiDEP=${MBEDLIBS} ${MBEDTLS_TEST_OBJS} 35*62c56f98SSadaf Ebrahimi 36*62c56f98SSadaf Ebrahimiifdef DEBUG 37*62c56f98SSadaf EbrahimiLOCAL_CFLAGS += -g3 38*62c56f98SSadaf Ebrahimiendif 39*62c56f98SSadaf Ebrahimi 40*62c56f98SSadaf Ebrahimi# if we're running on Windows, build for Windows 41*62c56f98SSadaf Ebrahimiifdef WINDOWS 42*62c56f98SSadaf EbrahimiWINDOWS_BUILD=1 43*62c56f98SSadaf Ebrahimiendif 44*62c56f98SSadaf Ebrahimi 45*62c56f98SSadaf Ebrahimiifdef WINDOWS_BUILD 46*62c56f98SSadaf EbrahimiDLEXT=dll 47*62c56f98SSadaf EbrahimiEXEXT=.exe 48*62c56f98SSadaf EbrahimiLOCAL_LDFLAGS += -lws2_32 -lbcrypt 49*62c56f98SSadaf Ebrahimiifdef SHARED 50*62c56f98SSadaf EbrahimiSHARED_SUFFIX=.$(DLEXT) 51*62c56f98SSadaf Ebrahimiendif 52*62c56f98SSadaf Ebrahimielse 53*62c56f98SSadaf EbrahimiDLEXT ?= so 54*62c56f98SSadaf EbrahimiEXEXT= 55*62c56f98SSadaf EbrahimiSHARED_SUFFIX= 56*62c56f98SSadaf Ebrahimiendif 57*62c56f98SSadaf Ebrahimi 58*62c56f98SSadaf Ebrahimiifdef WINDOWS 59*62c56f98SSadaf EbrahimiPYTHON ?= python 60*62c56f98SSadaf Ebrahimielse 61*62c56f98SSadaf EbrahimiPYTHON ?= $(shell if type python3 >/dev/null 2>/dev/null; then echo python3; else echo python; fi) 62*62c56f98SSadaf Ebrahimiendif 63*62c56f98SSadaf Ebrahimi 64*62c56f98SSadaf Ebrahimi# Only build the dlopen test in shared library builds, and not when building 65*62c56f98SSadaf Ebrahimi# for Windows. 66*62c56f98SSadaf Ebrahimiifdef BUILD_DLOPEN 67*62c56f98SSadaf Ebrahimi# Don't override the value 68*62c56f98SSadaf Ebrahimielse ifdef WINDOWS_BUILD 69*62c56f98SSadaf EbrahimiBUILD_DLOPEN = 70*62c56f98SSadaf Ebrahimielse ifdef SHARED 71*62c56f98SSadaf EbrahimiBUILD_DLOPEN = y 72*62c56f98SSadaf Ebrahimielse 73*62c56f98SSadaf EbrahimiBUILD_DLOPEN = 74*62c56f98SSadaf Ebrahimiendif 75*62c56f98SSadaf Ebrahimi 76*62c56f98SSadaf Ebrahimi## The following assignment is the list of base names of applications that 77*62c56f98SSadaf Ebrahimi## will be built on Windows. Extra Linux/Unix/POSIX-only applications can 78*62c56f98SSadaf Ebrahimi## be declared by appending with `APPS += ...` afterwards. 79*62c56f98SSadaf Ebrahimi## See the get_app_list function in scripts/generate_visualc_files.pl and 80*62c56f98SSadaf Ebrahimi## make sure to check that it still works if you tweak the format here. 81*62c56f98SSadaf EbrahimiAPPS = \ 82*62c56f98SSadaf Ebrahimi aes/crypt_and_hash \ 83*62c56f98SSadaf Ebrahimi cipher/cipher_aead_demo \ 84*62c56f98SSadaf Ebrahimi hash/generic_sum \ 85*62c56f98SSadaf Ebrahimi hash/hello \ 86*62c56f98SSadaf Ebrahimi hash/md_hmac_demo \ 87*62c56f98SSadaf Ebrahimi pkey/dh_client \ 88*62c56f98SSadaf Ebrahimi pkey/dh_genprime \ 89*62c56f98SSadaf Ebrahimi pkey/dh_server \ 90*62c56f98SSadaf Ebrahimi pkey/ecdh_curve25519 \ 91*62c56f98SSadaf Ebrahimi pkey/ecdsa \ 92*62c56f98SSadaf Ebrahimi pkey/gen_key \ 93*62c56f98SSadaf Ebrahimi pkey/key_app \ 94*62c56f98SSadaf Ebrahimi pkey/key_app_writer \ 95*62c56f98SSadaf Ebrahimi pkey/mpi_demo \ 96*62c56f98SSadaf Ebrahimi pkey/pk_decrypt \ 97*62c56f98SSadaf Ebrahimi pkey/pk_encrypt \ 98*62c56f98SSadaf Ebrahimi pkey/pk_sign \ 99*62c56f98SSadaf Ebrahimi pkey/pk_verify \ 100*62c56f98SSadaf Ebrahimi pkey/rsa_decrypt \ 101*62c56f98SSadaf Ebrahimi pkey/rsa_encrypt \ 102*62c56f98SSadaf Ebrahimi pkey/rsa_genkey \ 103*62c56f98SSadaf Ebrahimi pkey/rsa_sign \ 104*62c56f98SSadaf Ebrahimi pkey/rsa_sign_pss \ 105*62c56f98SSadaf Ebrahimi pkey/rsa_verify \ 106*62c56f98SSadaf Ebrahimi pkey/rsa_verify_pss \ 107*62c56f98SSadaf Ebrahimi psa/aead_demo \ 108*62c56f98SSadaf Ebrahimi psa/crypto_examples \ 109*62c56f98SSadaf Ebrahimi psa/hmac_demo \ 110*62c56f98SSadaf Ebrahimi psa/key_ladder_demo \ 111*62c56f98SSadaf Ebrahimi psa/psa_constant_names \ 112*62c56f98SSadaf Ebrahimi random/gen_entropy \ 113*62c56f98SSadaf Ebrahimi random/gen_random_ctr_drbg \ 114*62c56f98SSadaf Ebrahimi ssl/dtls_client \ 115*62c56f98SSadaf Ebrahimi ssl/dtls_server \ 116*62c56f98SSadaf Ebrahimi ssl/mini_client \ 117*62c56f98SSadaf Ebrahimi ssl/ssl_client1 \ 118*62c56f98SSadaf Ebrahimi ssl/ssl_client2 \ 119*62c56f98SSadaf Ebrahimi ssl/ssl_context_info \ 120*62c56f98SSadaf Ebrahimi ssl/ssl_fork_server \ 121*62c56f98SSadaf Ebrahimi ssl/ssl_mail_client \ 122*62c56f98SSadaf Ebrahimi ssl/ssl_server \ 123*62c56f98SSadaf Ebrahimi ssl/ssl_server2 \ 124*62c56f98SSadaf Ebrahimi test/benchmark \ 125*62c56f98SSadaf Ebrahimi test/query_compile_time_config \ 126*62c56f98SSadaf Ebrahimi test/query_included_headers \ 127*62c56f98SSadaf Ebrahimi test/selftest \ 128*62c56f98SSadaf Ebrahimi test/udp_proxy \ 129*62c56f98SSadaf Ebrahimi test/zeroize \ 130*62c56f98SSadaf Ebrahimi util/pem2der \ 131*62c56f98SSadaf Ebrahimi util/strerror \ 132*62c56f98SSadaf Ebrahimi x509/cert_app \ 133*62c56f98SSadaf Ebrahimi x509/cert_req \ 134*62c56f98SSadaf Ebrahimi x509/cert_write \ 135*62c56f98SSadaf Ebrahimi x509/crl_app \ 136*62c56f98SSadaf Ebrahimi x509/load_roots \ 137*62c56f98SSadaf Ebrahimi x509/req_app \ 138*62c56f98SSadaf Ebrahimi# End of APPS 139*62c56f98SSadaf Ebrahimi 140*62c56f98SSadaf Ebrahimiifdef PTHREAD 141*62c56f98SSadaf EbrahimiAPPS += ssl/ssl_pthread_server 142*62c56f98SSadaf Ebrahimiendif 143*62c56f98SSadaf Ebrahimi 144*62c56f98SSadaf Ebrahimiifdef BUILD_DLOPEN 145*62c56f98SSadaf EbrahimiAPPS += test/dlopen 146*62c56f98SSadaf Ebrahimiendif 147*62c56f98SSadaf Ebrahimi 148*62c56f98SSadaf Ebrahimiifdef TEST_CPP 149*62c56f98SSadaf EbrahimiAPPS += test/cpp_dummy_build 150*62c56f98SSadaf Ebrahimiendif 151*62c56f98SSadaf Ebrahimi 152*62c56f98SSadaf EbrahimiEXES = $(patsubst %,%$(EXEXT),$(APPS)) 153*62c56f98SSadaf Ebrahimi 154*62c56f98SSadaf Ebrahimi.SILENT: 155*62c56f98SSadaf Ebrahimi 156*62c56f98SSadaf Ebrahimi.PHONY: all clean list fuzz 157*62c56f98SSadaf Ebrahimi 158*62c56f98SSadaf Ebrahimiall: $(EXES) 159*62c56f98SSadaf Ebrahimiifndef WINDOWS 160*62c56f98SSadaf Ebrahimi# APPS doesn't include the fuzzing programs, which aren't "normal" 161*62c56f98SSadaf Ebrahimi# sample or test programs, and don't build with MSVC which is 162*62c56f98SSadaf Ebrahimi# warning about fopen 163*62c56f98SSadaf Ebrahimiall: fuzz 164*62c56f98SSadaf Ebrahimiendif 165*62c56f98SSadaf Ebrahimi 166*62c56f98SSadaf Ebrahimifuzz: ${MBEDTLS_TEST_OBJS} 167*62c56f98SSadaf Ebrahimi $(MAKE) -C fuzz THIRDPARTY_INCLUDES=$(THIRDPARTY_INCLUDES) 168*62c56f98SSadaf Ebrahimi 169*62c56f98SSadaf Ebrahimi$(MBEDLIBS): 170*62c56f98SSadaf Ebrahimi $(MAKE) -C ../library 171*62c56f98SSadaf Ebrahimi 172*62c56f98SSadaf Ebrahimi${MBEDTLS_TEST_OBJS}: 173*62c56f98SSadaf Ebrahimi $(MAKE) -C ../tests mbedtls_test 174*62c56f98SSadaf Ebrahimi 175*62c56f98SSadaf Ebrahimi.PHONY: generated_files 176*62c56f98SSadaf EbrahimiGENERATED_FILES = psa/psa_constant_names_generated.c test/query_config.c 177*62c56f98SSadaf Ebrahimigenerated_files: $(GENERATED_FILES) 178*62c56f98SSadaf Ebrahimi 179*62c56f98SSadaf Ebrahimi# See root Makefile 180*62c56f98SSadaf EbrahimiGEN_FILES ?= 181*62c56f98SSadaf Ebrahimiifdef GEN_FILES 182*62c56f98SSadaf Ebrahimigen_file_dep = 183*62c56f98SSadaf Ebrahimielse 184*62c56f98SSadaf Ebrahimigen_file_dep = | 185*62c56f98SSadaf Ebrahimiendif 186*62c56f98SSadaf Ebrahimi 187*62c56f98SSadaf Ebrahimipsa/psa_constant_names_generated.c: $(gen_file_dep) ../scripts/generate_psa_constants.py 188*62c56f98SSadaf Ebrahimipsa/psa_constant_names_generated.c: $(gen_file_dep) ../include/psa/crypto_values.h 189*62c56f98SSadaf Ebrahimipsa/psa_constant_names_generated.c: $(gen_file_dep) ../include/psa/crypto_extra.h 190*62c56f98SSadaf Ebrahimipsa/psa_constant_names_generated.c: $(gen_file_dep) ../tests/suites/test_suite_psa_crypto_metadata.data 191*62c56f98SSadaf Ebrahimipsa/psa_constant_names_generated.c: 192*62c56f98SSadaf Ebrahimi echo " Gen $@" 193*62c56f98SSadaf Ebrahimi $(PYTHON) ../scripts/generate_psa_constants.py 194*62c56f98SSadaf Ebrahimi 195*62c56f98SSadaf Ebrahimitest/query_config.c: $(gen_file_dep) ../scripts/generate_query_config.pl 196*62c56f98SSadaf Ebrahimi## The generated file only depends on the options that are present in mbedtls_config.h, 197*62c56f98SSadaf Ebrahimi## not on which options are set. To avoid regenerating this file all the time 198*62c56f98SSadaf Ebrahimi## when switching between configurations, don't declare mbedtls_config.h as a 199*62c56f98SSadaf Ebrahimi## dependency. Remove this file from your working tree if you've just added or 200*62c56f98SSadaf Ebrahimi## removed an option in mbedtls_config.h. 201*62c56f98SSadaf Ebrahimi#test/query_config.c: $(gen_file_dep) ../include/mbedtls/mbedtls_config.h 202*62c56f98SSadaf Ebrahimitest/query_config.c: $(gen_file_dep) ../scripts/data_files/query_config.fmt 203*62c56f98SSadaf Ebrahimitest/query_config.c: 204*62c56f98SSadaf Ebrahimi echo " Gen $@" 205*62c56f98SSadaf Ebrahimi $(PERL) ../scripts/generate_query_config.pl 206*62c56f98SSadaf Ebrahimi 207*62c56f98SSadaf Ebrahimiaes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP) 208*62c56f98SSadaf Ebrahimi echo " CC aes/crypt_and_hash.c" 209*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 210*62c56f98SSadaf Ebrahimi 211*62c56f98SSadaf Ebrahimicipher/cipher_aead_demo$(EXEXT): cipher/cipher_aead_demo.c $(DEP) 212*62c56f98SSadaf Ebrahimi echo " CC cipher/cipher_aead_demo.c" 213*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) cipher/cipher_aead_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 214*62c56f98SSadaf Ebrahimi 215*62c56f98SSadaf Ebrahimihash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP) 216*62c56f98SSadaf Ebrahimi echo " CC hash/generic_sum.c" 217*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 218*62c56f98SSadaf Ebrahimi 219*62c56f98SSadaf Ebrahimihash/hello$(EXEXT): hash/hello.c $(DEP) 220*62c56f98SSadaf Ebrahimi echo " CC hash/hello.c" 221*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 222*62c56f98SSadaf Ebrahimi 223*62c56f98SSadaf Ebrahimihash/md_hmac_demo$(EXEXT): hash/md_hmac_demo.c $(DEP) 224*62c56f98SSadaf Ebrahimi echo " CC hash/md_hmac_demo.c" 225*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/md_hmac_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 226*62c56f98SSadaf Ebrahimi 227*62c56f98SSadaf Ebrahimipkey/dh_client$(EXEXT): pkey/dh_client.c $(DEP) 228*62c56f98SSadaf Ebrahimi echo " CC pkey/dh_client.c" 229*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 230*62c56f98SSadaf Ebrahimi 231*62c56f98SSadaf Ebrahimipkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP) 232*62c56f98SSadaf Ebrahimi echo " CC pkey/dh_genprime.c" 233*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 234*62c56f98SSadaf Ebrahimi 235*62c56f98SSadaf Ebrahimipkey/dh_server$(EXEXT): pkey/dh_server.c $(DEP) 236*62c56f98SSadaf Ebrahimi echo " CC pkey/dh_server.c" 237*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 238*62c56f98SSadaf Ebrahimi 239*62c56f98SSadaf Ebrahimipkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP) 240*62c56f98SSadaf Ebrahimi echo " CC pkey/ecdh_curve25519.c" 241*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 242*62c56f98SSadaf Ebrahimi 243*62c56f98SSadaf Ebrahimipkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP) 244*62c56f98SSadaf Ebrahimi echo " CC pkey/ecdsa.c" 245*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 246*62c56f98SSadaf Ebrahimi 247*62c56f98SSadaf Ebrahimipkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP) 248*62c56f98SSadaf Ebrahimi echo " CC pkey/gen_key.c" 249*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 250*62c56f98SSadaf Ebrahimi 251*62c56f98SSadaf Ebrahimipkey/key_app$(EXEXT): pkey/key_app.c $(DEP) 252*62c56f98SSadaf Ebrahimi echo " CC pkey/key_app.c" 253*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 254*62c56f98SSadaf Ebrahimi 255*62c56f98SSadaf Ebrahimipkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP) 256*62c56f98SSadaf Ebrahimi echo " CC pkey/key_app_writer.c" 257*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 258*62c56f98SSadaf Ebrahimi 259*62c56f98SSadaf Ebrahimipkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP) 260*62c56f98SSadaf Ebrahimi echo " CC pkey/mpi_demo.c" 261*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 262*62c56f98SSadaf Ebrahimi 263*62c56f98SSadaf Ebrahimipkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP) 264*62c56f98SSadaf Ebrahimi echo " CC pkey/pk_decrypt.c" 265*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 266*62c56f98SSadaf Ebrahimi 267*62c56f98SSadaf Ebrahimipkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP) 268*62c56f98SSadaf Ebrahimi echo " CC pkey/pk_encrypt.c" 269*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 270*62c56f98SSadaf Ebrahimi 271*62c56f98SSadaf Ebrahimipkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP) 272*62c56f98SSadaf Ebrahimi echo " CC pkey/pk_sign.c" 273*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 274*62c56f98SSadaf Ebrahimi 275*62c56f98SSadaf Ebrahimipkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP) 276*62c56f98SSadaf Ebrahimi echo " CC pkey/pk_verify.c" 277*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 278*62c56f98SSadaf Ebrahimi 279*62c56f98SSadaf Ebrahimipkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP) 280*62c56f98SSadaf Ebrahimi echo " CC pkey/rsa_genkey.c" 281*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 282*62c56f98SSadaf Ebrahimi 283*62c56f98SSadaf Ebrahimipkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP) 284*62c56f98SSadaf Ebrahimi echo " CC pkey/rsa_sign.c" 285*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 286*62c56f98SSadaf Ebrahimi 287*62c56f98SSadaf Ebrahimipkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP) 288*62c56f98SSadaf Ebrahimi echo " CC pkey/rsa_verify.c" 289*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 290*62c56f98SSadaf Ebrahimi 291*62c56f98SSadaf Ebrahimipkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP) 292*62c56f98SSadaf Ebrahimi echo " CC pkey/rsa_sign_pss.c" 293*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 294*62c56f98SSadaf Ebrahimi 295*62c56f98SSadaf Ebrahimipkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP) 296*62c56f98SSadaf Ebrahimi echo " CC pkey/rsa_verify_pss.c" 297*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 298*62c56f98SSadaf Ebrahimi 299*62c56f98SSadaf Ebrahimipkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP) 300*62c56f98SSadaf Ebrahimi echo " CC pkey/rsa_decrypt.c" 301*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 302*62c56f98SSadaf Ebrahimi 303*62c56f98SSadaf Ebrahimipkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP) 304*62c56f98SSadaf Ebrahimi echo " CC pkey/rsa_encrypt.c" 305*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 306*62c56f98SSadaf Ebrahimi 307*62c56f98SSadaf Ebrahimipsa/aead_demo$(EXEXT): psa/aead_demo.c $(DEP) 308*62c56f98SSadaf Ebrahimi echo " CC psa/aead_demo.c" 309*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/aead_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 310*62c56f98SSadaf Ebrahimi 311*62c56f98SSadaf Ebrahimipsa/crypto_examples$(EXEXT): psa/crypto_examples.c $(DEP) 312*62c56f98SSadaf Ebrahimi echo " CC psa/crypto_examples.c" 313*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/crypto_examples.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 314*62c56f98SSadaf Ebrahimi 315*62c56f98SSadaf Ebrahimipsa/hmac_demo$(EXEXT): psa/hmac_demo.c $(DEP) 316*62c56f98SSadaf Ebrahimi echo " CC psa/hmac_demo.c" 317*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/hmac_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 318*62c56f98SSadaf Ebrahimi 319*62c56f98SSadaf Ebrahimipsa/key_ladder_demo$(EXEXT): psa/key_ladder_demo.c $(DEP) 320*62c56f98SSadaf Ebrahimi echo " CC psa/key_ladder_demo.c" 321*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/key_ladder_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 322*62c56f98SSadaf Ebrahimi 323*62c56f98SSadaf Ebrahimipsa/psa_constant_names$(EXEXT): psa/psa_constant_names.c psa/psa_constant_names_generated.c $(DEP) 324*62c56f98SSadaf Ebrahimi echo " CC psa/psa_constant_names.c" 325*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/psa_constant_names.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 326*62c56f98SSadaf Ebrahimi 327*62c56f98SSadaf Ebrahimirandom/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP) 328*62c56f98SSadaf Ebrahimi echo " CC random/gen_entropy.c" 329*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 330*62c56f98SSadaf Ebrahimi 331*62c56f98SSadaf Ebrahimirandom/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP) 332*62c56f98SSadaf Ebrahimi echo " CC random/gen_random_ctr_drbg.c" 333*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 334*62c56f98SSadaf Ebrahimi 335*62c56f98SSadaf Ebrahimissl/dtls_client$(EXEXT): ssl/dtls_client.c $(DEP) 336*62c56f98SSadaf Ebrahimi echo " CC ssl/dtls_client.c" 337*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 338*62c56f98SSadaf Ebrahimi 339*62c56f98SSadaf Ebrahimissl/dtls_server$(EXEXT): ssl/dtls_server.c $(DEP) 340*62c56f98SSadaf Ebrahimi echo " CC ssl/dtls_server.c" 341*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 342*62c56f98SSadaf Ebrahimi 343*62c56f98SSadaf Ebrahimissl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP) 344*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_client1.c" 345*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 346*62c56f98SSadaf Ebrahimi 347*62c56f98SSadaf EbrahimiSSL_TEST_OBJECTS = test/query_config.o ssl/ssl_test_lib.o 348*62c56f98SSadaf EbrahimiSSL_TEST_DEPS = $(SSL_TEST_OBJECTS) \ 349*62c56f98SSadaf Ebrahimi test/query_config.h \ 350*62c56f98SSadaf Ebrahimi ssl/ssl_test_lib.h \ 351*62c56f98SSadaf Ebrahimi ssl/ssl_test_common_source.c \ 352*62c56f98SSadaf Ebrahimi $(DEP) 353*62c56f98SSadaf Ebrahimi 354*62c56f98SSadaf Ebrahimissl/ssl_test_lib.o: ssl/ssl_test_lib.c ssl/ssl_test_lib.h $(DEP) 355*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_test_lib.c" 356*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c ssl/ssl_test_lib.c -o $@ 357*62c56f98SSadaf Ebrahimi 358*62c56f98SSadaf Ebrahimissl/ssl_client2$(EXEXT): ssl/ssl_client2.c $(SSL_TEST_DEPS) 359*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_client2.c" 360*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 361*62c56f98SSadaf Ebrahimi 362*62c56f98SSadaf Ebrahimissl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP) 363*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_server.c" 364*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 365*62c56f98SSadaf Ebrahimi 366*62c56f98SSadaf Ebrahimissl/ssl_server2$(EXEXT): ssl/ssl_server2.c $(SSL_TEST_DEPS) 367*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_server2.c" 368*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 369*62c56f98SSadaf Ebrahimi 370*62c56f98SSadaf Ebrahimissl/ssl_context_info$(EXEXT): ssl/ssl_context_info.c test/query_config.o test/query_config.h $(DEP) 371*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_context_info.c" 372*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_context_info.c test/query_config.o $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 373*62c56f98SSadaf Ebrahimi 374*62c56f98SSadaf Ebrahimissl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP) 375*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_fork_server.c" 376*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_fork_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 377*62c56f98SSadaf Ebrahimi 378*62c56f98SSadaf Ebrahimissl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c $(DEP) 379*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_pthread_server.c" 380*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_pthread_server.c $(LOCAL_LDFLAGS) -lpthread $(LDFLAGS) -o $@ 381*62c56f98SSadaf Ebrahimi 382*62c56f98SSadaf Ebrahimissl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c $(DEP) 383*62c56f98SSadaf Ebrahimi echo " CC ssl/ssl_mail_client.c" 384*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_mail_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 385*62c56f98SSadaf Ebrahimi 386*62c56f98SSadaf Ebrahimissl/mini_client$(EXEXT): ssl/mini_client.c $(DEP) 387*62c56f98SSadaf Ebrahimi echo " CC ssl/mini_client.c" 388*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/mini_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 389*62c56f98SSadaf Ebrahimi 390*62c56f98SSadaf Ebrahimitest/benchmark$(EXEXT): test/benchmark.c $(DEP) 391*62c56f98SSadaf Ebrahimi echo " CC test/benchmark.c" 392*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 393*62c56f98SSadaf Ebrahimi 394*62c56f98SSadaf Ebrahimitest/cpp_dummy_build.cpp: test/generate_cpp_dummy_build.sh 395*62c56f98SSadaf Ebrahimi echo " Gen test/cpp_dummy_build.cpp" 396*62c56f98SSadaf Ebrahimi test/generate_cpp_dummy_build.sh 397*62c56f98SSadaf Ebrahimi 398*62c56f98SSadaf Ebrahimitest/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP) 399*62c56f98SSadaf Ebrahimi echo " CXX test/cpp_dummy_build.cpp" 400*62c56f98SSadaf Ebrahimi $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 401*62c56f98SSadaf Ebrahimi 402*62c56f98SSadaf Ebrahimiifdef BUILD_DLOPEN 403*62c56f98SSadaf Ebrahimitest/dlopen$(EXEXT): test/dlopen.c $(DEP) 404*62c56f98SSadaf Ebrahimi echo " CC test/dlopen.c" 405*62c56f98SSadaf Ebrahimi# Do not link any test objects (that would bring in a static dependency on 406*62c56f98SSadaf Ebrahimi# libmbedcrypto at least). Do not link with libmbed* (that would defeat the 407*62c56f98SSadaf Ebrahimi# purpose of testing dynamic loading). 408*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/dlopen.c $(LDFLAGS) $(DLOPEN_LDFLAGS) -o $@ 409*62c56f98SSadaf Ebrahimiendif 410*62c56f98SSadaf Ebrahimi 411*62c56f98SSadaf Ebrahimitest/query_config.o: test/query_config.c test/query_config.h $(DEP) 412*62c56f98SSadaf Ebrahimi echo " CC test/query_config.c" 413*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c test/query_config.c -o $@ 414*62c56f98SSadaf Ebrahimi 415*62c56f98SSadaf Ebrahimitest/query_included_headers$(EXEXT): test/query_included_headers.c $(DEP) 416*62c56f98SSadaf Ebrahimi echo " CC test/query_included_headers.c" 417*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_included_headers.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 418*62c56f98SSadaf Ebrahimi 419*62c56f98SSadaf Ebrahimitest/selftest$(EXEXT): test/selftest.c $(DEP) 420*62c56f98SSadaf Ebrahimi echo " CC test/selftest.c" 421*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 422*62c56f98SSadaf Ebrahimi 423*62c56f98SSadaf Ebrahimitest/udp_proxy$(EXEXT): test/udp_proxy.c $(DEP) 424*62c56f98SSadaf Ebrahimi echo " CC test/udp_proxy.c" 425*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/udp_proxy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 426*62c56f98SSadaf Ebrahimi 427*62c56f98SSadaf Ebrahimitest/zeroize$(EXEXT): test/zeroize.c $(DEP) 428*62c56f98SSadaf Ebrahimi echo " CC test/zeroize.c" 429*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 430*62c56f98SSadaf Ebrahimi 431*62c56f98SSadaf Ebrahimitest/query_compile_time_config$(EXEXT): test/query_compile_time_config.c test/query_config.o test/query_config.h $(DEP) 432*62c56f98SSadaf Ebrahimi echo " CC test/query_compile_time_config.c" 433*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_compile_time_config.c test/query_config.o $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 434*62c56f98SSadaf Ebrahimi 435*62c56f98SSadaf Ebrahimiutil/pem2der$(EXEXT): util/pem2der.c $(DEP) 436*62c56f98SSadaf Ebrahimi echo " CC util/pem2der.c" 437*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 438*62c56f98SSadaf Ebrahimi 439*62c56f98SSadaf Ebrahimiutil/strerror$(EXEXT): util/strerror.c $(DEP) 440*62c56f98SSadaf Ebrahimi echo " CC util/strerror.c" 441*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 442*62c56f98SSadaf Ebrahimi 443*62c56f98SSadaf Ebrahimix509/cert_app$(EXEXT): x509/cert_app.c $(DEP) 444*62c56f98SSadaf Ebrahimi echo " CC x509/cert_app.c" 445*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 446*62c56f98SSadaf Ebrahimi 447*62c56f98SSadaf Ebrahimix509/cert_write$(EXEXT): x509/cert_write.c $(DEP) 448*62c56f98SSadaf Ebrahimi echo " CC x509/cert_write.c" 449*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_write.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 450*62c56f98SSadaf Ebrahimi 451*62c56f98SSadaf Ebrahimix509/crl_app$(EXEXT): x509/crl_app.c $(DEP) 452*62c56f98SSadaf Ebrahimi echo " CC x509/crl_app.c" 453*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/crl_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 454*62c56f98SSadaf Ebrahimi 455*62c56f98SSadaf Ebrahimix509/cert_req$(EXEXT): x509/cert_req.c $(DEP) 456*62c56f98SSadaf Ebrahimi echo " CC x509/cert_req.c" 457*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_req.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 458*62c56f98SSadaf Ebrahimi 459*62c56f98SSadaf Ebrahimix509/load_roots$(EXEXT): x509/load_roots.c $(DEP) 460*62c56f98SSadaf Ebrahimi echo " CC x509/load_roots.c" 461*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/load_roots.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 462*62c56f98SSadaf Ebrahimi 463*62c56f98SSadaf Ebrahimix509/req_app$(EXEXT): x509/req_app.c $(DEP) 464*62c56f98SSadaf Ebrahimi echo " CC x509/req_app.c" 465*62c56f98SSadaf Ebrahimi $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 466*62c56f98SSadaf Ebrahimi 467*62c56f98SSadaf Ebrahimiclean: 468*62c56f98SSadaf Ebrahimiifndef WINDOWS 469*62c56f98SSadaf Ebrahimi rm -f $(EXES) 470*62c56f98SSadaf Ebrahimi -rm -f ssl/ssl_pthread_server$(EXEXT) 471*62c56f98SSadaf Ebrahimi -rm -f test/cpp_dummy_build.cpp test/cpp_dummy_build$(EXEXT) 472*62c56f98SSadaf Ebrahimi -rm -f test/dlopen$(EXEXT) 473*62c56f98SSadaf Ebrahimielse 474*62c56f98SSadaf Ebrahimi if exist *.o del /Q /F *.o 475*62c56f98SSadaf Ebrahimi if exist *.exe del /Q /F *.exe 476*62c56f98SSadaf Ebrahimi if exist test\cpp_dummy_build.cpp del /Q /F test\cpp_dummy_build.cpp 477*62c56f98SSadaf Ebrahimiendif 478*62c56f98SSadaf Ebrahimi $(MAKE) -C fuzz clean 479*62c56f98SSadaf Ebrahimi 480*62c56f98SSadaf Ebrahimineat: clean 481*62c56f98SSadaf Ebrahimiifndef WINDOWS 482*62c56f98SSadaf Ebrahimi rm -f $(GENERATED_FILES) 483*62c56f98SSadaf Ebrahimielse 484*62c56f98SSadaf Ebrahimi for %f in ($(subst /,\,$(GENERATED_FILES))) if exist %f del /Q /F %f 485*62c56f98SSadaf Ebrahimiendif 486*62c56f98SSadaf Ebrahimi 487*62c56f98SSadaf Ebrahimilist: 488*62c56f98SSadaf Ebrahimi echo $(EXES) 489