From b2eccd997b04c7c8d5a68e77e48d3441a6cc2959 Mon Sep 17 00:00:00 2001
From: ludwig <ludwig@edf5b092-35ff-0310-97b2-ce42778d08ea>
Date: Sun, 27 Nov 2005 15:34:16 +0000
Subject: files to create a loki-setup based installer. run "make installer"

git-svn-id: svn://svn.icculus.org/quake3/trunk@379 edf5b092-35ff-0310-97b2-ce42778d08ea
---
 code/unix/Makefile          |  4 ++++
 code/unix/setup/Makefile    | 15 ++++++++++++
 code/unix/setup/doit        | 57 +++++++++++++++++++++++++++++++++++++++++++++
 code/unix/setup/ioq3demo.sh | 44 ++++++++++++++++++++++++++++++++++
 code/unix/setup/ioquake3.sh | 44 ++++++++++++++++++++++++++++++++++
 code/unix/setup/setup.xml   | 30 ++++++++++++++++++++++++
 6 files changed, 194 insertions(+)
 create mode 100644 code/unix/setup/Makefile
 create mode 100755 code/unix/setup/doit
 create mode 100644 code/unix/setup/ioq3demo.sh
 create mode 100644 code/unix/setup/ioquake3.sh
 create mode 100644 code/unix/setup/setup.xml

(limited to 'code/unix')

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>
-- 
cgit v1.2.3