Requirements ============ Linux/FreeBSD/OSX ----------------- GCC 4.6 or newer, Boost 1.46 or newer, openssl, zlib. Clang can be used instead of GCC. Windows ------- VS2013 (known to work with 12.0.21005.1 or newer), Boost 1.46 or newer, crypto++ 5.62. See Win32/README-Build.txt for instructions on how to build i2pd and its dependencies. Build notes =========== Common build/install process from sources: * git clone https://github.com/PurpleI2P/i2pd.git * mkdir -p 'i2pd/build/tmp' && cd 'i2pd/build/tmp' * cmake -DCMAKE_BUILD_TYPE=Release .. * make * make install Available cmake options: * CMAKE_BUILD_TYPE -- build profile (Debug/Release) * WITH_AESNI -- AES-NI support (ON/OFF) * WITH_HARDENING -- enable hardening features (ON/OFF) (gcc only) * WITH_BINARY -- build i2pd itself * WITH_LIBRARY -- build libi2pd * WITH_STATIC -- build static versions of library and i2pd binary * WITH_UPNP -- build with UPnP support (requires libupnp) * WITH_PCH -- use pre-compiled header (experimental, speeds up build) Debian/Ubuntu ------------- For building from source on debian system you will need the following "-dev" packages: * libboost-chrono-dev * libboost-date-time-dev * libboost-filesystem-dev * libboost-program-options-dev * libboost-regex-dev * libboost-system-dev * libboost-thread-dev * libssl-dev (e.g. openssl) * zlib1g-dev (libssl-dev already depends on it) * libminiupnpc-dev (optional, if WITH_UPNP=ON) You may also build deb-package with the following: apt-get install build-essential fakeroot devscripts cd i2pd debuild --no-tgz-check # building from git repo FreeBSD ------- 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: export CC=/usr/local/bin/gcc47 export CXX=/usr/local/bin/g++47 Replace "47" with your actual gcc version Branch 10.X has more reliable clang version, that can finally build i2pd, but i still recommend to use gcc, otherwise you will fight it's bugs by your own.