Commit graph

161 commits

Author SHA1 Message Date
terminx
466f3aca30 Support building without a startup window through the Makefile. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5928 1a8010ca-5511-0410-912e-c29ae57300e0
2016-11-09 22:51:33 +00:00
hendricks266
4ca5e25e2c Add support for MOD, XM, IT, and S3M tracker music through libxmp-lite.
Building with support must be manually enabled by invoking make with HAVE_XMP=1 on platforms other than Windows, because libxmp-lite is not common in package managers. This setup will be improved in the future.

git-svn-id: https://svn.eduke32.com/eduke32@5927 1a8010ca-5511-0410-912e-c29ae57300e0
2016-11-08 02:59:05 +00:00
hendricks266
6798cb05ee Makefile: Remove -fno-pic from everywhere. This should fix building on Ubuntu 16.10 and any other platform that has PIE enabled.
git-svn-id: https://svn.eduke32.com/eduke32@5920 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-29 16:59:31 +00:00
hendricks266
ccb7a93a7c Makefile: Revert r5864 and move some code introduced in r5762 to a later Mac-only block so that architecture detection is not broken on Linux.
git-svn-id: https://svn.eduke32.com/eduke32@5919 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-29 16:59:28 +00:00
hendricks266
c5247983e7 Makefile: Allow an invocation like make CC=clang-3.8 to work properly.
git-svn-id: https://svn.eduke32.com/eduke32@5869 1a8010ca-5511-0410-912e-c29ae57300e0
2016-09-16 21:55:42 +00:00
hendricks266
9363f7d023 Makefile: Only apply $(ARCH) processing code on Macs.
git-svn-id: https://svn.eduke32.com/eduke32@5864 1a8010ca-5511-0410-912e-c29ae57300e0
2016-09-16 21:55:27 +00:00
hendricks266
8ef2032035 Makefile: Revamp setup of all things SDL.
Highlights:
*Building with msys2 can now take advantage of sdl-config and sdl2-config if present.
*Add a header check to error out if SDL_mixer's major version does not match SDL.
*Building with frameworks on OS X works again.

Notes:
*Those cross compiling, particularly targeting Windows, may need to invoke make with SDLCONFIG='' to avoid bringing in libs and headers from the host.

git-svn-id: https://svn.eduke32.com/eduke32@5778 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-15 07:08:35 +00:00
hendricks266
6e3e490b93 Makefile: Add NULLSTREAM to factor out the NUL part of DONT_PRINT.
git-svn-id: https://svn.eduke32.com/eduke32@5777 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-15 07:08:31 +00:00
hendricks266
619f3a7a8a Makefile: Add a special set of default optimization options when building for the Haswell-specific x86_64h architecture designation.
git-svn-id: https://svn.eduke32.com/eduke32@5776 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-15 07:08:26 +00:00
hendricks266
0434a87e3a Remove trailing whitespace from anything we don't need to rebase from an upstream.
git-svn-id: https://svn.eduke32.com/eduke32@5768 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:28 +00:00
hendricks266
a53a821ec3 Makefile: Switch the detection order of OPTOPT flags so that i386 is checked after x86_64. This ensures full compatibility for fat OS X binaries built using ARCH="-arch i386 -arch x86_64".
git-svn-id: https://svn.eduke32.com/eduke32@5766 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:01 +00:00
hendricks266
005ebde8ce Makefile: Make Objective-C code build as Objective-C++ when we build C code as C++.
git-svn-id: https://svn.eduke32.com/eduke32@5764 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-03 04:50:55 +00:00
hendricks266
ca619df429 Makefile: Add extra optimization defaults for OS X builds since all Intel Macs are guaranteed certain features due to the time of their debut.
git-svn-id: https://svn.eduke32.com/eduke32@5763 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-03 04:50:52 +00:00
hendricks266
5a6aa914a4 Makefile: Clean up handling of architectures.
git-svn-id: https://svn.eduke32.com/eduke32@5762 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-03 04:50:47 +00:00
hendricks266
9a50071b1d Clean up self-modifying assembly unprotection and add PROT_EXEC to mprotect() calls.
This fixes NOASM=0 under OS X.

