diff --git a/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml b/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml
index 27daa8dc..ce25fabc 100644
--- a/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml
+++ b/LDP/howto/docbook/HOWTO-INDEX/appsSect.sgml
@@ -177,7 +177,7 @@ LinuxGL-QuakeWorld-mini-HOWTO,
LinuxGL (GLX) QuakeWorld Client compile mini-HOWTO
-Updated: August 2000.
+Updated: January 2001.
How to get the OpenGL/GLX Linux
QuakeWorld client compiled and working on systems with standard
OpenGL hardware acceleration support.
diff --git a/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml b/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml
index 2a2bf873..d1408748 100644
--- a/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml
+++ b/LDP/howto/docbook/HOWTO-INDEX/miniChap.sgml
@@ -655,7 +655,7 @@ LinuxGL-QuakeWorld-mini-HOWTO,
LinuxGL (GLX) QuakeWorld Client compile mini-HOWTO
-Updated: August 2000.
+Updated: January 2001.
How to get the OpenGL/GLX Linux
QuakeWorld client compiled and working on systems with standard
OpenGL hardware acceleration support.
diff --git a/LDP/howto/docbook/LinuxGL-QuakeWorld-mini-HOWTO.sgml b/LDP/howto/docbook/LinuxGL-QuakeWorld-mini-HOWTO.sgml
index 52b3e0f8..ae67455c 100644
--- a/LDP/howto/docbook/LinuxGL-QuakeWorld-mini-HOWTO.sgml
+++ b/LDP/howto/docbook/LinuxGL-QuakeWorld-mini-HOWTO.sgml
@@ -1,7 +1,7 @@
-
+
-
+
LinuxGL (GLX) QuakeWorld Client compile mini-HOWTO
LinuxGL-QuakeWorld-mini-HOWTO
@@ -19,8 +19,8 @@
- v1.1
- Aug 28, 2000
+ 1.2
+ 2000-01-04
rbe
@@ -33,7 +33,7 @@
-
+
Introduction
@@ -59,7 +59,7 @@
- http://www.comptechnews.com/~reaster/linux-glxqw.txt
+ http://www.linuxdoc.org/HOWTO/mini/LinuxGL-QuakeWorld-mini-HOWTO/
@@ -140,14 +140,28 @@
-
- The Procedure
+
+ QuakeWorld clients
+
+
+ If you'd like a ready to compile distribution of QuakeWorld that
+ has this HOWTO's procedures performed on it already, then you
+ can download it at:
+
+
+
+ http://www.comptechnews.com/~reaster/index.html#games
+
+
+
+ Otherwise ...
+
-It seems that the glqwcl.glx binary available at least
+It seems that the glqwcl.glx binary available at least
at www.quakeworld.net
-in the package qwcl-2.30-glibc-i386-unknown-linux2.0.tar.gz
-is not compiled properly since on startup, it looks
+in the package qwcl-2.30-glibc-i386-unknown-linux2.0.tar.gz
+is not compiled properly since on startup, it looks
for libglide2x.so.
@@ -185,93 +199,21 @@ QuakeWorld clients come in several flavors:
-
- Again, this miniHOWTO is about getting the glqwcl.glx working with
- XFree86 4.x DRI.
-
-
-
-
-
-
-
- Download the Quake source code, q1source.zip, from
- ftp://ftp.idsoftware.com/idstuff/source/q1source.zip.
- This zip file contains all versions of Quake1/QuakeWorld.
-
-
- After compiling, you will get version:
-
-
- LinuxGL (0.98) QuakeWorld 2.40 (as of this writing, Aug 19, 2000)
-
-
-
-
- You will also need to download the Mesa 3D Library source code from
- http://mesa3d.sourceforge.net/.
- MesaLib-3.3.tar.gz is good.
-
-
- cd /usr/src
- tar -xvzf MesaLib-3.3.tar.gz
-
- This puts the mesa source at /usr/src/Mesa-3.3
-
-
-
-
- Build the mesa source code:
-
-
- cd /usr/src/Mesa-3.3
- ./configure --prefix=/usr
- make
-
-
-
-
- Depending on your setup, you might not need to actually install Mesa.
- If you are going to install Mesa, be aware that Mesa will install over
- the libGL.* files you already have in /usr/lib. Those libGL.* files
- are likely to be your hardware accelerated versions. Installing Mesa
- will also overwrite the glx include files in /usr/X11R6/include/GL.
- Therefore, before you install Mesa, make a backup of /usr/lib/libGL.*
- and /usr/X11R6/include/GL/glx*.h.
-
-
+
+
+
- To install it:
-
-
- make install
-
-
-
-
- After you install the full Mesa package, you might need to reinstall
- your hardware accelerated libGL files or restore the backup suggested
- above. You also need to restore the glx include files. You can
- restore the glx include files either by restoring the files that
- you backed up as suggested above, or if you have the source to X
- still lying around, then you can copy the include files from
- the source: cp xc/include/GL/*.h /usr/X11R6/include/GL
+ This HOWTO is only concerned with getting the glqwcl.glx working with
+ XFree86 4.x with GLX.
-
+
+
- By installing the Mesa libs, you will get the libGLU* files and
- associated include files installed on your system. XFree86 4.0.1
- appeared to be lacking libGLU* and its include files. GLU, the
- OpenGL Utility library is a standard part of a normal OpenGL
- installation that is missing from XFree86 4 and may not come with
- vendor-specific OpenGL drivers either.
+ This HOWTO assumes you have a working OpenGL libGL/libglx installation!
-
-
- XFree86 4.0.1 appears to have included only the core of Mesa 3.3,
- which at the time was/is a development version of MesaGL. The
- direct rendering infrusture (DRI) of XFree86 is based on Mesa code.
-
+
+
+
If you happen to have an Nvidia card and are interested in a
@@ -279,18 +221,28 @@ QuakeWorld clients come in several flavors:
assortment of OpenGL libraries (GLU, glut, Qt, OpenGL man pages),
then see the NVIDIA-OpenGL-Configuration_miniHOWTO at:
-
+
- http://www.comptechnews.com/~reaster/nvgl.txt
+ http://www.linuxdoc.org/HOWTO/mini/Nvidia-OpenGL-Configuration-mini-HOWTO/
-
-
- You can check the LDP for it also.
+
+
+
+Download the Quake source
+
+
+ Download the Quake source code, q1source.zip, from
+ ftp://ftp.idsoftware.com/idstuff/source/q1source.zip.
+ This zip file contains all versions of Quake1/QuakeWorld.
+
+
+ After compiling (read on first!), you will get version:
+
+
+ LinuxGL (0.98) QuakeWorld 2.40 (as of this writing, Aug 19, 2000)
+
-
-
-
Make a directory to hold the quake source:
@@ -302,142 +254,1137 @@ QuakeWorld clients come in several flavors:
cp Makefile.Linux Makefile
-
-
-
+
+
+
+Modify the Makefile
+
- Edit the Makefile:
+ The Makefile can use cleaning up and the removal of all
+ Mesa references since the GLX version does not need it.
+ Rather than provide a line by line account of what
+ I did to change the original Makefile, the modified Makefile
+ that I used, and a patch against the original Makefile.Linux
+ to obtain my version of the Makefile, are provided below.
-
+
-
+all: build_release
-
- Make sure that you have a symlink from /usr/X11 to
- /usr/X11R6. When installing X yourself, you might forget to
- do that and some source code and programs look for X there:
-
+targets: $(TARGETS)
- cd /usr
- ln -s X11R6 X11
-
-
+#############################################################################
+# SERVER
+#############################################################################
+
+QWSV_OBJS = \
+ $(BUILDDIR)/server/pr_cmds.o \
+ $(BUILDDIR)/server/pr_edict.o \
+ $(BUILDDIR)/server/pr_exec.o \
+ $(BUILDDIR)/server/sv_init.o \
+ $(BUILDDIR)/server/sv_main.o \
+ $(BUILDDIR)/server/sv_nchan.o \
+ $(BUILDDIR)/server/sv_ents.o \
+ $(BUILDDIR)/server/sv_send.o \
+ $(BUILDDIR)/server/sv_move.o \
+ $(BUILDDIR)/server/sv_phys.o \
+ $(BUILDDIR)/server/sv_user.o \
+ $(BUILDDIR)/server/sv_ccmds.o \
+ $(BUILDDIR)/server/world.o \
+ $(BUILDDIR)/server/sys_unix.o \
+ $(BUILDDIR)/server/model.o \
+ $(BUILDDIR)/server/cmd.o \
+ $(BUILDDIR)/server/common.o \
+ $(BUILDDIR)/server/crc.o \
+ $(BUILDDIR)/server/cvar.o \
+ $(BUILDDIR)/server/mathlib.o \
+ $(BUILDDIR)/server/md4.o \
+ $(BUILDDIR)/server/zone.o \
+ $(BUILDDIR)/server/pmove.o \
+ $(BUILDDIR)/server/pmovetst.o \
+ $(BUILDDIR)/server/net_chan.o \
+ $(BUILDDIR)/server/net_udp.o
+
+$(BUILDDIR)/qwsv : $(QWSV_OBJS)
+ $(CC) $(CFLAGS) -o $@ $(QWSV_OBJS) $(LDFLAGS)
+
+$(BUILDDIR)/server/pr_cmds.o : $(SERVER_DIR)/pr_cmds.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/pr_edict.o : $(SERVER_DIR)/pr_edict.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/pr_exec.o : $(SERVER_DIR)/pr_exec.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_init.o : $(SERVER_DIR)/sv_init.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_main.o : $(SERVER_DIR)/sv_main.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_nchan.o : $(SERVER_DIR)/sv_nchan.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_ents.o : $(SERVER_DIR)/sv_ents.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_send.o : $(SERVER_DIR)/sv_send.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_move.o : $(SERVER_DIR)/sv_move.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_phys.o : $(SERVER_DIR)/sv_phys.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_user.o : $(SERVER_DIR)/sv_user.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sv_ccmds.o : $(SERVER_DIR)/sv_ccmds.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/world.o : $(SERVER_DIR)/world.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/sys_unix.o : $(SERVER_DIR)/sys_unix.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/model.o : $(SERVER_DIR)/model.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/cmd.o : $(CLIENT_DIR)/cmd.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/common.o : $(CLIENT_DIR)/common.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/crc.o : $(CLIENT_DIR)/crc.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/cvar.o : $(CLIENT_DIR)/cvar.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/mathlib.o : $(CLIENT_DIR)/mathlib.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/md4.o : $(CLIENT_DIR)/md4.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/zone.o : $(CLIENT_DIR)/zone.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/pmove.o : $(CLIENT_DIR)/pmove.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/pmovetst.o : $(CLIENT_DIR)/pmovetst.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/net_chan.o : $(CLIENT_DIR)/net_chan.c
+ $(DO_SERVER_CC)
+
+$(BUILDDIR)/server/net_udp.o : $(CLIENT_DIR)/net_udp.c
+ $(DO_SERVER_CC)
+
+#############################################################################
+# CLIENT
+#############################################################################
+
+QWCL_OBJS = \
+ $(BUILDDIR)/client/cl_demo.o \
+ $(BUILDDIR)/client/cl_ents.o \
+ $(BUILDDIR)/client/cl_input.o \
+ $(BUILDDIR)/client/cl_main.o \
+ $(BUILDDIR)/client/cl_parse.o \
+ $(BUILDDIR)/client/cl_pred.o \
+ $(BUILDDIR)/client/cl_tent.o \
+ $(BUILDDIR)/client/cl_cam.o \
+ $(BUILDDIR)/client/cmd.o \
+ $(BUILDDIR)/client/common.o \
+ $(BUILDDIR)/client/console.o \
+ $(BUILDDIR)/client/crc.o \
+ $(BUILDDIR)/client/cvar.o \
+ $(BUILDDIR)/client/d_edge.o \
+ $(BUILDDIR)/client/d_fill.o \
+ $(BUILDDIR)/client/d_init.o \
+ $(BUILDDIR)/client/d_modech.o \
+ $(BUILDDIR)/client/d_part.o \
+ $(BUILDDIR)/client/d_polyse.o \
+ $(BUILDDIR)/client/d_scan.o \
+ $(BUILDDIR)/client/d_sky.o \
+ $(BUILDDIR)/client/d_sprite.o \
+ $(BUILDDIR)/client/d_surf.o \
+ $(BUILDDIR)/client/d_vars.o \
+ $(BUILDDIR)/client/d_zpoint.o \
+ $(BUILDDIR)/client/draw.o \
+ $(BUILDDIR)/client/keys.o \
+ $(BUILDDIR)/client/mathlib.o \
+ $(BUILDDIR)/client/md4.o \
+ $(BUILDDIR)/client/menu.o \
+ $(BUILDDIR)/client/model.o \
+ $(BUILDDIR)/client/net_chan.o \
+ $(BUILDDIR)/client/net_udp.o \
+ $(BUILDDIR)/client/nonintel.o \
+ $(BUILDDIR)/client/pmove.o \
+ $(BUILDDIR)/client/pmovetst.o \
+ $(BUILDDIR)/client/r_aclip.o \
+ $(BUILDDIR)/client/r_alias.o \
+ $(BUILDDIR)/client/r_bsp.o \
+ $(BUILDDIR)/client/r_draw.o \
+ $(BUILDDIR)/client/r_edge.o \
+ $(BUILDDIR)/client/r_efrag.o \
+ $(BUILDDIR)/client/r_light.o \
+ $(BUILDDIR)/client/r_main.o \
+ $(BUILDDIR)/client/r_misc.o \
+ $(BUILDDIR)/client/r_part.o \
+ $(BUILDDIR)/client/r_sky.o \
+ $(BUILDDIR)/client/r_sprite.o \
+ $(BUILDDIR)/client/r_surf.o \
+ $(BUILDDIR)/client/r_vars.o \
+ $(BUILDDIR)/client/sbar.o \
+ $(BUILDDIR)/client/screen.o \
+ $(BUILDDIR)/client/skin.o \
+ $(BUILDDIR)/client/snd_dma.o \
+ $(BUILDDIR)/client/snd_mem.o \
+ $(BUILDDIR)/client/snd_mix.o \
+ $(BUILDDIR)/client/view.o \
+ $(BUILDDIR)/client/wad.o \
+ $(BUILDDIR)/client/zone.o \
+ $(BUILDDIR)/client/cd_linux.o \
+ $(BUILDDIR)/client/sys_linux.o \
+ $(BUILDDIR)/client/snd_linux.o \
+
+ QWCL_AS_OBJS = \
+ $(BUILDDIR)/client/d_copy.o \
+ $(BUILDDIR)/client/d_draw.o \
+ $(BUILDDIR)/client/d_draw16.o \
+ $(BUILDDIR)/client/d_parta.o \
+ $(BUILDDIR)/client/d_polysa.o \
+ $(BUILDDIR)/client/d_scana.o \
+ $(BUILDDIR)/client/d_spr8.o \
+ $(BUILDDIR)/client/d_varsa.o \
+ $(BUILDDIR)/client/math.o \
+ $(BUILDDIR)/client/r_aclipa.o \
+ $(BUILDDIR)/client/r_aliasa.o \
+ $(BUILDDIR)/client/r_drawa.o \
+ $(BUILDDIR)/client/r_edgea.o \
+ $(BUILDDIR)/client/r_varsa.o \
+ $(BUILDDIR)/client/snd_mixa.o \
+ $(BUILDDIR)/client/surf16.o \
+ $(BUILDDIR)/client/surf8.o \
+ $(BUILDDIR)/client/sys_dosa.o
+
+QWCL_X11_OBJS = $(BUILDDIR)/client/vid_x.o
+
+$(BUILDDIR)/qwcl.x11 : $(QWCL_OBJS) $(QWCL_AS_OBJS) $(QWCL_X11_OBJS)
+ $(CC) $(CFLAGS) -o $@ $(QWCL_OBJS) $(QWCL_AS_OBJS) $(QWCL_X11_OBJS) \
+ $(LDFLAGS) $(XLDFLAGS)
+
+$(BUILDDIR)/client/cl_demo.o : $(CLIENT_DIR)/cl_demo.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cl_ents.o : $(CLIENT_DIR)/cl_ents.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cl_input.o : $(CLIENT_DIR)/cl_input.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cl_main.o : $(CLIENT_DIR)/cl_main.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cl_parse.o : $(CLIENT_DIR)/cl_parse.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cl_pred.o : $(CLIENT_DIR)/cl_pred.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cl_tent.o : $(CLIENT_DIR)/cl_tent.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cl_cam.o : $(CLIENT_DIR)/cl_cam.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cmd.o : $(CLIENT_DIR)/cmd.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/common.o : $(CLIENT_DIR)/common.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/console.o : $(CLIENT_DIR)/console.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/crc.o : $(CLIENT_DIR)/crc.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cvar.o : $(CLIENT_DIR)/cvar.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_edge.o : $(CLIENT_DIR)/d_edge.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_fill.o : $(CLIENT_DIR)/d_fill.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_init.o : $(CLIENT_DIR)/d_init.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_modech.o : $(CLIENT_DIR)/d_modech.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_part.o : $(CLIENT_DIR)/d_part.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_polyse.o : $(CLIENT_DIR)/d_polyse.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_scan.o : $(CLIENT_DIR)/d_scan.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_sky.o : $(CLIENT_DIR)/d_sky.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_sprite.o : $(CLIENT_DIR)/d_sprite.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_surf.o : $(CLIENT_DIR)/d_surf.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_vars.o : $(CLIENT_DIR)/d_vars.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_zpoint.o : $(CLIENT_DIR)/d_zpoint.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/draw.o : $(CLIENT_DIR)/draw.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/keys.o : $(CLIENT_DIR)/keys.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/mathlib.o : $(CLIENT_DIR)/mathlib.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/md4.o : $(CLIENT_DIR)/md4.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/menu.o : $(CLIENT_DIR)/menu.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/model.o : $(CLIENT_DIR)/model.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/net_chan.o : $(CLIENT_DIR)/net_chan.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/net_udp.o : $(CLIENT_DIR)/net_udp.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/nonintel.o : $(CLIENT_DIR)/nonintel.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/pmove.o : $(CLIENT_DIR)/pmove.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/pmovetst.o : $(CLIENT_DIR)/pmovetst.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_aclip.o : $(CLIENT_DIR)/r_aclip.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_alias.o : $(CLIENT_DIR)/r_alias.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_bsp.o : $(CLIENT_DIR)/r_bsp.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_draw.o : $(CLIENT_DIR)/r_draw.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_edge.o : $(CLIENT_DIR)/r_edge.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_efrag.o : $(CLIENT_DIR)/r_efrag.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_light.o : $(CLIENT_DIR)/r_light.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_main.o : $(CLIENT_DIR)/r_main.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_misc.o : $(CLIENT_DIR)/r_misc.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_part.o : $(CLIENT_DIR)/r_part.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_sky.o : $(CLIENT_DIR)/r_sky.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_sprite.o : $(CLIENT_DIR)/r_sprite.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_surf.o : $(CLIENT_DIR)/r_surf.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/r_vars.o : $(CLIENT_DIR)/r_vars.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/sbar.o : $(CLIENT_DIR)/sbar.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/screen.o : $(CLIENT_DIR)/screen.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/skin.o : $(CLIENT_DIR)/skin.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/snd_dma.o : $(CLIENT_DIR)/snd_dma.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/snd_mem.o : $(CLIENT_DIR)/snd_mem.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/snd_mix.o : $(CLIENT_DIR)/snd_mix.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/view.o : $(CLIENT_DIR)/view.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/wad.o : $(CLIENT_DIR)/wad.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/zone.o : $(CLIENT_DIR)/zone.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/cd_linux.o : $(CLIENT_DIR)/cd_linux.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/sys_linux.o : $(CLIENT_DIR)/sys_linux.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/snd_linux.o : $(CLIENT_DIR)/snd_linux.c
+ $(DO_CC)
+
+$(BUILDDIR)/client/d_copy.o : $(CLIENT_DIR)/d_copy.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/d_draw.o : $(CLIENT_DIR)/d_draw.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/d_draw16.o : $(CLIENT_DIR)/d_draw16.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/d_parta.o : $(CLIENT_DIR)/d_parta.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/d_polysa.o : $(CLIENT_DIR)/d_polysa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/d_scana.o : $(CLIENT_DIR)/d_scana.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/d_spr8.o : $(CLIENT_DIR)/d_spr8.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/d_varsa.o : $(CLIENT_DIR)/d_varsa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/math.o : $(CLIENT_DIR)/math.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/r_aclipa.o : $(CLIENT_DIR)/r_aclipa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/r_aliasa.o : $(CLIENT_DIR)/r_aliasa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/r_drawa.o : $(CLIENT_DIR)/r_drawa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/r_edgea.o : $(CLIENT_DIR)/r_edgea.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/r_varsa.o : $(CLIENT_DIR)/r_varsa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/snd_mixa.o : $(CLIENT_DIR)/snd_mixa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/surf16.o : $(CLIENT_DIR)/surf16.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/surf8.o : $(CLIENT_DIR)/surf8.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/sys_dosa.o : $(CLIENT_DIR)/sys_dosa.s
+ $(DO_AS)
+
+$(BUILDDIR)/client/vid_x.o : $(CLIENT_DIR)/vid_x.c
+ $(DO_CC)
+
+#############################################################################
+# GL CLIENT
+#############################################################################
+
+GLQWCL_OBJS = \
+ $(BUILDDIR)/glclient/cl_demo.o \
+ $(BUILDDIR)/glclient/cl_ents.o \
+ $(BUILDDIR)/glclient/cl_input.o \
+ $(BUILDDIR)/glclient/cl_main.o \
+ $(BUILDDIR)/glclient/cl_parse.o \
+ $(BUILDDIR)/glclient/cl_pred.o \
+ $(BUILDDIR)/glclient/cl_tent.o \
+ $(BUILDDIR)/glclient/cl_cam.o \
+ $(BUILDDIR)/glclient/cmd.o \
+ $(BUILDDIR)/glclient/common.o \
+ $(BUILDDIR)/glclient/console.o \
+ $(BUILDDIR)/glclient/crc.o \
+ $(BUILDDIR)/glclient/cvar.o \
+ $(BUILDDIR)/glclient/keys.o \
+ $(BUILDDIR)/glclient/mathlib.o \
+ $(BUILDDIR)/glclient/md4.o \
+ $(BUILDDIR)/glclient/menu.o \
+ $(BUILDDIR)/glclient/net_chan.o \
+ $(BUILDDIR)/glclient/net_udp.o \
+ $(BUILDDIR)/glclient/nonintel.o \
+ $(BUILDDIR)/glclient/pmove.o \
+ $(BUILDDIR)/glclient/pmovetst.o \
+ $(BUILDDIR)/glclient/r_part.o \
+ $(BUILDDIR)/glclient/sbar.o \
+ $(BUILDDIR)/glclient/skin.o \
+ $(BUILDDIR)/glclient/snd_dma.o \
+ $(BUILDDIR)/glclient/snd_mem.o \
+ $(BUILDDIR)/glclient/snd_mix.o \
+ $(BUILDDIR)/glclient/view.o \
+ $(BUILDDIR)/glclient/wad.o \
+ $(BUILDDIR)/glclient/zone.o \
+ $(BUILDDIR)/glclient/cd_linux.o \
+ $(BUILDDIR)/glclient/sys_linux.o \
+ $(BUILDDIR)/glclient/snd_linux.o \
+ \
+ $(BUILDDIR)/glclient/gl_draw.o \
+ $(BUILDDIR)/glclient/gl_mesh.o \
+ $(BUILDDIR)/glclient/gl_model.o \
+ $(BUILDDIR)/glclient/gl_ngraph.o \
+ $(BUILDDIR)/glclient/gl_refrag.o \
+ $(BUILDDIR)/glclient/gl_rlight.o \
+ $(BUILDDIR)/glclient/gl_rmain.o \
+ $(BUILDDIR)/glclient/gl_rmisc.o \
+ $(BUILDDIR)/glclient/gl_rsurf.o \
+ $(BUILDDIR)/glclient/gl_screen.o \
+ $(BUILDDIR)/glclient/gl_warp.o \
+ \
+ $(BUILDDIR)/glclient/math.o \
+ $(BUILDDIR)/glclient/snd_mixa.o \
+ $(BUILDDIR)/glclient/sys_dosa.o
+
+GLQWCL_X11_OBJS = $(BUILDDIR)/glclient/gl_vidlinuxglx.o
+
+$(BUILDDIR)/glqwcl.glx : $(GLQWCL_OBJS) $(GLQWCL_X11_OBJS)
+ $(CC) $(CFLAGS) -o $@ $(GLQWCL_OBJS) $(GLQWCL_X11_OBJS) $(LDFLAGS) $(GL_X11_LDFLAGS)
+
+$(BUILDDIR)/glclient/cl_demo.o : $(CLIENT_DIR)/cl_demo.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cl_ents.o : $(CLIENT_DIR)/cl_ents.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cl_input.o : $(CLIENT_DIR)/cl_input.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cl_main.o : $(CLIENT_DIR)/cl_main.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cl_parse.o : $(CLIENT_DIR)/cl_parse.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cl_pred.o : $(CLIENT_DIR)/cl_pred.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cl_tent.o : $(CLIENT_DIR)/cl_tent.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cl_cam.o : $(CLIENT_DIR)/cl_cam.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cmd.o : $(CLIENT_DIR)/cmd.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/common.o : $(CLIENT_DIR)/common.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/console.o : $(CLIENT_DIR)/console.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/crc.o : $(CLIENT_DIR)/crc.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cvar.o : $(CLIENT_DIR)/cvar.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/keys.o : $(CLIENT_DIR)/keys.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/mathlib.o : $(CLIENT_DIR)/mathlib.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/md4.o : $(CLIENT_DIR)/md4.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/menu.o : $(CLIENT_DIR)/menu.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/net_chan.o : $(CLIENT_DIR)/net_chan.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/net_udp.o : $(CLIENT_DIR)/net_udp.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/nonintel.o : $(CLIENT_DIR)/nonintel.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/pmove.o : $(CLIENT_DIR)/pmove.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/pmovetst.o : $(CLIENT_DIR)/pmovetst.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/r_part.o : $(CLIENT_DIR)/r_part.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/sbar.o : $(CLIENT_DIR)/sbar.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/screen.o : $(CLIENT_DIR)/screen.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/skin.o : $(CLIENT_DIR)/skin.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/snd_dma.o : $(CLIENT_DIR)/snd_dma.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/snd_mem.o : $(CLIENT_DIR)/snd_mem.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/snd_mix.o : $(CLIENT_DIR)/snd_mix.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/view.o : $(CLIENT_DIR)/view.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/wad.o : $(CLIENT_DIR)/wad.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/zone.o : $(CLIENT_DIR)/zone.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/cd_linux.o : $(CLIENT_DIR)/cd_linux.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/sys_linux.o : $(CLIENT_DIR)/sys_linux.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/snd_linux.o : $(CLIENT_DIR)/snd_linux.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_draw.o : $(CLIENT_DIR)/gl_draw.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_mesh.o : $(CLIENT_DIR)/gl_mesh.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_model.o : $(CLIENT_DIR)/gl_model.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_ngraph.o : $(CLIENT_DIR)/gl_ngraph.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_refrag.o : $(CLIENT_DIR)/gl_refrag.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_rlight.o : $(CLIENT_DIR)/gl_rlight.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_rmain.o : $(CLIENT_DIR)/gl_rmain.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_rmisc.o : $(CLIENT_DIR)/gl_rmisc.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_rsurf.o : $(CLIENT_DIR)/gl_rsurf.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_screen.o : $(CLIENT_DIR)/gl_screen.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_vidlinux.o : $(CLIENT_DIR)/gl_vidlinux.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_vidlinuxglx.o : $(CLIENT_DIR)/gl_vidlinuxglx.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/gl_warp.o : $(CLIENT_DIR)/gl_warp.c
+ $(DO_GL_CC)
+
+$(BUILDDIR)/glclient/math.o : $(CLIENT_DIR)/math.s
+ $(DO_GL_AS)
+
+$(BUILDDIR)/glclient/snd_mixa.o : $(CLIENT_DIR)/snd_mixa.s
+ $(DO_GL_AS)
+
+$(BUILDDIR)/glclient/sys_dosa.o : $(CLIENT_DIR)/sys_dosa.s
+ $(DO_GL_AS)
+
+
+#############################################################################
+# MISC
+#############################################################################
+
+clean:
+ rm -fr bin/client
+ rm -fr bin/glclient
+ rm -fr bin/server
+
+
+ This file can be copied and pasted as your Makefile to replace the
+ original Makefile/Makefile.Linux.
+
+
+
+ The following is a patch that you can apply to the original Makefile.Linux
+ if you feel like it. The command is simply:
+
+ patch Makefile.Linux Makefile.Linux.patch
+ cp Makefile.Linux Makefile
+
+ You can download it at:
+
+
+
+ http://www.comptechnews.com/~reaster/mini-HOWTO/LinuxGL-QuakeWorld-mini-HOWTO/Makefile.Linux.patch
+
+
+
+
+
Save the Makefile.
-
+
+
+
+Fix the mouse grabbing
-
Fix the mouse hide problem.
@@ -448,9 +1395,11 @@ QuakeWorld clients come in several flavors:
the middle of the screen - very annoying. I found the following simple fix in
a mail archive about glx development at:
http://lists.openprojects.net/pipermail/glx-dev/1999-October/000994.html
+
+
+ See the patch listing and the link to download it below, or you can make the changes yourself.
-
cd q1src/QW/client
edit the file: gl_vidlinuxglx.c
@@ -468,7 +1417,7 @@ QuakeWorld clients come in several flavors:
XColor dummy;
char data[1] = {0};
Cursor cursor;
-
+
/* make a blank cursor */
blank = XCreateBitmapFromData (dpy, win, data, 1, 1);
if(blank == None) fprintf(stderr, "error: out of memory.\n");
@@ -482,7 +1431,7 @@ QuakeWorld clients come in several flavors:
The 8th parameter to XGrabPointer should be changed from
"None" to "cursor" to use the blank cursor:
-
+
XGrabPointer(dpy, win,
True,
0,
@@ -493,7 +1442,7 @@ QuakeWorld clients come in several flavors:
(see: man XGrabPointer)
-
+
This fix might work for the other client builds if you make
similar changes in the appropriate *vid*.c file. As it is,
@@ -504,23 +1453,21 @@ QuakeWorld clients come in several flavors:
following patch against q1src/QW/client/gl_vidlinuxglx.c
(patch gl_vidlinuxglx.c patchfile). Just cut and paste the
contents between the begin/end patchfile lines into a file
- called patchfile (or whatever you want to call it). Save
+ called gl_vidlinuxglx.c.patch (or whatever you want to call it). Save
patchfile in the q1src/QW/client directory where
gl_vidlinuxglx.c is. Then run the command:
-
- patch gl_vidlinuxglx.c patchfile
+
+ patch gl_vidlinuxglx.c gl_vidlinuxglx.c.patch
This patch file will make gl_vidlinuxglx.c such that it doesn't have any
memory leak. You can download this patch file at:
- http://www.comptechnews.com/~reaster/gl_vidlinuxglx.c.patch.
-
+ http://www.comptechnews.com/~reaster/mini-HOWTO/LinuxGL-QuakeWorld-mini-HOWTO/gl_vidlinuxglx.c.patch.
-
*************************** begin patchfile ************************************
*** q1src-p/QW/client/gl_vidlinuxglx.c Tue Dec 21 18:45:54 1999
--- gl_vidlinuxglx.c Sat Aug 19 20:47:42 2000
@@ -630,7 +1577,7 @@ QuakeWorld clients come in several flavors:
! Pixmap blank;
! XColor dummy;
! char data[1] = {0};
-!
+!
S_Init();
Cvar_RegisterVariable (&vid_mode);
@@ -640,11 +1587,11 @@ QuakeWorld clients come in several flavors:
Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height);
vid.recalc_refdef = 1; // force a surface cache flush
-+
++
+ blank = XCreateBitmapFromData(dpy, win, data, 1, 1);
+ if(blank == None) fprintf(stderr, "error: out of memory.\n");
+ cursor = XCreatePixmapCursor(dpy, blank, blank, &dummy, &dummy, 0, 0);
-+ XFreePixmap(dpy, blank);
++ XFreePixmap(dpy, blank);
}
void Sys_SendKeyEvents(void)
@@ -652,36 +1599,35 @@ QuakeWorld clients come in several flavors:
*************************** end patchfile ************************************
-
+
- It is then handy to bind some keys at the quake console to toggle mouse
+ It is handy to bind some keys at the quake console to toggle mouse
grabbing:
-
bind q "_windowed_mouse 0"
bind w "_windowed_mouse 1"
-
-
+
+
+
+Compile!
-
Compile (finally!)
- Just run "make build_release" with no parameters from where
+ Just run make with no parameters from where
the Makefile is located:
-
cd q1src/QW
- make build_release
+ make
- If all goes well, you will have a binary,
+ If all goes well, you will have a binary,
glqwcl.glx, in the
releasei386-glibc directory.
Copy glqwcl.glx to another
@@ -690,13 +1636,16 @@ QuakeWorld clients come in several flavors:
directories you like/have - ctf, Fortress etc - to your new
quakeworld directory.
-
-
+
+
+
+Running glqwcl.glx
+
Running the game.
-
+
You might want to run it like this from XQF:
glqwcl.glx -width 1280 -height 1024
@@ -798,17 +1747,17 @@ QuakeWorld clients come in several flavors:
Light effects.
-
+
At the console, you can try turning on and off the flashblend function
and see which lighting effects you prefer:
-
+
gl_flashblend 0
- gl_flashblend 1
+ gl_flashblend 1
-
+
-
+
When it is on (1), you may notice colored light effects around flags
and special items. In this mode, you may NOT see flashes from
@@ -816,24 +1765,16 @@ QuakeWorld clients come in several flavors:
toggling flashblend may depend on your specific OpenGL installation.
-
+
When it is off (0), there may not be any COLORED light, but otherwise
all light effects work. Flags and special items have a glow around
them and light up surrounding surfaces. Weapons flash when fired and
rockets light up everything around them as they travel.
-
-
-
HAVE FUN!
-
-
-
-
-