os/macosx/Makefile
author bjarni
Sun, 04 Dec 2005 22:43:40 +0000
changeset 2714 2b34ba290a5c
parent 2713 9f06e1f94ce9
child 2717 0f385152f0d3
permissions -rw-r--r--
(svn r3259) -Fix: [OSX] fixed that universal binaries did not make a 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
     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
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     5
ifdef BUILD_UNIVERSAL_BINARY
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     6
BUILD_UNIVERSAL_BINARY:=build_universal_binary
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
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
     9
# setting the default vars for making universal binaries
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    10
# this can be overwritten in Makefile.config
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    11
# default values are for PPC host and commends are for x86 hosts (so you know what to put in)
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    12
# the absolute path is the one Apple uses in Xcode 2.1
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    13
ifndef CC_UNI
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    14
	# powerpc-apple-darwin8-gcc-4.0.0
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    15
	CC_UNI:=i686-apple-darwin8-gcc-4.0.0
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    16
endif
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    17
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    18
ifndef CFLAGS_UNI
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    19
	# -arch ppc
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    20
	CFLAGS_UNI:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    21
endif
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    22
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    23
ifndef LDFLAGS_UNI
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    24
	LDFLAGS_UNI:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    25
endif
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    26
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    27
ifdef UNIVERSAL_OTHER_HALF
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    28
# if UNIVERSAL_OTHER_HALF is defined, we know that the original makefile call will build the bundle
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    29
BUILD_OSX_BUNDLE:=
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    30
else
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    31
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
    32
endif
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    33
2713
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    34
# building an universal binary
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    35
# 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
    36
# 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
    37
# 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
    38
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    39
$(BUILD_UNIVERSAL_BINARY): $(TTD)
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    40
	$(Q)mkdir -p temp_binary_dir
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    41
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_a
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    42
	@echo '===> Cleaning up to build for the other architecture'
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    43
	$(Q)make clean
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    44
	$(Q)make UNIVERSAL_OTHER_HALF:=1
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    45
	$(Q)cp $(TTD) temp_binary_dir/$(TTD)_b
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    46
	@echo '===> Joining binaries into one universal one'
9f06e1f94ce9 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2712
diff changeset
    47
	$(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
    48
	$(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
    49
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    50
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    51
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
# 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
    53
# 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
    54
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    55
$(BUILD_OSX_BUNDLE): $(TTD) $(BUILD_UNIVERSAL_BINARY)
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
    56
	$(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
    57
	$(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
    58
	$(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
    59
	$(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
    60
	$(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
    61
	$(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
    62
	$(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
    63
	$(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
    64
	$(Q)cp data/* "$(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
    65
	$(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
    66
	$(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
    67
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
# 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
    69
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
    70
	$(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
    71
	$(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
    72
	$(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
    73
	$(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
    74
	$(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
    75
	$(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
    76
	$(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
    77
	$(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
    78
	$(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
    79
	$(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
    80
	$(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
    81
	$(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
    82
	$(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
    83
	$(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
    84
	$(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
    85
	$(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
    86
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    87
$(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
    88
2714
2b34ba290a5c (svn r3259) -Fix: [OSX] fixed that universal binaries did not make a bundle
bjarni
parents: 2713
diff changeset
    89
.PHONY: release $(BUILD_OSX_BUNDLE) $(BUILD_UNIVERSAL_BINARY)