git-svn-id: https://svn.eduke32.com/eduke32@5760 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-29 21:11:24 +00:00
hendricks266
1208af001c Makefile: Add L_CXXONLYFLAGS, and use it to pass "-static-libstdc++" on Windows.
git-svn-id: https://svn.eduke32.com/eduke32@5752 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-23 04:47:12 +00:00
hendricks266
d8c23261a6 Makefile: Remove STATICSTDCPP variable.
git-svn-id: https://svn.eduke32.com/eduke32@5751 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-23 04:47:09 +00:00
hendricks266
26e15e7098 Makefile: Rename "CPPONLYFLAGS" variable to "CXXONLYFLAGS", since "CPPFLAGS" traditionaly refers to the C preprocessor, not C++.
git-svn-id: https://svn.eduke32.com/eduke32@5750 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-23 04:47:06 +00:00
hendricks266
ad3ff7678f Makefile: Shorten host platform detection code and improve it on Windows to try using $(OS) before invoking uname, and to catch "MSYS" in addition to "MINGW" in uname's output.
git-svn-id: https://svn.eduke32.com/eduke32@5743 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-23 04:46:46 +00:00
terminx
04b975f3d4 Remove -fno-lto-odr-type-merging, turns out it's an obscure option that isn't enabled in the synthesis toolchain. Oh well.
git-svn-id: https://svn.eduke32.com/eduke32@5622 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-13 21:06:15 +00:00
terminx
7b47a21cf2 Limit -fno-lto-odr-type-merging to GCC 5.x
git-svn-id: https://svn.eduke32.com/eduke32@5617 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-07 03:15:46 +00:00
terminx
463f5b5faa Add -fno-lto-odr-type-merging to LTO builds to disable a feature that generates a warning in newer versions of GCC
git-svn-id: https://svn.eduke32.com/eduke32@5610 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-07 02:37:54 +00:00
terminx
33f6826573 Renamed "veryclean" make recipe to "clean" and added veryclean back as an alias for compatibility. This also adds a suggestion to run "make clean" when linking fails. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5598 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-02 00:20:59 +00:00
hendricks266
c695e8e911 Makefile: Improve how we enable and disable warnings. This fixes incompatibilities between r5543 and certain platforms.
git-svn-id: https://svn.eduke32.com/eduke32@5555 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-12 10:31:07 +00:00
terminx
db8b4a00b6 Enable -Wwrite-strings and fix all instances where string constants were passed to functions accepting a char ptr.
git-svn-id: https://svn.eduke32.com/eduke32@5547 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:06:10 +00:00
terminx
e0d8a753a1 Add -Wuninitialized, -Wlogical-op, and -Wcast-qual. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5543 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:05:50 +00:00
hendricks266
3a8d53573c Remove actors_inline, game_inline, and sector_inline objects, and move their code into other headers, set up to be compiled into well-fitting objects if inlining them is disabled.
git-svn-id: https://svn.eduke32.com/eduke32@5529 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:35 +00:00
hendricks266
d7f82d9898 Always compile with "-Wno-missing-braces", as the warnings it hides are useless. "-Wmissing-field-initializers" (part of "-Wextra") should cover us.
git-svn-id: https://svn.eduke32.com/eduke32@5382 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-10 06:57:51 +00:00
hendricks266
ac6cd00f7c Makefile: Automatically disable ASM when "arm" is found in uname -m on Linux.
git-svn-id: https://svn.eduke32.com/eduke32@5372 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-03 11:53:08 +00:00
hendricks266
3ef5586af7 Build tools/Windows: Fix text outout by compiling without -mwindows.
git-svn-id: https://svn.eduke32.com/eduke32@5360 1a8010ca-5511-0410-912e-c29ae57300e0
2015-09-27 21:18:06 +00:00
terminx
4fe25690e7 Makefile tweaks: remove BUILD_FINISHED because it frequently appeared in the wrong place when using make -j, and remove "executable" wording from linking phase. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5279 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:34 +00:00
hendricks266
67cc5911fa Ensure that Objective-C compiler invocations include the C-only options that we specify, especially -std=gnu99. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5168 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-26 00:58:08 +00:00
helixhorned
52e2ff4be1 Makefile.common: for Clang, add -Wno-missing-braces.
Because we get spammed otherwise, regarding initializations of 'vec3f_t'
and 'vec3d_t' variables.
Update: actually, it also happens for GCC builds for me.

