mbedtls.mk 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. ################################################################################
  2. #
  3. # mbedtls
  4. #
  5. ################################################################################
  6. MBEDTLS_VERSION = 2.28.9
  7. MBEDTLS_SITE = https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-$(MBEDTLS_VERSION)
  8. MBEDTLS_SOURCE = mbedtls-$(MBEDTLS_VERSION).tar.bz2
  9. MBEDTLS_CONF_OPTS = \
  10. -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) -std=c99" \
  11. -DENABLE_PROGRAMS=$(if $(BR2_PACKAGE_MBEDTLS_PROGRAMS),ON,OFF) \
  12. -DENABLE_TESTING=OFF \
  13. -DMBEDTLS_FATAL_WARNINGS=OFF
  14. MBEDTLS_INSTALL_STAGING = YES
  15. MBEDTLS_LICENSE = Apache-2.0 or GPL-2.0+
  16. MBEDTLS_LICENSE_FILES = LICENSE
  17. MBEDTLS_CPE_ID_VENDOR = arm
  18. MBEDTLS_CPE_ID_PRODUCT = mbed_tls
  19. # This is mandatory for hiawatha
  20. ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
  21. define MBEDTLS_ENABLE_THREADING
  22. $(SED) "s://#define MBEDTLS_THREADING_C:#define MBEDTLS_THREADING_C:" \
  23. $(@D)/include/mbedtls/config.h
  24. $(SED) "s://#define MBEDTLS_THREADING_PTHREAD:#define MBEDTLS_THREADING_PTHREAD:" \
  25. $(@D)/include/mbedtls/config.h
  26. endef
  27. MBEDTLS_PRE_CONFIGURE_HOOKS += MBEDTLS_ENABLE_THREADING
  28. ifeq ($(BR2_STATIC_LIBS),y)
  29. MBEDTLS_CONF_OPTS += -DLINK_WITH_PTHREAD=ON
  30. endif
  31. endif
  32. ifeq ($(BR2_STATIC_LIBS),y)
  33. MBEDTLS_CONF_OPTS += \
  34. -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DUSE_STATIC_MBEDTLS_LIBRARY=ON
  35. else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
  36. MBEDTLS_CONF_OPTS += \
  37. -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DUSE_STATIC_MBEDTLS_LIBRARY=ON
  38. else ifeq ($(BR2_SHARED_LIBS),y)
  39. MBEDTLS_CONF_OPTS += \
  40. -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DUSE_STATIC_MBEDTLS_LIBRARY=OFF
  41. endif
  42. ifeq ($(BR2_PACKAGE_MBEDTLS_COMPRESSION),y)
  43. MBEDTLS_CONF_OPTS += -DENABLE_ZLIB_SUPPORT=ON
  44. MBEDTLS_DEPENDENCIES += zlib
  45. define MBEDTLS_ENABLE_ZLIB
  46. $(SED) "s://#define MBEDTLS_ZLIB_SUPPORT:#define MBEDTLS_ZLIB_SUPPORT:" \
  47. $(@D)/include/mbedtls/config.h
  48. endef
  49. MBEDTLS_PRE_CONFIGURE_HOOKS += MBEDTLS_ENABLE_ZLIB
  50. else
  51. MBEDTLS_CONF_OPTS += -DENABLE_ZLIB_SUPPORT=OFF
  52. endif
  53. define MBEDTLS_DISABLE_ASM
  54. $(SED) '/^#define MBEDTLS_AESNI_C/d' \
  55. $(@D)/include/mbedtls/config.h
  56. $(SED) '/^#define MBEDTLS_HAVE_ASM/d' \
  57. $(@D)/include/mbedtls/config.h
  58. $(SED) '/^#define MBEDTLS_PADLOCK_C/d' \
  59. $(@D)/include/mbedtls/config.h
  60. endef
  61. # ARM in thumb mode breaks debugging with asm optimizations
  62. # Microblaze asm optimizations are broken in general
  63. # MIPS R6 asm is not yet supported
  64. ifeq ($(BR2_ENABLE_DEBUG)$(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_ARM_INSTRUCTIONS_THUMB2),yy)
  65. MBEDTLS_POST_CONFIGURE_HOOKS += MBEDTLS_DISABLE_ASM
  66. else ifeq ($(BR2_microblaze)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y)
  67. MBEDTLS_POST_CONFIGURE_HOOKS += MBEDTLS_DISABLE_ASM
  68. endif
  69. ifeq ($(BR2_PACKAGE_MBEDTLS_DTLS_SRTP),y)
  70. define MBEDTLS_ENABLE_DTLS_SRTP
  71. $(SED) "s://#define MBEDTLS_SSL_DTLS_SRTP:#define MBEDTLS_SSL_DTLS_SRTP:" \
  72. $(@D)/include/mbedtls/config.h
  73. endef
  74. MBEDTLS_PRE_CONFIGURE_HOOKS += MBEDTLS_ENABLE_DTLS_SRTP
  75. endif
  76. $(eval $(cmake-package))