author | bjarni |
Sun, 04 Dec 2005 22:43:40 +0000 | |
changeset 2714 | 2b34ba290a5c |
parent 2713 | 9f06e1f94ce9 |
child 2717 | 0f385152f0d3 |
permissions | -rw-r--r-- |
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) |