/*! @page install Building and installing 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 \c autogen.sh to create the \c configure script: @code cd wiredtiger sh autogen.sh @endcode 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-diagnostic Configure WiredTiger to perform various run-time diagnostic tests. DO NOT configure this option in production environments. @par \c --enable-java Build the WiredTiger Java API. @par \c --enable-leveldb[=basho, hyper, rocksdb] Include a Google, Inc. compatible LevelDB API. Optionally, specify \c basho to build a version of the LevelDB API compatible with Basho's Riak product, specify \c hyper to build a version of the LevelDB API compatible with the HyperDex product, and specify \c rocksdb to build a version of the LevelDB API compatible with applications using Facebook's RocksDB engine. See @ref leveldb for more information. @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 \c --enable-zlib Configure WiredTiger for zlib compression; see @ref compression for more information. @par --with-builtins Configure WiredTiger to include support for extensions in the main library. This avoids requiring additional libraries for supported extensions. Currently supported options are \c snappy and \c zlib. @par --with-python-prefix Configure WiredTiger to install Python libraries to a non-standard Python install location. @par --with-spinlock[=pthread, pthread_adaptive, gcc] 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), \c pthread_adaptive (which configures WiredTiger to use POSIX 1003.1c pthread mutexes configured to be adaptive (where that functionality is available), 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 */