mirror of
https://git.code.sf.net/p/quake/newtree
synced 2024-11-21 19:51:18 +00:00
Automake stuff. Don't blame me for this. ;)
You will need to run automake --add-missing to create the necessary symlinks for install-sh, etc.
This commit is contained in:
parent
04a4e65a9a
commit
7e5af715bb
15 changed files with 1816 additions and 0 deletions
1
AUTHORS
Normal file
1
AUTHORS
Normal file
|
@ -0,0 +1 @@
|
|||
The QuakeForge Project <quake-devel@lists.sourceforge.net>
|
182
INSTALL
Normal file
182
INSTALL
Normal file
|
@ -0,0 +1,182 @@
|
|||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a file
|
||||
`config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
|
||||
The file `configure.in' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.in' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not supports the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a time
|
||||
in the source code directory. After you have installed the package for
|
||||
one architecture, use `make distclean' before reconfiguring for another
|
||||
architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=PATH' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' can not figure out
|
||||
automatically, but needs to determine by the type of host the package
|
||||
will run on. Usually `configure' can figure that out, but if it prints
|
||||
a message saying it can not guess the host type, give it the
|
||||
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name with three fields:
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the host type.
|
||||
|
||||
If you are building compiler tools for cross-compiling, you can also
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for and the `--build=TYPE' option to select the type of
|
||||
system on which you are compiling the package.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Operation Controls
|
||||
==================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
|
||||
`--help'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options.
|
2
Makefile.am
Normal file
2
Makefile.am
Normal file
|
@ -0,0 +1,2 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
SUBDIRS = source
|
204
NEWS
Normal file
204
NEWS
Normal file
|
@ -0,0 +1,204 @@
|
|||
NEWS for the QuakeForge project
|
||||
-------------------------------
|
||||
|
||||
QuakeForge 0.2
|
||||
|
||||
08 Mar 2000 - Massive news updates
|
||||
The engine is actually working and working well for perhaps the
|
||||
first time since we branched off stable. A long overdue news
|
||||
update is in order. These things have been added to GL targets:
|
||||
|
||||
Skyboxes
|
||||
Put a a Quake2 skybox in mydir/gfx/env and -game mydir,
|
||||
set r_skyname to the base name of the sky (for the one
|
||||
released on the MegaTF website, use r_skyname night for
|
||||
example), load a map with a sky in it, and set r_sky 1.
|
||||
|
||||
You must reload a map for a new r_skyname to take effect.
|
||||
The software renderer WILL support this hopefully soon.
|
||||
|
||||
Volumetric fog
|
||||
For testing only. As implemented now it uses the stencil
|
||||
buffer (very slow for most of us) and borrows the water
|
||||
brush since we don't have a fog brush yet. raptor suggests
|
||||
r_volfog 0.0009 and r_wateralpha 0.3 to test. You'll need
|
||||
watervis'd maps.
|
||||
|
||||
Water Ripples
|
||||
We reported earlier that setting r_waterripple to 1 made a
|
||||
wave effect. Actually, if you want a wave effect you can
|
||||
see, you'd better set it at least to 5. Looks good with
|
||||
the volfog settings mentioned above. raptor plans to put
|
||||
r_waterripple into the software renderer.
|
||||
|
||||
Rodents with wheels
|
||||
If you've got one, you'll be pleased to hear that -x11 and
|
||||
-glx now support them the same way -svga does. You need to
|
||||
have ZAxisMapping set in your XF86Config properly.
|
||||
|
||||
26 Jan 2000 - Waterwarp bug fixed
|
||||
The waterwarp bug has been fixed, set r_waterwarp 1 to use it.
|
||||
|
||||
|
||||
QuakeForge 0.1.0
|
||||
|
||||
22 Jan 2000 - cl_sbar and cl_hudswap in uquake
|
||||
The cvars cl_sbar and cl_hudswap noe work in uquake just like they
|
||||
do in qw-client. In uquake, cl_sbar defaults to 1 to satisfy the
|
||||
least-surprise principle. Set it to 0 if you want a qw-client like
|
||||
HUD.
|
||||
|
||||
22 Jan 2000 - changes to command line option -game [REMOVED!]
|
||||
You may now specify multiple game directories with -game. If for
|
||||
example you wanted to use the original registered game with MegaTF
|
||||
on a new style binary you would use -game id1,megatf. It does work
|
||||
with traditional style binaries and you may specify as many dirs as
|
||||
you like seperated by commas.
|
||||
|
||||
One caveat: Most mods were designed to be the only one in use, it
|
||||
may be a Bad Thing to mix certain mods with other mods.
|
||||
|
||||
NOTE: This feature has been removed because it can seriously cause
|
||||
confusion to a game mod. The proper way to override part of
|
||||
a game is to use different fs_basepath and fs_sharepath.
|
||||
|
||||
19 Jan 2000 - changes to cvar r_fog
|
||||
Fog color is once again white. The r_fog cvar is now a control for
|
||||
the fog density rather than a simple toggle control. Eric Windisch
|
||||
recommends setting r_fog to .0005 if you're going to use it.
|
||||
|
||||
19 Jan 2000 - removed cvar r_mirroralpha
|
||||
This was a cheap hack which affected one texture on one map of the
|
||||
entire game. It also wasn't working right, so it's been removed.
|
||||
|
||||
19 Jan 2000 - time cheats revisited
|
||||
The final word in detecting time/speed cheating is here at long
|
||||
last! Still catches an occasional person who is "not cheating", but
|
||||
as it turns out when it does catch such a person they technically
|
||||
are cheating.
|
||||
|
||||
This seems to be caused by dodgy cmos clocks used in many machines
|
||||
on the market. If the server occasionally claims you seem to be
|
||||
cheating, try installing some sort of ntp program to synchronize
|
||||
your clock periodically against a time server. If this does not
|
||||
seem to fix the problem, we'd like to know about it.
|
||||
|
||||
18 Jan 2000 - cvar show_fps
|
||||
show_fps 1 now works in uquake as well as qw-client. No more need
|
||||
to use timedemo to check performance! Much more accurate in showing
|
||||
where performance is good and where it isn't.
|
||||
|
||||
16 Jan 2000 - new ./configure option: --enable-newstyle
|
||||
Use this option when you run ./configure if you wish to use a few
|
||||
QuakeForge defaults which are a bit different than Id Software used,
|
||||
but do not change the gameplay.
|
||||
|
||||
Currenly all this does is use "base" instead of "id1" for the
|
||||
default place to look for your game data.
|
||||
|
||||
11 Jan 2000 - New cvar: r_waterripple
|
||||
When set to 1 this will create a small wave effect under the GL
|
||||
renderer.
|
||||
|
||||
09 Jan 2000 - Preliminary IPv6 support
|
||||
Support exists in QuakeForge for the use of IPv6. It's not ready
|
||||
for prime time yet. Still, it deserves mention.
|
||||
|
||||
09 Jan 2000 - gl_ztrick default changed
|
||||
Since this seems not to work more places than it does at this point,
|
||||
the default for the cvar gl_ztrick has been changed from 1 to 0 in
|
||||
the glx target. This value is saved to your config so if it works
|
||||
for you just set it to 1.
|
||||
|
||||
08 Jan 2000 - Mouse wheel support
|
||||
Preliminary support for the wheels found on some mice has been added
|
||||
to the Linux SVGALib target. To use it bind MHWHEELDOWN and
|
||||
MHWHEELUP to whatever you want to use the wheel for.
|
||||
|
||||
07 Jan 2000 - Options menu changes
|
||||
A few things were added to the options menu in some targets such as
|
||||
an option for fullscreen and whether or not to use the mouse.
|
||||
|
||||
06 Jan 2000 - Output cleanups
|
||||
The use of CR and LF in names is a "feature" Id Software clearly
|
||||
didn't intend. General mailing list consensus is that unlike other
|
||||
unintended features (rocket jumps for example), this "feature" has
|
||||
no real legitimate use. qw-server now replaces CR's and LF's with
|
||||
underscores.
|
||||
|
||||
You will no longer see [e1] or similar crap sent to stdout. These
|
||||
characters are now translated to the nearest ASCII characters,
|
||||
resulting in much nicer-looking output.
|
||||
|
||||
06 Jan 2000 - PackFile/Findfile messages to stdout removed
|
||||
The PackFile and FindFile messages previously sent to stdout no
|
||||
longer are. If you wish to see them again for some reason, set the
|
||||
developer cvar to 1.
|
||||
|
||||
05 Jan 2000 - Preliminary time cheat detection code
|
||||
Preliminary code to detect clients attempting various time related
|
||||
cheats has been added. Some issues persist.
|
||||
|
||||
05 Jan 2000 - GL fullbright texture support [REMOVED]
|
||||
The GL renderer now supports fullbright textures, though this causes
|
||||
a noticable impact on performance. Use the new cmdline option
|
||||
-noglow to disable it if this bugs you.
|
||||
|
||||
NOTE: This was removed for now because it didn't work quite right
|
||||
and -noglow did not in fact actually disable it properly.
|
||||
|
||||
02 Jan 2000 - registered game check removed
|
||||
The check for a copy of the registered pak files has largely been
|
||||
removed since it no longer makes a whole lot of sense with all the
|
||||
talk of free complete TC's (total conversions).
|
||||
|
||||
A very simple check for pop.txt (found only in the registered pak
|
||||
files) remains to set the cvar registered to 1 if necessary,
|
||||
allowing the start map to know whether or not to allow you through
|
||||
the gates leading to episodes 2-4.
|
||||
|
||||
02 Jan 2000 - crosshairs
|
||||
qw-client's crosshair 2 is now supported in uquake.
|
||||
|
||||
A new (for now) GL-renderer-only experimental crosshair 3 has been
|
||||
added. It's obeys the crosshaircolor cvar. No timeframe on porting
|
||||
it to the software renderers yet, but it will happen eventually.
|
||||
|
||||
02 Jan 2000 - Removed cvar
|
||||
gl_reporttjunctions did nothing at all, removed.
|
||||
|
||||
01 Jan 2000 - Changed cvar
|
||||
In uquake, the chasecam cvar is now cl_chasecam just like it is in
|
||||
qw-client.
|
||||
|
||||
01 Jan 2000 - Preliminary volumetric fog
|
||||
QuakeForge now has preliminary support for volumetric fog. The cvar
|
||||
r_fog can be set to 1 to try it out.
|
||||
|
||||
30 Dec 1999 - CVS tree changes
|
||||
We now use autoheader and autoconf. If you checkout/update your
|
||||
tree from CVS you're going to need to run ./bootstrap now to
|
||||
perform all the necessary black voodoo needed to allow you to run
|
||||
./configure as normal. This should not be necessary for releases,
|
||||
only for the CVS tree and CVS snapshots.
|
||||
|
||||
29 Dec 1999 - Known bug in sound init fixed
|
||||
A bug which caused QF to segfault if sound could not be initialized
|
||||
has been fixed. If sound can not be initialized, you will now
|
||||
simply not hear any.
|
||||
|
||||
29 Dec 1999 - Autoconf support
|
||||
QuakeForge now uses autoconf! Run ./configure --help and have a
|
||||
look at the options available in case something isn't detected or
|
||||
you wish to enable or disable certain compile-time options.
|
||||
|
||||
25 Dec 1999 - Keyboard bindings now support keypad keys
|
||||
The numeric keypad keys found on many keyboards may now be bound to
|
||||
functions. The names for these keys are (in PC style layout):
|
||||
|
||||
KP_NUMLCK KP_DIVIDE KP_MULTIPLY KP_MINUS
|
||||
KP_HOME KP_UPARROW KP_PGUP
|
||||
KP_LEFTARROW KP_5 KP_RIGHTARROW KP_PLUS
|
||||
KP_END KP_DOWNARROW KP_PGDN
|
||||
KP_INS KP_DEL KP_ENTER
|
||||
|
284
README
Normal file
284
README
Normal file
|
@ -0,0 +1,284 @@
|
|||
QuakeForge - Release Notes
|
||||
Copyright (C) 1996-1997 Id Software, Inc.
|
||||
Copyright (C) 1999,2000 contributors of the QuakeForge Project
|
||||
Please see the file "AUTHORS" for a list of contributors
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to:
|
||||
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
See file COPYING for license details.
|
||||
|
||||
Quake(R) and QuakeWorld(R) are registered trademarks of Id Software,
|
||||
Inc. The NIN logo is a registered trademark licensed to Nothing
|
||||
Interactive, Inc. All other trademarks are the property of their
|
||||
respective owners
|
||||
|
||||
|
||||
Table of Contents
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
1 Special Thanks
|
||||
2 System Requirements
|
||||
3 Compiling and Running QuakeForge
|
||||
4 Platform-Specific Issues
|
||||
5 Errata and Known Bugs
|
||||
6 Troubleshooting
|
||||
7 Technical Support
|
||||
8 Joystick Notes
|
||||
9 Tested Systems
|
||||
|
||||
|
||||
1 Special Thanks
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The QuakeForge Project would like to thank Id Software, Inc. for writing
|
||||
and releasing Quake under the GNU GPL. We'd like to thank John Carmack
|
||||
and Dave Kirsch in particular for the support they have provided to us
|
||||
and to the Free Software community as a whole.
|
||||
|
||||
We would also like to thank the following organizations for their
|
||||
contributions to QuakeForge:
|
||||
|
||||
VA Linux Systems, Inc.
|
||||
3Dfx Interactive, Inc.
|
||||
|
||||
And last but certainly not least, we would like to thank every single
|
||||
person who has contributed even one line of code, documentation, or
|
||||
other support to the QuakeForge project.
|
||||
|
||||
Without all of you, we would not be where we are right now.
|
||||
|
||||
Id Software, Inc. thanks MPath Interactive and Gandalf Technology for
|
||||
their help and support.
|
||||
|
||||
If you'd like to contribute in any way to the QuakeForge project, please
|
||||
contact our mailing list at quake-devel@lists.sourceforge.net.
|
||||
|
||||
|
||||
2 System Requirements
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* A Raster capable display. ;-)
|
||||
* 16 megabytes of memory beyond operating system footprint.
|
||||
* A Floating-point processor. While not strictly required, QuakeForge
|
||||
uses a lot of floating-point math, so a FPU is highly recommended.
|
||||
* 10MB of free hard disk space to build all targets. In addition to the
|
||||
base system, you will require game data files. For the default game
|
||||
("Quake"), you will need either the shareware or registered version of
|
||||
Quake.
|
||||
|
||||
|
||||
3 Compiling and Running QuakeForge
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Please read the INSTALL file for more information on compiling.
|
||||
|
||||
Autoconf 2.13 or later and automake 1.3 or later are required to use
|
||||
the bootstrap script, which creates the "configure" script.
|
||||
|
||||
After you have compiled successfully, you must download the shareware
|
||||
version of Quake 1 to play. Insert the proper binaries in the same
|
||||
directory as the unpacked shareware files, and run.
|
||||
|
||||
We are currently working on a free replacement for the Quake game data
|
||||
files.
|
||||
|
||||
|
||||
4 Platform-Specific Issues
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section discusses issues that affect only certain operating
|
||||
platforms.
|
||||
|
||||
4.1 DOS
|
||||
|
||||
If you experience page faults while running Quarterdeck's QDPMI DPMI
|
||||
server, this is caused by a bug in QDPMI. Workarounds: Remove QDPMI
|
||||
from CONFIG.SYS, issue the command QDPMI OFF before running QuakeForge,
|
||||
or get the update patch for QDPMI from Quarterdeck. You may be running
|
||||
QDPMI without knowing it if you have QEMM installed, because it can be
|
||||
installed as part of the QEMM installation.
|
||||
|
||||
4.2 Linux
|
||||
|
||||
SVGALib-using targets (-svga and -3dfx) can't be started from within X.
|
||||
We are aware of the problem, and if you can figure out the reason, we'd
|
||||
appreciate a patch, PLEASE! As a workaround, you can use "open" to start
|
||||
those targets from within X. (e.g. "open -s -- qw-client-svga")
|
||||
|
||||
Some 3Dfx Voodoo-based 3D accelerators may have issues with the way
|
||||
QuakeForge uses the "3dfxgl" minidriver to interface to the Glide
|
||||
library.
|
||||
|
||||
Video boards based on the Riva
|
||||
128/128ZX/TNT/TNT2/TNT2 Ultra/Vanta/GeForce 256 chipsets from nVidia
|
||||
Corp. using the latest (as of 13 Jan 2000) nVidia OpenGL drivers may
|
||||
have problems with transparency. Under some conditions, these drivers
|
||||
may lock the X Window System server, possibly rendering the system
|
||||
unusable. The currently-recommended drivers for video cards with Riva
|
||||
128/128ZX/TNT/TNT2/TNT2 Ultra chipsets are those from the Utah GLX
|
||||
project, located at http://utah-glx.sourceforge.net/ -- for the Vanta
|
||||
and GeForce 256 chipsets, there is no suggested hardware-accelerated
|
||||
OpenGL alternative at this time. We believe the bug to be in nVidia's
|
||||
drivers, because our code seems to work under other OpenGL
|
||||
implementations.
|
||||
|
||||
4.4 Windows 95/98/Millennium
|
||||
|
||||
Currently, we are unable to determine the status of the Windows-based
|
||||
targets of QuakeForge. Because of our move to GNU Autoconf and the
|
||||
dearth of "proper" GNU tools available on the Windows platform, our
|
||||
build system may not work properly on Windows. We are working on
|
||||
solutions for this problem.
|
||||
|
||||
4.5 Windows NT/2000
|
||||
|
||||
For the most part, issues for Windows 9x-based operating environments
|
||||
will be similar. However, because of numerous differences in the way
|
||||
Windows NT and Windows 9x operate, these systems may have specific
|
||||
issues.
|
||||
|
||||
5 Errata and Known Bugs
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Problem: After running the X11 target my keyboard repeat turns off! How
|
||||
do I turn it back on?
|
||||
Solution: xset r on
|
||||
|
||||
Problem: The screen flickers once about every other frame when using GL
|
||||
Solution: Not all GL implementations support a performance hack which is
|
||||
used by the GL renderer allowing it to avoid clearing the
|
||||
Z-buffer. The console command "gl_ztrick 0" fixes this
|
||||
problem.
|
||||
|
||||
Problem: Zombies can sometimes get "stuck" in the ground. They can be
|
||||
heard but not killed making it impossible to get 100% on the
|
||||
current level.
|
||||
Solution: None found yet.
|
||||
|
||||
Problem: It is possible for players to sometimes get stuck in a room or
|
||||
wall, much like the zombies mentioned above.
|
||||
Solution: The "kill" console command will un-stick you, but it has the
|
||||
unfortunate side effect of killing you in the process (hence
|
||||
the command's name.) It is a good idea to save your games
|
||||
often.
|
||||
|
||||
Problem: Sometimes during a game the player's view will not center
|
||||
properly. The end result is that the player view is looking
|
||||
up toward the ceiling while walking.
|
||||
Solution: Use of freelook (mouse or keyboard) may solve this problem, as
|
||||
will exiting the level or the "kill" console command.
|
||||
|
||||
|
||||
6 Troubleshooting
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If QuakeForge fails to start up, or has problems not addressed elsewhere
|
||||
in the documentation, try the -safe command line switch, which disables
|
||||
a number of parts of QuakeForge that can be problems if there are
|
||||
hardware or configuration problems. The -safe command line switch is
|
||||
equivalent to -stdvid, -nosound, -nonet, and -nocdaudio together. Those
|
||||
four switches do the following:
|
||||
|
||||
-stdvid disables VESA video modes
|
||||
-nosound disables sound card support
|
||||
-nonet disables network card support
|
||||
-nocdaudio disables CD audio support
|
||||
|
||||
If -safe makes the problem go away, try using each of the switches
|
||||
individually to isolate the area in which you're experiencing the
|
||||
problem, then either correct the configuration or hardware problem or
|
||||
play QuakeForge with that functionality disabled.
|
||||
|
||||
|
||||
7 Technical Support
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Please do not contact Id Software, Inc. regarding technical support
|
||||
issues related to QuakeForge. QuakeForge is heavily modified from the
|
||||
original Quake source release and Id Software does not support these
|
||||
modifications.
|
||||
|
||||
Visit the QuakeForge project's webpage for more information on technical
|
||||
support, bugs reports, and help at: http://www.quakeforge.net/
|
||||
|
||||
Thank you.
|
||||
|
||||
|
||||
8 Joystick notes
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Your joystick must be plugged in when QuakeForge is launched.
|
||||
|
||||
If you have a joystick plugged in, but do not wish QuakeForge to try to
|
||||
use it, just add the -nojoy option to the QuakeForge command line.
|
||||
|
||||
You may disable joystick reads from the QuakeForge console with the
|
||||
"joystick 0" command.
|
||||
|
||||
There are default configuration bindings for joystick buttons.
|
||||
|
||||
If your joystick or interface card reports three or four buttons and you
|
||||
only have two, use the QuakeForge console command "joybuttons 2".
|
||||
|
||||
The "mlook" and "sidestep" commands work with a joystick exactly as they
|
||||
do for a mouse, as does the "invert mouse up/down" menu option.
|
||||
|
||||
|
||||
9 Tested Systems
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Processors tested:
|
||||
AMD Athlon
|
||||
AMD K6-2
|
||||
Apple/IBM/Motorola PowerPC
|
||||
Compaq/Digital Alpha 21x64
|
||||
IBM Power3
|
||||
Intel Pentium
|
||||
Intel Pentium II
|
||||
Intel Pentium III
|
||||
MIPS R10000
|
||||
Sun UltraSPARC
|
||||
SGI Indigo 2
|
||||
|
||||
Operating systems tested:
|
||||
Linux 2.x
|
||||
FreeBSD
|
||||
Solaris
|
||||
SGI Irix
|
||||
IBM AIX 4.x
|
||||
Compaq/Digital Tru64 Unix
|
||||
Windows 98
|
||||
Windows NT
|
||||
|
||||
Video cards tested (On Intel-based systems):
|
||||
3Dfx Voodoo Graphics (Linux)
|
||||
3Dfx Voodoo 2 (Linux)
|
||||
3Dfx Voodoo 3 3000 (Linux)
|
||||
Creative Labs Graphics Blaster RivaTNT (Linux)
|
||||
Diamond Stealth 2000 PRO (Linux)
|
||||
Matrox G200 (Linux)
|
||||
Matrox G400 (Linux)
|
||||
STB Velocity 4400 RivaTNT (Linux)
|
||||
|
||||
Please send user testimonials via e-mail to the QuakeForge users mailing list,
|
||||
located at:
|
||||
|
||||
"Quake-User" <quake-user@lists.sourceforge.net>
|
||||
|
||||
Visit http://www.quakeforge.net/ to find out more about subscribing to our
|
||||
mailing lists and for more information.
|
45
RPM/Makefile.am
Normal file
45
RPM/Makefile.am
Normal file
|
@ -0,0 +1,45 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
bin_PROGRAMS= qf_server qf_client_ggi qf_client_sdl qf_client_svga \
|
||||
qf_client_x11 qf_client_3dfx qf_client_glx
|
||||
|
||||
common_SOURCES= net_chan.c net_com.c net_udp.c pmove.c pmovetst.c zone.c \
|
||||
mdfour.c mathlib.c math.S cvar.c crc.c common.c model.c cmd.c
|
||||
|
||||
server_SOURCES= pr_cmds.c pr_edict.c pr_exec.c sv_init.c sv_main.c sv_misc.c \
|
||||
sv_model.c sv_nchan.c sv_ents.c sv_send.c sv_move.c sv_phys.c \
|
||||
sv_user.c sv_ccmds.c world.c worlda.S sys_unix.c sv_cvar.c
|
||||
|
||||
client_SOURCES= cl_cmd.c cl_cvar.c cl_demo.c cl_ents.c cl_input.c cl_main.c \
|
||||
cl_math.S cl_misc.c cl_parse.c cl_pred.c cl_tent.c cl_cam.c \
|
||||
snd_linux.c sys_linux.c cd_linux.c r_view.c wad.c snd_dma.c \
|
||||
snd_mem.c snd_mix.c snd_mixa.S skin.c sbar.c nonintel.c \
|
||||
menu.c keys.c console.c sys_x86.S
|
||||
|
||||
soft_SOURCES= cl_model.c cl_trans.c d_edge.c d_fill.c d_init.c d_modech.c \
|
||||
d_part.c d_polyse.c d_scan.c d_sky.c d_sprite.c d_surf.c \
|
||||
d_vars.c d_zpoint.c draw.c r_aclip.c r_alias.c r_bsp.c \
|
||||
r_draw.c r_edge.c r_efrag.c r_light.c r_main.c r_misc.c \
|
||||
r_part.c r_sky.c r_sprite.c r_surf.c r_vars.c sw_view.c \
|
||||
screen.c d_copy.S d_draw.S d_draw16.S d_parta.S d_polysa.S \
|
||||
d_scana.S d_spr8.S d_varsa.S r_aclipa.S r_aliasa.S r_drawa.S \
|
||||
r_edgea.S r_varsa.S surf16.S surf8.S
|
||||
|
||||
ogl_SOURCES= gl_draw.c gl_mesh.c gl_model.c gl_ngraph.c gl_part.c \
|
||||
gl_refrag.c gl_rlight.c gl_rmain.c gl_rmisc.c gl_rsurf.c \
|
||||
gl_screen.c gl_trans.c gl_view.c gl_warp.c
|
||||
|
||||
ggi_SOURCES= vid_ggi.c
|
||||
sdl_SOURCES= vid_sdl.c
|
||||
svga_SOURCES= vid_svgalib.c
|
||||
x11_SOURCES= vid_x11.c
|
||||
glx_SOURCES= vid_glx.c
|
||||
tdfx_SOURCES= vid_3dfx.c
|
||||
|
||||
#qf_client_ggi_SOURCES= $(common_SOURCES) $(client_SOURCES) $(soft_SOURCES) $(ggi_SOURCES)
|
||||
#qf_client_sdl_SOURCES= $(common_SOURCES) $(client_SOURCES) $(soft_SOURCES) $(sdl_SOURCES)
|
||||
qf_client_svga_SOURCES= $(common_SOURCES) $(client_SOURCES) $(soft_SOURCES) $(svga_SOURCES)
|
||||
qf_client_x11_SOURCES= $(common_SOURCES) $(client_SOURCES) $(soft_SOURCES) $(x11_SOURCES)
|
||||
qf_client_3dfx_SOURCES= $(common_SOURCES) $(client_SOURCES) $(ogl_SOURCES) $(tdfx_SOURCES)
|
||||
qf_client_glx_SOURCES= $(common_SOURCES) $(client_SOURCES) $(ogl_SOURCES) $(glx_SOURCES)
|
||||
qf_server_SOURCES= $(common_SOURCES) $(server_SOURCES)
|
27
RPM/build_rpm.in
Normal file
27
RPM/build_rpm.in
Normal file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh -x
|
||||
|
||||
version=@VERSION@
|
||||
temp_dir=/var/tmp
|
||||
srcdir=@srcdir@
|
||||
if [ "$srcdir" = "." ]; then
|
||||
srcdir=..
|
||||
fi
|
||||
|
||||
rm -rf BUILD SPECS RPMS SOURCES SRPMS
|
||||
mkdir -p BUILD SPECS RPMS/{noarch,i386,i686} SOURCES SRPMS
|
||||
rm -rf ${temp_dir}/quakeforge-${version}
|
||||
cp -a $srcdir ${temp_dir}/quakeforge-${version}
|
||||
dest_dir=$PWD
|
||||
cd ${temp_dir}/quakeforge-${version}
|
||||
# this is needed to ensure there is a makefile
|
||||
./bootstrap
|
||||
./configure
|
||||
make distclean
|
||||
cd ${temp_dir}
|
||||
tar zcf ${dest_dir}/SOURCES/quakeforge-${version}.tar.gz quakeforge-${version}
|
||||
cd ${dest_dir}
|
||||
rm -rf ${temp_dir}/quakeforge-${version}
|
||||
cat > rpmmacros <<EOF
|
||||
%_topdir $PWD
|
||||
EOF
|
||||
rpm -ba quakeforge.spec --rcfile rpmrc
|
49
RPM/quakeforge.spec.in
Normal file
49
RPM/quakeforge.spec.in
Normal file
|
@ -0,0 +1,49 @@
|
|||
%define name quakeforge
|
||||
%define version @VERSION@
|
||||
%define release 1
|
||||
%define builddir $RPM_BUILD_DIR/%{name}-%{version}
|
||||
|
||||
Name: %{name}
|
||||
Version: %{version}
|
||||
Release: %{release}
|
||||
Vendor: The QuakeForge Project
|
||||
Packager: The QuakeForge Project quake-devel@lists.sourceforge.net
|
||||
#URL:
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
#Patch:
|
||||
Group: Application/Generic
|
||||
Copyright: GPL
|
||||
#Icon:
|
||||
#Requires:
|
||||
BuildRoot: /var/tmp/%{name}-%{version}
|
||||
Summary: 3D game engine based on id Software's Quake engine
|
||||
%description
|
||||
3D game engine based on id Software's Quake engine
|
||||
@configure_input@
|
||||
Please edit quakeforge.spec.in to add several more lines of description
|
||||
here if appropriate, and to delete these instructions.
|
||||
|
||||
%prep
|
||||
%setup -n %{name}-%{version}
|
||||
#%patch -p1
|
||||
|
||||
%build
|
||||
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix}
|
||||
make
|
||||
|
||||
%install
|
||||
if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi
|
||||
mkdir -p $RPM_BUILD_ROOT
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
# Build the file-list automagically :)
|
||||
cd $RPM_BUILD_ROOT
|
||||
find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/file.list.%{name}
|
||||
find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.%{name}
|
||||
find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.%{name}
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
rm ../file.list.%{name}
|
||||
|
||||
%files -f ../file.list.%{name}
|
||||
%doc README
|
80
acconfig.h
Normal file
80
acconfig.h
Normal file
|
@ -0,0 +1,80 @@
|
|||
/* "Proper" package name */
|
||||
#undef PROGRAM
|
||||
|
||||
/* Define this to the QuakeWorld standard version you support */
|
||||
#undef QW_VERSION
|
||||
|
||||
/* Define this to the QSG standard version you support */
|
||||
#undef QSG_VERSION
|
||||
|
||||
/* Define if you want to use QF-style defaults instead of Id-style */
|
||||
#undef NEWSTYLE
|
||||
|
||||
/* Define this to the location of the global config file */
|
||||
#undef FS_GLOBALCFG
|
||||
|
||||
/* Define this to the shared game directory root */
|
||||
#undef FS_SHAREPATH
|
||||
|
||||
/* Define this to the unshared game directory root */
|
||||
#undef FS_USERPATH
|
||||
|
||||
/* Define this to the base game for the engine to load */
|
||||
#undef BASEGAME
|
||||
|
||||
/* Define this if you have OpenGL */
|
||||
#undef HAVE_OPENGL
|
||||
|
||||
/* Define if you have the XFree86 DGA extension */
|
||||
#undef HAVE_DGA
|
||||
|
||||
/* Define if you have the XFree86 VIDMODE extension */
|
||||
#undef HAVE_VIDMODE
|
||||
|
||||
/* If your version of OpenGL uses APIENTRY, define GLAPIENTRY to be APIENTRY*/
|
||||
#undef GLAPIENTRY
|
||||
|
||||
/* Define this if you are using Mesa */
|
||||
#undef HAVE_XMESA
|
||||
|
||||
/* Define this if you want IPv6 support */
|
||||
#undef HAVE_IPV6
|
||||
|
||||
/* Define this if you have GL_COLOR_INDEX8_EXT in GL/gl.h */
|
||||
#undef HAVE_GL_COLOR_INDEX8_EXT
|
||||
|
||||
/* Define this if C symbols are prefixed with an underscore */
|
||||
#undef HAVE_SYM_PREFIX_UNDERSCORE
|
||||
|
||||
/* Define this if you want to use Intel assembly optimizations */
|
||||
#undef USE_INTEL_ASM
|
||||
|
||||
/* Define this if you have a Linux-style CD-ROM API */
|
||||
#undef USE_LINUX_CD
|
||||
|
||||
/* Define this if you have a BSD-style CD-ROM API */
|
||||
#undef USE_BSD_CD
|
||||
|
||||
/* Define this to use experimental code */
|
||||
#undef _EXPERIMENTAL_
|
||||
|
||||
/* Define this if your system has socklen_t */
|
||||
#undef HAVE_SOCKLEN_T
|
||||
|
||||
/* Define this if your system has size_t */
|
||||
#undef HAVE_SIZE_T
|
||||
|
||||
/* Define this if you have ss_len member in struct sockaddr_storage (BSD) */
|
||||
#undef HAVE_SS_LEN
|
||||
|
||||
/* Define this if you have sin6_len member in struct sockaddr_in6 (BSD) */
|
||||
#undef HAVE_SIN6_LEN
|
||||
|
||||
/* Define this if you have sa_len member in struct sockaddr (BSD) */
|
||||
#undef HAVE_SA_LEN
|
||||
|
||||
/* Define this to something sane if you don't have stricmp */
|
||||
#undef stricmp
|
||||
|
||||
/* Define if you have the dlopen function. */
|
||||
#undef HAVE_DLOPEN
|
127
aclocal.m4
vendored
Normal file
127
aclocal.m4
vendored
Normal file
|
@ -0,0 +1,127 @@
|
|||
dnl aclocal.m4 generated automatically by aclocal 1.4
|
||||
|
||||
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
# Like AC_CONFIG_HEADER, but automatically create stamp file.
|
||||
|
||||
AC_DEFUN(AM_CONFIG_HEADER,
|
||||
[AC_PREREQ([2.12])
|
||||
AC_CONFIG_HEADER([$1])
|
||||
dnl When config.status generates a header, we must update the stamp-h file.
|
||||
dnl This file resides in the same directory as the config header
|
||||
dnl that is generated. We must strip everything past the first ":",
|
||||
dnl and everything past the last "/".
|
||||
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
|
||||
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
|
||||
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
|
||||
<<am_indx=1
|
||||
for am_file in <<$1>>; do
|
||||
case " <<$>>CONFIG_HEADERS " in
|
||||
*" <<$>>am_file "*<<)>>
|
||||
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
|
||||
;;
|
||||
esac
|
||||
am_indx=`expr "<<$>>am_indx" + 1`
|
||||
done<<>>dnl>>)
|
||||
changequote([,]))])
|
||||
|
||||
# Do all the work for Automake. This macro actually does too much --
|
||||
# some checks are only needed if your package does certain things.
|
||||
# But this isn't really a big deal.
|
||||
|
||||
# serial 1
|
||||
|
||||
dnl Usage:
|
||||
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
|
||||
|
||||
AC_DEFUN(AM_INIT_AUTOMAKE,
|
||||
[AC_REQUIRE([AC_PROG_INSTALL])
|
||||
PACKAGE=[$1]
|
||||
AC_SUBST(PACKAGE)
|
||||
VERSION=[$2]
|
||||
AC_SUBST(VERSION)
|
||||
dnl test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
ifelse([$3],,
|
||||
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
|
||||
AC_REQUIRE([AM_SANITY_CHECK])
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])
|
||||
dnl FIXME This is truly gross.
|
||||
missing_dir=`cd $ac_aux_dir && pwd`
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])])
|
||||
|
||||
#
|
||||
# Check to make sure that the build environment is sane.
|
||||
#
|
||||
|
||||
AC_DEFUN(AM_SANITY_CHECK,
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftestfile
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
|
||||
if test "[$]*" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftestfile`
|
||||
fi
|
||||
if test "[$]*" != "X $srcdir/configure conftestfile" \
|
||||
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "[$]2" = conftestfile
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
rm -f conftest*
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
|
||||
dnl The program must properly implement --version.
|
||||
AC_DEFUN(AM_MISSING_PROG,
|
||||
[AC_MSG_CHECKING(for working $2)
|
||||
# Run test in a subshell; some versions of sh will print an error if
|
||||
# an executable is not found, even if stderr is redirected.
|
||||
# Redirect stdin to placate older versions of autoconf. Sigh.
|
||||
if ($2 --version) < /dev/null > /dev/null 2>&1; then
|
||||
$1=$2
|
||||
AC_MSG_RESULT(found)
|
||||
else
|
||||
$1="$3/missing $2"
|
||||
AC_MSG_RESULT(missing)
|
||||
fi
|
||||
AC_SUBST($1)])
|
||||
|
516
configure.in
Normal file
516
configure.in
Normal file
|
@ -0,0 +1,516 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.13)
|
||||
AC_INIT(source/sv_main.c)
|
||||
AC_REVISION($Revision$) dnl
|
||||
AM_CONFIG_HEADER(include/config.h)
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
dnl This is the only place where the package version appears
|
||||
AM_INIT_AUTOMAKE(quakeforge, 0.1.99pre0)
|
||||
|
||||
QW_VERSION=2.40
|
||||
QSG_VERSION=1.0
|
||||
|
||||
AC_DEFINE_UNQUOTED(PROGRAM, "QuakeForge")
|
||||
AC_DEFINE_UNQUOTED(QW_VERSION, "$QW_VERSION")
|
||||
AC_DEFINE_UNQUOTED(QSG_VERSION, "$QSG_VERSION")
|
||||
AC_SUBST(QW_VERSION)
|
||||
AC_SUBST(QSG_VERSION)
|
||||
|
||||
dnl Start TARGETS out at "qf-server"
|
||||
TARGETS=qf-server
|
||||
|
||||
dnl Set to yes for releases
|
||||
RELEASE=no
|
||||
|
||||
dnl Set this to no for Id defaults
|
||||
NEWSTYLE=yes
|
||||
|
||||
ISODATE=`date +%Y-%m-%d`
|
||||
AC_SUBST(ISODATE)
|
||||
|
||||
AC_LANG_C
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_PROG_AWK
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
|
||||
dnl Checks for system services
|
||||
AC_SYS_LONG_FILE_NAMES
|
||||
AC_EXEEXT
|
||||
AC_OBJEXT
|
||||
|
||||
dnl Checks for header files.
|
||||
AC_HEADER_DIRENT
|
||||
AC_HEADER_STDC
|
||||
AC_HEADER_MAJOR
|
||||
AC_HEADER_SYS_WAIT
|
||||
AC_CHECK_HEADERS(
|
||||
unistd.h fcntl.h dlfcn.h windows.h sys/ioctl.h sys/mman.h \
|
||||
sys/io.h asm/io.h \
|
||||
sys/stat.h sys/time.h sys/timeb.h \
|
||||
sys/socket.h netinet/in.h netdb.h arpa/inet.h sys/filio.h \
|
||||
sys/soundcard.h linux/soundcard.h machine/soundcard.h sys/audioio.h \
|
||||
dsound.h mmsystem.h initguid.h mme/mmsystem.h mme/mme_public.h \
|
||||
sys/asoundlib.h string.h strings.h memory.h malloc.h \
|
||||
errno.h sys/dir.h
|
||||
)
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_TYPE_SIZE_T
|
||||
AC_STRUCT_ST_BLKSIZE
|
||||
AC_HEADER_TIME
|
||||
AC_STRUCT_TM
|
||||
|
||||
AC_TRY_COMPILE(
|
||||
[#include <sys/types.h>],
|
||||
[ socklen_t x = 0;],
|
||||
AC_DEFINE(HAVE_SOCKLEN_T) AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
dnl FreeBSD 4.0 has it in sys/socket.h
|
||||
AC_MSG_CHECKING(for socklen_t in sys/socket.h)
|
||||
AC_TRY_COMPILE(
|
||||
[#include <sys/types.h>
|
||||
#include <sys/socket.h>],
|
||||
[ socklen_t x = 0;],
|
||||
AC_DEFINE(HAVE_SOCKLEN_T) AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING(for size_t in sys/types.h)
|
||||
AC_TRY_COMPILE(
|
||||
[#include <sys/types.h>],
|
||||
[ size_t x = 0;],
|
||||
AC_DEFINE(HAVE_SIZE_T) AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
|
||||
dnl maybe these two (at least the 2nd) should only be checked if ipv6 is enabled?
|
||||
AC_MSG_CHECKING(for ss_len in struct sockaddr_storage)
|
||||
AC_TRY_COMPILE(
|
||||
[#include <sys/types.h>
|
||||
#include <sys/socket.h>],
|
||||
[ void f(void) { struct sockaddr_storage ss; ss.ss_len=0; }],
|
||||
AC_DEFINE(HAVE_SS_LEN) AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING(for sin6_len in struct sockaddr_in6)
|
||||
AC_TRY_COMPILE(
|
||||
[#include <sys/types.h>
|
||||
#include <netinet/in.h>],
|
||||
[ void f(void) { struct sockaddr_in6 s6; s6.sin6_len=0; }],
|
||||
AC_DEFINE(HAVE_SIN6_LEN) AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING(for sa_len in struct sockaddr)
|
||||
AC_TRY_COMPILE(
|
||||
[#include <sys/types.h>
|
||||
#include <netinet/in.h>],
|
||||
[ void f(void) { struct sockaddr sa; sa.sa_len=0; }],
|
||||
AC_DEFINE(HAVE_SA_LEN) AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
|
||||
dnl Checks for library functions.
|
||||
AC_FUNC_ALLOCA
|
||||
AC_FUNC_MEMCMP
|
||||
AC_FUNC_MMAP
|
||||
AC_TYPE_SIGNAL
|
||||
AC_FUNC_VPRINTF
|
||||
AC_CHECK_FUNCS(
|
||||
gethostname gethostbyname connect gettimeofday getwd mkdir \
|
||||
ftime _ftime fcntl stat putenv select socket strerror strstr \
|
||||
snprintf _snprintf vsnprintf _vsnprintf strsep dlopen getaddrinfo \
|
||||
getnameinfo
|
||||
)
|
||||
|
||||
dnl Checks for stricmp/strcasecmp
|
||||
AC_CHECK_FUNC(stricmp,,
|
||||
AC_CHECK_FUNC(strcasecmp, AC_DEFINE(stricmp,strcasecmp)))
|
||||
|
||||
dnl Check for vsnprintf
|
||||
if test "x$ac_cv_func_vsnprintf" = "xno" -a \
|
||||
"x$ac_cv_func__vsnprintf" = "xno"; then
|
||||
dnl libdb may have this
|
||||
AC_CHECK_LIB(db,vsnprintf)
|
||||
fi
|
||||
|
||||
dnl Checks for working -lm
|
||||
AC_CHECK_LIB(m, pow,, AC_MSG_ERROR([math library (-lm) appears broken]))
|
||||
|
||||
dnl Checks for SVGALib support
|
||||
AC_ARG_WITH(svga,
|
||||
[ --with-svga[=DIR] use SVGALib found in DIR],
|
||||
HAVE_SVGA=$withval, HAVE_SVGA=auto)
|
||||
if test "x$HAVE_SVGA" != xno; then
|
||||
if test "x$HAVE_SVGA" != xauto; then
|
||||
SVGA_CFLAGS="$SVGA_CFLAGS= -I$withval/include"
|
||||
SVGA_LIBS="$SVGA_LIBS -L$withval/lib"
|
||||
dnl The default system location is /usr/include or /usr/local/include
|
||||
dnl and we (obviously) do not need to set CFLAGS for that
|
||||
fi
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $SVGA_CFLAGS"
|
||||
AC_CHECK_HEADER(vga.h, HAVE_SVGA=yes, HAVE_SVGA=no)
|
||||
CPPFLAGS="$save_CPPFLAGS"
|
||||
|
||||
dnl Make sure -lvga works
|
||||
if test "x$HAVE_SVGA" = xyes; then
|
||||
AC_CHECK_LIB(vga, vga_getmousetype, SVGA_LIBS="$SVGA_LIBS -lvga"
|
||||
HAVE_SVGA=yes, HAVE_SVGA=no, [$SVGA_LIBS]
|
||||
)
|
||||
fi
|
||||
if test "x$HAVE_SVGA" != xyes; then
|
||||
SVGA_CFLAGS="" SVGA_LIBS=""
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(SVGA_CFLAGS)
|
||||
AC_SUBST(SVGA_LIBS)
|
||||
|
||||
dnl Checks for X11 and XShm
|
||||
AC_PATH_XTRA
|
||||
if test "x$no_x" = x; then
|
||||
HAVE_X11=yes
|
||||
AC_CHECK_LIB(Xext, XShmQueryExtension, [X11_SHM_LIB=-lXext],
|
||||
[HAVE_X11="no"], [ $X_LIBS -lX11 $X_EXTRA_LIBS ]
|
||||
)
|
||||
|
||||
dnl check for X11 video driver
|
||||
AC_MSG_CHECKING(for X11 video driver)
|
||||
case "${target}" in
|
||||
*-solaris*)
|
||||
X11_VID_SRC="vid_sunx.c" ;;
|
||||
*)
|
||||
if test "x$HAVE_X11"; then
|
||||
X11_VID_SRC="vid_x11.c";
|
||||
else
|
||||
X11_VID_SRC=
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test "x$X11_VID_SRC" = x; then
|
||||
AC_MSG_RESULT(no)
|
||||
else
|
||||
AC_MSG_RESULT(yes ($X11_VID_SRC))
|
||||
fi
|
||||
AC_SUBST(X_CFLAGS)
|
||||
AC_SUBST(X_LIBS)
|
||||
AC_SUBST(X11_SHM_LIB)
|
||||
AC_SUBST(X11_VID_SRC)
|
||||
|
||||
dnl Checks for OpenGL support
|
||||
dnl GL is a special case, we need seperate includes/libs entires
|
||||
AC_ARG_WITH(opengl,
|
||||
[ --with-opengl[=DIR] use OpenGL with libraries found in DIR],
|
||||
HAVE_OPENGL=$withval, HAVE_OPENGL=auto
|
||||
)
|
||||
AC_ARG_WITH(opengl-includes,
|
||||
[ --with-opengl-includes[=DIR]
|
||||
use OpenGL with header files found in DIR],
|
||||
OPENGL_INCLUDES=$withval, OPENGL_INCLUDES=auto
|
||||
)
|
||||
if test "x$OPENGL_INCLUDES" = xno; then
|
||||
HAVE_OPENGL="no"
|
||||
fi
|
||||
if test "x$HAVE_OPENGL" = xno; then
|
||||
OPENGL_INCLUDES=""
|
||||
fi
|
||||
if test "x$HAVE_OPENGL" != xno; then
|
||||
if test "x$HAVE_OPENGL" != xauto; then
|
||||
OPENGL_LIBS="$OPENGL_LIBS -L$HAVE_OPENGL"
|
||||
fi
|
||||
if test "x$OPENGL_INCLUDES" != xauto; then
|
||||
OPENGL_INCLUDES="-I$OPENGL_INCLUDES"
|
||||
else
|
||||
OPENGL_INCLUDES="-I${x_includes:-.}"
|
||||
fi
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $OPENGL_INCLUDES"
|
||||
AC_CHECK_HEADER(GL/gl.h, HAVE_OPENGL=yes, HAVE_OPENGL=no)
|
||||
if test "x$HAVE_OPENGL" != xno; then
|
||||
AC_MSG_CHECKING(for GL_COLOR_INDEX8_EXT in GL/gl.h)
|
||||
AC_TRY_COMPILE([#include "GL/gl.h"],
|
||||
[ int x = (int) GL_COLOR_INDEX8_EXT;],
|
||||
AC_DEFINE(HAVE_GL_COLOR_INDEX8_EXT) AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
AC_MSG_CHECKING(for GLAPIENTRY in GL/gl.h)
|
||||
AC_TRY_COMPILE(
|
||||
[#include "GL/gl.h"],
|
||||
[ int x = GLAPIENTRY printf("");],
|
||||
HAVE_GLAPIENTRY=yes, HAVE_GLAPIENTRY=no
|
||||
)
|
||||
if test "x$HAVE_GLAPIENTRY" != xno; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
|
||||
AC_MSG_CHECKING(for APIENTRY in GL/gl.h)
|
||||
AC_TRY_COMPILE(
|
||||
[#include "GL/gl.h"],
|
||||
[ int x = APIENTRY printf("");],
|
||||
AC_DEFINE(GLAPIENTRY, APIENTRY) AC_MSG_RESULT(yes),
|
||||
AC_DEFINE(GLAPIENTRY, ) AC_MSG_RESULT(no)
|
||||
)
|
||||
fi
|
||||
fi
|
||||
CPPFLAGS="$save_CPPFLAGS"
|
||||
|
||||
dnl Make sure -lGL or -lMesaGL works
|
||||
if test "x$HAVE_OPENGL" = xyes; then
|
||||
AC_CHECK_LIB(GL, glColor4f,
|
||||
OPENGL_LIBS="$OPENGL_LIBS -lGL"
|
||||
HAVE_OPENGL=yes
|
||||
OPENGL_NAME=GL
|
||||
if test "x$have_dynload" != "xyes"; then
|
||||
AC_CHECK_LIB(GL, XMesaSetFXmode, qwfoo=qwfoo, HAVE_XMESA=no,
|
||||
[ $OPENGL_LIBS $X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS]
|
||||
)
|
||||
fi
|
||||
,HAVE_OPENGL=no,
|
||||
[ $OPENGL_LIBS $X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS]
|
||||
)
|
||||
if test "x$HAVE_OPENGL" != xyes; then
|
||||
AC_CHECK_LIB(MesaGL, glColor4f, OGL_LIBS="$OGL_LIBS -lMesaGL"
|
||||
HAVE_OPENGL=yes
|
||||
OPENGL_NAME=MesaGL
|
||||
if test "x$have_dynload" != "xyes"; then
|
||||
AC_CHECK_LIB(MesaGL, XMesaSetFXmode, qwfoo=qwfoo, HAVE_XMESA=no,
|
||||
[ $OPENGL_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS]
|
||||
)
|
||||
fi
|
||||
,HAVE_OPENGL=no,
|
||||
[ $OPENGL_LIBS $X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS]
|
||||
)
|
||||
fi
|
||||
fi
|
||||
if test "x$HAVE_OPENGL" != xyes; then
|
||||
OGL_CFLAGS="" OGL_LIBS=""
|
||||
else
|
||||
if test "x$HAVE_XMESA" = xyes; then
|
||||
AC_DEFINE(HAVE_XMESA)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "x$HAVE_OPENGL" = xyes; then
|
||||
AC_DEFINE(HAVE_OPENGL)
|
||||
fi
|
||||
|
||||
AC_SUBST(OGL_CFLAGS)
|
||||
AC_SUBST(OGL_INCLUDES)
|
||||
AC_SUBST(OGL_LIBS)
|
||||
|
||||
dnl Set $prefix and $exec_prefix to $ac_default_prefix if they haven't been set
|
||||
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
||||
|
||||
AC_ARG_ENABLE(experimental,
|
||||
[ --enable-experimental compile with experimental code. Use at your
|
||||
own risk])
|
||||
if test "x$enable_experimental" = xyes; then
|
||||
AC_DEFINE(_EXPERIMENTAL_)
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(gamename,
|
||||
[ --with-newstyle compile with defaults a bit different than those
|
||||
used by Id Software (does not affect gameplay)],
|
||||
NEWSTYLE=$enable_newstyle
|
||||
)
|
||||
if test "x$NEWSTYLE" = xyes; then
|
||||
AC_DEFINE(NEWSTYLE)
|
||||
AC_DEFINE(BASEGAME, "base")
|
||||
else
|
||||
AC_DEFINE(BASEGAME, "id1")
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(global-cfg,
|
||||
[ --with-global-cfg=FILE If set will change the name and location of the
|
||||
global config file used by QuakeForge. Defaults to
|
||||
\${sysconfdir}/quakeforge.conf],
|
||||
globalconf="$withval", globalconf="auto")
|
||||
if test "x$globalconf" = "xauto" || test "x$globalconf" = "xyes" || \
|
||||
test "x$globalconf" = "xno"; then dnl yes/no sanity checks
|
||||
eval foo="$sysconfdir"
|
||||
AC_DEFINE_UNQUOTED(FS_GLOBALCFG, "$foo/quakeforge.conf")
|
||||
else
|
||||
AC_DEFINE_UNQUOTED(FS_GLOBALCFG, $globalconf)
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(sharepath,
|
||||
[ --with-sharepath=DIR Use DIR for shared game data, defaults to
|
||||
\${datadir}/games/quakeforge],
|
||||
SHAREPATH=$withval, SHAREPATH="auto")
|
||||
if test "x$SHAREPATH" = "xauto" -o "x$SHAREPATH" = "xyes" -o "x$SHAREPATH" = "x"; then
|
||||
eval foo="$datadir"
|
||||
AC_DEFINE_UNQUOTED(FS_SHAREPATH, "$foo/games/quakeforge")
|
||||
elif test "x$SHAREPATH" = xno; then
|
||||
AC_DEFINE_UNQUOTED(FS_SHAREPATH, ".")
|
||||
else
|
||||
AC_DEFINE_UNQUOTED(FS_SHAREPATH, "$SHAREPATH")
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(userpath,
|
||||
[ --with-userpath=DIR Use DIR for unshared game data, defaults to
|
||||
\${HOME}/.quakeforge],
|
||||
USERPATH=$withval, USERPATH="auto")
|
||||
if test "x$USERPATH" = "xauto" -o "x$USERPATH" = "xyes" -o "x$USERPATH" = "x"; then
|
||||
AC_DEFINE_UNQUOTED(FS_USERPATH, "~/.quakeforge")
|
||||
elif test "x$USERPATH" = xno; then
|
||||
AC_DEFINE_UNQUOTED(FS_USERPATH, ".")
|
||||
else
|
||||
AC_DEFINE_UNQUOTED(FS_USERPATH, "$USERPATH")
|
||||
fi
|
||||
|
||||
dnl CFLAGS for release and devel versions
|
||||
AC_ARG_ENABLE(release,
|
||||
[ --enable-release compile release (with optimizations)],
|
||||
RELEASE=$enable_release
|
||||
)
|
||||
if test "x$RELEASE" = xyes; then
|
||||
CFLAGS="-O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
|
||||
if test "x$GCC" = xyes; then
|
||||
AC_MSG_CHECKING(for special release compiler settings)
|
||||
case "${target}" in
|
||||
i?86-*-*)
|
||||
MORE_CFLAGS="-malign-loops=2 -malign-jumps=2 -malign-functions=2"
|
||||
;;
|
||||
*)
|
||||
MORE_CFLAGS=""
|
||||
;;
|
||||
esac
|
||||
if test "x$MORE_CFLAGS" = x; then
|
||||
AC_MSG_RESULT(no)
|
||||
else
|
||||
AC_MSG_RESULT(yes)
|
||||
CFLAGS="$CFLAGS $MORE_CFLAGS"
|
||||
fi
|
||||
else
|
||||
CFLAGS=-O2
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl QuakeForge code has lots of BCPL-style (//) comments, which cause
|
||||
dnl problems with any compiler that is ANSI/ISO-C compliant.
|
||||
dnl Make the compiler swallow its pride...
|
||||
if test "x$GCC" != xyes; then
|
||||
AC_MSG_CHECKING(for how to deal with C++ comments)
|
||||
case "$target" in
|
||||
*-aix*)
|
||||
CFLAGS="$CFLAGS -qcpluscmt"
|
||||
AC_MSG_RESULT([-qcpluscmt])
|
||||
;;
|
||||
*-irix6*)
|
||||
CFLAGS="$CFLAGS -Xcpluscomm"
|
||||
AC_MSG_RESULT([-Xcpluscomm])
|
||||
;;
|
||||
*-solaris*)
|
||||
CFLAGS="$CFLAGS -xCC"
|
||||
AC_MSG_RESULT([-xCC])
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(nothing needed or no switch known)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
dnl We want warnings, lots of warnings...
|
||||
if test "x$GCC" = xyes; then
|
||||
CFLAGS="$CFLAGS -Wall -Werror"
|
||||
# CFLAGS="$CFLAGS -Wall -pedantic"
|
||||
fi
|
||||
|
||||
dnl Check for ia32
|
||||
AC_MSG_CHECKING(for an ia32 machine)
|
||||
case "${target}" in
|
||||
i?86-*-*)
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_MSG_CHECKING(to see if we should disable asm optimizations)
|
||||
AC_ARG_ENABLE(asmopt,
|
||||
[ --disable-asmopt disable assembler optimization],
|
||||
ASM_ARCH=none
|
||||
AC_MSG_RESULT(yes),
|
||||
AC_DEFINE(USE_INTEL_ASM)
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
;;
|
||||
*) AC_MSG_RESULT(no)
|
||||
esac
|
||||
|
||||
dnl Checks for which system driver to use
|
||||
AC_MSG_CHECKING(for system driver)
|
||||
case "${target}" in
|
||||
*-*-linux-gnu*)
|
||||
CL_SYS_SRC="sys_linux.c"
|
||||
SV_SYS_SRC="sys_unix.c"
|
||||
;;
|
||||
i?86-*-mingw32*)
|
||||
CL_SYS_SRC="sys_win.c"
|
||||
SV_SYS_SRC="sys_win.c"
|
||||
;;
|
||||
i?86-*-*djgpp* | i?86-*-*msdos*)
|
||||
# XXX - dos - conproc.c(?) sys_dos.c
|
||||
# XXX - need to add dos
|
||||
CL_SYS_SRC=""
|
||||
SV_SYS_SRC=""
|
||||
;;
|
||||
*)
|
||||
CL_SYS_SRC="sys_linux.c"
|
||||
SV_SYS_SRC="sys_unix.c"
|
||||
DEFAULT_SYS=yes
|
||||
;;
|
||||
esac
|
||||
if test "x$DEFAULT_SYS" = xyes; then
|
||||
AC_MSG_RESULT([no, using default])
|
||||
else
|
||||
AC_MSG_RESULT(yes ($CL_SYS_SRC $SV_SYS_SRC))
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING(targets to be built)
|
||||
if test "x$HAVE_SVGA" = xyes; then
|
||||
TARGETS="$TARGETS qf-client-svga"
|
||||
fi
|
||||
if test "x$HAVE_X11" = xyes; then
|
||||
TARGETS="$TARGETS qf-client-x11"
|
||||
fi
|
||||
if test "x$HAVE_OPENGL" = xyes; then
|
||||
TARGETS="$TARGETS qf-client-glx"
|
||||
fi
|
||||
|
||||
AC_SUBST(libdir)
|
||||
|
||||
AC_SUBST(ASM_ARCH)
|
||||
AC_SUBST(HAVE_OPENGL)
|
||||
AC_SUBST(HAVE_SVGA)
|
||||
AC_SUBST(HAVE_X11)
|
||||
AC_SUBST(INTEL_ARCH)
|
||||
AC_SUBST(LIBS)
|
||||
AC_SUBST(CL_SYS_SRC)
|
||||
AC_SUBST(SV_SYS_SRC)
|
||||
AC_SUBST(QW_VERSION)
|
||||
AC_SUBST(TARGETS)
|
||||
|
||||
AC_SUBST(ac_configure_args)
|
||||
|
||||
dnl Output files
|
||||
AC_OUTPUT(
|
||||
source/Makefile
|
||||
Makefile
|
||||
RPM/quakeforge.spec
|
||||
RPM/build_rpm
|
||||
quakeforge.lsm,
|
||||
chmod +x RPM/build_rpm
|
||||
)
|
||||
AC_MSG_RESULT([
|
||||
The following targets have been configured:
|
||||
|
||||
$TARGETS]
|
||||
)
|
47
man/quakeforge.1
Normal file
47
man/quakeforge.1
Normal file
|
@ -0,0 +1,47 @@
|
|||
.\" hey, Emacs: -*- nroff -*-
|
||||
.\" quakeforge is free software; you can redistribute it and/or modify
|
||||
.\" it under the terms of the GNU General Public License as published by
|
||||
.\" the Free Software Foundation; either version 2 of the License, or
|
||||
.\" (at your option) any later version.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
.\" GNU General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU General Public License
|
||||
.\" along with this program; see the file COPYING. If not, write to
|
||||
.\" the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
.\"
|
||||
.TH QUAKEFORGE 1 "May 15, 2000"
|
||||
.\" Please update the above date whenever this man page is modified.
|
||||
.SH NAME
|
||||
quakeforge \- 3D game engine based on id Software's Quake engine
|
||||
.SH SYNOPSIS
|
||||
.B quakeforge
|
||||
.RI [ options ]
|
||||
.SH DESCRIPTION
|
||||
\fBquakeforge\fP washes your windows, mends your fences, mows your lawn...
|
||||
.PP
|
||||
It also...
|
||||
.SH OPTIONS
|
||||
\fBquakeforge\fP accepts the following options:
|
||||
.TP
|
||||
.BR -i , " --interactive"
|
||||
Prompt for confirmation.
|
||||
.TP
|
||||
.BR -q , " --quiet" , " --silent"
|
||||
Inhibit usual output.
|
||||
.TP
|
||||
.B --verbose
|
||||
Print more information.
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Show summary of options.
|
||||
.TP
|
||||
.B \-v, \-\-version
|
||||
Show version of program.
|
||||
.\" .SH "SEE ALSO"
|
||||
.\" .BR foo "(1), " bar (1)
|
||||
.SH AUTHOR
|
||||
The QuakeForge Project <quake-devel@lists.sourceforge.net>.
|
16
quakeforge.lsm.in
Normal file
16
quakeforge.lsm.in
Normal file
|
@ -0,0 +1,16 @@
|
|||
Begin3
|
||||
Title: quakeforge
|
||||
Version: @VERSION@
|
||||
Entered-date: @ISODATE@
|
||||
Description: 3D game engine based on id Software's Quake engine
|
||||
Keywords: 3D, game, engine, quake
|
||||
Author: quake-devel@lists.sourceforge.net (The QuakeForge Project)
|
||||
Maintained-by: quake-devel@lists.sourceforge.net (The QuakeForge Project)
|
||||
Primary-site: http://www.quakeforge.net/
|
||||
31k quakeforge-@VERSION@.tar.gz
|
||||
550 quakeforge.lsm
|
||||
Alternate-site: http://sourceforge.net/project/?group_id=882
|
||||
Original-site: http://www.quakeforge.net/
|
||||
Platforms: any
|
||||
Copying-policy: GPL v2
|
||||
End
|
41
source/Makefile.am
Normal file
41
source/Makefile.am
Normal file
|
@ -0,0 +1,41 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
bin_PROGRAMS = @TARGETS@
|
||||
|
||||
EXTRA_PROGRAMS= qf-server qf-client-svga qf-client-x11 qf-client-glx
|
||||
|
||||
common_SOURCES= net_chan.c net_com.c net_udp.c pmove.c pmovetst.c zone.c \
|
||||
mdfour.c mathlib.c math.S cvar.c crc.c common.c model.c cmd.c
|
||||
server_SOURCES= pr_cmds.c pr_edict.c pr_exec.c sv_init.c sv_main.c sv_misc.c \
|
||||
sv_model.c sv_nchan.c sv_ents.c sv_send.c sv_move.c sv_phys.c \
|
||||
sv_user.c sv_ccmds.c world.c worlda.S sys_unix.c sv_cvar.c
|
||||
client_SOURCES= cl_cmd.c cl_cvar.c cl_demo.c cl_ents.c cl_input.c cl_main.c \
|
||||
cl_math.S cl_misc.c cl_parse.c cl_pred.c cl_tent.c cl_cam.c \
|
||||
snd_linux.c sys_linux.c cd_linux.c r_view.c wad.c snd_dma.c \
|
||||
snd_mem.c snd_mix.c snd_mixa.S skin.c sbar.c nonintel.c \
|
||||
menu.c keys.c console.c sys_x86.S
|
||||
soft_SOURCES= cl_model.c cl_trans.c d_edge.c d_fill.c d_init.c d_modech.c \
|
||||
d_part.c d_polyse.c d_scan.c d_sky.c d_sprite.c d_surf.c \
|
||||
d_vars.c d_zpoint.c draw.c r_aclip.c r_alias.c r_bsp.c \
|
||||
r_draw.c r_edge.c r_efrag.c r_light.c r_main.c r_misc.c \
|
||||
r_part.c r_sky.c r_sprite.c r_surf.c r_vars.c sw_view.c \
|
||||
screen.c \
|
||||
d_copy.S d_draw.S d_draw16.S d_parta.S d_polysa.S d_scana.S \
|
||||
d_spr8.S d_varsa.S r_aclipa.S r_aliasa.S r_drawa.S r_edgea.S \
|
||||
r_varsa.S surf16.S surf8.S
|
||||
ogl_SOURCES= gl_draw.c gl_mesh.c gl_model.c gl_ngraph.c gl_part.c \
|
||||
gl_refrag.c gl_rlight.c gl_rmain.c gl_rmisc.c gl_rsurf.c \
|
||||
gl_screen.c gl_trans.c gl_view.c gl_warp.c
|
||||
|
||||
svga_SOURCES= vid_svgalib.c
|
||||
glx_SOURCES= vid_glx.c
|
||||
x11_SOURCES= vid_x11.c
|
||||
|
||||
qf_server_SOURCES= $(common_SOURCES) $(server_SOURCES)
|
||||
qf_client_svga_SOURCES= $(common_SOURCES) $(client_SOURCES) $(soft_SOURCES) $(svga_SOURCES)
|
||||
qf_client_x11_SOURCES= $(common_SOURCES) $(client_SOURCES) $(soft_SOURCES) $(x11_SOURCES)
|
||||
qf_client_glx_SOURCES= $(common_SOURCES) $(client_SOURCES) $(ogl_SOURCES) $(glx_SOURCES)
|
||||
|
||||
qf_client_svga_LDADD= @SVGA_LIBS@
|
||||
qf_client_x11_LDADD= @X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ -lX11 @X11_SHM_LIB@
|
||||
qf_client_glx_LDADD= @OPENGL_LIBS@
|
195
texinfo/quakeforge.texinfo
Normal file
195
texinfo/quakeforge.texinfo
Normal file
|
@ -0,0 +1,195 @@
|
|||
\input texinfo @c -*-texinfo-*-
|
||||
@c %**start of header
|
||||
@setfilename quakeforge.info
|
||||
@settitle 3D game engine based on id Software's Quake engine
|
||||
@finalout
|
||||
@setchapternewpage odd
|
||||
@c %**end of header
|
||||
|
||||
@set VERSION 0.1.0
|
||||
|
||||
@ifinfo
|
||||
This file documents the @code{quakeforge} command which 3D game engine based on id Software's Quake engine
|
||||
|
||||
Copyright (C) 2000 The QuakeForge Project
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of
|
||||
this manual provided the copyright notice and this permission notice
|
||||
are preserved on all copies.
|
||||
|
||||
@ignore
|
||||
Permission is granted to process this file through TeX and print the
|
||||
results, provided the printed document carries copying permission
|
||||
notice identical to this one except for the removal of this paragraph
|
||||
(this paragraph not being relevant to the printed manual).
|
||||
|
||||
@end ignore
|
||||
Permission is granted to copy and distribute modified versions of this
|
||||
manual under the conditions for verbatim copying, provided that the entire
|
||||
resulting derived work is distributed under the terms of a permission
|
||||
notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this manual
|
||||
into another language, under the above conditions for modified versions,
|
||||
except that this permission notice may be stated in a translation approved
|
||||
by the Foundation.
|
||||
@end ifinfo
|
||||
|
||||
@titlepage
|
||||
@title quakeforge
|
||||
@subtitle 3D game engine based on id Software's Quake engine
|
||||
@subtitle for quakeforge Version @value{VERSION}
|
||||
@author by The QuakeForge Project
|
||||
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
Copyright @copyright{} 2000 The QuakeForge Project
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of
|
||||
this manual provided the copyright notice and this permission notice
|
||||
are preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified versions of this
|
||||
manual under the conditions for verbatim copying, provided that the entire
|
||||
resulting derived work is distributed under the terms of a permission
|
||||
notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this manual
|
||||
into another language, under the above conditions for modified versions,
|
||||
except that this permission notice may be stated in a translation approved
|
||||
by the Foundation.
|
||||
@end titlepage
|
||||
|
||||
@c All the nodes can be updated using the EMACS command
|
||||
@c texinfo-every-node-update, which is normally bound to C-c C-u C-e.
|
||||
@node Top, Instructions, (dir), (dir)
|
||||
|
||||
@ifinfo
|
||||
This file documents the @code{quakeforge} command to 3D game engine based on id Software's Quake engine.
|
||||
@end ifinfo
|
||||
|
||||
@c All the menus can be updated with the EMACS command
|
||||
@c texinfo-all-menus-update, which is normally bound to C-c C-u C-a.
|
||||
@menu
|
||||
* Instructions:: How to read this manual.
|
||||
* Copying:: How you can copy and share @code{quakeforge}.
|
||||
* Overview:: Preliminary information.
|
||||
* Sample:: Sample output from @code{quakeforge}.
|
||||
* Invoking quakeforge:: How to run @code{quakeforge}.
|
||||
* Problems:: Reporting bugs.
|
||||
* Concept Index:: Index of concepts.
|
||||
@end menu
|
||||
|
||||
@node Instructions, Copying, Top, Top
|
||||
@chapter How to Read This Manual
|
||||
|
||||
@cindex reading
|
||||
@cindex manual, how to read
|
||||
@cindex how to read
|
||||
To read this manual, begin at the beginning, reading from left to right
|
||||
and top to bottom, until you get to the end. Then stop. You may pause
|
||||
for a beer anywhere in the middle as well, if you wish. (Please note,
|
||||
however, that The King strongly advises against heavy use of
|
||||
prescription pharmaceuticals, based on his extensive personal and
|
||||
professional experience.)
|
||||
|
||||
@node Copying, Overview, Instructions, Top
|
||||
@include gpl.texinfo
|
||||
|
||||
@node Overview, Sample, Copying, Top
|
||||
@chapter Overview
|
||||
@cindex greetings
|
||||
@cindex overview
|
||||
|
||||
The GNU @code{quakeforge} program produces a familiar, friendly greeting.
|
||||
It allows nonprogrammers to use a classic computer science tool which
|
||||
would otherwise be unavailable to them. Because it is protected by the
|
||||
GNU General Public License, users are free to share and change it.
|
||||
|
||||
GNU @code{quakeforge} was written by The QuakeForge Project.
|
||||
|
||||
@node Sample, Invoking quakeforge, Overview, Top
|
||||
@chapter Sample Output
|
||||
@cindex sample
|
||||
|
||||
Here are some realistic examples of running @code{quakeforge}.
|
||||
|
||||
This is the output of the command @samp{quakeforge}:
|
||||
|
||||
@example
|
||||
hello, world!
|
||||
@end example
|
||||
|
||||
This is the output of the command @samp{quakeforge --help}:
|
||||
|
||||
@example
|
||||
3D game engine based on id Software's Quake engine
|
||||
Usage: quakeforge [options]
|
||||
-h, --help Print a summary of the options
|
||||
-v, --version Print the version number
|
||||
@end example
|
||||
|
||||
@node Invoking quakeforge, Problems, Sample, Top
|
||||
@chapter Invoking @code{quakeforge}
|
||||
@cindex invoking
|
||||
@cindex version
|
||||
@cindex options
|
||||
@cindex usage
|
||||
@cindex help
|
||||
@cindex getting help
|
||||
|
||||
The format for running the @code{quakeforge} program is:
|
||||
|
||||
@example
|
||||
quakeforge @var{option} @dots{}
|
||||
@end example
|
||||
|
||||
@code{quakeforge} supports the following options:
|
||||
|
||||
@table @samp
|
||||
@item --interactive
|
||||
@itemx -i
|
||||
Prompt for confirmation.
|
||||
|
||||
@item --quiet
|
||||
@item --silent
|
||||
@itemx -q
|
||||
Inhibit usual output.
|
||||
|
||||
@item --verbose
|
||||
Print more information.
|
||||
|
||||
@item --help
|
||||
@itemx -h
|
||||
Print an informative help message describing the options and then exit.
|
||||
|
||||
@item --version
|
||||
@itemx -v
|
||||
Print the version number of @code{quakeforge} on the standard error output
|
||||
and then exit.
|
||||
@end table
|
||||
|
||||
@node Problems, Concept Index, Invoking quakeforge, Top
|
||||
@chapter Reporting Bugs
|
||||
@cindex bugs
|
||||
@cindex problems
|
||||
|
||||
If you find a bug in @code{quakeforge}, please send electronic mail to
|
||||
@w{@samp{quake-devel@@lists.sourceforge.net}}. Include the version number, which you can find by
|
||||
running @w{@samp{quakeforge --version}}. Also include in your message the
|
||||
output that the program produced and the output you expected.@refill
|
||||
|
||||
If you have other questions, comments or suggestions about
|
||||
@code{quakeforge}, contact the author via electronic mail to
|
||||
@w{@samp{quake-devel@@lists.sourceforge.net}}. The author will try to help you out, although he
|
||||
may not have time to fix your problems.
|
||||
|
||||
@node Concept Index, , Problems, Top
|
||||
@unnumbered Concept Index
|
||||
|
||||
@cindex tail recursion
|
||||
@printindex cp
|
||||
|
||||
@shortcontents
|
||||
@contents
|
||||
@bye
|
Loading…
Reference in a new issue