Commit graph

59 commits

Author SHA1 Message Date
hendricks266
fcf9beae6a Work-in-progress adjustment to the C code to compile under C++. It builds for me without errors using Win32 MinGW-GCC, but it still generates warning soup. No guarantees about MSVC or anything using SDL. Enable C++ by building with CPLUSPLUS=1. C remains the default and should compile with no change in setup.
Credit to Plagman for the idea and doing the work on the game side, which is included in this commit.

(Building as C++ will give us features with which we can make improvements and optimizations on the multiplayer code and Polymer.)

git-svn-id: https://svn.eduke32.com/eduke32@3116 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-05 02:49:08 +00:00
hendricks266
f51bdc2faa Slight makefile reorganization and cleanup.
* Centralize optimization strategies in Makefile.common. This required moving detection of $(PLATFORM), which makes sense if we work on the paradigm that Makefile.common is for generic compiler setup and Makefile.shared works with libraries and things closer to the engine and game code itself.
* New Makefile variables OPTOPT (Optimization Options) and CUSTOMOPT (Custom Optimizations). OPTOPT by default contains -march, -mtune, etc. Setting this variable from Make invocation will blank these. CUSTOMOPT (Custom Optimizations) works the same but in an additive fashion, overwriting nothing. Technically CUSTOMOPT could stand for (Custom Options) and include any additional parameters sent to both linker and compiler.
* Factor out literal names of the main executables.
* The build process now prints assembler (if NOASM=0) and linker settings in addition to compiler settings.

git-svn-id: https://svn.eduke32.com/eduke32@3096 1a8010ca-5511-0410-912e-c29ae57300e0
2012-10-29 04:26:25 +00:00
terminx
a5f479787f Remove built-in copy of nedmalloc and update nedmalloc.dll. Note that the built-in copy of nedmalloc hasn't been updated or enabled in a really long time as modern system allocators (Windows 7 and Linux 3.x at least) are no longer consistently beat by nedmalloc (but nor are they consistently faster). So, the dll remains for users of Windows XP because it may still improve performance there (while not likely degrading it on Vista/7).
git-svn-id: https://svn.eduke32.com/eduke32@3086 1a8010ca-5511-0410-912e-c29ae57300e0
2012-10-15 00:17:30 +00:00
helixhorned
04a542f1b3 On non-{Windows, OS X}, don't link to libpng when PNG support is not requested.
git-svn-id: https://svn.eduke32.com/eduke32@3050 1a8010ca-5511-0410-912e-c29ae57300e0
2012-10-03 15:29:07 +00:00
helixhorned
19d426ba02 OSX build: mighty tweak osxbuild.sh and link to LibPNG from Fink on x86_64.
The build script now has two more presets: helix and installtools
(which was previously attempted after the build; untested). Also,
 - when detecting git, run commands such that the SVN repo isn't accessed
 - package kextract, kgroup and arttool into tools/ in the zip
 - try to exit on failure in some places, though that doesn't seem to work

git-svn-id: https://svn.eduke32.com/eduke32@2852 1a8010ca-5511-0410-912e-c29ae57300e0
2012-07-29 23:35:12 +00:00
helixhorned
2a2f56f510 Add custom-built lean zlib and libpng and enable PNG screenshots on Windows.
Instructions on how I built the libs are in Windows/src/minipng.dfa.

git-svn-id: https://svn.eduke32.com/eduke32@2843 1a8010ca-5511-0410-912e-c29ae57300e0
2012-07-20 21:57:53 +00:00
helixhorned
ed5e5b5881 Add prototypical SDL 2.X support.
Doesn't work: indexed-color modes, gamma (at least for X11), mouse wheel,
special keys like ENTER or BACKSPACE in the OSD, probably more...

In build/Makefile.shared, we now have logic to autodetect an SDL2 installed
in /usr/local, however OS X and Wii builds follow other Makefile code paths,
it seems.  Note that the matching SDL2_mixer must be used then, too.
In source/jaudiolib/src/driver_sdl.c, change the #includes from <SDL/SDL_xxx.h>
to "SDL_xxx.h".  SDL wiki says this is the most portable way, hopefully this
doesn't break builds for anyone.

git-svn-id: https://svn.eduke32.com/eduke32@2777 1a8010ca-5511-0410-912e-c29ae57300e0
2012-06-22 21:39:53 +00:00
helixhorned
7cd44d6cdb Makefile.shared: don't link with libsupc++ on linux.
It works perfectly fine without it for me, and including it for no reason
is just an annoyance to other people building from source.

