Commit Graph

171 Commits

Author SHA1 Message Date
Bill Currie 2bc78e7f0a Start work on a Vulkan-based renderer
Doesn't do much other than create an instance and enumerate some stuff,
but the build system is working.
2019-07-06 14:56:15 +09:00
Bill Currie 34bcf7faab Do a pure/const/noreturn/format attribute pass.
I always wanted these, but as gcc now provides warnings for functions that
could do with such attributes, finding all the functions is much easier.
2018-10-09 12:42:21 +09:00
Bill Currie 0de0eb2fc7 Fix a bunch of bit-rot. 2018-06-08 13:21:30 +09:00
Bill Currie bd52e46adf Merge branch 'master' into win 2016-01-22 01:10:49 +09:00
Bill Currie 735fcf68d5 Clean up usage of va_copy.
AC_TYPE_VA_LIST is no longer necessary, and the code is easier to read.
2016-01-03 21:16:23 +09:00
Bill Currie f0dc995c67 Handle c99 inline vs gnu89 inline.
The meaning of "extern inline" and "inline" swaps between the two, and
gcc-5 uses c99 inline.
2015-08-18 00:11:03 +09:00
Bill Currie 512514ca23 Limit gcc_struct checking to win32 builds.
I guess -Werror isn't used when doing compile checks.
2014-02-03 16:55:09 +09:00
Bill Currie 3fb9fb9373 Attempt to autoconfiscate gcc_struct.
It seems some tool-chains get rather picky about such things.
2014-02-03 16:47:51 +09:00
Bill Currie 48809404b1 Use qfplist for light entities.
This removes a lot of redundant code from qflight (though it does become
dependent of libQFgamecode *shrug*). The nice thing is qflight now uses the
exact same code to load entities as does the server.
2013-03-07 09:11:22 +09:00
Bill Currie 7137783e47 Disable svga support for now.
It is suffering some bitrot and I don't feel like fixing it right now, but
it causes problems for people trying to build QF. This should be ok because
it's one of those "if uncertain, say no" things.
2013-02-14 09:37:25 +09:00
Bill Currie c6f9d8b64c Reduce CFLAGS abuse a little for mingw targets.
This fixes missing debug info (useful for fixing linker errors, if nothing
else).
2013-01-28 16:21:42 +09:00
Bill Currie d14da7f34a Enable the "win" clients.
The win clients are the native windows (NOT sdl!! *twitch*). Things are
already looking on the up: only three errors in in_win.c. I'm not looking
forward to vid_win.c (ex vid_wgl.c), though.
2013-01-24 12:36:14 +09:00
Bill Currie d139640755 Make fs_userpath default to ~/quakeforge on windows.
The ~ gets expanded to CSIDL_LOCAL_APPDATA, $HOME, $USERPROFILE or just
".", whichever succeeds first. The usual location will be:
"C:\windows\profiles\<user>\Local Settings\Application Data".

"." is now the fallback for *nix systems too.
2013-01-23 11:10:19 +09:00
Bill Currie e27d7cbd2d Handle alloca "correctly".
Use AC_FUNC_ALLOCA and the #ifdef mess suggested by the autoconf docs
(hidden in qfalloca.h).
2013-01-22 21:02:50 +09:00
Bill Currie 00639aa9d1 Require bison 2.6 or later.
It turns out the apiprefix define is quite new (I didn't realize it at the
time) and I'd rather get FTBFS reports based on configure catching the
error than gcc catching it.
2013-01-11 13:48:14 +09:00
Bill Currie 9028cda24b Add -fno-unsafe-math-optimizations to CFLAGS.
It seems -ffast-math is not necessarily faster, and the errors it causes
may not be worth the gains, but I'm not sure I want to nuke it completely,
so instead disabling the worst offender of it
(-fno-unsafe-math-optimizations) seems to be the best option. qfbsp now
produces identical text output between optimized and unoptimized builds,
and may be slightly faster than before the change (1.9s for start.map vs
2.0s)
2013-01-11 11:17:31 +09:00
Bill Currie 6eb6b6c0ba Change pointer_t to unsigned and clean up the mess.
It doesn't make sense to have negative pointers. The size of the commit is
from enabling gcc's -Wtype-limits warning and cleaning up that mess too.
2012-12-21 21:53:13 +09:00
Bill Currie cc5e0f9957 Use git-version-gen to create meaningful version strings.
git-version-gen is taken from autoconf-2.69 with the change of adding
--tags to the git command line since we don't sign our tags (yet).
2012-12-21 18:43:03 +09:00
Bill Currie 3e38c4aa48 Merge branch 'qfcc-cse'
qfcc now does local common subexpression elimination. It seems to work, but
is optional (default off): use -O to enable. Also, uninitialized variable
detection is finally back :)

