Merge branch 'master' into wip-trails

This smashes trails, but does bring the branch up to modern QF.
This commit is contained in:
Bill Currie 2023-07-12 21:12:01 +09:00
commit 00e69c53b5
1861 changed files with 175692 additions and 135623 deletions

70
.gitignore vendored
View file

@ -5,12 +5,17 @@
*.obj
*.a
*.o
*.output
*.slc
*.dat
*.sym
*~
__pycache__/
autom4te.cache/
.deps/
.libs/
.vimrc
.dirstamp
ChangeLog
Makefile
Makefile.in
@ -35,6 +40,7 @@ core
/ltmain.sh
/missing
/mkinstalldirs
/py-compile
/quakeforge-config
/quakeforge.lsm
/test-driver
@ -104,7 +110,7 @@ core
/hw/source/*.d
/hw/source/*.i
/hw/source/*.s
/hw/source/hw-master
/hw-master
# /include/
/include/config.h.in
@ -219,16 +225,9 @@ core
/nq/source/fbset_modes_l.c
/nq/source/fbset_modes_y.c
/nq/source/fbset_modes_y.h
/nq/source/nq-3dfx
/nq/source/nq-fbdev
/nq/source/nq-glslx
/nq/source/nq-glx
/nq/source/nq-sdl
/nq/source/nq-sdl32
/nq/source/nq-sgl
/nq/source/nq-svga
/nq/source/nq-x11
/nq/source/nq-server
/nq-sdl
/nq-x11
/nq-server
# /pkg-config/
/pkg-config/*.pc
@ -245,7 +244,7 @@ core
/qtv/source/*.d
/qtv/source/*.i
/qtv/source/*.s
/qtv/source/qtv
/qtv-server
# /qw/
@ -262,17 +261,10 @@ core
/qw/source/fbset_modes_l.c
/qw/source/fbset_modes_y.c
/qw/source/fbset_modes_y.h
/qw/source/qw-client-3dfx
/qw/source/qw-client-fbdev
/qw/source/qw-client-glx
/qw/source/qw-client-glslx
/qw/source/qw-client-sdl
/qw/source/qw-client-sdl32
/qw/source/qw-client-sgl
/qw/source/qw-client-svga
/qw/source/qw-client-x11
/qw/source/qw-master
/qw/source/qw-server
/qw-client-sdl
/qw-client-x11
/qw-master
/qw-server
# /ruamoko/
/ruamoko/*.d
@ -281,6 +273,9 @@ core
/ruamoko/*.sym
/ruamoko/Doxyfile
/ruamoko/doxygen/
/ruamoko/qwaq/qwaq-curses
/ruamoko/qwaq/qwaq-x11
# /ruamoko/cl_menu/
/ruamoko/cl_menu/*.dat
@ -351,10 +346,10 @@ core
/tools/Forge/Bundles/MapEdit/*.app
# /tools/bsp2img/
/tools/bsp2img/bsp2img
/bsp2img
# /tools/carne/
/tools/carne/carne
/carne
# /tools/cross/
/tools/cross/binutils-i386-mingw32msvc
@ -370,14 +365,14 @@ core
# /tools/pak/
/tools/pak/*.d
/tools/pak/pak
/pak
# /tools/qfbsp/
# /tools/qfbsp/include/
# /tools/qfbsp/source/
/tools/qfbsp/source/qfbsp
/qfbsp
# /tools/qfcc/
/tools/qfcc/aclocal.m4
@ -403,14 +398,11 @@ core
/tools/qfcc/source/qc-lex.c
/tools/qfcc/source/qc-parse.c
/tools/qfcc/source/qc-parse.h
/tools/qfcc/source/qc-parse.output
/tools/qfcc/source/qfcc
/tools/qfcc/source/qfpc
/tools/qfcc/source/qfprogs
/qfcc
/qfprogs
/tools/qfcc/source/qp-lex.c
/tools/qfcc/source/qp-parse.c
/tools/qfcc/source/qp-parse.h
/tools/qfcc/source/qp-parse.output
# /tools/qfcc/test/
/tools/qfcc/test/*.dat
@ -421,27 +413,27 @@ core
# /tools/qflight/include/
# /tools/qflight/source/
/tools/qflight/source/qflight
/qflight
# /tools/qflmp/
/tools/qflmp/qflmp
/qflmp
# /tools/qfmodelgen/
# /tools/qfmodelgen/include/
# /tools/qfmodelgen/source/
/tools/qfmodelgen/source/qfmodelgen
/qfmodelgen
# /tools/qfspritegen/qfspritegen
/tools/qfspritegen/qfspritegen
/qfspritegen
# /tools/qfvis/
# /tools/qfvis/include/
# /tools/qfvis/source/
/tools/qfvis/source/qfvis
/qfvis
# /tools/quaketoascii/
/tools/quaketoascii/quaketoascii
@ -466,8 +458,8 @@ core
# /tools/wad/
/tools/wad/*.d
/tools/wad/wad
/wad
# /tools/wav/
/tools/wav/*.d
/tools/wav/qfwavinfo
/qfwavinfo

11
INSTALL
View file

@ -20,7 +20,7 @@ necessary packages installed.
\section req-pack Required Packages
The following packages are required to build QuakeForge:
\li GNU autoconf 2.50 or later
\li GNU autoconf 2.71 or later
\li GNU automake 1.6 or later
\li GNU libtool 1.4 or later
\li GNU bison 2.6 or later
@ -50,14 +50,14 @@ The following is the list of relevant package names in debian.
\li git
\li libasound2-dev
\li libjack-dev
\li libjack-jackd2-dev
\li libsamplerate0-dev
\li libflac-dev
\li libogg-dev
\li libvorbis-dev
\li libpng12-dev
\li libpng-dev
\li zlib1g-dev
\li libcurl4-openssl-dev (or libcurl4-gnutls-dev)
@ -69,6 +69,11 @@ The following is the list of relevant package names in debian.
\li libxxf86dga-dev
\li libxxf86vm-dev
\li libvulkan-dev
\li vulkan-tools
\li vulkan-validationlayers
\li glslang-tools
\section building-and-installing Build and Install Procedure
Basic process to build and install QuakeForge:
\verbatim

View file

@ -1,15 +1,9 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS= foreign
ACLOCAL_AMFLAGS = -I m4
SUBDIRS=desktop pkg-config include @top_dirs@
DIST_SUBDIRS=desktop pkg-config include \
libs hw nq qtv qw tools ruamoko\
RPM debian doc vc2005 vc2008
## configure.ac needs to be listed here for older autoconfs
EXTRA_DIST= ChangeLog configure.ac bootstrap \
EXTRA_DIST = \
ChangeLog configure.ac bootstrap \
$(top_srcdir)/.version \
config.d/git-version-gen \
tools/cross/droid/cross-configure.sh \
@ -26,9 +20,161 @@ EXTRA_DIST= ChangeLog configure.ac bootstrap \
tools/gas2masm/gas2masm.dsp tools/gas2masm/gas2masm.dsw \
tools/gas2masm/gas2masm.mak tools/gas2masm/gas2masm.mdp
NOCONV_DIST= $(distdir)/include/win32/resources/icon1Vista.ico \
NOCONV_DIST= \
$(distdir)/include/win32/resources/icon1Vista.ico \
$(distdir)/include/win32/resources/icon1XP.ico
BUILT_SOURCES = $(top_srcdir)/.version
#AM_CFLAGS= @PREFER_NON_PIC@
AM_CPPFLAGS= -I$(top_srcdir)/include $(PTHREAD_CFLAGS) $(FNM_FLAGS) $(NCURSES_CFLAGS) $(FREETYPE_CFLAGS) $(HARFBUZZ_CFLAGS) $(VULKAN_CPPFLAGS)
common_ldflags= -export-dynamic @STATIC@ @PTHREAD_LDFLAGS@
SUFFICES =
TESTS =
XFAIL_TESTS =
bin_PROGRAMS =
bin_SCRIPTS =
check_PROGRAMS =
lib_LTLIBRARIES =
man_MANS =
noinst_LTLIBRARIES =
noinst_LIBRARIES =
noinst_PROGRAMS =
noinst_HEADERS =
noinst_PYTHON =
plugin_LTLIBRARIES =
RANLIB=touch
ARFLAGS=cr
EXTRA_HEADERS =
EXTRA_LTLIBRARIES =
EXTRA_PROGRAMS =
EXTRA_LIBRARIES =
CLEANFILES =
DISTCLEANFILES =
YFLAGS = -v -d -Wno-yacc -Werror
PTHREAD_LDFLAGS=@PTHREAD_LDFLAGS@
PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
lib_ldflags=-version-info $(QUAKE_LIBRARY_VERSION_INFO) \
-rpath $(libdir) -no-undefined
plugin_ldflags= @plugin_ldflags@ -avoid-version -module -rpath $(plugindir)
plugin_libadd= @plugin_libadd@
SDL_LIBS= @SDL_LIBS@
XMMS_LIBS= @XMMS_LIBS@
PAK=$(top_builddir)/pak$(EXEEXT)
QFCC_DEP=qfcc$(EXEEXT)
QFCC=$(top_builddir)/$(QFCC_DEP)
QWAQ=$(top_builddir)/ruamoko/qwaq/qwaq-cmd$(EXEEXT)
GZ=@progs_gz@
V_QFCC = $(V_QFCC_@AM_V@)
V_QFCC_ = $(V_QFCC_@AM_DEFAULT_V@)
V_QFCC_0 = @echo " QFCC " $@;
V_QFCC_1 =
V_QFCCLD = $(V_QFCCLD_@AM_V@)
V_QFCCLD_ = $(V_QFCCLD_@AM_DEFAULT_V@)
V_QFCCLD_0 = @echo " QFCCLD " $@;
V_QFCCLD_1 =
QCSYSTEM=--no-default-paths -I$(top_srcdir) -I$(top_srcdir)/ruamoko/include -I$(top_srcdir)/include
QCFLAGS=-qq -O -g -Werror -Wall -Wno-integer-divide
QCPPFLAGS=$(QCSYSTEM)
QCLINKFLAGS=--no-default-paths -Lruamoko/lib
QCOMPILE=$(QFCC) $(QCFLAGS) $(QCPPFLAGS)
QLINK=$(QFCC) $(QCFLAGS) $(QCLINKFLAGS)
MKDIR_P = @MKDIR_P@
am__mv = mv -f
SUFFIXES=.o .r .pas
.r.o:
$(V_QFCC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(QCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tqo -c -o $@ $< &&\
sed -i -e '1s@:@: $(QFCC_DEP)@' $$depbase.Tqo &&\
$(am__mv) $$depbase.Tqo $$depbase.Qo
.pas.o:
$(V_QFCC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(QCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tqo -c -o $@ $< &&\
sed -i -e '1s@:@: $(QFCC_DEP)@' $$depbase.Tqo &&\
$(am__mv) $$depbase.Tqo $$depbase.Qo
qcautodep = $(join $(addsuffix $(DEPDIR)/,$(dir $(basename $(1)))),$(addsuffix .Qo,$(notdir $(basename $(basename $(1))))))
r_depfiles_remade=
pas_depfiles_remade=
V_PY = $(V_PY_@AM_V@)
V_PY_ = $(V_PY_@AM_DEFAULT_V@)
V_PY_0 = @echo " PY " $@;
V_PY_1 =
V_GLSLANG = $(V_GLSLANG_@AM_V@)
V_GLSLANG_ = $(V_GLSLANG_@AM_DEFAULT_V@)
V_GLSLANG_0 = @echo " GLSLANG " $@;
V_GLSLANG_1 =
V_XXD = $(V_XXD_@AM_V@)
V_XXD_ = $(V_XXD_@AM_DEFAULT_V@)
V_XXD_0 = @echo " XXD " $@;
V_XXD_1 =
V_SED = $(V_SED_@AM_V@)
V_SED_ = $(V_SED_@AM_DEFAULT_V@)
V_SED_0 = @echo " SED " $@;
V_SED_1 =
SUFFICES += .plist .plc
.plist.plc:
$(V_SED)sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/\\n"/' $< > $@.t &&\
$(am__mv) $@.t $@
%.spv: %
@$(mkdir_p) $(builddir)/`dirname $@`
$(V_GLSLANG)(((($(GLSLANGVALIDATOR) -V $< -o $@; echo $$? >&3) | sed -e '1d' 1>&2) 3>&1) | (read xs; exit $$xs))
%.spvc: %
@$(mkdir_p) $(builddir)/`dirname $@`
$(V_GLSLANG)(((($(GLSLANGVALIDATOR) --vn `basename $< | tr . _` -V $< -o $@; echo $$? >&3) | sed -e '1d' 1>&2) 3>&1) | (read xs; exit $$xs))
shaderdir = @shaderdir@
shader_DATA =
include doc/Makemodule.am
include RPM/Makemodule.am
include debian/Makemodule.am
include desktop/Makemodule.am
include pkg-config/Makemodule.am
include include/Makemodule.am
include libs/Makemodule.am
include hw/Makemodule.am
include nq/Makemodule.am
include qtv/Makemodule.am
include qw/Makemodule.am
include tools/Makemodule.am
include ruamoko/Makemodule.am
DISTCLEANFILES += $(r_depfiles_remade) $(pas_depfiles_remade)
CLEANFILES += $(shader_DATA)
$(r_depfiles_remade):
$(MKDIR_P) $(@D)
echo '$@' | sed -e 's@\$(DEPDIR)/@@' -e 's@\(.*\)\.Qo$$@\1.o: $(top_srcdir)/\1.r $(QFCC)@' >$@-t && $(am__mv) $@-t $@
$(pas_depfiles_remade):
$(MKDIR_P) $(@D)
echo '$@' | sed -e 's@\$(DEPDIR)/@@' -e 's@\(.*\)\.Qo$$@\1.o: $(top_srcdir)/\1.pas $(QFCC)@' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade) $(r_depfiles_remade) $(pas_depfiles_remade)
echo findme $(ruamoko_gui_libgui_a_dep)
changelog: ChangeLog
ChangeLog: FORCE
@if test -d "$(top_srcdir)/.git"; then \
@ -63,7 +209,6 @@ dist-all-local: distdir
ZIP="-r9ql" zip $(distdir).zip $(distdir)
-rm -rf $(distdir)
BUILT_SOURCES = $(top_srcdir)/.version
$(top_srcdir)/.version:
echo $(VERSION) > $@-t && mv $@-t $@
dist-hook:

View file

@ -1,40 +0,0 @@
This file gives instruction for compiling QF with cygwin to run in MS Windows(R).
DISCLAIMER: Use at your own risk, NO WARRANTY of any kind. NO GUARANTEE of correctness or usability.
If you have problems with these instructions please let me know.
email: wildcode@users.sourceforge.net
IRC: irc.xiph.org #quakeforge
==========================================================================
WARNING: This is not intended for inexperienced users, binaries are available on request.
QuakeForge may take several hours from bootstrap to the completion
of make install on some systems
To build win32(mingw) QuakeForge bins you will need to download and install cygwin, and the Microsoft DirectX SDK. Cygwin can be found at http://www.cygwin.org
Once cygwin is installed along with the appropriate developement modules, copy dinput.h from the DirectX SDK and place it in /usr/include/w32api/
If you want to use DirectSound also copy dsound.h to the same spot.
in the quakeforge source dir, within cygwin, type
./bootstrap
./configure --host=i386-mingw32 --build=i386-cygwin --target=i386-mingw32 --program-prefix= --with-static-plugins --disable-shared --disable-oss --disable-vorbis --disable-Werror --enable-optimize --enable-asmopt --disable-debug --enable-zlib
make
make install
--disable-Werror is needed as some versions of the DX SDK are buggy.
Go to the /usr/local/bin directory and copy the qw-* and nq-* files to your dos
quake dir
Let us know how it works for you.
NOTE: At the time of writing qw-server.exe was not working correctly. Please refrain from using it unless you are willing to fix it.
Special Note: QuakeForge supplies only our own version of the programs for Quake. To get the game data, you still need to have purchased Quake or get the shareware version from Id Software.
Chris Ison (WildCode) for QuakeForge
March 11, 2003

59
README.md Normal file
View file

@ -0,0 +1,59 @@
# QuakeForge
QuakeForge is descended from the original Quake engine as released by Id
Software in December 1999, and can be used to play original Quake and
QuakeWorld games and mods (including many modern mods). While this will
always be the case, development continues.
However, QuakeForge is not just a Quake engine, but includes a
collection of tools for creating Quake mods, and is progressing towards
being a more general game engine.
## Quake and QuakeWorld
Support for Quake and QuakeWorld is split into two program sets: nq for
Quake and qw-client for QuakeWorld, with the target system as an
additional suffix: -x11 For the X Window system (Linux, BSD, etc), -win
for MS Windows (plus others that are not currently maintained).
Both nq and qw-client support multiple renderers: 8-bit software, 32-bit
software, OpenGL 2, EGL (mostly, one non-EGL function is used), and
Vulkan (very WIP), all within the one executable.
Dedicated servers for both Quake (nq-server) and QuakeWorld (qw-server)
are included, as well as a master server for QuakeWorld (qw-master).
## Tools
QuakeForge includes several tools for working with Quake data:
- bsp2image produces wireframe images from Quake maps (bsp files)
- io_mesh_qfmdl for importing and exporting Quake mdl files to/from
Blender
- io_qfmap for Quake map source files (WIP Blender addon)
- pak create, list and extract Quake pak files. There's also zpak which
can be used to compress the contents of pak files using gzip
(QuakeForge has transparent support for gzip compressed files)
- qfbsp for compiling map files to bsp files, includes support for
vis clusters, and can be used to extract data and information from bsp
files.
- qfcc is QuakeForge's version of qcc, but is significantly more
advanced, with support for standard C syntax, including most C types,
as well as Objective-C object oriented programming (Ruamoko). Most of
the advanced features require the QuakeForge engine, but qfcc can
produce progs files compatible with the original Quake engine with
limited support for some of the advanced featuers (C syntax, reduced
global usage, some additional operators (eg, better bit operators,
remainder (%)). Includes qfprogs for inspecting progs files.
- qflight creates lightmaps for Quake maps
- qfvis for compiling PVS data for Quake maps. One of the faster
implementations available.
- Plus a few others in various stages of usefulness: qflmp, qfmodelgen,
qfspritegen, wad, qfwavinfo
## Building
For now, please refer to INSTALL for information on building on Linux.
Building for windows is done by cross-compiling using MXE. There are
scripts in tools/mingw and tools/mingw64 that automate the process of
configuring and building both the tools run on the build-host and the
windows targets.

View file

@ -1,9 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS= foreign
EXTRA_DIST= build_rpm.in quakeforge.conf.in quakeforge.spec.in
rpm: build_rpm quakeforge.conf quakeforge.spec
./build_rpm
CLEANFILES = *.rpm

6
RPM/Makemodule.am Normal file
View file

@ -0,0 +1,6 @@
EXTRA_DIST += RPM/build_rpm.in RPM/quakeforge.conf.in RPM/quakeforge.spec.in
rpm: RPM/build_rpm RPM/quakeforge.conf RPM/quakeforge.spec
cd RPM && ./build_rpm
CLEANFILES += rpm/*.rpm

View file

@ -18,7 +18,7 @@ if test "$1" = "clean"; then
find . -name '*.orig' -type f -print0 | xargs $ARGS rm -f
rm -f aclocal.m4 build-stamp changelog-stamp config.cache config.log \
config.status configure configure-stamp install-sh libtool missing \
mkinstalldirs quakeforge-config quakeforge.lsm
mkinstalldirs quakeforge-config quakeforge.lsm test-driver
rm -f compile config.guess config.sub depcomp ltmain.sh ylwrap
rm -rf autom4te.cache
rm -f m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
@ -44,7 +44,7 @@ if test x`uname` = xDarwin ; then
else
libtoolize=libtoolize
fi
lt=`which $libtoolize`
lt=`command -v $libtoolize --version`
if test -n "$lt" ; then
if test -x "$lt" ; then
LTIZE_VER=`$libtoolize --version | head -1 | sed 's/.* \([1-9][0-9]*\(\.[1-9][0-9]*\)\(\.[1-9][0-9]*\)*\).*/\1/'`
@ -63,7 +63,7 @@ else
fi
# Check Autoconf version
ac=`which autoconf`
ac=`command -v autoconf`
if test -n "$ac" ; then
if test -x "$ac" ; then
AC_VER=`autoconf --version | head -1 | sed 's/^[^0-9]*//'`
@ -71,18 +71,18 @@ if test -n "$ac" ; then
AC_VER_MINOR=`echo $AC_VER | cut -f2 -d'.' | sed 's/[^0-9]*$//'`
if test "$AC_VER_MAJOR" -lt "2" ; then
errors="Autoconf 2.61 or greater needed to build configure.\n$errors"
errors="Autoconf 2.69 or greater needed to build configure.\n$errors"
fi
if test "$AC_VER_MAJOR" -eq "2" -a "$AC_VER_MINOR" -lt "61" ; then
errors="Autoconf 2.61 or greater needed to build configure.\n$errors"
if test "$AC_VER_MAJOR" -eq "2" -a "$AC_VER_MINOR" -lt "69" ; then
errors="Autoconf 2.69 or greater needed to build configure.\n$errors"
fi
fi
else
errors="Autoconf not found. QuakeForge git requires autoconf to bootstrap itself.\n$errors"
fi
am=`which automake`
am=`command -v automake`
if test -n "$am" ; then
if test -x "$am" ; then
AM_VER=`automake --version | head -1 | sed -e 's/automake (GNU automake) //' -e 's/\-p.*$//'`

View file

@ -1,103 +1,4 @@
Makefile
include/Makefile
include/QF/Makefile
libs/Makefile
libs/audio/Makefile
libs/audio/targets/Makefile
libs/audio/renderer/Makefile
libs/audio/test/Makefile
libs/console/Makefile
libs/client/Makefile
libs/gamecode/Makefile
libs/gib/Makefile
libs/image/Makefile
libs/models/Makefile
libs/models/alias/Makefile
libs/models/brush/Makefile
libs/models/iqm/Makefile
libs/models/sprite/Makefile
libs/models/test/Makefile
libs/net/Makefile
libs/net/nc/Makefile
libs/net/nm/Makefile
libs/qw/Makefile
libs/ruamoko/Makefile
libs/util/Makefile
libs/util/test/Makefile
libs/video/Makefile
libs/video/renderer/Makefile
libs/video/renderer/gl/Makefile
libs/video/renderer/glsl/Makefile
libs/video/renderer/sw/Makefile
libs/video/renderer/sw32/Makefile
libs/video/targets/Makefile
hw/Makefile
hw/include/Makefile
hw/source/Makefile
nq/Makefile
nq/include/Makefile
nq/source/Makefile
qtv/Makefile
qtv/include/Makefile
qtv/source/Makefile
qw/Makefile
qw/include/Makefile
qw/source/Makefile
tools/Makefile
tools/bsp2img/Makefile
tools/carne/Makefile
tools/pak/Makefile
tools/qfbsp/Makefile
tools/qfbsp/include/Makefile
tools/qfbsp/source/Makefile
tools/qfcc/Makefile
tools/qfcc/doc/Makefile
tools/qfcc/doc/man/Makefile
tools/qfcc/include/Makefile
tools/qfcc/source/Makefile
tools/qfcc/test/Makefile
tools/qflight/Makefile
tools/qflight/include/Makefile
tools/qflight/source/Makefile
tools/qflmp/Makefile
tools/qfmodelgen/Makefile
tools/qfmodelgen/include/Makefile
tools/qfmodelgen/source/Makefile
tools/qfspritegen/Makefile
tools/qfvis/Makefile
tools/qfvis/include/Makefile
tools/qfvis/source/Makefile
tools/qwaq/Makefile
tools/qwaq/progs.src
tools/wad/Makefile
tools/wav/Makefile
ruamoko/Makefile
ruamoko/Doxyfile
ruamoko/include/Makefile
ruamoko/lib/Makefile
ruamoko/game/Makefile
ruamoko/gui/Makefile
ruamoko/cl_menu/Makefile
ruamoko/scheme/Makefile
pkg-config/Makefile
pkg-config/qfcc.pc
pkg-config/quakeforge.pc
doc/Makefile
doc/quakeforge.dox.conf
doc/man/Makefile
debian/Makefile
desktop/Makefile
vc2005/Makefile
vc2008/Makefile

View file

