component.mk 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. #
  2. # Copyright (C) 2006-2024 wolfSSL Inc.
  3. #
  4. # This file is part of wolfSSL.
  5. #
  6. # wolfSSL is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # wolfSSL is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, write to the Free Software
  18. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
  19. #
  20. #
  21. # Component Makefile
  22. #
  23. #
  24. # The Espressif Managed Components are only for newer versions of the ESP-IDF
  25. # Typically only for ESP32[-x] targets and only for ESP-IDF v4.3 or later:
  26. # See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html
  27. # https://components.espressif.com/
  28. #
  29. # Usage:
  30. #
  31. # make flash
  32. #
  33. # make flash ESPPORT=/dev/ttyS55
  34. #
  35. # make flash ESPBAUD=9600
  36. #
  37. # make monitor ESPPORT=COM1
  38. #
  39. # make monitor ESPPORT=/dev/ttyS55 MONITORBAUD=115200
  40. #
  41. # export ESPPORT=/dev/ttyS55
  42. #
  43. # https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/index.html
  44. #
  45. # Although the project should define WOLFSSL_USER_SETTINGS, we'll also
  46. # define it here:
  47. CFLAGS +=-DWOLFSSL_USER_SETTINGS
  48. # In the wolfSSL GitHub examples for Espressif,
  49. # the root is 7 directories up from here:
  50. WOLFSSL_ROOT := ../../../../../../../
  51. # NOTE: The wolfSSL include directory (e.g. user_settings.h) is
  52. # located HERE in THIS project, and *not* in the wolfSSL root.
  53. COMPONENT_ADD_INCLUDEDIRS := .
  54. COMPONENT_ADD_INCLUDEDIRS += include
  55. COMPONENT_ADD_INCLUDEDIRS += $(WOLFSSL_ROOT).
  56. COMPONENT_ADD_INCLUDEDIRS += $(WOLFSSL_ROOT)wolfssl
  57. COMPONENT_ADD_INCLUDEDIRS += $(WOLFSSL_ROOT)wolfssl/wolfcrypt
  58. COMPONENT_ADD_INCLUDEDIRS += $(WOLFSSL_ROOT)wolfssl/wolfcrypt/port/Espressif
  59. COMPONENT_ADD_INCLUDEDIRS += $(WOLFSSL_ROOT)wolfcrypt/benchmark
  60. # COMPONENT_ADD_INCLUDEDIRS += $ENV(IDF_PATH)/components/freertos/include/freertos
  61. # COMPONENT_ADD_INCLUDEDIRS += "$ENV(IDF_PATH)/soc/esp32s3/include/soc"
  62. # WOLFSSL_ROOT := ""
  63. COMPONENT_SRCDIRS := $(WOLFSSL_ROOT)src
  64. COMPONENT_SRCDIRS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif
  65. COMPONENT_SRCDIRS += $(WOLFSSL_ROOT)wolfcrypt/src/port/atmel
  66. COMPONENT_SRCDIRS += $(WOLFSSL_ROOT)wolfcrypt/benchmark
  67. COMPONENT_SRCDIRS += $(WOLFSSL_ROOT)wolfcrypt/test
  68. COMPONENT_SRCDIRS += include
  69. COMPONENT_OBJEXCLUDE := $(WOLFSSL_ROOT)wolfcrypt/src/aes_asm.o
  70. COMPONENT_OBJEXCLUDE += $(WOLFSSL_ROOT)wolfcrypt/src/evp.o
  71. COMPONENT_OBJEXCLUDE += $(WOLFSSL_ROOT)wolfcrypt/src/misc.o
  72. COMPONENT_OBJEXCLUDE += $(WOLFSSL_ROOT)wolfcrypt/src/sha512_asm.o
  73. COMPONENT_OBJEXCLUDE += $(WOLFSSL_ROOT)wolfcrypt/src/fe_x25519_asm.o
  74. COMPONENT_OBJEXCLUDE += $(WOLFSSL_ROOT)wolfcrypt/src/aes_gcm_x86_asm.o
  75. COMPONENT_OBJEXCLUDE += $(WOLFSSL_ROOT)src/bio.o
  76. ##
  77. ## wolfSSL
  78. ##
  79. COMPONENT_OBJS := $(WOLFSSL_ROOT)src/bio.o
  80. # COMPONENT_OBJS += src/conf.o
  81. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/crl.o
  82. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/dtls.o
  83. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/dtls13.o
  84. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/internal.o
  85. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/keys.o
  86. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/ocsp.o
  87. # COMPONENT_OBJS += src/pk.o
  88. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/quic.o
  89. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/sniffer.o
  90. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/ssl.o
  91. # COMPONENT_OBJS += src/ssl_asn1.o
  92. # COMPONENT_OBJS += src/ssl_bn.o
  93. # COMPONENT_OBJS += src/ssl_certman.o
  94. # COMPONENT_OBJS += src/ssl_crypto.o
  95. # COMPONENT_OBJS += src/ssl_misc.o
  96. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/tls.o
  97. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/tls13.o
  98. COMPONENT_OBJS += $(WOLFSSL_ROOT)src/wolfio.o
  99. # COMPONENT_OBJS += src/x509.o
  100. # COMPONENT_OBJS += src/x509_str.o
  101. ##
  102. ## wolfcrypt
  103. ##
  104. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/aes.o
  105. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/arc4.o
  106. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/asm.o
  107. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/asn.o
  108. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/async.o
  109. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/blake2b.o
  110. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/blake2s.o
  111. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/camellia.o
  112. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/chacha.o
  113. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/chacha20_poly1305.o
  114. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/cmac.o
  115. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/coding.o
  116. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/compress.o
  117. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/cpuid.o
  118. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/cryptocb.o
  119. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/curve25519.o
  120. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/curve448.o
  121. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/des3.o
  122. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/dh.o
  123. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/dilithium.o
  124. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/dsa.o
  125. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ecc.o
  126. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/eccsi.o
  127. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ecc_fp.o
  128. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ed25519.o
  129. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ed448.o
  130. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/error.o
  131. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/evp.o
  132. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ext_kyber.o
  133. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ext_lms.o
  134. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ext_xmss.o
  135. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/falcon.o
  136. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/fe_448.o
  137. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/fe_low_mem.o
  138. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/fe_operations.o
  139. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/fips.o
  140. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/fips_test.o
  141. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ge_448.o
  142. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ge_low_mem.o
  143. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ge_operations.o
  144. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/hash.o
  145. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/hmac.o
  146. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/hpke.o
  147. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/integer.o
  148. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/kdf.o
  149. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/logging.o
  150. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/md2.o
  151. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/md4.o
  152. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/md5.o
  153. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/memory.o
  154. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/misc.o
  155. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/pkcs12.o
  156. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/pkcs7.o
  157. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/poly1305.o
  158. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/pwdbased.o
  159. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/random.o
  160. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/rc2.o
  161. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/ripemd.o
  162. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/rsa.o
  163. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sakke.o
  164. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/selftest.o
  165. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sha.o
  166. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sha256.o
  167. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sha3.o
  168. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sha512.o
  169. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/signature.o
  170. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/siphash.o
  171. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sm2.o
  172. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sm3.o
  173. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sm4.o
  174. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sphincs.o
  175. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_arm32.o
  176. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_arm64.o
  177. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_armthumb.o
  178. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_c32.o
  179. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_c64.o
  180. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_cortexm.o
  181. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_dsp32.o
  182. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_int.o
  183. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_sm2_arm32.o
  184. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_sm2_arm64.o
  185. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_sm2_armthumb.o
  186. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_sm2_c32.o
  187. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_sm2_c64.o
  188. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_sm2_cortexm.o
  189. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_sm2_x86_64.o
  190. # COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/sp_x86_64.o
  191. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/srp.o
  192. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/tfm.o
  193. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_dsp.o
  194. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_encrypt.o
  195. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_kyber.o
  196. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_kyber_poly.o
  197. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_lms.o
  198. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_pkcs11.o
  199. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_port.o
  200. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wc_xmss.o
  201. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wolfcrypt_first.o
  202. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wolfcrypt_last.o
  203. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wolfevent.o
  204. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/wolfmath.o
  205. ##
  206. ## Espressif
  207. ##
  208. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif/esp32_aes.o
  209. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif/esp32_mp.o
  210. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif/esp32_sha.o
  211. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif/esp32_util.o
  212. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif/esp_sdk_mem_lib.o
  213. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif/esp_sdk_time_lib.o
  214. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/src/port/Espressif/esp_sdk_wifi_lib.o
  215. ##
  216. ## wolfcrypt benchmark (optional)
  217. ##
  218. ## COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/benchmark/benchmark.o
  219. ##
  220. ## wolfcrypt test (optional)
  221. ##
  222. COMPONENT_OBJS += $(WOLFSSL_ROOT)wolfcrypt/test/test.o
  223. ##
  224. ## wolfcrypt
  225. ##
  226. COMPONENT_SRCDIRS += $(WOLFSSL_ROOT)wolfcrypt/src