aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2010-11-25 15:29:19 +0000
committerPav Lucistnik <pav@FreeBSD.org>2010-11-25 15:29:19 +0000
commit3381d497856a32e9669768043567b6de1b24a953 (patch)
tree4bb2d447f8cb3a2961f0b1a994390df14e8bfe2e
parente20f6fdb9ffefaf24112f18a2eb97d7108893e38 (diff)
downloadports-3381d497856a32e9669768043567b6de1b24a953.tar.gz
ports-3381d497856a32e9669768043567b6de1b24a953.zip
Notes
-rw-r--r--games/Makefile2
-rw-r--r--games/ioquake3/Makefile3
-rw-r--r--games/openarena-data/Makefile42
-rw-r--r--games/openarena-data/distinfo6
-rw-r--r--games/openarena-data/pkg-descr3
-rw-r--r--games/openarena-data/pkg-plist10
-rw-r--r--games/openarena-oax/Makefile33
-rw-r--r--games/openarena-oax/distinfo3
-rw-r--r--games/openarena-oax/pkg-descr8
-rw-r--r--games/openarena-oax/pkg-plist4
-rw-r--r--games/openarena/Makefile160
-rw-r--r--games/openarena/Makefile.include23
-rw-r--r--games/openarena/distinfo12
-rw-r--r--games/openarena/files/patch-Makefile393
-rw-r--r--games/openarena/files/patch-code__qcommon__common.c10
-rw-r--r--games/openarena/files/patch-code__qcommon__q_platform.h15
-rw-r--r--games/openarena/files/patch-code__unix__linux_glimp.c19
-rw-r--r--games/openarena/files/patch-code__unix__unix_main.c31
-rw-r--r--games/openarena/files/patch-code_client_snd_openal.c11
-rw-r--r--games/openarena/files/patch-feature-DEFAULT_LIBDIR128
-rw-r--r--games/openarena/pkg-descr13
-rw-r--r--games/openarena/pkg-message8
-rw-r--r--games/openarena/pkg-plist27
23 files changed, 392 insertions, 572 deletions
diff --git a/games/Makefile b/games/Makefile
index 1c8df8b8d48e..9bb97914974a 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -604,6 +604,8 @@
SUBDIR += oonsoo
SUBDIR += openalchemist
SUBDIR += openarena
+ SUBDIR += openarena-data
+ SUBDIR += openarena-oax
SUBDIR += openastromenace
SUBDIR += opencity
SUBDIR += opengfx
diff --git a/games/ioquake3/Makefile b/games/ioquake3/Makefile
index b37f75766383..890cd87a0e9d 100644
--- a/games/ioquake3/Makefile
+++ b/games/ioquake3/Makefile
@@ -101,6 +101,7 @@ MAKE_ARGS+= BUILD_CLIENT=1
PLIST_SUB+= CLIENT=""
Q3BIN+= ${Q3CLIENT}
.else
+MAKE_ARGS+= BUILD_CLIENT=0
PLIST_SUB+= CLIENT="@comment "
.endif
@@ -109,6 +110,7 @@ MAKE_ARGS+= BUILD_SERVER=1
PLIST_SUB+= DEDICATED=""
Q3BIN+= ${Q3SERVER}
.else
+MAKE_ARGS+= BUILD_SERVER=0
PLIST_SUB+= DEDICATED="@comment "
.endif
@@ -125,6 +127,7 @@ MAKE_ARGS+= BUILD_CLIENT_SMP=1
PLIST_SUB+= SMP=""
Q3BIN+= ${Q3CLIENT}-smp
.else
+MAKE_ARGS+= BUILD_CLIENT_SMP=0
PLIST_SUB+= SMP="@comment "
.endif
diff --git a/games/openarena-data/Makefile b/games/openarena-data/Makefile
new file mode 100644
index 000000000000..1a80e300abdc
--- /dev/null
+++ b/games/openarena-data/Makefile
@@ -0,0 +1,42 @@
+# New ports collection makefile for: openarena-data
+# Date created: 15 June 2010
+# Whom: Dominic Fandrey
+#
+# $FreeBSD$
+#
+
+PORTNAME= data
+PORTVERSION= 0.8.5
+CATEGORIES= games
+MASTER_SITES= http://openarena.ws/request.php?2\\\#/:data \
+ http://openarena.ws/request.php?3\\\#/:patch
+DISTFILES= ${OA_DATA}:data \
+ ${OA_PATCH}:patch
+EXTRACT_ONLY=
+
+MAINTAINER= kamikaze@bsdforen.de
+COMMENT= OpenArena game data files
+
+USE_ZIP= yes
+
+WRKSRC= ${WRKDIR}
+NO_BUILD= yes
+FETCH_ARGS=
+USE_ZIP= yes
+
+OA_DATA= oa081.zip
+OA_DATA_VER= 0.8.1
+OA_PATCH= oa085p.zip
+OA_PATCH_VER= 0.8.1
+
+do-install:
+ @${MKDIR} ${DATADIR}
+ @${UNZIP_CMD} -j ${DISTDIR}/${OA_DATA} \
+ ${PKGNAMEPREFIX}${OA_DATA_VER}/${OABASE}/\* \
+ -d ${DATADIR}
+ @${UNZIP_CMD} -j ${DISTDIR}/${OA_PATCH} \
+ ${PKGNAMEPREFIX}${OA_PATCH_VER}/${OABASE}/\* \
+ -d ${DATADIR}
+ @${CHMOD} -R o-w ${DATADIR}
+
+.include "../openarena/Makefile.include"
diff --git a/games/openarena-data/distinfo b/games/openarena-data/distinfo
new file mode 100644
index 000000000000..4c5aca80be87
--- /dev/null
+++ b/games/openarena-data/distinfo
@@ -0,0 +1,6 @@
+MD5 (oa081.zip) = 49006bcb02b4e8ea3d06749e8f4e4887
+SHA256 (oa081.zip) = c96282de8bc2ac5781df58c6adbce4265376e36190af50d7528f51dc739b6d7d
+SIZE (oa081.zip) = 318927645
+MD5 (oa085p.zip) = b2a0437da751cd50dd2351ed9e0c4e9d
+SHA256 (oa085p.zip) = d360c4b095bc3b34d03d9a366b21c12052c3f9e9c57e86b17c8b2c038baa4719
+SIZE (oa085p.zip) = 42528474
diff --git a/games/openarena-data/pkg-descr b/games/openarena-data/pkg-descr
new file mode 100644
index 000000000000..1f77588199b5
--- /dev/null
+++ b/games/openarena-data/pkg-descr
@@ -0,0 +1,3 @@
+This is the game data port for the ioquake3 engine based game OpenArena.
+
+WWW: http://openarena.ws/
diff --git a/games/openarena-data/pkg-plist b/games/openarena-data/pkg-plist
new file mode 100644
index 000000000000..046a011fa386
--- /dev/null
+++ b/games/openarena-data/pkg-plist
@@ -0,0 +1,10 @@
+%%DATADIR%%/pak0.pk3
+%%DATADIR%%/pak1-maps.pk3
+%%DATADIR%%/pak2-players-mature.pk3
+%%DATADIR%%/pak2-players.pk3
+%%DATADIR%%/pak4-textures.pk3
+%%DATADIR%%/pak5-TA.pk3
+%%DATADIR%%/pak6-misc.pk3
+%%DATADIR%%/pak6-patch085.pk3
+@dirrm %%DATADIR%%
+@dirrmtry %%OADIR%%
diff --git a/games/openarena-oax/Makefile b/games/openarena-oax/Makefile
new file mode 100644
index 000000000000..f7282f54a278
--- /dev/null
+++ b/games/openarena-oax/Makefile
@@ -0,0 +1,33 @@
+# New ports collection makefile for: openarena-oax
+# Date created: 21 May 2010
+# Whom: Dominic Fandrey
+#
+# $FreeBSD$
+#
+
+PORTNAME= oax
+PORTVERSION= B45
+CATEGORIES= games
+MASTER_SITES= http://files.poulsander.com/~poul19/public_files/eliminationSource/
+DISTNAME= ${PORTNAME}${PORTVERSION}
+EXTRACT_SUFX= .zip
+EXTRACT_ONLY=
+
+MAINTAINER= kamikaze@bsdforen.de
+COMMENT= OpenArena Mod: OpenArena Xpanded
+
+USE_ZIP= yes
+
+PLIST_SUB+= DISTNAME="${DISTNAME}" \
+ PORTNAME="${PORTNAME}"
+
+NO_BUILD= yes
+
+OABASE= ${DISTNAME}
+
+do-install:
+ @${MKDIR} ${DATADIR}
+ @${UNZIP_CMD} ${DISTDIR}/${DISTFILES} -d ${OADIR}
+ @${CHMOD} -R o-w ${DATADIR}
+
+.include "../openarena/Makefile.include"
diff --git a/games/openarena-oax/distinfo b/games/openarena-oax/distinfo
new file mode 100644
index 000000000000..ad5798090284
--- /dev/null
+++ b/games/openarena-oax/distinfo
@@ -0,0 +1,3 @@
+MD5 (oaxB45.zip) = 395b29a38184100cea7dc3206979770f
+SHA256 (oaxB45.zip) = 43f21a45329b549b5a0a967269e50cf89803b5e084598d7fbef726fa63e0aa14
+SIZE (oaxB45.zip) = 465245
diff --git a/games/openarena-oax/pkg-descr b/games/openarena-oax/pkg-descr
new file mode 100644
index 000000000000..12127d455c04
--- /dev/null
+++ b/games/openarena-oax/pkg-descr
@@ -0,0 +1,8 @@
+OpenArena Expanded is the development version of OpenArena. Its purpose is both
+to create improve the basic OpenArena gameplay but also to create a good
+starting point for any OpenArena or Quake III:Arena mods.
+
+It does not include engine or platform specific code. The source code is
+GPL v2 or later but some of the tools are not.
+
+WWW: http://code.google.com/p/oax/
diff --git a/games/openarena-oax/pkg-plist b/games/openarena-oax/pkg-plist
new file mode 100644
index 000000000000..42c1951b0adb
--- /dev/null
+++ b/games/openarena-oax/pkg-plist
@@ -0,0 +1,4 @@
+%%DATADIR%%/%%PORTNAME%%.pk3
+%%DATADIR%%/readme.txt
+@dirrm %%DATADIR%%
+@dirrmtry %%OADIR%%
diff --git a/games/openarena/Makefile b/games/openarena/Makefile
index cc76dc2cbfad..32c70f1ad858 100644
--- a/games/openarena/Makefile
+++ b/games/openarena/Makefile
@@ -6,147 +6,27 @@
#
PORTNAME= openarena
-PORTVERSION= 0.7.1
-PORTREVISION= 6
-CATEGORIES= games
-MASTER_SITES= http://openarena.ws/rel/070/:src \
- http://download.tuxfamily.net/cooker/openarena/rel070/:data \
- ftp://ftp.alepulver.com.ar/distfiles/:patch
-DISTNAME= ioq3-src-oa
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:src \
- ${OA_DATA}:data \
- ${OA_PATCH}:patch
-EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+PORTVERSION= 0.8.5
+DISTVERSION= 1.36_SVN1783+${PORTVERSION}
+PORTREVISION= 0
+MASTER_SITES= http://files.poulsander.com/~poul19/public_files/oa/dev081/
+DISTNAME= ${PORTNAME}-engine-source-0.8.x-15
-MAINTAINER= hemi@puresimplicity.net
-COMMENT= GPL-licensed total conversion of Quake 3
+MAINTAINER= kamikaze@bsdforen.de
+COMMENT= Quake3 total conversion based on the ioquake3 engine
-EXTRACT_DEPENDS=unzip:${PORTSDIR}/archivers/unzip
-LIB_DEPENDS= vorbis.4:${PORTSDIR}/audio/libvorbis
+RUN_DEPENDS= ${DATADIR}/${Q3BASE}/pak0.pk3:${PORTSDIR}/games/openarena-data
USE_BZIP2= yes
-USE_GMAKE= yes
-NO_WRKSUBDIR= yes
-
-OPTIONS= CLIENT "Build client" on \
- DEDICATED "Build dedicated server" on \
- OPENAL "Enable OpenAL (3D sound) support" off \
- OPENAL_DLOPEN "Enable dynamic loading of OpenAL" off \
- OPTIMIZED_CFLAGS "Enable compilation optimizations" on \
- SDL_AUDIO "Use SDL for audio" off \
- SDL_VIDEO "Use SDL for video" off \
- SMP "Build SMP (threaded) client" on \
-
-MAKE_ENV= DEFAULT_BASEDIR="${DATADIR}" LIBDIR="${LIBDIR}" \
- PTHREAD_LIBS="${PTHREAD_LIBS}" USE_CODEC_VORBIS=1
-PLIST_SUB= LIBDIR="${LIBDIR:S/${PREFIX}\///}"
-
-LIBDIR= ${PREFIX}/lib/${PORTNAME}
-VM_ARCHS= amd64 i386 powerpc
-OA_DATA= oa070.zip
-OA_PATCH= oa071-patch.zip
-
-.include <bsd.port.pre.mk>
-
-.if defined(WITHOUT_CLIENT) && defined(WITHOUT_DEDICATED) && \
- defined(WITHOUT_SMP)
-IGNORE= needs at least one of CLIENT, DEDICATED and SMP options
-.endif
-
-.for i in ${ARCH}
-. if ${VM_ARCHS:M${i}} != ""
-HAVE_VM_COMPILED= yes
-. endif
-.endfor
-
-.if defined(HAVE_VM_COMPILED)
-MAKE_ENV+= HAVE_VM_COMPILED=true
-.endif
-
-.if !defined(WITHOUT_CLIENT) || !defined(WITHOUT_SMP)
-# OpenAL
-. if defined(WITH_OPENAL)
-USE_OPENAL= al
-MAKE_ENV+= USE_OPENAL=1
-. if defined(WITH_OPENAL_DLOPEN)
-MAKE_ENV+= USE_OPENAL_DLOPEN=1
-. endif
-. endif
-# SDL
-. if defined(WITH_SDL_AUDIO)
-USE_SDL= sdl
-MAKE_ENV+= USE_SDL_AUDIO=1
-. endif
-. if defined(WITH_SDL_VIDEO)
-USE_SDL= sdl
-MAKE_ENV+= USE_SDL_VIDEO=1
-. else
-USE_GL= yes
-USE_XORG= x11 xxf86dga
-. endif
-.endif
-
-.if !defined(WITHOUT_CLIENT)
-MAKE_ENV+= BUILD_CLIENT=1
-PLIST_SUB+= CLIENT=""
-OABIN+= ioquake3
-.else
-PLIST_SUB+= CLIENT="@comment "
-.endif
-
-.if !defined(WITHOUT_DEDICATED)
-MAKE_ENV+= BUILD_SERVER=1
-PLIST_SUB+= DEDICATED=""
-OABIN+= ioq3ded
-.else
-PLIST_SUB+= DEDICATED="@comment "
-.endif
-
-.if defined(WITH_GAMELIBS) || !defined(HAVE_VM_COMPILED)
-MAKE_ENV+= BUILD_GAME_SO=1
-PLIST_SUB+= GAMELIBS=""
-.else
-PLIST_SUB+= GAMELIBS="@comment "
-.endif
-
-.if !defined(WITHOUT_OPTIMIZED_CFLAGS)
-MAKE_ENV+= USE_OPTIMIZED_CFLAGS=1
-.endif
-
-.if !defined(WITHOUT_SMP)
-MAKE_ENV+= BUILD_CLIENT_SMP=1
-PLIST_SUB+= SMP=""
-OABIN+= ioquake3-smp
-.else
-PLIST_SUB+= SMP="@comment "
-.endif
-
-.if ${ARCH} == "sparc64"
-BROKEN= Does not compile
-.endif
-
-post-extract:
-.for f in ${OA_DATA} ${OA_PATCH}
- @${UNZIP_CMD} -qo ${DISTDIR}/${f} -d ${WRKDIR}
-.endfor
-
-do-install:
-.for bin in ${OABIN}
- ${INSTALL_PROGRAM} ${WRKSRC}/build/release/${bin} \
- ${PREFIX}/bin/${bin:C/(ioquake3|ioq3)/${PORTNAME}/}
-.endfor
-.if defined(WITH_GAMELIBS) || !defined(HAVE_VM_COMPILED)
-.for dir in baseq3 missionpack
- ${MKDIR} ${LIBDIR}/${dir}
- ${INSTALL_PROGRAM} ${WRKSRC}/build/release/${dir}/*.so ${LIBDIR}/${dir}
-.endfor
-.endif
- ${MKDIR} ${DATADIR}
- ${CP} -R ${WRKDIR}/${PORTNAME}-0.7.0/baseoa ${DATADIR}
-
-post-install:
- @${ECHO_CMD}
- @${CAT} ${PKGMESSAGE}
- @${ECHO_CMD}
-
-.include <bsd.port.post.mk>
+USE_ZIP= no
+# OpenArena doc is too messy to bother
+NOPORTDOCS= yes
+
+Q3TOTALCONV= yes
+Q3CLIENT= openarena
+Q3SERVER= oa_ded
+Q3TOOLS=
+Q3BASE= baseoa
+Q3DIR= ${DATADIR}
+
+.include "../ioquake3/Makefile"
diff --git a/games/openarena/Makefile.include b/games/openarena/Makefile.include
new file mode 100644
index 000000000000..a0a0b848c472
--- /dev/null
+++ b/games/openarena/Makefile.include
@@ -0,0 +1,23 @@
+PKGNAMEPREFIX?= openarena-
+OADIR?= ${PREFIX}/share/openarena
+DATADIR?= ${OADIR}/${OABASE}
+OABASE?= baseoa
+
+PLIST_SUB+= OADIR="share/openarena"
+
+.if ! ${OABASE:Mbaseoa}
+RUN_DEPENDS+= ${OABIN}:${PORTSDIR}/games/openarena
+.endif
+
+.include <bsd.port.pre.mk>
+
+# You only need server or client.
+.if exists(${PREFIX}/bin/oa_ded)
+OABIN= oa_ded
+.elif exists(${PREFIX}/bin/openarena)
+OABIN= openarena
+.else
+OABIN= openarena-smp
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/games/openarena/distinfo b/games/openarena/distinfo
index 49659f3e10c1..3224bdd8bace 100644
--- a/games/openarena/distinfo
+++ b/games/openarena/distinfo
@@ -1,9 +1,3 @@
-MD5 (ioq3-src-oa.tar.bz2) = a43cd6044de919dd2af94fb4159ddb47
-SHA256 (ioq3-src-oa.tar.bz2) = b51a890a525e9a7c49fe9fe3808ec6bba0738014d008078bbd28244934d145b9
-SIZE (ioq3-src-oa.tar.bz2) = 3539582
-MD5 (oa070.zip) = 739548bfc5dc1d129d20c0f67d54df48
-SHA256 (oa070.zip) = f420978abedd701744de06bdba3a7c3624175aafb891101f77887581ce8576a1
-SIZE (oa070.zip) = 263123081
-MD5 (oa071-patch.zip) = 5fa31998009f8241ad3ded93eb81e701
-SHA256 (oa071-patch.zip) = 7f6162b04cf624fea73083430b7a5c7a15826fe3ce536c2280448f403fd3561a
-SIZE (oa071-patch.zip) = 12287230
+MD5 (openarena-engine-source-0.8.x-15.tar.bz2) = 868a6d0dca1579a0cbc05192b9cdc70d
+SHA256 (openarena-engine-source-0.8.x-15.tar.bz2) = fc274de6cc4a6a880618d38267d4453fdb3125fc8587b08e6ea51dd137a88650
+SIZE (openarena-engine-source-0.8.x-15.tar.bz2) = 8080759
diff --git a/games/openarena/files/patch-Makefile b/games/openarena/files/patch-Makefile
index ca726586ad3d..9e052bf5e580 100644
--- a/games/openarena/files/patch-Makefile
+++ b/games/openarena/files/patch-Makefile
@@ -1,70 +1,6 @@
---- Makefile.orig Sat Jul 7 02:50:34 2007
-+++ Makefile Sun Jul 29 04:30:00 2007
-@@ -26,11 +26,19 @@
- endif
- endif
-
--BUILD_CLIENT =
--BUILD_CLIENT_SMP =
--BUILD_SERVER =
--BUILD_GAME_SO =
--BUILD_GAME_QVM =
-+BUILD_CLIENT?=0
-+BUILD_CLIENT_SMP?=0
-+BUILD_GAME_QVM?=0
-+BUILD_GAME_SO?=0
-+BUILD_SERVER?=0
-+HAVE_VM_COMPILED?=false
-+USE_CODEC_VORBIS?=0
-+USE_LOCAL_HEADERS?=0
-+USE_OPENAL?=0
-+USE_OPENAL_DLOPEN?=0
-+USE_OPTIMIZED_CFLAGS?=0
-+USE_SDL_AUDIO?=0
-+USE_SDL_VIDEO?=0
-
- #############################################################################
- #
-@@ -88,18 +96,6 @@
- endif
- export USE_CCACHE
-
--ifndef USE_SDL
--USE_SDL=1
--endif
--
--ifndef USE_OPENAL
--USE_OPENAL=1
--endif
--
--ifndef USE_OPENAL_DLOPEN
--USE_OPENAL_DLOPEN=0
--endif
--
- ifndef USE_CURL
- USE_CURL=1
- endif
-@@ -112,18 +108,10 @@
- endif
- endif
-
--ifndef USE_CODEC_VORBIS
--USE_CODEC_VORBIS=1
--endif
--
--ifndef USE_LOCAL_HEADERS
--USE_LOCAL_HEADERS=1
--endif
--
- #############################################################################
-
- BD=$(BUILD_DIR)/debug-$(PLATFORM)-$(ARCH)
--BR=$(BUILD_DIR)/release-$(PLATFORM)-$(ARCH)
-+BR=$(BUILD_DIR)/release
- CDIR=$(MOUNT_DIR)/client
- SDIR=$(MOUNT_DIR)/server
- RDIR=$(MOUNT_DIR)/renderer
-@@ -498,18 +486,12 @@
+--- Makefile.orig 2010-04-24 23:29:15.000000000 +0200
++++ Makefile 2010-05-22 00:10:08.000000000 +0200
+@@ -561,45 +561,22 @@
ifeq ($(PLATFORM),freebsd)
@@ -73,265 +9,118 @@
- else #default to i386
- ARCH=i386
- endif #alpha test
--
-+ BASE_CFLAGS = -DARCH='\"$(ARCH)\"' -DLIBDIR='\"$(LIBDIR)\"' -I$(LOCALBASE)/include -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
++ # system integration
++ ifndef DEFAULT_LIBDIR
++ DEFAULT_LIBDIR = /usr/local/lib/ioquake3
++ endif
-- BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
+- BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
+- -DUSE_ICON
++ # flags
++ BASE_CFLAGS = $(shell env MACHINE_ARCH=$(ARCH) make -f /dev/null -VCFLAGS) \
++ -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
++ -DDEFAULT_LIBDIR=\\\"$(DEFAULT_LIBDIR)\\\" \
++ -DUSE_ICON -DMAP_ANONYMOUS=MAP_ANON
+ CLIENT_CFLAGS = $(SDL_CFLAGS)
+ SERVER_CFLAGS =
++ HAVE_VM_COMPILED = true
+
+- ifeq ($(USE_OPENAL),1)
+- CLIENT_CFLAGS += -DUSE_OPENAL
+- ifeq ($(USE_OPENAL_DLOPEN),1)
+- CLIENT_CFLAGS += -DUSE_OPENAL_DLOPEN
+- endif
+- endif
+-
+- ifeq ($(USE_CODEC_VORBIS),1)
+- CLIENT_CFLAGS += -DUSE_CODEC_VORBIS
+- endif
+-
+- OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer
-
-- GL_CFLAGS = -I/usr/X11R6/include
-+ GL_CFLAGS = -I$(LOCALBASE)/include
-
- DEBUG_CFLAGS=$(BASE_CFLAGS) -g
-+ RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -pipe
-
- ifeq ($(USE_OPENAL),1)
- BASE_CFLAGS += -DUSE_OPENAL=1
-@@ -522,47 +504,61 @@
- BASE_CFLAGS += -DUSE_CODEC_VORBIS=1
- endif
-
-- ifeq ($(USE_SDL),1)
-- BASE_CFLAGS += $(shell sdl-config --cflags) -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1
-+ ifeq ($(USE_SDL_AUDIO),1)
-+ BASE_CFLAGS += $(shell $(SDL_CONFIG) --cflags)
-+ else
-+ ifeq ($(USE_SDL_VIDEO),1)
-+ BASE_CFLAGS += $(shell $(SDL_CONFIG) --cflags)
-+ endif
- endif
-
- ifeq ($(ARCH),axp)
-- CC=gcc
- BASE_CFLAGS += -DNO_VM_COMPILED
-- RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -ffast-math -funroll-loops \
-- -fomit-frame-pointer -fexpensive-optimizations
+- OPTIMIZEVM += -fexpensive-optimizations
- else
- ifeq ($(ARCH),i386)
-- CC=gcc
-- RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -mtune=pentiumpro \
-- -march=pentium -fomit-frame-pointer -pipe -ffast-math \
-- -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
-- -funroll-loops -fstrength-reduce
+- OPTIMIZEVM += -mtune=pentiumpro \
+- -march=pentium -pipe -falign-loops=2 -falign-jumps=2 \
+- -falign-functions=2 -funroll-loops -fstrength-reduce
- HAVE_VM_COMPILED=true
- else
- BASE_CFLAGS += -DNO_VM_COMPILED
-+ ifeq ($(USE_SDL_AUDIO),1)
-+ BASE_CFLAGS += -DUSE_SDL_SOUND=1
- endif
-+
-+ ifeq ($(USE_SDL_VIDEO),1)
-+ BASE_CFLAGS += -DUSE_SDL_VIDEO=1
-+ endif
-+
-+ ifeq ($(USE_OPTIMIZED_CFLAGS),1)
-+ RELEASE_CFLAGS+=-O3 -ffast-math -funroll-loops -fomit-frame-pointer \
-+ -fexpensive-optimizations
-+ ifeq ($(ARCH),i386)
-+ RELEASE_CFLAGS+=-falign-loops=2 -falign-jumps=2 -falign-functions=2 \
-+ -fstrength-reduce
-+ endif
-+ endif
-+
-+ ifneq ($(HAVE_VM_COMPILED),true)
-+ BASE_CFLAGS += -DNO_VM_COMPILED
- endif
+- endif
+- endif
+-
+- OPTIMIZE = $(OPTIMIZEVM) -ffast-math
++ OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer -ffast-math
++ OPTIMIZE = $(OPTIMIZEVM)
SHLIBEXT=so
SHLIBCFLAGS=-fPIC
- SHLIBLDFLAGS=-shared $(LDFLAGS)
+@@ -613,17 +590,40 @@
-- THREAD_LDFLAGS=-lpthread
-+ THREAD_LDFLAGS=$(PTHREAD_LIBS)
- # don't need -ldl (FreeBSD)
- LDFLAGS=-lm
+ CLIENT_LIBS += $(SDL_LIBS) -lGL
-- CLIENT_LDFLAGS =
-+ CLIENT_LDFLAGS = -L$(LOCALBASE)/lib
++ # optional features/libraries
+ ifeq ($(USE_OPENAL),1)
+- ifneq ($(USE_OPENAL_DLOPEN),1)
++ CLIENT_CFLAGS += -DUSE_OPENAL
++ ifeq ($(USE_OPENAL_DLOPEN),1)
++ CLIENT_CFLAGS += -DUSE_OPENAL_DLOPEN
+ CLIENT_LIBS += $(THREAD_LIBS) -lopenal
+ endif
+ endif
-- ifeq ($(USE_SDL),1)
-- CLIENT_LDFLAGS += $(shell sdl-config --libs)
-+ ifeq ($(USE_SDL_AUDIO),1)
-+ CLIENT_LDFLAGS += $(shell $(SDL_CONFIG) --libs)
- else
-- CLIENT_LDFLAGS += -L/usr/X11R6/$(LIB) -lGL -lX11 -lXext -lXxf86dga -lXxf86vm
-+ ifeq ($(USE_SDL_VIDEO),1)
-+ CLIENT_LDFLAGS += $(shell $(SDL_CONFIG) --libs)
++ ifeq ($(USE_CURL),1)
++ CLIENT_CFLAGS += -DUSE_CURL
++ ifeq ($(USE_CURL_DLOPEN),1)
++ CLIENT_CFLAGS += -DUSE_CURL_DLOPEN
++ CLIENT_LIBS += -lcurl
+ endif
+ endif
+
-+ ifneq ($(USE_SDL_VIDEO),1)
-+ CLIENT_LDFLAGS += -L$(LOCALBASE)/lib -lGL -lX11 -lXext -lXxf86dga -lXxf86vm
- endif
-
- ifeq ($(USE_OPENAL),1)
-+ CLIENT_LDFLAGS += $(THREAD_LDFLAGS)
- ifneq ($(USE_OPENAL_DLOPEN),1)
-- CLIENT_LDFLAGS += $(THREAD_LDFLAGS) -lopenal
-+ CLIENT_LDFLAGS += -lopenal
+ ifeq ($(USE_CODEC_VORBIS),1)
+- ifeq ($(PLATFORM),mingw32)
+- CLIENT_LIBS += $(LIBSDIR)/win32/libvorbisfile.a $(LIBSDIR)/win32/libvorbis.a $(LIBSDIR)/win32/libogg.a
+- else
+- CLIENT_LIBS += -lvorbisfile -lvorbis -logg
++ CLIENT_CFLAGS += -DUSE_CODEC_VORBIS
++ endif
++
++ ifeq ($(USE_CODEC_VORBIS),1)
++ CLIENT_LIBS += -lvorbisfile -lvorbis -logg
++ endif
++
++ # cross-compiling tweaks
++ ifeq ($(ARCH),i386)
++ ifeq ($(CROSS_COMPILING),1)
++ BASE_CFLAGS += -m32
++ endif
++ endif
++ ifeq ($(ARCH),amd64)
++ ifeq ($(CROSS_COMPILING),1)
++ BASE_CFLAGS += -m64
endif
endif
-@@ -570,7 +566,6 @@
- CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
- endif
-
--
- else # ifeq freebsd
-
- #############################################################################
-@@ -725,24 +720,25 @@
- TARGETS =
-
- ifneq ($(BUILD_SERVER),0)
-- TARGETS += $(B)/ioq3ded.$(ARCH)$(BINEXT)
-+ TARGETS += $(B)/ioq3ded$(BINEXT)
- endif
-
- ifneq ($(BUILD_CLIENT),0)
-- TARGETS += $(B)/ioquake3.$(ARCH)$(BINEXT)
-- ifneq ($(BUILD_CLIENT_SMP),0)
-- TARGETS += $(B)/ioquake3-smp.$(ARCH)$(BINEXT)
-- endif
-+ TARGETS += $(B)/ioquake3$(BINEXT)
-+endif
-+
-+ifneq ($(BUILD_CLIENT_SMP),0)
-+ TARGETS += $(B)/ioquake3-smp$(BINEXT)
- endif
-
- ifneq ($(BUILD_GAME_SO),0)
- TARGETS += \
-- $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) \
-- $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) \
-- $(B)/baseq3/ui$(ARCH).$(SHLIBEXT) \
-- $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \
-- $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \
-- $(B)/missionpack/ui$(ARCH).$(SHLIBEXT)
-+ $(B)/baseq3/cgame.$(SHLIBEXT) \
-+ $(B)/baseq3/qagame.$(SHLIBEXT) \
-+ $(B)/baseq3/ui.$(SHLIBEXT) \
-+ $(B)/missionpack/cgame.$(SHLIBEXT) \
-+ $(B)/missionpack/qagame.$(SHLIBEXT) \
-+ $(B)/missionpack/ui.$(SHLIBEXT)
- endif
-
- ifneq ($(BUILD_GAME_QVM),0)
-@@ -804,11 +800,11 @@
- $(MAKE) targets B=$(BD) CFLAGS="$(CFLAGS) $(DEBUG_CFLAGS) $(DEPEND_CFLAGS)"
-
- build_release: B=$(BR)
--build_release: makedirs tools
-+build_release: makedirs
- $(MAKE) targets B=$(BR) CFLAGS="$(CFLAGS) $(RELEASE_CFLAGS) $(DEPEND_CFLAGS)"
-
- #Build both debug and release builds
--all:build_debug build_release
-+all:build_release
-
- targets: $(TARGETS)
-
-@@ -1022,13 +1018,10 @@
- ifeq ($(ARCH),i386)
- Q3OBJ += $(B)/client/vm_x86.o
+@@ -1555,6 +1555,9 @@
+ ifeq ($(ARCH),x86_64)
+ Q3OBJ += $(B)/client/vm_x86_64.o $(B)/client/vm_x86_64_assembler.o
endif
-- ifeq ($(ARCH),x86)
-- Q3OBJ += $(B)/client/vm_x86.o
-- endif
-- ifeq ($(ARCH),x86_64)
+ ifeq ($(ARCH),amd64)
- Q3OBJ += $(B)/client/vm_x86_64.o
- endif
-- ifeq ($(ARCH),ppc)
-+ ifeq ($(ARCH),powerpc)
- Q3OBJ += $(B)/client/$(VM_PPC).o
++ Q3OBJ += $(B)/client/vm_x86_64.o $(B)/client/vm_x86_64_assembler.o
++ endif
+ ifeq ($(ARCH),ppc)
+ Q3OBJ += $(B)/client/vm_powerpc.o $(B)/client/vm_powerpc_asm.o
endif
- endif
-@@ -1075,10 +1068,10 @@
- $(B)/client/sdl_glimp_smp.o
- endif
-
--$(B)/ioquake3.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(LIBSDLMAIN)
-+$(B)/ioquake3$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(LIBSDLMAIN)
- $(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(CLIENT_LDFLAGS) $(LDFLAGS) $(LIBSDLMAIN)
-
--$(B)/ioquake3-smp.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
-+$(B)/ioquake3-smp$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
- $(CC) -o $@ $(Q3OBJ) $(Q3POBJ_SMP) $(CLIENT_LDFLAGS) \
- $(THREAD_LDFLAGS) $(LDFLAGS) $(LIBSDLMAIN)
-
-@@ -1378,18 +1371,15 @@
- ifeq ($(ARCH),i386)
- Q3DOBJ += $(B)/ded/vm_x86.o
+@@ -1720,6 +1723,9 @@
+ ifeq ($(ARCH),x86_64)
+ Q3DOBJ += $(B)/ded/vm_x86_64.o $(B)/ded/vm_x86_64_assembler.o
endif
-- ifeq ($(ARCH),x86)
-- Q3DOBJ += $(B)/ded/vm_x86.o
-- endif
-- ifeq ($(ARCH),x86_64)
+ ifeq ($(ARCH),amd64)
- Q3DOBJ += $(B)/ded/vm_x86_64.o
- endif
-- ifeq ($(ARCH),ppc)
-+ ifeq ($(ARCH),powerpc)
- Q3DOBJ += $(B)/ded/$(VM_PPC).o
++ Q3DOBJ += $(B)/ded/vm_x86_64.o $(B)/ded/vm_x86_64_assembler.o
++ endif
+ ifeq ($(ARCH),ppc)
+ Q3DOBJ += $(B)/ded/vm_powerpc.o $(B)/ded/vm_powerpc_asm.o
endif
- endif
-
--$(B)/ioq3ded.$(ARCH)$(BINEXT): $(Q3DOBJ)
-+$(B)/ioq3ded$(BINEXT): $(Q3DOBJ)
- $(CC) -o $@ $(Q3DOBJ) $(LDFLAGS)
-
- $(B)/ded/sv_bot.o : $(SDIR)/sv_bot.c; $(DO_DED_CC)
-@@ -1506,7 +1496,7 @@
- Q3CGOBJ = $(Q3CGOBJ_) $(B)/baseq3/cgame/cg_syscalls.o
- Q3CGVMOBJ = $(Q3CGOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm
-
--$(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) : $(Q3CGOBJ)
-+$(B)/baseq3/cgame.$(SHLIBEXT) : $(Q3CGOBJ)
- $(CC) $(SHLIBLDFLAGS) -o $@ $(Q3CGOBJ)
-
- $(B)/baseq3/vm/cgame.qvm: $(Q3CGVMOBJ) $(CGDIR)/cg_syscalls.asm
-@@ -1547,7 +1537,7 @@
- MPCGOBJ = $(MPCGOBJ_) $(B)/missionpack/cgame/cg_syscalls.o
- MPCGVMOBJ = $(MPCGOBJ_:%.o=%.asm) $(B)/missionpack/game/bg_lib.asm
-
--$(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) : $(MPCGOBJ)
-+$(B)/missionpack/cgame$(SHLIBEXT) : $(MPCGOBJ)
- $(CC) $(SHLIBLDFLAGS) -o $@ $(MPCGOBJ)
-
- $(B)/missionpack/vm/cgame.qvm: $(MPCGVMOBJ) $(CGDIR)/cg_syscalls.asm
-@@ -1597,7 +1587,7 @@
- Q3GOBJ = $(Q3GOBJ_) $(B)/baseq3/game/g_syscalls.o
- Q3GVMOBJ = $(Q3GOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm
-
--$(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) : $(Q3GOBJ)
-+$(B)/baseq3/qagame.$(SHLIBEXT) : $(Q3GOBJ)
- $(CC) $(SHLIBLDFLAGS) -o $@ $(Q3GOBJ)
-
- $(B)/baseq3/vm/qagame.qvm: $(Q3GVMOBJ) $(GDIR)/g_syscalls.asm
-@@ -1645,7 +1635,7 @@
- MPGOBJ = $(MPGOBJ_) $(B)/missionpack/game/g_syscalls.o
- MPGVMOBJ = $(MPGOBJ_:%.o=%.asm) $(B)/missionpack/game/bg_lib.asm
-
--$(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) : $(MPGOBJ)
-+$(B)/missionpack/qagame.$(SHLIBEXT) : $(MPGOBJ)
- $(CC) $(SHLIBLDFLAGS) -o $@ $(MPGOBJ)
-
- $(B)/missionpack/vm/qagame.qvm: $(MPGVMOBJ) $(GDIR)/g_syscalls.asm
-@@ -1705,7 +1695,7 @@
- Q3UIOBJ = $(Q3UIOBJ_) $(B)/missionpack/ui/ui_syscalls.o
- Q3UIVMOBJ = $(Q3UIOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm
-
--$(B)/baseq3/ui$(ARCH).$(SHLIBEXT) : $(Q3UIOBJ)
-+$(B)/baseq3/ui.$(SHLIBEXT) : $(Q3UIOBJ)
- $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3UIOBJ)
-
- $(B)/baseq3/vm/ui.qvm: $(Q3UIVMOBJ) $(UIDIR)/ui_syscalls.asm
-@@ -1730,7 +1720,7 @@
- MPUIOBJ = $(MPUIOBJ_) $(B)/missionpack/ui/ui_syscalls.o
- MPUIVMOBJ = $(MPUIOBJ_:%.o=%.asm) $(B)/baseq3/game/bg_lib.asm
-
--$(B)/missionpack/ui$(ARCH).$(SHLIBEXT) : $(MPUIOBJ)
-+$(B)/missionpack/ui.$(SHLIBEXT) : $(MPUIOBJ)
- $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPUIOBJ)
-
- $(B)/missionpack/vm/ui.qvm: $(MPUIVMOBJ) $(UIDIR)/ui_syscalls.asm
diff --git a/games/openarena/files/patch-code__qcommon__common.c b/games/openarena/files/patch-code__qcommon__common.c
deleted file mode 100644
index 6899017952d4..000000000000
--- a/games/openarena/files/patch-code__qcommon__common.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./code/qcommon/common.c.orig Wed Apr 26 08:27:12 2006
-+++ ./code/qcommon/common.c Sun Jun 11 17:26:26 2006
-@@ -25,6 +25,7 @@
- #include "qcommon.h"
- #include <setjmp.h>
- #ifndef _WIN32
-+#include <sys/types.h>
- #include <netinet/in.h>
- #include <sys/stat.h> // umask
- #else
diff --git a/games/openarena/files/patch-code__qcommon__q_platform.h b/games/openarena/files/patch-code__qcommon__q_platform.h
deleted file mode 100644
index 543c8d5710ed..000000000000
--- a/games/openarena/files/patch-code__qcommon__q_platform.h
+++ /dev/null
@@ -1,15 +0,0 @@
---- ./code/qcommon/q_platform.h.orig Tue Dec 27 16:46:01 2005
-+++ ./code/qcommon/q_platform.h Sun Jun 11 17:26:26 2006
-@@ -176,11 +176,7 @@
- #define ID_INLINE inline
- #define PATH_SEP '/'
-
--#ifdef __i386__
--#define ARCH_STRING "i386"
--#elif defined __axp__
--#define ARCH_STRING "alpha"
--#endif
-+#define ARCH_STRING ARCH
-
- #if BYTE_ORDER == BIG_ENDIAN
- #define Q3_BIG_ENDIAN
diff --git a/games/openarena/files/patch-code__unix__linux_glimp.c b/games/openarena/files/patch-code__unix__linux_glimp.c
deleted file mode 100644
index 00304f2b5be1..000000000000
--- a/games/openarena/files/patch-code__unix__linux_glimp.c
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./code/unix/linux_glimp.c.orig Sun Apr 30 11:32:56 2006
-+++ ./code/unix/linux_glimp.c Sun Jun 11 17:26:26 2006
-@@ -631,8 +631,14 @@
-
- dx = ((int)event.xmotion.x - mwx);
- dy = ((int)event.xmotion.y - mwy);
-- mx += dx;
-- my += dy;
-+ if (abs(dx) > 1)
-+ mx += dx * 2;
-+ else
-+ mx += dx;
-+ if (abs(dy) > 1)
-+ my += dy * 2;
-+ else
-+ my += dy;
-
- mwx = event.xmotion.x;
- mwy = event.xmotion.y;
diff --git a/games/openarena/files/patch-code__unix__unix_main.c b/games/openarena/files/patch-code__unix__unix_main.c
deleted file mode 100644
index f539c9649a95..000000000000
--- a/games/openarena/files/patch-code__unix__unix_main.c
+++ /dev/null
@@ -1,31 +0,0 @@
---- ./code/unix/unix_main.c.orig Sun Feb 26 18:22:12 2006
-+++ ./code/unix/unix_main.c Sun Jun 11 17:26:26 2006
-@@ -774,6 +774,7 @@
- char curpath[MAX_OSPATH];
- char fname[MAX_OSPATH];
- char *basepath;
-+ char *libpath;
- char *homepath;
- char *pwdpath;
- char *cdpath;
-@@ -789,14 +790,19 @@
- // TODO: use fs_searchpaths from files.c
- pwdpath = Sys_Cwd();
- basepath = Cvar_VariableString( "fs_basepath" );
-+ libpath = LIBDIR;
- homepath = Cvar_VariableString( "fs_homepath" );
- cdpath = Cvar_VariableString( "fs_cdpath" );
- gamedir = Cvar_VariableString( "fs_game" );
-
-- libHandle = try_dlopen(pwdpath, gamedir, fname, fqpath);
-+ if(!libHandle && homepath)
-+ libHandle = try_dlopen(pwdpath, gamedir, fname, fqpath);
-
- if(!libHandle && homepath)
- libHandle = try_dlopen(homepath, gamedir, fname, fqpath);
-+
-+ if(!libHandle && basepath)
-+ libHandle = try_dlopen(libpath, gamedir, fname, fqpath);
-
- if(!libHandle && basepath)
- libHandle = try_dlopen(basepath, gamedir, fname, fqpath);
diff --git a/games/openarena/files/patch-code_client_snd_openal.c b/games/openarena/files/patch-code_client_snd_openal.c
deleted file mode 100644
index 4aaf9f885242..000000000000
--- a/games/openarena/files/patch-code_client_snd_openal.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- code/client/snd_openal.c.orig 2009-12-26 18:20:08.000000000 +0100
-+++ code/client/snd_openal.c 2009-12-26 18:20:27.000000000 +0100
-@@ -1676,7 +1676,7 @@
- #elif defined(MACOS_X)
- #define ALDRIVER_DEFAULT "/System/Library/Frameworks/OpenAL.framework/OpenAL"
- #else
--#define ALDRIVER_DEFAULT "libopenal.so.0"
-+#define ALDRIVER_DEFAULT "libopenal.so"
- #endif
-
- /*
diff --git a/games/openarena/files/patch-feature-DEFAULT_LIBDIR b/games/openarena/files/patch-feature-DEFAULT_LIBDIR
new file mode 100644
index 000000000000..e7f0416b9b7c
--- /dev/null
+++ b/games/openarena/files/patch-feature-DEFAULT_LIBDIR
@@ -0,0 +1,128 @@
+--- code/qcommon/files.c.orig 2009-11-09 23:41:42.205886000 +0100
++++ code/qcommon/files.c 2010-02-16 15:26:18.000000000 +0100
+@@ -242,6 +242,7 @@
+ #endif
+
+ static cvar_t *fs_basepath;
++static cvar_t *fs_libpath;
+ static cvar_t *fs_basegame;
+ static cvar_t *fs_gamedirvar;
+ static searchpath_t *fs_searchpaths;
+@@ -2807,6 +2808,8 @@
+ fs_debug = Cvar_Get( "fs_debug", "0", 0 );
+ fs_basepath = Cvar_Get ("fs_basepath", Sys_DefaultInstallPath(), CVAR_INIT );
+ fs_basegame = Cvar_Get ("fs_basegame", "", CVAR_INIT );
++ fs_libpath = Cvar_Get ("fs_libpath", Sys_DefaultLibPath(), CVAR_INIT );
++
+ homePath = Sys_DefaultHomePath();
+ if (!homePath || !homePath[0]) {
+ homePath = fs_basepath->string;
+--- code/qcommon/qcommon.h.orig 2010-02-15 17:20:33.680787000 +0100
++++ code/qcommon/qcommon.h 2010-02-16 15:26:18.000000000 +0100
+@@ -1085,6 +1085,9 @@
+ char *Sys_DefaultAppPath(void);
+ #endif
+
++void Sys_SetDefaultLibPath(const char *path);
++char *Sys_DefaultLibPath(void);
++
+ void Sys_SetDefaultHomePath(const char *path);
+ char *Sys_DefaultHomePath(void);
+ const char *Sys_TempPath(void);
+--- code/sys/sys_main.c.orig 2010-02-15 17:20:33.680787000 +0100
++++ code/sys/sys_main.c 2010-02-16 15:26:18.000000000 +0100
+@@ -49,6 +49,7 @@
+
+ static char binaryPath[ MAX_OSPATH ] = { 0 };
+ static char installPath[ MAX_OSPATH ] = { 0 };
++static char libPath[ MAX_OSPATH ] = { 0 };
+
+ /*
+ =================
+@@ -95,6 +96,29 @@
+
+ /*
+ =================
++Sys_SetDefaultLibPath
++=================
++*/
++void Sys_SetDefaultLibPath(const char *path)
++{
++ Q_strncpyz(libPath, path, sizeof(libPath));
++}
++
++/*
++=================
++Sys_DefaultLibPath
++=================
++*/
++char *Sys_DefaultLibPath(void)
++{
++ if (*libPath)
++ return libPath;
++ else
++ return Sys_Cwd();
++}
++
++/*
++=================
+ Sys_DefaultAppPath
+ =================
+ */
+@@ -435,6 +459,7 @@
+ Used to load a development dll instead of a virtual machine
+ #1 look in fs_homepath
+ #2 look in fs_basepath
++#3 look in fs_libpath
+ =================
+ */
+ void *Sys_LoadDll( const char *name, char *fqpath ,
+@@ -445,6 +470,7 @@
+ void (*dllEntry)( intptr_t (*syscallptr)(intptr_t, ...) );
+ char fname[MAX_OSPATH];
+ char *basepath;
++ char *libpath;
+ char *homepath;
+ char *gamedir;
+
+@@ -454,6 +480,7 @@
+
+ // TODO: use fs_searchpaths from files.c
+ basepath = Cvar_VariableString( "fs_basepath" );
++ libpath = Cvar_VariableString( "fs_libpath" );
+ homepath = Cvar_VariableString( "fs_homepath" );
+ gamedir = Cvar_VariableString( "fs_game" );
+
+@@ -462,6 +489,9 @@
+ if(!libHandle && basepath)
+ libHandle = Sys_TryLibraryLoad(basepath, gamedir, fname, fqpath);
+
++ if(!libHandle && libpath)
++ libHandle = Sys_TryLibraryLoad(libpath, gamedir, fname, fqpath);
++
+ if(!libHandle) {
+ Com_Printf ( "Sys_LoadDll(%s) failed to load library\n", name );
+ return NULL;
+@@ -515,6 +545,14 @@
+ # endif
+ #endif
+
++#ifndef DEFAULT_LIBDIR
++# ifdef MACOS_X
++# define DEFAULT_LIBDIR Sys_StripAppBundle(Sys_BinaryPath())
++# else
++# define DEFAULT_LIBDIR Sys_BinaryPath()
++# endif
++#endif
++
+ /*
+ =================
+ Sys_SigHandler
+@@ -589,6 +627,7 @@
+ Sys_ParseArgs( argc, argv );
+ Sys_SetBinaryPath( Sys_Dirname( argv[ 0 ] ) );
+ Sys_SetDefaultInstallPath( DEFAULT_BASEDIR );
++ Sys_SetDefaultLibPath( DEFAULT_LIBDIR );
+
+ // Concatenate the command line for passing to Com_Init
+ for( i = 1; i < argc; i++ )
diff --git a/games/openarena/pkg-descr b/games/openarena/pkg-descr
index a3fb8984bf8b..70060600293b 100644
--- a/games/openarena/pkg-descr
+++ b/games/openarena/pkg-descr
@@ -1,10 +1,7 @@
-OpenArena is an open-source content package for Quake III Arena licensed under
-the GPL, effectively creating a free stand-alone game. You do not need Quake
-III Arena to play this game.
-
-Bots were added starting in 0.6.0. They will spout taunts and everything!
-
-Concepts would be loose, so don't expect a remake of Klesk in his original
-Klesk form, or any direct remakes of any map/weapon/model.
+OpenArena is a community-produced deathmatch FPS based on GPL idTech3
+technology.
+There are many game types supported including Free For All, Capture The Flag,
+Domination, Overload, Harvester, and more. There are 17 unique player models to
+choose from and 12 weapons.
WWW: http://openarena.ws/
diff --git a/games/openarena/pkg-message b/games/openarena/pkg-message
index 581f11640146..ced414088790 100644
--- a/games/openarena/pkg-message
+++ b/games/openarena/pkg-message
@@ -1,10 +1,6 @@
==============================================================================
-If you have sound problems with SDL try setting the variable "s_sdlSpeed" to
-"44100". It will be saved to the configuration file.
-
-If you have sound problems with OpenAL recompile without it. Also the OPENAL
-option causes the program to omit restoring gamma and mouse sensivity after
-exitting.
+Should the game freeze when entering a match, try to change the value of
+com_zoneMegs (e.g. to 48).
==============================================================================
diff --git a/games/openarena/pkg-plist b/games/openarena/pkg-plist
index a7b941999668..8a4c880148a9 100644
--- a/games/openarena/pkg-plist
+++ b/games/openarena/pkg-plist
@@ -1,23 +1,8 @@
-%%DEDICATED%%bin/openarenaded
-%%CLIENT%%bin/openarena
-%%SMP%%bin/openarena-smp
-%%DATADIR%%/baseoa/pak0.pk3
-%%DATADIR%%/baseoa/pak1-maps.pk3
-%%DATADIR%%/baseoa/pak2-players-mature.pk3
-%%DATADIR%%/baseoa/pak2-players.pk3
-%%DATADIR%%/baseoa/pak3-music.pk3
-%%DATADIR%%/baseoa/pak4-textures.pk3
-%%DATADIR%%/baseoa/pak5-TA.pk3
-%%DATADIR%%/baseoa/pak6-misc.pk3
-%%DATADIR%%/baseoa/pak7-patch.pk3
-%%GAMELIBS%%%%LIBDIR%%/baseoa/cgame.so
-%%GAMELIBS%%%%LIBDIR%%/baseoa/qagame.so
-%%GAMELIBS%%%%LIBDIR%%/baseoa/ui.so
-%%GAMELIBS%%%%LIBDIR%%/missionpack/cgame.so
-%%GAMELIBS%%%%LIBDIR%%/missionpack/qagame.so
-%%GAMELIBS%%%%LIBDIR%%/missionpack/ui.so
-@dirrm %%DATADIR%%/baseoa
-@dirrm %%DATADIR%%
-%%GAMELIBS%%@dirrm %%LIBDIR%%/missionpack
+%%DEDICATED%%bin/oa_ded%%BINSUFFIX%%
+%%CLIENT%%bin/openarena%%BINSUFFIX%%
+%%SMP%%bin/openarena-smp%%BINSUFFIX%%
+%%GAMELIBS%%%%LIBDIR%%/baseoa/cgame%%ARCH%%.so
+%%GAMELIBS%%%%LIBDIR%%/baseoa/qagame%%ARCH%%.so
+%%GAMELIBS%%%%LIBDIR%%/baseoa/ui%%ARCH%%.so
%%GAMELIBS%%@dirrm %%LIBDIR%%/baseoa
%%GAMELIBS%%@dirrm %%LIBDIR%%