Makefile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=libxcrypt
  3. PKG_VERSION:=4.4.38
  4. PKG_RELEASE:=1
  5. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
  6. PKG_SOURCE_URL:=https://github.com/besser82/libxcrypt/releases/download/v$(PKG_VERSION)
  7. PKG_HASH:=80304b9c306ea799327f01d9a7549bdb28317789182631f1b54f4511b4206dd6
  8. PKG_MAINTAINER:=
  9. PKG_LICENSE:=LGPL-2.1-or-later
  10. PKG_LICENSE_FILES:=COPYING.LIB
  11. PKG_INSTALL:=1
  12. PKG_BUILD_PARALLEL:=1
  13. PKG_CONFIG_DEPENDS:= \
  14. CONFIG_USE_GLIBC \
  15. CONFIG_PACKAGE_libcrypt-compat \
  16. CONFIG_PACKAGE_libxcrypt
  17. include $(INCLUDE_DIR)/package.mk
  18. define Package/libxcrypt/Default
  19. SECTION:=libs
  20. CATEGORY:=Libraries
  21. URL:=https://github.com/besser82/libxcrypt
  22. TITLE:=Extended crypt library
  23. endef
  24. define Package/libxcrypt
  25. $(Package/libxcrypt/Default)
  26. VARIANT:=regular
  27. BUILDONLY:=1
  28. endef
  29. define Package/libcrypt-compat
  30. $(Package/libxcrypt/Default)
  31. VARIANT:=compat
  32. TITLE+= - libc compatibility
  33. DEPENDS:=@USE_GLIBC
  34. endef
  35. define Package/libxcrypt/description
  36. libxcrypt is a modern library for one-way hashing of passwords. It supports
  37. a wide variety of both modern and historical hashing methods: yescrypt,
  38. gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt, md5crypt, SunMD5,
  39. sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt. It provides the traditional
  40. Unix crypt and crypt_r interfaces, as well as a set of extended interfaces
  41. pioneered by Openwall Linux, crypt_rn, crypt_ra, crypt_gensalt,
  42. crypt_gensalt_rn, and crypt_gensalt_ra.
  43. endef
  44. Package/libcrypt-compat/description=$(Package/libxcrypt/description)
  45. CONFIGURE_ARGS += \
  46. --with-pic \
  47. --enable-year2038 \
  48. --disable-xcrypt-compat-files
  49. ifeq ($(BUILD_VARIANT),regular)
  50. CONFIGURE_ARGS += \
  51. --disable-shared \
  52. --disable-failure-tokens \
  53. --disable-obsolete-api \
  54. --enable-hashes=solaris
  55. endif
  56. ifeq ($(BUILD_VARIANT),compat)
  57. CONFIGURE_ARGS += \
  58. --enable-obsolete-api=glibc \
  59. --enable-hashes=glibc
  60. endif
  61. define Package/libxcrypt/install
  62. true
  63. endef
  64. define Package/libcrypt-compat/install
  65. $(INSTALL_DIR) $(1)/usr/lib
  66. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrypt.so.* $(1)/usr/lib/
  67. endef
  68. define Build/libxcrypt/InstallDev
  69. $(INSTALL_DIR) $(1)/usr/include
  70. $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
  71. $(INSTALL_DIR) $(1)/usr/lib/libxcrypt
  72. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrypt.{a,la} $(1)/usr/lib/libxcrypt
  73. $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
  74. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxcrypt.pc $(1)/usr/lib/pkgconfig/
  75. endef
  76. define Build/libcrypt-compat/InstallDev
  77. $(INSTALL_DIR) $(1)/usr/include
  78. $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
  79. $(INSTALL_DIR) $(1)/usr/lib
  80. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrypt.{a,la,so*} $(1)/usr/lib/
  81. $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
  82. # libcrypt.pc is symlink to libxcrypt.pc
  83. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxcrypt.pc $(1)/usr/lib/pkgconfig/libcrypt.pc
  84. endef
  85. ifeq ($(BUILD_VARIANT),regular)
  86. Build/InstallDev=$(Build/libxcrypt/InstallDev)
  87. endif
  88. ifeq ($(BUILD_VARIANT),compat)
  89. Build/InstallDev=$(Build/libcrypt-compat/InstallDev)
  90. endif
  91. $(eval $(call BuildPackage,libcrypt-compat))
  92. $(eval $(call BuildPackage,libxcrypt))