4.0 KiB
Building on Unix systems
First of all we need to make sure that all dependencies are satisfied.
This doc is trying to cover:
- Debian/Ubuntu (contains packaging instructions)
- Fedora/Centos
- Fedora/Centos
- FreeBSD
Make sure you have all required dependencies for your system successfully installed.
If so then we are ready to go! Let's clone the repository and start building the i2pd:
git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd/build
cmake -DCMAKE_BUILD_TYPE=Release # more options could be passed, see "CMake Options"
make # you may add VERBOSE=1 to cmdline for debugging
After successfull build i2pd could be installed with:
make install
or you can just use 'make' once you have all dependencies (boost and openssl) installed
git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd
make
Debian/Ubuntu
You will need a compiler and other tools that could be installed with build-essential
package:
sudo apt-get install build-essential
Also you will need a bunch of development libraries:
sudo apt-get install \
libboost-chrono-dev \
libboost-date-time-dev \
libboost-filesystem-dev \
libboost-program-options-dev \
libboost-system-dev \
libboost-thread-dev \
libssl-dev
If you need UPnP support (don't forget to run CMake with WITH_UPNP=ON
) miniupnpc development library should be installed:
sudo apt-get install libminiupnpc-dev
You may also build deb-package with the following:
sudo apt-get install fakeroot devscripts
cd i2pd
debuild --no-tgz-check
Fedora/Centos
You will need a compiler and other tools to perform a build:
sudo yum install make cmake gcc gcc-c++
Latest Fedora system using DNF instead of YUM by default, you may prefer to use DNF, but YUM should be ok
Centos 7 has CMake 2.8.11 in the official repositories that too old to build i2pd, CMake >=2.8.12 is required.
You could build CMake for Centos manualy(WARNING there are a lot of build dependencies!):
wget https://kojipkgs.fedoraproject.org/packages/cmake/2.8.12/3.fc21/src/cmake-2.8.12-3.fc21.src.rpm yum-builddep cmake-2.8.12-3.fc21.src.rpm rpmbuild --rebuild cmake-2.8.12-3.fc21.src.rpm yum install ~/rpmbuild/RPMS/x86_64/cmake-2.8.12-3.el7.centos.x86_64.rpm
Also you will need a bunch of development libraries
sudo yum install boost-devel openssl-devel
If you need UPnP support (don't forget to run CMake with WITH_UPNP=ON
) miniupnpc development library should be installed:
miniupnpc-devel
MAC OS X
Requires homebrew
brew install libressl boost
Then build:
make HOMEBREW=1
FreeBSD
For 10.X use clang. You would also need boost and openssl ports. Type gmake, it invokes Makefile.bsd, make necessary changes there is required.
Branch 9.X has gcc v4.2, that knows nothing about required c++11 standart.
Required ports:
devel/cmake
devel/boost-libs
lang/gcc47
(or later version)
To use newer compiler you should set these variables(replace "47" with your actual gcc version):
export CC=/usr/local/bin/gcc47
export CXX=/usr/local/bin/g++47
CMake Options
Available CMake options(each option has a form of <key>=<value>
, for more information see man 1 cmake
):
CMAKE_BUILD_TYPE
build profile (Debug/Release)WITH_BINARY
build i2pd itselfWITH_LIBRARY
build libi2pdWITH_STATIC
build static versions of library and i2pd binaryWITH_UPNP
build with UPnP support (requires libupnp)WITH_AESNI
build with AES-NI support (ON/OFF)WITH_HARDENING
enable hardening features (ON/OFF) (gcc only)WITH_PCH
use pre-compiled header (experimental, speeds up build)
Also there is -L
flag for CMake that could be used to list current cached options:
cmake -L