Commit graph

40 commits

Author SHA1 Message Date
Simon McVittie
2a71948f21 build: define ARCH_STRING in Makefile on Linux and other GNU platforms
GNU platforms (Linux, kFreeBSD, Hurd) have endian.h to determine
endianness, so all architectures except x86_64 are in fact treated
identically, except that their ARCH_STRING is different.
The ARCH_STRING must always be identical to the ARCH from the Makefile,
otherwise the engine will not find its cgame, game and ui plugins
under their expected names and startup will fail. If we pass it in
from the Makefile, then an identical value is guaranteed, and we can
get rid of an increasingly long list of defined(__some_cpu__) tests.

The one remaining quirk is that we test __x86_64__ to determine
whether to define idx64; I've kept that, but separated it from
the ARCH_STRING.

On non-Linux platforms we only support a few architectures anyway,
so keeping the list up to date is less of a burden; *BSD porters
could probably use the same technique to get support for lots of
architectures with little effort, but I have not done that here,
because I cannot test it.

Windows must continue to support preprocessor-based architecture tests
in any case, so that the MSVC solutions (which do not use the Makefile)
can continue to work. However, Windows only runs on a few CPU families,
so this shouldn't be a significant burden in practice.

When cross-compiling, the tools are compiled for the build architecture
(COMPILE_PLATFORM, COMPILE_ARCH) rather than the host architecture
(PLATFORM, ARCH), so define ARCH_STRING to COMPILE_ARCH on a GNU
COMPILE_PLATFORM.
2015-07-14 22:51:57 +01:00
Zack Middleton
6a03817a9c Merge pull request #4 from smcv/hurd
Add support for the GNU/Hurd architecture
2015-06-30 19:02:46 -05:00
Martin Michlmayr
ebb69f699c Add support for Aarch64 (ARM64)
Add support for Aarch64, the 64-bit ARM architecture.
2015-06-30 14:22:49 -04:00
Svante Signell
540e4225cc Add support for the GNU/Hurd architecture
[As with GNU/kFreeBSD, it's treated as "Linux": all three use the GNU libc
and runtime linker, which is mostly what matters for ioquake3. -smcv]