@ -5,9 +5,11 @@ case "${host}" in
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(to see if we should disable asm optimizations)
AC_ARG_ENABLE(asmopt,
[ --disable-asmopt disable assembler optimization],
AS_HELP_STRING([--disable-asmopt],
[disable assembler optimization]),
AC_MSG_RESULT(yes),
AC_DEFINE(USE_INTEL_ASM, 1, [Define this if you want to use Intel assembly optimizations])
AC_DEFINE(USE_INTEL_ASM, 1,
[Define this if you want to use Intel assembly optimizations])
ASM_ARCH=yes
AC_MSG_RESULT(no)
)
@ -17,10 +19,10 @@ esac
AM_CONDITIONAL(ASM_ARCH, test "x$ASM_ARCH" = "xyes")
AC_MSG_CHECKING(for underscore prefix in names)
AC_TRY_LINK(
[asm(".long _bar");
int bar;],
[],
AC_DEFINE(HAVE_SYM_PREFIX_UNDERSCORE, 1, [Define this if C symbols are prefixed with an underscore]) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[asm(".long _bar"); int bar;]], [[]])],
[AC_DEFINE(HAVE_SYM_PREFIX_UNDERSCORE, 1,
[Define this if C symbols are prefixed with an underscore])
AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
])

View file

@ -4,17 +4,17 @@ dnl ==================================================================
QF_WITH_TARGETS(
clients,
[ --with-clients=<list> compile clients in <list>:],
[fbdev,sdl,svga,x11],dummy
[compile clients],
[fbdev,sdl,svga,win,x11],dummy
)
QF_WITH_TARGETS(
servers,
[ --with-servers=<list> compile dedicated server:],
[compile dedicated servers],
[master,nq,qw,qtv],dummy
)
QF_WITH_TARGETS(
tools,
[ --with-tools=<list> compile qf tools:],
[compile qf tools],
[bsp2img,carne,gsc,pak,qfbsp,qfcc,qflight,qflmp,qfmodelgen,qfspritegen,qfvis,qwaq,wad,wav],dummy
)
@ -27,6 +27,20 @@ QWAQ_TARGETS=""
QW_DESKTOP_DATA=""
NQ_DESKTOP_DATA=""
BSP2IMG_TARGETS=""
CARNE_TARGETS=""
PAK_TARGETS=""
QFBSP_TARGETS=""
QFCC_TARGETS=""
QFLIGHT_TARGETS=""
QFLMP_TARGETS=""
QFMODELGEN_TARGETS=""
QFSPRITEGEN_TARGETS=""
QFVIS_TARGETS=""
WAD_TARGETS=""
WAV_TARGETS=""
VKGEN_TARGETS=""
CD_TARGETS=""
SND_TARGETS=""
VID_MODEL_TARGETS=""
@ -39,8 +53,9 @@ if test "x$HAVE_FBDEV" = xyes; then
QW_TARGETS="$QW_TARGETS qw-client-fbdev\$(EXEEXT)"
NQ_TARGETS="$NQ_TARGETS nq-fbdev\$(EXEEXT)"
CL_TARGETS="$CL_TARGETS FBDEV"
VID_TARGETS="$VID_TARGETS libQFfbdev.la"
VID_TARGETS="$VID_TARGETS libs/video/targets/libQFfbdev.la"
QF_NEED(vid_render, [sw])
QF_NEED(render, [sw])
QF_NEED(models, [sw])
QF_NEED(alias, [sw])
QF_NEED(brush, [sw])
@ -66,12 +81,22 @@ if test "x$HAVE_X" = xyes; then
if test "x$ENABLE_clients_x11" = xyes; then
QW_TARGETS="$QW_TARGETS qw-client-x11\$(EXEEXT)"
NQ_TARGETS="$NQ_TARGETS nq-x11\$(EXEEXT)"
QWAQ_TARGETS="$QWAQ_TARGETS qwaq-x11\$(EXEEXT)"
QW_DESKTOP_DATA="$QW_DESKTOP_DATA quakeforge-qw-x11.desktop"
NQ_DESKTOP_DATA="$NQ_DESKTOP_DATA quakeforge-nq-x11.desktop"
QWAQ_TARGETS="$QWAQ_TARGETS ruamoko/qwaq/qwaq-x11\$(EXEEXT)"
QW_DESKTOP_DATA="$QW_DESKTOP_DATA desktop/quakeforge-qw-x11.desktop"
NQ_DESKTOP_DATA="$NQ_DESKTOP_DATA desktop/quakeforge-nq-x11.desktop"
CL_TARGETS="$CL_TARGETS X11"
VID_TARGETS="$VID_TARGETS libQFx11.la"
QF_NEED(vid_render, [sw sw32 gl glsl])
VID_TARGETS="$VID_TARGETS libs/video/targets/libQFx11.la"
if test "$HAVE_VULKAN" = "yes"; then
QF_NEED(vid_render, [vulkan])
QF_NEED(render, [vulkan])
QF_NEED(models, [vulkan])
QF_NEED(alias, [vulkan])
QF_NEED(brush, [vulkan])
QF_NEED(iqm, [vulkan])
QF_NEED(sprite, [vulkan])
fi
QF_NEED(vid_render, [sw gl glsl])
QF_NEED(render, [sw gl glsl])
QF_NEED(models, [sw gl glsl])
QF_NEED(alias, [sw gl glsl])
QF_NEED(brush, [sw gl glsl])
@ -91,11 +116,12 @@ if test "x$HAVE_SDL" = xyes; then
if test "x$ENABLE_clients_sdl" = xyes; then
QW_TARGETS="$QW_TARGETS qw-client-sdl\$(EXEEXT)"
NQ_TARGETS="$NQ_TARGETS nq-sdl\$(EXEEXT)"
QW_DESKTOP_DATA="$QW_DESKTOP_DATA quakeforge-qw-sdl.desktop"
NQ_DESKTOP_DATA="$NQ_DESKTOP_DATA quakeforge-nq-sdl.desktop"
QW_DESKTOP_DATA="$QW_DESKTOP_DATA desktop/quakeforge-qw-sdl.desktop"
NQ_DESKTOP_DATA="$NQ_DESKTOP_DATA desktop/quakeforge-nq-sdl.desktop"
CL_TARGETS="$CL_TARGETS SDL"
VID_TARGETS="$VID_TARGETS libQFsdl.la"
QF_NEED(vid_render, [sw sw32 gl glsl])
VID_TARGETS="$VID_TARGETS libs/video/targets/libQFsdl.la"
QF_NEED(vid_render, [sw gl glsl])
QF_NEED(render, [sw gl glsl])
QF_NEED(models, [sw gl glsl])
QF_NEED(alias, [sw gl glsl])
QF_NEED(brush, [sw gl glsl])
@ -116,8 +142,9 @@ if test "x$HAVE_SVGA" = xyes; then
QW_TARGETS="$QW_TARGETS qw-client-svga\$(EXEEXT)"
NQ_TARGETS="$NQ_TARGETS nq-svga\$(EXEEXT)"
CL_TARGETS="$CL_TARGETS SVGAlib"
VID_TARGETS="$VID_TARGETS libQFsvga.la"
VID_TARGETS="$VID_TARGETS libs/video/targets/libQFsvga.la"
QF_NEED(vid_render, [sw])
QF_NEED(render, [sw])
QF_NEED(models, [sw])
QF_NEED(alias, [sw])
QF_NEED(brush, [sw])
@ -133,25 +160,37 @@ if test "x$HAVE_SVGA" = xyes; then
QF_NEED(libs,[util gamecode ruamoko gib audio image models video console net qw client])
fi
fi
#if test "x$mingw" = xyes; then
# if test "x$ENABLE_clients_wgl" = xyes; then
# QW_TARGETS="$QW_TARGETS qw-client-wgl\$(EXEEXT)"
# NQ_TARGETS="$NQ_TARGETS nq-wgl\$(EXEEXT)"
# CL_TARGETS="$CL_TARGETS WGL"
# VID_TARGETS="$VID_TARGETS libQFwgl.la"
# QF_NEED(vid_render, [gl])
# QF_NEED(models, [gl])
# QF_NEED(alias, [gl])
# QF_NEED(brush, [gl])
# QF_NEED(iqm, [gl])
# QF_NEED(sprite, [gl])
# QF_NEED(vid, [common])
# QF_NEED(qw, [client common])
# QF_NEED(nq, [client common])
# QF_NEED(console, [client])
# QF_NEED(libs,[util gamecode ruamoko gib audio image models video console net qw client])
# fi
#fi
if test "x$mingw" = xyes; then
if test "x$ENABLE_clients_win" = xyes; then
QW_TARGETS="$QW_TARGETS qw-client-win\$(EXEEXT)"
NQ_TARGETS="$NQ_TARGETS nq-win\$(EXEEXT)"
CL_TARGETS="$CL_TARGETS WIN"
VID_TARGETS="$VID_TARGETS libs/video/targets/libQFwin.la"
if test "$HAVE_VULKAN" = "yes"; then
QF_NEED(vid_render, [vulkan])
QF_NEED(render, [vulkan])
QF_NEED(models, [vulkan])
QF_NEED(alias, [vulkan])
QF_NEED(brush, [vulkan])
QF_NEED(iqm, [vulkan])
QF_NEED(sprite, [vulkan])
fi
QF_NEED(vid_render, [sw gl glsl])
QF_NEED(models, [sw gl glsl])
QF_NEED(alias, [sw gl glsl])
QF_NEED(brush, [sw gl glsl])
QF_NEED(iqm, [sw gl glsl])
QF_NEED(sprite, [sw gl glsl])
if test "x$ASM_ARCH" = "xyes"; then
QF_NEED(swrend, [asm])
fi
QF_NEED(vid, [common win])
QF_NEED(qw, [client common])
QF_NEED(nq, [client common])
QF_NEED(console, [client])
QF_NEED(libs,[util gamecode ruamoko gib audio image models video console net qw client])
fi
fi
unset SV_TARGETS
if test "x$ENABLE_servers_nq" = xyes; then
@ -163,8 +202,8 @@ if test "x$ENABLE_servers_nq" = xyes; then
QF_NEED(libs,[util gamecode ruamoko gib image models console net])
fi
if test "x$ENABLE_servers_qtv" = xyes; then
QTV_TARGETS="qtv\$(EXEEXT) $QTV_TARGETS"
SV_TARGETS="$SV_TARGETS qtv"
QTV_TARGETS="qtv-server\$(EXEEXT) $QTV_TARGETS"
SV_TARGETS="$SV_TARGETS qtv-server"
# QF_NEED(qtv, [common server])
QF_NEED(console, [server])
QF_NEED(top, [qtv])
@ -187,98 +226,157 @@ if test "x$ENABLE_servers_qw" = xyes; then
fi
if test "x$ENABLE_tools_bsp2img" = xyes; then
BSP2IMG_TARGETS="bsp2img\$(EXEEXT)"
QF_NEED(tools,[bsp2img])
QF_NEED(libs,[image util])
fi
if test "x$ENABLE_tools_carne" = xyes; then
CARNE_TARGETS="carne\$(EXEEXT)"
QF_NEED(tools,[carne])
QF_NEED(libs,[gib ruamoko gamecode util])
fi
if test "x$ENABLE_tools_pak" = xyes; then
PAK_TARGETS="pak\$(EXEEXT)"
QF_NEED(tools,[pak])
QF_NEED(libs,[util])
fi
if test "x$ENABLE_tools_qfbsp" = xyes; then
QFBSP_TARGETS="qfbsp\$(EXEEXT)"
QF_NEED(tools,[qfbsp])
QF_NEED(libs,[models image util])
fi
if test "x$ENABLE_tools_qfcc" = xyes; then
QFCC_TARGETS="qfcc\$(EXEEXT) qfprogs\$(EXEEXT)"
QF_NEED(tools,[qfcc])
QF_NEED(libs,[gamecode util])
fi
if test "x$ENABLE_tools_qflight" = xyes; then
QFLIGHT_TARGETS="qflight\$(EXEEXT)"
QF_NEED(tools,[qflight])
QF_NEED(libs,[util])
fi
if test "x$ENABLE_tools_qflmp" = xyes; then
QFLMP_TARGETS="qflmp\$(EXEEXT)"
QF_NEED(tools,[qflmp])
QF_NEED(libs,[util])
fi
if test "x$ENABLE_tools_qfmodelgen" = xyes; then
QFMODELGEN_TARGETS="qfmodelgen\$(EXEEXT)"
QF_NEED(tools,[qfmodelgen])
QF_NEED(libs,[util])
fi
if test "x$ENABLE_tools_qfspritegen" = xyes; then
QFSPRITEGEN_TARGETS="qfspritegen\$(EXEEXT)"
QF_NEED(tools,[qfspritegen])
QF_NEED(libs,[util])
fi
if test "x$ENABLE_tools_qfvis" = xyes; then
QFVIS_TARGETS="qfvis\$(EXEEXT)"
QF_NEED(tools,[qfvis])
QF_NEED(libs,[util])
fi
if test "x$ENABLE_tools_qwaq" = xyes; then
QF_NEED(tools,[qwaq])
if test "x$HAVE_NCURSES" == "xyes" -a "x$HAVE_PANEL" = xyes -a "x$HAVE_PTHREAD" = xyes; then
QWAQ_TARGETS="$QWAQ_TARGETS ruamoko/qwaq/qwaq-curses\$(EXEEXT)"
dnl FIXME move key code (maybe to ui?)
QF_NEED(vid, [common])
fi
if test "x$HAVE_PTHREAD" = xyes; then
QWAQ_TARGETS="$QWAQ_TARGETS ruamoko/qwaq/qwaq-cmd\$(EXEEXT)"
fi
QF_NEED(tools,[qfcc])
QF_NEED(ruamoko,[qwaq])
QF_NEED(libs,[ruamoko gamecode util])
fi
if test "x$ENABLE_tools_wad" = xyes; then
WAD_TARGETS="wad\$(EXEEXT)"
QF_NEED(tools,[wad])
QF_NEED(libs,[image util])
fi
if test "x$ENABLE_tools_wav" = xyes; then
WAV_TARGETS="qfwavinfo\$(EXEEXT)"
QF_NEED(tools,[wav])
QF_NEED(libs,[util])
fi
if test "x$render_need_vulkan" = xyes; then
VKGEN_TARGETS="vkgen.dat\$(EXEEXT)"
QF_NEED(tools,[qfcc pak qwaq])
fi
QF_NEED(top, [libs hw nq qtv qw])
QF_PROCESS_NEED_DIRS(tools,[bsp2img carne pak qfbsp qfcc qflight qflmp qfmodelgen qfspritegen qfvis qwaq wad wav])
QF_PROCESS_NEED_FUNC(tools,[bsp2img carne pak qfbsp qfcc qflight qflmp qfmodelgen qfspritegen qfvis qwaq wad wav], QF_NEED(top,tools))
QF_PROCESS_NEED_LIST(tools,[bsp2img carne pak qfbsp qfcc qflight qflmp qfmodelgen qfspritegen qfvis wad wav])
QF_PROCESS_NEED_FUNC(tools,[bsp2img carne pak qfbsp qfcc qflight qflmp qfmodelgen qfspritegen qfvis wad wav], QF_NEED(top,tools))
QF_PROCESS_NEED_DIRS(libs,[util gamecode ruamoko gib audio image models video console net qw client])
QF_PROCESS_NEED_LIST(libs,[util gamecode ruamoko gib audio image models video console net qw client])
QF_PROCESS_NEED_LIST(ruamoko,[qwaq])
if test "$ENABLE_tools_qfcc" = "yes" -a "$ENABLE_tools_pak" = "yes"; then
QF_NEED(top, [ruamoko])
qfac_qfcc_include_qf="\$(qfcc_include_qf)"
qfac_qfcc_include_qf_input="\$(qfcc_include_qf_input)"
qfac_qfcc_include_qf_progs="\$(qfcc_include_qf_progs)"
fi
QF_SUBST(qfac_qfcc_include_qf)
QF_SUBST(qfac_qfcc_include_qf_input)
QF_SUBST(qfac_qfcc_include_qf_progs)
if test x"${top_need_libs}" = xyes; then
qfac_include_qf="\$(include_qf)"
qfac_include_qf_gl="\$(include_qf_gl)"
qfac_include_qf_glsl="\$(include_qf_glsl)"
qfac_include_qf_input="\$(include_qf_input)"
qfac_include_qf_math="\$(include_qf_math)"
qfac_include_qf_plugin="\$(include_qf_plugin)"
qfac_include_qf_progs="\$(include_qf_progs)"
qfac_include_qf_scene="\$(include_qf_scene)"
qfac_include_qf_simd="\$(include_qf_simd)"
qfac_include_qf_ui="\$(include_qf_ui)"
qfac_include_qf_vulkan="\$(include_qf_vulkan)"
fi
QF_SUBST(qfac_include_qf)
QF_SUBST(qfac_include_qf_gl)
QF_SUBST(qfac_include_qf_glsl)
QF_SUBST(qfac_include_qf_input)
QF_SUBST(qfac_include_qf_math)
QF_SUBST(qfac_include_qf_plugin)
QF_SUBST(qfac_include_qf_progs)
QF_SUBST(qfac_include_qf_scene)
QF_SUBST(qfac_include_qf_simd)
QF_SUBST(qfac_include_qf_ui)
QF_SUBST(qfac_include_qf_vulkan)
progs_gz=
if test "$HAVE_ZLIB" = "yes"; then
progs_gz=".gz"
fi
QF_SUBST(progs_gz)
QF_PROCESS_NEED_DIRS(top, [libs hw nq qtv qw tools ruamoko])
QF_PROCESS_NEED_LIST(top, [libs hw nq qtv qw tools ruamoko])
QF_PROCESS_NEED_LIBS(swrend, [asm])
QF_PROCESS_NEED_DIRS(vid_render, [gl glsl sw sw32])
QF_PROCESS_NEED_LIBS(models, [gl glsl sw])
QF_PROCESS_NEED_LIBS(alias, [gl glsl sw])
QF_PROCESS_NEED_LIBS(brush, [gl glsl sw])
QF_PROCESS_NEED_LIBS(iqm, [gl glsl sw])
QF_PROCESS_NEED_LIBS(sprite, [gl glsl sw])
QF_PROCESS_NEED_LIBS(render, [gl glsl sw vulkan], [libs/video/renderer])
QF_PROCESS_NEED_LIST(vid_render, [gl glsl sw vulkan])
QF_PROCESS_NEED_LIBS(models, [gl glsl sw vulkan], [libs/models])
QF_PROCESS_NEED_LIBS(alias, [gl glsl sw vulkan], [libs/models/alias])
QF_PROCESS_NEED_LIBS(brush, [gl glsl sw vulkan], [libs/models/brush])
QF_PROCESS_NEED_LIBS(iqm, [gl glsl sw vulkan], [libs/models/iqm])
QF_PROCESS_NEED_LIBS(sprite, [gl glsl sw vulkan], [libs/models/sprite])
QF_PROCESS_NEED_LIBS(vid, [common sdl svga x11])
QF_PROCESS_NEED_LIBS(qw, [client common sdl server], a)
QF_PROCESS_NEED_LIBS(nq, [client common sdl server], a)
QF_PROCESS_NEED_LIBS(input, [evdev], [libs/input])
QF_PROCESS_NEED_LIBS(vid, [common sdl svga win x11], [libs/video/targets])
QF_PROCESS_NEED_LIBS(qw, [client common sdl win server], [qw/source], a)
QF_PROCESS_NEED_LIBS(nq, [client common sdl win server], [nq/source], a)
if test -n "$CL_TARGETS"; then
CD_TARGETS="libQFcd.la"
SND_TARGETS="libQFsound.la"
AUDIO_TARGETS="testsound\$(EXEEXT)"
JOY_TARGETS="libQFjs.la"
CD_TARGETS="libs/audio/libQFcd.la"
SND_TARGETS="libs/audio/libQFsound.la"
AUDIO_TARGETS="libs/audio/test/testsound\$(EXEEXT)"
else
unset CDTYPE
unset SOUND_TYPES
CD_TARGETS=""
JOY_TARGETS=""
SND_TARGETS=""
AUDIO_TARGETS=""
fi
@ -300,7 +398,8 @@ QF_SUBST(PREFER_NON_PIC)
QF_SUBST(STATIC)
AC_ARG_WITH(static-plugins,
[ --with-static-plugins build plugins into executable rather than separate],
AS_HELP_STRING([--with-static-plugins],
[build plugins into executable rather than separate]),
static_plugins="$withval", static_plugins=auto)
if test "x$static_plugins" = xauto; then
if test "x$enable_shared" = xno -o "x$SYSTYPE" = xWIN32; then
@ -308,13 +407,13 @@ if test "x$static_plugins" = xauto; then
fi
fi
if test "x$static_plugins" = xyes; then
QF_PROCESS_NEED_STATIC_PLUGINS(vid_render, [sw sw32 glsl gl])
QF_PROCESS_NEED_STATIC_PLUGINS(console, [server], [\$(top_builddir)/libs/console], [server])
QF_PROCESS_NEED_STATIC_PLUGINS(console, [client], [\$(top_builddir)/libs/console], [client])
QF_PROCESS_NEED_STATIC_PLUGINS(vid_render, [sw glsl gl vulkan], [libs/video/renderer])
QF_PROCESS_NEED_STATIC_PLUGINS(console, [server], [libs/console], [server])
QF_PROCESS_NEED_STATIC_PLUGINS(console, [client], [libs/console], [client])
QF_PROCESS_NEED_STATIC_PLUGINS(snd_output, [sdl mme sgi sun win dx oss alsa], [targets])
QF_PROCESS_NEED_STATIC_PLUGINS(snd_render, [jack default], [renderer])
QF_PROCESS_NEED_STATIC_PLUGINS(cd, [xmms sdl sgi win linux file])
QF_PROCESS_NEED_STATIC_PLUGINS(snd_output, [sdl mme sgi sun win dx oss jack alsa], [libs/audio/targets])
QF_PROCESS_NEED_STATIC_PLUGINS(snd_render, [default], [libs/audio/renderer])
QF_PROCESS_NEED_STATIC_PLUGINS(cd, [xmms sdl sgi win linux file], [libs/audio])
AC_DEFINE(STATIC_PLUGINS, 1, [Define this if you are building static plugins])
if test -n "$SOUND_TYPES"; then
SOUND_TYPES="$SOUND_TYPES (static)"
@ -323,12 +422,12 @@ if test "x$static_plugins" = xyes; then
CDTYPE="$CDTYPE (static)"
fi
else
QF_PROCESS_NEED_PLUGINS(vid_render, [sw sw32 glsl gl])
QF_PROCESS_NEED_PLUGINS(console, [server], [server])
QF_PROCESS_NEED_PLUGINS(console, [client], [client])
QF_PROCESS_NEED_PLUGINS(snd_output, [sdl mme sgi sun win dx oss alsa])
QF_PROCESS_NEED_PLUGINS(snd_render, [jack default])
QF_PROCESS_NEED_PLUGINS(cd, [xmms sdl sgi win linux file])
QF_PROCESS_NEED_PLUGINS(vid_render, [sw glsl gl vulkan], [libs/video/renderer])
QF_PROCESS_NEED_PLUGINS(console, [server], [libs/console], [server])
QF_PROCESS_NEED_PLUGINS(console, [client], [libs/console], [client])
QF_PROCESS_NEED_PLUGINS(snd_output, [sdl mme sgi sun win dx oss jack alsa], [libs/audio/targets])
QF_PROCESS_NEED_PLUGINS(snd_render, [default], [libs/audio/renderer])
QF_PROCESS_NEED_PLUGINS(cd, [xmms sdl sgi win linux file], [libs/audio])
fi
dnl Do not use -module here, it belongs in makefile.am due to automake
@ -342,7 +441,6 @@ QF_SUBST(QWAQ_TARGETS)
QF_SUBST(QW_TARGETS)
QF_SUBST(QW_DESKTOP_DATA)
QF_SUBST(CD_TARGETS)
QF_SUBST(JOY_TARGETS)
QF_SUBST(SND_TARGETS)
QF_SUBST(AUDIO_TARGETS)
QF_SUBST(VID_MODEL_TARGETS)
@ -350,6 +448,21 @@ QF_SUBST(VID_REND_TARGETS)
QF_SUBST(VID_REND_NOINST_TARGETS)
QF_SUBST(VID_TARGETS)
QF_SUBST(BSP2IMG_TARGETS)
QF_SUBST(CARNE_TARGETS)
QF_SUBST(PAK_TARGETS)
QF_SUBST(QFBSP_TARGETS)
QF_SUBST(QFCC_TARGETS)
QF_SUBST(QFLIGHT_TARGETS)
QF_SUBST(QFLMP_TARGETS)
QF_SUBST(QFMODELGEN_TARGETS)
QF_SUBST(QFSPRITEGEN_TARGETS)
QF_SUBST(QFVIS_TARGETS)
QF_SUBST(WAD_TARGETS)
QF_SUBST(WAV_TARGETS)
QF_SUBST(VKGEN_TARGETS)
QF_DEPS(BSP2IMG,
[],
[$(top_builddir)/libs/image/libQFimage.la
@ -372,6 +485,7 @@ QF_DEPS(QFCC,
QF_DEPS(QFCC_TEST,
[],
[$(top_builddir)/libs/ruamoko/libQFruamoko.la
$(top_builddir)/libs/gamecode/libQFgamecode.la
$(top_builddir)/libs/util/libQFutil.la],
[$(WIN32_LIBS)],
)
@ -404,8 +518,9 @@ QF_DEPS(QFVIS,
[$(WIN32_LIBS)],
)
QF_DEPS(QWAQ,
[],
[-I$(top_srcdir)/ruamoko/qwaq],
[$(top_builddir)/libs/ruamoko/libQFruamoko.la
$(top_builddir)/libs/gamecode/libQFgamecode.la
$(top_builddir)/libs/util/libQFutil.la],
[$(WIN32_LIBS)],
)
@ -413,6 +528,7 @@ QF_DEPS(CARNE,
[],
[$(top_builddir)/libs/gib/libQFgib.la
$(top_builddir)/libs/ruamoko/libQFruamoko.la
$(top_builddir)/libs/gamecode/libQFgamecode.la
$(top_builddir)/libs/util/libQFutil.la],
[$(WIN32_LIBS)],
)
@ -432,3 +548,8 @@ QF_DEPS(WAV,
[$(top_builddir)/libs/util/libQFutil.la],
[$(WIN32_LIBS)],
)
QF_DEPS(VKGEN,
[],
[],
[],
)

View file

@ -4,7 +4,7 @@ dnl ==================================================================
dnl XMMS Checks
AC_ARG_ENABLE(xmms,
[ --enable-xmms enable checking for XMMS],
AS_HELP_STRING([--enable-xmms], [enable checking for XMMS])
)
if test "x$mingw" != xyes -a "x$enable_xmms" == xyes; then
AM_PATH_XMMS(0.9.5.1, HAVE_XMMS=yes, HAVE_XMMS=no)
@ -59,10 +59,12 @@ AC_SUBST(SGI_CD_LIBS)
AC_EGREP_CPP([QF_maGiC_VALUE],
[
#ifdef _WIN32
#include <windows.h>
#include <mmsystem.h>
#if defined(MCI_SET_DOOR_OPEN)
QF_maGiC_VALUE
#endif
#endif
],
CDTYPE="$CDTYPE WIN32"
@ -78,8 +80,8 @@ AC_SUBST(CD_LIBS)
AC_ARG_WITH([cd-default],
AS_HELP_STRING([--with-cd-default=...],
[Plugin to use for the default cd driver.]
[Defaults to File.]
[plugin to use for the default cd driver.]
[Defaults to file.]
[[file linux xmms sdl sgi win32]]),
[cd_default="$withval"]
)

View file

@ -16,19 +16,19 @@ AC_MSG_RESULT([$leave_cflags_alone])
AC_MSG_CHECKING(for C99 inline)
c99_inline=no
AC_TRY_LINK(
[inline int foo (int x) { return x * x; }
int (*bar) (int) = foo;],
[],
c99_inline=no
AC_MSG_RESULT(no),
c99_inline=yes
AC_DEFINE(HAVE_C99INLINE, extern, [define this if using c99 inline])
AC_MSG_RESULT(yes)
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[inline int foo (int x) { return x * x; }
int (*bar) (int) = foo;]],
[[]])],
[c99_inline=no
AC_MSG_RESULT(no)],
[c99_inline=yes
AC_DEFINE(HAVE_C99INLINE, extern, define this if using c99 inline)
AC_MSG_RESULT(yes)]
)
AH_VERBATIM([HAVE_C99INLINE],
[/* Define this if the GCC __attribute__ keyword is available */
#undef HAVE_C99INLINE
[#undef HAVE_C99INLINE
#ifdef HAVE_C99INLINE
# define GNU89INLINE
#else
@ -53,7 +53,7 @@ if test "x$GCC" = xyes; then
fi
AC_ARG_ENABLE(debug,
[ --disable-debug compile without debugging],
AS_HELP_STRING([--disable-debug], [compile without debugging]),
debug=$enable_debug
)
@ -76,28 +76,83 @@ else
AC_MSG_RESULT(no)
fi
AC_ARG_ENABLE(Werror,
AS_HELP_STRING([--disable-Werror], [do not treat warnings as errors]))
dnl We want warnings, lots of warnings...
dnl The help text should be INVERTED before release!
dnl when in git, this test defaults to ENABLED.
dnl In a release, this test defaults to DISABLED.
if test "x$GCC" = "xyes"; then
if test "x$enable_Werror" $cvs_def_enabled; then
CFLAGS="$CFLAGS -Wall -Werror -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
else
CFLAGS="$CFLAGS -Wall"
fi
CFLAGS="$CFLAGS -fno-common"
fi
AC_ARG_ENABLE(optimize,
[ --disable-optimize compile without optimizations (for development)],
AS_HELP_STRING([--disable-optimize],
[compile without optimizations (for development)]),
optimize=$enable_optimize,
optimize=yes
)
if test "x$host_cpu" = xaarch64; then
simd=neon
else
AC_ARG_ENABLE(simd,
AS_HELP_STRING([--enable-simd@<:@=arg@:.@],
[enable SIMD support (default auto)]),
[],
[enable_simd=yes]
)
case "$enable_simd" in
no)
simd=no
;;
sse|sse2|avx|avx2)
QF_CC_OPTION(-m$enable_simd)
simd=$enable_simd
;;
yes)
for simd in avx2 avx sse2 sse; do
if lscpu | grep -q -w $simd; then
QF_CC_OPTION(-m$simd)
break
fi
done
;;
esac
case "$simd" in
avx*)
;;
*)
QF_CC_OPTION(-Wno-psabi)
;;
esac
fi
AC_MSG_CHECKING(for optimization)
if test "x$optimize" = xyes -a "x$leave_cflags_alone" != "xyes"; then
AC_MSG_RESULT(yes)
BUILD_TYPE="$BUILD_TYPE Optimize"
if test "x$GCC" = xyes; then
saved_cflags="$CFLAGS"
CFLAGS=""
dnl CFLAGS=""
QF_CC_OPTION(-frename-registers)
if test "$CC_MAJ" -ge 4; then
QF_CC_OPTION(-finline-limit=32000 -Winline)
fi
heavy="-O2 $CFLAGS -ffast-math -fno-unsafe-math-optimizations -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
QF_CC_OPTION(-fexpensive-optimizations)
dnl if test "$CC_MAJ" -ge 4; then
dnl QF_CC_OPTION(-finline-limit=32000 -Winline)
dnl fi
dnl heavy="-O2 $CFLAGS -ffast-math -fno-unsafe-math-optimizations -funroll-loops -fomit-frame-pointer"
heavy="-O2 $CFLAGS -fno-fast-math -funroll-loops -fomit-frame-pointer "
CFLAGS="$saved_cflags"
light="-O2"
AC_ARG_ENABLE(strict-aliasing,
[ --enable-strict-aliasing enable the -fstrict-aliasing option of gcc])
AS_HELP_STRING([--enable-strict-aliasing],
[enable the -fstrict-aliasing option of gcc]))
if test "x$enable_strict_aliasing" = "xyes"; then
heavy="$heavy -fstrict-aliasing"
light="$light -fstrict-aliasing"
@ -118,7 +173,8 @@ if test "x$optimize" = xyes -a "x$leave_cflags_alone" != "xyes"; then
fi
AC_MSG_CHECKING(for special compiler settings)
AC_ARG_WITH(arch,
[ --with-arch=ARCH control compiler architecture directly],
AS_HELP_STRING([--with-arch=ARCH],
[control compiler architecture directly]),
arch="$withval", arch=auto
)
case "$arch" in
@ -144,25 +200,17 @@ if test "x$optimize" = xyes -a "x$leave_cflags_alone" != "xyes"; then
else
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $MORE_CFLAGS"
AC_TRY_COMPILE(
[],
[],
AC_MSG_RESULT(yes),
CFLAGS="$save_CFLAGS"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[AC_MSG_RESULT(yes)],[CFLAGS="$save_CFLAGS"
AC_MSG_RESULT(no)
)
])
fi
if test $CC_MAJ = 2 -a $CC_MIN = 96; then
AC_MSG_CHECKING(if align options work)
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -malign-loops=2 -malign-jumps=2 -malign-functions=2"
AC_TRY_COMPILE(
[],
[],
light="$light -malign-loops=2 -malign-jumps=2 -malign-functions=2"
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[light="$light -malign-loops=2 -malign-jumps=2 -malign-functions=2"
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
CFLAGS="$save_CFLAGS"
CFLAGS="$CFLAGS $light"
else
@ -177,7 +225,8 @@ fi
dnl CFLAGS for release and devel versions
AC_ARG_ENABLE(profile,
[ --enable-profile compile with profiling (for development)],
AS_HELP_STRING([--enable-profile],
[compile with profiling (for development)]),
profile=$enable_profile
)
if test "x$profile" = xyes; then
@ -195,7 +244,7 @@ if test "x$GCC" = xyes; then
dnl Check for -pipe vs -save-temps.
AC_MSG_CHECKING(for -pipe vs -save-temps)
AC_ARG_ENABLE(save-temps,
[ --enable-save-temps save temporary files],
AS_HELP_STRING([--enable-save-temps], [save temporary files]),
AC_MSG_RESULT(-save-temps)
CFLAGS="$CFLAGS -save-temps"
BUILD_TYPE="$BUILD_TYPE Save-temps"
@ -213,6 +262,17 @@ if test $CC_MAJ -gt 4 -o $CC_MAJ -eq 4 -a $CC_MIN -ge 5; then
fi
QF_CC_OPTION(-Wtype-limits)
QF_CC_OPTION_TEST([-fvisibility=hidden], [VISIBILITY=-fvisibility=hidden])
QF_CC_OPTION(-Wsuggest-attribute=pure)
QF_CC_OPTION(-Wsuggest-attribute=const)
QF_CC_OPTION(-Wsuggest-attribute=noreturn)
QF_CC_OPTION(-Wsuggest-attribute=format)
QF_CC_OPTION(-Wformat-nonliteral)
AC_ARG_ENABLE(coverage,
AS_HELP_STRING([--enable-coverage], [enable generation of data for gcov]))
if test "x$enable_coverage" = xyes; then
QF_CC_OPTION(-fprofile-arcs -ftest-coverage)
fi
dnl QuakeForge uses lots of BCPL-style (//) comments, which can cause problems
dnl with many compilers that do not support the latest ISO standards. Well,
@ -240,22 +300,6 @@ if test "x$GCC" != xyes; then
esac
fi
AC_ARG_ENABLE(Werror,
[ --disable-Werror Do not treat warnings as errors]
)
dnl We want warnings, lots of warnings...
dnl The help text should be INVERTED before release!
dnl when in git, this test defaults to ENABLED.
dnl In a release, this test defaults to DISABLED.
if test "x$GCC" = "xyes"; then
if test "x$enable_Werror" $cvs_def_enabled; then
CFLAGS="$CFLAGS -Wall -Werror -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
else
CFLAGS="$CFLAGS -Wall"
fi
CFLAGS="$CFLAGS -fno-common"
fi
AS="$CC"
if test "x$SYSTYPE" = "xWIN32"; then
ASFLAGS="\$(DEFS) \$(CFLAGS) \$(CPPFLAGS) \$(DEFAULT_INCLUDES) \$(INCLUDES) -D_WIN32"

View file

@ -1,6 +1,4 @@
AC_ARG_ENABLE(flac,
[ --disable-flac disable flac support],
)
AC_ARG_ENABLE(flac, AS_HELP_STRING([--disable-flac], [disable flac support]))
HAVE_FLAC=no
if test "x$enable_flac" != "xno"; then
if test "x$PKG_CONFIG" != "x"; then
@ -15,8 +13,7 @@ fi
AM_CONDITIONAL(HAVE_FLAC, test "x$HAVE_FLAC" = "xyes")
AC_ARG_ENABLE(wildmidi,
[ --disable-wildmidi disable libWildMidi support],
)
AS_HELP_STRING([--disable-wildmidi], disable libWildMidi support]))
HAVE_WILDMIDI=no
WM_LIBS=
if test "x$enable_wildmidi" != "xno"; then
@ -33,8 +30,7 @@ AC_SUBST(WM_LIBS)
AM_CONDITIONAL(HAVE_MIDI, test "x$HAVE_WILDMIDI" = "xyes")
AC_ARG_ENABLE(vorbis,
[ --disable-vorbis disable ogg vorbis support],
)
AS_HELP_STRING([--disable-vorbis], [disable ogg vorbis support]))
HAVE_VORBIS=no
if test "x$enable_vorbis" != "xno"; then
if test "x$PKG_CONFIG" != "x"; then
@ -59,7 +55,7 @@ fi
AM_CONDITIONAL(HAVE_VORBIS, test "x$HAVE_VORBIS" = "xyes")
AC_ARG_ENABLE(zlib, [ --disable-zlib disable zlib support])
AC_ARG_ENABLE(zlib, AS_HELP_STRING([--disable-zlib], [disable zlib support]))
HAVE_ZLIB=no
Z_LIBS=""
if test "x$enable_zlib" != "xno"; then
@ -83,9 +79,7 @@ if test "x$HAVE_ZLIB" = "xyes"; then
AC_DEFINE(HAVE_ZLIB, 1, [Define if you have zlib])
fi
AC_ARG_ENABLE(png,
[ --disable-png disable png support],
)
AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable png support]))
HAVE_PNG=no
PNG_LIBS=""
if test "x$enable_png" != "xno"; then

