os/macosx/Makefile
author peter1138
Sun, 22 Jan 2006 10:00:04 +0000
changeset 2869 c5ed60d34909
parent 2835 c7fb346f209c
child 3085 d56874235364
permissions -rw-r--r--
(svn r3417) - Make company league table window pinnable.
2688
067c4362dcb0 (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 $
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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
8f50c839cd17 (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
8f50c839cd17 (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
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     7
endif
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     8
2722
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
     9
ifdef UNIVERSAL_x86_PART
d2ab10ffc5e7 (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
2d0366113f47 (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    11
BUILD_OSX_BUNDLE:=
2d0366113f47 (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    12
else
2d0366113f47 (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
2d0366113f47 (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    14
endif
2d0366113f47 (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    15
2713
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    16
# building an universal binary
9c42385e4f41 (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
9c42385e4f41 (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
9c42385e4f41 (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
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    20
2728
8f50c839cd17 (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
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    22
	$(Q)mkdir -p temp_binary_dir
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    23
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_a
2722
d2ab10ffc5e7 (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
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    25
	$(Q)make UNIVERSAL_x86_PART:=1
2713
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    26
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_b
2722
d2ab10ffc5e7 (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
9c42385e4f41 (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)
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    29
	$(Q)rm -rf temp_binary_dir
2688
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    33
2731
888a994e9fe9 (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
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    35
	@echo '===> Building application bundle'
2688
067c4362dcb0 (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)"
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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)"
067c4362dcb0 (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
3d6487cbbb69 (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
067c4362dcb0 (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/
067c4362dcb0 (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)
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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)"
067c4362dcb0 (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
067c4362dcb0 (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
067c4362dcb0 (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)"/
067c4362dcb0 (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
067c4362dcb0 (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/
067c4362dcb0 (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
067c4362dcb0 (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/
067c4362dcb0 (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/
067c4362dcb0 (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/
067c4362dcb0 (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/
067c4362dcb0 (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)"
067c4362dcb0 (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
067c4362dcb0 (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/
067c4362dcb0 (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
067c4362dcb0 (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)"
067c4362dcb0 (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
2d0366113f47 (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
067c4362dcb0 (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
888a994e9fe9 (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)