git-svn-id: https://svn.eduke32.com/eduke32@2708 1a8010ca-5511-0410-912e-c29ae57300e0
2012-05-29 20:01:50 +00:00
hendricks266
f303ac2f2a EDuke32 Wii: Ready for action!
git-svn-id: https://svn.eduke32.com/eduke32@2685 1a8010ca-5511-0410-912e-c29ae57300e0
2012-05-20 07:25:25 +00:00
helixhorned
1c530d4b2f With Clang, compile in GNU89 mode and fix clang detection in the Makefiles.
The default C99 mode is giving us linking errors from xdelta3.

git-svn-id: https://svn.eduke32.com/eduke32@2672 1a8010ca-5511-0410-912e-c29ae57300e0
2012-05-18 21:40:38 +00:00
helixhorned
bd8559f6c3 Patch adding Wii support by tueidj, part 2: Makefile changes
I didn't add Makefile.common, because it needs to be made conditional.

git-svn-id: https://svn.eduke32.com/eduke32@2622 1a8010ca-5511-0410-912e-c29ae57300e0
2012-05-01 12:37:53 +00:00
hendricks266
3929d60744 OS X: Fix more warnings.
git-svn-id: https://svn.eduke32.com/eduke32@2537 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-26 05:04:21 +00:00
helixhorned
549e9f6216 Make "LIBS+= $(L_SSP) -Wl,--enable-auto-import" conditional to Windows.
git-svn-id: https://svn.eduke32.com/eduke32@2525 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-24 15:59:53 +00:00
hendricks266
0122764017 - Makefiles:
- Fix typo, correctly adding SDL libs to the tools on OS X so that makesdlkeytrans builds.
  - Move all mention of $(LIBS) out of build/Makefile into build/Makefile.shared because no linking takes place in the engine itself so LIBS additions were lost. This should fix USE_LIBPNG=1 on Windows at least.
- Other assorted cleanup.

git-svn-id: https://svn.eduke32.com/eduke32@2523 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-24 08:30:28 +00:00
hendricks266
64595adfb2 Makefiles:
- Properly handle the architecture definition when BUILD32_ON_64=1
 - Add proper $(*LDFLAGS) to which LTO and ARCH are correctly passed.
 - Cleanup of compiler flag variables.

This should fix to some degree building of the Build tools on OS X, and it may possibly fix the crashing of the OS X x86 32-bit build.

git-svn-id: https://svn.eduke32.com/eduke32@2520 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-23 20:22:10 +00:00
hendricks266
a35dc578e0 Makefiles: Add $(STATICSTDCPP) variable which the user can set to 0 or 1 to explicitly set C++ standard library linking to static or shared respectively. By default it is transparently left blank.
An effect is only really seen in the buildtools written in C++, currently just arttool.
This is mainly of interest to distributors of the buildtools to avoid missing DLL errors.

git-svn-id: https://svn.eduke32.com/eduke32@2507 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-20 19:29:11 +00:00
hendricks266
44cf8c47c7 osxbuild.sh:
- Make all arguments explicit toggles (except for onlyzip).
 - Disable PowerPC builds by default on Snow Leopard in addition to Lion.
 - Enable Darwin 9 compatibility for all builds whenever PowerPC is enabled.

git-svn-id: https://svn.eduke32.com/eduke32@2487 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-17 07:25:46 +00:00
hendricks266
5e19a48754 osxbuild.sh: new "tools" parameter builds the Build tools in addition to the full binaries
Makefiles: new features to facilitate above:
 - buildtools: "make printutils" is a phony which simply lists all the tools
 - $(EXESUFFIX_OVERRIDE)

git-svn-id: https://svn.eduke32.com/eduke32@2476 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-14 06:27:45 +00:00
hendricks266
c5519e3fe8 More Build tools improvements:
- JFBuild ports: arttool, givedepth, and mkpalette
 - All viable tools are now built when 'make utils' is invoked, not just some
 - Revert "initprintf" hack of previous commit and replace it with "compat_tools.c"
 - Move Bstrtolower from baselayer.c to compat.c
 - Makefiles: Add start and finish messages for the tools
 - Makefiles: To prevent "-Wimplicit" from being passed to the C++ compiler, create $(*CONLYFLAGS)

