Makefile 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480
  1. # To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS
  2. CFLAGS ?= -O2
  3. WARNING_CFLAGS ?= -Wall -Wextra -Wformat=2 -Wno-format-nonliteral
  4. WARNING_CXXFLAGS ?= -Wall -Wextra -Wformat=2 -Wno-format-nonliteral
  5. LDFLAGS ?=
  6. MBEDTLS_TEST_PATH:=../tests/src
  7. MBEDTLS_TEST_OBJS:=$(patsubst %.c,%.o,$(wildcard ${MBEDTLS_TEST_PATH}/*.c ${MBEDTLS_TEST_PATH}/drivers/*.c))
  8. LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../tests/include -I../include -D_FILE_OFFSET_BITS=64
  9. LOCAL_CXXFLAGS = $(WARNING_CXXFLAGS) -I../include -I../tests/include -D_FILE_OFFSET_BITS=64
  10. LOCAL_LDFLAGS = ${MBEDTLS_TEST_OBJS} \
  11. -L../library \
  12. -lmbedtls$(SHARED_SUFFIX) \
  13. -lmbedx509$(SHARED_SUFFIX) \
  14. -lmbedcrypto$(SHARED_SUFFIX)
  15. ifeq ($(shell uname -s),Linux)
  16. DLOPEN_LDFLAGS ?= -ldl
  17. else
  18. DLOPEN_LDFLAGS ?=
  19. endif
  20. include ../3rdparty/Makefile.inc
  21. LOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES)
  22. ifndef SHARED
  23. MBEDLIBS=../library/libmbedcrypto.a ../library/libmbedx509.a ../library/libmbedtls.a
  24. else
  25. MBEDLIBS=../library/libmbedcrypto.$(DLEXT) ../library/libmbedx509.$(DLEXT) ../library/libmbedtls.$(DLEXT)
  26. endif
  27. DEP=${MBEDLIBS} ${MBEDTLS_TEST_OBJS}
  28. ifdef DEBUG
  29. LOCAL_CFLAGS += -g3
  30. endif
  31. # if we're running on Windows, build for Windows
  32. ifdef WINDOWS
  33. WINDOWS_BUILD=1
  34. endif
  35. ifdef WINDOWS_BUILD
  36. DLEXT=dll
  37. EXEXT=.exe
  38. LOCAL_LDFLAGS += -lws2_32
  39. ifdef SHARED
  40. SHARED_SUFFIX=.$(DLEXT)
  41. endif
  42. else
  43. DLEXT ?= so
  44. EXEXT=
  45. SHARED_SUFFIX=
  46. endif
  47. ifdef WINDOWS
  48. PYTHON ?= python
  49. else
  50. PYTHON ?= $(shell if type python3 >/dev/null 2>/dev/null; then echo python3; else echo python; fi)
  51. endif
  52. # Only build the dlopen test in shared library builds, and not when building
  53. # for Windows.
  54. ifdef BUILD_DLOPEN
  55. # Don't override the value
  56. else ifdef WINDOWS_BUILD
  57. BUILD_DLOPEN =
  58. else ifdef SHARED
  59. BUILD_DLOPEN = y
  60. else
  61. BUILD_DLOPEN =
  62. endif
  63. ## The following assignment is the list of base names of applications that
  64. ## will be built on Windows. Extra Linux/Unix/POSIX-only applications can
  65. ## be declared by appending with `APPS += ...` afterwards.
  66. ## See the get_app_list function in scripts/generate_visualc_files.pl and
  67. ## make sure to check that it still works if you tweak the format here.
  68. APPS = \
  69. aes/crypt_and_hash \
  70. cipher/cipher_aead_demo \
  71. hash/generic_sum \
  72. hash/hello \
  73. hash/md_hmac_demo \
  74. pkey/dh_client \
  75. pkey/dh_genprime \
  76. pkey/dh_server \
  77. pkey/ecdh_curve25519 \
  78. pkey/ecdsa \
  79. pkey/gen_key \
  80. pkey/key_app \
  81. pkey/key_app_writer \
  82. pkey/mpi_demo \
  83. pkey/pk_decrypt \
  84. pkey/pk_encrypt \
  85. pkey/pk_sign \
  86. pkey/pk_verify \
  87. pkey/rsa_decrypt \
  88. pkey/rsa_encrypt \
  89. pkey/rsa_genkey \
  90. pkey/rsa_sign \
  91. pkey/rsa_sign_pss \
  92. pkey/rsa_verify \
  93. pkey/rsa_verify_pss \
  94. psa/aead_demo \
  95. psa/crypto_examples \
  96. psa/hmac_demo \
  97. psa/key_ladder_demo \
  98. psa/psa_constant_names \
  99. random/gen_entropy \
  100. random/gen_random_ctr_drbg \
  101. ssl/dtls_client \
  102. ssl/dtls_server \
  103. ssl/mini_client \
  104. ssl/ssl_client1 \
  105. ssl/ssl_client2 \
  106. ssl/ssl_context_info \
  107. ssl/ssl_fork_server \
  108. ssl/ssl_mail_client \
  109. ssl/ssl_server \
  110. ssl/ssl_server2 \
  111. test/benchmark \
  112. test/query_compile_time_config \
  113. test/query_included_headers \
  114. test/selftest \
  115. test/udp_proxy \
  116. test/zeroize \
  117. util/pem2der \
  118. util/strerror \
  119. x509/cert_app \
  120. x509/cert_req \
  121. x509/cert_write \
  122. x509/crl_app \
  123. x509/load_roots \
  124. x509/req_app \
  125. # End of APPS
  126. ifdef PTHREAD
  127. APPS += ssl/ssl_pthread_server
  128. endif
  129. ifdef BUILD_DLOPEN
  130. APPS += test/dlopen
  131. endif
  132. ifdef TEST_CPP
  133. APPS += test/cpp_dummy_build
  134. endif
  135. EXES = $(patsubst %,%$(EXEXT),$(APPS))
  136. .SILENT:
  137. .PHONY: all clean list fuzz
  138. all: $(EXES)
  139. ifndef WINDOWS
  140. # APPS doesn't include the fuzzing programs, which aren't "normal"
  141. # sample or test programs, and don't build with MSVC which is
  142. # warning about fopen
  143. all: fuzz
  144. endif
  145. fuzz: ${MBEDTLS_TEST_OBJS}
  146. $(MAKE) -C fuzz THIRDPARTY_INCLUDES=$(THIRDPARTY_INCLUDES)
  147. $(MBEDLIBS):
  148. $(MAKE) -C ../library
  149. ${MBEDTLS_TEST_OBJS}:
  150. $(MAKE) -C ../tests mbedtls_test
  151. .PHONY: generated_files
  152. GENERATED_FILES = psa/psa_constant_names_generated.c test/query_config.c
  153. generated_files: $(GENERATED_FILES)
  154. psa/psa_constant_names_generated.c: ../scripts/generate_psa_constants.py
  155. psa/psa_constant_names_generated.c: ../include/psa/crypto_values.h
  156. psa/psa_constant_names_generated.c: ../include/psa/crypto_extra.h
  157. psa/psa_constant_names_generated.c: ../tests/suites/test_suite_psa_crypto_metadata.data
  158. psa/psa_constant_names_generated.c:
  159. echo " Gen $@"
  160. $(PYTHON) ../scripts/generate_psa_constants.py
  161. test/query_config.c: ../scripts/generate_query_config.pl
  162. ## The generated file only depends on the options that are present in mbedtls_config.h,
  163. ## not on which options are set. To avoid regenerating this file all the time
  164. ## when switching between configurations, don't declare mbedtls_config.h as a
  165. ## dependency. Remove this file from your working tree if you've just added or
  166. ## removed an option in mbedtls_config.h.
  167. #test/query_config.c: ../include/mbedtls/mbedtls_config.h
  168. test/query_config.c: ../scripts/data_files/query_config.fmt
  169. test/query_config.c:
  170. echo " Gen $@"
  171. $(PERL) ../scripts/generate_query_config.pl
  172. aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c $(DEP)
  173. echo " CC aes/crypt_and_hash.c"
  174. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) aes/crypt_and_hash.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  175. cipher/cipher_aead_demo$(EXEXT): cipher/cipher_aead_demo.c $(DEP)
  176. echo " CC cipher/cipher_aead_demo.c"
  177. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) cipher/cipher_aead_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  178. hash/generic_sum$(EXEXT): hash/generic_sum.c $(DEP)
  179. echo " CC hash/generic_sum.c"
  180. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/generic_sum.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  181. hash/hello$(EXEXT): hash/hello.c $(DEP)
  182. echo " CC hash/hello.c"
  183. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/hello.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  184. hash/md_hmac_demo$(EXEXT): hash/md_hmac_demo.c $(DEP)
  185. echo " CC hash/md_hmac_demo.c"
  186. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) hash/md_hmac_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  187. pkey/dh_client$(EXEXT): pkey/dh_client.c $(DEP)
  188. echo " CC pkey/dh_client.c"
  189. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  190. pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c $(DEP)
  191. echo " CC pkey/dh_genprime.c"
  192. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_genprime.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  193. pkey/dh_server$(EXEXT): pkey/dh_server.c $(DEP)
  194. echo " CC pkey/dh_server.c"
  195. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/dh_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  196. pkey/ecdh_curve25519$(EXEXT): pkey/ecdh_curve25519.c $(DEP)
  197. echo " CC pkey/ecdh_curve25519.c"
  198. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdh_curve25519.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  199. pkey/ecdsa$(EXEXT): pkey/ecdsa.c $(DEP)
  200. echo " CC pkey/ecdsa.c"
  201. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/ecdsa.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  202. pkey/gen_key$(EXEXT): pkey/gen_key.c $(DEP)
  203. echo " CC pkey/gen_key.c"
  204. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/gen_key.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  205. pkey/key_app$(EXEXT): pkey/key_app.c $(DEP)
  206. echo " CC pkey/key_app.c"
  207. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  208. pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c $(DEP)
  209. echo " CC pkey/key_app_writer.c"
  210. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/key_app_writer.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  211. pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c $(DEP)
  212. echo " CC pkey/mpi_demo.c"
  213. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/mpi_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  214. pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c $(DEP)
  215. echo " CC pkey/pk_decrypt.c"
  216. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  217. pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c $(DEP)
  218. echo " CC pkey/pk_encrypt.c"
  219. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  220. pkey/pk_sign$(EXEXT): pkey/pk_sign.c $(DEP)
  221. echo " CC pkey/pk_sign.c"
  222. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  223. pkey/pk_verify$(EXEXT): pkey/pk_verify.c $(DEP)
  224. echo " CC pkey/pk_verify.c"
  225. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/pk_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  226. pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c $(DEP)
  227. echo " CC pkey/rsa_genkey.c"
  228. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_genkey.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  229. pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c $(DEP)
  230. echo " CC pkey/rsa_sign.c"
  231. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  232. pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c $(DEP)
  233. echo " CC pkey/rsa_verify.c"
  234. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  235. pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c $(DEP)
  236. echo " CC pkey/rsa_sign_pss.c"
  237. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_sign_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  238. pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c $(DEP)
  239. echo " CC pkey/rsa_verify_pss.c"
  240. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_verify_pss.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  241. pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c $(DEP)
  242. echo " CC pkey/rsa_decrypt.c"
  243. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_decrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  244. pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c $(DEP)
  245. echo " CC pkey/rsa_encrypt.c"
  246. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) pkey/rsa_encrypt.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  247. psa/aead_demo$(EXEXT): psa/aead_demo.c $(DEP)
  248. echo " CC psa/aead_demo.c"
  249. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/aead_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  250. psa/crypto_examples$(EXEXT): psa/crypto_examples.c $(DEP)
  251. echo " CC psa/crypto_examples.c"
  252. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/crypto_examples.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  253. psa/hmac_demo$(EXEXT): psa/hmac_demo.c $(DEP)
  254. echo " CC psa/hmac_demo.c"
  255. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/hmac_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  256. psa/key_ladder_demo$(EXEXT): psa/key_ladder_demo.c $(DEP)
  257. echo " CC psa/key_ladder_demo.c"
  258. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/key_ladder_demo.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  259. psa/psa_constant_names$(EXEXT): psa/psa_constant_names.c psa/psa_constant_names_generated.c $(DEP)
  260. echo " CC psa/psa_constant_names.c"
  261. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) psa/psa_constant_names.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  262. random/gen_entropy$(EXEXT): random/gen_entropy.c $(DEP)
  263. echo " CC random/gen_entropy.c"
  264. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_entropy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  265. random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c $(DEP)
  266. echo " CC random/gen_random_ctr_drbg.c"
  267. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) random/gen_random_ctr_drbg.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  268. ssl/dtls_client$(EXEXT): ssl/dtls_client.c $(DEP)
  269. echo " CC ssl/dtls_client.c"
  270. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  271. ssl/dtls_server$(EXEXT): ssl/dtls_server.c $(DEP)
  272. echo " CC ssl/dtls_server.c"
  273. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/dtls_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  274. ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP)
  275. echo " CC ssl/ssl_client1.c"
  276. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  277. SSL_TEST_OBJECTS = test/query_config.o ssl/ssl_test_lib.o
  278. SSL_TEST_DEPS = $(SSL_TEST_OBJECTS) \
  279. test/query_config.h \
  280. ssl/ssl_test_lib.h \
  281. ssl/ssl_test_common_source.c \
  282. $(DEP)
  283. ssl/ssl_test_lib.o: ssl/ssl_test_lib.c ssl/ssl_test_lib.h $(DEP)
  284. echo " CC ssl/ssl_test_lib.c"
  285. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c ssl/ssl_test_lib.c -o $@
  286. ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c $(SSL_TEST_DEPS)
  287. echo " CC ssl/ssl_client2.c"
  288. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  289. ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP)
  290. echo " CC ssl/ssl_server.c"
  291. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  292. ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c $(SSL_TEST_DEPS)
  293. echo " CC ssl/ssl_server2.c"
  294. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c $(SSL_TEST_OBJECTS) $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  295. ssl/ssl_context_info$(EXEXT): ssl/ssl_context_info.c test/query_config.o test/query_config.h $(DEP)
  296. echo " CC ssl/ssl_context_info.c"
  297. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_context_info.c test/query_config.o $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  298. ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP)
  299. echo " CC ssl/ssl_fork_server.c"
  300. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_fork_server.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  301. ssl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c $(DEP)
  302. echo " CC ssl/ssl_pthread_server.c"
  303. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_pthread_server.c $(LOCAL_LDFLAGS) -lpthread $(LDFLAGS) -o $@
  304. ssl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c $(DEP)
  305. echo " CC ssl/ssl_mail_client.c"
  306. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_mail_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  307. ssl/mini_client$(EXEXT): ssl/mini_client.c $(DEP)
  308. echo " CC ssl/mini_client.c"
  309. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/mini_client.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  310. test/benchmark$(EXEXT): test/benchmark.c $(DEP)
  311. echo " CC test/benchmark.c"
  312. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  313. test/cpp_dummy_build.cpp: test/generate_cpp_dummy_build.sh
  314. echo " Gen test/cpp_dummy_build.cpp"
  315. test/generate_cpp_dummy_build.sh
  316. test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP)
  317. echo " CXX test/cpp_dummy_build.cpp"
  318. $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  319. ifdef BUILD_DLOPEN
  320. test/dlopen$(EXEXT): test/dlopen.c $(DEP)
  321. echo " CC test/dlopen.c"
  322. # Do not link any test objects (that would bring in a static dependency on
  323. # libmbedcrypto at least). Do not link with libmbed* (that would defeat the
  324. # purpose of testing dynamic loading).
  325. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/dlopen.c $(LDFLAGS) $(DLOPEN_LDFLAGS) -o $@
  326. endif
  327. test/query_config.o: test/query_config.c test/query_config.h $(DEP)
  328. echo " CC test/query_config.c"
  329. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c test/query_config.c -o $@
  330. test/query_included_headers$(EXEXT): test/query_included_headers.c $(DEP)
  331. echo " CC test/query_included_headers.c"
  332. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_included_headers.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  333. test/selftest$(EXEXT): test/selftest.c $(DEP)
  334. echo " CC test/selftest.c"
  335. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  336. test/udp_proxy$(EXEXT): test/udp_proxy.c $(DEP)
  337. echo " CC test/udp_proxy.c"
  338. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/udp_proxy.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  339. test/zeroize$(EXEXT): test/zeroize.c $(DEP)
  340. echo " CC test/zeroize.c"
  341. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  342. test/query_compile_time_config$(EXEXT): test/query_compile_time_config.c test/query_config.o test/query_config.h $(DEP)
  343. echo " CC test/query_compile_time_config.c"
  344. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_compile_time_config.c test/query_config.o $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  345. util/pem2der$(EXEXT): util/pem2der.c $(DEP)
  346. echo " CC util/pem2der.c"
  347. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  348. util/strerror$(EXEXT): util/strerror.c $(DEP)
  349. echo " CC util/strerror.c"
  350. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/strerror.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  351. x509/cert_app$(EXEXT): x509/cert_app.c $(DEP)
  352. echo " CC x509/cert_app.c"
  353. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  354. x509/cert_write$(EXEXT): x509/cert_write.c $(DEP)
  355. echo " CC x509/cert_write.c"
  356. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_write.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  357. x509/crl_app$(EXEXT): x509/crl_app.c $(DEP)
  358. echo " CC x509/crl_app.c"
  359. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/crl_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  360. x509/cert_req$(EXEXT): x509/cert_req.c $(DEP)
  361. echo " CC x509/cert_req.c"
  362. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/cert_req.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  363. x509/load_roots$(EXEXT): x509/load_roots.c $(DEP)
  364. echo " CC x509/load_roots.c"
  365. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/load_roots.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  366. x509/req_app$(EXEXT): x509/req_app.c $(DEP)
  367. echo " CC x509/req_app.c"
  368. $(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
  369. clean:
  370. ifndef WINDOWS
  371. rm -f $(EXES)
  372. -rm -f ssl/ssl_pthread_server$(EXEXT)
  373. -rm -f test/cpp_dummy_build.cpp test/cpp_dummy_build$(EXEXT)
  374. -rm -f test/dlopen$(EXEXT)
  375. else
  376. if exist *.o del /Q /F *.o
  377. if exist *.exe del /Q /F *.exe
  378. if exist test\cpp_dummy_build.cpp del /Q /F test\cpp_dummy_build.cpp
  379. endif
  380. $(MAKE) -C fuzz clean
  381. neat: clean
  382. ifndef WINDOWS
  383. rm -f $(GENERATED_FILES)
  384. else
  385. for %f in ($(subst /,\,$(GENERATED_FILES))) if exist %f del /Q /F %f
  386. endif
  387. list:
  388. echo $(EXES)