View file

@ -1,8 +1,9 @@
if test "x$cross_compiling" = xyes; then
AC_MSG_CHECKING(whether byte ordering is bigendian)
AC_ARG_WITH(endian,
[ --with-endian=TYPE set endian of target system for
cross-compiling. TYPE = little or big.],
AS_HELP_STRING([--with-endian=TYPE],
[set endian of target system for cross-compiling.]
[TYPE = little or big.]),
endian="$withval",
)
case "x$endian" in

View file

@ -1,19 +1,53 @@
AC_ARG_ENABLE(curses,
[ --disable-curses disable curses support]
)
AS_HELP_STRING([--disable-curses], [disable curses support]))
if test "x$enable_curses" != "xno"; then
AC_CHECK_HEADERS(curses.h)
if test "x$PKG_CONFIG" != "x"; then
PKG_CHECK_MODULES([NCURSES], [ncurses], HAVE_NCURSES=yes, HAVE_NCURSES=no)
else
AC_CHECK_HEADER([curses.h], [],
[AC_CHECK_HEADER([ncurses/curses.h],
[NCURSES_CFLAGS=-I${prefix}/include/ncurses])])
AC_CHECK_LIB(ncurses, initscr,
CURSES_LIBS=-lncurses,
NCURSES_LIBS=-lncurses,
AC_CHECK_LIB(pdcurses, initscr,
CURSES_LIBS=-lpdcurses,
NCURSES_LIBS=-lpdcurses,
AC_CHECK_LIB(curses, initscr,
CURSES_LIBS=-lcurses,
CURSES_LIBS=
NCURSES_LIBS=-lcurses,
NCURSES_LIBS=
)
)
)
if test "x$NCURSES_LIBS" != "x"; then
HAVE_NCURSES=yes
else
HAVE_NCURSES=no
fi
fi
else
CURSES_LIBS=
HAVE_NCURSES=no
NCURSES_LIBS=
fi
AC_SUBST(CURSES_LIBS)
AC_SUBST(NCURSES_LIBS)
if test "x$HAVE_NCURSES" == "xyes"; then
AC_DEFINE(HAVE_NCURSES, 1, [Define if you have the ncurses library])
if test "x$PKG_CONFIG" != "x"; then
PKG_CHECK_MODULES([PANEL], [panel], HAVE_PANEL=yes, HAVE_PANEL=no)
else
AC_CHECK_HEADER(panel.h,
[AC_CHECK_LIB(panel, new_panel,
[AC_DEFINE(HAVE_PANEL, 1,
[Define if you have the ncurses panel library])
PANEL_LIBS=-lpanel
HAVE_PANEL=yes],
[HAVE_PANEL=no],
$NCURSES_LIBS
)],
[HAVE_PANEL=no],
[$NCURSES_CFLAGS]
)
fi
else
PANEL_LIBS=
fi
AC_SUBST(PANEL_LIBS)

7
config.d/evdev.m4 Normal file
View file

@ -0,0 +1,7 @@
dnl ==================================================================
dnl Checks for evdev
dnl ==================================================================
AC_CHECK_HEADER(linux/input.h,
[QF_NEED(input,[evdev])
AC_DEFINE([HAVE_EVDEV], [1], [Define if you have evdev])])

View file

@ -1,7 +1,8 @@
dnl Checks for Linux FBDev support
AC_ARG_WITH(fbdev,
[ --with-fbdev use Linux framebuffer device],
HAVE_FBDEV=$withval, HAVE_FBDEV=no)
AS_HELP_STRING([--with-fbdev], [use Linux framebuffer device]),
HAVE_FBDEV=$withval,
HAVE_FBDEV=no)
if test "x$HAVE_FBDEV" != xno; then
dnl We should still be able to compile it even if
dnl there is no fbdev support in the running kernel
@ -10,27 +11,15 @@ fi
if test "x$HAVE_FBDEV" = xyes; then
AC_MSG_CHECKING(for FB_AUX_VGA_PLANES_VGA4)
AC_TRY_COMPILE(
[#include "linux/fb.h"],
[int foo = FB_AUX_VGA_PLANES_VGA4;],
AC_DEFINE(HAVE_FB_AUX_VGA_PLANES_VGA4, 1, [Define this if you have FB_AUX_VGA_PLANES_VGA4])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "linux/fb.h"]], [[int foo = FB_AUX_VGA_PLANES_VGA4;]])],[AC_DEFINE(HAVE_FB_AUX_VGA_PLANES_VGA4, 1, Define this if you have FB_AUX_VGA_PLANES_VGA4)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AC_MSG_CHECKING(for FB_AUX_VGA_PLANES_CFB4)
AC_TRY_COMPILE(
[#include "linux/fb.h"],
[int foo = FB_AUX_VGA_PLANES_CFB4;],
AC_DEFINE(HAVE_FB_AUX_VGA_PLANES_CFB4, 1, [Define this if you have FB_AUX_VGA_PLANES_CFB4])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "linux/fb.h"]], [[int foo = FB_AUX_VGA_PLANES_CFB4;]])],[AC_DEFINE(HAVE_FB_AUX_VGA_PLANES_CFB4, 1, Define this if you have FB_AUX_VGA_PLANES_CFB4)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AC_MSG_CHECKING(for FB_AUX_VGA_PLANES_CFB8)
AC_TRY_COMPILE(
[#include "linux/fb.h"],
[int foo = FB_AUX_VGA_PLANES_CFB8;],
AC_DEFINE(HAVE_FB_AUX_VGA_PLANES_CFB8, 1, [Define this if you have FB_AUX_VGA_PLANES_CFB4])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "linux/fb.h"]], [[int foo = FB_AUX_VGA_PLANES_CFB8;]])],[AC_DEFINE(HAVE_FB_AUX_VGA_PLANES_CFB8, 1, Define this if you have FB_AUX_VGA_PLANES_CFB4)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
fi

32
config.d/freetype.m4 Normal file
View file

@ -0,0 +1,32 @@
AC_ARG_ENABLE(freetype,
AS_HELP_STRING([--disable-freetype], [disable freetype support]))
if test "x$enable_freetype" != "xno"; then
if test "x$PKG_CONFIG" != "x"; then
PKG_CHECK_MODULES([FREETYPE], [freetype2], HAVE_FREETYPE=yes, HAVE_FREETYPE=no)
fi
else
HAVE_FREETYPE=no
FREETYPE_LIBS=
fi
AC_SUBST(FREETYPE_LIBS)
if test "x$HAVE_FREETYPE" == "xyes"; then
AC_DEFINE(HAVE_FREETYPE, 1, [Define if you have the freetype library])
fi
AC_ARG_ENABLE(harfbuzz,
AS_HELP_STRING([--disable-harfbuzz], [disable HarfBuzz support]))
if test "x$enable_harfbuzz" != "xno"; then
if test "x$PKG_CONFIG" != "x"; then
PKG_CHECK_MODULES([HARFBUZZ], [harfbuzz], HAVE_HARFBUZZ=yes, HAVE_HARFBUZZ=no)
fi
else
HAVE_HARFBUZZ=no
HARFBUZZ_LIBS=
fi
AC_SUBST(HARFBUZZ_LIBS)
if test "x$HAVE_HARFBUZZ" == "xyes"; then
AC_DEFINE(HAVE_HARFBUZZ, 1, [Define if you have the HarfBuzz library])
fi

View file

@ -3,7 +3,6 @@ dnl Checks for header files.
dnl ==================================================================
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_MAJOR
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(
@ -12,7 +11,7 @@ AC_CHECK_HEADERS(
dmedia/cdaudio.h dpmi.h dsound.h errno.h fcntl.h io.h \
ifaddrs.h libc.h limits.h linux/cdrom.h linux/joystick.h \
linux/soundcard.h machine/soundcard.h malloc.h math.h mgraph.h _mingw.h \
netdb.h net/if.h netinet/in.h process.h pthread.h pwd.h rpc/types.h \
netdb.h net/if.h netinet/in.h process.h pthread.h pwd.h \
setjmp.h signal.h stdarg.h stdio.h stdlib.h string.h strings.h \
sys/asoundlib.h sys/audioio.h sys/filio.h sys/ioctl.h sys/io.h sys/ipc.h \
sys/mman.h sys/param.h sys/poll.h sys/select.h sys/shm.h sys/signal.h \
@ -33,28 +32,21 @@ fi
AC_FUNC_ALLOCA
AC_MSG_CHECKING(for fnmatch in fnmatch.h)
AC_TRY_COMPILE(
[#include "fnmatch.h"],
[int (*foo)() = fnmatch;],
AC_DEFINE(HAVE_FNMATCH_PROTO, 1, [Define this if fnmatch is prototyped in fnmatch.h])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "fnmatch.h"]], [[int (*foo)() = fnmatch;]])],[AC_DEFINE(HAVE_FNMATCH_PROTO, 1, Define this if fnmatch is prototyped in fnmatch.h)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AC_MSG_CHECKING(for strnlen in string.h)
AC_TRY_COMPILE(
[#include "string.h"],
[int (*foo)() = strnlen;],
AC_DEFINE(HAVE_STRNLEN_PROTO, 1, [Define this if strnlen is prototyped in string.h])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "string.h"]], [[int (*foo)() = strnlen;]])],[AC_DEFINE(HAVE_STRNLEN_PROTO, 1, Define this if strnlen is prototyped in string.h)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AC_MSG_CHECKING(for strndup in string.h)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "string.h"]], [[int (*foo)() = strndup;]])],[AC_DEFINE(HAVE_STRNDUP_PROTO, 1, Define this if strndup is prototyped in string.h)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AC_MSG_CHECKING(for strcasestr in string.h)
AC_TRY_COMPILE(
[#include "string.h"],
[int (*foo)() = strcasestr;],
AC_DEFINE(HAVE_STRCASESTR_PROTO, 1, [Define this if strcasestr is prototyped in string.h])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "string.h"]], [[int (*foo)() = strcasestr;]])],[AC_DEFINE(HAVE_STRCASESTR_PROTO, 1, Define this if strcasestr is prototyped in string.h)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])

View file

