You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.6 KiB

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.

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 doesnt 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.
  • Dont 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.