From b2eccd997b04c7c8d5a68e77e48d3441a6cc2959 Mon Sep 17 00:00:00 2001 From: ludwig 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 --- Makefile | 4 ++-- 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 ++++++++++++++++++++++++ 7 files changed, 196 insertions(+), 2 deletions(-) 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 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 @@ + + + + README + + + COPYING + + + + + -- cgit v1.2.3