openssl.mk 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #############################################################
  2. #
  3. # openssl
  4. #
  5. #############################################################
  6. OPENSSL_VERSION = 1.0.0d
  7. OPENSSL_SITE = http://www.openssl.org/source
  8. OPENSSL_INSTALL_STAGING = YES
  9. OPENSSL_DEPENDENCIES = zlib
  10. OPENSSL_TARGET_ARCH = generic32
  11. OPENSSL_CFLAGS = $(TARGET_CFLAGS)
  12. ifeq ($(BR2_PACKAGE_OPENSSL_OCF),y)
  13. OPENSSL_CFLAGS += -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS
  14. define OPENSSL_INSTALL_CRYPTODEV_H
  15. $(INSTALL) -D package/openssl/ocf-cryptodev-20101223.h \
  16. $(STAGING_DIR)/usr/include/crypto/cryptodev.h
  17. endef
  18. OPENSSL_POST_EXTRACT_HOOKS += OPENSSL_INSTALL_CRYPTODEV_H
  19. endif
  20. # Some architectures are optimized in OpenSSL
  21. ifeq ($(ARCH),arm)
  22. ifneq ($(BR2_generic_arm),y)
  23. ifneq ($(BR2_arm610),y)
  24. ifneq ($(BR2_arm710),y)
  25. OPENSSL_TARGET_ARCH = armv4
  26. endif
  27. endif
  28. endif
  29. endif
  30. ifeq ($(ARCH),powerpc)
  31. OPENSSL_TARGET_ARCH = ppc
  32. endif
  33. ifeq ($(ARCH),x86_64)
  34. OPENSSL_TARGET_ARCH = x86_64
  35. endif
  36. # Workaround for bug #3445
  37. ifeq ($(BR2_x86_i386),y)
  38. OPENSSL_TARGET_ARCH = generic32 386
  39. endif
  40. define OPENSSL_CONFIGURE_CMDS
  41. (cd $(@D); \
  42. $(TARGET_CONFIGURE_ARGS) \
  43. $(TARGET_CONFIGURE_OPTS) \
  44. ./Configure \
  45. linux-$(OPENSSL_TARGET_ARCH) \
  46. --prefix=/usr \
  47. --openssldir=/etc/ssl \
  48. --libdir=/lib \
  49. threads \
  50. shared \
  51. no-idea \
  52. no-rc5 \
  53. enable-camellia \
  54. enable-mdc2 \
  55. enable-tlsext \
  56. zlib-dynamic \
  57. )
  58. $(SED) "s:-march=[-a-z0-9] ::" -e "s:-mcpu=[-a-z0-9] ::g" $(@D)/Makefile
  59. $(SED) "s:-O[0-9]:$(OPENSSL_CFLAGS):" $(@D)/Makefile
  60. endef
  61. define OPENSSL_BUILD_CMDS
  62. $(MAKE1) -C $(@D) all build-shared
  63. $(MAKE1) -C $(@D) do_linux-shared
  64. endef
  65. define OPENSSL_INSTALL_STAGING_CMDS
  66. $(MAKE1) -C $(@D) INSTALL_PREFIX=$(STAGING_DIR) install
  67. endef
  68. define OPENSSL_INSTALL_TARGET_CMDS
  69. $(MAKE1) -C $(@D) INSTALL_PREFIX=$(TARGET_DIR) install
  70. endef
  71. define OPENSSL_REMOVE_DEV_FILES
  72. rm -rf $(TARGET_DIR)/usr/lib/ssl
  73. endef
  74. ifneq ($(BR2_HAVE_DEVFILES),y)
  75. OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_REMOVE_DEV_FILES
  76. endif
  77. define OPENSSL_REMOVE_OPENSSL_BIN
  78. rm -f $(TARGET_DIR)/usr/bin/openssl
  79. endef
  80. ifneq ($(BR2_PACKAGE_OPENSSL_BIN),y)
  81. OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_REMOVE_OPENSSL_BIN
  82. endif
  83. define OPENSSL_INSTALL_FIXUPS
  84. rm -f $(TARGET_DIR)/usr/bin/c_rehash
  85. # libraries gets installed read only, so strip fails
  86. chmod +w $(TARGET_DIR)/usr/lib/engines/lib*.so
  87. for i in $(addprefix $(TARGET_DIR)/usr/lib/,libcrypto.so.* libssl.so.*); \
  88. do chmod +w $$i; done
  89. endef
  90. OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_INSTALL_FIXUPS
  91. define OPENSSL_REMOVE_OPENSSL_ENGINES
  92. rm -rf $(TARGET_DIR)/usr/lib/engines
  93. endef
  94. ifneq ($(BR2_PACKAGE_OPENSSL_ENGINES),y)
  95. OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_REMOVE_OPENSSL_ENGINES
  96. endif
  97. define OPENSSL_UNINSTALL_CMDS
  98. rm -rf $(addprefix $(TARGET_DIR)/,etc/ssl usr/bin/openssl usr/include/openssl)
  99. rm -rf $(addprefix $(TARGET_DIR)/usr/lib/,ssl engines libcrypto* libssl* pkgconfig/libcrypto.pc)
  100. rm -rf $(addprefix $(STAGING_DIR)/,etc/ssl usr/bin/openssl usr/include/openssl)
  101. rm -rf $(addprefix $(STAGING_DIR)/usr/lib/,ssl engines libcrypto* libssl* pkgconfig/libcrypto.pc)
  102. endef
  103. $(eval $(call GENTARGETS,package,openssl))