Building the bundled library

If you you want to avoid a system-wide installation of libsodium’s development files just for compiling and running the tests, you can instead install the library and header files inside PyNaCl’s sources.

Linux systems

On Linux (and presumably other UNIX-like systems), after entering the PyNaCl source directory you must execute the following commands:

$ mkdir -p build/libsodium
$ cd build/libsodium
$ ../../src/libsodium/configure --prefix=$PWD --disable-shared
$ make
$ make install
$ cd ../..

If all went well,

$ ls build/libsodium/{lib,include}

should generate something like the following output:

build/libsodium/include:
sodium  sodium.h

build/libsodium/lib:
libsodium.a  libsodium.la  pkgconfig

If you now define and export the

$ SODIUMINCL="-I${PWD}/build/libsodium/include"
$ export SODIUMINCL
$ SODIUMLIB="-L${PWD}/build/libsodium/lib"
$ export SODIUMLIB

environment variables, you can instruct the compiler to use the just-installed library by simply dereferencing the path flags on the c compier command line

$ cc ${SODIUMINCL} ${SODIUMLIB}