#!/bin/bash

sudo apt-get update

## Install dependencies 
sudo apt-get install -y autotools-dev
sudo apt-get install -y automake 					    # Required for run 'swig/autogen.sh'
sudo apt-get install -y g++ make libpcre2-dev byacc     # Required for swig install
sudo apt-get install -y cmake python3-dev libsctp-dev 	# Required for flexric install
sudo apt-get install -y libpcre2-dev
sudo apt-get install -y pcre2-utils
sudo apt-get install -y bison
sudo apt-get install -y byacc
sudo apt-get install -y g++ 
sudo apt-get install -y libsctp-dev python3.8 libpcre2-dev python3-dev 

## Repository OAI dependencies
sudo add-apt-repository ppa:ettusresearch/uhd -y
sudo apt-get update -y

## OAI dependencies
## Testar com a libuhd4.4.0 ao invés de libuhd4.2.0u
sudo apt-get install libuhd-dev uhd-host -y
sudo apt-get install libuhd4.2.0 -y # Required for OpenAirInterface install
sudo apt-get install libuhd4.4.0 -y
sudo apt-get install libuhd4.5.0 -y 
sudo dpkg -i --force-overwrite /var/cache/apt/archives/libuhd4.2.0_4.2.0.1-0ubuntu1~focal1_amd64.deb
sudo dpkg -i --force-overwrite /var/cache/apt/archives/libuhd4.4.0_4.4.0.0-0ubuntu1~focal1_amd64.deb
sudo dpkg -i --force-overwrite /var/cache/apt/archives/libuhd4.5.0_4.5.0.0-0ubuntu1~focal1_amd64.deb
# Work directory path is the current directory
WORK_DIR=$HOME


## Configure swig - required for flexric
cd $WORK_DIR/
git clone https://github.com/swig/swig.git
cd $WORK_DIR/swig
./autogen.sh
./configure --prefix=/usr/
make
sudo make install


## Install FlexRIC
sudo rm -rf /usr/local/lib/flexric/
cd $WORK_DIR/
sudo rm -rf flexric/
git clone https://projetos.imd.ufrn.br/reginalab/nric-flexric.git flexric
cd $WORK_DIR/flexric
git remote add upstream https://gitlab.eurecom.fr/mosaic5g/flexric.git
sudo rm -rf build/
mkdir $WORK_DIR/flexric/build
cd $WORK_DIR/flexric/build
cmake ..
make -j8
sudo make install


## Install OAI UE and OAI gNB
cd $WORK_DIR/
sudo rm -rf oai/
git clone https://projetos.imd.ufrn.br/reginalab/nric-oai oai
cd $WORK_DIR/oai
git remote add upstream https://gitlab.eurecom.fr/oai/openairinterface5g.git
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

cd cmake_targets
sudo ./build_oai -I -w USRP --gNB --nrUE --build-e2 --ninja