blob: 2a3fd6f25770c6fb5e0d7dc49d969ed69cc6165c [file] [log] [blame]
Paul Bakker5121ce52009-01-03 21:22:43 +00001
2# To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS
Paul Bakker43b7e352011-01-18 15:27:19 +00003# To compile with PKCS11: add "-lpkcs11-helper" to LDFLAGS
Paul Bakker5121ce52009-01-03 21:22:43 +00004
Alon Bar-Levf7a9f302015-02-18 17:55:05 +02005CFLAGS ?= -O2
Paul Elliott9e3256a2020-12-17 18:17:32 +00006WARNING_CFLAGS ?= -Wall -Wextra -Wformat=2 -Wno-format-nonliteral
7WARNING_CXXFLAGS ?= -Wall -Wextra -Wformat=2 -Wno-format-nonliteral
Alon Bar-Levada41052015-02-18 17:47:52 +02008LDFLAGS ?=
Alon Bar-Levf7a9f302015-02-18 17:55:05 +02009
Ronald Cron8dc0af22020-06-05 16:00:22 +020010MBEDTLS_TEST_PATH:=../tests/src
Steven Cooremana70d5882020-07-16 20:26:18 +020011MBEDTLS_TEST_OBJS:=$(patsubst %.c,%.o,$(wildcard ${MBEDTLS_TEST_PATH}/*.c ${MBEDTLS_TEST_PATH}/drivers/*.c))
Ronald Cron8dc0af22020-06-05 16:00:22 +020012
13LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../tests/include -I../include -D_FILE_OFFSET_BITS=64
Andrzej Kurek40741f82018-03-14 17:24:01 -040014LOCAL_CXXFLAGS = $(WARNING_CXXFLAGS) -I../include -D_FILE_OFFSET_BITS=64
Ronald Cron8dc0af22020-06-05 16:00:22 +020015LOCAL_LDFLAGS = ${MBEDTLS_TEST_OBJS} \
16 -L../library \
Manuel Pégourié-Gonnard21e1ac22015-06-25 08:45:12 +020017 -lmbedtls$(SHARED_SUFFIX) \
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +020018 -lmbedx509$(SHARED_SUFFIX) \
Manuel Pégourié-Gonnard21e1ac22015-06-25 08:45:12 +020019 -lmbedcrypto$(SHARED_SUFFIX)
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +020020
Christoph M. Wintersteiger6ea2dea12019-01-21 17:26:19 +000021include ../3rdparty/Makefile.inc
22LOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES)
Jaeden Amero30b340a2018-10-25 17:37:00 +010023
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +020024ifndef SHARED
Ronald Cron8dc0af22020-06-05 16:00:22 +020025MBEDLIBS=../library/libmbedcrypto.a ../library/libmbedx509.a ../library/libmbedtls.a
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +020026else
Ronald Cron8dc0af22020-06-05 16:00:22 +020027MBEDLIBS=../library/libmbedcrypto.$(DLEXT) ../library/libmbedx509.$(DLEXT) ../library/libmbedtls.$(DLEXT)
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +020028endif
Ronald Cron8dc0af22020-06-05 16:00:22 +020029DEP=${MBEDLIBS} ${MBEDTLS_TEST_OBJS}
Christoph M. Wintersteiger977d89a2018-10-25 12:47:03 +010030
Paul Bakkerc7ffd362012-04-05 12:08:29 +000031ifdef DEBUG
Alon Bar-Levf7a9f302015-02-18 17:55:05 +020032LOCAL_CFLAGS += -g3
Paul Bakkerc7ffd362012-04-05 12:08:29 +000033endif
34
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +020035# if we're running on Windows, build for Windows
Paul Bakkercd5b5292012-05-10 20:49:10 +000036ifdef WINDOWS
Alon Bar-Lev18ba0cc2015-02-14 01:04:58 +020037WINDOWS_BUILD=1
38endif
39
40ifdef WINDOWS_BUILD
41DLEXT=dll
42EXEXT=.exe
Alon Bar-Levada41052015-02-18 17:47:52 +020043LOCAL_LDFLAGS += -lws2_32
Alon Bar-Lev18ba0cc2015-02-14 01:04:58 +020044ifdef SHARED
45SHARED_SUFFIX=.$(DLEXT)
46endif
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +020047else
Andres Amaya Garcia420f0cc2018-03-27 19:17:21 +010048DLEXT ?= so
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +020049EXEXT=
50SHARED_SUFFIX=
Paul Bakkercd5b5292012-05-10 20:49:10 +000051endif
52
Paul Bakker2770fbd2012-07-03 13:30:23 +000053# Zlib shared library extensions:
54ifdef ZLIB
Alon Bar-Levada41052015-02-18 17:47:52 +020055LOCAL_LDFLAGS += -lz
Paul Bakker2770fbd2012-07-03 13:30:23 +000056endif
57
Gilles Peskine8de196a2020-02-11 17:18:08 +010058APPS = \
Gilles Peskine8de196a2020-02-11 17:18:08 +010059 aes/crypt_and_hash$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010060 hash/generic_sum$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +020061 hash/hello$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010062 pkey/dh_client$(EXEXT) \
63 pkey/dh_genprime$(EXEXT) \
64 pkey/dh_server$(EXEXT) \
65 pkey/ecdh_curve25519$(EXEXT) \
66 pkey/ecdsa$(EXEXT) \
67 pkey/gen_key$(EXEXT) \
68 pkey/key_app$(EXEXT) \
69 pkey/key_app_writer$(EXEXT) \
70 pkey/mpi_demo$(EXEXT) \
71 pkey/pk_decrypt$(EXEXT) \
72 pkey/pk_encrypt$(EXEXT) \
73 pkey/pk_sign$(EXEXT) \
74 pkey/pk_verify$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010075 pkey/rsa_decrypt$(EXEXT) \
76 pkey/rsa_encrypt$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +020077 pkey/rsa_genkey$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010078 pkey/rsa_sign$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010079 pkey/rsa_sign_pss$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +020080 pkey/rsa_verify$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010081 pkey/rsa_verify_pss$(EXEXT) \
Jaeden Amero30fae8e2018-12-20 17:44:21 +000082 psa/crypto_examples$(EXEXT) \
83 psa/key_ladder_demo$(EXEXT) \
84 psa/psa_constant_names$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +020085 random/gen_entropy$(EXEXT) \
86 random/gen_random_ctr_drbg$(EXEXT) \
87 random/gen_random_havege$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010088 ssl/dtls_client$(EXEXT) \
89 ssl/dtls_server$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +020090 ssl/mini_client$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010091 ssl/ssl_client1$(EXEXT) \
92 ssl/ssl_client2$(EXEXT) \
Piotr Nowickibc876d42020-03-26 12:49:15 +010093 ssl/ssl_context_info$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010094 ssl/ssl_fork_server$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010095 ssl/ssl_mail_client$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +020096 ssl/ssl_server$(EXEXT) \
97 ssl/ssl_server2$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +010098 test/benchmark$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +020099 test/query_compile_time_config$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +0100100 test/selftest$(EXEXT) \
101 test/udp_proxy$(EXEXT) \
102 test/zeroize$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +0100103 util/pem2der$(EXEXT) \
104 util/strerror$(EXEXT) \
105 x509/cert_app$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +0100106 x509/cert_req$(EXEXT) \
107 x509/cert_write$(EXEXT) \
Manuel Pégourié-Gonnard10a5b532020-04-03 11:50:59 +0200108 x509/crl_app$(EXEXT) \
Gilles Peskine82c04322021-07-26 20:20:54 +0200109 x509/load_roots$(EXEXT) \
Gilles Peskine8de196a2020-02-11 17:18:08 +0100110 x509/req_app$(EXEXT) \
111# End of APPS
Paul Bakker5121ce52009-01-03 21:22:43 +0000112
Paul Bakkerf9c49532013-12-19 15:40:58 +0100113ifdef PTHREAD
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200114APPS += ssl/ssl_pthread_server$(EXEXT)
Paul Bakkerf9c49532013-12-19 15:40:58 +0100115endif
116
Gilles Peskinee9433532021-11-04 12:45:19 +0100117ifdef SHARED
118APPS += test/dlopen
119endif
120
Andrzej Kurek0211c322018-03-15 05:16:24 -0400121ifdef TEST_CPP
Andrzej Kurek89c048c2018-03-16 07:37:44 -0400122APPS += test/cpp_dummy_build$(EXEXT)
Andrzej Kurek0211c322018-03-15 05:16:24 -0400123endif
124
Paul Bakker5121ce52009-01-03 21:22:43 +0000125.SILENT:
126
Philippe Antoine48f35f52019-06-27 08:46:45 +0200127.PHONY: all clean list fuzz
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200128
Paul Bakker5121ce52009-01-03 21:22:43 +0000129all: $(APPS)
Philippe Antoinea864db02019-07-10 20:37:57 +0200130ifndef WINDOWS
131# APPS doesn't include the fuzzing programs, which aren't "normal"
132# sample or test programs, and don't build with MSVC which is
133# warning about fopen
134all: fuzz
135endif
Philippe Antoine48f35f52019-06-27 08:46:45 +0200136
Ronald Cron8dc0af22020-06-05 16:00:22 +0200137fuzz: ${MBEDTLS_TEST_OBJS}
Janos Follath4f055f42019-08-20 15:12:54 +0100138 $(MAKE) -C fuzz THIRDPARTY_INCLUDES=$(THIRDPARTY_INCLUDES)
Paul Bakker5121ce52009-01-03 21:22:43 +0000139
Ronald Cron8dc0af22020-06-05 16:00:22 +0200140$(MBEDLIBS):
Manuel Pégourié-Gonnardfc367082015-06-26 16:50:24 +0200141 $(MAKE) -C ../library
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200142
Ronald Cron8dc0af22020-06-05 16:00:22 +0200143${MBEDTLS_TEST_OBJS}:
144 $(MAKE) -C ../tests mbedtls_test
145
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200146aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100147 echo " CC aes/crypt_and_hash.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200148 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker20a78082011-01-21 09:32:12 +0000149
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200150hash/hello$(EXEXT): hash/hello.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100151 echo " CC hash/hello.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200152 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000153
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200154hash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100155 echo " CC hash/generic_sum.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200156 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerfb6c7e22011-01-21 10:21:11 +0000157
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200158pkey/dh_client$(EXEXT): pkey/dh_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100159 echo " CC pkey/dh_client.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200160 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000161
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200162pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100163 echo " CC pkey/dh_genprime.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200164 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000165
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200166pkey/dh_server$(EXEXT): pkey/dh_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100167 echo " CC pkey/dh_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200168 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000169
Manuel Pégourié-Gonnard3eb8c342015-10-09 12:11:14 +0100170pkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP)
171 echo " CC pkey/ecdh_curve25519.c"
172 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
173
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200174pkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100175 echo " CC pkey/ecdsa.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200176 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnardaa431612013-08-09 17:10:27 +0200177
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200178pkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100179 echo " CC pkey/gen_key.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200180 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker15b9b3a2013-09-23 12:05:44 +0200181
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200182pkey/key_app$(EXEXT): pkey/key_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100183 echo " CC pkey/key_app.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200184 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkered56b222011-07-13 11:26:43 +0000185
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200186pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100187 echo " CC pkey/key_app_writer.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200188 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000189
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200190pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100191 echo " CC pkey/mpi_demo.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200192 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000193
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200194pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100195 echo " CC pkey/pk_decrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200196 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200197
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200198pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100199 echo " CC pkey/pk_encrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200200 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200201
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200202pkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100203 echo " CC pkey/pk_sign.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200204 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200205
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200206pkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100207 echo " CC pkey/pk_verify.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200208 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200209
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200210pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100211 echo " CC pkey/rsa_genkey.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200212 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000213
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200214pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100215 echo " CC pkey/rsa_sign.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200216 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000217
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200218pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100219 echo " CC pkey/rsa_verify.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200220 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000221
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200222pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100223 echo " CC pkey/rsa_sign_pss.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200224 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkere77db2e2011-03-25 14:01:32 +0000225
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200226pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100227 echo " CC pkey/rsa_verify_pss.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200228 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkere77db2e2011-03-25 14:01:32 +0000229
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200230pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100231 echo " CC pkey/rsa_decrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200232 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker7bc05ff2011-08-09 10:30:36 +0000233
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200234pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100235 echo " CC pkey/rsa_encrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200236 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker7bc05ff2011-08-09 10:30:36 +0000237
Gilles Peskinef0fa4362018-07-16 17:08:43 +0200238psa/key_ladder_demo$(EXEXT): psa/key_ladder_demo.c $(DEP)
239 echo " CC psa/key_ladder_demo.c"
240 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/key_ladder_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
241
Gilles Peskine4a707402021-02-24 21:45:38 +0100242psa/psa_constant_names$(EXEXT): psa/psa_constant_names.c psa/psa_constant_names_generated.c $(DEP)
Gilles Peskine029b5d62018-07-16 23:13:37 +0200243 echo " CC psa/psa_constant_names.c"
244 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/psa_constant_names.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
245
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200246random/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100247 echo " CC random/gen_entropy.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200248 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker6083fd22011-12-03 21:45:14 +0000249
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200250random/gen_random_havege$(EXEXT): random/gen_random_havege.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100251 echo " CC random/gen_random_havege.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200252 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_havege.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker6083fd22011-12-03 21:45:14 +0000253
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200254random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100255 echo " CC random/gen_random_ctr_drbg.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200256 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerfc36d162011-01-27 16:50:02 +0000257
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200258ssl/dtls_client$(EXEXT): ssl/dtls_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100259 echo " CC ssl/dtls_client.c"
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +0200260 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnarde63582a2014-10-14 11:47:21 +0200261
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200262ssl/dtls_server$(EXEXT): ssl/dtls_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100263 echo " CC ssl/dtls_server.c"
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +0200264 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnarde63582a2014-10-14 11:47:21 +0200265
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200266ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100267 echo " CC ssl/ssl_client1.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200268 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000269
Gilles Peskinea3ed34f2021-01-05 21:11:16 +0100270SSL_TEST_OBJECTS = test/query_config.o ssl/ssl_test_lib.o
Gilles Peskinec772b182021-01-12 15:55:10 +0100271SSL_TEST_DEPS = $(SSL_TEST_OBJECTS) \
272 test/query_config.h \
273 ssl/ssl_test_lib.h \
274 ssl/ssl_test_common_source.c \
275 $(DEP)
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100276
Gilles Peskinea3ed34f2021-01-05 21:11:16 +0100277ssl/ssl_test_lib.o: ssl/ssl_test_lib.c ssl/ssl_test_lib.h $(DEP)
278 echo " CC ssl/ssl_test_lib.c"
279 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c ssl/ssl_test_lib.c -o $@
280
Gilles Peskine0d980b82021-01-05 23:34:27 +0100281ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c $(SSL_TEST_DEPS)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100282 echo " CC ssl/ssl_client2.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100283 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000284
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200285ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100286 echo " CC ssl/ssl_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200287 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000288
Gilles Peskine0d980b82021-01-05 23:34:27 +0100289ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c $(SSL_TEST_DEPS)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100290 echo " CC ssl/ssl_server2.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100291 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerb60b95f2012-09-25 09:05:17 +0000292
Gilles Peskinec772b182021-01-12 15:55:10 +0100293ssl/ssl_context_info$(EXEXT): ssl/ssl_context_info.c test/query_config.o test/query_config.h $(DEP)
Piotr Nowickibc876d42020-03-26 12:49:15 +0100294 echo " CC ssl/ssl_context_info.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100295 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_context_info.c test/query_config.o $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Piotr Nowicki9370f902020-03-13 14:43:22 +0100296
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200297ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100298 echo " CC ssl/ssl_fork_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200299 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_fork_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker896ac222011-05-20 12:33:05 +0000300
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200301ssl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100302 echo " CC ssl/ssl_pthread_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200303 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_pthread_server.c $(LOCAL_LDFLAGS) -lpthread $(LDFLAGS) -o $@
Paul Bakkerf9c49532013-12-19 15:40:58 +0100304
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200305ssl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100306 echo " CC ssl/ssl_mail_client.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200307 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_mail_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker1496d382011-05-23 12:07:29 +0000308
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200309ssl/mini_client$(EXEXT): ssl/mini_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100310 echo " CC ssl/mini_client.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200311 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/mini_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnarda6fc5b22014-11-24 14:05:25 +0100312
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200313test/benchmark$(EXEXT): test/benchmark.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100314 echo " CC test/benchmark.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200315 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000316
Gilles Peskine9b356402021-07-09 15:19:28 +0200317test/cpp_dummy_build.cpp: test/generate_cpp_dummy_build.sh
318 echo " Gen test/cpp_dummy_build.cpp"
319 test/generate_cpp_dummy_build.sh
320
Andrzej Kurek89c048c2018-03-16 07:37:44 -0400321test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP)
322 echo " CXX test/cpp_dummy_build.cpp"
323 $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Andrzej Kurek40741f82018-03-14 17:24:01 -0400324
Gilles Peskinee9433532021-11-04 12:45:19 +0100325ifdef SHARED
326test/dlopen$(EXEXT): test/dlopen.c $(DEP)
327 echo " CC test/dlopen.c"
328# Do not link any test objects (that would bring in a static dependency on
329# libmbedcrypto at least). Do not link with libmbed* (that would defeat the
330# purpose of testing dynamic loading).
331 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/dlopen.c $(LDFLAGS) -ldl -o $@
332endif
333
Gilles Peskinec772b182021-01-12 15:55:10 +0100334test/query_config.o: test/query_config.c test/query_config.h $(DEP)
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100335 echo " CC test/query_config.c"
336 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c test/query_config.c -o $@
337
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200338test/selftest$(EXEXT): test/selftest.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100339 echo " CC test/selftest.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200340 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000341
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200342test/udp_proxy$(EXEXT): test/udp_proxy.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100343 echo " CC test/udp_proxy.c"
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +0200344 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/udp_proxy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnardcb4137b2014-09-04 14:55:28 +0200345
Andres Amaya Garcia5ab74a12017-10-24 21:10:45 +0100346test/zeroize$(EXEXT): test/zeroize.c $(DEP)
347 echo " CC test/zeroize.c"
348 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
349
Gilles Peskinec772b182021-01-12 15:55:10 +0100350test/query_compile_time_config$(EXEXT): test/query_compile_time_config.c test/query_config.o test/query_config.h $(DEP)
Andres AG509ba692018-10-26 18:41:08 +0100351 echo " CC test/query_compile_time_config.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100352 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_compile_time_config.c test/query_config.o $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Andres AG509ba692018-10-26 18:41:08 +0100353
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200354util/pem2der$(EXEXT): util/pem2der.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100355 echo " CC util/pem2der.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200356 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker8adf13b2013-08-25 14:50:09 +0200357
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200358util/strerror$(EXEXT): util/strerror.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100359 echo " CC util/strerror.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200360 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker01cc3942012-05-08 08:36:15 +0000361
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200362x509/cert_app$(EXEXT): x509/cert_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100363 echo " CC x509/cert_app.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200364 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker4fc45522010-03-18 20:11:58 +0000365
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200366x509/cert_write$(EXEXT): x509/cert_write.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100367 echo " CC x509/cert_write.c"
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200368 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_write.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
369
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200370x509/crl_app$(EXEXT): x509/crl_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100371 echo " CC x509/crl_app.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200372 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/crl_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkera9507c02011-02-12 15:27:28 +0000373
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200374x509/cert_req$(EXEXT): x509/cert_req.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100375 echo " CC x509/cert_req.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200376 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_req.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000377
Gilles Peskine82c04322021-07-26 20:20:54 +0200378x509/load_roots$(EXEXT): x509/load_roots.c $(DEP)
379 echo " CC x509/load_roots.c"
380 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/load_roots.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
381
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200382x509/req_app$(EXEXT): x509/req_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100383 echo " CC x509/req_app.c"
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200384 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
385
itayzafrira3ff8a62018-07-10 10:10:21 +0300386psa/crypto_examples$(EXEXT): psa/crypto_examples.c $(DEP)
387 echo " CC psa/crypto_examples.c"
388 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/crypto_examples.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
389
Paul Bakker5121ce52009-01-03 21:22:43 +0000390clean:
Paul Bakker62f88dc2012-05-10 21:26:28 +0000391ifndef WINDOWS
Paul Bakker5121ce52009-01-03 21:22:43 +0000392 rm -f $(APPS)
Jaeden Amerobefe1e152019-06-03 09:14:14 +0100393 -rm -f ssl/ssl_pthread_server$(EXEXT)
Gilles Peskine9b356402021-07-09 15:19:28 +0200394 -rm -f test/cpp_dummy_build.cpp test/cpp_dummy_build$(EXEXT)
Gilles Peskinee9433532021-11-04 12:45:19 +0100395 -rm -f test/dlopen$(EXEXT)
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200396else
Darryl Green9b9a7902019-08-30 14:51:55 +0100397 if exist *.o del /Q /F *.o
398 if exist *.exe del /Q /F *.exe
Gilles Peskine9b356402021-07-09 15:19:28 +0200399 if exist test\cpp_dummy_build.cpp del /Q /F test\cpp_dummy_build.cpp
Paul Bakker62f88dc2012-05-10 21:26:28 +0000400endif
Philippe Antoine48f35f52019-06-27 08:46:45 +0200401 $(MAKE) -C fuzz clean
Manuel Pégourié-Gonnard1b578782013-09-16 13:33:42 +0200402
403list:
404 echo $(APPS)