@ -5,19 +5,21 @@ dnl ==================================================================
AC_FUNC_ALLOCA
AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(
access _access connect dlopen execvp fcntl ftime _ftime getaddrinfo \
access _access bsearch_r connect dlopen execvp fcntl ftime _ftime \
getaddrinfo \
gethostbyname gethostname getnameinfo getpagesize gettimeofday getuid \
getwd ioctl mkdir _mkdir mprotect putenv select snprintf _snprintf \
socket stat strcasestr strerror strnlen strsep strstr vsnprintf \
_vsnprintf wait
getwd ioctl mkdir _mkdir mprotect putenv qsort_r select sigaction \
snprintf _snprintf socket stat strcasestr strerror strerror_r strndup \
strnlen \
strsep strstr vsnprintf _vsnprintf wait
)
AC_FUNC_VA_COPY
AC_FUNC__VA_COPY
AH_VERBATIM([DEFINE_VA_COPY],
AH_VERBATIM([HAVE__VA_COPY_],
[#ifndef HAVE_VA_COPY
# ifdef HAVE__VA_COPY
# define va_copy(d,s) __va_copy ((d), (s))
@ -35,6 +37,17 @@ if test "x$ac_cv_func_dlopen" != "xyes"; then
fi
AC_SUBST(DL_LIBS)
if test "x$DL_LIBS" != "x"; then
AC_MSG_CHECKING([for RTLD_NOW])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dlfcn.h>]], [[int foo = RTLD_NOW]])],[AC_DEFINE(HAVE_RTLD_NOW, 1, Define if you have RTLD_NOW.)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AC_MSG_CHECKING([for RTLD_DEEPBIND])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dlfcn.h>]], [[int foo = RTLD_DEEPBIND]])],[AC_DEFINE(HAVE_RTLD_DEEPBIND, 1, Define if you have RTLD_DEEPBIND.)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
fi
dnl Checks for stricmp/strcasecmp
#AC_CHECK_FUNC(strcasecmp,
# ,
@ -60,36 +73,24 @@ fi
AC_CHECK_FUNCS(usleep)
AC_MSG_CHECKING(for fnmatch)
AC_TRY_LINK(
[],
[fnmatch();],
BUILD_FNMATCH=no
AC_MSG_RESULT(yes),
BUILD_FNMATCH=yes
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[fnmatch();]])],[BUILD_FNMATCH=no
AC_MSG_RESULT(yes)],[BUILD_FNMATCH=yes
AC_MSG_RESULT(no)
)
])
AM_CONDITIONAL(BUILD_FNMATCH, test "x$BUILD_FNMATCH" = "xyes")
AC_MSG_CHECKING(for opendir)
AC_TRY_LINK(
[],
[opendir();],
BUILD_DIRENT=no
AC_MSG_RESULT(yes),
BUILD_DIRENT=yes
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[opendir();]])],[BUILD_DIRENT=no
AC_MSG_RESULT(yes)],[BUILD_DIRENT=yes
AC_MSG_RESULT(no)
)
])
AM_CONDITIONAL(BUILD_DIRENT, test "x$BUILD_DIRENT" = "xyes")
AC_MSG_CHECKING(for getopt_long)
AC_TRY_LINK(
[],
[getopt_long();],
BUILD_GETOPT=no
AC_MSG_RESULT(yes),
BUILD_GETOPT=yes
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[getopt_long();]])],[BUILD_GETOPT=no
AC_MSG_RESULT(yes)],[BUILD_GETOPT=yes
AC_MSG_RESULT(no)
)
])
AM_CONDITIONAL(BUILD_GETOPT, test "x$BUILD_GETOPT" = "xyes")
AC_MSG_CHECKING(for log2f)

View file

@ -16,8 +16,8 @@ else
fi
AC_ARG_WITH(ipv6,
AS_HELP_STRING([--with-ipv6=DIR],
[Enable IPv6 support.]
AS_HELP_STRING([--with-ipv6@<:@=DIR@:>@],
[enable IPv6 support.]
[Optional argument specifies location of inet6 libraries.]),
[
if test "x$withval" = xno ; then
@ -60,19 +60,16 @@ fi
AC_MSG_CHECKING([for connect in -lwsock32])
SAVELIBS="$LIBS"
LIBS="$LIBS -lwsock32"
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <winsock.h>
],
[
]], [[
connect(0, NULL, 42);
],
NET_LIBS="$NET_LIBS -lwsock32 -lwinmm"
]])],[NET_LIBS="$NET_LIBS -lwsock32 -lwinmm"
ac_cv_func_connect=yes
ac_cv_func_gethostbyname=yes
HAVE_WSOCK=yes
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
LIBS="$SAVELIBS"
AC_MSG_CHECKING(for UDP support)
@ -87,16 +84,13 @@ if test "x$ac_cv_func_connect" != "xyes"; then
AC_MSG_CHECKING([for connect in -lwsock32])
SAVELIBS="$LIBS"
LIBS="$LIBS -lwsock32"
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <winsock.h>
],
[
]], [[
connect (0, NULL, 42);
],
NET_LIBS="$NET_LIBS -lwsock32 -lwinmm"
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
]])],[NET_LIBS="$NET_LIBS -lwsock32 -lwinmm"
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
LIBS="$SAVELIBS"
fi
AC_SUBST(NET_LIBS)
@ -104,12 +98,9 @@ AC_SUBST(NET_LIBS)
AC_MSG_CHECKING([for getifaddrs])
SAVELIBS="$LIBS"
LIBS="$LIBS $NET_LIBS"
AC_TRY_LINK([],
[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
getifaddrs (0);
],
AC_DEFINE(HAVE_GETIFADDRS, 1, [Define this if you have getifaddrs()])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
]])],[AC_DEFINE(HAVE_GETIFADDRS, 1, Define this if you have getifaddrs())
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
LIBS="$SAVELIBS"

View file

@ -1,9 +1,7 @@
dnl Whether to enable XDG support or not
AC_ARG_ENABLE(xdg,
[ --enable-xdg enable XDG support],
AC_ARG_ENABLE(xdg, AS_HELP_STRING([--enable-xdg], [enable XDG support]),
xdg=$enable_xdg,
xdg=no
)
xdg=no)
if test "x$xdg" != xno; then
HAVE_XDG=yes
else
@ -36,10 +34,10 @@ else
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
/etc/quakeforge.conf.],
globalconf="$withval", globalconf="auto")
AS_HELP_STRING([--with-global-cfg=FILE],
[if set will change the name and location of the global config file]
[used by QuakeForge. Defaults to /etc/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
globalconf="$default_globalconf"
@ -47,10 +45,10 @@ fi
AC_DEFINE_UNQUOTED(FS_GLOBALCFG, "$globalconf", [Define this to the location of the global config file])
AC_ARG_WITH(user-cfg,
[ --with-user-cfg=FILE If set will change the name and location of the
user-specific config file used by QuakeForge.
Defaults to ~/.quakeforgerc.],
userconf="$withval", userconf="auto")
AS_HELP_STRING([--with-user-cfg=FILE],
[if set will change the name and location of the user-specific config]
[file used by QuakeForge. Defaults to ~/.quakeforgerc.]),
userconf="$withval", userconf="auto")
if test "x$userconf" = "xauto" || test "x$userconf" = "xyes" || \
test "x$userconf" = "xno"; then dnl yes/no sanity checks
userconf="$default_userconf"
@ -58,9 +56,10 @@ fi
AC_DEFINE_UNQUOTED(FS_USERCFG, "$userconf", [Define this to the location of the user config file])
AC_ARG_WITH(sharepath,
[ --with-sharepath=DIR Use DIR for shared game data, defaults to
'.' or \${datarootdir}/games/quakeforge (if new style)],
sharepath=$withval, sharepath="auto")
AS_HELP_STRING([--with-sharepath=DIR],
[use DIR for shared game data, defaults to '.' or]
[${datarootdir}/games/quakeforge (if new style)]),
sharepath=$withval, sharepath="auto")
if test "x$sharepath" = "xauto" -o "x$sharepath" = "xyes" -o "x$sharepath" = "x"; then
sharepath="$default_sharepath"
elif test "x$sharepath" = xno; then
@ -70,9 +69,10 @@ AC_DEFINE_UNQUOTED(FS_SHAREPATH, "$sharepath", [Define this to the shared game d
QF_SUBST(sharepath)
AC_ARG_WITH(userpath,
[ --with-userpath=DIR Use DIR for unshared game data, defaults to
'.' or ~/.quakeforge (if new style)],
userpath=$withval, userpath="auto")
AS_HELP_STRING([--with-userpath=DIR],
[use DIR for unshared game data, defaults to '.' or ~/.quakeforge]
[(if new style)]),
userpath=$withval, userpath="auto")
if test "x$userpath" = "xauto" -o "x$userpath" = "xyes" -o "x$userpath" = "x"; then
userpath="$default_userpath"
elif test "x$userpath" = xno; then
@ -81,9 +81,9 @@ fi
AC_DEFINE_UNQUOTED(FS_USERPATH, "$userpath", [Define this to the unshared game directory root])
AC_ARG_WITH(plugin-path,
[ --with-plugin-path=DIR Use DIR for loading plugins, defaults to
\${libdir}/quakeforge],
plugindir=$withval, plugindir="auto")
AS_HELP_STRING([--with-plugin-path=DIR],
[use DIR for loading plugins, defaults to ${libdir}/quakeforge]),
plugindir=$withval, plugindir="auto")
PLUGINDIR="\${libdir}/quakeforge/plugins"
if test "x$plugindir" = "xauto" -o "x$plugindir" = "xyes" -o "x$plugindir" = "x"; then
@ -98,8 +98,21 @@ eval expanded_plugindir="$expanded_plugindir"
AC_DEFINE_UNQUOTED(FS_PLUGINPATH, "$expanded_plugindir", [Define this to the path from which to load plugins])
AC_SUBST(plugindir)
SHADERDIR="\${libdir}/quakeforge/shaders"
if test "x$shaderdir" = "xauto" -o "x$shaderdir" = "xyes" -o "x$shaderdir" = "x"; then
shaderdir="$SHADERDIR"
elif test "x$shaderdir" = xno; then
shaderdir="."
else
SHADERDIR="$shaderdir"
fi
eval expanded_shaderdir="$shaderdir"
eval expanded_shaderdir="$expanded_shaderdir"
AC_DEFINE_UNQUOTED(FS_SHADERPATH, "$expanded_shaderdir", [Define this to the path from which to load shaders])
AC_SUBST(plugindir)
AC_ARG_WITH(gl-driver,
[ --with-gl-driver=NAME Name of OpenGL driver DLL/DSO],
AS_HELP_STRING([--with-gl-driver=NAME], [name of OpenGL driver DLL/DSO]),
gl_driver=$withval,
gl_driver=auto
)

View file

@ -8,6 +8,7 @@ AC_PROG_CPP
AC_PROG_LN_S
AC_PROG_RANLIB
AM_PROG_AS
AM_PATH_PYTHON([3])
PKG_PROG_PKG_CONFIG
@ -32,6 +33,7 @@ AS_VERSION_COMPARE([$BISON_VER], [2.6],
AC_MSG_RESULT([yes])
)
AC_PROG_LEX(noyywrap)
AM_PROG_LEX
if echo $LEX | grep -v flex > /dev/null; then
AC_MSG_ERROR(GNU flex is required but was not found)

View file

@ -11,22 +11,14 @@ if test "x$ac_cv_header_pthread_h" = "xyes"; then
;;
*openbsd*)
LIBS="$LIBS -pthread"
AC_TRY_LINK(
[#include <pthread.h>],
[pthread_attr_t type;
pthread_attr_setstacksize(&type, 0x100000);],
[PTHREAD_LDFLAGS=-pthread],
[PTHREAD_LDFLAGS=-lpthread]
)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], [[pthread_attr_t type;
pthread_attr_setstacksize(&type, 0x100000);]])],[PTHREAD_LDFLAGS=-pthread],[PTHREAD_LDFLAGS=-lpthread
])
;;
*) LIBS="$LIBS -lpthread"
AC_TRY_LINK(
[#include <pthread.h>],
[pthread_attr_t type;
pthread_attr_setstacksize(&type, 0x100000);],
[PTHREAD_LDFLAGS=-lpthread],
[PTHREAD_LDFLAGS=-pthread]
)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], [[pthread_attr_t type;
pthread_attr_setstacksize(&type, 0x100000);]])],[PTHREAD_LDFLAGS=-lpthread],[PTHREAD_LDFLAGS=-pthread
])
;;
esac
LIBS="$save_LIBS"

View file

@ -3,13 +3,12 @@ F77=touch
AC_SUBST(F77)
AC_ARG_WITH(cpp,
[ --with-cpp=CPP how qfcc should invoke cpp],
cpp_name="$withval", cpp_name=auto
)
AS_HELP_STRING([--with-cpp=CPP], [how qfcc should invoke cpp]),
cpp_name="$withval", cpp_name=auto)
if test "x$cpp_name" != xauto; then
CPP_NAME="$cpp_name"
else
CPP_NAME="cpp %d -o %o %i"
CPP_NAME="cpp %u %d %s -o %o %i"
case "$host_os" in
*freebsd*)
CPP_NAME="cpp %d %i %o"

View file

@ -4,7 +4,7 @@ AC_MSG_RESULT([
Build type :$BUILD_TYPE
Server support :${SV_TARGETS:- no}
Client support :${CL_TARGETS:- no}
Tools support :${tools_dirs:- no}
Tools support :${tools_list:- no}
Sound support :${SOUND_TYPES:- no} ${snd_output_default}
CD Audio system :${CDTYPE:- no} ${cd_default}
IPv6 networking : $NETTYPE_IPV6
@ -12,6 +12,7 @@ AC_MSG_RESULT([
HTTP support : ${CURL:-no}
Compiler version : $CCVER
Compiler flags : $CFLAGS
SIMD Support : $simd
qfcc cpp invocation: $CPP_NAME
Shared game data directory : $sharepath

View file

@ -1,2 +1,2 @@
AC_CONFIG_FILES(RPM/Makefile RPM/quakeforge.conf RPM/quakeforge.spec)
AC_CONFIG_FILES(RPM/quakeforge.conf RPM/quakeforge.spec)
AC_CONFIG_FILES(RPM/build_rpm, [chmod +x RPM/build_rpm])

View file

@ -1,9 +1,7 @@
dnl SDL/SDL-GL checks
AC_ARG_ENABLE(sdl,
[ --disable-sdl disable checking for SDL],
)
AC_ARG_ENABLE(sdl, AS_HELP_STRING([--enable-sdl], [enable checking for SDL]))
if test "x$enable_sdl" != xno; then
if test "x$enable_sdl" = xyes; then
if test "x$PKG_CONFIG" != "x"; then
PKG_CHECK_MODULES([SDL], [sdl >= 1.2.0], HAVE_SDL=yes, HAVE_SDL=no)
else
@ -24,8 +22,7 @@ fi
dnl SDL-AUDIO checks
AC_ARG_ENABLE(sdl-audio,
[ --disable-sdl-audio disable checking for SDL-AUDIO],
)
AS_HELP_STRING([ --disable-sdl-audio], [disable checking for SDL-AUDIO]))
if test "x$enable_sdl_audio" != xno; then
if test "x$HAVE_SDL" = "xyes"; then
@ -35,8 +32,7 @@ fi
dnl SDL-CD checks
AC_ARG_ENABLE(sdl-cd,
[ --disable-sdl-cd disable checking for SDL-CD],
)
AS_HELP_STRING([--disable-sdl-cd], [disable checking for SDL-CD]))
if test "x$enable_sdl_cd" != xno; then
if test "x$HAVE_SDL" = "xyes"; then
HAVE_SDL_CD=yes

View file

@ -2,9 +2,6 @@ dnl ==================================================================
dnl Checks for sound
dnl ==================================================================
dnl AC_ARG_ENABLE(samplerate,
dnl [ --disable-samplerate disable libsamplerate support],
dnl )
HAVE_SAMPLERATE=no
SAMPLERATE_LIBS=""
if test "x$enable_samplerate" != "xno"; then
@ -40,16 +37,16 @@ if test "x$enable_sound" != "xno"; then
AC_CHECK_LIB(mme, waveOutOpen, HAVE_LIBMME=yes)
AC_ARG_ENABLE(alsa,
[ --disable-alsa disable checks for ALSA support])
AS_HELP_STRING([--disable-alsa], [disable checks for ALSA support]))
AC_ARG_ENABLE(oss,
[ --disable-oss disable checks for OSS support])
AS_HELP_STRING([--disable-oss], [disable checks for OSS support]))
AC_ARG_ENABLE(sun,
[ --disable-sun disable checks for Sun audio support])
AS_HELP_STRING([--disable-sun], [disable checks for Sun audio support]))
AC_ARG_ENABLE(sound,
[ --disable-sound disable sound outright])
AS_HELP_STRING([--disable-sound], [disable sound outright]))
unset SOUND_TYPES
@ -96,8 +93,7 @@ QF_maGiC_VALUE
AC_SUBST(ALSA_LIBS)
AC_ARG_ENABLE(jack,
[ --disable-jack disable jack support],
)
AS_HELP_STRING([--disable-jack], [disable jack support]))
HAVE_JACK=no
JACK_LIBS=""
if test "x$enable_jack" != "xno"; then
@ -106,7 +102,8 @@ QF_maGiC_VALUE
if test "x$HAVE_JACK" = "xyes"; then
AC_DEFINE(HAVE_JACK, 1, [Define if you have libjack])
SOUND_TYPES="$SOUND_TYPES JACK"
QF_NEED(snd_render, [jack])
QF_NEED(snd_output, [jack])
QF_NEED(snd_render, [default])
fi
else
AC_CHECK_LIB(jack, jack_client_open, HAVE_JACK=yes, HAVE_JACK=no,
@ -117,7 +114,8 @@ QF_maGiC_VALUE
JACK_LIBS="-ljack"
AC_DEFINE(HAVE_JACK, 1, [Define if you have libjack])
SOUND_TYPES="$SOUND_TYPES JACK"
QF_NEED(snd_render, [jack])
QF_NEED(snd_output, [jack])
QF_NEED(snd_render, [default])
fi
fi
fi
@ -240,26 +238,28 @@ QF_maGiC_VALUE
fi
dnl Win32
if test "x$ac_cv_header_windows_h" = "xyes"; then
SOUND_TYPES="$SOUND_TYPES Win32"
QF_NEED(snd_output, [win])
QF_NEED(snd_render, [default])
WINSND_LIBS="-lwinmm"
if test "x$ac_cv_header_dsound_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],
[
#include <windows.h>
#include <dsound.h>
#ifdef GMEM_MOVEABLE
# ifdef DirectSoundEnumerate
QF_maGiC_VALUE
# endif
#endif
],
SOUND_TYPES="$SOUND_TYPES DirectX"
QF_NEED(snd_output, [dx])
if test "x$SYSTYPE" = xWIN32; then
if test "x$ac_cv_header_windows_h" = "xyes"; then
SOUND_TYPES="$SOUND_TYPES Win32"
QF_NEED(snd_output, [win])
QF_NEED(snd_render, [default])
)
WINSND_LIBS="-lwinmm"
if test "x$ac_cv_header_dsound_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],
[
#include <windows.h>
#include <dsound.h>
#ifdef GMEM_MOVEABLE
# ifdef DirectSoundEnumerate
QF_maGiC_VALUE
# endif
#endif
],
SOUND_TYPES="$SOUND_TYPES DirectX"
QF_NEED(snd_output, [dx])
QF_NEED(snd_render, [default])
)
fi
fi
fi
AC_SUBST(WINSND_LIBS)

View file

@ -1,7 +1,7 @@
dnl Checks for SVGALib support
AC_ARG_WITH(svga,
[ --with-svga=DIR use SVGALib found in DIR],
HAVE_SVGA=$withval, HAVE_SVGA=auto)
AS_HELP_STRING([--with-svga@<:@=DIR@:>@], [use SVGALib found in DIR]),
HAVE_SVGA=$withval, HAVE_SVGA=auto)
if test "x$HAVE_SVGA" != xno -a "x$HAVE_SVGA" != xauto; then
if test "x$HAVE_SVGA" != xauto; then
SVGA_CFLAGS="$SVGA_CFLAGS -I$withval/include"

View file

@ -5,29 +5,19 @@ dnl ==================================================================
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_STRUCT_ST_BLKSIZE
AC_HEADER_TIME
AC_STRUCT_TM
if test "x$ac_cv_header_unistd_h" = xyes; then
AC_MSG_CHECKING(for _SC_PAGESIZE)
AC_TRY_COMPILE(
[#include <unistd.h>],
[int foo = _SC_PAGESIZE;],
AC_DEFINE(HAVE__SC_PAGESIZE,1,[Define this if you have _SC_PAGESIZE])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]], [[int foo = _SC_PAGESIZE;]])],[AC_DEFINE(HAVE__SC_PAGESIZE,1,Define this if you have _SC_PAGESIZE)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
fi
AC_MSG_CHECKING(for __attribute__)
AC_TRY_COMPILE(
[static __attribute__ ((unused)) const char *foo = "bar";],
[],
AC_DEFINE(HAVE___ATTRIBUTE__)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[static __attribute__ ((unused)) const char *foo = "bar";]], [[]])],[AC_DEFINE(HAVE___ATTRIBUTE__)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AH_VERBATIM([HAVE___ATTRIBUTE__],
[/* Define this if the GCC __attribute__ keyword is available */
#undef HAVE___ATTRIBUTE__
@ -36,14 +26,10 @@ AH_VERBATIM([HAVE___ATTRIBUTE__],
#endif])
AC_MSG_CHECKING(for __attribute__ ((visibility)))
AC_TRY_COMPILE(
[void foo (void);
__attribute__ ((sivibility ("default"))) void foo (void) {}],
[],
AC_DEFINE(HAVE___ATTRIBUTE__VISIBILITY)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void foo (void);
__attribute__ ((sivibility ("default"))) void foo (void) {}]], [[]])],[AC_DEFINE(HAVE___ATTRIBUTE__VISIBILITY)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AH_VERBATIM([HAVE___ATTRIBUTE__VISIBILITY],
[/* Define this if the GCC visibility __attribute__ is available */
#undef HAVE___ATTRIBUTE__VISIBILITY
@ -55,14 +41,10 @@ AH_VERBATIM([HAVE___ATTRIBUTE__VISIBILITY],
if test "x$SYSTYPE" = "xWIN32"; then
AC_MSG_CHECKING(for __attribute__ ((gcc_struct)))
AC_TRY_COMPILE(
[typedef struct { int foo; }
__attribute__ ((gcc_struct)) gcc_struct_test;],
[],
AC_DEFINE(HAVE___ATTRIBUTE__GCC_STRUCT)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[typedef struct { int foo; }
__attribute__ ((gcc_struct)) gcc_struct_test;]], [[]])],[AC_DEFINE(HAVE___ATTRIBUTE__GCC_STRUCT)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
fi
AH_VERBATIM([HAVE___ATTRIBUTE__GCC_STRUCT],
[/* Define this if the GCC gcc_struct __attribute__ is available */
@ -74,13 +56,9 @@ AH_VERBATIM([HAVE___ATTRIBUTE__GCC_STRUCT],
#endif])
AC_MSG_CHECKING(for __builtin_expect)
AC_TRY_COMPILE(
[long (*foo) (long, long) = __builtin_expect;],
[],
AC_DEFINE(HAVE___BUILTIN_EXPECT)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[int x;]], [[if (__builtin_expect(!x, 1)) {}]])],[AC_DEFINE(HAVE___BUILTIN_EXPECT)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
AH_VERBATIM([HAVE___BUILTIN_EXPECT],
[/* Define this if the GCC __builtin_expect keyword is available */
#undef HAVE___BUILTIN_EXPECT
@ -89,78 +67,47 @@ AH_VERBATIM([HAVE___BUILTIN_EXPECT],
#endif])
AC_MSG_CHECKING(for type of fpos_t)
AC_TRY_COMPILE(
[#include <stdio.h>],
[fpos_t x = 0],
AC_MSG_RESULT(off_t),
AC_DEFINE(HAVE_FPOS_T_STRUCT, 1, [Define this if FPOS_T is a struct])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[fpos_t x = 0]])],[AC_MSG_RESULT(off_t)],[AC_DEFINE(HAVE_FPOS_T_STRUCT, 1, Define this if FPOS_T is a struct)
AC_MSG_RESULT(struct)
)
])
AC_MSG_CHECKING(for socklen_t in sys/types.h)
AC_TRY_COMPILE(
[#include <sys/types.h>],
[ socklen_t x = 0;],
AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define this if your system has socklen_t])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[socklen_t x = 0;]])],[AC_DEFINE(HAVE_SOCKLEN_T, 1, Define this if your system has 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, 1, [Define this if your system has socklen_t]) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <sys/socket.h>]], [[socklen_t x = 0;]])],[AC_DEFINE(HAVE_SOCKLEN_T, 1, Define this if your system has socklen_t)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
])
if test "x$ac_cv_header_sys_uio_h" = xyes; then
AC_MSG_CHECKING(for struct in_pktinfo)
AC_TRY_COMPILE(
[#include <sys/types.h>
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/uio.h>],
[struct in_pktinfo x;],
AC_DEFINE(HAVE_IN_PKTINFO, 1, [Define this if your system has struct in_pktinfo])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
#include <sys/uio.h>]], [[struct in_pktinfo x;]])],[AC_DEFINE(HAVE_IN_PKTINFO, 1, Define this if your system has struct in_pktinfo)
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
fi
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, 1, [Define this if your system has size_t]) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[ size_t x = 0;]])],[AC_DEFINE(HAVE_SIZE_T, 1, Define this if your system has size_t) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])
dnl maybe these two (at least the 2nd) should be checked only 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, 1, [Define this if you have ss_len member in struct sockaddr_storage (BSD)]) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <sys/socket.h>]], [[ void f(void) { struct sockaddr_storage ss; ss.ss_len=0; }]])],[AC_DEFINE(HAVE_SS_LEN, 1, Define this if you have ss_len member in struct sockaddr_storage (BSD)) 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, 1, [Define this if you have sin6_len member in struct sockaddr_in6 (BSD)]) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <netinet/in.h>]], [[ void f(void) { struct sockaddr_in6 s6; s6.sin6_len=0; }]])],[AC_DEFINE(HAVE_SIN6_LEN, 1, Define this if you have sin6_len member in struct sockaddr_in6 (BSD)) 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, 1, [Define this if you have sa_len member in struct sockaddr (BSD)]) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <netinet/in.h>]], [[ void f(void) { struct sockaddr sa; sa.sa_len=0; }]])],[AC_DEFINE(HAVE_SA_LEN, 1, Define this if you have sa_len member in struct sockaddr (BSD)) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
])

