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/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/benchmark$(EXEXT) \ 71 test/selftest$(EXEXT) test/udp_proxy$(EXEXT) \ 72 test/zeroize$(EXEXT) \ 73 test/query_compile_time_config$(EXEXT) \ 74 util/pem2der$(EXEXT) util/strerror$(EXEXT) \ 75 x509/cert_app$(EXEXT) x509/crl_app$(EXEXT) \ 76 x509/cert_req$(EXEXT) x509/cert_write$(EXEXT) \ 77 x509/req_app$(EXEXT) 78 79ifdef PTHREAD 80APPS += ssl/ssl_pthread_server$(EXEXT) 81endif 82 83ifdef TEST_CPP 84APPS += test/cpp_dummy_build$(EXEXT) 85endif 86 87.SILENT: 88 89.PHONY: all clean list 90 91all: $(APPS) 92 93$(DEP): 94 $(MAKE) -C ../library 95 96aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP) 97 echo " CC aes/crypt_and_hash.c" 98 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 99 100hash/hello$(EXEXT): hash/hello.c $(DEP) 101 echo " CC hash/hello.c" 102 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 103 104hash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP) 105 echo " CC hash/generic_sum.c" 106 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 107 108pkey/dh_client$(EXEXT): pkey/dh_client.c $(DEP) 109 echo " CC pkey/dh_client.c" 110 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 111 112pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP) 113 echo " CC pkey/dh_genprime.c" 114 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 115 116pkey/dh_server$(EXEXT): pkey/dh_server.c $(DEP) 117 echo " CC pkey/dh_server.c" 118 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 119 120pkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP) 121 echo " CC pkey/ecdh_curve25519.c" 122 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 123 124pkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP) 125 echo " CC pkey/ecdsa.c" 126 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 127 128pkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP) 129 echo " CC pkey/gen_key.c" 130 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 131 132pkey/key_app$(EXEXT): pkey/key_app.c $(DEP) 133 echo " CC pkey/key_app.c" 134 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 135 136pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP) 137 echo " CC pkey/key_app_writer.c" 138 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 139 140pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP) 141 echo " CC pkey/mpi_demo.c" 142 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 143 144pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP) 145 echo " CC pkey/pk_decrypt.c" 146 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 147 148pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP) 149 echo " CC pkey/pk_encrypt.c" 150 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 151 152pkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP) 153 echo " CC pkey/pk_sign.c" 154 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 155 156pkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP) 157 echo " CC pkey/pk_verify.c" 158 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 159 160pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP) 161 echo " CC pkey/rsa_genkey.c" 162 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 163 164pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP) 165 echo " CC pkey/rsa_sign.c" 166 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 167 168pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP) 169 echo " CC pkey/rsa_verify.c" 170 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 171 172pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP) 173 echo " CC pkey/rsa_sign_pss.c" 174 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 175 176pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP) 177 echo " CC pkey/rsa_verify_pss.c" 178 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 179 180pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP) 181 echo " CC pkey/rsa_decrypt.c" 182 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 183 184pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP) 185 echo " CC pkey/rsa_encrypt.c" 186 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 187 188random/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP) 189 echo " CC random/gen_entropy.c" 190 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 191 192random/gen_random_havege$(EXEXT): random/gen_random_havege.c $(DEP) 193 echo " CC random/gen_random_havege.c" 194 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_havege.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 195 196random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP) 197 echo " CC random/gen_random_ctr_drbg.c" 198 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 199 200ssl/dtls_client$(EXEXT): ssl/dtls_client.c $(DEP) 201 echo " CC ssl/dtls_client.c" 202 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 203 204ssl/dtls_server$(EXEXT): ssl/dtls_server.c $(DEP) 205 echo " CC ssl/dtls_server.c" 206 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 207 208ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP) 209 echo " CC ssl/ssl_client1.c" 210 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 211 212ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c ssl/query_config.c $(DEP) 213 echo " CC ssl/ssl_client2.c" 214 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 215 216ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP) 217 echo " CC ssl/ssl_server.c" 218 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 219 220ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c ssl/query_config.c $(DEP) 221 echo " CC ssl/ssl_server2.c" 222 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 223 224ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP) 225 echo " CC ssl/ssl_fork_server.c" 226 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_fork_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 227 228ssl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c $(DEP) 229 echo " CC ssl/ssl_pthread_server.c" 230 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_pthread_server.c $(LOCAL_LDFLAGS) -lpthread $(LDFLAGS) -o $@ 231 232ssl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c $(DEP) 233 echo " CC ssl/ssl_mail_client.c" 234 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_mail_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 235 236ssl/mini_client$(EXEXT): ssl/mini_client.c $(DEP) 237 echo " CC ssl/mini_client.c" 238 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/mini_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 239 240test/benchmark$(EXEXT): test/benchmark.c $(DEP) 241 echo " CC test/benchmark.c" 242 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 243 244test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP) 245 echo " CXX test/cpp_dummy_build.cpp" 246 $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 247 248test/selftest$(EXEXT): test/selftest.c $(DEP) 249 echo " CC test/selftest.c" 250 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 251 252test/udp_proxy$(EXEXT): test/udp_proxy.c $(DEP) 253 echo " CC test/udp_proxy.c" 254 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/udp_proxy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 255 256test/zeroize$(EXEXT): test/zeroize.c $(DEP) 257 echo " CC test/zeroize.c" 258 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 259 260test/query_compile_time_config$(EXEXT): test/query_compile_time_config.c ssl/query_config.c $(DEP) 261 echo " CC test/query_compile_time_config.c" 262 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_compile_time_config.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 263 264util/pem2der$(EXEXT): util/pem2der.c $(DEP) 265 echo " CC util/pem2der.c" 266 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 267 268util/strerror$(EXEXT): util/strerror.c $(DEP) 269 echo " CC util/strerror.c" 270 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 271 272x509/cert_app$(EXEXT): x509/cert_app.c $(DEP) 273 echo " CC x509/cert_app.c" 274 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 275 276x509/cert_write$(EXEXT): x509/cert_write.c $(DEP) 277 echo " CC x509/cert_write.c" 278 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_write.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 279 280x509/crl_app$(EXEXT): x509/crl_app.c $(DEP) 281 echo " CC x509/crl_app.c" 282 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/crl_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 283 284x509/cert_req$(EXEXT): x509/cert_req.c $(DEP) 285 echo " CC x509/cert_req.c" 286 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_req.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 287 288x509/req_app$(EXEXT): x509/req_app.c $(DEP) 289 echo " CC x509/req_app.c" 290 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ 291 292clean: 293ifndef WINDOWS 294 rm -f $(APPS) 295 -rm -f ssl/ssl_pthread_server$(EXEXT) 296 -rm -f test/cpp_dummy_build$(EXEXT) 297else 298 del /S /Q /F *.o *.exe 299endif 300 301list: 302 echo $(APPS) 303