Giter Club home page Giter Club logo

cryptopp-autotools's Introduction

Crypto++ Autotools

Build Status Build status

This repository contains Autotools files for Wei Dai's Crypto++ (https://github.com/weidai11/cryptopp). It supplies configure.ac, makefile.am and libcryptopp.pc.in. Autotools is officialy unsupported, so use it at your own risk.

The purpose of Crypto++ Autotools is three-fold:

  1. better support Linux distributions, like Debain, Fedora and openSUSE
  2. supplement the GNUmakefile which is reaching its limits with repsect to GNUmake-based configuration
  3. utilize compiler feature probes that produce better results on ARM, MIPS and Power8 architectures

The initial Makefile.am and configure.ac were shamelessly ripped from Debian. Many thanks to László Böszörményi for his work on the files and allowing us to use them as a starting point. Nick Bowler and Mathieu Lirzin from the Automake mailing list were extremely helpful in porting our requirements to Automake.

There is a wiki page available that discusses Autotools and the Crypto++ project files in more detail at Autotools.

Documentation

The Autotools project files are documented on the Crypto++ wiki | Autotools. If there is an error or ommission in the wiki article, then please fix it or open a bug report.

Testing

The Autotools files are officialy unsupported, so use them at your own risk. With that said, the Autotools source files are tested with Crypto++ on Linux and OS X using Travis CI.

In June 2018 the library added cryptest-autotools.sh to help test the Autotools gear. The script is located in Crypto++'s TestScripts directory. The script downloads the Autotools project files, builds the library and then runs the self tests.

If you want to use cryptest-autotools.sh to drive things then perform the following steps.

cd cryptopp
cp TestScripts/cryptest-autotools.sh .
./cryptest-autotools.sh

Workflow

The general workflow is clone Wei Dai's Crypto++, fetch the Autotools files, and then autoreconf:

git clone https://github.com/weidai11/cryptopp.git
cd cryptopp

wget -O configure.ac https://raw.githubusercontent.com/noloader/cryptopp-autotools/master/bootstrap.sh
wget -O configure.ac https://raw.githubusercontent.com/noloader/cryptopp-autotools/master/configure.ac
wget -O Makefile.am https://raw.githubusercontent.com/noloader/cryptopp-autotools/master/Makefile.am
wget -O libcryptopp.pc.in https://raw.githubusercontent.com/noloader/cryptopp-autotools/master/libcryptopp.pc.in

mkdir -p "$PWD/m4/"

Once you have the files you can run bootstrap.sh. bootstrap.sh performs the necessary preamble and also runs autoupdate. Our testing showed autoupdate produced bad results on some versions of Autotools, so it is hit or miss whether it should be run.

./bootstrap.sh

./configure <options>

make
make test
sudo make install <options>

Best performance is obtained with -O3 because GCC (and other compiler) apply vectorization optimizations. If you are not forced to -O2 by policy (like Debian or Fedora), then you should configure with a higher optimization enabled:

CPPFLAGS="-DNDEBUG" CXXFLAGS="-g2 -O3" ./configure <other options>

Despite our efforts we have not been able to add the submodule to Crypto++ for seamless integration. If anyone knows how to add a submodule directly to the Crypto++ directory, then please provide the instructions.

ZIP Files

If you are working from a Crypto++ release zip file, then you should download the same cryptopp-autotools release zip file. Both Crypto++ and this project use the same release tags, such as CRYPTOPP_8_0_0.

If you mix and match Master with a release zip file then things may not work as expected. You may find the build project files reference a source file that is not present in the Crypto++ release.

Prerequisites

Before running the Autotools project please ensure you have the following installed:

  1. autoupdate
  2. autoconf and autoreconf
  3. automake
  4. libtool

You may also need libltdl-dev on Debian and Ubuntu; and may need libtool-ltdl-devel on Fedora. MinGW and family need the Autoconf and Automake wrappers in addition to the Autoconf and Automake binaries.

