blob: 0604a68a3cb4c212ca3e0654bfc1da095905f7c1 [file] [log] [blame]
Gilles Peskine4ad57332023-12-22 11:30:30 +01001MBEDTLS_TEST_PATH = ../tests
Gilles Peskinef3d1ae12023-12-22 11:40:58 +01002include ../scripts/common.make
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +02003
Gilles Peskine5dbee582021-11-04 15:07:28 +01004ifeq ($(shell uname -s),Linux)
5DLOPEN_LDFLAGS ?= -ldl
6else
7DLOPEN_LDFLAGS ?=
8endif
9
Gilles Peskine4411c9c2024-01-04 20:51:38 +010010ifdef RECORD_PSA_STATUS_COVERAGE_LOG
11LOCAL_CFLAGS += -Werror -DRECORD_PSA_STATUS_COVERAGE_LOG
12endif
Ronald Cron8dc0af22020-06-05 16:00:22 +020013DEP=${MBEDLIBS} ${MBEDTLS_TEST_OBJS}
Christoph M. Wintersteiger977d89a2018-10-25 12:47:03 +010014
Gilles Peskinef80a0292021-11-04 15:18:00 +010015# Only build the dlopen test in shared library builds, and not when building
16# for Windows.
17ifdef BUILD_DLOPEN
18# Don't override the value
19else ifdef WINDOWS_BUILD
20BUILD_DLOPEN =
21else ifdef SHARED
22BUILD_DLOPEN = y
23else
24BUILD_DLOPEN =
25endif
26
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020027## The following assignment is the list of base names of applications that
28## will be built on Windows. Extra Linux/Unix/POSIX-only applications can
29## be declared by appending with `APPS += ...` afterwards.
30## See the get_app_list function in scripts/generate_visualc_files.pl and
31## make sure to check that it still works if you tweak the format here.
Gilles Peskine8de196a2020-02-11 17:18:08 +010032APPS = \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020033 aes/crypt_and_hash \
Manuel Pégourié-Gonnard29088a42022-02-01 09:38:26 +010034 cipher/cipher_aead_demo \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020035 hash/generic_sum \
36 hash/hello \
Manuel Pégourié-Gonnard29088a42022-02-01 09:38:26 +010037 hash/md_hmac_demo \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020038 pkey/dh_client \
39 pkey/dh_genprime \
40 pkey/dh_server \
41 pkey/ecdh_curve25519 \
42 pkey/ecdsa \
43 pkey/gen_key \
44 pkey/key_app \
45 pkey/key_app_writer \
46 pkey/mpi_demo \
47 pkey/pk_decrypt \
48 pkey/pk_encrypt \
49 pkey/pk_sign \
50 pkey/pk_verify \
51 pkey/rsa_decrypt \
52 pkey/rsa_encrypt \
53 pkey/rsa_genkey \
54 pkey/rsa_sign \
55 pkey/rsa_sign_pss \
56 pkey/rsa_verify \
57 pkey/rsa_verify_pss \
Manuel Pégourié-Gonnard6fdc9e82022-01-31 13:27:39 +010058 psa/aead_demo \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020059 psa/crypto_examples \
Manuel Pégourié-Gonnard69bb3f52022-01-31 13:09:47 +010060 psa/hmac_demo \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020061 psa/key_ladder_demo \
62 psa/psa_constant_names \
Hannes Tschofenigf8b9ebf2023-07-18 13:46:10 +010063 psa/psa_hash \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020064 random/gen_entropy \
65 random/gen_random_ctr_drbg \
66 ssl/dtls_client \
67 ssl/dtls_server \
68 ssl/mini_client \
69 ssl/ssl_client1 \
70 ssl/ssl_client2 \
71 ssl/ssl_context_info \
72 ssl/ssl_fork_server \
73 ssl/ssl_mail_client \
74 ssl/ssl_server \
75 ssl/ssl_server2 \
76 test/benchmark \
Gilles Peskine33406b62023-11-02 18:48:39 +010077 test/metatest \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020078 test/query_compile_time_config \
Gilles Peskinedf6e84a2023-02-22 22:09:51 +010079 test/query_included_headers \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020080 test/selftest \
81 test/udp_proxy \
82 test/zeroize \
83 util/pem2der \
84 util/strerror \
85 x509/cert_app \
86 x509/cert_req \
87 x509/cert_write \
88 x509/crl_app \
Gilles Peskine2c1442e2021-07-26 20:20:54 +020089 x509/load_roots \
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020090 x509/req_app \
Gilles Peskine8de196a2020-02-11 17:18:08 +010091# End of APPS
Paul Bakker5121ce52009-01-03 21:22:43 +000092
Paul Elliott79dc6da2023-12-11 17:52:03 +000093ifeq ($(THREADING),pthread)
Gilles Peskineb0fa9d22021-04-22 20:07:44 +020094APPS += ssl/ssl_pthread_server
Paul Bakkerf9c49532013-12-19 15:40:58 +010095endif
96
Gilles Peskinef80a0292021-11-04 15:18:00 +010097ifdef BUILD_DLOPEN
Gilles Peskinea7c247e2021-11-04 12:45:19 +010098APPS += test/dlopen
99endif
100
Andrzej Kurek0211c322018-03-15 05:16:24 -0400101ifdef TEST_CPP
Gilles Peskineb0fa9d22021-04-22 20:07:44 +0200102APPS += test/cpp_dummy_build
Andrzej Kurek0211c322018-03-15 05:16:24 -0400103endif
104
Gilles Peskineb0fa9d22021-04-22 20:07:44 +0200105EXES = $(patsubst %,%$(EXEXT),$(APPS))
106
Paul Bakker5121ce52009-01-03 21:22:43 +0000107.SILENT:
108
Philippe Antoine48f35f52019-06-27 08:46:45 +0200109.PHONY: all clean list fuzz
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200110
Gilles Peskineb0fa9d22021-04-22 20:07:44 +0200111all: $(EXES)
Philippe Antoinea864db02019-07-10 20:37:57 +0200112ifndef WINDOWS
113# APPS doesn't include the fuzzing programs, which aren't "normal"
114# sample or test programs, and don't build with MSVC which is
115# warning about fopen
116all: fuzz
117endif
Philippe Antoine48f35f52019-06-27 08:46:45 +0200118
Gilles Peskineb35ed452024-09-14 13:05:51 +0200119SSL_OPT_APPS = $(filter ssl/%,$(APPS))
120SSL_OPT_APPS += test/query_compile_time_config test/udp_proxy
121# Just the programs needed to run ssl-opt.sh (and compat.sh)
122ssl-opt: $(patsubst %,%$(EXEXT),$(SSL_OPT_APPS))
123.PHONY: ssl-opt
124
Ronald Cron8dc0af22020-06-05 16:00:22 +0200125fuzz: ${MBEDTLS_TEST_OBJS}
Paul Elliott0c847bc2024-01-24 19:08:31 +0000126 $(MAKE) -C fuzz
Paul Bakker5121ce52009-01-03 21:22:43 +0000127
Ronald Cron8dc0af22020-06-05 16:00:22 +0200128${MBEDTLS_TEST_OBJS}:
129 $(MAKE) -C ../tests mbedtls_test
130
Gilles Peskine687d1ab2021-04-22 01:01:56 +0200131.PHONY: generated_files
132GENERATED_FILES = psa/psa_constant_names_generated.c test/query_config.c
133generated_files: $(GENERATED_FILES)
134
Gilles Peskine0b62b7a2023-09-08 16:19:13 +0200135psa/psa_constant_names_generated.c: $(gen_file_dep) ../scripts/generate_psa_constants.py
136psa/psa_constant_names_generated.c: $(gen_file_dep) ../include/psa/crypto_values.h
137psa/psa_constant_names_generated.c: $(gen_file_dep) ../include/psa/crypto_extra.h
138psa/psa_constant_names_generated.c: $(gen_file_dep) ../tests/suites/test_suite_psa_crypto_metadata.data
Gilles Peskine687d1ab2021-04-22 01:01:56 +0200139psa/psa_constant_names_generated.c:
140 echo " Gen $@"
141 $(PYTHON) ../scripts/generate_psa_constants.py
142
Gilles Peskine0b62b7a2023-09-08 16:19:13 +0200143test/query_config.c: $(gen_file_dep) ../scripts/generate_query_config.pl
Bence Szépkútibb0cfeb2021-05-28 09:42:25 +0200144## The generated file only depends on the options that are present in mbedtls_config.h,
Gilles Peskine1411c7c2021-04-22 14:50:16 +0200145## not on which options are set. To avoid regenerating this file all the time
Bence Szépkútibb0cfeb2021-05-28 09:42:25 +0200146## when switching between configurations, don't declare mbedtls_config.h as a
Gilles Peskine1411c7c2021-04-22 14:50:16 +0200147## dependency. Remove this file from your working tree if you've just added or
Bence Szépkútibb0cfeb2021-05-28 09:42:25 +0200148## removed an option in mbedtls_config.h.
Gilles Peskine0b62b7a2023-09-08 16:19:13 +0200149#test/query_config.c: $(gen_file_dep) ../include/mbedtls/mbedtls_config.h
150test/query_config.c: $(gen_file_dep) ../scripts/data_files/query_config.fmt
Gilles Peskine687d1ab2021-04-22 01:01:56 +0200151test/query_config.c:
152 echo " Gen $@"
153 $(PERL) ../scripts/generate_query_config.pl
154
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200155aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100156 echo " CC aes/crypt_and_hash.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200157 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker20a78082011-01-21 09:32:12 +0000158
Manuel Pégourié-Gonnard29088a42022-02-01 09:38:26 +0100159cipher/cipher_aead_demo$(EXEXT): cipher/cipher_aead_demo.c $(DEP)
160 echo " CC cipher/cipher_aead_demo.c"
161 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) cipher/cipher_aead_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000162
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200163hash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100164 echo " CC hash/generic_sum.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200165 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerfb6c7e22011-01-21 10:21:11 +0000166
Paul Bakker5121ce52009-01-03 21:22:43 +0000167hash/hello$(EXEXT): hash/hello.c $(DEP)
168 echo " CC hash/hello.c"
169 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
170
Manuel Pégourié-Gonnard29088a42022-02-01 09:38:26 +0100171hash/md_hmac_demo$(EXEXT): hash/md_hmac_demo.c $(DEP)
172 echo " CC hash/md_hmac_demo.c"
173 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/md_hmac_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000174
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200175pkey/dh_client$(EXEXT): pkey/dh_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100176 echo " CC pkey/dh_client.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200177 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000178
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200179pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100180 echo " CC pkey/dh_genprime.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200181 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000182
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200183pkey/dh_server$(EXEXT): pkey/dh_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100184 echo " CC pkey/dh_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200185 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000186
Manuel Pégourié-Gonnard3eb8c342015-10-09 12:11:14 +0100187pkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP)
188 echo " CC pkey/ecdh_curve25519.c"
189 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
190
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200191pkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100192 echo " CC pkey/ecdsa.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200193 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnardaa431612013-08-09 17:10:27 +0200194
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200195pkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100196 echo " CC pkey/gen_key.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200197 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker15b9b3a2013-09-23 12:05:44 +0200198
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200199pkey/key_app$(EXEXT): pkey/key_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100200 echo " CC pkey/key_app.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200201 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkered56b222011-07-13 11:26:43 +0000202
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200203pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100204 echo " CC pkey/key_app_writer.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200205 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000206
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200207pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100208 echo " CC pkey/mpi_demo.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200209 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000210
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200211pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100212 echo " CC pkey/pk_decrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200213 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200214
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200215pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100216 echo " CC pkey/pk_encrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200217 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200218
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200219pkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100220 echo " CC pkey/pk_sign.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200221 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200222
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200223pkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100224 echo " CC pkey/pk_verify.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200225 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker940f9ce2013-09-18 15:34:57 +0200226
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200227pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100228 echo " CC pkey/rsa_genkey.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200229 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000230
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200231pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100232 echo " CC pkey/rsa_sign.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200233 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000234
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200235pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100236 echo " CC pkey/rsa_verify.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200237 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000238
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200239pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100240 echo " CC pkey/rsa_sign_pss.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200241 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkere77db2e2011-03-25 14:01:32 +0000242
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200243pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100244 echo " CC pkey/rsa_verify_pss.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200245 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkere77db2e2011-03-25 14:01:32 +0000246
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200247pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100248 echo " CC pkey/rsa_decrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200249 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker7bc05ff2011-08-09 10:30:36 +0000250
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200251pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100252 echo " CC pkey/rsa_encrypt.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200253 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker7bc05ff2011-08-09 10:30:36 +0000254
Manuel Pégourié-Gonnard6fdc9e82022-01-31 13:27:39 +0100255psa/aead_demo$(EXEXT): psa/aead_demo.c $(DEP)
256 echo " CC psa/aead_demo.c"
257 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/aead_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnard398d4592022-01-07 12:26:32 +0100258
Manuel Pégourié-Gonnard667b5562021-11-22 13:00:17 +0100259psa/crypto_examples$(EXEXT): psa/crypto_examples.c $(DEP)
260 echo " CC psa/crypto_examples.c"
261 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/crypto_examples.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
262
Manuel Pégourié-Gonnard69bb3f52022-01-31 13:09:47 +0100263psa/hmac_demo$(EXEXT): psa/hmac_demo.c $(DEP)
264 echo " CC psa/hmac_demo.c"
265 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/hmac_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnard667b5562021-11-22 13:00:17 +0100266
Gilles Peskinef0fa4362018-07-16 17:08:43 +0200267psa/key_ladder_demo$(EXEXT): psa/key_ladder_demo.c $(DEP)
268 echo " CC psa/key_ladder_demo.c"
269 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/key_ladder_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
270
Gilles Peskine4a707402021-02-24 21:45:38 +0100271psa/psa_constant_names$(EXEXT): psa/psa_constant_names.c psa/psa_constant_names_generated.c $(DEP)
Gilles Peskine029b5d62018-07-16 23:13:37 +0200272 echo " CC psa/psa_constant_names.c"
273 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/psa_constant_names.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
274
Hannes Tschofenigf8b9ebf2023-07-18 13:46:10 +0100275psa/psa_hash$(EXEXT): psa/psa_hash.c $(DEP)
276 echo " CC psa/psa_hash.c"
277 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/psa_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
278
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200279random/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100280 echo " CC random/gen_entropy.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200281 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker6083fd22011-12-03 21:45:14 +0000282
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200283random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100284 echo " CC random/gen_random_ctr_drbg.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200285 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerfc36d162011-01-27 16:50:02 +0000286
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200287ssl/dtls_client$(EXEXT): ssl/dtls_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100288 echo " CC ssl/dtls_client.c"
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +0200289 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnarde63582a2014-10-14 11:47:21 +0200290
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200291ssl/dtls_server$(EXEXT): ssl/dtls_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100292 echo " CC ssl/dtls_server.c"
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +0200293 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnarde63582a2014-10-14 11:47:21 +0200294
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200295ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100296 echo " CC ssl/ssl_client1.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200297 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000298
Gilles Peskinea3ed34f2021-01-05 21:11:16 +0100299SSL_TEST_OBJECTS = test/query_config.o ssl/ssl_test_lib.o
Gilles Peskinec772b182021-01-12 15:55:10 +0100300SSL_TEST_DEPS = $(SSL_TEST_OBJECTS) \
301 test/query_config.h \
302 ssl/ssl_test_lib.h \
303 ssl/ssl_test_common_source.c \
304 $(DEP)
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100305
Gilles Peskinea3ed34f2021-01-05 21:11:16 +0100306ssl/ssl_test_lib.o: ssl/ssl_test_lib.c ssl/ssl_test_lib.h $(DEP)
307 echo " CC ssl/ssl_test_lib.c"
308 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c ssl/ssl_test_lib.c -o $@
309
Gilles Peskine0d980b82021-01-05 23:34:27 +0100310ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c $(SSL_TEST_DEPS)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100311 echo " CC ssl/ssl_client2.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100312 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000313
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200314ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100315 echo " CC ssl/ssl_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200316 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000317
Gilles Peskine0d980b82021-01-05 23:34:27 +0100318ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c $(SSL_TEST_DEPS)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100319 echo " CC ssl/ssl_server2.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100320 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerb60b95f2012-09-25 09:05:17 +0000321
Gilles Peskinec772b182021-01-12 15:55:10 +0100322ssl/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 +0100323 echo " CC ssl/ssl_context_info.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100324 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_context_info.c test/query_config.o $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Piotr Nowicki9370f902020-03-13 14:43:22 +0100325
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200326ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100327 echo " CC ssl/ssl_fork_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200328 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_fork_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker896ac222011-05-20 12:33:05 +0000329
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200330ssl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100331 echo " CC ssl/ssl_pthread_server.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200332 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_pthread_server.c $(LOCAL_LDFLAGS) -lpthread $(LDFLAGS) -o $@
Paul Bakkerf9c49532013-12-19 15:40:58 +0100333
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200334ssl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100335 echo " CC ssl/ssl_mail_client.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200336 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_mail_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker1496d382011-05-23 12:07:29 +0000337
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200338ssl/mini_client$(EXEXT): ssl/mini_client.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100339 echo " CC ssl/mini_client.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200340 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/mini_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnarda6fc5b22014-11-24 14:05:25 +0100341
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200342test/benchmark$(EXEXT): test/benchmark.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100343 echo " CC test/benchmark.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200344 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000345
Gilles Peskine03ab5442021-07-09 15:19:28 +0200346test/cpp_dummy_build.cpp: test/generate_cpp_dummy_build.sh
347 echo " Gen test/cpp_dummy_build.cpp"
348 test/generate_cpp_dummy_build.sh
349
Andrzej Kurek89c048c2018-03-16 07:37:44 -0400350test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP)
351 echo " CXX test/cpp_dummy_build.cpp"
352 $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Andrzej Kurek40741f82018-03-14 17:24:01 -0400353
Gilles Peskinef80a0292021-11-04 15:18:00 +0100354ifdef BUILD_DLOPEN
Gilles Peskinea7c247e2021-11-04 12:45:19 +0100355test/dlopen$(EXEXT): test/dlopen.c $(DEP)
356 echo " CC test/dlopen.c"
357# Do not link any test objects (that would bring in a static dependency on
358# libmbedcrypto at least). Do not link with libmbed* (that would defeat the
359# purpose of testing dynamic loading).
Gilles Peskine5dbee582021-11-04 15:07:28 +0100360 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/dlopen.c $(LDFLAGS) $(DLOPEN_LDFLAGS) -o $@
Gilles Peskinea7c247e2021-11-04 12:45:19 +0100361endif
362
Gilles Peskine33406b62023-11-02 18:48:39 +0100363test/metatest$(EXEXT): test/metatest.c $(DEP)
364 echo " CC test/metatest.c"
Gilles Peskinea1023e22023-11-03 19:16:56 +0100365 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -I ../library test/metatest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Gilles Peskine33406b62023-11-02 18:48:39 +0100366
Gilles Peskinec772b182021-01-12 15:55:10 +0100367test/query_config.o: test/query_config.c test/query_config.h $(DEP)
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100368 echo " CC test/query_config.c"
369 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c test/query_config.c -o $@
370
Gilles Peskinedf6e84a2023-02-22 22:09:51 +0100371test/query_included_headers$(EXEXT): test/query_included_headers.c $(DEP)
372 echo " CC test/query_included_headers.c"
373 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_included_headers.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
374
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200375test/selftest$(EXEXT): test/selftest.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100376 echo " CC test/selftest.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200377 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker5121ce52009-01-03 21:22:43 +0000378
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200379test/udp_proxy$(EXEXT): test/udp_proxy.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100380 echo " CC test/udp_proxy.c"
Manuel Pégourié-Gonnard8d4a6132015-06-24 12:16:20 +0200381 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/udp_proxy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Manuel Pégourié-Gonnardcb4137b2014-09-04 14:55:28 +0200382
Andres Amaya Garcia5ab74a12017-10-24 21:10:45 +0100383test/zeroize$(EXEXT): test/zeroize.c $(DEP)
384 echo " CC test/zeroize.c"
385 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
386
Gilles Peskinec772b182021-01-12 15:55:10 +0100387test/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 +0100388 echo " CC test/query_compile_time_config.c"
Gilles Peskinef06a54c2021-01-05 20:59:50 +0100389 $(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 +0100390
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200391util/pem2der$(EXEXT): util/pem2der.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100392 echo " CC util/pem2der.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200393 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker8adf13b2013-08-25 14:50:09 +0200394
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200395util/strerror$(EXEXT): util/strerror.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100396 echo " CC util/strerror.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200397 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker01cc3942012-05-08 08:36:15 +0000398
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200399x509/cert_app$(EXEXT): x509/cert_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100400 echo " CC x509/cert_app.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200401 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakker4fc45522010-03-18 20:11:58 +0000402
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200403x509/cert_write$(EXEXT): x509/cert_write.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100404 echo " CC x509/cert_write.c"
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200405 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_write.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
406
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200407x509/crl_app$(EXEXT): x509/crl_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100408 echo " CC x509/crl_app.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200409 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/crl_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkera9507c02011-02-12 15:27:28 +0000410
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200411x509/cert_req$(EXEXT): x509/cert_req.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100412 echo " CC x509/cert_req.c"
Alon Bar-Levf7a9f302015-02-18 17:55:05 +0200413 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_req.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000414
Gilles Peskine2c1442e2021-07-26 20:20:54 +0200415x509/load_roots$(EXEXT): x509/load_roots.c $(DEP)
416 echo " CC x509/load_roots.c"
417 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/load_roots.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
418
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200419x509/req_app$(EXEXT): x509/req_app.c $(DEP)
Manuel Pégourié-Gonnard78ec2b02015-07-08 22:12:06 +0100420 echo " CC x509/req_app.c"
Manuel Pégourié-Gonnarda7c89032015-06-29 15:47:35 +0200421 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
422
Paul Bakker5121ce52009-01-03 21:22:43 +0000423clean:
Paul Bakker62f88dc2012-05-10 21:26:28 +0000424ifndef WINDOWS
Gilles Peskineb0fa9d22021-04-22 20:07:44 +0200425 rm -f $(EXES)
Jaeden Amerobefe1e152019-06-03 09:14:14 +0100426 -rm -f ssl/ssl_pthread_server$(EXEXT)
Gilles Peskine03ab5442021-07-09 15:19:28 +0200427 -rm -f test/cpp_dummy_build.cpp test/cpp_dummy_build$(EXEXT)
Gilles Peskinea7c247e2021-11-04 12:45:19 +0100428 -rm -f test/dlopen$(EXEXT)
Manuel Pégourié-Gonnard5c59a4f2015-06-24 13:06:24 +0200429else
Darryl Green9b9a7902019-08-30 14:51:55 +0100430 if exist *.o del /Q /F *.o
431 if exist *.exe del /Q /F *.exe
Gilles Peskine03ab5442021-07-09 15:19:28 +0200432 if exist test\cpp_dummy_build.cpp del /Q /F test\cpp_dummy_build.cpp
Paul Bakker62f88dc2012-05-10 21:26:28 +0000433endif
Philippe Antoine48f35f52019-06-27 08:46:45 +0200434 $(MAKE) -C fuzz clean
Manuel Pégourié-Gonnard1b578782013-09-16 13:33:42 +0200435
436list:
Gilles Peskineb0fa9d22021-04-22 20:07:44 +0200437 echo $(EXES)