comparison README.MacOSX @ 221:50620ec9c86a

*** empty log message ***
author Sam Lantinga <slouken@libsdl.org>
date Fri, 02 Nov 2001 18:12:52 +0000
parents c03846dd489b
children ae4ab3ac89a9
comparison
equal deleted inserted replaced
220:7861d904fb77 221:50620ec9c86a
23 23
24 ============================================================================== 24 ==============================================================================
25 Using the Simple DirectMedia Layer with a traditional Makefile 25 Using the Simple DirectMedia Layer with a traditional Makefile
26 ============================================================================== 26 ==============================================================================
27 27
28 In the following, it will be mostly assumed that you are using autoconf and 28 An existing autoconf/automake build system for your SDL app has good chances
29 automake to setup your SDL project, and furthermore that you use the AM_PATH_SDL 29 to work almost unchanged on OS X. However, to produce a "real" MacOS X binary
30 macro provided by SDL in sdl.m4. If you are not using these tools, you can 30 that you can distribute to users, you need to put the generated binary into a
31 still use SDL but it will be somewhat hard to get running. 31 so called "bundle", which basically is a fancy folder with a name like
32 "MyCoolGame.app".
32 33
33 Only step 1) is really required to get started, but for full OS X support you 34 To get this build automatically, add something like the following rule to
34 will want to do the other steps, too. 35 your Makefile.am:
35
36 1) Update your acinclude.m4 file in case you have copied an older version of
37 sdl.m4 into it. This is essential as AM_PATH_SDL now performs some additional
38 tasks when used on MacOS X
39
40 Rationale: AM_PATH_SDL copies /usr/local/share/sdl/Info.plist and the folder
41 /usr/local/share/sdl/SDL_main.nib/ into the directory where configure is invoked.
42 This is essential for the configure script to be able to run the test code
43 that detects SDL.
44
45 2) Copy SDL's Info.plist.in file (from src/main/macosx) into your project's main
46 folder (the same spot that your configure.in sits), and edit it to suite your
47 needs. Then add it to your AC_OUTPUT list in configure.in
48
49 Rationale: The Info.plist file can be used to specify an icon file for
50 your app, and also to provide a human readable version/copyright string
51 and other meta-information to the user via the Finder's Get Info dialog.
52
53 3) Add something like the following rule to your Makefile.am:
54 36
55 bundle_contents = APP_NAME.app/Contents 37 bundle_contents = APP_NAME.app/Contents
56 APP_NAME_bundle: EXE_NAME 38 APP_NAME_bundle: EXE_NAME
57 mkdir -p $(bundle_contents)/MacOS 39 mkdir -p $(bundle_contents)/MacOS
58 mkdir -p $(bundle_contents)/Resources 40 mkdir -p $(bundle_contents)/Resources
59 mkdir -p $(bundle_contents)/Resources/SDL_main.nib
60 echo "APPL????" > $(bundle_contents)/PkgInfo 41 echo "APPL????" > $(bundle_contents)/PkgInfo
61 $(INSTALL_DATA) Info.plist $(bundle_contents)/
62 $(INSTALL_DATA) SDL_main.nib/*.nib $(bundle_contents)/Resources/SDLMain.nib
63 $(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/ 42 $(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
64 43
65 You should replace EXE_NAME with the name of the executable. APP_NAME is what 44 You should replace EXE_NAME with the name of the executable. APP_NAME is what
66 will be visible to the user in the Finder. Usually it will be the same 45 will be visible to the user in the Finder. Usually it will be the same
67 as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME 46 as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME
68 usually is "TestGame". You might also want to use @PACKAGE@ to use the package 47 usually is "TestGame". You might also want to use @PACKAGE@ to use the package
69 name as specified in your configure.in file. 48 name as specified in your configure.in file.
70 49
71 If your project builds more than one application, you will have to do a bit more. 50 If your project builds more than one application, you will have to do a bit
72 For each of your target applications, you need a seperate rule. Furthermore, each 51 more. For each of your target applications, you need a seperate rule.
73 needs its own Info.plist file, since that has to contain the exact name of the
74 executable (i.e. EXE_NAME above). One way to do that is to use sed in your make rules
75 and modify a single master Info.plist.
76 52
77 Rationale: on Mac OS X, executables have to be put into so-called "bundles". 53 If you want the created bundles to be installed, you may want to add this
78 The make rule given above will construct such a bundle around the executable 54 rule to your Makefile.am:
79 for you. You need to make a copy of it for each target application.
80
81 4) If you want the create bundles to be installed, you may want to add this
82 rule to your Makefile.am:
83 55
84 install-exec-hook: APP_NAME_bundle 56 install-exec-hook: APP_NAME_bundle
85 rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app 57 rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
86 mkdir -p $(DESTDIR)$(prefix)/Applications/ 58 mkdir -p $(DESTDIR)$(prefix)/Applications/
87 cp -r $< /$(DESTDIR)$(prefix)Applications/ 59 cp -r $< /$(DESTDIR)$(prefix)Applications/
88 60
89 This rule takes the Bundle created by the rule from step 3 and installs them 61 This rule takes the Bundle created by the rule from step 3 and installs them
90 into $(DESTDIR)$(prefix)/Applications/. 62 into $(DESTDIR)$(prefix)/Applications/.
91 63
92 Again, if you want to install multiple applications, you will have to augment 64 Again, if you want to install multiple applications, you will have to augment
93 the make rule accordingly. 65 the make rule accordingly.
94 66
95 67
96 ============================================================================== 68 ==============================================================================
97 Using the Simple DirectMedia Layer with Project Builder 69 Using the Simple DirectMedia Layer with Project Builder
98 ============================================================================== 70 ==============================================================================
99 71
100 These instructions are for using Apple's Project Builder IDE to build SDL applications. 72 These instructions are for using Apple's Project Builder IDE to build SDL
73 applications.
101 74
102 - First steps 75 - First steps
103 76
104 The first thing to do is to unpack the PBProjects.tar.gz archive in the 77 The first thing to do is to unpack the PBProjects.tar.gz archive in the
105 top level SDL directory (where the PBProjects.tar.gz archive resides). 78 top level SDL directory (where the PBProjects.tar.gz archive resides).