/*! @page install How to build and install WiredTiger
This section explains how to build and install the WiredTiger software.
@section github Building using Git and GitHub
Skip this step if you are building from a WiredTiger release package,
and proceed with @ref building.
To build from the WiredTiger GitHub repository requires
git,
autoconf,
automake,
libtool and
related tools. The standard options for those tools can be specified
when configuring and building WiredTiger.
First, clone the repository:
@code
git clone git://github.com/wiredtiger/wiredtiger.git
@endcode
Second, run the \c build_posix/reconf script:
@code
cd wiredtiger
sh build_posix/reconf
@endcode
This creates the \c configure script, and you can now proceed with @ref
building.
@section building Building WiredTiger
To build the WiredTiger software on a POSIX-like system, change directory to
the top-level directory, then configure and build the software:
@code
cd wiredtiger
./configure && make
@endcode
To rebuild from scratch, discard any previous configuration by cleaning
out the build area:
@code
make distclean
@endcode
To see additional configuration options, run:
@code
./configure --help
@endcode
WiredTiger uses
autoconf
automake,
and libtool
to create the configure script and Makefiles. The standard options for those
tools can be specified when configuring and building WiredTiger.
@section installing Installing WiredTiger
The WiredTiger software consists of a library and a single standalone
utility.
WiredTiger's distribution follows the GNU Coding Standards installation
guidelines, and by default WiredTiger builds and installs four versions
of the library in /usr/local/lib. For example:
@code
file /usr/local/lib/libwiredtiger*
/usr/local/lib/libwiredtiger-1.0.0.so: ELF 64-bit LSB shared object, x86-64, version 1 (FreeBSD), dynamically linked, not stripped
/usr/local/lib/libwiredtiger.a: current ar archive
/usr/local/lib/libwiredtiger.la: libtool library file
/usr/local/lib/libwiredtiger.so: symbolic link to `libwiredtiger-1.0.0.so'
@endcode
WiredTiger uses
libtool to
build the libraries. By default, both shared and static libraries are built.
To build only static libraries, configure WiredTiger using the
\c --disable-shared argument. To build only shared libraries, configure using
WiredTiger using the \c --disable-static argument.
In addition, WiredTiger installs a standalone utility program named
wt. By default, this utility is installed in
/usr/local/bin/wt.
To install WiredTiger:
@code
make install
@endcode
To uninstall WiredTiger:
@code
make uninstall
@endcode
To install WiredTiger's libraries or binaries into alternate locations,
use the configuration or installation options described in the
GNU coding standards
documentation. For example, to install the libraries and binaries into
a different location:
@code
./configure --prefix=/c/wiredtiger
@endcode
@section configure Configuring WiredTiger
The WiredTiger software supports some additional configuration options:
@par \c --enable-attach
Configure WiredTiger to sleep and wait for a debugger to attach on failure.
DO NOT configure this option in production environments.
@par \c --enable-bzip2
Configure WiredTiger for bzip2
compression; see @ref compression for more information.
@par \c --enable-debug
Configure WiredTiger for debugging, including building with the
compiler's \c -g flag.
DO NOT configure this option in production environments.
@par \c --enable-diagnostic
Configure WiredTiger to perform various run-time diagnostic tests.
DO NOT configure this option in production environments.
@par \c --enable-python
Build the WiredTiger Python API.
@par \c --enable-snappy
Configure WiredTiger for snappy
compression; see @ref compression for more information.
@par \c --enable-verbose
Configure WiredTiger to support the \c verbose configuration string to
::wiredtiger_open.
@par --with-spinlock
Configure WiredTiger to use a specific mutex type for serialization;
options are \c pthread (the default, which configures WiredTiger to use
POSIX 1003.1c pthread mutexes) or \c gcc (which configures WiredTiger
to use gcc-based spinlocks).
@section compiler Changing compiler or loader options
To change the compiler or loader behavior during the build, use the
CC, CFLAGS, LDFLAGS, or
LIBS environment variables:
@par \c CC
The compiler.
@par \c CFLAGS
Compiler flags.
@par \c LDFLAGS
Loader flags.
@par \c LIBS
Additional libraries.
For example, to specify a different compiler:
@code
env CC=mygcc ./configure
@endcode
By default, WiredTiger builds with the \c -O3 compiler optimization flag
unless the \c --enable-debug configuration option is specified, in which
case the \c -g compiler flag is used instead. For example, to specify
a different level of optimization:
@code
env CFLAGS=-Os ./configure
@endcode
To specify a different set of include files:
@code
env CFLAGS=-I/usr/local/include ./configure
@endcode
To specify an additional library:
@code
env LIBS="-lrtf -lmin" LDFLAGS=-L/usr/local/lib ./configure
@endcode
*/