Commit Graph

45 Commits

Author SHA1 Message Date
bjarni
9c96bcb997 (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
Now OSX stores object files in .OSX and instead of making FAT object files, there are one for each architecture
	Each architecture got their own targets to make a non-FAT binary and in the end, lipo will merge them into one binary

	It's now possible to select which architectures you want to support by defining OTTD_PPC, OTTD_PPC970 (G5) and/or OTTD_i386
	All combos are supported. UNIVERSAL_BINARY and TRIPLE_BINARY can still be used even though it's possible to gain the same result by using the new flags
	Making a universal build when you already got part of it compiled (say the PPC part), it will reuse it and only compile the i386 part to save time
	Note: in some cases when you switch flags, you risk that openttd is not updated. Delete it and try again. The Makefile can't solve this except if it forces linking each time

	This fixes: FS#87 universal binary building borked in 0.4.7
	Now universal binaries work on OSX 10.3.9 again

	Building universal binaries no longer needs to store flags in Makefile.config as the new design makes it possible to figure everything out automatically
2006-03-29 16:28:41 +00:00
bjarni
bb27e9abb3 (svn r4084) -Documentation: [OSX] changed OSX specific docs
-added an explanation to why there is a special Jaguar download (people appears to download it even when they should download the other one)
	-removed the long outdated README_if_game_crashed_on_OSX.txt
2006-03-24 10:53:49 +00:00
tron
742e806d73 (svn r4076) Back out r4074. It doesn't work and leads to make endlessly calling itself. NOTE: Delete Makefile.config to recover. 2006-03-24 06:40:49 +00:00
bjarni
10936e7034 (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
if detected, WITH_ICONV will be defined in the C code
	WITH_ICONV is also added to Makefile.config
	OSX do not use this flag setting in Makefile.config, as it is set at compile time based on target OS version
	the actual C code is not changed as the current iconv code is hardcoded for OSX and would break if any other OS got iconv
	This detection system is by request of Darkvater
2006-03-23 23:54:43 +00:00
bjarni
e13a6c79c3 (svn r4061) -Codechange: [OSX] removed some long dead flags for universal binary building and removed an absolute path for hdiutil (I don't thin anybody will have it at a non-default place, but still) 2006-03-23 13:40:33 +00:00
bjarni
5ea7685c2d (svn r4060) -Codechange: [OSX] made the release target (in os/macosx/Makefile) easier to use since it gives the release disk image the right name automatically
it now uses REV instead of RELEASE, which means RELEASE is not needed to be set manaully anymore
	it also automatically adds "-jaguar" when making a build aimed at OSX 10.2 (codenamed jaguar)
2006-03-23 13:29:58 +00:00
bjarni
0b102f0e00 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
this have the sideeffect that 10.2.8 will still have the "failure to save with certain chars in the filename bug", but at least it can compile again
2006-03-22 13:06:50 +00:00
bjarni
a19cdf6040 (svn r3884) renamed TRIPPLE_BINARY to TRIPLE_BINARY 2006-03-15 14:11:17 +00:00
bjarni
bb47ecddf4 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
Instead of compiling a binary for each arch and then join them in the end, each .o file is now compiled as a fat file
	This means that the makefile will not call itself to make a binary for each target and we don't have to make clean between each build
	it also means that if one file changed, we don't have to recompile all files
	Another benefit is since it's handled at .o level and though LDFLAGS, no special code is needed if we decide to compile more binaries (like a lot of stuff used to happen at post linking)
	We also needs much less flags to set up, so it should be even easier to get to work out of the box now
	The tradeoff in doing so is that now the binary needs at least OSX 10.3.9 to execute
	To deal with this issue, the JAGUAR flag can be used to compile for older OSes. We will release a binary for old OSes at next release to see if anybody even downloads it (not that many people use OSX 10.2 anymore)
	GPMI will not work on 10.2 anyway so we will cut support for it some day anyway
2006-03-15 14:03:09 +00:00
tron
72e28805b8 (svn r3745) Fix two buffer overflows, one case of undefined behavior (the destination buffer of sprintf() may not alias with one of its arguments) and some other minor stuff introduced in r3740 2006-03-03 07:51:41 +00:00
bjarni
1931b8ea96 (svn r3740) -Feature: [OSX] added OS version, CPU type and newGRF settings to assert window and a message to tell people to add that to a bug report
It also adds a new error window, which can be used just like assert, but it is also active when asserts are turned off
	This is useful for places where it's really important to check even if assert is turned off. It's not used in the code yet
2006-03-02 21:43:09 +00:00
bjarni
a21d7523d2 (svn r3682) -Fix: didn't write $ correct in G5_detector in r3673, which caused problems for tortoisesvn 2006-02-27 19:49:53 +00:00
bjarni
3f60ef07b2 (svn r3679) -Fix: [OSX] fixed warning introduced in r3670 about permission denied in G5_detector.c when compiling without having Makefile.config 2006-02-27 16:58:26 +00:00
bjarni
5412b2db93 (svn r3676) -Change: [OSX] changed info about package to how to install the game
the package is long gone and people don't read a doc about a missing package when they don't expect to find one
	the doc is called install even though it's not a real install and have nothing to do with make install. People just read it the first time they see it when it's called install ;)
2006-02-26 19:02:09 +00:00
bjarni
3e2f13f8d1 (svn r3675) -Fix: [OSX] made the default gcc names for building universal binaries into the newest gcc for each target instead of hardcoding it for 4.0.0 2006-02-25 22:03:30 +00:00
bjarni
d09e66eef6 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
G4 have no problems using G3 code while G5 can, but really benefit from getting their own optimised code (Apple: G5 is not just a fast G4)
	Also changed FAT_BINARY to UNIVERSAL_BINARY since Apple removed most (all?) references to fat binaries on their homepage two days after I added FAT_BINARY
2006-02-25 21:25:23 +00:00
bjarni
4ff6b2a514 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
This will not interfere with crosscompiling or universal binaries
2006-02-25 18:11:11 +00:00
bjarni
235e72829e (svn r3596) -Codechange: [OSX] changed to use Apple's macros instead of OTTD macros for endian conversion
This increases the execution speed a lot since GCC can't detect the OTTD macro as an endian conversion
	while Apple's code uses the instruction to convert endian instead of a series of instructions to produce the same result

	Since we don't have that many endian conversions in the game, overall performance should not increase noteworthy
2006-02-12 14:31:33 +00:00
peter1138
80952253c2 (svn r3512) Yet more whitespace fixes (mostly by Rubidium) 2006-02-01 09:08:25 +00:00
peter1138
28ca056d56 (svn r3395) Add Id tag (and svn property) to macosx files. 2006-01-12 11:20:41 +00:00
bjarni
1cfabfbb09 (svn r3383) -Code cleanup: [OSX] removed SDL support from FAT binaries as it caused problems for non-SDL builds
FAT binaries now need to rely on COCOA drivers. SDL didn't work properly anyway
2006-01-07 13:13:49 +00:00
bjarni
015db8a461 (svn r3382) -Feature: [OSX] added the flag JAGUAR to crosscompile for OSX 10.2.8 on 10.4 2006-01-07 12:53:57 +00:00
truelight
10a2787fd5 (svn r3375) -Add: [ FS#29 ] show an error dialog for OSX cocoa driver (egladil) 2006-01-06 21:27:44 +00:00
bjarni
42d8e8410b (svn r3286) -Fix: [OSX] 10.2 works again and universal binaries got 10.2 as target by default 2005-12-10 23:03:59 +00:00
bjarni
6a6e145010 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
you can still use SDL drivers if you like and you have to run "make upgradeconf" to start using the cocoa drivers (or manually write WITH_COCOA:=1)
	since SDL breaks the cocoa drivers, you can't compile with both SDL and cocoa support
	Using cocoa drivers makes it easier to make universal binaries and it solves:
	-FS#18 [OSX] SDL is weird in universal binaries
	-FS#2  [OSX] lazy pointer crash on exit
	-FS#10 [OSX] linking error when linking statically to SDL 1.2.8 (needless to explain this, but it means it should be able to compile statically with the default settings now)
	-[ 1215073 ] Switching to large size out of fullscreen crashes
	Using SDL drivers will still have those issues though
2005-12-10 11:16:45 +00:00
bjarni
26a5e120e8 (svn r3276) reverted the last two commits. OSX 10.2 kept finding new stuff to prevent it from running OpenTTD, so now it's not supported anymore 2005-12-09 13:17:31 +00:00
bjarni
6cfdfcc4ba (svn r3275) -Fix: [OSX] removed libpng support and error dialogs from jaguar crosscompiles to fix crash 2005-12-09 13:07:21 +00:00
bjarni
111e5ef0fd (svn r3274) -Fix: [OSX] added JAGUAR flag to crosscompile for OSX 10.2 (codenamed jaguar)
JAGUAR and FAT_BINARY can't be used at the same time
	JAGUAR will disable network support due to missing libs in 10.2
2005-12-09 12:15:52 +00:00
bjarni
578883266f (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
10.2 support appears to be broken right now
	Changed BUILD_UNIVERSAL_BINARY into FAT_BINARY (I got tired of typing)
2005-12-09 11:08:24 +00:00
bjarni
4bc7265b03 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
now PPC code is always compiled before x86 code
	strgen and lng files are only compiled once, which results in shorter building time
	the makefile now assigns default values to undefined values so much less needs to be set up
	the code is now easier to maintain
2005-12-06 22:09:28 +00:00
bjarni
1a93bcb5bb (svn r3262) -Fix: [OSX] universal binaries can now include the dynamic SDL lib into the bundle 2005-12-06 09:27:42 +00:00
bjarni
2946f3c1f9 (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle 2005-12-04 22:43:40 +00:00
bjarni
961b71f434 (svn r3258) -Feature: [OSX] added support for universal binaries
it needs both PPC and x86 libs to compile
	due to this fact, compilation with libPNG or SDL is not tested (dedicated servers only)
	only PPC part is tested as I don't have x86 OSX
2005-12-04 17:36:19 +00:00
bjarni
8277a0651e (svn r3257) -Codechange: [OSX] removed the dynamic lib in bundle option (introduced in rev 3230)
it caused way more problems than it solved
2005-12-03 13:43:54 +00:00
bjarni
b860d1194d (svn r3256) -Fix: [OSX] fixed issue where building the bundle could take place before linking if -j 2 was used 2005-12-03 10:36:23 +00:00
bjarni
08b990886d (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
This is not a fix for the issues with static linking, more like a workaround. Static linking still got issues
	Apple recommends to use dynamic linking anyway, so I guess this doesn't matter much
2005-11-23 12:21:54 +00:00
bjarni
d678a12445 (svn r3031) forgot 1 file and two lines in rev 3029 (mac midi stuff) 2005-10-11 16:40:56 +00:00
bjarni
6fb7381efa (svn r3029) -Change: [OSX] removed the buggy java midi player, which was rendered obsolite by r3022 2005-10-10 15:22:47 +00:00
Darkvater
ae356b641d (svn r2905) fix casing 2005-09-01 21:19:48 +00:00
Darkvater
6a69687ea1 (svn r2904) Stupid editors, and renaming files with the same name just different casing is not really possible, so here comes another commit 2005-09-01 21:19:07 +00:00
bjarni
30a5f299f8 (svn r2745) -Fix: [OSX] removed the assert window introduced in 2741 from strgen
- it appeared to cause problems and strgen don't need a GUI
  - renamed ottd to openttd in the app menu (Tobin)
2005-07-29 09:45:25 +00:00
bjarni
a2a5593fcc (svn r2741) -Feature: [OSX] added a window to display asserts on OSX (Tobin) 2005-07-28 21:47:41 +00:00
bjarni
cb3c325e5f (svn r2703) - Feature: [OSX] Added a native alert window to show whatever error() needs to print (Tobin made this, while I fixed some issued in it)
- As a bonus, we now have an objective C file (os/macosx/macos.m) to use the functions Apple made to interact with OS stuff
2005-07-24 20:47:42 +00:00
truelight
176c155193 (svn r2224) -Fix: capital-correctness for OSX-dir-names 2005-04-24 12:47:09 +00:00
bjarni
3e470708a6 (svn r2198) renamed MacOS to MacOSX where it was written wrong. Made myself MacOSX porter as well as coder 2005-04-14 20:42:30 +00:00