Bug-Debian: http://bugs.debian.org/679330
Reviewed-by: Simon McVittie <smcv@debian.org>
2013-05-19 21:50:40 +01:00
Tim Angus
8d70929d12 Ditch 'historical compatibility' and use 'logic' instead 2013-03-22 11:33:27 +00:00
Tim Angus
dfbad1360f Fix some clang warnings 2013-03-12 21:50:59 +00:00
Tim Angus
675e7a641a * clang support 2011-10-21 22:48:53 +00:00
Thilo Schulz
c1b3b6f0be Fix compilation on non-x86 platforms, by Simon McVittie 2011-08-05 12:11:27 +00:00
Thilo Schulz
800a3c8d7b Fix ARCH_STRING macro for mingw64 2011-08-01 14:38:37 +00:00
Thilo Schulz
40dfcee06e Modular rendering system. Patch by use.less01
This might break MSVC builds. I'll take care of it later
2011-08-01 01:19:55 +00:00
Thilo Schulz
242c938d7f Fix alignment issues in message sending/reading that would crash IRIX, thanks to Canavan for supplying a shell where I could fix this (#5077) 2011-07-17 01:41:39 +00:00
Thilo Schulz
a447aa82af Fix #if macros for idx64 and id386 2011-06-15 14:10:20 +00:00
Thilo Schulz
03201aff22 - Add MASM assembler files for MSVC x64 projects to support vm_x86 in x64 mode
- Clean up ftol()/snapvector() mess
- Make use of SSE instructions for ftol()/snapvector() if available
- move ftol/snapvector pure assembler to inline assembler, this will add x86_64 and improve support for different calling conventions
- Set FPU control word at program startup to get consistent behaviour on all platforms
2011-06-13 09:56:39 +00:00
Thilo Schulz
c174143dc2 - Add x86_64 support to vm_x86.c
- Fix warning on mingw64
2011-06-01 15:17:18 +00:00
Thilo Schulz
d2f8b9f4bb Support GNU/kFreeBSD, patch by Cyril Brulebois. Thanks. 2011-02-04 17:31:12 +00:00
Tim Angus
c314f29290 * Use correct compiler defines for OS detection on Windows 2010-12-19 16:34:35 +00:00
Ludwig Nussel
760f4a1949 64bit Windows support (patch by Michael Menegakis) 2010-02-28 09:00:02 +00:00
Tim Angus
3ebe048968 * Fix a memory leak in OS X Sys_Dialog
* Fix compilation on Snow Leopard
2010-02-26 16:32:49 +00:00
Tim Angus
240b25a41f * (bug #4271) FreeBSD fixes (Dominic Fandrey) 2010-01-07 19:53:52 +00:00
Ryan C. Gordon
3bca280948 Add x86_64 ARCH_STRING for FreeBSD.
Partially fixes Bugzilla #4271.
2009-09-15 06:27:19 +00:00
Ludwig Nussel
17a81ff7c9 qcommon: Add idsparc and set when __sparc__ && !C_ONLY
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-03-02 17:29:30 +00:00
Thilo Schulz
70cd2ccfab - include Winsock2.h for windows
- add a __BSD__ define for all bsd platforms if it doesn't exist.
2008-04-05 14:28:57 +00:00
Tim Angus
eaeed742c5 * Move MINSDL_ values to sys_local.h from Makefile/VC project
* Merge *BSD platform definitions in q_platform.h
* IRIX support (Patrick Baggett <baggett.patrick@figglesoftware.com>)
2007-11-26 20:18:53 +00:00
Ludwig Nussel
fe349e80ba include endian.h (#3399) 2007-10-26 15:01:52 +00:00
Tim Angus
2bebaff8b4 * Add required header on *BSD 2007-10-13 13:26:41 +00:00
Tim Angus
8f43965e13 * OpenBSD support (Toni Spets <toni.spets@gmail.com>) 2007-10-12 23:27:47 +00:00
Tim Angus
672cfbf16f * Merge unified-sdl to trunk
* Bump Q3_VERSION to 1.35
2007-09-05 18:17:46 +00:00
Coyote
17c443a3fd Changes to build defines for Solaris on i86pc. Minor fix to q_platform.h for Solaris. 2006-11-30 08:01:43 +00:00
Tim Angus
db5faeaeaa * NetBSD support patch from optical (alex@rigbo.se) 2005-12-27 19:46:01 +00:00
Ryan C. Gordon
cfdd586ef8 Look for correct filename extension when loading native DLLs. 2005-12-05 01:11:41 +00:00
Tim Angus
796ba11301 * Ditch Mac OS 9 support 2005-12-01 21:36:16 +00:00
Ryan C. Gordon
4784374221 Make sure Q3_BIG_ENDIAN and Q3_LITTLE_ENDIAN are defined correctly for
PowerPC/x86 Mac OS X. Fixes Bugzilla #2510.
2005-11-29 03:31:31 +00:00
Tim Angus
382c6adb54 * Disable ccache by default. If you want it, add USE_CCACHE=1 to Makefile.local
* Remove -gfull from linux section in Makefile -- it's darwin only
* Cast away some warnings that surfaced from using "new" AL headers
* Various whitespace and consistency fixes
2005-11-26 15:01:28 +00:00
Ryan C. Gordon
721b9a7d01 Mac OS X work...lots of little changes that touch a lot of random places.
Still work to be done, but this at least matches the PowerPC Linux status
 now.

MacOS-specific directory (and XCode project) is gone...this now uses SDL,
 OpenAL, and the Unix Makefiles.

--ryan.
2005-11-26 07:46:21 +00:00
Tim Angus
4eaebe4a31 * Tidy-up of q_platform.h
* Introduced Q3_BIG_ENDIAN and Q3_LITTLE_ENDIAN #defines
* Changed some stricmp to Q_stricmp so that #define stricmp strcasecmp could be
  removed
2005-11-06 00:29:59 +00:00
Tim Angus
81c1b3128b * Enable use of asm on Solaris-x86 2005-11-05 18:41:37 +00:00
Tim Angus
d41de844d3 * Oops, missed a bit 2005-11-05 00:42:28 +00:00
Tim Angus
a87185a96f * Centralise architecture defines in q_platform.h 2005-11-05 00:29:40 +00:00
Tim Angus
e4b7a04d5c * Replaced a bunch of inline and __inline with ID_INLINE
* Replaced a bunch of __i386__ with id386
* General tidy up of asm preprocessor decisions
* Removed C_ONLY from the dedicated server build
2005-11-04 22:32:00 +00:00
Tim Angus
87cd6f8a93 * Split off q_platform.h from q_shared.h
* Removed lcc PATH hack and replaced with something slightly less hacky
* Removed all platform specific hostfiles from lcc and replaced with bytecode.c
  (from ankon)
* Turned lcc option "-S" on permanently
* Improved q3cpp so that it recursively adds include dirs to its list
2005-11-01 22:09:15 +00:00