PublicFiles/Artian-Apps/apps/Marathon/install

109 lines
4.0 KiB
Bash

#!/bin/bash
version=20230529
#made according to the instructions from the developer, but was not originally created for the Pi
#https://github.com/Aleph-One-Marathon/alephone/wiki/Linux%20Install%20Instructions
install_packages libboost-all-dev libsdl2-dev libglu1-mesa-dev \
libsdl2-image-dev libsdl2-net-dev libsdl2-ttf-dev \
libspeexdsp-dev libzzip-dev libavcodec-dev libavformat-dev \
libavutil-dev libswscale-dev libswresample-dev libpng-dev libcurl4-openssl-dev libminiupnpc-dev build-essential unzip || exit 1
# print installed sdl2 package versions for debugging
dpkg -l | grep sdl2
#creating a directory for game files and remove previous gamefiles
rm -rf ~/AlephOneData
mkdir -p ~/AlephOneData
#installation of the Marathon game engine (Aleph One)
cd /tmp
wget https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/AlephOne-${version}.tar.bz2 || exit 1
status "Unzipping..."
rm -rf AlephOne-${version}
tar xjvf AlephOne-${version}.tar.bz2 || error "Unable to decompress source code"
rm -f AlephOne-*.tar.bz2
status_green "Done"
status "Compilation..."
cd AlephOne-${version}
# get the $DISTRIB_RELEASE by calling get_codename function
DISTRIB_CODENAME=$(get_codename)
case "$arch" in
"64")
case "$DISTRIB_CODENAME" in
bionic|stretch) ./configure --without-miniupnpc || error "Unable to configure" ;;
*) ./configure || error "Unable to configure" ;;
esac
;;
"32")
case "$DISTRIB_CODENAME" in
bionic|stretch) ./configure --without-miniupnpc --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf || error "Unable to configure" ;;
*) ./configure --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf || error "Unable to configure" ;;
esac
;;
*) error "Failed to detect OS CPU architecture! Something is very wrong." ;;
esac
make -j$(nproc) || error "Unable to build"
sudo make install || error "Unable to install"
cd ..
rm -rf AlephOne-${version}
status_green "Done with build"
#downloading Marathon Trilogy game data files
rm -rf Marathon*-Data.zip
rm -rf Marathon*
status "Downloading Marathon Trilogy game data files... "
wget https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/Marathon-${version}-Data.zip || exit 1
unzip Marathon-${version}-Data.zip || error "Could not extract"
mv Marathon/ ~/AlephOneData/ || error "Could not move directory"
status_green "Marathon installed"
wget https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/Marathon2-${version}-Data.zip || exit 1
unzip Marathon2-${version}-Data.zip || error "Could not extract"
mv "Marathon 2" ~/AlephOneData/Marathon_2 || error "Could not move directory"
status_green "Marathon 2 installed"
wget https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/MarathonInfinity-${version}-Data.zip || exit 1
unzip MarathonInfinity-${version}-Data.zip || error "Could not extract"
mv "Marathon Infinity" ~/AlephOneData/Marathon_Infinity || error "Could not move directory"
rm -rf Marathon*-Data.zip
status_green "Marathon Infinity installed"
#create menu launchers
mkdir -p ~/.local/share/applications
status "Creating Menu launchers... "
echo "[Desktop Entry]
Version=1.0
Name=Marathon
Exec=/usr/local/bin/alephone $HOME/AlephOneData/Marathon/ %u
Icon=$(dirname "$0")/icon-64.png
Terminal=false
Type=Application
Categories=Game;" > ~/.local/share/applications/marathon.desktop
echo "[Desktop Entry]
Version=1.0
Name=Marathon 2
Exec=/usr/local/bin/alephone $HOME/AlephOneData/Marathon_2/ %u
Icon=$(dirname "$0")/icon-64.png
Terminal=false
Type=Application
Categories=Game;" > ~/.local/share/applications/marathon2.desktop
echo "[Desktop Entry]
Version=1.0
Name=Marathon Infinity
Exec=/usr/local/bin/alephone $HOME/AlephOneData/Marathon_Infinity/ %u
Icon=$(dirname "$0")/icon-64.png
Terminal=false
Type=Application
Categories=Game;" > ~/.local/share/applications/marathoninfinity.desktop
status_green "Done"
warning "To prevent data loss, do not delete the $HOME/AlephOneData folder"