mirror of
https://github.com/Telecominfraproject/wlan-cloud-analytics.git
synced 2026-01-27 02:22:21 +00:00
191 lines
5.1 KiB
Markdown
191 lines
5.1 KiB
Markdown
# Building from source
|
|
In order to build the OWANALYTICS, you will need to install its dependencies, which includes the following:
|
|
- cmake
|
|
- boost
|
|
- POCO 1.10.1 or later
|
|
- a C++17 compiler
|
|
- openssl
|
|
- libpq-dev (PortgreSQL development libraries)
|
|
- mysql-client (MySQL client)
|
|
- librdkafka
|
|
- cppkafka
|
|
|
|
The build is done in 2 parts. The first part is to build a local copy of the framework tailored to your environment. This
|
|
framework is called [Poco](https://github.com/pocoproject/poco). The version used in this project has a couple of fixes
|
|
from the master copy needed for cmake. Please use the version of this [Poco fix](https://github.com/Telecominfraproject/wlan-cloud-lib-poco). Building
|
|
Poco may take several minutes depending on the platform you are building on.
|
|
|
|
## Ubuntu
|
|
These instructions have proven to work on Ubuntu 23.04.
|
|
```bash
|
|
sudo apt install git cmake g++ libssl-dev libmariadb-dev libmariadbclient-dev-compat
|
|
sudo apt install libpq-dev libaprutil1-dev apache2-dev libboost-all-dev
|
|
sudo apt install librdkafka-dev
|
|
sudo apt install zlib1g-dev nlohmann-json3-dev ca-certificates libcurl4-openssl-dev
|
|
|
|
cd ~
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-poco --branch poco-tip-v1 poco
|
|
cd poco
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
|
|
cd ~
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka --branch tip-v1 cppkafka
|
|
cd cppkafka
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
|
|
cd ~
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-valijson --branch tip-v1 valijson
|
|
cd valijson
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
|
|
git clone https://github.com/fmtlib/fmt --branch 9.0.0 /fmtlib
|
|
cd fmtlib
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
make
|
|
make install
|
|
|
|
cd ~
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-analytics
|
|
cd wlan-cloud-analytics
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
make -j 8
|
|
```
|
|
|
|
## Fedora
|
|
The following instructions have proven to work on Fedora 33
|
|
```bash
|
|
sudo yum install cmake g++ openssl-devel mysql-devel mysql apr-util-devel boost boost-devel
|
|
sudo yum install yaml-cpp-devel lua-devel
|
|
sudo dnf install postgresql.x86_64 librdkafka-devel
|
|
sudo dnf install postgresql-devel json-devel
|
|
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-poco --branch poco-tip-v1
|
|
cd poco
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka --branch tip-v1
|
|
cd cppkafka
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
|
|
cd ~
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-valijson --branch tip-v1
|
|
cd valijson
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
|
|
cd ~
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-analytics
|
|
cd wlan-cloud-analytics
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
make
|
|
```
|
|
|
|
## macOS Build
|
|
The following instructions have proven to work on macOS Big Sur. You need to install [Homebrew](https://brew.sh/). You must also have installed [XCode for OS X](https://www.freecodecamp.org/news/how-to-download-and-install-xcode/).
|
|
```bash
|
|
brew install openssl \
|
|
cmake \
|
|
libpq \
|
|
mysql-client \
|
|
apr \
|
|
apr-util \
|
|
boost \
|
|
yaml-cpp \
|
|
postgresql \
|
|
librdkafka \
|
|
nlohmann-json \
|
|
fmt
|
|
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-poco --branch poco-tip-v1
|
|
pushd poco
|
|
mkdir cmake-build
|
|
push cmake-build
|
|
cmake -DOPENSSL_ROOT_DIR=</path/to/openssl> -DENABLE_NETSSL=1 -DENABLE_JWT=1 -DENABLE_CRYPTO=1 ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
popd
|
|
popd
|
|
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka --branch tip-v1
|
|
pushd cppkafka
|
|
mkdir cmake-build
|
|
pushd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
popd
|
|
popd
|
|
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-lib-valijson --branch tip-v1
|
|
cd valijson
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
popd
|
|
popd
|
|
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-analytics
|
|
pushd wlan-cloud-analytics
|
|
mkdir cmake-build
|
|
pushd cmake-build
|
|
cmake ..
|
|
make -j
|
|
popd
|
|
popd
|
|
```
|
|
|
|
## Raspberry
|
|
The build on a rPI takes a while. You can shorten that build time and requirements by disabling all the larger database
|
|
support. You can build with only SQLite support by not installing the packages for PostgreSQL, and MySQL by
|
|
adding -DSMALL_BUILD=1 on the cmake build line.
|
|
|
|
```bash
|
|
sudo apt install git cmake g++ libssl-dev libaprutil1-dev apache2-dev libboost-all-dev libyaml-cpp-dev
|
|
git clone https://github.com/stephb9959/poco
|
|
cd poco
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake ..
|
|
cmake --build . --config Release
|
|
sudo cmake --build . --target install
|
|
|
|
cd ~
|
|
git clone https://github.com/Telecominfraproject/wlan-cloud-analytics
|
|
cd wlan-cloud-ucentralgw
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
cmake -DSMALL_BUILD=1 ..
|
|
make
|
|
```
|