include.am 11 KB

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