include.am 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. # vim:ft=automake
  2. # included from Top Level Makefile.am
  3. # All paths should be given relative to the root
  4. if !BUILD_NO_LIBRARY
  5. lib_LTLIBRARIES+= src/libwolfssl.la
  6. endif
  7. src_libwolfssl_la_SOURCES =
  8. src_libwolfssl_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${WOLFSSL_LIBRARY_VERSION}
  9. src_libwolfssl_la_LIBADD = $(LIBM) $(LIB_ADD) $(LIB_STATIC_ADD)
  10. src_libwolfssl_la_CFLAGS = -DBUILDING_WOLFSSL $(AM_CFLAGS)
  11. src_libwolfssl_la_CPPFLAGS = -DBUILDING_WOLFSSL $(AM_CPPFLAGS)
  12. # install the packaged IPP libraries
  13. if BUILD_FAST_RSA
  14. # Link needed IPP libraries
  15. noinst_SCRIPTS+=IPP_links
  16. IPP_links:
  17. @$(IPPLINK)
  18. ippdir = $(libdir)
  19. ipp_DATA = $(IPPLIBS)
  20. include_HEADERS+=$(IPPHEADERS)
  21. endif # BUILD_FAST_RSA
  22. if BUILD_FIPS
  23. if BUILD_FIPS_V1
  24. # fips first file
  25. src_libwolfssl_la_SOURCES += ctaocrypt/src/wolfcrypt_first.c
  26. src_libwolfssl_la_SOURCES += \
  27. ctaocrypt/src/hmac.c \
  28. ctaocrypt/src/random.c \
  29. ctaocrypt/src/sha256.c
  30. if BUILD_RSA
  31. src_libwolfssl_la_SOURCES += ctaocrypt/src/rsa.c
  32. endif
  33. if BUILD_AES
  34. src_libwolfssl_la_SOURCES += ctaocrypt/src/aes.c
  35. endif
  36. if BUILD_DES3
  37. src_libwolfssl_la_SOURCES += ctaocrypt/src/des3.c
  38. endif
  39. if BUILD_SHA
  40. src_libwolfssl_la_SOURCES += ctaocrypt/src/sha.c
  41. endif
  42. if BUILD_SHA512
  43. src_libwolfssl_la_SOURCES += ctaocrypt/src/sha512.c
  44. endif
  45. src_libwolfssl_la_SOURCES += ctaocrypt/src/fips.c
  46. src_libwolfssl_la_SOURCES += ctaocrypt/src/fips_test.c
  47. # fips last file
  48. src_libwolfssl_la_SOURCES += ctaocrypt/src/wolfcrypt_last.c
  49. endif
  50. if BUILD_FIPS_V2
  51. # FIPSv2 first file
  52. src_libwolfssl_la_SOURCES += \
  53. wolfcrypt/src/wolfcrypt_first.c
  54. src_libwolfssl_la_SOURCES += \
  55. wolfcrypt/src/hmac.c \
  56. wolfcrypt/src/random.c \
  57. wolfcrypt/src/sha256.c
  58. if BUILD_RSA
  59. src_libwolfssl_la_SOURCES += wolfcrypt/src/rsa.c
  60. endif
  61. if BUILD_ECC
  62. src_libwolfssl_la_SOURCES += wolfcrypt/src/ecc.c
  63. endif
  64. if BUILD_AES
  65. src_libwolfssl_la_SOURCES += wolfcrypt/src/aes.c
  66. if BUILD_ARMASM
  67. if BUILD_FIPS_READY
  68. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-aes.c
  69. endif
  70. endif
  71. endif
  72. if BUILD_AESNI
  73. src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_asm.S
  74. if BUILD_INTELASM
  75. src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
  76. endif
  77. endif
  78. if BUILD_DES3
  79. src_libwolfssl_la_SOURCES += wolfcrypt/src/des3.c
  80. endif
  81. if BUILD_SHA
  82. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha.c
  83. endif
  84. if BUILD_ARMASM
  85. if BUILD_FIPS_READY
  86. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha256.c
  87. endif
  88. endif
  89. if BUILD_INTELASM
  90. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256_asm.S
  91. endif
  92. if BUILD_SHA512
  93. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512.c
  94. if BUILD_ARMASM
  95. if BUILD_FIPS_READY
  96. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512.c
  97. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm.S
  98. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
  99. endif
  100. endif
  101. if BUILD_INTELASM
  102. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512_asm.S
  103. endif
  104. endif
  105. if BUILD_SHA3
  106. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3.c
  107. endif
  108. if BUILD_DH
  109. src_libwolfssl_la_SOURCES += wolfcrypt/src/dh.c
  110. endif
  111. if BUILD_CMAC
  112. src_libwolfssl_la_SOURCES += wolfcrypt/src/cmac.c
  113. endif
  114. src_libwolfssl_la_SOURCES += wolfcrypt/src/fips.c \
  115. wolfcrypt/src/fips_test.c
  116. # fips last file
  117. src_libwolfssl_la_SOURCES += wolfcrypt/src/wolfcrypt_last.c
  118. endif
  119. if BUILD_FIPS_RAND
  120. src_libwolfssl_la_SOURCES += \
  121. wolfcrypt/src/wolfcrypt_first.c \
  122. wolfcrypt/src/hmac.c \
  123. wolfcrypt/src/random.c \
  124. wolfcrypt/src/sha256.c \
  125. wolfcrypt/src/sha256_asm.S \
  126. wolfcrypt/src/fips.c \
  127. wolfcrypt/src/fips_test.c \
  128. wolfcrypt/src/wolfcrypt_last.c
  129. endif BUILD_FIPS_RAND
  130. endif BUILD_FIPS
  131. # For wolfRand, exclude everything else.
  132. if !BUILD_FIPS_RAND
  133. # For FIPSV2, exclude the wolfCrypt files included above.
  134. # For wolfRand, exclude just a couple files.
  135. # For old FIPS, keep the wolfCrypt versions of the
  136. # CtaoCrypt files included above.
  137. if !BUILD_FIPS_V2
  138. src_libwolfssl_la_SOURCES += wolfcrypt/src/hmac.c
  139. endif
  140. # CAVP self test
  141. if BUILD_SELFTEST
  142. src_libwolfssl_la_SOURCES += wolfcrypt/src/selftest.c
  143. endif
  144. endif !BUILD_FIPS_RAND
  145. src_libwolfssl_la_SOURCES += \
  146. wolfcrypt/src/hash.c \
  147. wolfcrypt/src/cpuid.c
  148. if !BUILD_FIPS_RAND
  149. if !BUILD_FIPS_V2
  150. if BUILD_RNG
  151. src_libwolfssl_la_SOURCES += wolfcrypt/src/random.c
  152. endif
  153. endif
  154. if !BUILD_FIPS_V2
  155. if BUILD_ARMASM
  156. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha256.c
  157. else
  158. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256.c
  159. if BUILD_INTELASM
  160. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256_asm.S
  161. endif
  162. endif
  163. endif
  164. if BUILD_AFALG
  165. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/af_alg/afalg_hash.c
  166. endif
  167. if BUILD_WOLFEVENT
  168. src_libwolfssl_la_SOURCES += wolfcrypt/src/wolfevent.c
  169. endif
  170. if BUILD_ASYNCCRYPT
  171. src_libwolfssl_la_SOURCES += wolfcrypt/src/async.c
  172. endif
  173. if !BUILD_USER_RSA
  174. if BUILD_RSA
  175. if BUILD_FAST_RSA
  176. src_libwolfssl_la_SOURCES += wolfcrypt/user-crypto/src/rsa.c
  177. else
  178. if !BUILD_FIPS_V2
  179. src_libwolfssl_la_SOURCES += wolfcrypt/src/rsa.c
  180. endif
  181. endif
  182. endif
  183. endif
  184. if BUILD_RC2
  185. src_libwolfssl_la_SOURCES += wolfcrypt/src/rc2.c
  186. endif
  187. if BUILD_SP
  188. if BUILD_SP_C
  189. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_c32.c
  190. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_c64.c
  191. endif
  192. if BUILD_SP_X86_64
  193. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_x86_64.c
  194. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_x86_64_asm.S
  195. endif
  196. if !BUILD_FIPS_V2
  197. if BUILD_SP_ARM32
  198. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_arm32.c
  199. endif
  200. endif
  201. if BUILD_SP_ARM_THUMB
  202. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_armthumb.c
  203. endif
  204. if BUILD_SP_ARM64
  205. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_arm64.c
  206. endif
  207. if BUILD_SP_INT
  208. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_int.c
  209. endif
  210. if BUILD_SP_ARM_CORTEX
  211. src_libwolfssl_la_SOURCES += wolfcrypt/src/sp_cortexm.c
  212. endif
  213. endif
  214. if !BUILD_FIPS_V2
  215. if BUILD_AES
  216. src_libwolfssl_la_SOURCES += wolfcrypt/src/aes.c
  217. if BUILD_ARMASM
  218. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-aes.c
  219. endif
  220. if BUILD_AFALG
  221. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/af_alg/afalg_aes.c
  222. endif
  223. endif
  224. endif
  225. if !BUILD_FIPS_V2
  226. if BUILD_CMAC
  227. src_libwolfssl_la_SOURCES += wolfcrypt/src/cmac.c
  228. endif
  229. endif
  230. if !BUILD_FIPS_V2
  231. if BUILD_DES3
  232. src_libwolfssl_la_SOURCES += wolfcrypt/src/des3.c
  233. endif
  234. endif
  235. if !BUILD_FIPS_V2
  236. if BUILD_SHA
  237. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha.c
  238. endif
  239. endif
  240. if !BUILD_FIPS_V2
  241. if BUILD_SHA512
  242. if BUILD_ARMASM
  243. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512.c
  244. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm.S
  245. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
  246. else
  247. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512.c
  248. if BUILD_INTELASM
  249. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512_asm.S
  250. endif
  251. endif
  252. endif
  253. endif
  254. if !BUILD_FIPS_V2
  255. if BUILD_SHA3
  256. src_libwolfssl_la_SOURCES += wolfcrypt/src/sha3.c
  257. endif
  258. endif
  259. endif !BUILD_FIPS_RAND
  260. src_libwolfssl_la_SOURCES += \
  261. wolfcrypt/src/logging.c \
  262. wolfcrypt/src/wc_port.c \
  263. wolfcrypt/src/error.c
  264. if !BUILD_FIPS_RAND
  265. src_libwolfssl_la_SOURCES += \
  266. wolfcrypt/src/wc_encrypt.c \
  267. wolfcrypt/src/signature.c \
  268. wolfcrypt/src/wolfmath.c
  269. endif !BUILD_FIPS_RAND
  270. if BUILD_MEMORY
  271. src_libwolfssl_la_SOURCES += wolfcrypt/src/memory.c
  272. endif
  273. if !BUILD_FIPS_RAND
  274. if !BUILD_FIPS_V2
  275. if BUILD_DH
  276. src_libwolfssl_la_SOURCES += wolfcrypt/src/dh.c
  277. endif
  278. endif
  279. if BUILD_ASN
  280. src_libwolfssl_la_SOURCES += wolfcrypt/src/asn.c
  281. endif
  282. endif !BUILD_FIPS_RAND
  283. if BUILD_CODING
  284. src_libwolfssl_la_SOURCES += wolfcrypt/src/coding.c
  285. endif
  286. if !BUILD_FIPS_RAND
  287. if BUILD_POLY1305
  288. if BUILD_ARMASM
  289. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-poly1305.c
  290. endif
  291. src_libwolfssl_la_SOURCES += wolfcrypt/src/poly1305.c
  292. if BUILD_INTELASM
  293. src_libwolfssl_la_SOURCES += wolfcrypt/src/poly1305_asm.S
  294. endif
  295. endif
  296. if BUILD_RC4
  297. src_libwolfssl_la_SOURCES += wolfcrypt/src/arc4.c
  298. endif
  299. if BUILD_MD4
  300. src_libwolfssl_la_SOURCES += wolfcrypt/src/md4.c
  301. endif
  302. if BUILD_MD5
  303. src_libwolfssl_la_SOURCES += wolfcrypt/src/md5.c
  304. endif
  305. if BUILD_PWDBASED
  306. src_libwolfssl_la_SOURCES += wolfcrypt/src/pwdbased.c
  307. src_libwolfssl_la_SOURCES += wolfcrypt/src/pkcs12.c
  308. endif
  309. if BUILD_DSA
  310. src_libwolfssl_la_SOURCES += wolfcrypt/src/dsa.c
  311. endif
  312. if !BUILD_FIPS_V2
  313. if BUILD_AESNI
  314. src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_asm.S
  315. src_libwolfssl_la_SOURCES += wolfcrypt/src/aes_gcm_asm.S
  316. endif
  317. endif
  318. if BUILD_CAMELLIA
  319. src_libwolfssl_la_SOURCES += wolfcrypt/src/camellia.c
  320. endif
  321. if BUILD_MD2
  322. src_libwolfssl_la_SOURCES += wolfcrypt/src/md2.c
  323. endif
  324. if BUILD_RIPEMD
  325. src_libwolfssl_la_SOURCES += wolfcrypt/src/ripemd.c
  326. endif
  327. if BUILD_BLAKE2
  328. src_libwolfssl_la_SOURCES += wolfcrypt/src/blake2b.c
  329. endif
  330. if BUILD_BLAKE2S
  331. src_libwolfssl_la_SOURCES += wolfcrypt/src/blake2s.c
  332. endif
  333. if BUILD_HC128
  334. src_libwolfssl_la_SOURCES += wolfcrypt/src/hc128.c
  335. endif
  336. if BUILD_RABBIT
  337. src_libwolfssl_la_SOURCES += wolfcrypt/src/rabbit.c
  338. endif
  339. if BUILD_CHACHA
  340. if BUILD_ARMASM
  341. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-chacha.c
  342. else
  343. src_libwolfssl_la_SOURCES += wolfcrypt/src/chacha.c
  344. if BUILD_INTELASM
  345. src_libwolfssl_la_SOURCES += wolfcrypt/src/chacha_asm.S
  346. endif
  347. endif
  348. if BUILD_POLY1305
  349. src_libwolfssl_la_SOURCES += wolfcrypt/src/chacha20_poly1305.c
  350. endif
  351. endif
  352. if !BUILD_INLINE
  353. src_libwolfssl_la_SOURCES += wolfcrypt/src/misc.c
  354. endif
  355. if BUILD_FASTMATH
  356. src_libwolfssl_la_SOURCES += wolfcrypt/src/tfm.c
  357. endif
  358. if BUILD_SLOWMATH
  359. src_libwolfssl_la_SOURCES += wolfcrypt/src/integer.c
  360. endif
  361. if !BUILD_FIPS_V2
  362. if BUILD_ECC
  363. src_libwolfssl_la_SOURCES += wolfcrypt/src/ecc.c
  364. endif
  365. endif
  366. if BUILD_CURVE25519
  367. src_libwolfssl_la_SOURCES += wolfcrypt/src/curve25519.c
  368. endif
  369. if BUILD_ED25519
  370. src_libwolfssl_la_SOURCES += wolfcrypt/src/ed25519.c
  371. endif
  372. if BUILD_FEMATH
  373. if BUILD_CURVE25519_SMALL
  374. src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_low_mem.c
  375. else
  376. if BUILD_INTELASM
  377. src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
  378. else
  379. if BUILD_ARMASM
  380. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-curve25519.S
  381. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519.S
  382. else
  383. src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_operations.c
  384. endif
  385. endif
  386. endif
  387. endif
  388. if BUILD_GEMATH
  389. if BUILD_ED25519_SMALL
  390. src_libwolfssl_la_SOURCES += wolfcrypt/src/ge_low_mem.c
  391. else
  392. src_libwolfssl_la_SOURCES += wolfcrypt/src/ge_operations.c
  393. if !BUILD_FEMATH
  394. if BUILD_INTELASM
  395. src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
  396. else
  397. if BUILD_ARMASM
  398. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-curve25519.S
  399. else
  400. src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_operations.c
  401. endif
  402. endif
  403. endif
  404. endif
  405. endif
  406. if BUILD_CURVE448
  407. src_libwolfssl_la_SOURCES += wolfcrypt/src/curve448.c
  408. endif
  409. if BUILD_ED448
  410. src_libwolfssl_la_SOURCES += wolfcrypt/src/ed448.c
  411. endif
  412. if BUILD_FE448
  413. src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_448.c
  414. endif
  415. if BUILD_GE448
  416. src_libwolfssl_la_SOURCES += wolfcrypt/src/ge_448.c
  417. if !BUILD_FE448
  418. src_libwolfssl_la_SOURCES += wolfcrypt/src/fe_448.c
  419. endif
  420. endif
  421. if BUILD_LIBZ
  422. src_libwolfssl_la_SOURCES += wolfcrypt/src/compress.c
  423. endif
  424. if BUILD_PKCS7
  425. src_libwolfssl_la_SOURCES += wolfcrypt/src/pkcs7.c
  426. endif
  427. if BUILD_SRP
  428. src_libwolfssl_la_SOURCES += wolfcrypt/src/srp.c
  429. endif
  430. if BUILD_IDEA
  431. src_libwolfssl_la_SOURCES += wolfcrypt/src/idea.c
  432. endif
  433. if BUILD_AFALG
  434. src_libwolfssl_la_SOURCES += wolfcrypt/src/port/af_alg/wc_afalg.c
  435. endif
  436. if !BUILD_CRYPTONLY
  437. # ssl files
  438. src_libwolfssl_la_SOURCES += \
  439. src/internal.c \
  440. src/wolfio.c \
  441. src/keys.c \
  442. src/ssl.c \
  443. src/tls.c
  444. if BUILD_TLS13
  445. src_libwolfssl_la_SOURCES += src/tls13.c
  446. endif
  447. if BUILD_OCSP
  448. src_libwolfssl_la_SOURCES += src/ocsp.c
  449. endif
  450. if BUILD_CRL
  451. src_libwolfssl_la_SOURCES += src/crl.c
  452. endif
  453. if BUILD_SNIFFER
  454. src_libwolfssl_la_SOURCES += src/sniffer.c
  455. endif
  456. endif !BUILD_CRYPTONLY
  457. endif !BUILD_FIPS_RAND