git-svn-id: https://svn.eduke32.com/eduke32@2458 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-12 04:48:42 +00:00
hendricks266
5f3000522a - Makefiles: fix handling of "-Wstrict-overflow=1" to fix Leopard 10.5/Xcode 3.1.4 compatibility
- osxbuild.sh: explicitly specify "ARCH='-arch x86_64'" for 64-bit builds

git-svn-id: https://svn.eduke32.com/eduke32@2444 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-11 07:11:59 +00:00
hendricks266
92b49b6938 OS X: fix build under Leopard/Xcode 3.1.4
git-svn-id: https://svn.eduke32.com/eduke32@2432 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-09 07:43:49 +00:00
helixhorned
147a41d296 Makefile tweaks for the utilities.
- print compilation status for building the final executable
- add 'cleanutils' target in build/Makefile
- don't link against pthread, seems unnecessary
- don't build nedmalloc.o when not requested in Makefile.common

git-svn-id: https://svn.eduke32.com/eduke32@2403 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-04 20:11:49 +00:00
hendricks266
0d4e066e12 Under Mac OS X, override libsupc++ with libstdc++.
git-svn-id: https://svn.eduke32.com/eduke32@2400 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-04 09:32:33 +00:00
hendricks266
56c002d3a1 Add APPLE_FRAMEWORKS Makefile variable which can be passed to the make invocation.
ex: make APPLE_FRAMEWORKS=~/Library/Frameworks

git-svn-id: https://svn.eduke32.com/eduke32@2398 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-04 09:31:37 +00:00
helixhorned
6dc17eec1b Makefiles: disable a few warning categories and other switches when compiling
with clang to prevent spamming the output.

git-svn-id: https://svn.eduke32.com/eduke32@2159 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:08:47 +00:00
helixhorned
d540f18ef4 OSX build: don't include startup window (where the hell is the nib file?); makefile bits for libpng from maxports (dynamically linked, not enabled); update osxbuild.sh so that the 64-bit build links (statically) to libvpx
git-svn-id: https://svn.eduke32.com/eduke32@2076 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-11 16:53:52 +00:00
helixhorned
563d42856e Build fix for OSX/PowerPC
git-svn-id: https://svn.eduke32.com/eduke32@1935 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-20 23:04:20 +00:00
helixhorned
043c756676 A couple more OSX tweaks: pull in 'nibless' SDLMain.m into tree for future hacking, fix backspace ('delete') key in OSD, almost everything to make x86 binaries actually run.
git-svn-id: https://svn.eduke32.com/eduke32@1905 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-17 11:53:41 +00:00
plagman
bfd38b4a89 Fixes for building on OpenBSD. Doesn't break Linux, pending Win32 synthesis
results.



git-svn-id: https://svn.eduke32.com/eduke32@1879 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-11 21:58:19 +00:00
terminx
1fdafcdad6 Cleaning out my tree... mostly internal changes. Adds workaround to disable texture compression with the crappy fglrx driver on Linux, fixes FIRE sprites so that they don't render at their sector's floorz all the time, changes CON compiler around a bit to use a loop instead of calling C_ParseCommand() 10 million times.
git-svn-id: https://svn.eduke32.com/eduke32@1857 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-07 01:16:29 +00:00
terminx
323008432a Consolidate POLYMOST preprocessor define into USE_OPENGL, remove SUPERBUILD preprocessor define, add additional mode to neartag() to skip sprite searches and speed up processing (and enable for CON_OPERATE), fix issue with nearby single instance sounds not playing due to out of range sounds blocking their playback, fix issue with settings.cfg being reset to default bindings when running a mod that specifies its own cfg base name, improve CON structure member interface read/write performance, fix a bug with CON "move" pointer validation
git-svn-id: https://svn.eduke32.com/eduke32@1820 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-04 08:50:58 +00:00
terminx
043bb208b3 Multiplayer improvements
git-svn-id: https://svn.eduke32.com/eduke32@1802 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-25 21:50:19 +00:00
helixhorned
00fbd8267e Strip out most duplicated Makefile stuff into Makefile.common -- this should make configuration and maintenance much less troublesome. Attention to everyone who builds their own Edukes: you may have to re-set some paths like the one to the DirectX SDK.
git-svn-id: https://svn.eduke32.com/eduke32@1739 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-19 22:29:01 +00:00
helixhorned
5e3d6ca527 Makefile cleanups: fixed building with GCC 3, made tabs into spaces where outside command context; Windows: make startup window stay 3 seconds if there was an error -- this way you won't mistake yourself forgetting to copy game data for a crash *d'oh*
git-svn-id: https://svn.eduke32.com/eduke32@1693 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-12 21:06:51 +00:00
terminx
013ac85e2d Emit RPG_EXPLODE, PIPEBOMB_EXPODE and LASERTRIP_EXPLODE from the actual EXPLOSION2 sprite instead of whatever spawned EXPLOSION2, to prevent the sound from being owned by whatever sprite happens to spawn with the ID the RPG/pipebomb/whatever had before it was removed
Add brightness/gamma/contrast cvars to Mapster32