git-svn-id: https://svn.eduke32.com/eduke32@5133 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-11 13:53:08 +00:00
hendricks266
17906349b4 BSD: Build system fixes/improvements. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5037 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-02 07:54:24 +00:00
helixhorned
06f0c0c06b Makefile.common: fix "disallow building Lunatic with C++" (r4979). DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5028 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-22 19:31:15 +00:00
helixhorned
1abe65f3ce Makefile.common: disallow building Lunatic with C++ for now. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4979 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-10 17:50:23 +00:00
terminx
8e21ad20c2 MSYS2 build fix. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4924 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-16 06:30:48 +00:00
hendricks266
30407c8e87 Wii: Output and package the binary as .dol instead of .elf.
git-svn-id: https://svn.eduke32.com/eduke32@4824 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-18 18:15:05 +00:00
helixhorned
01fa7eeabc Makefile.common: in non-release builds, explicitly pass -fno-omit-frame-pointer.
So that stack traces can be gotten with optimized DEBUGANYWAY builds, e.g. for
Linux's 'perf' --> flame graphs. DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4817 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-15 19:50:52 +00:00
hendricks266
c956f350b7 Fix building with make -B. (make veryclean is now obsolete.) DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4807 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-09 23:56:31 +00:00
hendricks266
9d5a17c93e Eliminate -Wno-narrowing. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4771 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-28 23:57:21 +00:00
hendricks266
4e664fe878 Some minor fixes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4768 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-28 08:14:00 +00:00
hendricks266
4e034e1331 Eliminate the printf_nowarn stuff that has long since been supplanted by TrackerCast. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4763 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-25 21:08:58 +00:00
hendricks266
f22e202d88 Fix some things when building on OS X. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4762 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-24 08:19:50 +00:00
helixhorned
7275152b86 Makefile: do '(very)clean' with a plain "rm -f some/obj/*.o".
Notes:
- In the 'clean' target, the "core*" arg to 'rm' was removed as I find it too
  unspecific. (Someone could have an unrelated file with that prefix lying
  around.)
- The targets 'clean' and 'veryclean' now echo the commands they are about
  to execute.

Also, in Makefile.common, resurrect sanitized Clang builds if DEBUGANYWAY=2
is passed (previously, that was triggered with RELEASE=0 DEBUGANYWAY=1).

git-svn-id: https://svn.eduke32.com/eduke32@4756 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 18:37:19 +00:00
terminx
4abc47af9e Fix _FORTIFY_SOURCE redefinition warning on Ubuntu's patched versions of GCC. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4750 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:33:57 +00:00
terminx
0e606700d6 Get rid of -Wdeclaration-after-statement as we're only targeting C99 and C++ now. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4746 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:29:38 +00:00
terminx
999f789438 Fix a couple of Makefile errors Helixhorned noticed. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4713 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:34:49 +00:00
terminx
0dcca1f305 CPLUSPLUS mode by default in Makefile.common, C99 otherwise. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4704 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:07:21 +00:00
terminx
80b8e08eb7 Remove -DNO_GCC_BUILTINS, set _FORTIFY_SOURCE to 0.
git-svn-id: https://svn.eduke32.com/eduke32@4694 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:04:03 +00:00