aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--code/unix/Makefile4
-rw-r--r--code/unix/setup/Makefile15
-rwxr-xr-xcode/unix/setup/doit57
-rw-r--r--code/unix/setup/ioq3demo.sh44
-rw-r--r--code/unix/setup/ioquake3.sh44
-rw-r--r--code/unix/setup/setup.xml30
7 files changed, 196 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 783d728..ad465f1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
VERSION=1.33_SVN$(shell LANG=C svnversion .)
-release debug clean distclean copyfiles:
+release debug clean distclean copyfiles installer:
$(MAKE) -C code/unix $@
dist:
@@ -10,4 +10,4 @@ dist:
tar --force-local -cjf quake3-$(VERSION).tar.bz2 quake3-$(VERSION)
rm -rf quake3-$(VERSION)
-.PHONY: release debug clean distclean
+.PHONY: release debug clean distclean copyfiles installer
diff --git a/code/unix/Makefile b/code/unix/Makefile
index 3a7584d..625fafa 100644
--- a/code/unix/Makefile
+++ b/code/unix/Makefile
@@ -1762,6 +1762,7 @@ copyfiles: build_release
$(COPYDIR)/missionpack/.
clean:clean-debug clean-release
+ $(MAKE) -C setup clean
clean2:
if [ -d $(B) ];then (find $(B) -name '*.d' -exec rm {} \;)fi
@@ -1780,6 +1781,9 @@ distclean: clean
$(MAKE) -C ../tools/asm clean uninstall
$(MAKE) -C ../tools/lcc clean uninstall
+installer: build_release
+ $(MAKE) VERSION=$(VERSION) -C setup
+
#############################################################################
# DEPENDENCIES
#############################################################################
diff --git a/code/unix/setup/Makefile b/code/unix/setup/Makefile
new file mode 100644
index 0000000..a25cd65
--- /dev/null
+++ b/code/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/code/unix/setup/doit b/code/unix/setup/doit
new file mode 100755
index 0000000..c68c110
--- /dev/null
+++ b/code/unix/setup/doit
@@ -0,0 +1,57 @@
+#!/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`
+case "$arch" in
+ i?86) arch=i386 ;;
+esac
+
+rm -rf image
+mkdir image
+
+### loki-setup files
+cp -a $SETUPIMAGE/{setup.data,setup.sh} image/
+
+### splash
+convert ../../../web/images/quake3.jpg 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/$arch
+ln -s x86_64 image/bin/Linux/amd64 # $ยง&%!!
+install -m 755 ioquake3.sh image/bin/Linux/$arch/ioquake3
+install -m 755 ioq3demo.sh image/bin/Linux/$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/code/unix/setup/ioq3demo.sh b/code/unix/setup/ioq3demo.sh
new file mode 100644
index 0000000..e022afe
--- /dev/null
+++ b/code/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/code/unix/setup/ioquake3.sh b/code/unix/setup/ioquake3.sh
new file mode 100644
index 0000000..39c651c
--- /dev/null
+++ b/code/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/code/unix/setup/setup.xml b/code/unix/setup/setup.xml
new file mode 100644
index 0000000..172b933
--- /dev/null
+++ b/code/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>