The progs engine now has very basic valgrind-like functionality for
checking pointer accesses. Enable with pr_boundscheck 2
2012-12-13 20:17:28 +09:00
Bill Currie 042cae29b1 Use pkg-config when checking for sdl.
This makes setting up for cross-compiling cleaner.
2012-11-29 11:16:06 +09:00
Bill Currie 1cd58b30f4 Fix the library dependencies for the servers.
It's so rarely I build without clients...
2012-11-27 13:18:23 +09:00
Bill Currie 99b34232f8 Add a test harness for qfcc.
It's only the beginning, but finally make check is useful for qfcc :)
It even has a failing test :D
2012-11-22 21:59:01 +09:00
Bill Currie ef7678fcec Use DWARF debugging with recent gcc.
Oh, wow, I wish I'd known about it before. C macro evaluation in gdb!!!
*sob*
2012-11-14 14:51:23 +09:00
Bill Currie abc81cee85 Avoid building unneeded libs.
Having better dependency info in build_control.m4 would be nice, but this
works well enough for now.
2012-08-20 14:12:20 +09:00
Bill Currie a2f2d4d949 "Check" for the availability of pthreads.
Unfortunately, just because the header is there doesn't mean anything will
actually work :(. Also, the check is based on the host vendor/os for now.
Yes, it's rather lame but it will do for now.

With this, QF will build on an almost fresh ps3toolchain install. Only two
"fixes" are needed:
 o  In $PS3DEV/ppu/powerpc64-ps3-elf: ln -s ../include sys-include
 o  libsamplerate cross-built and installed.
2012-08-19 13:40:42 +09:00
Bill Currie 358ea4ef9a Fall back to execve/wait when execvp and waitpid are unavailable. 2012-08-19 13:18:38 +09:00
Bill Currie ceea60059a Sort the checked functions. 2012-08-19 13:07:18 +09:00
Bill Currie bf41851bd9 Check for ioctl availability.
This gets networking compiling. Now the build gets all the way to qfcc,
where it dies with waidpid/execvp errors :P
2012-08-18 22:02:02 +09:00
Bill Currie 60596038d2 Half-disable pthread for ps3toolchain.
I can't find anything for pthread other that pthread.h, but this lets nq
and qw stuff build (minus the pending networking issues).
2012-08-18 21:51:04 +09:00
Bill Currie 575693e4a0 A bunch of networking compile fixes.
This isn't everything needed to get networking compiling, but it's pretty
close.
2012-08-18 21:49:30 +09:00
Bill Currie 7f805c2527 Use pkg-config for zlib.
Helps cope with zlib being in weird places (eg, ps3toolchain)
2012-08-18 21:41:33 +09:00
Bill Currie 3b047a3cc1 Check for getuid and cope when it's not there.
The ps3toolchain doesn't have getuid or getpwent. Nor does it have
timeGetTime, so use Sys_DoubleTime instead.
2012-08-18 21:37:54 +09:00
Bill Currie ee27c49e70 Separate the checks for building dirent.c and fnmatch.c.
ps3's libc has opendir and friends, but not fnmatch.
2012-08-18 12:12:45 +09:00
Bill Currie 836215357a Use the correct type for alloca's size parameter.
Well, hopefully: it at least agrees with gcc's builtin version.
2012-08-18 11:20:48 +09:00
Bill Currie 7928274b6e Test for and include sys/select.h. 2012-08-18 10:57:42 +09:00
Bill Currie 97c87cf996 Initial checkin of the qwaq mini-engine. 2012-07-15 07:39:50 +09:00
Bill Currie fc88c829bc Disable fbdev for now.
By default, anyway. It doesn't work and only distracts users.
2012-07-09 12:06:59 +09:00
Bill Currie b65c41efcb Move the colormod lookup table into a new lib.
libQFclient is now here :) The first shared code is the lookup table.
2012-07-05 09:39:16 +09:00
Bill Currie 7573c38122 Create qfspritegen based on id's sprgen.
No guarantees it works, but it should be able to convert a bunch of pcx
images into a sprite.
2012-06-30 20:20:15 +09:00
Bill Currie 26a878da48 Stub out the iqm loader. 2012-05-15 21:08:43 +09:00
Bill Currie 95a06c20b2 Move qfcc's libs and headers to ${prefix}/share
On discussion with Despair, share makes more sense than lib as they are
really cross-platform (though qfcc itself is not).
2012-05-05 19:34:35 +09:00
Bill Currie 9b07f9adcd Change the default renderer to gl.
Until glsl starts looking good, anyway.
2012-05-05 18:39:25 +09:00
Bill Currie ca978315fb Change the default vid plugin from sw32 to glsl. 2012-04-22 10:11:56 +09:00
Bill Currie e991c1fed3 Make a bit of progress cleaning up vid for plugins. 2012-04-11 14:58:54 +09:00
Bill Currie 8530959752 Link the model libs to the render plugins. 2012-04-11 14:58:53 +09:00
Bill Currie 8e91fb7bc1 Get the basics linking.
Still, nothing will work: no plugins are loaded and they're all broken
anyway.