If working on the GCC Compile Farm then you may need exta steps for systems like AIX. AIX offers updated Autoconf and Automake in /opt/freeware/bin/; and offers Libtool in /opt/cfarm/libtool-2.4.2/bin/. Both bin/ need to be on path. When running autoreconf you must autoreconf --force --install --include=/opt/cfarm/libtool-2.4.2/share/aclocal/.

Integration

The Autotools submodule integrates with the Crypto++ library. The submodule removes the library's GNUmakefile and GNUmakefile-cross. In the future we plan to overwrite the library's config.h and produce an installation specific config.h.

The library's GNUmakefile and GNUmakefile-cross were modified to clean the artifacts produced by Autotools. To clean the directory after running Autotools perform a git checkout GNUmakefile followed by a make -f GNUmakefile distclean.

Cross-compiles

Cross-compiles may work. The biggest problem seems to be libtool and shared object naming. Autotools fails to produce a shared object on platforms like Android.

Collaboration

We would like all distro maintainers to be collaborators on this repo. If you are a distro maintainer then please contact us so we can send you an invite.

If you are a collaborator then make changes as you see fit. You don't need to ask for permission to make a change. Noloader is not an Autotools expert so there are probably lots of opportunities for improvement.

Keep in mind other distros may be using the files, so try not to break things for the other guy. We have to be mindful of lesser-used platforms and compilers, like AIX, Solaris, IBM xlC and Oracle's SunCC.

License

Everything in this repo is release under Public Domain code. If the license or terms is unpalatable for you, then don't feel obligated to use it or commit.

cryptopp-autotools's People

Contributors

aakodadi avatar noloader avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cryptopp-autotools's Issues

build failure when cross compile for linux armv7

Cryptopp 8.8.0 configured with

TARGET=armv7-linux-musleabihf
./bootstrap.sh
CPPFLAGS="-DNDEBUG" CXXFLAGS="-g0 -O3" LDFLAGS="-s" ./configure --prefix=$BUILDDIR/cryptopp --host=$TARGET --enable-shared=no --enable-static

Below are the logs. There is a related issue at abdes/cryptopp-cmake#45. The option --enable-shared=no is not working and the shared library is still built.

***********************************************************************
Auto-configuration is complete. A summary of options are below. If
something looks wrong then please modify config.h and please report
it at http://github.com/noloader/cryptopp-autotools.

    Host triplet: armv7-unknown-linux-musleabihf
 Compiler target: armv7-linux-musleabihf
Compiler version: armv7-linux-musleabihf-g++ (GCC) 11.2.0

Static library: yes
Shared library: yes

CRYPTOPP_NEON_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_ARIA_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_BLAKE2S_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_BLAKE2B_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_CHACHA_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_CHAM_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_CRC_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_LEA_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_GCM_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_AES_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_SHA_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_SIMON128_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_SPECK128_FLAG: -march=armv7-a -mfpu=neon
CRYPTOPP_SM4_FLAG: -march=armv7-a -mfpu=neon

Automake flags (can be overridden by user flags):
AM_CPPFLAGS: 
AM_CXXFLAGS:  -pthread -fdata-sections -ffunction-sections
 AM_ASFLAGS:  -Wa,--noexecstack
 AM_LDFLAGS:  -pthread -Wl,--gc-sections -Wl,--build-id -Wl,--demangle -Wl,--exclude-libs,ALL -Wl,--as-needed

User flags (overrides Automake flags on conflict):
CPPFLAGS: -DNDEBUG
CXXFLAGS: -g0 -O3
 ASFLAGS: 
 LDFLAGS: -s
***********************************************************************

