libcryptopp: rewrite compilation process

This makes it easier to upgrade version.
Fixes: #12380
This commit is contained in:
aiamadeus 2024-08-03 23:27:20 +08:00
parent 33188e1cc5
commit d0aedf02ff
5 changed files with 36 additions and 3371 deletions

View File

@ -13,7 +13,7 @@ PKG_VERSION:=8.5.0
PKG_RELEASE:=1
PKG_SOURCE:=cryptopp$(subst .,,$(PKG_VERSION)).zip
PKG_SOURCE_URL:=https://www.cryptopp.com/
PKG_SOURCE_URL:=https://github.com/weidai11/cryptopp/releases/download/CRYPTOPP_$(subst .,_,$(PKG_VERSION))/
PKG_HASH:=95fc50d59488ebf61a735cce2b2ec2c2561fc682077c7b496273d65a1ed93d9e
PKG_FIXUP:=autoreconf
@ -38,9 +38,19 @@ define Package/libcryptopp/description
use of templates and abstract base classes.
endef
PKG_BUILD_FILE:=cryptopp-autotools$(subst .,,$(PKG_VERSION)).zip
define Download/autotools
URL:=https://github.com/noloader/cryptopp-autotools/releases/download/CRYPTOPP_$(subst .,_,$(PKG_VERSION))/
FILE:=$(PKG_BUILD_FILE)
HASH:=91e06c53b517753f0ba02b92bb259e0ee929ebc6ad4f8b5c190d39ba407d3fbe
endef
$(eval $(call Download,autotools))
define Build/Prepare
$(Build/Prepare/Default)
$(PKG_UNPACK)
unzip -q -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_BUILD_FILE)
cd $(PKG_BUILD_DIR); rm -f GNUmakefile GNUmakefile-cross
$(Build/Patch)
endef
define Build/InstallDev

View File

@ -0,0 +1,24 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -458,14 +458,13 @@ testvector_FILES = \
TestVectors/lea.txt TestVectors/sosemanuk.txt \
TestVectors/mars.txt TestVectors/speck.txt \
TestVectors/nr.txt TestVectors/tea.txt \
- TestVectors/ocb.txt TestVectors/threefish.txt \
- TestVectors/panama.txt TestVectors/ttmac.txt \
- TestVectors/poly1305aes.txt TestVectors/vmac.txt \
- TestVectors/poly1305_tls.txt TestVectors/wake.txt \
- TestVectors/rabbit.txt TestVectors/whrlpool.txt \
- TestVectors/Readme.txt TestVectors/xchacha.txt \
- TestVectors/rsa_oaep.txt TestVectors/xts.txt \
- TestVectors/rsa_pkcs1_1_5.txt
+ TestVectors/panama.txt TestVectors/threefish.txt \
+ TestVectors/poly1305aes.txt TestVectors/ttmac.txt \
+ TestVectors/poly1305_tls.txt TestVectors/vmac.txt \
+ TestVectors/rabbit.txt TestVectors/wake.txt \
+ TestVectors/Readme.txt TestVectors/whrlpool.txt \
+ TestVectors/rsa_oaep.txt TestVectors/xchacha.txt \
+ TestVectors/rsa_pkcs1_1_5.txt TestVectors/xts.txt
# Create with 'ls TestPrograms/test_*.cxx'. These files do not get installed.
# They exist so the feature tests can be run from the configure directory.

View File

