mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 00:00:29 +03:00
reordered unix targeted documentation to be more user-friendly
Also fixed wrong build root.
This commit is contained in:
parent
094068e4ff
commit
3acc244692
@ -1,46 +1,60 @@
|
||||
Building on Unix systems
|
||||
=============================
|
||||
|
||||
Common build/install process from sources:
|
||||
First of all we need to make sure that all dependencies are satisfied.
|
||||
|
||||
* git clone https://github.com/PurpleI2P/i2pd.git
|
||||
* mkdir -p 'i2pd/build/tmp' && cd 'i2pd/build/tmp'
|
||||
* cmake -DCMAKE_BUILD_TYPE=Release <more options> ..
|
||||
* make
|
||||
* make install
|
||||
This doc is trying to cover:
|
||||
* [Debian/Ubuntu](#debianubuntu) (contains packaging instructions)
|
||||
* [FreeBSD](#freebsd)
|
||||
|
||||
Available cmake options:
|
||||
Make sure you have all required dependencies for your system successfully installed.
|
||||
|
||||
* 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)
|
||||
If so then we are ready to go!
|
||||
Let's clone the repository and start building the i2pd:
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
After successfull build i2pd could be installed with:
|
||||
```bash
|
||||
make install
|
||||
```
|
||||
|
||||
Debian/Ubuntu
|
||||
-------------
|
||||
|
||||
For building from source on debian system you will need the following "-dev" packages:
|
||||
You will need a compiler and other tools that could be installed with `build-essential` package:
|
||||
```bash
|
||||
sudo apt-get install build-essential
|
||||
```
|
||||
|
||||
* 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)
|
||||
Also you will need a bunch of development libraries:
|
||||
```bash
|
||||
sudo apt-get install \
|
||||
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
|
||||
```
|
||||
|
||||
If you need UPnP support (don't forget to run CMake with `WITH_UPNP=ON`) miniupnpc development library should be installed:
|
||||
```bash
|
||||
sudo apt-get install libminiupnpc-dev
|
||||
```
|
||||
|
||||
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
|
||||
```bash
|
||||
sudo apt-get install fakeroot devscripts
|
||||
cd i2pd
|
||||
debuild --no-tgz-check
|
||||
```
|
||||
|
||||
FreeBSD
|
||||
-------
|
||||
@ -49,17 +63,35 @@ 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
|
||||
* `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
|
||||
To use newer compiler you should set these variables(replace "47" with your actual gcc version):
|
||||
```bash
|
||||
export CC=/usr/local/bin/gcc47
|
||||
export CXX=/usr/local/bin/g++47
|
||||
```
|
||||
|
||||
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
|
||||
but I still recommend to use gcc, otherwise you will fight it's bugs by
|
||||
your own.
|
||||
|
||||
CMake Options
|
||||
-------------
|
||||
|
||||
Available CMake options(each option has a for of `<key>=<value>`, for more information see `man 1 cmake`):
|
||||
|
||||
* `CMAKE_BUILD_TYPE` build profile (Debug/Release)
|
||||
* `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_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:
|
||||
```bash
|
||||
cmake -L
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user