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