@ -1,592 +0,0 @@
## Makefile.am - Autotools configuration file for Crypto++.
## written and placed in public domain by Jeffrey Walton.
## based on Debian Makefile.am by László Böszörményi.
##
## The GNUmakefile can generate the list of lib headers, lib sources,
## test headers and test sources. Generate the list of files with
## 'make sources'. Remove the SIMD files for libothers_la_SOURCES.
## Thanks to steeldriver on U&L.SE for help with the sed.
##
## make sources | sed 's|cryptlib.cpp cpu.cpp integer.cpp ||g' | \
## sed -e 's|[[:alnum:]]*_simd.cpp ||g' | \
## sed -e 's|[[:alnum:]]*_sse.cpp ||g' | \
## sed -e 's|[[:alnum:]]*_avx.cpp ||g' | \
## sed -e 's|[[:alnum:]]*_armv4.cpp ||g' | \
## sed -e 's|ppc_power[[:alnum:]]*.cpp ||g' | \
## fold -s -w 72
##
## The command `make sources | sed ... | fold` will create the source file
## list that can be used with `libothers_la_SOURCES` below.
##
## The list of header files can be built with 'make sources', too.
##
## make sources | sed -e 's|[[:alnum:]]*_armv4.h ||g' \
## fold -s -w 72
##
## Note: configure.ac deletes GNUmakefile. You can get it back with:
##
## git checkout GNUmakefile
##
## Automake does not support "specific flags for certain source files"
## natively, so we hack it. The hack include building 20 or so
## libraries and then combining them into an archive or shared object.
## Also see https://lists.gnu.org/archive/html/automake/2017-11/msg00000.html
## https://www.gnu.org/software/automake/manual/html_node/Per_002dObject-Flags.html.
##
## Visit the link below for the original Debian Autotools files
## https://sources.debian.net/src/libcrypto++/5.6.4-8/debian/autotools/
##
## TODO:
##
## - Figure out how to include TestPrograms/ in the dist tarball
## TestPrograms/ is unique because it is included in dist tarball but not installed
##
## - Figure out what's going on with DragonFly and dependencies
##
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I m4
AM_DEFAULT_SOURCE_EXT = .cpp
## libcryptopp.la is created from disjoint libraries due to object file
## ordering and per-object file flags requirements. libcryptopp.la is
## named as the primary library, and the object files with special needs
## are listed as EXTRA_LTLIBRARIES. Also see
## https://lists.gnu.org/archive/html/automake/2017-11/msg00000.html.
lib_LTLIBRARIES = \
libcryptopp.la
EXTRA_LTLIBRARIES = \
libcryptlib.la \
libcpu.la \
libinteger.la \
libaria_simd.la \
libblake2s_simd.la \
libblake2b_simd.la \
libchacha_simd.la \
libchacha_avx.la \
libcham_simd.la \
libcrc_simd.la \
libdonna_sse.la \
libgcm_simd.la \
libgf2n_simd.la \
libkeccak_simd.la \
liblea_simd.la \
libneon_simd.la \
libppc_simd.la \
libppc_power7.la \
libppc_power8.la \
libppc_power9.la \
librijndael_simd.la \
libsha_simd.la \
libshacal2_simd.la \
libsimon128_simd.la \
libspeck128_simd.la \
libsm4_simd.la \
libsse_simd.la
## ARMv7-a AES and SHA by Andy Polyakov
if CRYPTOGAMS_ARM_SOURCES
EXTRA_LTLIBRARIES += libaes_armv4.la
EXTRA_LTLIBRARIES += libsha1_armv4.la
EXTRA_LTLIBRARIES += libsha256_armv4.la
EXTRA_LTLIBRARIES += libsha512_armv4.la
endif
## The remainder of the source files
EXTRA_LTLIBRARIES += libothers.la
## libcryptopp_la_SOURCES is empty because we need to create the library
## artifact from disjoint libraries due to object file ordering and
## per-object file flags requriements. Actually, the adhoc.cpp file is
## due to an automake issue of assuming C sources when the list is empty.
## https://lists.gnu.org/archive/html/automake/2017-11/msg00000.html.
libcryptopp_la_SOURCES = \
adhoc.cpp
## Don't use EXTRA_ prefix for libcryptopp_la_LIBADD. It breaks Solaris.
libcryptopp_la_LIBADD = \
$(libcryptlib_la_OBJECTS) \
$(libcpu_la_OBJECTS) \
$(libinteger_la_OBJECTS) \
$(libaria_simd_la_OBJECTS) \
$(libblake2s_simd_la_OBJECTS) \
$(libblake2b_simd_la_OBJECTS) \
$(libchacha_simd_la_OBJECTS) \
$(libchacha_avx_la_OBJECTS) \
$(libcham_simd_la_OBJECTS) \
$(libcrc_simd_la_OBJECTS) \
$(libdonna_sse_la_OBJECTS) \
$(libgcm_simd_la_OBJECTS) \
$(libgf2n_simd_la_OBJECTS) \
$(libkeccak_simd_la_OBJECTS) \
$(liblea_simd_la_OBJECTS) \
$(libneon_simd_la_OBJECTS) \
$(libppc_simd_la_OBJECTS) \
$(libppc_power7_la_OBJECTS) \
$(libppc_power8_la_OBJECTS) \
$(libppc_power9_la_OBJECTS) \
$(librijndael_simd_la_OBJECTS) \
$(libsha_simd_la_OBJECTS) \
$(libshacal2_simd_la_OBJECTS) \
$(libsimon128_simd_la_OBJECTS) \
$(libspeck128_simd_la_OBJECTS) \
$(libsm4_simd_la_OBJECTS) \
$(libsse_simd_la_OBJECTS)
## ARMv7-a AES and SHA by Andy Polyakov
if CRYPTOGAMS_ARM_SOURCES
libcryptopp_la_LIBADD += $(libaes_armv4_la_OBJECTS)
libcryptopp_la_LIBADD += $(libsha1_armv4_la_OBJECTS)
libcryptopp_la_LIBADD += $(libsha256_armv4_la_OBJECTS)
libcryptopp_la_LIBADD += $(libsha512_armv4_la_OBJECTS)
endif
## cpufeatures library on Android
if ANDROID_CPU_FEATURES
libcryptopp_la_LIBADD += $(libcpu_features_la_OBJECTS)
endif
## The remainder of the object files
libcryptopp_la_LIBADD += $(libothers_la_OBJECTS)
## Don't use EXTRA_ prefix for libcryptopp_la_DEPENDENCIES. It breaks Solaris.
libcryptopp_la_DEPENDENCIES = \
$(libcryptlib_la_OBJECTS) \
$(libcpu_la_OBJECTS) \
$(libinteger_la_OBJECTS) \
$(libaria_simd_la_OBJECTS) \
$(libblake2s_simd_la_OBJECTS) \
$(libblake2b_simd_la_OBJECTS) \
$(libchacha_simd_la_OBJECTS) \
$(libchacha_avx_la_OBJECTS) \
$(libcham_simd_la_OBJECTS) \
$(libcrc_simd_la_OBJECTS) \
$(libdonna_sse_la_OBJECTS) \
$(libkeccak_simd_la_OBJECTS) \
$(liblea_simd_la_OBJECTS) \
$(libgcm_simd_la_OBJECTS) \
$(libgf2n_simd_la_OBJECTS) \
$(libneon_simd_la_OBJECTS) \
$(libppc_simd_la_OBJECTS) \
$(libppc_power7_la_OBJECTS) \
$(libppc_power8_la_OBJECTS) \
$(libppc_power9_la_OBJECTS) \
$(librijndael_simd_la_OBJECTS) \
$(libsha_simd_la_OBJECTS) \
$(libshacal2_simd_la_OBJECTS) \
$(libsimon128_simd_la_OBJECTS) \
$(libspeck128_simd_la_OBJECTS) \
$(libsm4_simd_la_OBJECTS) \
$(libsse_simd_la_OBJECTS)
## ARMv7-a AES and SHA by Andy Polyakov
if CRYPTOGAMS_ARM_SOURCES
libcryptopp_la_DEPENDENCIES += $(libaes_armv4_la_OBJECTS)
libcryptopp_la_DEPENDENCIES += $(libsha1_armv4_la_OBJECTS)
libcryptopp_la_DEPENDENCIES += $(libsha256_armv4_la_OBJECTS)
libcryptopp_la_DEPENDENCIES += $(libsha512_armv4_la_OBJECTS)
endif
## cpufeatures library on Android
if ANDROID_CPU_FEATURES
libcryptopp_la_DEPENDENCIES += $(libcpu_features_la_OBJECTS)
endif
## The remainder of the object files
libcryptopp_la_DEPENDENCIES += $(libothers_la_OBJECTS)
## Man, did Autotools fuck this up royally...
## https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
libcryptopp_la_LDFLAGS = $(AM_LDFLAGS) -release 8.5.0 -version-info 8:5
## Source files with special needs
libcryptlib_la_SOURCES = cryptlib.cpp
libcryptlib_la_CXXFLAGS = $(AM_CXXFLAGS)
libcpu_la_SOURCES = cpu.cpp
libcpu_la_CXXFLAGS = $(AM_CXXFLAGS)
libinteger_la_SOURCES = integer.cpp
libinteger_la_CXXFLAGS = $(AM_CXXFLAGS)
libaria_simd_la_SOURCES = aria_simd.cpp
libaria_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_ARIA_FLAG)
libblake2s_simd_la_SOURCES = blake2s_simd.cpp
libblake2s_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_BLAKE2S_FLAG)
libblake2b_simd_la_SOURCES = blake2b_simd.cpp
libblake2b_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_BLAKE2B_FLAG)
libchacha_simd_la_SOURCES = chacha_simd.cpp
libchacha_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_CHACHA_FLAG)
libchacha_avx_la_SOURCES = chacha_avx.cpp
libchacha_avx_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_CHACHA_AVX2_FLAG)
libcham_simd_la_SOURCES = cham_simd.cpp
libcham_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_CHAM_FLAG)
libcrc_simd_la_SOURCES = crc_simd.cpp
libcrc_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_CRC_FLAG)
libdonna_sse_la_SOURCES = donna_sse.cpp
libdonna_sse_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_DONNA_FLAG)
libgcm_simd_la_SOURCES = gcm_simd.cpp
libgcm_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_GCM_FLAG)
libgf2n_simd_la_SOURCES = gf2n_simd.cpp
libgf2n_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_GF2N_FLAG)
libkeccak_simd_la_SOURCES = keccak_simd.cpp
libkeccak_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_KECCAK_FLAG)
liblea_simd_la_SOURCES = lea_simd.cpp
liblea_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_LEA_FLAG)
libneon_simd_la_SOURCES = neon_simd.cpp
libneon_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_NEON_FLAG)
libppc_simd_la_SOURCES = ppc_simd.cpp
libppc_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_ALTIVEC_FLAG)
libppc_power7_la_SOURCES = ppc_power7.cpp
libppc_power7_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_POWER7_FLAG)
libppc_power8_la_SOURCES = ppc_power8.cpp
libppc_power8_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_POWER8_FLAG)
# Do not use CRYPTOPP_POWER9_FLAG. See https://github.com/weidai11/cryptopp/issues/986
libppc_power9_la_SOURCES = ppc_power9.cpp
# libppc_power9_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_POWER9_FLAG)
libppc_power9_la_CXXFLAGS = $(AM_CXXFLAGS)
librijndael_simd_la_SOURCES = rijndael_simd.cpp
librijndael_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_AES_FLAG)
libsha_simd_la_SOURCES = sha_simd.cpp
libsha_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SHA_FLAG)
libshacal2_simd_la_SOURCES = shacal2_simd.cpp
libshacal2_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SHA_FLAG)
libsimon128_simd_la_SOURCES = simon128_simd.cpp
libsimon128_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SIMON128_FLAG)
libspeck128_simd_la_SOURCES = speck128_simd.cpp
libspeck128_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SPECK128_FLAG)
libsm4_simd_la_SOURCES = sm4_simd.cpp
libsm4_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SM4_FLAG)
libsse_simd_la_SOURCES = sse_simd.cpp
libsse_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SSE2_FLAG)
## ARMv7-a AES and SHA by Andy Polyakov
## Also see https://stackoverflow.com/q/51575580/608639
if CRYPTOGAMS_ARM_SOURCES
libaes_armv4_la_SOURCES = aes_armv4.S
libsha1_armv4_la_SOURCES = sha1_armv4.S
libsha256_armv4_la_SOURCES = sha256_armv4.S
libsha512_armv4_la_SOURCES = sha512_armv4.S
libaes_armv4_la_CCASFLAGS = $(AM_CXXFLAGS) $(CRYPTOPGAMS_ARMV4_THUMB_FLAG)
libsha1_armv4_la_CCASFLAGS = $(AM_CXXFLAGS) $(CRYPTOPGAMS_ARMV4_FLAG)
libsha256_armv4_la_CCASFLAGS = $(AM_CXXFLAGS) $(CRYPTOPGAMS_ARMV4_FLAG)
libsha512_armv4_la_CCASFLAGS = $(AM_CXXFLAGS) $(CRYPTOPGAMS_ARMV4_FLAG)
endif
## cpufeatures library on Android
if ANDROID_CPU_FEATURES
libcpu_features_la_SOURCES = cpu-features.c
endif
# This is the list of remaining sources files that don't need special order
# and don't need special flags. It is formed by removing cryptlib.cpp,
# cpu.cpp, integer.cpp, *_avx.cpp and *_simd.cpp files. It is sorted in
# alphabetical order for deterministic builds.
# To build this list, see the head notes.
libothers_la_SOURCES = \
3way.cpp adler32.cpp algebra.cpp algparam.cpp allocate.cpp arc4.cpp \
aria.cpp ariatab.cpp asn.cpp authenc.cpp base32.cpp base64.cpp \
basecode.cpp bfinit.cpp blake2.cpp blowfish.cpp blumshub.cpp \
camellia.cpp cast.cpp casts.cpp cbcmac.cpp ccm.cpp chacha.cpp \
chachapoly.cpp cham.cpp channels.cpp cmac.cpp crc.cpp darn.cpp \
default.cpp des.cpp dessp.cpp dh.cpp dh2.cpp dll.cpp donna_32.cpp \
donna_64.cpp dsa.cpp eax.cpp ec2n.cpp eccrypto.cpp ecp.cpp elgamal.cpp \
emsa2.cpp eprecomp.cpp esign.cpp files.cpp filters.cpp fips140.cpp \
fipstest.cpp gcm.cpp gf256.cpp gf2_32.cpp gf2n.cpp gfpcrypt.cpp \
gost.cpp gzip.cpp hc128.cpp hc256.cpp hex.cpp hight.cpp hmac.cpp \
hrtimer.cpp ida.cpp idea.cpp iterhash.cpp kalyna.cpp kalynatab.cpp \
keccak.cpp keccak_core.cpp lea.cpp luc.cpp mars.cpp marss.cpp md2.cpp \
md4.cpp md5.cpp misc.cpp modes.cpp mqueue.cpp mqv.cpp nbtheory.cpp \
oaep.cpp osrng.cpp padlkrng.cpp panama.cpp pkcspad.cpp poly1305.cpp \
polynomi.cpp pssr.cpp pubkey.cpp queue.cpp rabbit.cpp rabin.cpp \
randpool.cpp rc2.cpp rc5.cpp rc6.cpp rdrand.cpp rdtables.cpp \
rijndael.cpp ripemd.cpp rng.cpp rsa.cpp rw.cpp safer.cpp salsa.cpp \
scrypt.cpp seal.cpp seed.cpp serpent.cpp sha.cpp sha3.cpp shacal2.cpp \
shake.cpp shark.cpp sharkbox.cpp simeck.cpp simon.cpp skipjack.cpp \
sm3.cpp sm4.cpp sosemanuk.cpp speck.cpp square.cpp squaretb.cpp \
strciphr.cpp tea.cpp tftables.cpp threefish.cpp tiger.cpp tigertab.cpp \
ttmac.cpp tweetnacl.cpp twofish.cpp vmac.cpp wake.cpp whrlpool.cpp \
xed25519.cpp xtr.cpp xtrcrypt.cpp xts.cpp zdeflate.cpp zinflate.cpp \
zlib.cpp
# To build this list, see the head notes.
pkginclude_HEADERS = \
3way.h adler32.h adv_simd.h aes.h algebra.h algparam.h allocate.h \
arc4.h argnames.h aria.h arm_simd.h asn.h authenc.h base32.h base64.h \
basecode.h blake2.h blowfish.h blumshub.h camellia.h cast.h cbcmac.h \
ccm.h chacha.h chachapoly.h cham.h channels.h cmac.h config.h \
config_align.h config_asm.h config_cpu.h config_cxx.h config_dll.h \
config_int.h config_misc.h config_ns.h config_os.h config_ver.h cpu.h \
crc.h cryptlib.h darn.h default.h des.h dh.h dh2.h dll.h dmac.h donna.h \
donna_32.h donna_64.h donna_sse.h drbg.h dsa.h eax.h ec2n.h eccrypto.h \
ecp.h ecpoint.h elgamal.h emsa2.h eprecomp.h esign.h fhmqv.h files.h \
filters.h fips140.h fltrimpl.h gcm.h gf256.h gf2_32.h gf2n.h gfpcrypt.h \
gost.h gzip.h hashfwd.h hc128.h hc256.h hex.h hight.h hkdf.h hmac.h \
hmqv.h hrtimer.h ida.h idea.h integer.h iterhash.h kalyna.h keccak.h \
lea.h local.h lubyrack.h luc.h mars.h md2.h md4.h md5.h mdc.h \
mersenne.h misc.h modarith.h modes.h modexppc.h mqueue.h mqv.h \
naclite.h nbtheory.h nr.h oaep.h oids.h osrng.h ossig.h padlkrng.h \
panama.h pch.h pkcspad.h poly1305.h polynomi.h ppc_simd.h pssr.h \
pubkey.h pwdbased.h queue.h rabbit.h rabin.h randpool.h rc2.h rc5.h \
rc6.h rdrand.h rijndael.h ripemd.h rng.h rsa.h rw.h safer.h salsa.h \
scrypt.h seal.h secblock.h secblockfwd.h seckey.h seed.h serpent.h \
serpentp.h sha.h sha3.h shacal2.h shake.h shark.h simeck.h simon.h \
simple.h siphash.h skipjack.h sm3.h sm4.h smartptr.h sosemanuk.h \
speck.h square.h stdcpp.h strciphr.h tea.h threefish.h tiger.h trap.h \
trunhash.h ttmac.h tweetnacl.h twofish.h vmac.h wake.h whrlpool.h \
words.h xed25519.h xtr.h xtrcrypt.h xts.h zdeflate.h zinflate.h zlib.h
noinst_HEADERS = \
local.h \
bench.h \
factory.h \
resource.h \
validate.h \
aes_armv4.h \
sha1_armv4.h \
sha256_armv4.h \
sha512_armv4.h
bin_PROGRAMS = cryptest$(EXEEXT)
cryptest_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTEST_CXXFLAGS) -DCRYPTOPP_DATA_DIR='"${pkgdatadir}/"'
cryptest_SOURCES = \
test.cpp bench1.cpp bench2.cpp bench3.cpp datatest.cpp \
dlltest.cpp fipsalgt.cpp validat0.cpp validat1.cpp validat2.cpp \
validat3.cpp validat4.cpp validat5.cpp validat6.cpp validat7.cpp \
validat8.cpp validat9.cpp validat10.cpp regtest1.cpp regtest2.cpp \
regtest3.cpp regtest4.cpp
nodist_cryptest_SOURCES = adhoc.cpp
cryptest_LDADD = $(lib_LTLIBRARIES)
CLEANFILES = adhoc.cpp
## Copy the TestVectors/ and TestData/ to ${pkgdatadir}.
## TestPrograms/ is included in the tarball but not installed.
## https://www.gnu.org/software/automake/manual/html_node/Data.html
# Create with 'ls TestData/*.dat'. These files get installed.
testdata_FILES = \
TestData/3desval.dat TestData/fhmqv160.dat TestData/rc2val.dat \
TestData/3wayval.dat TestData/fhmqv256.dat TestData/rc5val.dat \
TestData/aria.dat TestData/fhmqv384.dat TestData/rc6val.dat \
TestData/camellia.dat TestData/fhmqv512.dat TestData/rijndael.dat \
TestData/cast128v.dat TestData/gostval.dat TestData/rsa1024.dat \
TestData/cast256v.dat TestData/hmqv160.dat TestData/rsa2048a.dat \
TestData/defdmac1.bin TestData/hmqv256.dat TestData/rsa2048.dat \
TestData/defdmac2.bin TestData/hmqv384.dat TestData/rsa400pb.dat \
TestData/descert.dat TestData/hmqv512.dat TestData/rsa400pv.dat \
TestData/dh1024.dat TestData/ideaval.dat TestData/rsa512a.dat \
TestData/dh2048.dat TestData/luc1024.dat TestData/rw1024.dat \
TestData/dlie1024.dat TestData/luc2048.dat TestData/rw2048.dat \
TestData/dlie2048.dat TestData/lucc1024.dat TestData/saferval.dat \
TestData/dsa1024b.dat TestData/lucc512.dat TestData/serpentv.dat \
TestData/dsa1024.dat TestData/lucd1024.dat TestData/shacal2v.dat \
TestData/dsa512.dat TestData/lucd512.dat TestData/sharkval.dat \
TestData/ecies_p160.dat TestData/lucs1024.dat TestData/skipjack.dat \
TestData/ecies_t163.dat TestData/lucs512.dat TestData/squareva.dat \
TestData/ed25519.dat TestData/marsval.dat TestData/twofishv.dat \
TestData/ed25519v0.dat TestData/mqv1024.dat TestData/usage.dat \
TestData/ed25519v1.dat TestData/mqv2048.dat TestData/x25519.dat \
TestData/elgc1024.dat TestData/nr1024.dat TestData/x25519v0.dat \
TestData/esig1023.dat TestData/nr2048.dat TestData/x25519v1.dat \
TestData/esig1536.dat TestData/rabi1024.dat TestData/xtrdh171.dat \
TestData/esig2046.dat TestData/rabi2048.dat TestData/xtrdh342.dat
# Create with 'ls TestVectors/*.txt'. These files get installed.
testvector_FILES = \
TestVectors/aead.txt TestVectors/rsa_pss.txt \
TestVectors/aes.txt TestVectors/rw.txt \
TestVectors/all.txt TestVectors/salsa.txt \
TestVectors/aria.txt TestVectors/seal.txt \
TestVectors/blake2b.txt TestVectors/seed.txt \
TestVectors/blake2s.txt TestVectors/sha1_160_fips_180.txt \
TestVectors/blake2.txt TestVectors/sha1_fips_180.txt \
TestVectors/camellia.txt TestVectors/sha2_224_fips_180.txt \
TestVectors/ccm.txt TestVectors/sha2_256_fips_180.txt \
TestVectors/chacha20poly1305.txt TestVectors/sha2_384_fips_180.txt \
TestVectors/chacha_tls.txt TestVectors/sha2_512_fips_180.txt \
TestVectors/chacha.txt TestVectors/sha2_fips_180.txt \
TestVectors/cham.txt TestVectors/sha2.txt \
TestVectors/cmac.txt TestVectors/sha3_224_fips_202.txt \
TestVectors/dlies.txt TestVectors/sha3_256_fips_202.txt \
TestVectors/dsa_1363.txt TestVectors/sha3_384_fips_202.txt \
TestVectors/dsa_rfc6979.txt TestVectors/sha3_512_fips_202.txt \
TestVectors/dsa.txt TestVectors/sha3_fips_202.txt \
TestVectors/eax.txt TestVectors/sha3.txt \
TestVectors/esign.txt TestVectors/shacal2.txt \
TestVectors/gcm.txt TestVectors/shake.txt \
TestVectors/hc128.txt TestVectors/sha.txt \
TestVectors/hc256.txt TestVectors/simeck.txt \
TestVectors/hight.txt TestVectors/simon.txt \
TestVectors/hkdf.txt TestVectors/siphash.txt \
TestVectors/hmac.txt TestVectors/skipjack.txt \
TestVectors/kalyna.txt TestVectors/sm3.txt \
TestVectors/keccak.txt TestVectors/sm4.txt \
TestVectors/lea.txt TestVectors/sosemanuk.txt \
TestVectors/mars.txt TestVectors/speck.txt \
TestVectors/nr.txt TestVectors/tea.txt \
TestVectors/panama.txt TestVectors/threefish.txt \
TestVectors/poly1305aes.txt TestVectors/ttmac.txt \
TestVectors/poly1305_tls.txt TestVectors/vmac.txt \
TestVectors/rabbit.txt TestVectors/wake.txt \
TestVectors/Readme.txt TestVectors/whrlpool.txt \
TestVectors/rsa_oaep.txt TestVectors/xchacha.txt \
TestVectors/rsa_pkcs1_1_5.txt TestVectors/xts.txt
# Create with 'ls TestPrograms/test_*.cxx'. These files do not get installed.
# They exist so the feature tests can be run from the configure directory.
testprogs_FILES= \
TestPrograms/test_32bit.cxx
TestPrograms/test_64bit.cxx
TestPrograms/test_arm_acle_header.cxx
TestPrograms/test_arm_aes.cxx
TestPrograms/test_arm_asimd.cxx
TestPrograms/test_arm_crc.cxx
TestPrograms/test_arm_neon.cxx
TestPrograms/test_arm_neon_header.cxx
TestPrograms/test_arm_pmull.cxx
TestPrograms/test_arm_sha1.cxx
TestPrograms/test_arm_sha256.cxx
TestPrograms/test_arm_sha3.cxx
TestPrograms/test_arm_sha512.cxx
TestPrograms/test_arm_sm3.cxx
TestPrograms/test_arm_sm4.cxx
TestPrograms/test_asm_mixed.cxx
TestPrograms/test_cxx11_alignas.cxx
TestPrograms/test_cxx11_alignof.cxx
TestPrograms/test_cxx11_assert.cxx
TestPrograms/test_cxx11_atomic.cxx
TestPrograms/test_cxx11_auto.cxx
TestPrograms/test_cxx11_constexpr.cxx
TestPrograms/test_cxx11.cxx
TestPrograms/test_cxx11_deletefn.cxx
TestPrograms/test_cxx11_enumtype.cxx
TestPrograms/test_cxx11_initializer.cxx
TestPrograms/test_cxx11_lambda.cxx
TestPrograms/test_cxx11_noexcept.cxx
TestPrograms/test_cxx11_nullptr.cxx
TestPrograms/test_cxx11_staticinit.cxx
TestPrograms/test_cxx11_sync.cxx
TestPrograms/test_cxx11_vartemplates.cxx
TestPrograms/test_cxx14.cxx
TestPrograms/test_cxx17_assert.cxx
TestPrograms/test_cxx17.cxx
TestPrograms/test_cxx17_exceptions.cxx
TestPrograms/test_cxx98_exception.cxx
TestPrograms/test_cxx.cxx
TestPrograms/test_glibc.cxx
TestPrograms/test_newlib.cxx
TestPrograms/test_ppc_aes.cxx
TestPrograms/test_ppc_altivec.cxx
TestPrograms/test_ppc_power7.cxx
TestPrograms/test_ppc_power8.cxx
TestPrograms/test_ppc_power9.cxx
TestPrograms/test_ppc_sha.cxx
TestPrograms/test_ppc_vmull.cxx
TestPrograms/test_pthreads.cxx
TestPrograms/test_x86_aes.cxx
TestPrograms/test_x86_avx2.cxx
TestPrograms/test_x86_avx512.cxx
TestPrograms/test_x86_avx.cxx
TestPrograms/test_x86_clmul.cxx
TestPrograms/test_x86_cpuid.cxx
TestPrograms/test_x86_rdrand.cxx
TestPrograms/test_x86_rdseed.cxx
TestPrograms/test_x86_sha.cxx
TestPrograms/test_x86_sse2.cxx
TestPrograms/test_x86_sse3.cxx
TestPrograms/test_x86_sse41.cxx
TestPrograms/test_x86_sse42.cxx
TestPrograms/test_x86_ssse3.cxx
TestPrograms/test_x86_via_aes.cxx
TestPrograms/test_x86_via_rng.cxx
TestPrograms/test_x86_via_sha.cxx
nobase_dist_pkgdata_DATA = \
$(testdata_FILES) \
$(testvector_FILES)
# Can't seem to get this to work, despite the fiddling attempts.
# https://www.gnu.org/software/automake/manual/html_node/Uniform.html and
# https://www.gnu.org/software/automake/manual/html_node/Program-and-Library-Variables.html
#nobase_noinst_data_DATA = \
# $(testprogs_FILES)
# Workaround Automake bug. We can't seem to include the TestProgram/ data
# in the tarball without installation using their Uniform Naming Scheme
# https://www.gnu.org/software/automake/manual/html_node/Uniform.html and
# https://www.gnu.org/software/automake/manual/html_node/Program-and-Library-Variables.html
dist-hook:
chmod -R u+w $(distdir)
cp -r TestPrograms/ $(distdir)
rm -f $(distdir)/TestPrograms/dump2def.cxx
## Automake bug workaround. If libcryptopp_la_SOURCES is an empty list, Automake assumes
## C source files and drives link through the C compiler. We provide the empty adhoc.cpp
## to get things back on course, so adhoc.cpp must always be copied.
adhoc.cpp:
cp adhoc.cpp.proto adhoc.cpp
touch adhoc.cpp
## Remove doc directory if present
distclean-local:
-rm -rf html-docs doxyfile.stamp
## Automake does not properly uninstall the library test data and vectors
uninstall-hook:
-rm -rf ${pkgdatadir}
-rm -rf ${pkghtmldir}
## Doxygen is available but not built by default
## TODO: copy docs to ${pkghtmldir} if built
if CRYPTOPP_DOXYGEN_AVAILABLE
## PHONY targets. Automake can only handle one of them...
.PHONY: doc docs html htmldoc checkout reset
doc docs html htmldoc:
$(DOXYGEN) Doxyfile -d CRYPTOPP_DOXYGEN_PROCESSING
endif
# Restore GNUmakefile
checkout:
git checkout master -f
# Restore GNUmakefile
reset:
git reset --hard HEAD

File diff suppressed because it is too large Load Diff

View File

@ -1,31 +0,0 @@
## libcryptopp.pc.in - Autotools package configuration file for Crypto++.
## written and placed in public domain by Jeffrey Walton.
## based on Debian package configuration by László Böszörményi.
##
## libdir=@libdir@ is not working as expected for Fedora, Solaris,
## and other 64-bit OSes that use library directories like /lib64,
## /usr/lib64, /lib/amd64 and friends. Also see:
## * https://stackoverflow.com/q/47124066/608639
## * https://stackoverflow.com/q/46847939/608639 and
## * https://bugzilla.redhat.com/show_bug.cgi?id=1510073.
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: @PACKAGE_NAME@
Description: free C++ class library of cryptographic schemes
Authors: originally written by Wei Dai
Maintainers: the Crypto++ community
URL: @PACKAGE_URL@
Version: @PACKAGE_VERSION@
Bug-Report: @PACKAGE_BUGREPORT@
Requires:
## These flags are mostly broken. We cannot record user choices,
## and then have user programs use the same flags later.
## https://lists.freedesktop.org/archives/pkg-config/2017-November/001087.html
Cflags: -I${includedir}
Libs: -L${libdir} -lcryptopp