View file

@ -15,8 +15,9 @@ AC_DEFINE_UNQUOTED(QW_VERSION, "$QW_VERSION",
AC_DEFINE_UNQUOTED(QW_QSG_VERSION, "$QW_QSG_VERSION",
[Define this to the QSG standard version you support in QuakeWorld])
AC_ARG_ENABLE([version-info], AC_HELP_STRING([--enable-version-info=CURRENT:REVISION:AGE],
[Override the value passed to libtool -version-info.]),
AC_ARG_ENABLE([version-info],
AS_HELP_STRING([--enable-version-info=CURRENT:REVISION:AGE],
[override the value passed to libtool -version-info.]),
[], [enable_version_info=1:0:0])
QUAKE_LIBRARY_VERSION_INFO=$enable_version_info
AC_SUBST([QUAKE_LIBRARY_VERSION_INFO])

34
config.d/vulkan.m4 Normal file
View file

@ -0,0 +1,34 @@
dnl Check for vulkan support
AC_ARG_ENABLE(vulkan,
AS_HELP_STRING([--disable-vulkan], [do not use Vulkan]),
HAVE_VULKAN=$enable_vulkan, HAVE_VULKAN=auto)
if test "x$HAVE_VULKAN" != xno; then
save_CPPFLAGS="$CPPFLAGS"
AS_IF([test x"$VULKAN_SDK" != x], [
CPPFLAGS="$CPPFLAGS -I$VULKAN_SDK/include"
LDFLAGS="$LDFLAGS -L$VULKAN_SDK/lib"
glslangvalidator="$VULKAN_SDK/bin/glslangValidator"
], [glslangvalidator="glslangValidator"])
AC_CHECK_HEADER([vulkan/vulkan.h], [
HAVE_VULKAN=yes
AS_IF([test x"$VULKAN_SDK" != x], [
VULKAN_CPPFLAGS="-I$VULKAN_SDK/include"
VULKAN_QCFLAGS="-I$VULKAN_SDK/include"
VULKAN_LDFLAGS="-L$VULKAN_SDK/lib"
],[
VULKAN_QCFLAGS="-I${QCSYSPREFIX-/usr}/include"
])
], [HAVE_VULKAN=no])
CPPFLAGS="$save_CPPFLAGS"
fi
if test "x$HAVE_VULKAN" = xyes; then
AC_DEFINE([HAVE_VULKAN], [1], [Define if yhou have the Vulkan libs])
fi
AC_SUBST(VULKAN_LIBS)
AC_SUBST(VULKAN_CPPFLAGS)
AC_SUBST(VULKAN_QCFLAGS)
AC_SUBST(GLSLANGVALIDATOR, [$glslangvalidator])
AM_CONDITIONAL(X11_VULKAN, test "x$HAVE_VULKAN" = "xyes")
AM_CONDITIONAL(WIN_VULKAN, test "x$HAVE_VULKAN" = "xyes")
AM_CONDITIONAL(TEST_VULKAN, test "x$HAVE_VULKAN" = "xyes")

View file

@ -1,5 +1,6 @@
endian=""
FNM_FLAGS=""
case "$host_os" in
mingw32*)
mingw=yes
@ -7,15 +8,18 @@ case "$host_os" in
if test "x$host" != "x$build"; then
case "$build_os" in
cygwin*)
CFLAGS="$CFLAGS -mno-cygwin -mconsole"
CFLAGS="$CFLAGS -mconsole -D__USE_MINGW_ANSI_STDIO"
CPPFLAGS="$CPPFLAGS $CFLAGS"
;;
esac
fi
SYSTYPE=WIN32
AC_DEFINE(NEED_GNUPRINTF)
endian="little"
;;
cygwin*)
cygwin=yes
AC_DEFINE(NEED_GNUPRINTF)
if test "x$host" != "x$build"; then
CC="$host_cpu-$host_os-gcc"
AS="$CC"
@ -26,3 +30,12 @@ case "$host_os" in
;;
esac
AC_SUBST(FNM_FLAGS)
AH_VERBATIM([NEED_GNUPRINTF],
[/* Define this if gnu_prinf is needed instead of printf for format attributes*/
#undef NEED_GNUPRINTF
#ifdef NEED_GNUPRINTF
# define PRINTF gnu_printf
#else
# define PRINTF printf
#endif])

View file

@ -14,7 +14,8 @@ fi
dnl Check for XFree86-VidMode support
AC_ARG_ENABLE(vidmode,
[ --disable-vidmode do not use XFree86 VidMode extension],
AS_HELP_STRING([--disable-vidmode],
[do not use XFree86 VidMode extension]),
HAVE_VIDMODE=$enable_vidmode, HAVE_VIDMODE=auto)
if test "x$HAVE_VIDMODE" != xno; then
save_CPPFLAGS="$CPPFLAGS"
@ -33,10 +34,50 @@ if test "x$HAVE_VIDMODE" != xno; then
fi
AC_SUBST(VIDMODE_LIBS)
dnl Check for XInput2 support
AC_ARG_ENABLE(xi2,
AS_HELP_STRING([--disable-xi2], [do not use Xorg XInput2 extension]),
HAVE_XI2=$enable_xi2, HAVE_XI2=auto)
if test "x$HAVE_XI2" != xno; then
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
AC_CHECK_HEADER(X11/extensions/XInput2.h,
dnl Make sure the library works
[AC_CHECK_LIB(Xi, XIQueryVersion,
AC_DEFINE(HAVE_XI2, 1, [Define if you have the Xorg XInput2 extension])
XI2_LIBS="-lXi",,
[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]
)],,
[#include <X11/Xlib.h>]
)
CPPFLAGS="$save_CPPFLAGS"
fi
AC_SUBST(XI2_LIBS)
dnl Check for XInput2 support
AC_ARG_ENABLE(xfixes,
AS_HELP_STRING([--disable-xfixes], [do not use Xorg Xfixes extension]),
HAVE_XFIXES=$enable_xfixes, HAVE_XFIXES=auto)
if test "x$HAVE_XFIXES" != xno; then
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
AC_CHECK_HEADER(X11/extensions/Xfixes.h,
dnl Make sure the library works
[AC_CHECK_LIB(Xi, XIQueryVersion,
AC_DEFINE(HAVE_XFIXES, 1, [Define if you have the Xorg Xfixes extension])
XFIXES_LIBS="-lXfixes",,
[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]
)],,
[#include <X11/Xlib.h>]
)
CPPFLAGS="$save_CPPFLAGS"
fi
AC_SUBST(XFIXES_LIBS)
dnl Check for DGA support
AC_ARG_ENABLE(dga,
[ --disable-dga do not use XFree86 DGA extension],
HAVE_DGA=$enable_dga, HAVE_DGA=auto)
AS_HELP_STRING([--disable-dga], [do not use XFree86 DGA extension]),
HAVE_DGA=$enable_dga, HAVE_DGA=auto)
if test "x$HAVE_DGA" != xno; then
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$X_CFLAGS $CPPFLAGS"

View file

@ -1,9 +1,9 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_PREREQ([2.69])
dnl This is the only place where the package name and version appear
AC_INIT([QuakeForge], m4_esyscmd([config.d/git-version-gen --prefix '' .tarball-version]))
AM_INIT_AUTOMAKE([foreign])
AC_INIT([QuakeForge],m4_esyscmd(config.d/git-version-gen --prefix '' .tarball-version))
AM_INIT_AUTOMAKE([foreign subdir-objects])
dnl LT_INIT messes with CFLAGS (evil bastard)
if test "x${CFLAGS-unset}" = xunset; then
@ -11,7 +11,7 @@ if test "x${CFLAGS-unset}" = xunset; then
fi
saved_CFLAGS="$CFLAGS"
dnl LT_INIT([win32-dll])
AM_PROG_LIBTOOL
LT_INIT
CFLAGS="$saved_CFLAGS"
AC_REVISION([$Revision$]) dnl
@ -23,7 +23,7 @@ AC_CANONICAL_HOST
m4_include(config.d/versions.m4)
AC_LANG_C
AC_LANG([C])
if test "$x{AR-unset}" = xunset; then
AR="ar"
@ -63,19 +63,22 @@ m4_include(config.d/compression.m4)
m4_include(config.d/mgl.m4)
m4_include(config.d/fbdev.m4)
m4_include(config.d/svga.m4)
m4_include(config.d/vulkan.m4)
m4_include(config.d/x11.m4)
m4_include(config.d/sdl.m4)
m4_include(config.d/curses.m4)
m4_include(config.d/freetype.m4)
dnl ==================================================================
dnl Checks for system type
dnl ==================================================================
dnl Checks for which system driver to use
AC_MSG_CHECKING(for system driver)
case "${host}" in
i?86-*-mingw32*|x86_64-w64-mingw32)
i?86-*-mingw32*|x86_64-w64-mingw32*)
SYSTYPE=WIN32
AC_MSG_RESULT([Win32 driver])
WIN32_LIBS=' $(NET_LIBS)'
@ -88,8 +91,8 @@ case "${host}" in
fi
;;
i?86-*-cygwin*)
SYSTYPE=WIN32
i?86-*-cygwin*|x86_64-*-cygwin*)
#SYSTYPE=WIN32
AC_MSG_RESULT([Win32 driver])
WIN32_LIBS=' $(NET_LIBS)'
;;
@ -109,6 +112,7 @@ AC_SUBST(WIN32_LIBS)
m4_include(config.d/sound.m4)
m4_include(config.d/joystick.m4)
m4_include(config.d/evdev.m4)
m4_include(config.d/cdrom.m4)
m4_include(config.d/networking.m4)
@ -120,8 +124,8 @@ m4_include(config.d/qfcc.m4)
m4_include(config.d/compiling.m4)
AC_ARG_ENABLE(static-doc,
[ --enable-static-doc Enable generation of doxygen docs for static]
[ functions.])
AS_HELP_STRING([--enable-static-doc],
[enable generation of doxygen docs for static functions.]))
STATIC_DOC=NO
if test "x$enable_static_doc" = xyes; then
STATIC_DOC=YES
@ -129,7 +133,8 @@ fi
AC_SUBST(STATIC_DOC)
AC_ARG_ENABLE(typecheck-progs,
[ --enable-typecheck-progs Enable type checking on progs field access])
AS_HELP_STRING([--enable-typecheck-progs],
[enable type checking on progs field access]))
if test "x$enable_typecheck_progs" = xyes; then
AC_DEFINE(TYPECHECK_PROGS, 1, [Define this if you want progs typechecking])
fi

23
debian/Makefile.am vendored
View file

@ -1,23 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS= foreign
# find -type f | sed -e 's:^\./::g' | grep -v Makefile | sort >> Makefile.am
EXTRA_DIST= \
changelog control copyright quakeforge.conf rules source/format \
qfcc.install \
quakeforge-alsa.install quakeforge-alsa.postinst quakeforge-alsa.prerm \
quakeforge-common.install quakeforge-common.postinst \
quakeforge-dev.install \
quakeforge-gl.install \
quakeforge-glsl.install \
quakeforge-jack.install \
quakeforge-maptools.install \
quakeforge-oss.install quakeforge-oss.postinst quakeforge-oss.prerm \
quakeforge-sdl.install \
quakeforge-servers.install \
quakeforge-stub.postinst \
quakeforge-sw32.install \
quakeforge-sw.install \
quakeforge-utils.install \
quakeforge-x11.install

28
debian/Makemodule.am vendored Normal file
View file

@ -0,0 +1,28 @@
EXTRA_DIST += \
debian/changelog \
debian/control \
debian/copyright \
debian/quakeforge.conf \
debian/rules \
debian/source/format \
debian/qfcc.install \
debian/quakeforge-alsa.install \
debian/quakeforge-alsa.postinst \
debian/quakeforge-alsa.prerm \
debian/quakeforge-common.install \
debian/quakeforge-common.postinst \
debian/quakeforge-dev.install \
debian/quakeforge-gl.install \
debian/quakeforge-glsl.install \
debian/quakeforge-jack.install \
debian/quakeforge-maptools.install \
debian/quakeforge-oss.install \
debian/quakeforge-oss.postinst \
debian/quakeforge-oss.prerm \
debian/quakeforge-sdl.install \
debian/quakeforge-servers.install \
debian/quakeforge-stub.postinst \
debian/quakeforge-sw32.install \
debian/quakeforge-sw.install \
debian/quakeforge-utils.install \
debian/quakeforge-x11.install

View file

@ -1,49 +0,0 @@
## Process this file with automake to produce Makefile.in
#
# Makefile.am
#
# Automake-using build system for QuakeForge
#
# Copyright (C) 2000 Jeff Teunissen <deek@quakeforge.net>
#
# This Makefile 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
#
# $Id$
#
AUTOMAKE_OPTIONS= foreign
# Stuff that is common to both client and server
# Desktop files
if HAVE_XDG
desktopdir=$(datarootdir)/applications
desktop_DATA= @NQ_DESKTOP_DATA@ @QW_DESKTOP_DATA@
endif
# Stuff that doesn't get linked into an executable NEEDS to be mentioned here,
# or it won't be distributed with 'make dist'
EXTRA_DIST= quakeforge-nq-glx.desktop quakeforge-nq-sdl.desktop \
quakeforge-nq-sdl32.desktop quakeforge-nq-sgl.desktop \
quakeforge-nq-x11.desktop quakeforge-qw-glx.desktop \
quakeforge-qw-sdl.desktop quakeforge-qw-sdl32.desktop \
quakeforge-qw-sgl.desktop quakeforge-qw-x11.desktop
# Kill the temp files, hopefully.
CLEANFILES = *.i *.s $(YACCLEX_CLEANFILES)

10
desktop/Makemodule.am Normal file
View file

@ -0,0 +1,10 @@
if HAVE_XDG
desktopdir=$(datarootdir)/applications
desktop_DATA = @NQ_DESKTOP_DATA@ @QW_DESKTOP_DATA@
endif
EXTRA_DIST += \
desktop/quakeforge-nq-sdl.desktop \
desktop/quakeforge-nq-x11.desktop \
desktop/quakeforge-qw-sdl.desktop \
desktop/quakeforge-qw-x11.desktop

View file

@ -1,18 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=QuakeForge (GLX)
GenericName=Quake (GLX)
Comment=A first person shooter game
Comment[fr]=Un jeu de tir subjectif
Comment[it]=Sparatutto in prima persona
Icon=quake
Categories=Game;ActionGame;
Exec=nq-glx
TryExec=nq-glx
Terminal=false
StartupNotify=false

View file

@ -1,18 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=QuakeForge (SDL32)
GenericName=Quake (SDL32)
Comment=A first person shooter game
Comment[fr]=Un jeu de tir subjectif
Comment[it]=Sparatutto in prima persona
Icon=quake
Categories=SDL;Game;ActionGame;
Exec=nq-sdl32
TryExec=nq-sdl32
Terminal=false
StartupNotify=false

View file

@ -1,18 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=QuakeForge (SDL GL)
GenericName=Quake (SDL GL)
Comment=A first person shooter game
Comment[fr]=Un jeu de tir subjectif
Comment[it]=Sparatutto in prima persona
Icon=quake
Categories=SDL;Game;ActionGame;
Exec=nq-sgl
TryExec=nq-sgl
Terminal=false
StartupNotify=false

View file

@ -1,18 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=QuakeForge QuakeWorld (GLX)
GenericName=QuakeWorld (GLX)
Comment=A first person shooter game
Comment[fr]=Un jeu de tir subjectif
Comment[it]=Sparatutto in prima persona
Icon=quake
Categories=Game;ActionGame;
Exec=qw-client-glx
TryExec=qw-client-glx
Terminal=false
StartupNotify=false

View file

@ -1,18 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=QuakeForge QuakeWorld (SDL32)
GenericName=QuakeWorld (SDL32)
Comment=A first person shooter game
Comment[fr]=Un jeu de tir subjectif
Comment[it]=Sparatutto in prima persona
Icon=quake
Categories=SDL;Game;ActionGame;
Exec=qw-client-sdl32
TryExec=qw-client-sdl32
Terminal=false
StartupNotify=false

View file

@ -1,18 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=QuakeForge QuakeWorld (SDL GL)
GenericName=QuakeWorld (SDL GL)
Comment=A first person shooter game
Comment[fr]=Un jeu de tir subjectif
Comment[it]=Sparatutto in prima persona
Icon=quake
Categories=SDL;Game;ActionGame;
Exec=qw-client-sgl
TryExec=qw-client-sgl
Terminal=false
StartupNotify=false

View file

@ -1,55 +0,0 @@
AUTOMAKE_OPTIONS= foreign
SUBDIRS= man
DOX= \
bind.dox config.dox connect.dox cshifts.dox dirconf.dox faq.dox \
filesystem.dox mapformat.dox property-list.dox qtv.dox quakeforge.dox \
qw-cap-spec.dox qw-download-spec.dox sound.dox specifications.dox \
surround-sound.dox timestamps.dox
GIB= \
gib/GIB.lyx gib/break.gib gib/continue.gib gib/curly.gib gib/examples.sh \
gib/for.gib gib/gib_head.eps gib/if-chain.gib gib/if-else.gib \
gib/if-simple.gib gib/while.gib
PROGS= \
progs/vm-exec.c progs/vm-mem.fig
EXTRA_DIST= qf.ico \
\
skybox.fig template.c template.h \
quakeforge.dox.conf.in \
\
${DOX} ${GIB} ${PROGS} \
\
config/glspeed-v1.cfg config/glspeed-v3.cfg config/swspeed.cfg \
\
config/gib/adjustvolume.gib config/gib/infobot.gib config/gib/ln.gib \
config/gib/qfadmin.gib config/gib/sshot.gib config/gib/zoom.gib \
\
qtv/qwtv.fig
SUFFIXES=.eps .fig .png
.fig.png:
@mkdir -p `dirname $@`
fig2dev -L png $< $@
.fig.eps:
@mkdir -p `dirname $@`
fig2dev -L ps $< $@
.fig.svg:
@mkdir -p `dirname $@`
fig2dev -L svg $< $@
clean-local:
-rm -fr doxygen
progs/vm-mem.svg: progs/vm-mem.fig
progs/vm-mem.eps: progs/vm-mem.fig
qtv/qwtv.svg: qtv/qwtv.fig
qtv/qwtv.eps: qtv/qwtv.fig
doc: quakeforge.dox.conf progs/vm-mem.svg progs/vm-mem.eps qtv/qwtv.svg qtv/qwtv.eps ${DOX}
doxygen quakeforge.dox.conf

81
doc/Makemodule.am Normal file
View file

@ -0,0 +1,81 @@
man_MANS += doc/man/quakeforge.1
DOX= \
doc/bind.dox \
doc/config.dox \
doc/connect.dox \
doc/cshifts.dox \
doc/dirconf.dox \
doc/faq.dox \
doc/filesystem.dox \
doc/mapformat.dox \
doc/property-list.dox \
doc/qtv.dox \
doc/quakeforge.dox \
doc/qw-cap-spec.dox \
doc/qw-download-spec.dox \
doc/sound.dox \
doc/specifications.dox \
doc/surround-sound.dox \
doc/timestamps.dox
GIB= \
doc/gib/GIB.lyx \
doc/gib/break.gib \
doc/gib/continue.gib \
doc/gib/curly.gib \
doc/gib/examples.sh \
doc/gib/for.gib \
doc/gib/gib_head.eps \
doc/gib/if-chain.gib \
doc/gib/if-else.gib \
doc/gib/if-simple.gib \
doc/gib/while.gib
PROGS= \
doc/progs/vm-exec.c \
doc/progs/vm-mem.fig
EXTRA_DIST += \
${DOX} ${GIB} ${PROGS} \
doc/qf.ico \
doc/skybox.fig \
doc/template.c \
doc/template.h \
doc/quakeforge.dox.conf.in \
doc/config/glspeed-v1.cfg \
doc/config/glspeed-v3.cfg \
doc/config/swspeed.cfg \
doc/config/gib/adjustvolume.gib \
doc/config/gib/infobot.gib \
doc/config/gib/ln.gib \
doc/config/gib/qfadmin.gib \
doc/config/gib/sshot.gib \
doc/config/gib/zoom.gib \
doc/man/quakeforge.1 \
doc/qtv/qwtv.fig
SUFFIXES += .eps .fig .png
.fig.png:
@mkdir -p `dirname $@`
fig2dev -L png $< $@
.fig.eps:
@mkdir -p `dirname $@`
fig2dev -L ps $< $@
.fig.svg:
@mkdir -p `dirname $@`
fig2dev -L svg $< $@
clean-local:
-rm -fr doxygen
doc/progs/vm-mem.svg: doc/progs/vm-mem.fig
doc/progs/vm-mem.eps: doc/progs/vm-mem.fig
doc/qtv/qwtv.svg: doc/qtv/qwtv.fig
doc/qtv/qwtv.eps: doc/qtv/qwtv.fig
.PHONY: doc
doc: doc/quakeforge.dox.conf doc/progs/vm-mem.svg doc/progs/vm-mem.eps doc/qtv/qwtv.svg doc/qtv/qwtv.eps ${DOX}
doxygen doc/quakeforge.dox.conf

View file

@ -28,7 +28,7 @@ whitespace. This allows commands and arguments to contain \c + and \c - so
long as the preceeding character is not whitespace, but also prevents
command line switches (eg \c -nosound) from becoming part of the console
command. Using careful quoting, it is even possible for a command or
argument to beging with \c + or \c -.
argument to begin with \c + or \c -.
The following command line will fail to set m_pitch because the -0.022
will not be part of the console command. <code>usage: setrom \<cvar\>

View file

@ -3,38 +3,39 @@
/**
\page connection_sequence QW Connection Sequence
\msc
Client,Server;
Client=>Server [label = "getchallenge\n"];
Server=>Client [label = "c[challenge][ext]"];
Client=>Server [label = "connect [protover] [qport] [challenge] [userinfo]"];
Server=>Client [label = "j"];
Client->Server [label = "[clc_stringcmd]new"];
Server->Client [label = "[svc_serverdata][data]"];
|||;
Client->Server [label = "[clc_stringcmd]soundlist [svcount] 0"];
--- [label = "soundlist loop start"];
Server->Client [label = "[svc_soundlist][data][next]"];
Client->Server [label = "[clc_stringcmd]soundlist [svcount] [next]"];
--- [label = "soundlist loop end"];
Server->Client [label = "[svc_soundlist][data]0"];
|||;
Client->Server [label = "[clc_stringcmd]modellist [svcount] 0"];
--- [label = "modellist list loop start"];
Server->Client [label = "[svc_modellist][data][next]"];
Client->Server [label = "[clc_stringcmd]modellist [svcount] [next]"];
--- [label = "modellist list loop end"];
Server->Client [label = "[svc_modellist][data]0"];
|||;
Client->Server [label = "[clc_stringcmd]prespawn [svcount] [n=0] [wcsum]"];
--- [label = "prespawn loop start"];
Server->Client [label = "[signon buffer n][stuffcmd]prespawn..."];
Client->Server [label = "[clc_stringcmd]prespawn [svcount] [n]"];
--- [label = "prespawn loop end"];
Server->Client [label = "[signon buffer n][stuffcmd]spawn..."];
|||;
Client->Server [label = "[clc_stringcmd]spawn [svcount] 0"];
Server->Client [label = "[spawn info][stuffcmd]skins"];
Client->Server [label = "[clc_stringcmd]begin [svcount]"];
#... [label = "in game message sequence"];
Client [linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black],
Server [linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client=>Server [label = "getchallenge\n", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server=>Client [label = "c[challenge][ext]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client=>Server [label = "connect [protover] [qport] [challenge] [userinfo]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server=>Client [label = "j", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]new", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[svc_serverdata][data]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
||| [linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]soundlist [svcount] 0", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
--- [label = "soundlist loop start", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[svc_soundlist][data][next]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]soundlist [svcount] [next]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
--- [label = "soundlist loop end", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[svc_soundlist][data]0", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
||| [linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]modellist [svcount] 0", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
--- [label = "modellist list loop start", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[svc_modellist][data][next]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]modellist [svcount] [next]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
--- [label = "modellist list loop end", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[svc_modellist][data]0", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
||| [linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]prespawn [svcount] [n=0] [wcsum]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
--- [label = "prespawn loop start", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[signon buffer n][stuffcmd]prespawn...", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]prespawn [svcount] [n]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
--- [label = "prespawn loop end", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[signon buffer n][stuffcmd]spawn...", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
||| [linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]spawn [svcount] 0", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Server->Client [label = "[spawn info][stuffcmd]skins", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
Client->Server [label = "[clc_stringcmd]begin [svcount]", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
... [label = "in game message sequence", linecolor=white, textcolor=white, arclinecolor=white, arctextcolor=white, textbgcolor=black, arctextbgcolor=black];
\endmsc
*/

