libgit2 builds cleanly on most platforms without any external dependencies.
Under Unix-like systems, like Linux, *BSD and Mac OS X, libgit2 expects `pthreads` to be available;
they should be installed by default on all systems. Under Windows, libgit2 uses the native Windows API
for threading.
Additionally, the following libraries may be used as replacement for built-in functionality:
* LibSSL **(optional)**<http://www.openssl.org/>
libgit2 can be built using the SHA1 implementation of LibSSL-Crypto, instead of the built-in custom implementations. Performance wise, they are quite similar.
Building libgit2 - Using waf
======================
Waf is a minimalist build system which only requires a Python 2.5+ interpreter to run. This is the default build system for libgit2.
To build libgit2 using waf, first configure the build system by running:
$ ./waf configure
Then build the library, either in its shared (libgit2.so) or static form (libgit2.a):
$ ./waf build-static
$ ./waf build-shared
You can then run the full test suite with:
$ ./waf test
And finally you can install the library with (you may need to sudo):
$ sudo ./waf install
The waf build system for libgit2 accepts the following flags:
--debug
build the library with debug symbols.
Defaults to off.
--sha1=[builtin|ppc|openssl]
use the builtin SHA1 functions, the optimized PPC versions
or the SHA1 functions from LibCrypto (OpenSSL).
Defaults to 'builtin'.
--msvc=[7.1|8.0|9.0|10.0]
Force a specific version of the MSVC compiler, if more than
one version is installed.
--arch=[ia64|x64|x86|x86_amd64|x86_ia64]
Force a specific architecture for compilers that support it.
--with-sqlite
Enable sqlite support.
--with-redis
Enable redis support.
You can run `./waf --help` to see a full list of install options and
targets.
Building libgit2 - Using CMake
==============================
The libgit2 library can also be built using CMake 2.6+ (<http://www.cmake.org>) on all platforms.
The libgit2 library is built using CMake 2.6+ (<http://www.cmake.org>) on all platforms.
On most systems you can build the library using the following commands
...
...
@@ -115,6 +57,14 @@ To install the library you can specify the install prefix by setting:
For more advanced use or questions about CMake please read <http://www.cmake.org/Wiki/CMake_FAQ>.
The following CMake variables are declared:
-`INSTALL_BIN`: Where to install binaries to.
-`INSTALL_LIB`: Where to install libraries to.
-`INSTALL_INC`: Where to install headers to.
-`BUILD_SHARED_LIBS`: Build libgit2 as a Shared Library (defaults to OFF)
-`BUILD_TESTS`: Build the libgit2 test suite (defaults to ON)
-`THREADSAFE`: Build libgit2 with threading support (defaults to OFF)
Language Bindings
==================================
...
...
@@ -134,6 +84,7 @@ Here are the bindings to libgit2 that are currently available: