|
|
|
@ -1,106 +0,0 @@
|
|
|
|
|
# Build on Linux
|
|
|
|
|
|
|
|
|
|
_For Ubuntu based Linux distributions._
|
|
|
|
|
|
|
|
|
|
## Install Build Essential
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
sudo apt install build-essential
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Install CMake
|
|
|
|
|
|
|
|
|
|
Please refer to https://apt.kitware.com/.
|
|
|
|
|
|
|
|
|
|
## Install Zlib & OpenSSL
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
sudo apt install zlib1g-dev libssl-dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Install Boost
|
|
|
|
|
|
|
|
|
|
Download the `.tar.bz2` or `.tar.gz` from [here](https://www.boost.org/users/download/#live).
|
|
|
|
|
|
|
|
|
|
Unpack and go into the directory (suppose Boost version is 1.74):
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
tar -xzf boost_1_74_0.tar.gz
|
|
|
|
|
cd boost_1_74_0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Run `bootstrap.sh` to generate `b2`:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./bootstrap.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
You can change install prefix with `--prefix` (default is `/usr/local`, need `sudo`), but I don't recommend.
|
|
|
|
|
|
|
|
|
|
Build and install:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
sudo ./b2 --with-system --with-date_time --with-filesystem variant=debug link=static threading=multi -j4 install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
|
|
- Only build the specified libraries. `Asio` itself is header only so doesn’t have to be built.
|
|
|
|
|
- Only build static libraries (`link=static`)
|
|
|
|
|
- The number after `-j` depends on the number of CPU cores you have.
|
|
|
|
|
- If you want to build release version libraries, set `variant=release`. The `debug` and `release` libraries have exactly the same name, so you cannot build them both at the same time.
|
|
|
|
|
- Don’t forget the `sudo` since the install prefix is `/usr/local`.
|
|
|
|
|
|
|
|
|
|
To clean the build, run `b2` with target "clean":
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./b2 clean
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The libraries are installed to `/usr/local/lib`. E.g.,
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$ ls -l /usr/local/lib/libboost*
|
|
|
|
|
-rw-r--r-- 1 adam admin 540288 Apr 21 11:01 /usr/local/lib/libboost_date_time.a
|
|
|
|
|
...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The headers are installed to `/usr/local/include/boost`.
|
|
|
|
|
|
|
|
|
|
## Build Webcc
|
|
|
|
|
|
|
|
|
|
Create a build folder under the root (or any other) directory, and `cd` to it:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
mkdir build
|
|
|
|
|
cd build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Generate Makefiles with the following command:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
cmake -G"Unix Makefiles" \
|
|
|
|
|
-DCMAKE_INSTALL_PREFIX=~ \
|
|
|
|
|
-DWEBCC_ENABLE_LOG=1 \
|
|
|
|
|
-DWEBCC_LOG_LEVEL=0 \
|
|
|
|
|
-DWEBCC_ENABLE_SSL=1 \
|
|
|
|
|
-DWEBCC_ENABLE_GZIP=1 \
|
|
|
|
|
-DWEBCC_ENABLE_AUTOTEST=OFF \
|
|
|
|
|
-DWEBCC_ENABLE_UNITTEST=OFF \
|
|
|
|
|
-DWEBCC_ENABLE_EXAMPLES=ON \
|
|
|
|
|
..
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
_NOTE: You can create a script (e.g., `gen.sh`) with the above command to avoid typing again and again whenever you want to change an option._
|
|
|
|
|
|
|
|
|
|
Feel free to change the build options according to your need.
|
|
|
|
|
|
|
|
|
|
CMake variable `CMAKE_INSTALL_PREFIX` defines where to install the output library and header files. The default is `/usr/local`. But this feature needs rework. I should come back to this later.
|
|
|
|
|
|
|
|
|
|
If everything is OK, you can then build with `make`:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
make -j4
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The number after `-j` depends on how many CPU cores you have. You can just ignore `-j` option.
|