------------------------------------------------------------------------ r3278 | hendricks266 | 2012-12-12 18:37:20 -0800 (Wed, 12 Dec 2012) | 24 lines Win64 support! (Meaning it works, not that we recommend it for everyday use.) This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs: *libogg 1.3.0 *libvorbis 1.3.3 *zlib 1.2.7 *libpng 1.5.13 *libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd *SDL_mixer 1.2.12 (for RENDERTYPE=SDL) *DirectX import libraries: dsound and dxguid (now included) To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons. All compiler and linker warnings when building in 64-bit mode have been fixed. Remaining 64-bit to-do: - The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll. - RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version(). - DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in. - Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.) This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d. In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them. ------------------------------------------------------------------------ r3277 | hendricks266 | 2012-12-12 18:35:06 -0800 (Wed, 12 Dec 2012) | 1 line Fix declaration-after-statement warning in game.c after r3270. ------------------------------------------------------------------------ r3276 | hendricks266 | 2012-12-12 18:34:49 -0800 (Wed, 12 Dec 2012) | 1 line Update credits. ------------------------------------------------------------------------ r3275 | hendricks266 | 2012-12-12 18:34:30 -0800 (Wed, 12 Dec 2012) | 7 lines Build tweaks: Set up the use of {Windows,Apple}/{include,lib} regardless of feature toggles in Makefile.common using $(abspath ) in reference to the directory Makefile.common is in. Add the three DirectX headers that are actually used to the repo. (from: http://alleg.sourceforge.net/files/dx9mgw.zip) Since current MinGW versions include DirectX libs (for dynamic linking), remove "-L$(DXROOT)/lib". The DirectX headers are no longer a separate dependency for building. Add $(SDLROOT_OVERRIDE). $(SDLROOT) only functions for Windows and Mac OS X. Factor handling of $(DXROOT_OVERRIDE) and $(SDLROOT_OVERRIDE) into Makefile.shared using $(abspath ). ------------------------------------------------------------------------ r3274 | hendricks266 | 2012-12-12 18:33:53 -0800 (Wed, 12 Dec 2012) | 3 lines Port system gamearray access from M32Script to CON. Expose tilesizx and tilesizy. Also, fix deficient logic in Gv_Free and Gv_Clear (both M32 and CON) so that gamevar and gamearray erasure results are (closer to) correct, and so that the game does not crash when system arrays are accessed from CON because they all have been nulled. ------------------------------------------------------------------------ r3273 | hendricks266 | 2012-12-12 18:33:23 -0800 (Wed, 12 Dec 2012) | 5 lines jaudiolib: Modify OGG looping code to support the LOOP_LENGTH tag (where internally LOOP_START + LOOP_LENGTH = LOOP_END), and all three tags without the underscore. As a note, libvorbis' vorbis_comment_query() checks for tags case-insensitively. (This was done to support the output of vgmstream's "test.exe -g".) ------------------------------------------------------------------------ r3272 | hendricks266 | 2012-12-12 18:32:59 -0800 (Wed, 12 Dec 2012) | 1 line Makefiles: Replace all "ifeq ($(PLATFORM),LINUX)" with "ifeq ($(SUBPLATFORM),LINUX)" and set SUBPLATFORM=LINUX when PLATFORM equals LINUX, DINGOO, GCW, or CAANOO. ------------------------------------------------------------------------