add AutoBuild.md authored by Cedric Roux's avatar Cedric Roux
# Building OAI executables (Trunk and next release)
Please use these instructions to build OAI on the current trunk and as of Release 0.3.
OAI comes with an automated build script (beta version) located at the root of the `cmake_targets` directory. Currently, the tool is developed to build the eNB for different hardware platforms, 3GPP releases, standalone or with S1 interface, unitary simulations, and system simulation.
The build system for OAI uses cmake which auto-generates makefiles.
## eNB Build Examples
```shell
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
cd YOUR_openairinterface5g_DIRECTORY
source oaienv #Very important. It sets the correct environment variables.
cd cmake_targets
./build_oai -I --install-optional-packages (need to run only once)
./build_oai -h (for more options)
```
### Install, Build eNB
* package installation + EXMIMO Driver Installation: `./build_oai -I --install-optional-packages`
* package installation + USRP Driver installation : `./build_oai -I --install-optional-packages -w USRP`
* package installation + BladeRF Driver Installation: `./build_oai -I --install-optional-packages -w BLADERF`
* eNB + EXMIMO + test: `./build_oai --eNB -w EXMIMO -c -s`
* eNB + USRP: `./build_oai --eNB -c -w USRP`
* eNB+ ETHERNET : `build_oai.bash --eNB -c -w ETHERNET`
### Build LTE Simulations (L3/L2/L1)
* unitary L1 simulations: `./build_oai --phy_simulators`
* oaisim: `./build_oai --oaisim (build oaisim with S1 support)`
* oaisim_nos1: `./build_oai --oaisim --noS1` (build oaisim without S1 support)
These will create directories under `cmake_targets` corresponding to the different targets. These are the main directories:
* lte_noS1_build_oai (see notes below for further building instructions) : L1/L2 + Linux IP interface (i.e. no S1 interface). This is a target which will work with and OAI eNB and OAI UE only.
* oaisim_build_oai : oaisim with S1
* lte_build_oai: eNB/UE build with S1/NAS
* lte-simulators: unitary PHY simulators
* oaisim_noS1_build_oai: oaisim without S1
Notes:
* Add `-x` to enable xforms (soft scope)
* Add `-V` to enable VCD file generation
* Add `-K /tmp/itti_enb.log` for itti logs
* For lte_noS1_build_oai do the following:
```shell
cd lte_noS1_build_oai
mkdir build
cd build
cmake ..
make lte-softmodem -j4
```
## Building the EPC modules
```shell
git clone https://gitlab.eurecom.fr/oai/openair-cn.git
cd YOUR_openair-cn_DIRECTORY
cd SCRIPTS
./build_epc -i #Need to run only once to install missing packages
./build_hss -i #Need to run only once to install missing packages
```
The detailed instructions for EPC are located in: `YOUR_openair-cn_DIRECTORY/DOCS/EPC_User_Guide.pdf`
## Building Older Releases
The older releases of OAI (0.1, 0.2) use an older build system located in targets/ durectory. This build system is deprecated and should not be used unless you want to compile older releases. The instructions to compile older releases (0.1, 0.2) are located [here](OlderReleases).