#! /bin/bash
# This is an example on how the different dependencies of the odulow fhi_lib can be brought into a build server
# which currently is the only module being built under odulow.
# In the example illustrated here we use a Centos OS in the server so the user should adopt the proper procedures
# for their target OS if it is different than Centos
cd /etc/yum.repos.d/
mkdir backup;
mv *.repo backup;

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

yum install vim gcc-c++ libhugetlbfs* libstdc++* kernel-devel numa* gcc git mlocate xorg-x11-server-Xorg -y
cd /home
mkdir odu_low_test
cd /home/odu_low_test 

wget http://fast.dpdk.org/rel/dpdk-18.08.1.tar.xz
xz -d dpdk-18.08.1.tar.xz
tar -xvf dpdk-18.08.1.tar
mv dpdk-stable-18.08.1 dpdk-18.08

cd dpdk-18.08/usertools/

./dpdk-setup.sh<<EOF
15
35
EOF

# After the dependencies have been brought in we can clone the ORAN repository, this step requires the user to provide credentials
git clone "https://gerrit.o-ran-sc.org/r/o-du/phy"
#
# The next step is to define the global variables used by the continous integration build shell script
# and the odulow Front Haul Library makefile
# In this example we are building the fhi_lib using gcc and the testapp is not being built.

export XRAN_DIR=/home/odu_low_test/phy/fhi_lib
export RTE_SDK=/home/odu_low_test/dpdk-18.08
export RTE_TARGET=x86_64-native-linuxapp-gcc
export BUILD_GCC=1
cd phy/fhi_lib
chmod 777 build_ci.sh
./build_ci.sh

