os/macosx/Makefile
author tron
Sat, 24 Dec 2005 20:54:31 +0000
changeset 2791 f8ffac7515d4
parent 2736 1ea068235989
child 2835 dd39a5ad0e10
permissions -rw-r--r--
(svn r3339) Remove unnecessary includes
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
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
     7
COPY_x86_SDL_LIB:=$(Q)cp $(x86_SDL_LIB) $(OSXAPP)/Contents/lib/libSDL-x86.dylib
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     8
endif
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     9
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    10
ifdef UNIVERSAL_x86_PART
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    11
# 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
    12
BUILD_OSX_BUNDLE:=
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    13
else
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    14
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
    15
endif
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    16
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    17
# building an universal binary
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    18
# 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
    19
# 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
    20
# 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
    21
2728
18a4eda1aec6 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    22
$(FAT_BINARY): $(TTD)
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    23
	$(Q)mkdir -p temp_binary_dir
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    24
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_a
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    25
	$(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
    26
	$(Q)make UNIVERSAL_x86_PART:=1
2717
0f385152f0d3 (svn r3262) -Fix: [OSX] universal binaries can now include the dynamic SDL lib into the bundle
bjarni
parents: 2714
diff changeset
    27
	$(Q)install_name_tool -change $(x86_SDL_LIB) @executable_path/../lib/libSDL-x86.dylib $(TTD)
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    28
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_b
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    29
	@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
    30
	$(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
    31
	$(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
    32
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
    33
# 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
    34
# 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
    35
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
    36
$(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY)
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    37
	@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
    38
	$(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
    39
	$(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
    40
	$(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
    41
	$(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
    42
	$(Q)mkdir -p "$(OSXAPP)"/Contents/Lang
2717
0f385152f0d3 (svn r3262) -Fix: [OSX] universal binaries can now include the dynamic SDL lib into the bundle
bjarni
parents: 2714
diff changeset
    43
	$(Q)mkdir -p "$(OSXAPP)"/Contents/lib
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
    44
	$(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
    45
	$(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
    46
	$(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
    47
	$(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
    48
	$(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
    49
	$(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
    50
	$(Q)cp $(TTD) "$(OSXAPP)"/Contents/MacOS/$(TTD)
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
    51
	$(COPY_x86_SDL_LIB)
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
    52
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
# 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
    54
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
    55
	$(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
    56
	$(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
    57
	$(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
    58
	$(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
    59
	$(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
    60
	$(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
    61
	$(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
    62
	$(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
    63
	$(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
    64
	$(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
    65
	$(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
    66
	$(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
    67
	$(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
    68
	$(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
    69
	$(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
    70
	$(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
    71
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    72
$(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
    73
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
    74
.PHONY: release $(BUILD_OSX_BUNDLE) $(FAT_BINARY)