View file

@ -98,7 +98,7 @@ Supported attributes are:
<code>QF</code>.</dd>
</dl>
Attribute allow variable substitution. Variables can take the form of
Attributes allow variable substitution. Variables can take the form of
either <code>\$NAME</code> or <code>\${NAME}</code>, where the latter is
useful when the end of \c NAME is ambiguous (eg,
<code>\${NAME}STUFF</code> vs <code>\$NAME/STUFF</code>).

View file

@ -1,4 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS= foreign
EXTRA_DIST= quakeforge.1

View file

@ -5,7 +5,7 @@ call_progs_main (progs_t *pr, int argc, const char **argv)
{
int i;
dfunction_t *dfunc;
func_t progs_main = 0;
pr_func_t progs_main = 0;
string_t *pr_argv;
if ((dfunc = PR_FindFunction (pr, "main"))) {
@ -23,6 +23,7 @@ call_progs_main (progs_t *pr, int argc, const char **argv)
PR_RESET_PARAMS (pr);
P_INT (pr, 0) = argc;
P_POINTER (pr, 1) = PR_SetPointer (pr, pr_argv);
pr->pr_argc = 2;
PR_ExecuteProgram (pr, progs_main);
PR_PopFrame (pr);
PR_Zone_Free (pr, pr_argv);

View file

@ -10,7 +10,7 @@ The server is "reserved" for playing clients. Any spectators would be
referees and/or admins (however, this is up to the server admin).
A qtv proxy connects to the server. The proxy may have spectating clients
and other even other proxies connecting to it. The proxies can chain to any
and even other proxies connecting to it. The proxies can chain to any
depth as an upstream proxy will pass on its information to any downstream
proxies. With just a few levels of proxies, it should be possible to have
very large spectator groups.

View file

@ -1,4 +1,4 @@
# Doxyfile 1.8.9.1
# Doxyfile 1.8.16
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@ -17,11 +17,11 @@
# Project related configuration options
#---------------------------------------------------------------------------
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
# for the list of possible encodings.
# This tag specifies the encoding used for all characters in the configuration
# file that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the
# iconv built into libc) for the transcoding. See
# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all generated output in the proper direction.
# Possible values are: None, LTR, RTL and Context.
# The default value is: None.
OUTPUT_TEXT_DIRECTION = None
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
@ -179,6 +187,16 @@ SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
# such as
# /***************
# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
# Javadoc-style will behave just like regular comments and it will not be
# interpreted by doxygen.
# The default value is: NO.
JAVADOC_BANNER = NO
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
@ -226,16 +244,15 @@ TAB_SIZE = 4
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines.
# newlines (in the resulting output). You can put ^^ in the value part of an
# alias to insert a newline as if a physical newline was in the original file.
# When you need a literal { or } or , in the value part of an alias you have to
# escape them by means of a backslash (\), this can lead to conflicts with the
# commands \{ and \} for these it is advised to use the version @{ and @} or use
# a double escape (\\{ and \\})
ALIASES = QF=QuakeForge
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.
TCL_SUBST =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
@ -264,17 +281,26 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
# sources only. Doxygen will then generate output that is more tailored for that
# language. For instance, namespaces will be presented as modules, types will be
# separated into more groups, etc.
# The default value is: NO.
OPTIMIZE_OUTPUT_SLICE = NO
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
# Fortran. In the later case the parser tries to guess whether the code is fixed
# or free formatted code, this is the default for Fortran type files), VHDL. For
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice,
# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
# tries to guess whether the code is fixed or free formatted code, this is the
# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat
# .inc files as Fortran files (default is PHP), and .f files as C (default is
# Fortran), use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
@ -285,7 +311,7 @@ EXTENSION_MAPPING = no_extension=C
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
# documentation. See http://daringfireball.net/projects/markdown/ for details.
# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
@ -293,6 +319,15 @@ EXTENSION_MAPPING = no_extension=C
MARKDOWN_SUPPORT = YES
# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
# to that level are automatically included in the table of contents, even if
# they do not have an id attribute.
# Note: This feature currently applies only to Markdown headings.
# Minimum value: 0, maximum value: 99, default value: 5.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
TOC_INCLUDE_HEADINGS = 5
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
@ -318,7 +353,7 @@ BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
@ -343,6 +378,13 @@ IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
# If one adds a struct or class to a group and this option is enabled, then also
# any nested class or struct is added to the same group. By default this option
# is disabled and one has to add nested compounds explicitly via \ingroup.
# The default value is: NO.
GROUP_NESTED_COMPOUNDS = YES
# Set the SUBGROUPING tag to YES to allow class member groups of the same type
# (for instance a group of public functions) to be put as a subgroup of that
# type (e.g. under the Public Functions section). Set it to NO to prevent
@ -417,6 +459,12 @@ EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
# methods of a class will be included in the documentation.
# The default value is: NO.
EXTRACT_PRIV_VIRTUAL = NO
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
# The default value is: NO.
@ -437,7 +485,7 @@ EXTRACT_STATIC = @STATIC_DOC@
EXTRACT_LOCAL_CLASSES = NO
# This flag is only useful for Objective-C code. When set to YES, local methods,
# This flag is only useful for Objective-C code. If set to YES, local methods,
# which are defined in the implementation section but not in the interface are
# included in the documentation. If set to NO, only methods in the interface are
# included.
@ -495,7 +543,7 @@ INTERNAL_DOCS = NO
# names in lower-case letters. If set to YES, upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
# (including Cygwin) ands Mac users are advised to set this option to NO.
# The default value is: system dependent.
CASE_SENSE_NAMES = NO
@ -682,7 +730,7 @@ LAYOUT_FILE =
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
@ -727,11 +775,18 @@ WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
# value. If set to NO, doxygen will only warn about wrong or incomplete
# parameter documentation, but not about the absence of documentation.
# parameter documentation, but not about the absence of documentation. If
# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
# The default value is: NO.
WARN_NO_PARAMDOC = NO
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
# a warning is encountered.
# The default value is: NO.
WARN_AS_ERROR = NO
# The WARN_FORMAT tag determines the format of the warning messages that doxygen
# can produce. The string should contain the $file, $line, and $text tags, which
# will be replaced by the file and line number from which the warning originated
@ -755,7 +810,7 @@ WARN_LOGFILE =
# The INPUT tag is used to specify the files and/or directories that contain
# documented source files. You may enter file names like myfile.cpp or
# directories like /usr/src/myproject. Separate the files or directories with
# spaces.
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = @TOPSRC@/include \
@ -770,7 +825,7 @@ INPUT = @TOPSRC@/include \
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: http://www.gnu.org/software/libiconv) for the list of
# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
# possible encodings.
# The default value is: UTF-8.
@ -778,12 +833,17 @@ INPUT_ENCODING = UTF-8
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
# *.h) to filter out the source-files in the directories. If left blank the
# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
# *.qsf, *.as and *.js.
# *.h) to filter out the source-files in the directories.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice.
FILE_PATTERNS = *.c \
*.h \
@ -871,9 +931,8 @@ EXAMPLE_RECURSIVE = NO
# \image command).
IMAGE_PATH = @TOPSRC@/doc \
@builddir@ \
@builddir@/progs \
@builddir@/qtv
@builddir@/doc/progs \
@builddir@/doc/qtv
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
@ -889,6 +948,10 @@ IMAGE_PATH = @TOPSRC@/doc \
# Note that the filter must not add or remove lines; it is applied before the
# code is scanned, but not when the output code is generated. If lines are added
# or removed, the anchors will not be placed correctly.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.
INPUT_FILTER =
@ -898,6 +961,10 @@ INPUT_FILTER =
# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.
FILTER_PATTERNS =
@ -950,7 +1017,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
# function all documented functions referencing it will be listed.
# entity all documented functions referencing it will be listed.
# The default value is: NO.
REFERENCED_BY_RELATION = NO
@ -982,12 +1049,12 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
# (see http://www.gnu.org/software/global/global.html). You will need version
# (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
# - Install the latest version of global
# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
# - Make sure the INPUT points to the root of the source tree
# - Run doxygen as normal
#
@ -1015,7 +1082,7 @@ VERBATIM_HEADERS = NO
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
# compiled with the --with-libclang option.
# generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
@ -1028,6 +1095,16 @@ CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS =
# If clang assisted parsing is enabled you can provide the clang parser with the
# path to the compilation database (see:
# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files
# were built. This is equivalent to specifying the "-p" option to a clang tool,
# such as clang-check. These options will then be passed to the parser.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake.
CLANG_DATABASE_PATH =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@ -1039,13 +1116,6 @@ CLANG_OPTIONS =
ALPHABETICAL_INDEX = YES
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
# Minimum value: 1, maximum value: 20, default value: 5.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 4
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@ -1146,7 +1216,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
@ -1182,6 +1252,17 @@ HTML_COLORSTYLE_GAMMA = 100
HTML_TIMESTAMP = NO
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that
# are dynamically created via Javascript. If disabled, the navigation index will
# consists of multiple levels of tabs that are statically embedded in every HTML
# page. Disable this option to support browsers that do not have Javascript,
# like the Qt help browser.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_DYNAMIC_MENUS = YES
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
@ -1205,13 +1286,13 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
# environment (see: http://developer.apple.com/tools/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# environment (see: https://developer.apple.com/xcode/), introduced with OSX
# 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
# genXcode/_index.html for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@ -1250,7 +1331,7 @@ DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on
# Windows.
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
@ -1326,7 +1407,7 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1334,7 +1415,7 @@ QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-
# folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1343,7 +1424,7 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1351,7 +1432,7 @@ QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1359,7 +1440,7 @@ QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
@ -1452,7 +1533,7 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
@ -1464,7 +1545,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# https://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@ -1472,7 +1553,7 @@ FORMULA_TRANSPARENT = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
USE_MATHJAX = NO
USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
@ -1491,8 +1572,8 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
# MathJax from http://www.mathjax.org before deployment.
# The default value is: http://cdn.mathjax.org/mathjax/latest.
# MathJax from https://www.mathjax.org before deployment.
# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
@ -1553,7 +1634,7 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/).
# Xapian (see: https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@ -1566,7 +1647,7 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/). See the section "External Indexing and
# Xapian (see: https://xapian.org/). See the section "External Indexing and
# Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES.
@ -1618,21 +1699,35 @@ LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
#
# Note that when enabling USE_PDFLATEX this option is only used for generating
# bitmaps for formulas in the HTML output, but not in the Makefile that is
# written to the output directory.
# The default file is: latex.
# Note that when not enabling USE_PDFLATEX the default is latex when enabling
# USE_PDFLATEX the default is pdflatex and when in the later case latex is
# chosen this is overwritten by pdflatex. For specific output languages the
# default can have been set differently, this depends on the implementation of
# the output language.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
# index for LaTeX.
# Note: This tag is used in the Makefile / make.bat.
# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file
# (.tex).
# The default file is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
# generate index for LaTeX. In case there is no backslash (\) as first character
# it will be automatically added in the LaTeX code.
# Note: This tag is used in the generated output file (.tex).
# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
# The default value is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_MAKEINDEX_CMD = makeindex
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
@ -1648,12 +1743,15 @@ COMPACT_LATEX = YES
# The default value is: a4.
# This tag requires that the tag GENERATE_LATEX is set to YES.
PAPER_TYPE = a4wide
PAPER_TYPE = a4
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. To get the times font for
# instance you can specify
# EXTRA_PACKAGES=times
# that should be included in the LaTeX output. The package can be specified just
# by its name or with the correct syntax as to be used with the LaTeX
# \usepackage command. To get the times font for instance you can specify :
# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
# To use the option intlimits with the amsmath package you can specify:
# EXTRA_PACKAGES=[intlimits]{amsmath}
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@ -1750,12 +1848,28 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BIB_STYLE = plain
# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
# page will contain the date and time when the page was generated. Setting this
# to NO can help when comparing the output of multiple runs.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_TIMESTAMP = NO
# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
# path from which the emoji images will be read. If a relative path is entered,
# it will be relative to the LATEX_OUTPUT directory. If left blank the
# LATEX_OUTPUT directory will be used.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_EMOJI_DIRECTORY =
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@ -1795,9 +1909,9 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's config
# file, i.e. a series of assignments. You only have to provide replacements,
# missing definitions are set to their default value.
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# configuration file, i.e. a series of assignments. You only have to provide
# replacements, missing definitions are set to their default value.
#
# See also section "Doxygen usage" for information on how to generate the
# default style sheet that doxygen normally uses.
@ -1806,8 +1920,8 @@ RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an RTF document. Syntax is
# similar to doxygen's config file. A template extensions file can be generated
# using doxygen -e rtf extensionFile.
# similar to doxygen's configuration file. A template extensions file can be
# generated using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE =
@ -1893,6 +2007,13 @@ XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
# namespace members in file scope as well, matching the HTML output.
# The default value is: NO.
# This tag requires that the tag GENERATE_XML is set to YES.
XML_NS_MEMB_FILE_SCOPE = NO
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
@ -1925,9 +2046,9 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
# AutoGen Definitions (see http://autogen.sf.net) file that captures the
# structure of the code including all documentation. Note that this feature is
# still experimental and incomplete at the moment.
# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
# the structure of the code including all documentation. Note that this feature
# is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@ -2010,10 +2131,10 @@ SEARCH_INCLUDES = YES
# This tag requires that the tag SEARCH_INCLUDES is set to YES.
INCLUDE_PATH = @TOPSRC@/include \
@TOPSRC@/hw/include \
@TOPSRC@/nq/include \
@TOPSRC@/qw/include \
@TOPSRC@/qtv/include
@TOPSRC@/qtv/include \
@TOPSRC@
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
@ -2032,6 +2153,7 @@ INCLUDE_FILE_PATTERNS = *.h
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
PREDEFINED = "__attribute__(x)=" \
IN_DOXYGEN=1 \
VISIBLE=
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
@ -2101,12 +2223,6 @@ EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
@ -2120,15 +2236,6 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
MSCGEN_PATH =
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
@ -2207,7 +2314,7 @@ COLLABORATION_GRAPH = YES
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
GROUP_GRAPHS = NO
GROUP_GRAPHS = YES
# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
@ -2261,7 +2368,8 @@ INCLUDED_BY_GRAPH = YES
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable call graphs for selected
# functions only using the \callgraph command.
# functions only using the \callgraph command. Disabling a call graph can be
# accomplished by means of the command \hidecallgraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
@ -2272,7 +2380,8 @@ CALL_GRAPH = NO
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable caller graphs for selected
# functions only using the \callergraph command.
# functions only using the \callergraph command. Disabling a caller graph can be
# accomplished by means of the command \hidecallergraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
@ -2295,13 +2404,17 @@ GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = NO
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot.
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
# http://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
# gif:cairo:gd, gif:gd, gif:gd:gd and svg.
# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
# png:gdiplus:gdiplus.
# The default value is: png.
# This tag requires that the tag HAVE_DOT is set to YES.
@ -2352,6 +2465,11 @@ DIAFILE_DIRS =
PLANTUML_JAR_PATH =
# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
# configuration file for plantuml.
PLANTUML_CFG_FILE =
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.

View file

@ -1,4 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS= foreign
SUBDIRS= include source

1
hw/Makemodule.am Normal file
View file

@ -0,0 +1 @@
include hw/source/Makemodule.am

View file

@ -1,4 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS= foreign
EXTRA_DIST =

View file

@ -27,27 +27,17 @@
# $Id$
#
AUTOMAKE_OPTIONS= foreign
bin_PROGRAMS += @HW_TARGETS@
# Stuff that is common to both client and server
AM_CPPFLAGS= -I$(top_srcdir)/include -I$(top_srcdir)/hw/include
SDL_LIBS = @SDL_LIBS@
EXTRA_PROGRAMS += hw-master
bin_PROGRAMS= @HW_TARGETS@
EXTRA_PROGRAMS= hw-master
common_ldflags= -export-dynamic
hw_master_libs= \
$(top_builddir)/libs/net/libnet_chan.la \
libs/net/libnet_chan.la \
@server_static_plugin_libs@ \
$(top_builddir)/libs/console/libQFconsole.la \
$(top_builddir)/libs/util/libQFutil.la
libs/console/libQFconsole.la \
libs/util/libQFutil.la
hw_master_LDFLAGS= $(common_ldflags)
hw_master_LDADD= $(hw_master_libs) $(NET_LIBS)
hw_master_DEPENDENCIES= $(hw_master_libs)
hw_master_SOURCES= master.c
# Kill the temp files, hopefully.
CLEANFILES = *.i *.s
hw_master_SOURCES= hw/source/master.c

View file

@ -55,13 +55,21 @@ typedef struct server_s {
double timeout;
} server_t;
static cvar_t *sv_console_plugin;
static char *sv_console_plugin;
static cvar_t sv_console_plugin_cvar = {
.name = "sv_console_plugin",
.description =
"Plugin used for the console",
.default_value = "server",
.flags = CVAR_ROM,
.value = { .type = 0, .value = &sv_console_plugin },
};
SERVER_PLUGIN_PROTOS
static plugin_list_t server_plugin_list[] = {
SERVER_PLUGIN_LIST
};
qboolean is_server = true;
bool is_server = true;
static cbuf_t *mst_cbuf;
@ -121,7 +129,7 @@ FL_Add (filter_t * filter)
filter_list = filter;
}
static filter_t *
static __attribute__((pure)) filter_t *
FL_Find (netadr_t adr)
{
filter_t *filter;
@ -209,7 +217,7 @@ SVL_Add (server_t *sv)
sv_list = sv;
}
static server_t *
static __attribute__((pure)) server_t *
SVL_Find (netadr_t adr)
{
server_t *sv;
@ -469,13 +477,10 @@ SV_WriteFilterList (void)
}
static void
SV_Shutdown (void)
SV_Shutdown (void *data)
{
NET_Shutdown ();
// write filter list
SV_WriteFilterList ();
Con_Shutdown ();
}
static void
@ -525,7 +530,7 @@ main (int argc, const char **argv)
mst_cbuf = Cbuf_New (&id_interp);
Sys_RegisterShutdown (SV_Shutdown);
Sys_RegisterShutdown (SV_Shutdown, 0);
Sys_Init ();
@ -538,12 +543,12 @@ main (int argc, const char **argv)
PI_Init ();
sv_console_plugin = Cvar_Get ("sv_console_plugin", "server",
CVAR_ROM, 0, "Plugin used for the console");
Cvar_Register (&sv_console_plugin_cvar, 0, 0);
PI_RegisterPlugins (server_plugin_list);
Con_Init (sv_console_plugin->string);
Con_Load (sv_console_plugin);
if (con_module)
con_module->data->console->cbuf = mst_cbuf;
Con_Init ();
con_list_print = Sys_Printf;
SV_InitNet ();

View file

@ -1,26 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS= foreign
SUBDIRS = QF
EXTRA_DIST = \
adivtab.h alsa_funcs_list.h anorm_dots.h anorms.h asm_draw.h asm_i386.h \
block16.h block8.h buildnum.h clview.h compat.h context_sdl.h \
context_x11.h d_iface.h d_ifacea.h d_local.h dga_check.h exp.h fbset.h \
garbage.h getopt.h gib_buffer.h gib_builtin.h gib_classes.h \
gib_execute.h gib_function.h gib_handle.h gib_object.h gib_parse.h \
gib_process.h gib_regex.h gib_semantics.h gib_thread.h gib_tree.h \
gib_vars.h gl_warp_sin.h in_win.h logos.h mod_internal.h net_dgrm.h \
net_loop.h net_udp.h net_vcr.h net_wins.h netchan.h netmain.h \
noisetextures.h old_keys.h ops.h pstdint.h qfalloca.h qstring.h \
quakeasm.h r_cvar.h r_dynamic.h r_internal.h r_local.h r_screen.h \
r_shared.h regex.h rua_internal.h sbar.h skin_stencil.h snd_internal.h \
sv_console.h varrays.h vgamodes.h vid_internal.h vregset.h winquake.h \
world.h \
\
client/entities.h \
\
qw/bothdefs.h qw/msg_backbuf.h qw/msg_ucmd.h qw/pmove.h qw/protocol.h \
\
win32/dirent.h win32/fnmatch.h win32/stdint.h \
\
win32/resources/icon1Vista.ico win32/resources/icon1XP.ico \
win32/resources/quakeforge.rc win32/resources/resource.h

110
include/Makemodule.am Normal file
View file

@ -0,0 +1,110 @@
## Process this file with automake to produce Makefile.in
include include/QF/Makemodule.am
EXTRA_DIST += \
include/adivtab.h \
include/alsa_funcs_list.h \
include/anorm_dots.h \
include/anorms.h \
include/asm_draw.h \
include/asm_i386.h \
include/block16.h \
include/block8.h \
include/bsearch.h \
include/buildnum.h \
include/compat.h \
include/context_sdl.h \
include/context_win.h \
include/context_x11.h \
include/d_iface.h \
include/d_ifacea.h \
include/d_local.h \
include/dga_check.h \
include/exp.h \
include/fbset.h \
include/gamedefs.h \
include/garbage.h \
include/getopt.h \
include/gib_buffer.h \
include/gib_builtin.h \
include/gib_classes.h \
include/gib_execute.h \
include/gib_function.h \
include/gib_handle.h \
include/gib_object.h \
include/gib_parse.h \
include/gib_process.h \
include/gib_regex.h \
include/gib_semantics.h \
include/gib_thread.h \
include/gib_tree.h \
include/gib_vars.h \
include/gl_warp_sin.h \
include/in_win.h \
include/in_x11.h \
include/logos.h \
include/mod_internal.h \
include/net_dgrm.h \
include/net_loop.h \
include/net_udp.h \
include/net_vcr.h \
include/net_wins.h \
include/netchan.h \
include/netmain.h \
include/noisetextures.h \
include/old_keys.h \
include/ops.h \
include/pstdint.h \
include/qfalloca.h \
include/qfselect.h \
include/qstring.h \
include/quakeasm.h \
include/quicksort.h \
include/r_cvar.h \
include/r_dynamic.h \
include/r_font.h \
include/r_internal.h \
include/r_local.h \
include/r_scrap.h \
include/r_shared.h \
include/r_text.h \
include/regex.h \
include/rua_internal.h \
include/skin_stencil.h \
include/snd_internal.h \
include/sv_console.h \
include/varrays.h \
include/vgamodes.h \
include/vid_gl.h \
include/vid_internal.h \
include/vid_sw.h \
include/vid_vulkan.h \
include/vregset.h \
include/winquake.h \
include/world.h \
include/client/chase.h \
include/client/effects.h \
include/client/entities.h \
include/client/hud.h \
include/client/input.h \
include/client/locs.h \
include/client/particles.h \
include/client/sbar.h \
include/client/screen.h \
include/client/state.h \
include/client/temp_entities.h \
include/client/view.h \
include/client/world.h \
include/evdev/hotplug.h \
include/evdev/inputlib.h \
include/qw/bothdefs.h \
include/qw/msg_backbuf.h \
include/qw/msg_ucmd.h \
include/qw/pmove.h \
include/qw/protocol.h \
include/win32/dirent.h \
include/win32/fnmatch.h \
include/win32/resources/icon1Vista.ico \
include/win32/resources/icon1XP.ico \
include/win32/resources/quakeforge.rc \
include/win32/resources/resource.h

View file

