1 2# To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS 3# To compile with PKCS11: add "-lpkcs11-helper" to LDFLAGS 4 5CFLAGS ?= -O2 6WARNING_CFLAGS ?= -Wall -W -Wdeclaration-after-statement 7WARNING_CXXFLAGS ?= -Wall -W 8LDFLAGS ?= 9 10LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64 11LOCAL_CXXFLAGS = $(WARNING_CXXFLAGS) -I../include -D_FILE_OFFSET_BITS=64 12LOCAL_LDFLAGS = -L../library \ 13 -lmbedtls$(SHARED_SUFFIX) \ 14 -lmbedx509$(SHARED_SUFFIX) \ 15 -lmbedcrypto$(SHARED_SUFFIX) 16 17ifndef SHARED 18DEP=../library/libmbedcrypto.a ../library/libmbedx509.a ../library/libmbedtls.a 19else 20DEP=../library/libmbedcrypto.$(DLEXT) ../library/libmbedx509.$(DLEXT) ../library/libmbedtls.$(DLEXT) 21endif 22 23ifdef DEBUG 24LOCAL_CFLAGS += -g3 25endif 26 27# if we're running on Windows, build for Windows 28ifdef WINDOWS 29WINDOWS_BUILD=1 30endif 31 32ifdef WINDOWS_BUILD 33DLEXT=dll 34EXEXT=.exe 35LOCAL_LDFLAGS += -lws2_32 36ifdef SHARED 37SHARED_SUFFIX=.$(DLEXT) 38endif 39else 40DLEXT ?= so 41EXEXT= 42SHARED_SUFFIX= 43endif 44 45# Zlib shared library extensions: 46ifdef ZLIB 47LOCAL_LDFLAGS += -lz 48endif 49 50APPS = aes/aescrypt2$(EXEXT) aes/crypt_and_hash$(EXEXT) \ 51 hash/hello$(EXEXT) hash/generic_sum$(EXEXT) \ 52 pkey/dh_client$(EXEXT) \ 53 pkey/dh_genprime$(EXEXT) pkey/dh_server$(EXEXT) \ 54 pkey/ecdh_curve25519$(EXEXT) \ 55 pkey/ecdsa$(EXEXT) pkey/gen_key$(EXEXT) \ 56 pkey/key_app$(EXEXT) pkey/key_app_writer$(EXEXT) \ 57 pkey/mpi_demo$(EXEXT) pkey/pk_decrypt$(EXEXT) \ 58 pkey/pk_encrypt$(EXEXT) pkey/pk_sign$(EXEXT) \ 59 pkey/pk_verify$(EXEXT) pkey/rsa_genkey$(EXEXT) \ 60 pkey/rsa_decrypt$(EXEXT) pkey/rsa_encrypt$(EXEXT) \ 61 pkey/rsa_sign$(EXEXT) pkey/rsa_verify$(EXEXT) \ 62 pkey/rsa_sign_pss$(EXEXT) pkey/rsa_verify_pss$(EXEXT) \ 63 ssl/dtls_client$(EXEXT) ssl/dtls_server$(EXEXT) \ 64 ssl/ssl_client1$(EXEXT) ssl/ssl_client2$(EXEXT) \ 65 ssl/ssl_server$(EXEXT) ssl/ssl_server2$(EXEXT) \ 66 ssl/ssl_fork_server$(EXEXT) ssl/mini_client$(EXEXT) \ 67 ssl/ssl_mail_client$(EXEXT) random/gen_entropy$(EXEXT) \ 68 random/gen_random_havege$(EXEXT) \ 69 random/gen_random_ctr_drbg$(EXEXT) \ 70 test/ssl_cert_test$(EXEXT) test/benchmark$(EXEXT) \ 71 test/selftest$(EXEXT) test/udp_proxy$(EXEXT) \ 72 test/zeroize$(EXEXT) \ 73 util/pem2der$(EXEXT) util/strerror$(EXEXT) \ 74 x509/cert_app$(EXEXT) x509/crl_app$(EXEXT) \ 75 x509/cert_req$(EXEXT) x509/cert_write$(EXEXT) \ 76 x509/req_app$(EXEXT) 77 78ifdef PTHREAD 79APPS += ssl/ssl_pthread_server$(EXEXT) 80endif 81 82ifdef TEST_CPP 83APPS += test/cpp_dummy_build$(EXEXT) 84endif 85 86.SILENT: 87 88.PHONY: all clean list 89 90all: $(APPS) 91 92$(DEP): 93 $(MAKE) -C ../library 94 95aes/aescrypt2$(EXEXT): aes/aescrypt2.c $(DEP) 96 echo " CC aes/aescrypt2.c" 97 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/aescrypt2.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 98 99aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP) 100 echo " CC aes/crypt_and_hash.c" 101 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 102 103hash/hello$(EXEXT): hash/hello.c $(DEP) 104 echo " CC hash/hello.c" 105 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 106 107hash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP) 108 echo " CC hash/generic_sum.c" 109 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 110 111pkey/dh_client$(EXEXT): pkey/dh_client.c $(DEP) 112 echo " CC pkey/dh_client.c" 113 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 114 115pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP) 116 echo " CC pkey/dh_genprime.c" 117 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 118 119pkey/dh_server$(EXEXT): pkey/dh_server.c $(DEP) 120 echo " CC pkey/dh_server.c" 121 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 122 123pkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP) 124 echo " CC pkey/ecdh_curve25519.c" 125 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 126 127pkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP) 128 echo " CC pkey/ecdsa.c" 129 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 130 131pkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP) 132 echo " CC pkey/gen_key.c" 133 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 134 135pkey/key_app$(EXEXT): pkey/key_app.c $(DEP) 136 echo " CC pkey/key_app.c" 137 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 138 139pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP) 140 echo " CC pkey/key_app_writer.c" 141 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 142 143pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP) 144 echo " CC pkey/mpi_demo.c" 145 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 146 147pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP) 148 echo " CC pkey/pk_decrypt.c" 149 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 150 151pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP) 152 echo " CC pkey/pk_encrypt.c" 153 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 154 155pkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP) 156 echo " CC pkey/pk_sign.c" 157 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 158 159pkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP) 160 echo " CC pkey/pk_verify.c" 161 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 162 163pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP) 164 echo " CC pkey/rsa_genkey.c" 165 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 166 167pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP) 168 echo " CC pkey/rsa_sign.c" 169 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 170 171pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP) 172 echo " CC pkey/rsa_verify.c" 173 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 174 175pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP) 176 echo " CC pkey/rsa_sign_pss.c" 177 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 178 179pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP) 180 echo " CC pkey/rsa_verify_pss.c" 181 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 182 183pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP) 184 echo " CC pkey/rsa_decrypt.c" 185 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 186 187pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP) 188 echo " CC pkey/rsa_encrypt.c" 189 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 190 191random/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP) 192 echo " CC random/gen_entropy.c" 193 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 194 195random/gen_random_havege$(EXEXT): random/gen_random_havege.c $(DEP) 196 echo " CC random/gen_random_havege.c" 197 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_havege.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 198 199random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP) 200 echo " CC random/gen_random_ctr_drbg.c" 201 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 202 203ssl/dtls_client$(EXEXT): ssl/dtls_client.c $(DEP) 204 echo " CC ssl/dtls_client.c" 205 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 206 207ssl/dtls_server$(EXEXT): ssl/dtls_server.c $(DEP) 208 echo " CC ssl/dtls_server.c" 209 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 210 211ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP) 212 echo " CC ssl/ssl_client1.c" 213 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 214 215ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c $(DEP) 216 echo " CC ssl/ssl_client2.c" 217 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 218 219ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP) 220 echo " CC ssl/ssl_server.c" 221 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 222 223ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c $(DEP) 224 echo " CC ssl/ssl_server2.c" 225 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 226 227ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP) 228 echo " CC ssl/ssl_fork_server.c" 229 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_fork_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 230 231ssl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c $(DEP) 232 echo " CC ssl/ssl_pthread_server.c" 233 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_pthread_server.c $(LOCAL_LDFLAGS) -lpthread $(LDFLAGS) -o $@ 234 235ssl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c $(DEP) 236 echo " CC ssl/ssl_mail_client.c" 237 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_mail_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 238 239ssl/mini_client$(EXEXT): ssl/mini_client.c $(DEP) 240 echo " CC ssl/mini_client.c" 241 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/mini_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 242 243test/ssl_cert_test$(EXEXT): test/ssl_cert_test.c $(DEP) 244 echo " CC test/ssl_cert_test.c" 245 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/ssl_cert_test.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 246 247test/benchmark$(EXEXT): test/benchmark.c $(DEP) 248 echo " CC test/benchmark.c" 249 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 250 251test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP) 252 echo " CXX test/cpp_dummy_build.cpp" 253 $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 254 255test/selftest$(EXEXT): test/selftest.c $(DEP) 256 echo " CC test/selftest.c" 257 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 258 259test/udp_proxy$(EXEXT): test/udp_proxy.c $(DEP) 260 echo " CC test/udp_proxy.c" 261 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/udp_proxy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 262 263test/zeroize$(EXEXT): test/zeroize.c $(DEP) 264 echo " CC test/zeroize.c" 265 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 266 267util/pem2der$(EXEXT): util/pem2der.c $(DEP) 268 echo " CC util/pem2der.c" 269 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 270 271util/strerror$(EXEXT): util/strerror.c $(DEP) 272 echo " CC util/strerror.c" 273 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 274 275x509/cert_app$(EXEXT): x509/cert_app.c $(DEP) 276 echo " CC x509/cert_app.c" 277 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 278 279x509/cert_write$(EXEXT): x509/cert_write.c $(DEP) 280 echo " CC x509/cert_write.c" 281 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_write.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 282 283x509/crl_app$(EXEXT): x509/crl_app.c $(DEP) 284 echo " CC x509/crl_app.c" 285 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/crl_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 286 287x509/cert_req$(EXEXT): x509/cert_req.c $(DEP) 288 echo " CC x509/cert_req.c" 289 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_req.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 290 291x509/req_app$(EXEXT): x509/req_app.c $(DEP) 292 echo " CC x509/req_app.c" 293 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 294 295clean: 296ifndef WINDOWS 297 rm -f $(APPS) 298else 299 del /S /Q /F *.o *.exe 300endif 301 302list: 303 echo $(APPS) 304