#!/usr/bin/bash
set ${MMTESTS_SH_DEBUG:-+x}

SCRIPT=`basename $0 | sed -e 's/\./\\\./'`
SCRIPTDIR=`echo $0 | sed -e "s/$SCRIPT//"`
export PATH=$PATH:$SCRIPTDIR

if [ -e /usr/share/bcc ]; then
	exit 0
fi

cd $SCRIPTDIR/..
MMTESTS_ROOT=`pwd`
SOURCEDIR=$MMTESTS_ROOT/build

PACKAGE_LIST="
bison
clang
clang-devel
cmake
flex
gcc
gcc-c++
git
glibc
glibc-devel
libelf-devel
libfl-devel
libLLVM4
libLLVM7
libLLVM9
libluajit-5_1-2
libstdc++-devel
llvm-clang-devel
llvm-devel
llvm-gold
lua51-luajit
lua51-luajit-devel
luajit-devel
pkg-config
python3-devel
python3-setuptools
python-devel
python-setuptools
"

for PACKAGE in $PACKAGE_LIST; do
	install-depends $PACKAGE
done

mkdir -p $SOURCEDIR
cd $SOURCEDIR || exit -1
git clone https://github.com/iovisor/bcc || exit -1
mkdir $SOURCEDIR/bcc/build || exit -1
cd $SOURCEDIR/bcc/build
echo Building bcc
cmake .. \
	-DCMAKE_INSTALL_PREFIX=/usr/local				\
	-DCMAKE_CXX_FLAGS=-std=c++11 -DCMAKE_EXE_LINKER_FLAGS=-lstdc++ 	\
	-DLUAJIT_INCLUDE_DIR=`pkg-config --variable=includedir luajit`	\
	-DENABLE_LLVM_SHARED=1						\
	|| exit -1

make -j8
if [ $? -ne 0 ]; then
	echo
	echo Build failed, retrying without no-pie
	sed -i -e 's/-no-pie//' ../src/lua/CMakeLists.txt
	make -j8 || exit -1
fi
make install || exit -1

echo Building python bindings
cmake .. -DPYTHON_CMD=python3 || exit -1
cd src/python || exit -1
make || exit -1
make install || exit -1

echo Build successful
exit 0