glx, sgl, glslx etc are going away, just the basics will be built: fbdev
(probably go away eventually), sdl, x11 and hopefully someday win. That's
actually the only reason anything links.
2012-04-11 14:58:53 +09:00
Bill Currie a4c280f2b2 Take the first step towards render plugins.
No clients link. Even if they did, nothing would work.
2012-04-11 14:58:53 +09:00
Antti Harri bb1a342629 Use correct name for OpenGL library on OpenBSD by default. 2012-03-03 21:01:23 +09:00
Bill Currie b69d527507 Nuke another AM_CONDITIONAL 2012-02-13 16:08:03 +09:00
Bill Currie df47dd31f1 Clean up the excessive makefile vars generated by AC_SUBST.
While it further breaks RPM building, all AC_SUBST(HAVE_*) have been nuked.
When AM_SUBST_NOTMAKE, tell automake to not generate var = @var@ in
Makefile.in for qf specific vars (QF_SUBST is a wrapper for AC_SUBST that
also calls AM_SUBST_NOTMAKE).
2012-02-13 15:49:55 +09:00
Bill Currie 3cb4cb59b5 Link QFgamecode directly into QFruamoko.
First step in the library "merge down".

QFgamecode is now a convenience library. The only things that mention it
directly now are ruamoko and qfcc.
2012-02-13 15:05:31 +09:00
Bill Currie f389715730 Fix non-static console plugins.
Bah, fiddly stuff.
2012-02-13 10:58:42 +09:00
Bill Currie a16daac352 Fix the broken defaults for sound and cd plugins.
This has the side effect of defining defaults for all plugins, but as only
sound and cd actually use the defaults, no harm done.
2012-02-12 21:16:28 +09:00
Bill Currie e416c3e172 Clear up some annying whitespace issues.
Now that I know more about how autoconf actually works (ie, m4 stuff), I'm
finally able to fix the inability to format lists the way I want.
2012-02-12 20:14:26 +09:00
Bill Currie 546a7e7aac Avoid recusing into tools and ruamoko when not needed. 2012-02-12 19:29:31 +09:00
Bill Currie 6f2fec8afe Fix non-static plugins. 2012-02-12 18:35:00 +09:00
Bill Currie 02d24189ef Use QF_NEED for plugins.
At the moment, the selection of the default sound driver etc is broken.
2012-02-12 11:37:25 +09:00
Bill Currie 4707706f5d Use QF_NEED for the renderer and model libraries.
This breaks RPM building, but I can fix that later.
2012-02-10 13:29:45 +09:00
Bill Currie eefa89e72e Remove the AM_CONDITIONALs from tools.
Now that the tools directories aren't entered when those tools aren't being
built, there's no reason to use AM_CONDITIONAL in there.
2012-02-10 02:50:42 +09:00
Bill Currie 4d6ed605a9 Create and use QF_PROCESS_NEED_DIRS.
Not that I imagine many people use --with[out]-tools, but now unwanted
tools don't get visited by make.
2012-02-10 01:49:45 +09:00
Bill Currie 717d5368de Rework QF_PROCESS_NEED to be more general.
QF_PROCESS_NEED has been renamed to QF_PROCESS_NEED_LIBS and its guts have
been moved to QF_PROCESS_NEED_subroutine, with additional modifications to
allow QF_NEED to be used for other targets as well (eg, directories,
executables, etc).
2012-02-10 01:30:41 +09:00
Bill Currie 7a8f91edda Move bi_gib.c from ruamoko to gib.
This makes gib depend on gamecode, but removes the dependency on gib from
ruamoko. Unfortunately, carne now needs to be linked against gamecode even
though it never uses it.
2012-02-09 10:00:54 +09:00
Bill Currie e34f0178b6 Build GLSL clients for SDL.
Just about to do a release, and I realized windows users wouldn't have any
way of checking out the new renderer. I'll add wglsl when I get a chance to
do some testing.
2012-02-08 22:05:58 +09:00
Bill Currie 5c062acc80 Enable the glslx qw client.
The only reason it wa getting built is other qw clients were requiring the
same libs.
2012-02-08 08:25:50 +09:00
Bill Currie 8e5c7db857 Clean up the sound plugin configuration code.
16 if statements down to one in a for loop :)
2012-02-07 23:03:47 +09:00
Bill Currie 54626b3355 Clean out some cruft.
gibscript seems to be one of snax' little experiments. I suspect he never
committed it, but his autoconf changes snuck in by accident.
2012-02-07 23:01:43 +09:00
Sander van Dijk cd05fecfac config.d/networking.m4: fix minor typo. 2012-02-07 20:20:26 +09:00
Sander van Dijk 8a5b16d6ab config.d/networking.m4: fix check for libcurl. 2012-02-07 20:20:19 +09:00
Bill Currie b7e5ad6306 Clean up plugin_ldadd and plugin_ldflags 2012-02-07 12:52:12 +09:00
Bill Currie b5019c8e33 Nuke the engine dicrectory from gamecode.
Not the contents, of course :) Anyway, finally, that totally useless
directory is gone.
2012-02-06 23:44:52 +09:00
Bill Currie e6969ea7e3 Use pkg-config for libcurl, too. 2012-02-06 00:05:22 +09:00
Bill Currie 47ee9d0355 Use pkg-config for ogg and vorbis libs.
Modern versions of ogg and vorbis provide pc files, so might as well make
the most of it.
2012-02-05 23:52:04 +09:00
Bill Currie abcd3091d0 Test for sys/shm.h for OSS sound.
Android does not supply sys/shm.h (or related headers, by design), so OSS
sound is completely out of the question on Android.
2012-02-05 18:46:59 +09:00
Bill Currie 97aa5b8c6d Don't try to link with pthread on android.
The pthread functions are in libc.
2012-02-05 14:29:00 +09:00
Bill Currie 201532ea7e Fix missing library references when linking. 2012-02-05 14:25:22 +09:00
Bill Currie 3bd75cefd8 Autoconfiscate log2f.
Android doesn't supply log2f for us (though it does have all the other
float calls ruamoko wants).
2012-02-05 14:23:33 +09:00
Jeff Teunissen 86edf54c40 Build and ignore cleanups
GLSL renderer build was checking for BUILD_GL instead of BUILD_GLSL in a
few places. Also, ignore the GLSL .fc and .vc files and the binaries.
2012-01-02 14:16:19 -05:00
Bill Currie 55a0ed49cd Build qw-client-glslx too.
I was asked about timedemo overkill (bigass1 currently gets 40kfps, haha),
so I had to add qw-client-glslx to the build.
2011-12-25 16:41:14 +09:00
Bill Currie 497461b4c2 Make a start on making a pure GLSL renderer.
For now, only nq-glslx will be built, but as there is no actual code, it
doesn't link. However, this gets the glsl stuff into the build system.
2011-12-23 12:19:13 +09:00
Bill Currie da552e33e7 Remove execinfo checks.
It seems we no longer need it (if we ever really did).
2011-12-13 21:25:41 +09:00
Bill Currie 853bf13d9e Move the winding code into libQFmodels. 2011-11-28 20:54:35 +09:00
Bill Currie 7e5d654f3d Fix the accidental nukage of PNG_LIBS.
Kind of silly setting PNG_LIBS to -lpng after going to the effort of using
pkg-config now, isn't it :P
2011-08-25 23:04:02 +09:00
Bill Currie 605d60167d Rename the doxygen formatted text files.
So I don't have to keep duplicating file names all over the place, I've
decided to use the "dox" extension on text files that are formatted for
doxygen processing. This way, doxygen can search for them using wildcards,
and unformated text files won't cause any headaches.
2011-08-20 13:35:51 +09:00
Bill Currie 4cec4b9f96 Rewrite the interface detection code.
Turns out SIOCGIFCONF is rather painful to get working cross-platform. This
should work better, and can be used even with ipv6 :)
2011-08-11 18:32:39 +09:00
Bill Currie 6f413c0aec Fix testsound building in mingw.
I had forgotten about $(EXEEXT) :P
2011-08-02 11:24:51 +09:00
Bill Currie 28610c08e3 Do not try to build testsound when not building sound libs. 2011-07-30 15:03:19 +09:00
Bill Currie 056d6a08ff Do not define HAVE_ZLIB when it is unavailable.
Oops :P
2011-07-29 16:51:52 +09:00
Bill Currie a5272fac17 Make the lack of libsamplerate a non-fatal error.
Requiring libsamplerate when not building clients is rather silly. When
building clients, disable sound if libsamplerate can't be found.
2011-07-29 16:32:35 +09:00
Bill Currie f8d8395cf0 Clean up the ipv6 check a little. 2011-07-23 15:58:45 +09:00
Antti Harri e56e8caff2 Fix previous FLAC pkg-config commit that had some typos.
While there, restructure and remove duplicate code.
2011-07-09 22:59:49 +03:00
Antti Harri 358a844a42 Implement --version-info configure switch to override QuakeForge
library versioning. From Lasse Collin, thanks!
2011-07-09 01:23:36 +03:00
Antti Harri c4826262f5 Extend configure check for FLAC to use pkg-config when
possible.
2011-07-08 21:35:04 +03:00
Bill Currie b18ff4ed3e Move test-qfs.c into a test directory.
Same as before: avoiding -prefic-pic issues.

Also, catch some minor snafus found in the previous commit. With this, make
distcheck passes again :)
2011-06-12 16:34:15 +09:00
Bill Currie c522726021 Move the testclip program into its own directory.
Same as with the audio test program, this is to avoid issues with
-prefer-pic.
2011-06-12 16:12:52 +09:00
Antti Harri 1ae2e46dd8 Use -pthread instead of -lpthread on OpenBSD. 2011-06-04 18:08:56 +03:00
Bill Currie 47201137d5 Make the default cd plugin configurable.
The default default is file, but now distribution maintainers can change it
if necessary.
2011-06-04 17:19:18 +09:00
Antti Harri 98808e3cf3 Fix OGG reporting for the CD audio backend and tweak one
test to be better.
2011-05-30 23:57:14 +03:00
Antti Harri b5ad92d2f0 Fix qfcc on OpenBSD by calling the binary instead of the wrapper. 2011-05-28 15:41:08 +03:00
Antti Harri f5da073161 Add configure switch to disable Sun audio backend. 2011-05-28 10:46:21 +03:00
Antti Harri 9b19f9b7d6 Fix a typo in header_files.m4 that makes alloca.h check work again. 2011-05-28 10:45:52 +03:00