make  all-am
make[1]: Entering directory '/home/cat/git/amule-daemon-static/sources/cryptopp880'
/bin/bash ./libtool  --tag=CXX   --mode=link armv7-linux-musleabihf-g++  -pthread -fdata-sections -ffunction-sections  -DCRYPTOPP_DATA_DIR='"/home/cat/git/amule-daemon-static/build-armv7/cryptopp/share/cryptopp/"' -g0 -O3 -pthread -Wl,--gc-sections -Wl,--build-id -Wl,--demangle -Wl,--exclude-libs,ALL -Wl,--as-needed -s -o cryptest cryptest-test.o cryptest-bench1.o cryptest-bench2.o cryptest-bench3.o cryptest-datatest.o cryptest-dlltest.o cryptest-fipsalgt.o cryptest-validat0.o cryptest-validat1.o cryptest-validat2.o cryptest-validat3.o cryptest-validat4.o cryptest-validat5.o cryptest-validat6.o cryptest-validat7.o cryptest-validat8.o cryptest-validat9.o cryptest-validat10.o cryptest-regtest1.o cryptest-regtest2.o cryptest-regtest3.o cryptest-regtest4.o cryptest-adhoc.o libcryptopp.la 
libtool: link: armv7-linux-musleabihf-g++ -fdata-sections -ffunction-sections -DCRYPTOPP_DATA_DIR=\"/home/cat/git/amule-daemon-static/build-armv7/cryptopp/share/cryptopp/\" -g0 -O3 -Wl,--gc-sections -Wl,--build-id -Wl,--demangle -Wl,--exclude-libs -Wl,ALL -Wl,--as-needed -s -o .libs/cryptest cryptest-test.o cryptest-bench1.o cryptest-bench2.o cryptest-bench3.o cryptest-datatest.o cryptest-dlltest.o cryptest-fipsalgt.o cryptest-validat0.o cryptest-validat1.o cryptest-validat2.o cryptest-validat3.o cryptest-validat4.o cryptest-validat5.o cryptest-validat6.o cryptest-validat7.o cryptest-validat8.o cryptest-validat9.o cryptest-validat10.o cryptest-regtest1.o cryptest-regtest2.o cryptest-regtest3.o cryptest-regtest4.o cryptest-adhoc.o  ./.libs/libcryptopp.so -pthread -Wl,-rpath -Wl,/home/cat/git/amule-daemon-static/build-armv7/cryptopp/lib
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_sha256_block_data_order_neon'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_sha1_block_data_order'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_sha512_block_data_order'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_AES_decrypt_block'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_sha1_block_data_order_neon'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_AES_encrypt_block'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_AES_set_encrypt_key'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_AES_set_decrypt_key'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_sha512_block_data_order_neon'
/home/cat/git/amule-daemon-static/toolchain/gcc-armv7-linux-musleabihf/bin/../lib/gcc/armv7-linux-musleabihf/11.2.0/../../../../armv7-linux-musleabihf/bin/ld: ./.libs/libcryptopp.so: undefined reference to `cryptogams_sha256_block_data_order'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:1565: cryptest] Error 1
make[1]: Leaving directory '/home/cat/git/amule-daemon-static/sources/cryptopp880'
make: *** [Makefile:1313: all] Error 2

Remove cryptestcwd binary

The Autotools project includes two binaries. The first is cryptest and the second is cryptestcwd. They are the same program in different configurations for historical reasons.

The historical reason is, Crypto++ did not have a configurable "data directory" for the longest time. The only place the test programs would run was from the directory where Crypto++ was unpacked. It was lame and caused a lot of problems for Linux users, packagers and maintainers.

Around Crypto++ 5.6.3 we added CRYPTOPP_DATA_DIRECTORY which allowed one to specify a data directory. One could make -DCRYPTOPP_DATA_DIRECTORY="..." and the test program could run once installed.

make -DCRYPTOPP_DATA_DIRECTORY="..." was also lame because it was "pick your poison". If absent, then the test program could run from the current working directory. If present, then the test program could run from the install directory. You could not have both.

Because we needed a test program that could run from both the current directory and install directory two executables were built - cryptest and cryptestcwd. cryptestcwd could test the library after building to ensure it worked, then cryptest could be installed and run.

The two test programs were still kind of lame so we closed the gap with an origin based search for the data files at Crypto++ 8.0. The origin is $ORIGIN as the linker understands it. For the test program, it just means the program also looks in ../share/cryptopp for data files. The origin search path supports install directories and staged installs using DESTDIR. Also see Issue 760.

Now that we have a cryptest programs that runs from both the current directory and install directory we no longer need cryptestcwd. This ticket will track removal of cryptestcwd binary from Autotools.

Also see DataDir on the Crypto++ wiki.

Add distro maintainers as collaborators

@alonbl, @gcsideal

Here's an attempt to provide Autotools for Crypto++. The head notes in configure.ac and Makefile.am describe some of the issues we are experiencing.

Eventually I would like to discard the Crypto++ config.h, and have Autotools generate a config.h for the installation.

All distro and package maintainers are encouraged to join this GitHub. Please email me your GitHub handles so we can extend an invite for Collaborator. My email address is noloader, gmail account.

cryptest-autotools.sh now available

Hi Everyone,

cryptest-autotools.sh now available in TestScripts. The script downloads the Autotools files to $(PWD), and then builds the library and executes self tests.

To use the script:

cd cryptopp
git pull
cp TestScripts/cryptest-autotools.sh .
./cryptest-autotools.sh

After the script runs the Autotools files are left in place so they can be used again in the future.

There is also a cryptest-cmake.sh that works the same way for CMake.

Missing libpowerX_ppc_la_SOURCES in Makefile.am

For X = {7, 8, 9}, there are missing libpowerX_ppc_la_SOURCES variables in the Automake script. This makes make dist fails because by default the generated Makefile tries to look for libpowerX_ppc.cpp while the actual cpp file names are powerX_ppc.cpp.

Merge patches from Fedora

https://src.fedoraproject.org/rpms/cryptopp/c/a3e1e365d53c5c30470477fe0e8b6b3a8256b3bc

fix-autotools-version-info.patch

Fixes soversion & soname.
Should be <major>+<minor>:<patch>:<minor> (this is confusing -_-)
--- a/Makefile.am
+++ b/Makefile.am
@@ -253,9 +253,8 @@
 ## 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.8.0 -version-info 8:8
+libcryptopp_la_LDFLAGS = $(AM_LDFLAGS) -version-info 16:0:8
 
 ## Source files with special needs
 libcryptlib_la_SOURCES = cryptlib.cpp
remove-adhoc.patch

Seems adhoc is unused, and could cause issues when linking to `libcryptopp.so`.
diff --git a/Makefile.am b/Makefile.am
index 10e9278..a562a7b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -118,12 +118,10 @@ 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.
+## per-object file flags requriements.
 ## https://lists.gnu.org/archive/html/automake/2017-11/msg00000.html.
 
-libcryptopp_la_SOURCES = \
-   adhoc.cpp
+libcryptopp_la_SOURCES = $(NULL)
 
 ## Don't use EXTRA_ prefix for libcryptopp_la_LIBADD. It breaks Solaris.
 
@@ -449,11 +447,8 @@ cryptest_SOURCES = \
     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
@@ -621,14 +616,6 @@ dist-hook:
 	cp -r TestPrograms/ $(distdir)
 	rm -f $(distdir)/TestPrograms/dump2def.cpp
 
-## 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
diff --git a/Doxyfile b/Doxyfile
index 8fadb40e..4e6dfad3 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -819,7 +819,7 @@ RECURSIVE              = NO
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE                = adhoc.cpp
+EXCLUDE                =
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
diff --git a/Filelist.txt b/Filelist.txt
index 0639e16e..771ef614 100644
--- a/Filelist.txt
+++ b/Filelist.txt
@@ -1,6 +1,5 @@
 3way.cpp
 3way.h
-adhoc.cpp.proto
 adv_simd.h
 adler32.cpp
 adler32.h
diff --git a/adhoc.cpp.proto b/adhoc.cpp.proto
deleted file mode 100644
index ffb2dc53..00000000
--- a/adhoc.cpp.proto
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "config.h"
-#include <iosfwd>
-#include <string>
-
-#if CRYPTOPP_MSC_VERSION
-# pragma warning(disable: 4189 4996)
-#endif
-
-USING_NAMESPACE(CryptoPP)
-USING_NAMESPACE(std)
-
-#ifndef CRYPTOPP_UNUSED
-# define CRYPTOPP_UNUSED(x) (void(x))
-#endif
-
-// Used for testing the compiler and linker in cryptest.sh
-#if defined(CRYPTOPP_ADHOC_MAIN) || defined(ADHOC_MAIN)
-
-int main(int argc, char *argv[])
-{
-	CRYPTOPP_UNUSED(argc), CRYPTOPP_UNUSED(argv);
-	return 0;
-}
-
-// Classic use of adhoc to setup calling convention
-#else
-
-extern int (*AdhocTest)(int argc, char *argv[]);
-
-int MyAdhocTest(int argc, char *argv[])
-{
-	CRYPTOPP_UNUSED(argc), CRYPTOPP_UNUSED(argv);
-	return 0;
-}
-
-static int s_i = (AdhocTest = &MyAdhocTest, 0);
-
-#endif

No rule to make target 'TestVectors/ocb.txt', needed by 'all-am'. Stop.

I get this error when I use autotools to build cryptopp 8.6.0 on openSUSE.

First, I extract the source and generate the configure script:

mkdir cryptopp
cd cryptopp
7z x ../cryptopp860.zip

tar -xf ../cryptopp-autotools-CRYPTOPP_8_6_0.tar.gz
cp  cryptopp-autotools-CRYPTOPP_8_6_0/* .
mkdir -p "$PWD/m4/"

autoupdate
libtoolize --force --install
autoreconf --force --install

Then I configure and build the project

CPPFLAGS="-DNDEBUG" CXXFLAGS="-g2 -O3" ./configure --prefix=$BUILDDIR/cryptopp  --enable-shared=no --enable-static
make

Although the library and cryptest is built successfully, make ends with the following error. It seems related to the test. Does the autotools supports to only install the library and skip the test?

libtool: link: ranlib .libs/libcryptopp.a
libtool: link: ( cd ".libs" && rm -f "libcryptopp.la" && ln -s "../libcryptopp.la" "libcryptopp.la" )
/bin/sh ./libtool --tag=CXX --mode=link g++ -pthread -fdata-sections -ffunction-sections -DCRYPTOPP_DATA_DIR='"/cryptopp/share/cryptopp/"' -g2 -O3 -pthread -Wl,--gc-sections -Wl,--build-id -Wl,--demangle -Wl,--exclude-libs,ALL -Wl,--as-needed -o cryptest cryptest-test.o cryptest-bench1.o cryptest-bench2.o cryptest-bench3.o cryptest-datatest.o cryptest-dlltest.o cryptest-fipsalgt.o cryptest-validat0.o cryptest-validat1.o cryptest-validat2.o cryptest-validat3.o cryptest-validat4.o cryptest-validat5.o cryptest-validat6.o cryptest-validat7.o cryptest-validat8.o cryptest-validat9.o cryptest-validat10.o cryptest-regtest1.o cryptest-regtest2.o cryptest-regtest3.o cryptest-regtest4.o cryptest-adhoc.o libcryptopp.la
libtool: link: g++ -pthread -fdata-sections -ffunction-sections -DCRYPTOPP_DATA_DIR="/cryptopp/share/cryptopp/" -g2 -O3 -pthread -Wl,--gc-sections -Wl,--build-id -Wl,--demangle -Wl,--exclude-libs -Wl,ALL -Wl,--as-needed -o .libs/cryptest cryptest-test.o cryptest-bench1.o cryptest-bench2.o cryptest-bench3.o cryptest-datatest.o cryptest-dlltest.o cryptest-fipsalgt.o cryptest-validat0.o cryptest-validat1.o cryptest-validat2.o cryptest-validat3.o cryptest-validat4.o cryptest-validat5.o cryptest-validat6.o cryptest-validat7.o cryptest-validat8.o cryptest-validat9.o cryptest-validat10.o cryptest-regtest1.o cryptest-regtest2.o cryptest-regtest3.o cryptest-regtest4.o cryptest-adhoc.o ./.libs/libcryptopp.so -pthread -Wl,-rpath -Wl,/cryptopp/lib64
make[1]: *** No rule to make target 'TestVectors/ocb.txt', needed by 'all-am'. Stop.
make[1]: Leaving directory '/home/cat/git/amule-win32/src/cryptopp'
make: *** [Makefile:1271: all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.