mirror of
https://github.com/openwrt/packages.git
synced 2026-10-12 05:57:04 +04:00
--disable-asm dates back to the import of the package from the old
packages repository (5bf972ecf). libgcrypt detects CPU features at
runtime, and with its assembly it uses the Armv8 crypto extensions and
NEON on ARM and the vector crypto extensions on RISC-V.
bench-slope, median of 3 runs, Cortex-A53: AES-CBC decryption 23.9 ->
1357 MiB/s, AES-GCM 19.1 -> 646 MiB/s, SHA-256 70.8 -> 620 MiB/s.
Cortex-A72 in AArch32, without crypto extensions: SHA-512 45.7 -> 78.0
MiB/s, AES-GCM 33.0 -> 47.7 MiB/s.
libgcrypt.so grows by 34 KiB on aarch64, 35 KiB on riscv64 and 12 KiB on
arm, compressed with xz. mips and loongarch64 gain no assembly and grow
by less than 5 KiB.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Julius Bairaktaris <julius@bairaktaris.de>
72 lines
2.3 KiB
Makefile
72 lines
2.3 KiB
Makefile
#
|
|
# Copyright (C) 2005-2011 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=libgcrypt
|
|
PKG_VERSION:=1.12.4
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/
|
|
PKG_HASH:=d77f68f48879510e79a2f65977ccc68981781ea0923e5bdffac2a193ea3d660e
|
|
|
|
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
|
|
PKG_CPE_ID:=cpe:/a:gnupg:libgcrypt
|
|
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/libgcrypt
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
DEPENDS:=+libgpg-error
|
|
TITLE:=GNU crypto library
|
|
URL:=https://www.gnupg.org/related_software/libgcrypt/
|
|
LICENSE:=LGPL-2.1-or-later
|
|
LICENSE_FILES:=COPYING.LIB
|
|
endef
|
|
|
|
define Package/libgcrypt/description
|
|
This is a general purpose cryptographic library based on the code from
|
|
GnuPG. It provides functions for all cryptographic building blocks:
|
|
symmetric ciphers (AES, DES, Arcfour, CAST5), hash algorithms (MD5, SHA-1,
|
|
RIPE-MD160, SHA-224/256, SHA-384/512), MACs (HMAC for all hash
|
|
algorithms), public key algorithms (RSA, DSA), large integer functions,
|
|
random numbers and a lot of supporting functions. Some algorithms have
|
|
been disabled to reduce size (Blowfish, Twofish, Serpent,
|
|
RC2, SEED, Camellia, CRC, MD4, TIGER-192, Whirlpool, ElGamal, ECC).
|
|
endef
|
|
|
|
CONFIGURE_ARGS += \
|
|
--enable-shared \
|
|
--enable-static \
|
|
--disable-doc \
|
|
--with-gpg-error-prefix="$(STAGING_DIR)/usr"
|
|
|
|
TARGET_CFLAGS += $(FPIC)
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/bin $(2)/bin $(1)/usr/include $(1)/usr/lib/pkgconfig $(1)/usr/share/aclocal
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/libgcrypt-config $(1)/usr/bin/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/gcrypt*.h $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgcrypt.{la,a,so*} $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/aclocal/libgcrypt.m4 $(1)/usr/share/aclocal/
|
|
$(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(1)/usr/bin/libgcrypt-config
|
|
$(LN) ../../usr/bin/libgcrypt-config $(2)/bin/libgcrypt-config
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig
|
|
endef
|
|
|
|
define Package/libgcrypt/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgcrypt.so.* $(1)/usr/lib/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,libgcrypt))
|