os/macosx/Makefile
author bjarni
Sat, 07 Jan 2006 13:13:49 +0000
changeset 2835 dd39a5ad0e10
parent 2736 1ea068235989
child 3085 cbcafb482b75
child 9955 d24647f8227b
permissions -rw-r--r--
(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
2688
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
     1
# $Id: Makefile 3214 2005-11-17 19:43:37Z bjarni $
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
     2
# This makefile is not a standalone makefile, but is called from the general one
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
     3
# it contains targets specific to MacOS X
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
     4
2728
18a4eda1aec6 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
     5
ifdef FAT_BINARY
18a4eda1aec6 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
     6
FAT_BINARY:=build_universal_binary
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     7
endif
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     8
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
     9
ifdef UNIVERSAL_x86_PART
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    10
# the bundle is build by the PPC compile when making universal binaries
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    11
BUILD_OSX_BUNDLE:=
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    12
else
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    13
BUILD_OSX_BUNDLE:=build_OSX_bundle
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    14
endif
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    15
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    16
# building an universal binary
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    17
# since we can only compile for PPC or x86 at any one time, we compile one and then
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    18
# we make clean and compile the other one. In the end we use lipo to join them together
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    19
# when this is done, we can continue with the targets from the first run, which is build_OSX_bundle
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    20
2728
18a4eda1aec6 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    21
$(FAT_BINARY): $(TTD)
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    22
	$(Q)mkdir -p temp_binary_dir
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    23
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_a
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    24
	$(Q)rm -rf $(TTD) $(OBJS) # delete all .o files so we can compile for a new endian
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    25
	$(Q)make UNIVERSAL_x86_PART:=1
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    26
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_b
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    27
	@echo '===> Joining the PPC and x86 binaries into one universal one'
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    28
	$(Q)lipo temp_binary_dir/$(TTD)_a temp_binary_dir/$(TTD)_b -create -output $(TTD)
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    29
	$(Q)rm -rf temp_binary_dir
2688
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    30
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    31
# build the bundle. OSX wants to keep apps in bundles, so we will give it one
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    32
# the good thing about bundles is that you can keep extra files in them, so we keep lng files and a data dir in it
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    33
2731
97a409a62741 (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
bjarni
parents: 2729
diff changeset
    34
$(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY)
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    35
	@echo '===> Building application bundle'
2688
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    36
	$(Q)rm -fr "$(OSXAPP)"
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    37
	$(Q)mkdir -p "$(OSXAPP)"/Contents/MacOS
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    38
	$(Q)mkdir -p "$(OSXAPP)"/Contents/Resources
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    39
	$(Q)mkdir -p "$(OSXAPP)"/Contents/Data
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    40
	$(Q)mkdir -p "$(OSXAPP)"/Contents/Lang
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    41
	$(Q)echo "APPL????" > "$(OSXAPP)"/Contents/PkgInfo
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    42
	$(Q)cp os/macosx/openttd.icns "$(OSXAPP)"/Contents/Resources/openttd.icns
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    43
	$(Q)os/macosx/plistgen.sh "$(OSXAPP)" "$(REV)"
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    44
	$(Q)cp data/* "$(OSXAPP)"/Contents/Data/
2736
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2731
diff changeset
    45
	$(Q)cp os/macosx/splash.png "$(OSXAPP)"/Contents/Data/
2688
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    46
	$(Q)cp lang/*.lng "$(OSXAPP)"/Contents/Lang/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    47
	$(Q)cp $(TTD) "$(OSXAPP)"/Contents/MacOS/$(TTD)
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    48
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    49
# make the release disk image. Should only be used with releases and is a good and fast way to make sure to remember all the needed files
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    50
release: all
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    51
	$(Q)mkdir -p "OpenTTD $(RELEASE)"
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    52
	$(Q)mkdir -p "OpenTTD $(RELEASE)"/docs
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    53
	$(Q)mkdir -p "OpenTTD $(RELEASE)"/scenario
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    54
	$(Q)cp -R $(OSXAPP) "OpenTTD $(RELEASE)"/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    55
	$(Q)cp docs/OSX_where_did_the_package_go.txt "OpenTTD $(RELEASE)"/Where\ did\ the\ package\ go.txt
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    56
	$(Q)cp readme.txt "OpenTTD $(RELEASE)"/docs/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    57
	$(Q)cp docs/README_if_game_crashed_on_OSX.txt "OpenTTD $(RELEASE)"/docs/readme\ if\ crashed\ on\ OSX.txt
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    58
	$(Q)cp docs/console.txt "OpenTTD $(RELEASE)"/docs/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    59
	$(Q)cp COPYING "OpenTTD $(RELEASE)"/docs/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    60
	$(Q)cp changelog.txt "OpenTTD $(RELEASE)"/docs/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    61
	$(Q)cp docs/README_if_game_crashed_on_OSX.txt "OpenTTD $(RELEASE)"/docs/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    62
	$(Q)cp os/macosx/*.webloc "OpenTTD $(RELEASE)"
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    63
	$(Q)cp known-bugs.txt "OpenTTD $(RELEASE)"/known-bugs.txt
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    64
	$(Q)cp scenario/* "OpenTTD $(RELEASE)"/scenario/
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    65
	$(Q)/usr/bin/hdiutil create -ov -format UDZO -srcfolder "OpenTTD $(RELEASE)" openttd-"$(RELEASE)"-osx.dmg
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    66
	$(Q)rm -fr "OpenTTD $(RELEASE)"
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    67
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    68
$(OSX): $(TTD) $(BUILD_OSX_BUNDLE)
2688
ef9861cdd745 (svn r3230) -Feature: [OSX] OSX builds can now change where it searches for dynamic libs and can move libs into the bundle
bjarni
parents:
diff changeset
    69
2731
97a409a62741 (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
bjarni
parents: 2729
diff changeset
    70
.PHONY: release $(BUILD_OSX_BUNDLE) $(FAT_BINARY)