Skip to content

Commit

Permalink
AppImage build files
Browse files Browse the repository at this point in the history
  • Loading branch information
darealshinji committed Sep 8, 2023
1 parent f66768e commit 44bb002
Show file tree
Hide file tree
Showing 13 changed files with 180 additions and 0 deletions.
7 changes: 7 additions & 0 deletions appimage/alephone.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Aleph One
Exec=alephone
Icon=alephone
Categories=Game;

Binary file added appimage/alephone.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions appimage/apprun-marathon-infinity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
approot="$(realpath "$(dirname "$0")")"
"$approot/usr/bin/alephone" "$approot/usr/share/Marathon Infinity"
3 changes: 3 additions & 0 deletions appimage/apprun-marathon.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
approot="$(realpath "$(dirname "$0")")"
"$approot/usr/bin/alephone" "$approot/usr/share/Marathon"
3 changes: 3 additions & 0 deletions appimage/apprun-marathon2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
approot="$(realpath "$(dirname "$0")")"
"$approot/usr/bin/alephone" "$approot/usr/share/Marathon 2"
126 changes: 126 additions & 0 deletions appimage/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
#!/bin/bash
set -e

cat <<EOL >/dev/null
sudo apt install --no-install-recommends \
build-essential autoconf autoconf-archive nasm wget git fuse3 \
libboost-all-dev libsdl2-dev libsdl2-image-dev libsdl2-net-dev libsdl2-ttf-dev \
libzzip-dev zlib1g-dev libpng-dev libvpx-dev libvorbis-dev \
libcurl4-gnutls-dev libminiupnpc-dev libopenal-dev libsndfile1-dev \
libglu1-mesa-dev
EOL

set -x

cd "$(dirname "$0")"

#ffmpeg_tag="n6.0"

export LD_LIBRARY_PATH="$PWD/ffmpeg/usr/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$PWD/ffmpeg/usr/lib/pkgconfig"

# build FFmpeg from source to avoid unneeded dependencies
# https://github.com/Aleph-One-Marathon/mac-frameworks/blob/master/ffmpeg/ffmpeg.mk

#if [ ! -d ffmpeg ]; then
# git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
# cd ffmpeg
# git checkout $ffmpeg_tag
# cd ..
#fi
if [ ! -f ffmpeg/usr/lib/pkgconfig/libavcodec.pc ]; then
cd ffmpeg
./configure --prefix="$PWD/usr" \
--disable-programs \
--disable-doc \
--enable-gpl \
--enable-version3 \
--disable-static \
--enable-shared \
--enable-postproc \
--enable-libvorbis \
--enable-libvpx \
--disable-everything \
--enable-muxer=webm \
--enable-encoder=libvorbis \
--enable-encoder=libvpx_vp8 \
--enable-demuxer=aiff \
--enable-demuxer=mp3 \
--enable-demuxer=mpegps \
--enable-demuxer=mpegts \
--enable-demuxer=mpegtsraw \
--enable-demuxer=mpegvideo \
--enable-demuxer=ogg \
--enable-demuxer=wav \
--enable-parser=mpegaudio \
--enable-parser=mpegvideo \
--enable-decoder=adpcm_ima_wav \
--enable-decoder=adpcm_ms \
--enable-decoder=gsm \
--enable-decoder=gsm_ms \
--enable-decoder=mp1 \
--enable-decoder=mp1float \
--enable-decoder=mp2 \
--enable-decoder=mp2float \
--enable-decoder=mp3 \
--enable-decoder=mp3float \
--enable-decoder=mpeg1video \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_f32be \
--enable-decoder=pcm_f32le \
--enable-decoder=pcm_f64be \
--enable-decoder=pcm_f64le \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_s8 \
--enable-decoder=pcm_s8_planar \
--enable-decoder=pcm_s16be \
--enable-decoder=pcm_s16le \
--enable-decoder=pcm_s16le_planar \
--enable-decoder=pcm_s24be \
--enable-decoder=pcm_s24le \
--enable-decoder=pcm_s32be \
--enable-decoder=pcm_s32le \
--enable-decoder=pcm_u8 \
--enable-decoder=theora \
--enable-decoder=vorbis \
--enable-decoder=vp8 \
--enable-protocol=file \
| tee config.log
make -j$(nproc)
make install
cd ..
fi

# build AlephOne
if [ ! -f build/Source_Files/alephone ]; then
rm -rf build
mkdir build
cd build
test -f ../../configure || autoreconf -if ../..
CFLAGS=-O2 CXXFLAGS=-O2 LDFLAGS=-s ../../configure --without-smpeg
make -j$(nproc) V=0
#wget -q -O linuxdeploy.AppImage -c https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
#chmod a+x linuxdeploy.AppImage
cd ..
fi

# create AppDirs
rm -rf out
mkdir -p out/appdir/usr/bin out/appdir/usr/share/doc/{alephone,ffmpeg}
cp build/Source_Files/alephone out/appdir/usr/bin
cp ../{AUTHORS,COPYING,THANKS} out/appdir/usr/share/doc/alephone
cp ffmpeg/{*.md,MAINTAINERS,Changelog} out/appdir/usr/share/doc/ffmpeg
cp -r out/appdir out/alephone.appdir
cp -r out/appdir out/marathon.appdir
cp -r out/appdir out/marathon2.appdir
cp -r out/appdir out/marathon-infinity.appdir
cp -r ../data/Scenarios/Marathon out/marathon.appdir/usr/share
cp -r ../data/Scenarios/"Marathon 2" out/marathon2.appdir/usr/share
cp -r ../data/Scenarios/"Marathon Infinity" out/marathon-infinity.appdir/usr/share

# create AppImages
cd out
../linuxdeploy.AppImage -oappimage --appdir=alephone.appdir -d../alephone.desktop -i../alephone.png
../linuxdeploy.AppImage -oappimage --appdir=marathon.appdir -d../marathon.desktop -i../marathon.png --custom-apprun=../apprun-marathon.sh
../linuxdeploy.AppImage -oappimage --appdir=marathon2.appdir -d../marathon2.desktop -i../marathon2.png --custom-apprun=../apprun-marathon2.sh
../linuxdeploy.AppImage -oappimage --appdir=marathon-infinity.appdir -d../marathon-infinity.desktop -i../marathon-infinity.png --custom-apprun=../apprun-marathon-infinity.sh
17 changes: 17 additions & 0 deletions appimage/fetch-sources.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/sh
set -e
set -x

wget -q -O linuxdeploy.AppImage -c https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod a+x linuxdeploy.AppImage

#URL=https://git.ffmpeg.org/ffmpeg.git
URL=https://github.com/FFmpeg/FFmpeg
git clone --depth 1 $URL ffmpeg

set +x
set +e

if [ "x$(ls ../data/Scenarios/Marathon)" = "x" ]; then
echo "Warning: no game files in \`../data/Scenarios'!"
fi
7 changes: 7 additions & 0 deletions appimage/marathon-infinity.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Marathon Infinity
Exec=marathon-infinity
Icon=marathon-infinity
Categories=Game;

Binary file added appimage/marathon-infinity.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions appimage/marathon.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Marathon
Exec=marathon
Icon=marathon
Categories=Game;

Binary file added appimage/marathon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions appimage/marathon2.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Marathon 2 - Durandal
Exec=marathon2
Icon=marathon2
Categories=Game;

Binary file added appimage/marathon2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 44bb002

Please sign in to comment.