@ -830,4 +830,43 @@
# define GL_OPERAND1_ALPHA 0x8599
# define GL_OPERAND2_ALPHA 0x859A
/* framebuffer */
#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
#define GL_COLOR_ATTACHMENT0 0x8CE0
#define GL_COLOR_ATTACHMENT1 0x8CE1
#define GL_COLOR_ATTACHMENT2 0x8CE2
#define GL_COLOR_ATTACHMENT3 0x8CE3
#define GL_COLOR_ATTACHMENT4 0x8CE4
#define GL_COLOR_ATTACHMENT5 0x8CE5
#define GL_COLOR_ATTACHMENT6 0x8CE6
#define GL_COLOR_ATTACHMENT7 0x8CE7
#define GL_COLOR_ATTACHMENT8 0x8CE8
#define GL_COLOR_ATTACHMENT9 0x8CE9
#define GL_COLOR_ATTACHMENT10 0x8CEA
#define GL_COLOR_ATTACHMENT11 0x8CEB
#define GL_COLOR_ATTACHMENT12 0x8CEC
#define GL_COLOR_ATTACHMENT13 0x8CED
#define GL_COLOR_ATTACHMENT14 0x8CEE
#define GL_COLOR_ATTACHMENT15 0x8CEF
#define GL_COLOR_ATTACHMENT16 0x8CF0
#define GL_COLOR_ATTACHMENT17 0x8CF1
#define GL_COLOR_ATTACHMENT18 0x8CF2
#define GL_COLOR_ATTACHMENT19 0x8CF3
#define GL_COLOR_ATTACHMENT20 0x8CF4
#define GL_COLOR_ATTACHMENT21 0x8CF5
#define GL_COLOR_ATTACHMENT22 0x8CF6
#define GL_COLOR_ATTACHMENT23 0x8CF7
#define GL_COLOR_ATTACHMENT24 0x8CF8
#define GL_COLOR_ATTACHMENT25 0x8CF9
#define GL_COLOR_ATTACHMENT26 0x8CFA
#define GL_COLOR_ATTACHMENT27 0x8CFB
#define GL_COLOR_ATTACHMENT28 0x8CFC
#define GL_COLOR_ATTACHMENT29 0x8CFD
#define GL_COLOR_ATTACHMENT30 0x8CFE
#define GL_COLOR_ATTACHMENT31 0x8CFF
#define GL_DEPTH_ATTACHMENT 0x8D00
#define GL_STENCIL_ATTACHMENT 0x8D20
#define GL_FRAMEBUFFER 0x8D40
#endif // __gl_defines_h

View file

@ -38,6 +38,7 @@
# include <windows.h>
# define GLAPIENTRY WINAPI
# undef LoadImage
# undef E_POINTER
# else
# ifdef APIENTRY
# define GLAPIENTRY APIENTRY
@ -325,7 +326,7 @@ typedef void *(GLAPIENTRY *QF_glXGetProcAddressARB) (const GLubyte *procName);
typedef const GLubyte *(GLAPIENTRY *QF_wglGetExtensionsStringEXT) (void);
/* QuakeForge extension functions */
qboolean QFGL_ExtensionPresent (const char *);
bool QFGL_ExtensionPresent (const char *);
void *QFGL_ExtensionAddress (const char *);
#endif // __qfgl_ext_h_

View file

@ -42,8 +42,6 @@
#undef QFGL_NEED
#undef QFGL_WANT
qboolean GLF_Init (void);
qboolean GLF_FindFunctions (void);
void *QFGL_ProcAddress (void *handle, const char *name, qboolean);
bool GLF_FindFunctions (void);
#endif // __QF_GL_funcs_h_

View file

@ -1,9 +1,12 @@
/*
hl_bsp.h
qf_alias.h
Half Life file definitions
GL specific alias model stuff
Copyright (C) 1996-1997 Id Software, Inc.
Copyright (C) 2012 Bill Currie <bill@taniwha.org>
Author: Bill Currie <bill@taniwha.org>
Date: 2012/1/1
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
@ -24,17 +27,18 @@
Boston, MA 02111-1307, USA
*/
#ifndef __QF_GL_qf_alias_h
#define __QF_GL_qf_alias_h
#include "QF/GL/types.h"
#ifndef _HL_BSP_H
#define _HL_BSP_H
typedef struct aliasvrt_s {
GLshort st[2];
GLshort normal[3];
GLushort vertex[3];
} aliasvrt_t;
#include "QF/qtypes.h"
struct entity_s;
void gl_R_DrawAliasModel (struct entity_s ent);
extern void CL_ParseEntityLump(const char *entdata);
extern void HL_Mod_LoadLighting (lump_t *l);
extern void HL_Mod_LoadTextures (lump_t *l);
extern byte *W_GetTexture(const char *name, int matchwidth, int matchheight);
extern void W_LoadTextureWadFile (const char *filename, int complain);
#endif // _HL_BSP_H
#endif//__QF_GL_qf_alias_h

View file

@ -28,8 +28,43 @@
#ifndef __gl_draw_h
#define __gl_draw_h
struct qpic_s;
struct font_s;
struct draw_charbuffer_s;
void gl_Draw_Init (void);
void gl_Draw_Shutdown (void);
void gl_Draw_CharBuffer (int x, int y, struct draw_charbuffer_s *buffer);
void gl_Draw_SetScale (int scale);
void gl_Draw_Character (int x, int y, unsigned ch);
void gl_Draw_String (int x, int y, const char *str);
void gl_Draw_nString (int x, int y, const char *str, int count);
void gl_Draw_AltString (int x, int y, const char *str);
void gl_Draw_ConsoleBackground (int lines, byte alpha);
void gl_Draw_Crosshair (void);
void gl_Draw_CrosshairAt (int ch, int x, int y);
void gl_Draw_TileClear (int x, int y, int w, int h);
void gl_Draw_Fill (int x, int y, int w, int h, int c);
void gl_Draw_Line (int x0, int y0, int x1, int y1, int c);
void gl_Draw_TextBox (int x, int y, int width, int lines, byte alpha);
void gl_Draw_FadeScreen (void);
void gl_Draw_BlendScreen (quat_t color);
struct qpic_s *gl_Draw_CachePic (const char *path, bool alpha);
void gl_Draw_UncachePic (const char *path);
struct qpic_s *gl_Draw_MakePic (int width, int height, const byte *data);
void gl_Draw_DestroyPic (struct qpic_s *pic);
struct qpic_s *gl_Draw_PicFromWad (const char *name);
void gl_Draw_Pic (int x, int y, struct qpic_s *pic);
void gl_Draw_FitPic (int x, int y, int width, int height, struct qpic_s *pic);
void gl_Draw_Picf (float x, float y, struct qpic_s *pic);
void gl_Draw_SubPic(int x, int y, struct qpic_s *pic,
int srcx, int srcy, int width, int height);
int gl_Draw_AddFont (struct font_s *font);
void gl_Draw_Glyph (int x, int y, int fontid, int glyphid, int c);
void GL_Set2D (void);
void GL_Set2DScaled (void);
void GL_End2D (void);
void GL_DrawReset (void);
void GL_FlushText (void);

View file

@ -0,0 +1,37 @@
/*
qf_fisheye.h
GL screen fisheye
Copyright (C) 2022 Bill Currie <bill@taniwha.org>
Author: Bill Currie <bill@taniwha.org>
Date: 2022/3/25
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
*/
#ifndef __QF_GL_qf_fisheye_h
#define __QF_GL_qf_fisheye_h
void gl_InitFisheye (void);
struct framebuffer_s;
void gl_FisheyeScreen (struct framebuffer_s *fb);
#endif//__QF_GL_qf_fisheye_h

View file

@ -154,6 +154,7 @@ QFGL_NEED (void, glFogfv, (GLenum pname, const GLfloat * params))
QFGL_NEED (void, glFogi, (GLenum pname, GLint param))
QFGL_DONT_NEED (void, glFogiv, (GLenum pname, const GLint * params))
QFGL_NEED (void, glFrontFace, (GLenum mode))
QFGL_NEED (void, glGenerateMipmap, (GLenum target))
QFGL_NEED (void, glFrustum, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val))
QFGL_NEED (GLuint, glGenLists, (GLsizei range))
QFGL_NEED (void, glGenTextures, (GLsizei n, GLuint * textures))
@ -416,7 +417,20 @@ QFGL_NEED (void, glVertexPointer, (GLint size, GLenum type, GLsizei stride, cons
QFGL_NEED (void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height))
// ATI Extensions
QFGL_WANT (void, glPNTrianglesiATI, (GLenum pname, GLint param))
QFGL_WANT (void, glPNTrianglesiATI, (GLint x, GLint y))
// frame buffers
QFGL_DONT_NEED (GLboolean, glIsFramebuffer, (GLuint framebuffer))
QFGL_NEED (void, glBindFramebuffer, (GLenum target, GLuint framebuffer))
QFGL_NEED (void, glDeleteFramebuffers, (GLsizei n, const GLuint *framebuffers))
QFGL_NEED (void, glGenFramebuffers, (GLsizei n, GLuint *framebuffers))
QFGL_DONT_NEED (GLenum, glCheckFramebufferStatus, (GLenum target))
QFGL_DONT_NEED (void, glFramebufferTexture1D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level))
QFGL_NEED (void, glFramebufferTexture2D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level))
QFGL_DONT_NEED (void, glFramebufferTexture3D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset))
QFGL_DONT_NEED (void, glFramebufferRenderbuffer, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer))
QFGL_DONT_NEED (void, glGetFramebufferAttachmentParameteriv, (GLenum target, GLenum attachment, GLenum pname, GLint *params))
#ifdef UNDEF_QFGL_DONT_NEED
#undef QFGL_DONT_NEED

View file

@ -44,6 +44,7 @@ typedef struct glsliqm_s {
iqmvertexarray *color;
} gliqm_t;
void gl_R_DrawIQMModel (entity_t *ent);
struct entity_s;
void gl_R_DrawIQMModel (struct entity_s ent);
#endif//__QF_GL_qf_iqm_h

View file

@ -28,6 +28,8 @@
#ifndef __QF_GL_lightmap_h
#define __QF_GL_lightmap_h
#include "QF/GL/types.h"
// LordHavoc: since lightmaps are now allocated only as needed, allow a ridiculous number :)
#define MAX_LIGHTMAPS 1024
#define BLOCK_WIDTH 64
@ -40,16 +42,20 @@ typedef struct glRect_s {
extern int lm_src_blend, lm_dest_blend;
extern model_t *gl_currentmodel;
extern int gl_lightmap_textures;
extern qboolean gl_lightmap_modified[MAX_LIGHTMAPS];
extern instsurf_t *gl_lightmap_polys[MAX_LIGHTMAPS];
extern GLuint gl_lightmap_textures[MAX_LIGHTMAPS];
extern bool gl_lightmap_modified[MAX_LIGHTMAPS];
extern instsurf_t *gl_lightmap_polys;
extern glRect_t gl_lightmap_rectchange[MAX_LIGHTMAPS];
void GL_BuildSurfaceDisplayList (msurface_t *fa);
void gl_lightmap_init (void);
void GL_BuildLightmaps (struct model_s **models, int num_models);
void R_BlendLightmaps (void);
void R_CalcLightmaps (void);
extern void (*R_BuildLightMap) (msurface_t *surf);
void gl_R_BlendLightmaps (void);
void gl_R_CalcLightmaps (void);
struct transform_s;
extern void (*gl_R_BuildLightMap) (const vec4f_t *transform,
mod_brush_t *brush, msurface_t *surf);
int gl_R_LightmapTexture (void) __attribute__((pure));
void gl_R_FlushLightmaps (void);
#endif // __QF_GL_lightmap_h

View file

@ -0,0 +1,46 @@
/*
qf_particles.h
GL specific particles stuff
Copyright (C) 2012 Bill Currie <bill@taniwha.org>
Author: Bill Currie <bill@taniwha.org>
Date: 2012/1/15
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
*/
#ifndef __QF_GL_qf_particles_h
#define __QF_GL_qf_particles_h
#include "QF/GL/types.h"
typedef struct {
float texcoord[2];
float vertex[3];
byte color[4];
} partvert_t;
struct psystem_s;
void gl_R_DrawParticles (struct psystem_s *pssystem);
void gl_R_Particles_Init_Cvars (void);
void gl_R_InitParticles (void);
#endif//__QF_GL_qf_particles_h

View file

@ -29,6 +29,7 @@
#define __QF_GL_rlight_h
extern float gl_bubble_sintable[], gl_bubble_costable[];
void R_RenderDlights (void);
void gl_R_RenderDlights (void);
void gl_R_InitBubble (void);
#endif // __QF_GL_rlight_h

View file

@ -29,18 +29,30 @@
#define __QF_GL_rmain_h
#include "QF/qtypes.h"
#include "QF/cvar.h"
#include "QF/simd/types.h"
struct cvar_s;
struct entity_s;
extern qboolean gl_envmap;
extern int c_brush_polys, c_alias_polys;
extern float r_world_matrix[16];
extern float gl_modelalpha;
//extern vec3_t shadecolor;
extern void gl_multitexture_f (cvar_t *var);
extern void gl_multitexture_f (void *data, const struct cvar_s *var);
void glrmain_init (void);
void R_RotateForEntity (struct entity_s *e);
void gl_R_RotateForEntity (const vec4f_t *mat);
struct model_s;
struct entqueue_s;
struct scene_s;
void gl_R_NewScene (struct scene_s *scene);
void gl_R_RenderView (void);
void gl_R_RenderEntities (struct entqueue_s *queue);
void gl_R_ClearState (void);
void gl_R_ViewChanged (void);
void gl_R_LineGraph (int x, int y, int *h_vals, int count, int height);
void gl_R_InitGraphTextures (void);
#endif // __QF_GL_rmain_h

View file

@ -28,14 +28,35 @@
#ifndef __QF_GL_rsurf_h
#define __QF_GL_rsurf_h
extern int gl_mirrortexturenum; // quake texturenum, not gltexturenum
typedef struct gltex_s {
struct texture_s *texture;
int gl_texturenum;
int gl_fb_texturenum;
struct instsurf_s *tex_chain;
struct instsurf_s **tex_chain_tail;
} gltex_t;
void gl_lightmap_init (void);
void GL_BuildLightmaps (struct model_s **models, int num_models);
struct model_s;
struct entity_s;
struct msurface_s;
struct mod_brush_s;
void R_DrawBrushModel (struct entity_s *e);
void R_DrawWorld (void);
void GL_BuildSurfaceDisplayList (struct mod_brush_s *brush,
struct msurface_s *fa);
void GL_EmitWaterPolys (msurface_t *fa);
void gl_R_DrawBrushModel (struct entity_s e);
void gl_R_DrawWorld (void);
void gl_R_DrawWaterSurfaces (void);
void GL_EmitWaterPolys (struct msurface_s *fa);
void gl_R_LoadSkys (const char *sky);
struct texture_s;
void gl_R_AddTexture (struct texture_s *tx);
void gl_R_ClearTextures (void);
void gl_R_InitSurfaceChains (struct mod_brush_s *brush);
struct framebuffer_s;
void gl_WarpScreen (struct framebuffer_s *fb);
#endif // __QF_GL_rsurf_h

View file

@ -30,13 +30,20 @@
#include "QF/qtypes.h"
#include "QF/model.h"
#include "QF/GL/types.h"
#define SKY_TEX 2000 // Quake 2 environment sky
extern qboolean gl_skyloaded;
extern bool gl_skyloaded;
extern vec5_t gl_skyvec[6][4];
extern GLuint gl_solidskytexture;
extern GLuint gl_alphaskytexture;
void R_DrawSky (void);
void R_DrawSkyChain (const instsurf_t *s);
struct texture_s;
void gl_R_InitSky (struct texture_s *mt);
void gl_R_DrawSky (void);
void gl_R_DrawSkyChain (const instsurf_t *s);
void gl_R_LoadSkys (const char *skyname);
#endif // __QF_GL_sky_h

37
include/QF/GL/qf_sprite.h Normal file
View file

@ -0,0 +1,37 @@
/*
qf_sprite.h
GL specific sprite model stuff
Copyright (C) 2021 Bill Currie <bill@taniwha.org>
Author: Bill Currie <bill@taniwha.org>
Date: 2021/7/22
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
*/
#ifndef __QF_GL_qf_sprite_h
#define __QF_GL_qf_sprite_h
struct entity_s;
void gl_R_InitSprites (void);
extern void (*gl_R_DrawSpriteModel) (struct entity_s ent);
#endif//__QF_GL_qf_sprite_h

View file

@ -29,6 +29,7 @@
#define __gl_textures_h
#include "QF/qtypes.h"
#include "QF/GL/types.h"
#define MAX_GLTEXTURES 2048
@ -37,17 +38,32 @@ extern int gl_solid_format;
extern int gl_lightmap_format;
extern int gl_filter_min;
extern int gl_filter_max;
extern qboolean gl_Anisotropy;
extern bool gl_Anisotropy;
extern float gl_aniso;
extern int gl_part_tex;
extern GLuint gl_part_tex;
struct tex_s;
void GL_Upload8 (const byte *data, int width, int height, qboolean mipmap, qboolean alpha);
void GL_Upload8_EXT (const byte *data, int width, int height, qboolean mipmap, qboolean alpha);
int GL_LoadTexture (const char *identifier, int width, int height, const byte *data, qboolean mipmap, qboolean alpha, int bytesperpixel);
void GL_Upload8 (const byte *data, int width, int height, bool mipmap, bool alpha);
void GL_Upload8_EXT (const byte *data, int width, int height, bool mipmap, bool alpha);
int GL_LoadTexture (const char *identifier, int width, int height, const byte *data, bool mipmap, bool alpha, int bytesperpixel);
int GL_LoadTex (const char *identifier, int mips, struct tex_s *tex);
int GL_FindTexture (const char *identifier);
void GL_TextureMode_f (void);
void GL_ReleaseTexture (int tex);
void GDT_Init (void);
void GL_TextureInit (void);
typedef struct scrap_s scrap_t;
scrap_t *GL_CreateScrap (int size, int format, int linear);
void GL_DestroyScrap (scrap_t *scrap);
void GL_ScrapClear (scrap_t *scrap);
int GL_ScrapTexture (scrap_t *scrap) __attribute__((pure));
struct subpic_s *GL_ScrapSubpic (scrap_t *scrap, int width, int height);
void GL_SubpicDelete (struct subpic_s *subpic);
void GL_SubpicUpdate (struct subpic_s *subpic, byte *data, int batch);
void GL_ScrapFlush (scrap_t *scrap);
#endif // __gl_textures_h

View file

@ -39,14 +39,13 @@ extern QF_glActiveTexture qglActiveTexture;
extern QF_glMultiTexCoord2f qglMultiTexCoord2f;
extern QF_glMultiTexCoord2fv qglMultiTexCoord2fv;
extern int gl_mtex_active_tmus;
extern qboolean gl_mtex_capable;
extern qboolean gl_mtex_fullbright;
extern bool gl_mtex_capable;
extern bool gl_mtex_fullbright;
extern GLenum gl_mtex_enum;
extern qboolean gl_combine_capable;
extern bool gl_combine_capable;
extern float gl_rgb_scale;
extern int gl_texture_number;
extern qboolean gl_feature_mach64;
extern bool gl_feature_mach64;
extern float gldepthmin, gldepthmax;
extern int gl_use_bgra;
extern int gl_tess;

View file

@ -43,8 +43,7 @@
#undef QFGL_NEED
#undef QFGL_WANT
qboolean EGLF_Init (void);
qboolean EGLF_FindFunctions (void);
void *QFEGL_ProcAddress (void *handle, const char *name, qboolean);
bool EGLF_FindFunctions (void);
void *QFEGL_ProcAddress (void *handle, const char *name, bool);
#endif // __QF_GLSL_funcs_h_

View file

@ -39,7 +39,8 @@ typedef struct aliasvrt_s {
} aliasvrt_t;
void glsl_R_InitAlias (void);
void glsl_R_DrawAlias (void);
struct entity_s;
void glsl_R_DrawAlias (struct entity_s ent);
void glsl_R_AliasBegin (void);
void glsl_R_AliasEnd (void);

View file

@ -30,8 +30,19 @@
#ifndef __QF_GLSL_qf_bsp_h
#define __QF_GLSL_qf_bsp_h
#include "QF/simd/types.h"
#include "QF/GLSL/types.h"
typedef struct glsltex_s {
struct texture_s *texture;
int gl_texturenum;
int sky_tex[2];
struct instsurf_s *tex_chain;
struct instsurf_s **tex_chain_tail;
struct elechain_s *elechain;
struct elechain_s **elechain_tail;
} glsltex_t;
typedef struct bspvert_s {
quat_t vertex;
quat_t tlst;
@ -47,17 +58,22 @@ typedef struct elements_s {
typedef struct elechain_s {
struct elechain_s *_next;
struct elechain_s *next;
int index;
int model_index;
elements_t *elements;
vec_t *transform;
vec4f_t *transform;
float *color;
} elechain_t;
struct model_s;
void glsl_R_ClearElements (void);
void glsl_R_DrawWorld (void);
void glsl_R_DrawSky (void);
void glsl_R_RegisterTextures (model_t **models, int num_models);
void glsl_R_BuildDisplayLists (model_t **models, int num_models);
void glsl_R_DrawWaterSurfaces (void);
void glsl_R_RegisterTextures (struct model_s **models, int num_models);
void glsl_R_BuildDisplayLists (struct model_s **models, int num_models);
void glsl_R_InitBsp (void);
void glsl_R_ShutdownBsp (void);
void glsl_R_LoadSkys (const char *sky);
#endif//__QF_GLSL_qf_bsp_h

View file

@ -25,8 +25,43 @@
*/
#ifndef __gl_draw_h
#define __gl_draw_h
#ifndef __QF_GLSL_qf_draw_h
#define __QF_GLSL_qf_draw_h
struct qpic_s;
struct font_s;
struct draw_charbuffer_s;
void glsl_Draw_Init (void);
void glsl_Draw_Shutdown (void);
void glsl_Draw_CharBuffer (int x, int y, struct draw_charbuffer_s *buffer);
void glsl_Draw_SetScale (int scale);
void glsl_Draw_Character (int x, int y, unsigned ch);
void glsl_Draw_String (int x, int y, const char *str);
void glsl_Draw_nString (int x, int y, const char *str, int count);
void glsl_Draw_AltString (int x, int y, const char *str);
void glsl_Draw_ConsoleBackground (int lines, byte alpha);
void glsl_Draw_Crosshair (void);
void glsl_Draw_CrosshairAt (int ch, int x, int y);
void glsl_Draw_TileClear (int x, int y, int w, int h);
void glsl_Draw_Fill (int x, int y, int w, int h, int c);
void glsl_Draw_Line (int x0, int y0, int x1, int y1, int c);
void glsl_LineGraph (int x, int y, int *h_vals, int count, int height);
void glsl_Draw_TextBox (int x, int y, int width, int lines, byte alpha);
void glsl_Draw_FadeScreen (void);
void glsl_Draw_BlendScreen (quat_t color);
struct qpic_s *glsl_Draw_CachePic (const char *path, bool alpha);
void glsl_Draw_UncachePic (const char *path);
struct qpic_s *glsl_Draw_MakePic (int width, int height, const byte *data);
void glsl_Draw_DestroyPic (struct qpic_s *pic);
struct qpic_s *glsl_Draw_PicFromWad (const char *name);
void glsl_Draw_Pic (int x, int y, struct qpic_s *pic);
void glsl_Draw_FitPic (int x, int y, int width, int height, struct qpic_s *pic);
void glsl_Draw_Picf (float x, float y, struct qpic_s *pic);
void glsl_Draw_SubPic(int x, int y, struct qpic_s *pic,
int srcx, int srcy, int width, int height);
int glsl_Draw_AddFont (struct font_s *font);
void glsl_Draw_Glyph (int x, int y, int fontid, int glyphid, int c);
void GLSL_Set2D (void);
void GLSL_Set2DScaled (void);
@ -34,4 +69,4 @@ void GLSL_End2D (void);
void GLSL_DrawReset (void);
void GLSL_FlushText (void);
#endif//__gl_draw_h
#endif//__QF_GLSL_qf_draw_h

View file

@ -0,0 +1,37 @@
/*
qf_fisheye.h
GLSL screen fisheye
Copyright (C) 2022 Bill Currie <bill@taniwha.org>
Author: Bill Currie <bill@taniwha.org>
Date: 2022/3/25
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
*/
#ifndef __QF_GLSL_qf_fisheye_h
#define __QF_GLSL_qf_fisheye_h
void glsl_InitFisheye (void);
struct framebuffer_s;
void glsl_FisheyeScreen (struct framebuffer_s *fb);
#endif//__QF_GLSL_qf_fisheye_h

View file

@ -57,6 +57,8 @@ QFGL_NEED (void, glDepthMask, (GLboolean flag))
QFGL_NEED (void, glDepthRangef, (GLclampf zNear, GLclampf zFar))
QFGL_NEED (void, glDetachShader, (GLuint program, GLuint shader))
QFGL_NEED (void, glDisable, (GLenum cap))
QFGL_NEED (void, glCreateVertexArrays, (GLsizei n, GLuint *arrays))
QFGL_NEED (void, glBindVertexArray, (GLuint array))
QFGL_NEED (void, glDisableVertexAttribArray, (GLuint index))
QFGL_NEED (void, glDrawArrays, (GLenum mode, GLint first, GLsizei count))
QFGL_NEED (void, glDrawElements, (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices))

View file

@ -40,7 +40,8 @@ typedef struct glsliqm_s {
} glsliqm_t;
void glsl_R_InitIQM (void);
void glsl_R_DrawIQM (void);
struct entity_s;
void glsl_R_DrawIQM (struct entity_s ent);
void glsl_R_IQMBegin (void);
void glsl_R_IQMEnd (void);

View file

@ -33,11 +33,13 @@
#define BLOCK_WIDTH 64
#define BLOCK_HEIGHT 64
void glsl_lightmap_init (void);
void glsl_Lightmap_Shutdown (void);
struct transform_s;
void glsl_R_BuildLightmaps (struct model_s **models, int num_models);
void glsl_R_CalcLightmaps (void);
extern void (*glsl_R_BuildLightMap) (msurface_t *surf);
int glsl_R_LightmapTexture (void);
extern void (*glsl_R_BuildLightMap) (const vec4f_t *transform,
mod_brush_t *brush, msurface_t *surf);
int glsl_R_LightmapTexture (void) __attribute__((pure));
void glsl_R_FlushLightmaps (void);
#endif//__QF_GLSL_lightmap_h

40
include/QF/GLSL/qf_main.h Normal file
View file

@ -0,0 +1,40 @@
/*
qf_main.h
glsl main stuff from the renderer.
Copyright (C) 2021 Bill Currie <bill@taniwha.org>
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
*/
#ifndef __QF_GLSL_qf_main_h
#define __QF_GLSL_qf_main_h
struct entqueue_s;
struct scene_s;
void glsl_R_NewScene (struct scene_s *scene);
void glsl_R_RenderEntities (struct entqueue_s *queue);
void glsl_R_RenderView (void);
void glsl_R_ClearState (void);
void glsl_R_ViewChanged (void);
#endif//__QF_GLSL_qf_main_h

View file

@ -27,8 +27,8 @@
Boston, MA 02111-1307, USA
*/
#ifndef __QF_GLSL_qf_bsp_h
#define __QF_GLSL_qf_bsp_h
#ifndef __QF_GLSL_qf_particles_h
#define __QF_GLSL_qf_particles_h
#include "QF/GLSL/types.h"
@ -38,4 +38,10 @@ typedef struct {
byte color[4];
} partvert_t;
#endif//__QF_GLSL_qf_bsp_h
struct psystem_s;
void glsl_R_DrawParticles (struct psystem_s *psystem);
void glsl_R_Particles_Init_Cvars (void);
void glsl_R_InitParticles (void);
void glsl_R_ShutdownParticles (void);
#endif//__QF_GLSL_qf_particles_h

View file

@ -0,0 +1,39 @@
/*
qf_sprite.h
GLSL specific sprite model stuff
Copyright (C) 2021 Bill Currie <bill@taniwha.org>
Author: Bill Currie <bill@taniwha.org>
Date: 2021/7/22
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
*/
#ifndef __QF_GLSL_qf_sprite_h
#define __QF_GLSL_qf_sprite_h
struct entity_s;
void glsl_R_DrawSprite (struct entity_s ent);
void glsl_R_SpriteBegin (void);
void glsl_R_SpriteEnd (void);
void glsl_R_InitSprites (void);
#endif//__QF_GLSL_qf_sprite_h

View file

@ -31,34 +31,27 @@
#include "QF/qtypes.h"
typedef struct scrap_s scrap_t;
typedef struct subpic_s {
const struct subpic_s * const next;
const scrap_t * const scrap;
const struct vrect_s * const rect;
const int tnum; ///< texture number
const int width; ///< requested width
const int height; ///< requested height
const float size; ///< size factor for tex coords (mult)
} subpic_t;
struct tex_s;
int GLSL_LoadQuakeTexture (const char *identifier, int width, int height,
byte *data);
const byte *data);
struct texture_s;
int GLSL_LoadQuakeMipTex (const struct texture_s *tex);
int GLSL_LoadRGBTexture (const char *identifier, int width, int height,
byte *data);
const byte *data);
int GLSL_LoadRGBATexture (const char *identifier, int width, int height,
byte *data);
const byte *data);
int GLSL_LoadTex (const char *identifier, int mips, struct tex_s *tex);
void GLSL_ReleaseTexture (int tex);
void GLSL_TextureInit (void);
scrap_t *GLSL_CreateScrap (int size, int format, int linear);
void GLSL_DestroyScrap (scrap_t *scrap);
void GLSL_ScrapClear (scrap_t *scrap);
int GLSL_ScrapTexture (scrap_t *scrap);
subpic_t *GLSL_ScrapSubpic (scrap_t *scrap, int width, int height); //XXX slow!
void GLSL_SubpicDelete (subpic_t *subpic); //XXX slow!
void GLSL_SubpicUpdate (subpic_t *subpic, byte *data, int batch);
int GLSL_ScrapTexture (scrap_t *scrap) __attribute__((pure));
struct subpic_s *GLSL_ScrapSubpic (scrap_t *scrap, int width, int height);
void GLSL_SubpicDelete (struct subpic_s *subpic);
void GLSL_SubpicUpdate (struct subpic_s *subpic, byte *data, int batch);
void GLSL_ScrapFlush (scrap_t *scrap);
#endif//__QF_GLSL_textures_h

