|  | 
 | # To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS | 
 |  | 
 | CFLAGS	?= -O2 | 
 | WARNING_CFLAGS ?= -Wall -Wextra | 
 | WARNING_CXXFLAGS ?= -Wall -Wextra | 
 | LDFLAGS ?= | 
 |  | 
 | LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64 | 
 | LOCAL_CXXFLAGS = $(WARNING_CXXFLAGS) -I../include -D_FILE_OFFSET_BITS=64 | 
 | LOCAL_LDFLAGS = -L../library 			\ | 
 | 		-lmbedcrypto$(SHARED_SUFFIX) | 
 |  | 
 | LOCAL_CFLAGS+=-I../3rdparty/everest/include | 
 |  | 
 | ifndef SHARED | 
 | DEP=../library/libmbedcrypto.a | 
 | else | 
 | DEP=../library/libmbedcrypto.$(DLEXT) | 
 | endif | 
 |  | 
 | ifdef DEBUG | 
 | LOCAL_CFLAGS += -g3 | 
 | endif | 
 |  | 
 | # if we're running on Windows, build for Windows | 
 | ifdef WINDOWS | 
 | WINDOWS_BUILD=1 | 
 | endif | 
 |  | 
 | ifdef WINDOWS_BUILD | 
 | DLEXT=dll | 
 | EXEXT=.exe | 
 | LOCAL_LDFLAGS += -lws2_32 | 
 | ifdef SHARED | 
 | SHARED_SUFFIX=.$(DLEXT) | 
 | endif | 
 | else | 
 | DLEXT ?= so | 
 | EXEXT= | 
 | SHARED_SUFFIX= | 
 | endif | 
 |  | 
 | APPS = \ | 
 | 	aes/aescrypt2$(EXEXT) \ | 
 | 	aes/crypt_and_hash$(EXEXT) \ | 
 | 	hash/hello$(EXEXT) \ | 
 | 	hash/generic_sum$(EXEXT) \ | 
 | 	pkey/dh_genprime$(EXEXT) \ | 
 | 	pkey/ecdh_curve25519$(EXEXT) \ | 
 | 	pkey/ecdsa$(EXEXT) \ | 
 | 	pkey/gen_key$(EXEXT) \ | 
 | 	pkey/key_app$(EXEXT) \ | 
 | 	pkey/key_app_writer$(EXEXT) \ | 
 | 	pkey/mpi_demo$(EXEXT) \ | 
 | 	pkey/pk_decrypt$(EXEXT) \ | 
 | 	pkey/pk_encrypt$(EXEXT) \ | 
 | 	pkey/pk_sign$(EXEXT) \ | 
 | 	pkey/pk_verify$(EXEXT) \ | 
 | 	pkey/rsa_genkey$(EXEXT) \ | 
 | 	pkey/rsa_decrypt$(EXEXT) \ | 
 | 	pkey/rsa_encrypt$(EXEXT) \ | 
 | 	pkey/rsa_sign$(EXEXT) \ | 
 | 	pkey/rsa_verify$(EXEXT) \ | 
 | 	pkey/rsa_sign_pss$(EXEXT) \ | 
 | 	pkey/rsa_verify_pss$(EXEXT) \ | 
 | 	psa/crypto_examples$(EXEXT) \ | 
 | 	psa/key_ladder_demo$(EXEXT) \ | 
 | 	psa/psa_constant_names$(EXEXT) \ | 
 | 	random/gen_entropy$(EXEXT) \ | 
 | 	random/gen_random_havege$(EXEXT) \ | 
 | 	random/gen_random_ctr_drbg$(EXEXT) \ | 
 | 	test/benchmark$(EXEXT) \ | 
 | 	test/selftest$(EXEXT) \ | 
 | 	test/zeroize$(EXEXT) \ | 
 | 	test/query_compile_time_config$(EXEXT) \ | 
 | 	util/pem2der$(EXEXT) \ | 
 | 	util/strerror$(EXEXT) \ | 
 | # End of APPS | 
 |  | 
 | ifdef TEST_CPP | 
 | APPS += test/cpp_dummy_build$(EXEXT) | 
 | endif | 
 |  | 
 | EXTRA_GENERATED = | 
 |  | 
 | .SILENT: | 
 |  | 
 | .PHONY: all clean list | 
 |  | 
 | all: $(APPS) | 
 |  | 
 | $(DEP): | 
 | 	$(MAKE) -C ../library | 
 |  | 
 | ifdef WINDOWS | 
 | EXTRA_GENERATED += psa\psa_constant_names_generated.c | 
 | else | 
 | EXTRA_GENERATED += psa/psa_constant_names_generated.c | 
 | endif | 
 |  | 
 | psa/psa_constant_names$(EXEXT): psa/psa_constant_names_generated.c | 
 | psa/psa_constant_names_generated.c: ../scripts/generate_psa_constants.py ../include/psa/crypto_values.h ../include/psa/crypto_extra.h | 
 | 	../scripts/generate_psa_constants.py | 
 |  | 
 | aes/aescrypt2$(EXEXT): aes/aescrypt2.c $(DEP) | 
 | 	echo "  CC    aes/aescrypt2.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/aescrypt2.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP) | 
 | 	echo "  CC    aes/crypt_and_hash.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | hash/hello$(EXEXT): hash/hello.c $(DEP) | 
 | 	echo "  CC    hash/hello.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c       $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | hash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP) | 
 | 	echo "  CC    hash/generic_sum.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP) | 
 | 	echo "  CC    pkey/dh_genprime.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP) | 
 | 	echo "  CC    pkey/ecdh_curve25519.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP) | 
 | 	echo "  CC    pkey/ecdsa.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c       $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP) | 
 | 	echo "  CC    pkey/gen_key.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/key_app$(EXEXT): pkey/key_app.c $(DEP) | 
 | 	echo "  CC    pkey/key_app.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP) | 
 | 	echo "  CC    pkey/key_app_writer.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP) | 
 | 	echo "  CC    pkey/mpi_demo.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP) | 
 | 	echo "  CC    pkey/pk_decrypt.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP) | 
 | 	echo "  CC    pkey/pk_encrypt.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP) | 
 | 	echo "  CC    pkey/pk_sign.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP) | 
 | 	echo "  CC    pkey/pk_verify.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP) | 
 | 	echo "  CC    pkey/rsa_genkey.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP) | 
 | 	echo "  CC    pkey/rsa_sign.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP) | 
 | 	echo "  CC    pkey/rsa_verify.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP) | 
 | 	echo "  CC    pkey/rsa_sign_pss.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP) | 
 | 	echo "  CC    pkey/rsa_verify_pss.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP) | 
 | 	echo "  CC    pkey/rsa_decrypt.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP) | 
 | 	echo "  CC    pkey/rsa_encrypt.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | psa/key_ladder_demo$(EXEXT): psa/key_ladder_demo.c $(DEP) | 
 | 	echo "  CC    psa/key_ladder_demo.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/key_ladder_demo.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | psa/psa_constant_names$(EXEXT): psa/psa_constant_names.c $(DEP) | 
 | 	echo "  CC    psa/psa_constant_names.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/psa_constant_names.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | random/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP) | 
 | 	echo "  CC    random/gen_entropy.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | random/gen_random_havege$(EXEXT): random/gen_random_havege.c $(DEP) | 
 | 	echo "  CC    random/gen_random_havege.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_havege.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP) | 
 | 	echo "  CC    random/gen_random_ctr_drbg.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | test/benchmark$(EXEXT): test/benchmark.c $(DEP) | 
 | 	echo "  CC    test/benchmark.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP) | 
 | 	echo "  CXX   test/cpp_dummy_build.cpp" | 
 | 	$(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | test/selftest$(EXEXT): test/selftest.c $(DEP) | 
 | 	echo "  CC    test/selftest.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | test/zeroize$(EXEXT): test/zeroize.c $(DEP) | 
 | 	echo "  CC    test/zeroize.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | test/query_compile_time_config$(EXEXT): test/query_compile_time_config.c test/query_config.c $(DEP) | 
 | 	echo "  CC    test/query_compile_time_config.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_compile_time_config.c test/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | util/pem2der$(EXEXT): util/pem2der.c $(DEP) | 
 | 	echo "  CC    util/pem2der.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | util/strerror$(EXEXT): util/strerror.c $(DEP) | 
 | 	echo "  CC    util/strerror.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | psa/crypto_examples$(EXEXT): psa/crypto_examples.c $(DEP) | 
 | 	echo "  CC    psa/crypto_examples.c" | 
 | 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/crypto_examples.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ | 
 |  | 
 | clean: | 
 | ifndef WINDOWS | 
 | 	rm -f $(APPS) $(EXTRA_GENERATED) | 
 | 	-rm -f test/cpp_dummy_build$(EXEXT) | 
 | else | 
 | 	if exist *.o del /S /Q /F *.o | 
 | 	if exist *.exe del /S /Q /F *.exe | 
 | 	if exist $(EXTRA_GENERATED) del /S /Q /F $(EXTRA_GENERATED) | 
 | endif | 
 |  | 
 | list: | 
 | 	echo $(APPS) |