109 lines
4.0 KiB
Bash
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"
|