2 # To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS
3 # To compile with PKCS11: add "-lpkcs11-helper" to LDFLAGS
6 WARNING_CFLAGS ?= -Wall -W -Wdeclaration-after-statement
7 WARNING_CXXFLAGS ?= -Wall -W
10 LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64
11 LOCAL_CXXFLAGS = $(WARNING_CXXFLAGS) -I../include -D_FILE_OFFSET_BITS=64
12 LOCAL_LDFLAGS = -L../library \
13 -lmbedtls$(SHARED_SUFFIX) \
14 -lmbedx509$(SHARED_SUFFIX) \
15 -lmbedcrypto$(SHARED_SUFFIX)
17 LOCAL_LDFLAGS += -L../crypto/library
18 LOCAL_CFLAGS += -I../crypto/include
19 LOCAL_CXXFLAGS += -I../crypto/include
22 DEP=../library/libmbedcrypto.a ../library/libmbedx509.a ../library/libmbedtls.a
24 DEP=../library/libmbedcrypto.$(DLEXT) ../library/libmbedx509.$(DLEXT) ../library/libmbedtls.$(DLEXT)
31 # if we're running on Windows, build for Windows
39 LOCAL_LDFLAGS += -lws2_32
41 SHARED_SUFFIX=.$(DLEXT)
49 # Zlib shared library extensions:
54 APPS = aes/aescrypt2$(EXEXT) aes/crypt_and_hash$(EXEXT) \
55 hash/hello$(EXEXT) hash/generic_sum$(EXEXT) \
56 pkey/dh_client$(EXEXT) \
57 pkey/dh_genprime$(EXEXT) pkey/dh_server$(EXEXT) \
58 pkey/ecdh_curve25519$(EXEXT) \
59 pkey/ecdsa$(EXEXT) pkey/gen_key$(EXEXT) \
60 pkey/key_app$(EXEXT) pkey/key_app_writer$(EXEXT) \
61 pkey/mpi_demo$(EXEXT) pkey/pk_decrypt$(EXEXT) \
62 pkey/pk_encrypt$(EXEXT) pkey/pk_sign$(EXEXT) \
63 pkey/pk_verify$(EXEXT) pkey/rsa_genkey$(EXEXT) \
64 pkey/rsa_decrypt$(EXEXT) pkey/rsa_encrypt$(EXEXT) \
65 pkey/rsa_sign$(EXEXT) pkey/rsa_verify$(EXEXT) \
66 pkey/rsa_sign_pss$(EXEXT) pkey/rsa_verify_pss$(EXEXT) \
67 ssl/dtls_client$(EXEXT) ssl/dtls_server$(EXEXT) \
68 ssl/ssl_client1$(EXEXT) ssl/ssl_client2$(EXEXT) \
69 ssl/ssl_server$(EXEXT) ssl/ssl_server2$(EXEXT) \
70 ssl/ssl_fork_server$(EXEXT) ssl/mini_client$(EXEXT) \
71 ssl/ssl_mail_client$(EXEXT) random/gen_entropy$(EXEXT) \
72 random/gen_random_havege$(EXEXT) \
73 random/gen_random_ctr_drbg$(EXEXT) \
74 test/benchmark$(EXEXT) \
75 test/selftest$(EXEXT) test/udp_proxy$(EXEXT) \
76 test/zeroize$(EXEXT) \
77 test/query_compile_time_config$(EXEXT) \
78 util/pem2der$(EXEXT) util/strerror$(EXEXT) \
79 x509/cert_app$(EXEXT) x509/crl_app$(EXEXT) \
80 x509/cert_req$(EXEXT) x509/cert_write$(EXEXT) \
84 APPS += ssl/ssl_pthread_server$(EXEXT)
88 APPS += test/cpp_dummy_build$(EXEXT)
93 .PHONY: all clean list
100 aes/aescrypt2$(EXEXT): aes/aescrypt2.c $(DEP)
101 echo " CC aes/aescrypt2.c"
102 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/aescrypt2.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
104 aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP)
105 echo " CC aes/crypt_and_hash.c"
106 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
108 hash/hello$(EXEXT): hash/hello.c $(DEP)
109 echo " CC hash/hello.c"
110 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
112 hash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP)
113 echo " CC hash/generic_sum.c"
114 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
116 pkey/dh_client$(EXEXT): pkey/dh_client.c $(DEP)
117 echo " CC pkey/dh_client.c"
118 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
120 pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP)
121 echo " CC pkey/dh_genprime.c"
122 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
124 pkey/dh_server$(EXEXT): pkey/dh_server.c $(DEP)
125 echo " CC pkey/dh_server.c"
126 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
128 pkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP)
129 echo " CC pkey/ecdh_curve25519.c"
130 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
132 pkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP)
133 echo " CC pkey/ecdsa.c"
134 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
136 pkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP)
137 echo " CC pkey/gen_key.c"
138 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
140 pkey/key_app$(EXEXT): pkey/key_app.c $(DEP)
141 echo " CC pkey/key_app.c"
142 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
144 pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP)
145 echo " CC pkey/key_app_writer.c"
146 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
148 pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP)
149 echo " CC pkey/mpi_demo.c"
150 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
152 pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP)
153 echo " CC pkey/pk_decrypt.c"
154 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
156 pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP)
157 echo " CC pkey/pk_encrypt.c"
158 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
160 pkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP)
161 echo " CC pkey/pk_sign.c"
162 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
164 pkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP)
165 echo " CC pkey/pk_verify.c"
166 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
168 pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP)
169 echo " CC pkey/rsa_genkey.c"
170 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
172 pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP)
173 echo " CC pkey/rsa_sign.c"
174 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
176 pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP)
177 echo " CC pkey/rsa_verify.c"
178 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
180 pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP)
181 echo " CC pkey/rsa_sign_pss.c"
182 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
184 pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP)
185 echo " CC pkey/rsa_verify_pss.c"
186 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
188 pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP)
189 echo " CC pkey/rsa_decrypt.c"
190 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
192 pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP)
193 echo " CC pkey/rsa_encrypt.c"
194 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
196 random/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP)
197 echo " CC random/gen_entropy.c"
198 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
200 random/gen_random_havege$(EXEXT): random/gen_random_havege.c $(DEP)
201 echo " CC random/gen_random_havege.c"
202 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_havege.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
204 random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP)
205 echo " CC random/gen_random_ctr_drbg.c"
206 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
208 ssl/dtls_client$(EXEXT): ssl/dtls_client.c $(DEP)
209 echo " CC ssl/dtls_client.c"
210 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
212 ssl/dtls_server$(EXEXT): ssl/dtls_server.c $(DEP)
213 echo " CC ssl/dtls_server.c"
214 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
216 ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP)
217 echo " CC ssl/ssl_client1.c"
218 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
220 ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c ssl/query_config.c $(DEP)
221 echo " CC ssl/ssl_client2.c"
222 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
224 ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP)
225 echo " CC ssl/ssl_server.c"
226 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
228 ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c ssl/query_config.c $(DEP)
229 echo " CC ssl/ssl_server2.c"
230 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
232 ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP)
233 echo " CC ssl/ssl_fork_server.c"
234 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_fork_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
236 ssl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c $(DEP)
237 echo " CC ssl/ssl_pthread_server.c"
238 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_pthread_server.c $(LOCAL_LDFLAGS) -lpthread $(LDFLAGS) -o $@
240 ssl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c $(DEP)
241 echo " CC ssl/ssl_mail_client.c"
242 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_mail_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
244 ssl/mini_client$(EXEXT): ssl/mini_client.c $(DEP)
245 echo " CC ssl/mini_client.c"
246 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/mini_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
248 test/benchmark$(EXEXT): test/benchmark.c $(DEP)
249 echo " CC test/benchmark.c"
250 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
252 test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP)
253 echo " CXX test/cpp_dummy_build.cpp"
254 $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
256 test/selftest$(EXEXT): test/selftest.c $(DEP)
257 echo " CC test/selftest.c"
258 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
260 test/udp_proxy$(EXEXT): test/udp_proxy.c $(DEP)
261 echo " CC test/udp_proxy.c"
262 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/udp_proxy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
264 test/zeroize$(EXEXT): test/zeroize.c $(DEP)
265 echo " CC test/zeroize.c"
266 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
268 test/query_compile_time_config$(EXEXT): test/query_compile_time_config.c ssl/query_config.c $(DEP)
269 echo " CC test/query_compile_time_config.c"
270 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_compile_time_config.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
272 util/pem2der$(EXEXT): util/pem2der.c $(DEP)
273 echo " CC util/pem2der.c"
274 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
276 util/strerror$(EXEXT): util/strerror.c $(DEP)
277 echo " CC util/strerror.c"
278 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
280 x509/cert_app$(EXEXT): x509/cert_app.c $(DEP)
281 echo " CC x509/cert_app.c"
282 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
284 x509/cert_write$(EXEXT): x509/cert_write.c $(DEP)
285 echo " CC x509/cert_write.c"
286 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_write.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
288 x509/crl_app$(EXEXT): x509/crl_app.c $(DEP)
289 echo " CC x509/crl_app.c"
290 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/crl_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
292 x509/cert_req$(EXEXT): x509/cert_req.c $(DEP)
293 echo " CC x509/cert_req.c"
294 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_req.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
296 x509/req_app$(EXEXT): x509/req_app.c $(DEP)
297 echo " CC x509/req_app.c"
298 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
304 del /S /Q /F *.o *.exe