--- /dev/null
+#!/bin/bash
+#
+#
+# Copyright 2019 AT&T Intellectual Property
+# Copyright 2019 Nokia
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# build utility for E2 Agent
+
+set -e
+
+E2SIM_DIR=$PWD
+ASN1_C_DIR=$E2SIM_DIR/build/CMakeFiles/ASN1
+
+source $E2SIM_DIR/tools/build_helper.bash
+
+print_help()
+{
+ echo "
+ This program installs E2 Simulator
+ You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14
+ The program is run by default with no option
+
+ Options
+ --clean
+ Erase all files to make a rebuild from start
+ -h
+ Print this help
+ "
+}
+
+generate_asn1c_codes()
+{
+ X2AP_RELEASE="R14"
+ X2AP_ASN_FILES="x2ap-14.6.0.asn1"
+ ASN_SOURCE_X2AP=$E2SIM_DIR/src/X2AP/MESSAGES/ASN1/${X2AP_RELEASE}/${X2AP_ASN_FILES}
+
+ ASN_SOURCE_Pendulum=$E2SIM_DIR/src/ONS2019/pendulum.asn1
+
+ done_flag="$ASN1_C_DIR"/done
+
+ #-ot = older than, -nt = newer than
+
+ if [ "$done_flag" -ot $ASN_SOURCE_X2AP ] ; then
+ echo_info "Generate C codes for from source file"
+ #echo_info $ASN_SOURCE
+
+ rm -f "$ASN1_C_DIR"/*.c "$ASN1_C_DIR"/*.h
+ mkdir -p $ASN1_C_DIR
+ asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \
+ -fno-include-deps -D $ASN1_C_DIR $ASN_SOURCE_X2AP \
+ |& egrep -v "^Copied|^Compiled" | sort -u
+
+ asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example \
+ -fno-include-deps -D $ASN1_C_DIR $ASN_SOURCE_Pendulum \
+ |& egrep -v "^Copied|^Compiled" | sort -u
+
+ echo_success "ASN1 C codes generated at: $ASN1_C_DIR"
+ fi
+ touch $done_flag
+}
+
+install_rmr()
+{
+ echo_info "Will install rmr library"
+ /bin/bash rmr_interface/rmr_install.sh
+}
+
+compile_asn_api_lib()
+{
+ echo_info "Will complie ASN1_API library"
+ # rm -rf build/libASN1_API.a
+ # rm -rf build/asn_x2ap.o
+ # rm -rf build/asn_e2ap.o
+
+ g++ -O3 -std=c++14 -Wall \
+ -I./src/ASN1/ -I./src/ASN1/asn/ -I./src/ASN1/generated/ \
+ -c src/ASN1/lib/asn_e2ap.cpp \
+ -o build/asn_e2ap.o
+ ar -crv build/libASN1_API.a build/asn_e2ap.o
+
+ g++ -O3 -std=c++14 -Wall \
+ -I./src/ASN1/ -I./src/ASN1/asn/ -I./src/ASN1/generated/ \
+ -c src/ASN1/lib/asn_x2ap.cpp \
+ -o build/asn_x2ap.o
+ ar -crv build/libASN1_API.a build/asn_x2ap.o
+}
+
+function main()
+{
+
+ case "$1" in
+ --clean)
+ echo_info "Will clean all previously producted files under build/"
+ rm -rf $E2SIM_DIR/build
+ echo_success "Clean Done"
+ exit
+ ;;
+
+ "")
+ ;;
+
+ --rmr)
+ install_rmr
+ exit
+ ;;
+
+ --lib)
+ compile_asn_api_lib
+ exit
+ ;;
+
+ -h)
+ print_help
+ exit 1;;
+
+ *)
+ echo_error "Unknown option $1"
+ exit
+ esac
+
+ BUILD_DIR=$E2SIM_DIR/build
+ mkdir -p $BUILD_DIR
+ mkdir -p $BUILD_DIR/log
+
+ # generate_asn1c_codes #X2AP, pendulum
+
+ compile_asn_api_lib
+
+ echo_info "Will build e2sim"
+ cd $BUILD_DIR
+ rm -rf CMakeCache.txt
+ cmake ..
+ make -j`nproc`
+
+ echo_success "e2sim compiled"
+
+}
+
+main "$@"