View file

@ -38,7 +38,7 @@ typedef struct shader_s {
typedef struct shaderparam_s {
const char *name;
qboolean uniform;
bool uniform;
int location;
} shaderparam_t;
@ -46,6 +46,7 @@ extern int glsl_palette;
extern int glsl_colormap;
void GLSL_Init_Common (void);
void GLSL_Shutdown_Common (void);
int GLSL_CompileShader (const char *name, const shader_t *shader, int type);
int GLSL_LinkProgram (const char *name, int vert, int frag);
@ -62,6 +63,7 @@ void GLSL_DumpAttribArrays (void);
\return 0 for failure, 1 for success.
*/
int GLSL_RegisterEffect (const char *name, const char *src);
void GLSL_ShaderShutdown (void);
/* Build a shader program script from a list of effect keys.

View file

@ -1,9 +1,12 @@
/*
client.h
qf_warp.h
Client definitions
GLSL screen warp
Copyright (C) 1996-1997 Id Software, Inc.
Copyright (C) 2022 Bill Currie <bill@taniwha.org>
Author: Bill Currie <bill@taniwha.org>
Date: 2022/3/24
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
@ -24,15 +27,11 @@
Boston, MA 02111-1307, USA
*/
#ifndef __QF_GLSL_qf_warp_h
#define __QF_GLSL_qf_warp_h
#ifndef _CL_TENT_H
#define _CL_TENT_H
void glsl_InitWarp (void);
struct framebuffer_s;
void glsl_WarpScreen (struct framebuffer_s *fb);
void CL_TEnts_Init (void);
void CL_ClearEnts (void);
void CL_ClearTEnts (void);
void CL_Init_Entity (struct entity_s *ent);
void CL_ParseTEnt (void);
void CL_UpdateTEnts (void);
#endif
#endif//__QF_GLSL_qf_warp_h

View file

@ -3,8 +3,8 @@
* 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
*/
#ifndef __QFGL_types_h
#define __QFGL_types_h
#ifndef __QF_GLSL_types_h
#define __QF_GLSL_types_h
#include "QF/qtypes.h"
@ -14,6 +14,7 @@
# include <windows.h>
# define GLAPIENTRY WINAPI
# undef LoadImage
# undef E_POINTER
# else
# ifdef APIENTRY
# define GLAPIENTRY APIENTRY

View file

@ -1,27 +0,0 @@
AUTOMAKE_OPTIONS = foreign
pkgincludedir = $(includedir)/QF
nobase_pkginclude_HEADERS = \
alloc.h bspfile.h cbuf.h cdaudio.h checksum.h clip_hull.h cmd.h \
console.h crc.h csqc.h cvar.h dstring.h draw.h gib.h hash.h hl.h \
idparse.h image.h in_event.h info.h input.h iqm.h joystick.h keys.h \
link.h llist.h locs.h mathlib.h mdfour.h mersenne.h model.h modelgen.h \
msg.h object.h pak.h pakfile.h pcx.h png.h plugin.h pr_comp.h pr_debug.h \
pr_obj.h progs.h qargs.h qdefs.h qendian.h qfplist.h qtypes.h quakefs.h \
quakeio.h render.h riff.h ruamoko.h screen.h script.h segtext.h set.h \
sizebuf.h skin.h sound.h spritegn.h sys.h teamplay.h tga.h uint32.h va.h \
ver_check.h vid.h vrect.h view.h wad.h wadfile.h winding.h zone.h \
\
GL/ati.h GL/defines.h GL/extensions.h GL/funcs.h GL/qf_draw.h \
GL/qf_explosions.h GL/qf_funcs_list.h GL/qf_iqm.h GL/qf_lightmap.h \
GL/qf_rlight.h GL/qf_rmain.h GL/qf_rsurf.h GL/qf_sky.h GL/qf_textures.h \
GL/qf_vid.h GL/types.h \
\
GLSL/defines.h GLSL/funcs.h GLSL/qf_alias.h GLSL/qf_bsp.h GLSL/qf_draw.h \
GLSL/qf_funcs_list.h GLSL/qf_iqm.h GLSL/qf_lightmap.h GLSL/qf_particles.h \
GLSL/qf_textures.h GLSL/qf_vid.h GLSL/types.h \
\
math/dual.h math/half.h math/matrix3.h math/matrix4.h math/quaternion.h \
math/vector.h \
\
plugin/cd.h plugin/console.h plugin/general.h plugin/input.h \
plugin/snd_output.h plugin/snd_render.h plugin/vid_render.h

272
include/QF/Makemodule.am Normal file
View file

@ -0,0 +1,272 @@
include_qf = \
include/QF/alloc.h \
include/QF/bspfile.h \
include/QF/cbuf.h \
include/QF/cdaudio.h \
include/QF/cexpr.h \
include/QF/checksum.h \
include/QF/clip_hull.h \
include/QF/cmd.h \
include/QF/cmem.h \
include/QF/console.h \
include/QF/crc.h \
include/QF/csqc.h \
include/QF/cvar.h \
include/QF/darray.h \
include/QF/dstring.h \
include/QF/draw.h \
include/QF/ecs.h \
include/QF/fbsearch.h \
include/QF/gib.h \
include/QF/hash.h \
include/QF/heapsort.h \
include/QF/idparse.h \
include/QF/image.h \
include/QF/info.h \
include/QF/input.h \
include/QF/iqm.h \
include/QF/joystick.h \
include/QF/keys.h \
include/QF/link.h \
include/QF/listener.h \
include/QF/llist.h \
include/QF/mathlib.h \
include/QF/mdfour.h \
include/QF/mersenne.h \
include/QF/model.h \
include/QF/modelgen.h \
include/QF/msg.h \
include/QF/object.h \
include/QF/pak.h \
include/QF/pakfile.h \
include/QF/pcx.h \
include/QF/png.h \
include/QF/plist.h \
include/QF/plugin.h \
include/QF/pqueue.h \
include/QF/progs.h \
include/QF/pvsfile.h \
include/QF/qargs.h \
include/QF/qdefs.h \
include/QF/qendian.h \
include/QF/qtypes.h \
include/QF/quakefs.h \
include/QF/quakeio.h \
include/QF/render.h \
include/QF/riff.h \
include/QF/ringbuffer.h \
include/QF/ruamoko.h \
include/QF/screen.h \
include/QF/script.h \
include/QF/segtext.h \
include/QF/set.h \
include/QF/sizebuf.h \
include/QF/skin.h \
include/QF/sound.h \
include/QF/spritegn.h \
include/QF/sys.h \
include/QF/sys_developer.h \
include/QF/teamplay.h \
include/QF/tga.h \
include/QF/va.h \
include/QF/ver_check.h \
include/QF/vid.h \
include/QF/wad.h \
include/QF/wadfile.h \
include/QF/winding.h \
include/QF/zone.h
include_qf_ecs = \
include/QF/ecs/component.h \
include/QF/ecs/entity.h \
include/QF/ecs/hierarchy.h
include_qf_gl = \
include/QF/GL/ati.h \
include/QF/GL/defines.h \
include/QF/GL/extensions.h \
include/QF/GL/funcs.h \
include/QF/GL/qf_alias.h \
include/QF/GL/qf_draw.h \
include/QF/GL/qf_fisheye.h \
include/QF/GL/qf_funcs_list.h \
include/QF/GL/qf_iqm.h \
include/QF/GL/qf_lightmap.h \
include/QF/GL/qf_particles.h \
include/QF/GL/qf_rlight.h \
include/QF/GL/qf_rmain.h \
include/QF/GL/qf_rsurf.h \
include/QF/GL/qf_sky.h \
include/QF/GL/qf_sprite.h \
include/QF/GL/qf_textures.h \
include/QF/GL/qf_vid.h \
include/QF/GL/types.h
include_qf_glsl = \
include/QF/GLSL/defines.h \
include/QF/GLSL/funcs.h \
include/QF/GLSL/qf_alias.h \
include/QF/GLSL/qf_bsp.h \
include/QF/GLSL/qf_draw.h \
include/QF/GLSL/qf_fisheye.h \
include/QF/GLSL/qf_funcs_list.h \
include/QF/GLSL/qf_iqm.h \
include/QF/GLSL/qf_lightmap.h \
include/QF/GLSL/qf_main.h \
include/QF/GLSL/qf_particles.h \
include/QF/GLSL/qf_sprite.h \
include/QF/GLSL/qf_textures.h \
include/QF/GLSL/qf_vid.h \
include/QF/GLSL/qf_warp.h \
include/QF/GLSL/types.h
include_qf_input = \
include/QF/input/binding.h \
include/QF/input/event.h \
include/QF/input/event_names.h \
include/QF/input/imt.h
include_qf_math = \
include/QF/math/bitop.h \
include/QF/math/dual.h \
include/QF/math/half.h \
include/QF/math/matrix3.h \
include/QF/math/matrix4.h \
include/QF/math/quaternion.h \
include/QF/math/vector.h
include_qf_plugin = \
include/QF/plugin/cd.h \
include/QF/plugin/console.h \
include/QF/plugin/general.h \
include/QF/plugin/input.h \
include/QF/plugin/snd_output.h \
include/QF/plugin/snd_render.h \
include/QF/plugin/vid_render.h
include_qf_progs = \
include/QF/progs/pr_comp.h \
include/QF/progs/pr_debug.h \
include/QF/progs/pr_obj.h \
include/QF/progs/pr_type.h \
include/QF/progs/pr_type_names.h
include_qf_scene = \
include/QF/scene/camera.h \
include/QF/scene/entity.h \
include/QF/scene/light.h \
include/QF/scene/transform.h \
include/QF/scene/scene.h \
include/QF/scene/types.h
include_qf_simd = \
include/QF/simd/mat4f.h \
include/QF/simd/types.h \
include/QF/simd/vec2d.h \
include/QF/simd/vec2f.h \
include/QF/simd/vec2i.h \
include/QF/simd/vec4d.h \
include/QF/simd/vec4f.h \
include/QF/simd/vec4i.h
include_qf_ui = \
include/QF/ui/canvas.h \
include/QF/ui/font.h \
include/QF/ui/inputline.h \
include/QF/ui/passage.h \
include/QF/ui/text.h \
include/QF/ui/txtbuffer.h \
include/QF/ui/view.h \
include/QF/ui/vrect.h
include_qf_vulkan = \
include/QF/Vulkan/barrier.h \
include/QF/Vulkan/buffer.h \
include/QF/Vulkan/capture.h \
include/QF/Vulkan/command.h \
include/QF/Vulkan/cvars.h \
include/QF/Vulkan/debug.h \
include/QF/Vulkan/descriptor.h \
include/QF/Vulkan/device.h \
include/QF/Vulkan/funclist.h \
include/QF/Vulkan/image.h \
include/QF/Vulkan/instance.h \
include/QF/Vulkan/memory.h \
include/QF/Vulkan/pipeline.h \
include/QF/Vulkan/projection.h \
include/QF/Vulkan/resource.h \
include/QF/Vulkan/qf_alias.h \
include/QF/Vulkan/qf_bsp.h \
include/QF/Vulkan/qf_compose.h \
include/QF/Vulkan/qf_draw.h \
include/QF/Vulkan/qf_iqm.h \
include/QF/Vulkan/qf_lighting.h \
include/QF/Vulkan/qf_lightmap.h \
include/QF/Vulkan/qf_main.h \
include/QF/Vulkan/qf_matrices.h \
include/QF/Vulkan/qf_model.h \
include/QF/Vulkan/qf_output.h \
include/QF/Vulkan/qf_palette.h \
include/QF/Vulkan/qf_particles.h \
include/QF/Vulkan/qf_scene.h \
include/QF/Vulkan/qf_sprite.h \
include/QF/Vulkan/qf_texture.h \
include/QF/Vulkan/qf_translucent.h \
include/QF/Vulkan/qf_vid.h \
include/QF/Vulkan/scrap.h \
include/QF/Vulkan/shader.h \
include/QF/Vulkan/staging.h \
include/QF/Vulkan/swapchain.h
# headers shared with ruamoko
qfcc_include_qf = include/QF/input.h
qfcc_include_qf_progs = include/QF/progs/pr_type_names.h
qfcc_include_qf_input = \
include/QF/input/binding.h \
include/QF/input/imt.h
qf_includedir = $(includedir)/QF
qf_gl_includedir = $(includedir)/QF/GL
qf_glsl_includedir = $(includedir)/QF/GLSL
qf_input_includedir = $(includedir)/QF/input
qf_math_includedir = $(includedir)/QF/math
qf_plugin_includedir = $(includedir)/QF/plugin
qf_progs_includedir = $(includedir)/QF/progs
qf_scene_includedir = $(includedir)/QF/scene
qf_simd_includedir = $(includedir)/QF/simd
qf_ui_includedir = $(includedir)/QF/ui
qf_vulkan_includedir = $(includedir)/QF/Vulkan
qf_include_HEADERS = @qfac_include_qf@
qf_gl_include_HEADERS = @qfac_include_qf_gl@
qf_glsl_include_HEADERS = @qfac_include_qf_glsl@
qf_input_include_HEADERS = @qfac_include_qf_input@
qf_math_include_HEADERS = @qfac_include_qf_math@
qf_plugin_include_HEADERS = @qfac_include_qf_plugin@
qf_progs_include_HEADERS = @qfac_include_qf_progs@
qf_scene_include_HEADERS = @qfac_include_qf_scene@
qf_simd_include_HEADERS = @qfac_include_qf_simd@
qf_ui_include_HEADERS = @qfac_include_qf_ui@
qf_vulkan_include_HEADERS = @qfac_include_qf_vulkan@
ruamoko_qf_includedir = $(ruamoko_includedir)/QF
ruamoko_qf_input_includedir = $(ruamoko_includedir)/QF/input
ruamoko_qf_progs_includedir = $(ruamoko_includedir)/QF/progs
ruamoko_qf_include_HEADERS = @qfac_qfcc_include_qf@
ruamoko_qf_input_include_HEADERS = @qfac_qfcc_include_qf_input@
ruamoko_qf_progs_include_HEADERS = @qfac_qfcc_include_qf_progs@
EXTRA_DIST += \
$(include_qf) \
$(include_qf_ecs) \
$(include_qf_gl) \
$(include_qf_glsl) \
$(include_qf_input) \
$(include_qf_math) \
$(include_qf_plugin) \
$(include_qf_progs) \
$(include_qf_scene) \
$(include_qf_simd) \
$(include_qf_ui) \
$(include_qf_vulkan) \
$(qfcc_include_qf) \
$(qfcc_include_qf_input)

View file

@ -0,0 +1,52 @@
#ifndef __QF_Vulkan_barrier_h
#define __QF_Vulkan_barrier_h
#ifndef VK_NO_PROTOTYPES
#define VK_NO_PROTOTYPES
#endif
#include <vulkan/vulkan.h>
typedef struct qfv_imagebarrier_s {
VkPipelineStageFlags srcStages;
VkPipelineStageFlags dstStages;
VkImageMemoryBarrier barrier;
} qfv_imagebarrier_t;
typedef struct qfv_bufferbarrier_s {
VkPipelineStageFlags srcStages;
VkPipelineStageFlags dstStages;
VkBufferMemoryBarrier barrier;
} qfv_bufferbarrier_t;
// image layout transitions
enum {
qfv_LT_Undefined_to_TransferDst,
qfv_LT_Undefined_to_General,
qfv_LT_TransferDst_to_TransferSrc,
qfv_LT_TransferDst_to_General,
qfv_LT_TransferDst_to_ShaderReadOnly,
qfv_LT_TransferSrc_to_ShaderReadOnly,
qfv_LT_ShaderReadOnly_to_TransferDst,
qfv_LT_Undefined_to_DepthStencil,
qfv_LT_Undefined_to_Color,
};
// buffer barriers
enum {
qfv_BB_Unknown_to_TransferWrite,
qfv_BB_TransferWrite_to_VertexAttrRead,
qfv_BB_TransferWrite_to_IndexRead,
qfv_BB_TransferWrite_to_UniformRead,
qfv_BB_TransferWrite_to_ShaderRW,
qfv_BB_ShaderRW_to_ShaderRO,
qfv_BB_ShaderRW_to_ShaderRO_VA,
qfv_BB_ShaderRO_to_ShaderWrite,
qfv_BB_ShaderRO_VA_to_ShaderWrite,
qfv_BB_ShaderWrite_to_ShaderRO,
qfv_BB_ShaderWrite_to_ShaderRW,
};
extern const qfv_imagebarrier_t imageBarriers[];
extern const qfv_bufferbarrier_t bufferBarriers[];
#endif//__QF_Vulkan_barrier_h

View file

@ -0,0 +1,57 @@
#ifndef __QF_Vulkan_buffer_h
#define __QF_Vulkan_buffer_h
#ifndef VK_NO_PROTOTYPES
#define VK_NO_PROTOTYPES
#endif
#include <vulkan/vulkan.h>
#include "QF/darray.h"
typedef struct qfv_buffertransition_s {
VkBuffer buffer;
VkAccessFlags srcAccess;
VkAccessFlags dstAccess;
uint32_t srcQueueFamily;
uint32_t dstQueueFamily;
VkDeviceSize offset;
VkDeviceSize size;
} qfv_buffertransition_t;
typedef struct qfv_buffertransitionset_s
DARRAY_TYPE (qfv_buffertransition_t) qfv_buffertransitionset_t;
typedef struct qfv_bufferbarrierset_s
DARRAY_TYPE (VkBufferMemoryBarrier) qfv_bufferbarrierset_t;
typedef struct qfv_bufferset_s
DARRAY_TYPE (VkBuffer) qfv_bufferset_t;
#define QFV_AllocBufferSet(num, allocator) \
DARRAY_ALLOCFIXED (qfv_bufferset_t, num, allocator)
struct qfv_device_s;
VkBuffer QFV_CreateBuffer (struct qfv_device_s *device,
VkDeviceSize size,
VkBufferUsageFlags usage);
VkDeviceMemory QFV_AllocBufferMemory (struct qfv_device_s *device,
VkBuffer buffer,
VkMemoryPropertyFlags properties,
VkDeviceSize size, VkDeviceSize offset);
int QFV_BindBufferMemory (struct qfv_device_s *device,
VkBuffer buffer, VkDeviceMemory object,
VkDeviceSize offset);
qfv_bufferbarrierset_t *
QFV_CreateBufferTransitions (qfv_buffertransition_t *transitions,
int numTransitions);
VkBufferView QFV_CreateBufferView (struct qfv_device_s *device,
VkBuffer buffer, VkFormat format,
VkDeviceSize offset, VkDeviceSize size);
VkDeviceSize QFV_NextOffset (VkDeviceSize current,
const VkMemoryRequirements *requirements)
__attribute__((pure));
#endif//__QF_Vulkan_buffer_h

View file

@ -0,0 +1,46 @@
#ifndef __QF_Vulkan_capture_h
#define __QF_Vulkan_capture_h
#ifndef VK_NO_PROTOTYPES
#define VK_NO_PROTOTYPES
#endif
#include <vulkan/vulkan.h>
#include "QF/darray.h"
#include "QF/qtypes.h"
struct vulkan_ctx_s;
struct tex_s;
typedef void (*capfunc_t) (struct tex_s *screencap, void *data);
typedef struct qfv_capture_frame_s {
VkBuffer buffer;
byte *data;
bool initiated;
capfunc_t callback;
void *callback_data;
} qfv_capture_frame_t;
typedef struct qfv_capture_frame_set_s
DARRAY_TYPE (qfv_capture_frame_t) qfv_capture_frame_set_t;
typedef struct qfv_capturectx_s {
qfv_capture_frame_set_t frames;
struct qfv_device_s *device;
VkExtent2D extent;
size_t imgsize;
size_t memsize;
byte *data;
VkDeviceMemory memory;
} qfv_capturectx_t;
struct vulkan_ctx_s;
void QFV_Capture_Init (struct vulkan_ctx_s *ctx);
void QFV_Capture_Renew (struct vulkan_ctx_s *ctx);
void QFV_Capture_Shutdown (struct vulkan_ctx_s *ctx);
void QFV_Capture_Screen (struct vulkan_ctx_s *ctx,
capfunc_t callback, void *data);
#endif//__QF_Vulkan_capture_h

Some files were not shown because too many files have changed in this diff Show more