Fix bug with WEAPON_SEMIAUTO flag for custom weapons

Fix VM error with starttrack when specifying an invalid music track

Fix detection of 0x1a EOF characters in CON files

Fix a couple of additional sound issues

Fix crash in pushmove()

Fix Mapster32 textured 2D mode display being a few pixels off from the actual lines drawn

Fix crash when clicking "cancel" in Mapster32 startup window

Add Makefile detection to build with -march=pentium3 -mtune=generic on i686


git-svn-id: https://svn.eduke32.com/eduke32@1665 1a8010ca-5511-0410-912e-c29ae57300e0
2010-07-03 08:53:57 +00:00
terminx
45052b8273 minor changes from my tree that I'm committing to test automated synthesis builds
git-svn-id: https://svn.eduke32.com/eduke32@1645 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-19 10:02:35 +00:00
terminx
21192dfb48 Make nedmalloc a compile time option and add support for loading an external nedmalloc.dll at run time if it isn't compiled in
git-svn-id: https://svn.eduke32.com/eduke32@1643 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-18 00:30:30 +00:00
terminx
c369aec8cc Minor formatting changes, fix nedmalloc on BSD, fix win32 joystick detection issue, fix for ambient sounds, possible fix for stopsound malfunctioning after extended play time, add CON compilation error for duplicate "break" in switch statement
git-svn-id: https://svn.eduke32.com/eduke32@1599 1a8010ca-5511-0410-912e-c29ae57300e0
2010-02-23 18:13:46 +00:00
terminx
44575d7e2c Ball-busting true client-server multiplayer prototype/alpha/whatever
git-svn-id: https://svn.eduke32.com/eduke32@1552 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-05 09:22:43 +00:00
terminx
1770c60af6 Second gtk startup window patch from bioman, other random fixes I can't be bothered to remember
git-svn-id: https://svn.eduke32.com/eduke32@1544 1a8010ca-5511-0410-912e-c29ae57300e0
2009-11-18 01:17:56 +00:00
terminx
784e919941 Change multiplayer random ID generation scheme and remove some dead code
git-svn-id: https://svn.eduke32.com/eduke32@1537 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-29 22:22:44 +00:00
terminx
d11e8789e3 git-svn-id: https://svn.eduke32.com/eduke32@1356 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-29 20:20:57 +00:00
terminx
779eda41da git-svn-id: https://svn.eduke32.com/eduke32@1331 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-17 18:34:55 +00:00
terminx
b1704e8407 Nothing important
git-svn-id: https://svn.eduke32.com/eduke32@1329 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-16 06:41:24 +00:00
terminx
39607e84b1 nothing special
git-svn-id: https://svn.eduke32.com/eduke32@1230 1a8010ca-5511-0410-912e-c29ae57300e0
2009-02-28 07:44:54 +00:00
terminx
c7d54527ca git-svn-id: https://svn.eduke32.com/eduke32@1218 1a8010ca-5511-0410-912e-c29ae57300e0 2009-01-21 22:43:44 +00:00
terminx
13f108ddd5 git-svn-id: https://svn.eduke32.com/eduke32@1216 1a8010ca-5511-0410-912e-c29ae57300e0 2009-01-19 00:58:39 +00:00
terminx
b53c959919 git-svn-id: https://svn.eduke32.com/eduke32@1204 1a8010ca-5511-0410-912e-c29ae57300e0 2009-01-07 14:05:13 +00:00
terminx
1cc73560f2 git-svn-id: https://svn.eduke32.com/eduke32@1203 1a8010ca-5511-0410-912e-c29ae57300e0 2009-01-06 06:59:18 +00:00
terminx
4910928877 source code rape
git-svn-id: https://svn.eduke32.com/eduke32@1143 1a8010ca-5511-0410-912e-c29ae57300e0
2008-11-20 14:06:36 +00:00