summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2016-04-07build: if tput fails, fall back to a reasonable text widthSimon McVittie
If TERM is not set (which can happen in autobuilders and other batch environments), or if tput cannot determine the number of columns for some other reason, then it can fail and not produce any output. Prior to this change, that would result in passing field width -4 to fmt, which is an error and causes fmt to produce no output.
2016-04-07build: define ARCH_STRING in Makefile on Linux and other GNU platformsSimon McVittie
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.
2016-04-07build: canonicalize all ARM variants to "arm", matching q_platform.hSimon McVittie
The ARCH in the Makefile must match the ARCH_STRING in q_platform.h; otherwise, ioquake3 will install (for instance) uiARCH.so but look for uiARCH_STRING.so, which isn't going to go well (particularly for the modular renderer). Like i386, but unlike most (all?) other Linux platforms, uname -m on 32-bit ARM machines can have various results starting with "arm", depending on the specific CPU version (e.g. Raspberry Pi is armv6l, RPi2 is armv7l). Again similar to the x86 family, it's appropriate for them to share an architecture suffix; q_platform.h has traditionally used "arm" so let's use that. 64-bit ARM makes a clean break from this, much like 64-bit x86 does: uname -m produces a string not starting with arm (specifically "aarch64"), and gcc predefines __aarch64__ instead of __arm__. As a result, it is unaffected by this change.
2016-04-07Makefile: confine $(LIB) to the one platform that needs it, namely irix64Simon McVittie
It isn't mentioned anywhere else, and deleting it from the Linux code path means we don't need to maintain an exhaustive list of 64-bit architectures.
2016-04-07Add support for Aarch64 (ARM64)Martin Michlmayr
Add support for Aarch64, the 64-bit ARM architecture.
2016-04-07Sort tr_image_*.c filenames in MakefileZack Middleton
2016-04-07added mingw64 (msys2) platform supportZsoltM
2016-04-07Add mingw prefix for cygwin32 and mingw32Brenton Bostick
2016-04-07Add support for the GNU/Hurd architectureSvante Signell
[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>
2015-06-07use osxcross compilersTim Angus
2015-06-07clang gets upset by some of these compiler options (and they're probably ↵Tim Angus
pretty pointless in 2015 anyway)
2015-06-07Use pkg-config for a system libjpeg if available: libjpeg-turbo has itSimon McVittie
Bug: https://github.com/ioquake/ioq3/pull/116
2015-03-17Fix compiling lcc using mingw under cygwinZack Middleton
Also have 'make' under cygwin automatically use mingw.
2014-08-28Bullshit change to test jenkins configurationTim Angus
2014-08-28Add SDL libraries to the buildsTim Angus
2014-08-28Fix OSX buildTim Angus
2014-08-28Don't use -mwindows with Clang on Windowshairball
Thanks to stigmha for pointing out this doesn't work in Windows.
2014-08-28Allow user override of cURL, OpenAL, and SDL libs/cflagsZack Middleton
2014-08-28Fix compiling on Linux MintMAN-AT-ARMS
2014-08-28Allow overriding external opus libs/cflags in MakefileZack Middleton
Pointed out by @MAN-AT-ARMS.
2014-08-28Fix up vorbis handling in MakefileZack Middleton
2014-08-28Fix fast-math optimize flag for MinGW x86_64 buildZack Middleton
Found by /dev/humancontroller.
2014-08-28Update SDL2 to 2.0.2MAN-AT-ARMS
2014-08-28More updates to SDL2 libs from MAN-AT-ARMSTim Angus
2014-08-28Find Speex via user override, pkg-config or default search pathSimon McVittie
2014-08-28Look for system Vorbis, Opus and Ogg via pkg-configSimon McVittie
As usual, the order of precedence is: user override, pkg-config, or assume they're in standard locations. In particular, Opus isn't in the default search path on Debian.
2014-08-28Find system zlib via user override, pkg-config or in standard locationsSimon McVittie
2014-08-28Allow system libjpeg to be in a non-standard locationSimon McVittie
It doesn't have pkg-config metadata (at least on Debian), so if the user doesn't override it, assume normal system paths.
2014-08-28Allow OpenAL to be in a non-standard location on all platformsSimon McVittie
Similar to libcurl, we didn't use OPENAL_LIBS and assumed it was always "-lopenal".
2014-08-28Allow libcurl to be in a non-standard location on all platformsSimon McVittie
We didn't add CURL_CFLAGS to CLIENT_CFLAGS on all platforms, and didn't use CURL_LIBS at all, so if "pkg-config --libs" returned "-L... -lcurl" or even "/.../libcurl.a", it wouldn't work.
2014-08-28Centralize checks for Freetype, with a user overrideSimon McVittie
This lets us find a library in a non-standard library directory (via -L in the pkg-config metadata), and allows overrides similar to the Autoconf convention, e.g. make FREETYPE_CFLAGS=-I/opt/freetype/include \ FREETYPE_LIBS="-L/opt/freetype/lib -lfreetype" If pkg-config didn't work, assume that Freetype is in the default location.
2014-08-28Add USE_INTERNAL_LIBS, a default for USE_INTERNAL_*Simon McVittie
Linux distributions that want to link dependencies externally will generally want to link (almost) every dependency externally; similarly, minimal-dependency builds that want to use the embedded copies of dependencies will generally want to do so for (almost) every dependency. Make it easier to choose one of those by setting USE_INTERNAL_LIBS=0 or USE_INTERNAL_LIBS=1, respectively. The default can still be overridden per-dependency; for instance, "make USE_INTERNAL_LIBS=0 USE_INTERNAL_OPUS=1" will use the system version of everything except Opus.
2014-08-28Update bundled SDL headers/libsTim Angus
2014-08-28Use SDL 2 instead of SDL 1.2Tim Angus
2014-06-17Remove -falign-loops and -falign-jumps from MakefileZack Middleton
Clang warns and errors because of them on various platforms. Based on pull request #43 by @xhairball.
2014-06-17Update SDL 1.2.15 to Revision 8040MAN-AT-ARMS
2014-06-17Remove unnecessary NEED_VORBIS since you have USE_CODEC_VORBIShairball
Thanks zturtleman for catching this
2014-06-17Add vorbis 1.3.4 build supporthairball
2014-06-17When cross compiling on mingw32, make sure it finds a CChairball
2014-06-17Upgrade libogg 1.3.0 to 1.3.1hairball
This is a minor bugfix release with few changes
2014-06-17Upgrade opusfile 0.2 to 0.5hairball
2014-06-17Upgrade opus 1.0.2 -> 1.1hairball
2014-06-17Makefile builds fall back to traditional archiving when Mac OS X application ↵jeremiah sypult
bundle generation fails
2014-06-17Updated Makefile to only build release OS X app bundlesjeremiah sypult
2014-06-17bug 5986 - Configure jenkins to spit out mac .app ↵jeremiah sypult
https://bugzilla.icculus.org/show_bug.cgi?id=5986 Created make-macosx-app.sh to handle manually creating an app bundle from other scripts. Updated make-macosx.sh to create bundle with make-macosx-app.sh (TODO: make-macosx-ub.sh support). Updated Makefile to create bundle with make-macosx-app.sh and zip up the resulting ioquake3.app if ARCHIVE is defined.
2013-07-17ui_shared.c needs to be compiled separately for the cgame modulemorturp
Otherwise "#ifdef CGAME" in it has no effect
2013-05-31sync the OpenBSD cflags with LinuxJonathan Gray
2013-05-31correct the linked libs on OpenBSDJonathan Gray
2013-05-03Fix typo preventing OSX native compilesTim Angus
2013-05-03Fix OSX app/ub scriptsTim Angus