#https://github.com/TASVideos/fceux.git
#
# Script tested in a fresh install of Linux Mint 19.3 x86_64 Cinnamon
#
# Binaries tested and working with: 
# -ARCOS x86_64, run the .sh
# -Debian 11 XFCE x86_64, run the fceux
# -Linux Mint 19.x3, run the .sh
# -Linux Void GLIBC, run the .sh
#
glibc="$(ldd --version | awk '/ldd/{print $NF}')"
version=2.6.4
time_start=`date +%s`
sudo apt-get install git cmake g++ qtbase5-dev qttools5-dev zlib1g-dev libminizip-dev libsdl2-dev
rm -rf fceux
git clone https://github.com/TASVideos/fceux.git
cd fceux
sed -i 's/  pkg_check_modules( LIBAV /#pkg_check_modules( LIBAV /g' src/CMakeLists.txt
sed -i 's/  pkg_check_modules( X264 /#pkg_check_modules( X264 /g' src/CMakeLists.txt
sed -i 's/  pkg_check_modules( X265 /#pkg_check_modules( X265 /g' src/CMakeLists.txt

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release  ..   -DCMAKE_C_FLAGS="$CFLAGS -fPIC -w" -DCMAKE_CXX_FLAGS="$CXXFLAGS -fPIC -w"
make -j4
cd src
strip fceux
mkdir fceux.$version.x86_64_GLIBC_"$glibc"
cp fceux fceux.$version.x86_64_GLIBC_"$glibc"
cd fceux.$version.x86_64_GLIBC_"$glibc"

mkdir -p usr/lib/x86_64-linux-gnu/pulseaudio

cp /usr/lib/x86_64-linux-gnu/libminizip.so.1 usr/lib/x86_64-linux-gnu/
cp /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 usr/lib/x86_64-linux-gnu/
cp /usr/lib/x86_64-linux-gnu/libQt5Sql.so.5 usr/lib/x86_64-linux-gnu/
cp /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 usr/lib/x86_64-linux-gnu/
cp /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 usr/lib/x86_64-linux-gnu/
cp /usr/lib/x86_64-linux-gnu/libQt5Help.so.5 usr/lib/x86_64-linux-gnu/
cp /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 usr/lib/x86_64-linux-gnu/
cp -r /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so usr/lib/x86_64-linux-gnu/pulseaudio/

echo '#!/bin/sh' >fceux.$version.sh
echo '   BIN=./fceux' >>fceux.$version.sh
echo 'export LD_LIBRARY_PATH=lib/x86_64-linux-gnu:/lib64:usr/lib/x86_64-linux-gnu/' >>fceux.$version.sh
echo 'exec $BIN $@' >>fceux.$version.sh
chmod +x fceux.$version.sh

cd ..
7za a -mx -r ../../fceux.$version.x86_64_GLIBC_"$glibc".7z fceux.$version.x86_64_GLIBC_"$glibc"/*

time_end=`date +%s`
time_exec=`expr $(( $time_end - $time_start ))`
echo "EL PROCESO DE COMPILADO HA TARDADO UN TOTAL DE $(($time_exec / 60)) minutos y $(($time_exec % 60)) segundos."
