summaryrefslogtreecommitdiff
path: root/src/unix/setup
diff options
context:
space:
mode:
Diffstat (limited to 'src/unix/setup')
-rw-r--r--src/unix/setup/Makefile15
-rwxr-xr-xsrc/unix/setup/doit65
-rw-r--r--src/unix/setup/ioq3demo.sh44
-rw-r--r--src/unix/setup/ioquake3.sh44
-rw-r--r--src/unix/setup/setup.xml30
5 files changed, 198 insertions, 0 deletions
diff --git a/src/unix/setup/Makefile b/src/unix/setup/Makefile
new file mode 100644
index 00000000..a25cd652
--- /dev/null
+++ b/src/unix/setup/Makefile
@@ -0,0 +1,15 @@
+VERSION=FIXME
+RELEASE=1
+
+all:
+ VERSION=$(VERSION) RELEASE=$(RELEASE) ./doit
+
+sign:
+ for i in *.run; do \
+ gpg -bao $$i.asc $$i; \
+ done
+
+clean:
+ rm -rf *.run image
+
+.PHONY: all sign clean
diff --git a/src/unix/setup/doit b/src/unix/setup/doit
new file mode 100755
index 00000000..a3c8e0a3
--- /dev/null
+++ b/src/unix/setup/doit
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+: ${MAKESELF:=/usr/share/loki-setup/makeself}
+: ${SETUPIMAGE:=/usr/share/loki-setup/image}
+
+: ${VERSION:=0.0_`date +%Y%m%d%H%M`}
+: ${RELEASE:=0}
+
+set -e
+set -x
+
+arch=`uname -m`
+
+# $ยง&%!!
+setup_arch=$arch
+links=
+case "$arch" in
+ i?86) arch=i386; setup_arch=x86; links="amd64 x86_64" ;;
+ x86_64) links=amd64
+esac
+
+rm -rf image
+mkdir image
+
+### loki-setup files
+cp -a $SETUPIMAGE/{setup.data,setup.sh} image/
+
+### splash
+rm -f image/setup.data/splash.xpm
+[ -e splash.xpm ] && cp splash.xpm image/setup.data/splash.xpm
+
+### binaries
+mkdir image/tmp
+pushd image/tmp
+mkdir baseq3 demoq3 missionpack
+src="../../../release$arch-glibc/"
+install -m 755 $src/linuxquake3 ioquake3.$arch
+install -m 755 $src/linuxq3ded ioq3ded.$arch
+install -m 644 $src/baseq3/*.so baseq3
+install -m 644 $src/missionpack/*.so missionpack
+pushd demoq3
+ln -s ../baseq3/*.so .
+popd
+popd
+
+tar --owner=root --group=root -C image/tmp -cf image/ioquake3.tar .
+rm -rf image/tmp
+
+### setup.xml
+sed 's/@VERSION@/'$VERSION'/g' < setup.xml > image/setup.data/setup.xml
+
+### start script
+mkdir -p image/bin/Linux/$setup_arch
+for i in $links; do
+ ln -s $setup_arch image/bin/Linux/$i
+done
+install -m 755 ioquake3.sh image/bin/Linux/$setup_arch/ioquake3
+install -m 755 ioq3demo.sh image/bin/Linux/$setup_arch/ioq3demo
+
+### README and COPYING
+install -m 644 ../../../README image/README
+install -m 644 ../../../COPYING.txt image/COPYING
+
+### makeself installer
+$MAKESELF/makeself.sh image ioquake3-$VERSION-$RELEASE.$arch.run "icculus.org/quake3 $VERSION" ./setup.sh
diff --git a/src/unix/setup/ioq3demo.sh b/src/unix/setup/ioq3demo.sh
new file mode 100644
index 00000000..e022afed
--- /dev/null
+++ b/src/unix/setup/ioq3demo.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+readlink() {
+ local path=$1 ll
+
+ if [ -L "$path" ]; then
+ ll="$(LC_ALL=C ls -l "$path" 2> /dev/null)" &&
+ echo "${ll/* -> }"
+ else
+ return 1
+ fi
+}
+
+script=$0
+count=0
+while [ -L "$script" ]
+do
+ script=$(readlink "$script")
+ count=`expr $count + 1`
+ if [ $count -gt 100 ]
+ then
+ echo "Too many symbolic links"
+ exit 1
+ fi
+done
+cd "`dirname $script`"
+
+
+lib=lib
+test -e lib64 && lib=lib64
+
+if test "x$LD_LIBRARY_PATH" = x; then
+ LD_LIBRARY_PATH="`pwd`/$lib"
+else
+ LD_LIBRARY_PATH="`pwd`/$lib:$LD_LIBRARY_PATH"
+fi
+export LD_LIBRARY_PATH
+
+arch=`uname -m`
+case "$arch" in
+ i?86) arch=i386 ;;
+esac
+
+exec ./ioquake3.$arch +set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0 +set fs_game demoq3 "$@"
diff --git a/src/unix/setup/ioquake3.sh b/src/unix/setup/ioquake3.sh
new file mode 100644
index 00000000..39c651ca
--- /dev/null
+++ b/src/unix/setup/ioquake3.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+readlink() {
+ local path=$1 ll
+
+ if [ -L "$path" ]; then
+ ll="$(LC_ALL=C ls -l "$path" 2> /dev/null)" &&
+ echo "${ll/* -> }"
+ else
+ return 1
+ fi
+}
+
+script=$0
+count=0
+while [ -L "$script" ]
+do
+ script=$(readlink "$script")
+ count=`expr $count + 1`
+ if [ $count -gt 100 ]
+ then
+ echo "Too many symbolic links"
+ exit 1
+ fi
+done
+cd "`dirname $script`"
+
+
+lib=lib
+test -e lib64 && lib=lib64
+
+if test "x$LD_LIBRARY_PATH" = x; then
+ LD_LIBRARY_PATH="`pwd`/$lib"
+else
+ LD_LIBRARY_PATH="`pwd`/$lib:$LD_LIBRARY_PATH"
+fi
+export LD_LIBRARY_PATH
+
+arch=`uname -m`
+case "$arch" in
+ i?86) arch=i386 ;;
+esac
+
+exec ./ioquake3.$arch "$@"
diff --git a/src/unix/setup/setup.xml b/src/unix/setup/setup.xml
new file mode 100644
index 00000000..172b933c
--- /dev/null
+++ b/src/unix/setup/setup.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" standalone="yes"?>
+<install product="ioquake3"
+ desc="icculus.org/quake3"
+ version="@VERSION@"
+ promptbinaries="yes">
+ <readme>
+ README
+ </readme>
+ <eula>
+ COPYING
+ </eula>
+ <component name="Default" version="@VERSION@" default="yes">
+ <option install="true" required="true">
+ Quake 3
+
+ <binary arch="any" libc="any" symlink="ioquake3" icon="icon.xpm" play="yes"
+ name="icculus.org/quake3">
+ ioquake3
+ </binary>
+ <binary arch="any" libc="any" symlink="ioq3demo" icon="icon.xpm" play="no"
+ name="icculus.org/quake3 (Demo)">
+ ioq3demo
+ </binary>
+ <files>
+ ioquake3.tar
+ icon.xpm
+ </files>
+ </option>
+ </component>
+</install>