diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | code/unix/Makefile | 4 | ||||
-rw-r--r-- | code/unix/setup/Makefile | 15 | ||||
-rwxr-xr-x | code/unix/setup/doit | 57 | ||||
-rw-r--r-- | code/unix/setup/ioq3demo.sh | 44 | ||||
-rw-r--r-- | code/unix/setup/ioquake3.sh | 44 | ||||
-rw-r--r-- | code/unix/setup/setup.xml | 30 |
7 files changed, 196 insertions, 2 deletions
@@ -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> |