-rw-r--r-- 2152 lib25519-20220726/INSTALL raw
Prerequisites: python3; gcc and/or clang.
For sysadmins, to install in /usr/local/{include,lib,bin}:
./configure
make install
For users, to install in $HOME/{include,lib,bin}:
./configure --prefix=$HOME
make install
For distributors creating a package: Run
./configure --prefix=/usr
make
and then follow your usual packaging procedures for the .h files in
build/0/package/include, the libraries in build/0/package/lib, and the
test programs in build/0/package/bin.
Distributors may prefer to package -lrandombytes_kernel separately. This
is split off from -l25519 to allow easy substitution of other
randombytes() implementations. For example, lib25519-test substitutes
its own knownrandombytes() to generate test vectors. As another example,
users selecting an alternative randombytes() implementation such as
-lrandombytes_per_process_rng or -lrandombytes_trust_intel_rdrand
shouldn't have to change how programs call randombytes(). Programs and
libraries calling randombytes() should generally be packaged to use
-lrandombytes, which in turn should be packaged to select
-lrandombytes_kernel by default. The selection package (or a development
package that requires the selection package) should also provide
randombytes.h, while specific randombytes() implementations such as
-lrandombytes_kernel should not provide randombytes.h; this is why
include/randombytes.h is not provided by this library.
More options: You can run
./configure --host=amd64
to override ./configure's guess of the architecture that it should
compile for. The architecture controls which implementations to try
(see crypto_*/*/*/architectures) and which compilers to try (see
compilers/*).
Inside the build directory, 0 is symlinked to amd64 for --host=amd64.
Running "make clean" removes build/amd64. Re-running ./configure
automatically starts with "make clean", but there's a ./configure
--noclean option for developers who know what they're doing.
A subsequent ./configure --host=arm will create build/arm and symlink
0 -> arm, without touching an existing build/amd64. However,
cross-compilers aren't yet selected automatically.