i2pd/docs/build_notes_unix.md
hagen 710439e83c * cleanup README
* move all docs to single dir
2015-12-01 00:06:00 +00:00

2.1 KiB

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:

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.