Makefile 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. ############################################################################
  2. # apps/crypto/wolfssl/Makefile
  3. #
  4. # Copyright (C) 2006-2023 wolfSSL Inc.
  5. #
  6. # This file is part of wolfSSL. (formerly known as CyaSSL)
  7. #
  8. # wolfSSL is free software; you can redistribute it and/or modify
  9. # it under the terms of the GNU General Public License as published by
  10. # the Free Software Foundation; either version 2 of the License, or
  11. # (at your option) any later version.
  12. #
  13. # wolfSSL is distributed in the hope that it will be useful,
  14. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. # GNU General Public License for more details.
  17. #
  18. # You should have received a copy of the GNU General Public License
  19. # along with this program; if not, write to the Free Software
  20. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  21. #
  22. ############################################################################
  23. include $(APPDIR)/Make.defs
  24. # wolfSSL SSL/TLS crypto library
  25. # Set up build configuration and environment
  26. https://github.com/wolfSSL/wolfssl/archive/refs/tags/v5.5.4-stable.zip
  27. WOLFSSL_URL ?= "https://github.com/wolfSSL/wolfssl/archive/refs/tags"
  28. WOLFSSL_VERSION = $(patsubst "%",%,$(strip $(CONFIG_WOLFSSL_VERSION)))
  29. WOLFSSL_ZIP = v$(WOLFSSL_VERSION)-stable.zip
  30. WOLFSSL_UNPACKNAME = wolfssl
  31. WOLFSSL_EXAMPLESNAME = wolfssl-examples
  32. UNPACK ?= unzip -q -o
  33. # WOLFSSL TLS FILES
  34. CSRCS += $(WOLFSSL_UNPACKNAME)/src/crl.c
  35. CSRCS += $(WOLFSSL_UNPACKNAME)/src/internal.c
  36. CSRCS += $(WOLFSSL_UNPACKNAME)/src/keys.c
  37. CSRCS += $(WOLFSSL_UNPACKNAME)/src/ocsp.c
  38. CSRCS += $(WOLFSSL_UNPACKNAME)/src/sniffer.c
  39. CSRCS += $(WOLFSSL_UNPACKNAME)/src/ssl.c
  40. CSRCS += $(WOLFSSL_UNPACKNAME)/src/tls.c
  41. CSRCS += $(WOLFSSL_UNPACKNAME)/src/tls13.c
  42. CSRCS += $(WOLFSSL_UNPACKNAME)/src/wolfio.c
  43. # wolfCrypt Core (FIPS validated crypto available contact fips@wolfssl.com)
  44. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/aes.c
  45. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/cmac.c
  46. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/des3.c
  47. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/dh.c
  48. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/ecc.c
  49. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/hmac.c
  50. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/random.c
  51. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/rsa.c
  52. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sha.c
  53. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sha256.c
  54. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sha512.c
  55. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sha3.c
  56. # wolfCrypt Additional
  57. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/asm.c
  58. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/asn.c
  59. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/blake2s.c
  60. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/chacha.c
  61. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/chacha20_poly1305.c
  62. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/coding.c
  63. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/compress.c
  64. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/cpuid.c
  65. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/cryptocb.c
  66. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/curve25519.c
  67. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/curve448.c
  68. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/ecc_fp.c
  69. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/eccsi.c
  70. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/ed25519.c
  71. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/ed448.c
  72. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/error.c
  73. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/fe_448.c
  74. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/fe_low_mem.c
  75. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/fe_operations.c
  76. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/ge_448.c
  77. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/ge_low_mem.c
  78. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/ge_operations.c
  79. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/hash.c
  80. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/kdf.c
  81. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/integer.c
  82. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/logging.c
  83. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/md5.c
  84. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/memory.c
  85. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/pkcs12.c
  86. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/pkcs7.c
  87. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/poly1305.c
  88. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/pwdbased.c
  89. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/rc2.c
  90. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sakke.c
  91. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/signature.c
  92. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/srp.c
  93. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_arm32.c
  94. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_arm64.c
  95. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_armthumb.c
  96. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_c32.c
  97. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_c64.c
  98. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_cortexm.c
  99. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_dsp32.c
  100. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_int.c
  101. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/sp_x86_64.c
  102. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/tfm.c
  103. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/wc_dsp.c
  104. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/wc_encrypt.c
  105. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/wc_pkcs11.c
  106. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/wc_port.c
  107. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/wolfevent.c
  108. CSRCS += $(WOLFSSL_UNPACKNAME)/wolfcrypt/src/wolfmath.c
  109. CFLAGS += -DWOLFSSL_USER_SETTINGS
  110. ifneq ($(CONFIG_WOLFCRYPT_APPS),)
  111. MODULE = $(CONFIG_WOLFSSL_APPS)
  112. ifeq ($(CONFIG_WOLFCRYPT_APP_BENCHMARK),y)
  113. PROGNAME += $(CONFIG_WOLFCRYPT_APP_BENCHMARK_PROGNAME)
  114. PRIORITY += $(CONFIG_WOLFCRYPT_APP_BENCHMARK_PRIORITY)
  115. STACKSIZE += $(CONFIG_WOLFCRYPT_APP_BENCHMARK_STACKSIZE)
  116. CFLAGS += -I$(WOLFSSL_UNPACKNAME)
  117. CFLAGS += -I$(WOLFSSL_UNPACKNAME)/../ # To reach user_settings.h
  118. MAINSRC += $(WOLFSSL_UNPACKNAME)/wolfcrypt/benchmark/benchmark.c
  119. endif
  120. ifeq ($(CONFIG_WOLFCRYPT_APP_SELFTEST),y)
  121. PROGNAME += $(CONFIG_WOLFCRYPT_APP_SELFTEST_PROGNAME)
  122. PRIORITY += $(CONFIG_WOLFCRYPT_APP_SELFTEST_PRIORITY)
  123. STACKSIZE += $(CONFIG_WOLFCRYPT_APP_SELFTEST_STACKSIZE)
  124. CFLAGS += -I$(WOLFSSL_UNPACKNAME)
  125. CFLAGS += -I$(WOLFSSL_UNPACKNAME)/../ # To reach user_settings.h
  126. MAINSRC += $(WOLFSSL_UNPACKNAME)/wolfcrypt/test/test.c
  127. endif
  128. ifeq ($(CONFIG_WOLFSSL_APP_CLIENT_SERVER),y)
  129. PROGNAME += $(CONFIG_WOLFSSL_APP_CLIENT_SERVER_PROGNAME)
  130. PRIORITY += $(CONFIG_WOLFSSL_APP_CLIENT_SERVER_PRIORITY)
  131. STACKSIZE += $(CONFIG_WOLFSSL_APP_CLIENT_SERVER_STACKSIZE)
  132. CFLAGS += -I$(WOLFSSL_UNPACKNAME)
  133. CFLAGS += -I$(WOLFSSL_UNPACKNAME)/../ # To reach user_settings.h
  134. MAINSRC += $(WOLFSSL_EXAMPLESNAME)/embedded/tls-client-server.c
  135. endif
  136. endif
  137. $(WOLFSSL_ZIP):
  138. @echo "Downloading: $(WOLFSSL_ZIP)"
  139. $(Q) curl -O -L $(CONFIG_WOLFSSL_URL)/$(WOLFSSL_ZIP)
  140. $(WOLFSSL_UNPACKNAME): $(WOLFSSL_ZIP)
  141. @echo "Unpacking: $(WOLFSSL_ZIP) -> $(WOLFSSL_UNPACKNAME)"
  142. $(Q) $(UNPACK) $(WOLFSSL_ZIP)
  143. $(Q) mv wolfssl-$(WOLFSSL_VERSION) $(WOLFSSL_UNPACKNAME)
  144. $(Q) touch $(WOLFSSL_UNPACKNAME)
  145. include $(APPDIR)/Application.mk