(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
This commit is contained in:
bjarni
2006-03-29 16:28:41 +00:00
parent 2aff28be2b
commit 9c96bcb997
4 changed files with 144 additions and 70 deletions

View File

@@ -83,17 +83,6 @@ $(MAKE_CONFIG):
$(call CONFIG_LINE,MINGW:=$(MINGW))
$(call CONFIG_LINE,)
$(call CONFIG_LINE,\# Universal binary setup)
$(call CONFIG_LINE,\# use these settings for building universal binaries. Most systems should work with the default settings)
$(call CONFIG_LINE,CFLAGS_UNIVERSAL:=$(CFLAGS_UNIVERSAL))
$(call CONFIG_LINE,LDFLAGS_UNIVERSAL:=$(LDFLAGS_UNIVERSAL))
$(call CONFIG_LINE,CFLAGS_JAGUAR:=$(CFLAGS_JAGUAR))
$(call CONFIG_LINE,LDFLAGS_JAGUAR:=$(LDFLAGS_JAGUAR))
$(call CONFIG_LINE,)
$(call CONFIG_LINE,G5_FLAGS:=$(G5_FLAGS))
$(call CONFIG_LINE,)
$(call CONFIG_LINE,\# For cross-compiling)
$(call CONFIG_LINE,CC_TARGET:=$(CC_TARGET))
$(call CONFIG_LINE,CC_HOST:=$(CC_HOST))