Сборка на Unix системах

Этот документ описывает сборку на системах:

Убедитесь, что все зависимости в вашей системе удовлетворены.

Если это так, то приступаем к сборке i2pd. Клонируем репозиторий и собираем:

git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd/build
cmake -DCMAKE_BUILD_TYPE=Release # есть больше опций, смотрите раздел "Опции CMake"
make                             # можно добавить опцию VERBOSE=1 для отладки

После сборки i2pd можно установить в систему следующей командой:

make install

Вы так же можете использовать упрощенный вариант сборки:

git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd
make

Debian/Ubuntu

Устанавливаем компилятор и прочие программы для сборки:

sudo apt-get install build-essential

Устанавливаем библиотеки разработчиков для сборки:

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

Если нужна поддержка UPnP (не забудьте потом запустить CMake с параметром WITH_UPNP=ON):

sudo apt-get install libminiupnpc-dev

Вы можете собрать пакет .deb следующим образом:

sudo apt-get install fakeroot devscripts
cd i2pd
debuild --no-tgz-check -b

Fedora/Centos

Устанавливаем компилятор и прочие программы для сборки:

sudo yum install make cmake gcc gcc-c++

В новых версиях Fedora используется DNF вместо YUM by по-умолчанию, можете использовать его

В Centos 7 есть только CMake 2.8.11 в официальных репозиториях, это слишком старая версия для i2pd. Нужен CMake версии 2.8.12 или новее.

Вы можете собрать CMake для Centos вручную (ВНИМАНИЕ, там много зависимостей для сборки):

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

Устанавливаем библиотеки разработчиков для сборки:

sudo yum install boost-devel openssl-devel

Если нужна поддержка UPnP (не забудьте потом запустить CMake с параметром WITH_UPNP=ON):

sudo yum install miniupnpc-devel

MAC OS X

Необходим homebrew.

Устанавливаем библиотеки разработчиков для сборки:

brew install libressl boost

Собираем:

make HOMEBREW=1

FreeBSD

Для 10.X используйте clang. Вам так же понабятся порты boost и openssl. Запустите gmake, он прочитает Makefile.bsd и сделает необходимые изменения.

Ветка 9.X использует gcc v4.2 который не поддерживает необходимый стандарт c++11.

Необходимые порты:

  • devel/cmake
  • devel/boost-libs
  • lang/gcc47(или более новые версии)

Чтобы использовать более новый компилятор, установите следующие переменные (замените «47» своей версией gcc):

export CC=/usr/local/bin/gcc47
export CXX=/usr/local/bin/g++47

Опции CMake

Доступные опции CMake (подробности смотрите в man 1 cmake):

  • CMAKE_BUILD_TYPE профиль сборки, отладочный или релиз (Debug/Release)
  • WITH_BINARY сборка самого i2pd
  • WITH_LIBRARY сборка библиотеки libi2pd
  • WITH_STATIC сборка статических версий библиотеки и самого i2pd
  • WITH_UPNP сборка с поддержкой UPnP (нужна библиотека libupnp)
  • WITH_AESNI сборка с поддержкой AES-NI (ON/OFF)
  • WITH_HARDENING включить Hardending (ON/OFF) (только с gcc)
  • WITH_PCH использовать pre-compiled header (экспериментально, ускоряет процесс сборки)

Так же у CMake есть -L флаг, который показывает список текущих установленных опций:

cmake -L