author | Sam Lantinga <slouken@libsdl.org> |
Tue, 16 Oct 2001 14:55:59 +0000 | |
changeset 207 | c03846dd489b |
parent 199 | 2ad0957f6265 |
child 221 | 50620ec9c86a |
permissions | -rw-r--r-- |
0 | 1 |
============================================================================== |
2 |
Using the Simple DirectMedia Layer with Mac OS X |
|
3 |
============================================================================== |
|
4 |
||
5 |
These instructions are for people using Apple's Mac OS X (pronounced |
|
6 |
"ten"). |
|
7 |
||
8 |
From the developer's point of view, OS X is a sort of hybrid Mac and |
|
9 |
Unix system, and you have the option of using either traditional |
|
10 |
command line tools or Apple's IDE ProjectBuilder (PB). |
|
11 |
||
12 |
To build using the command line, use the standard configure and make |
|
13 |
process: |
|
14 |
||
15 |
./configure |
|
16 |
make |
|
17 |
make install |
|
18 |
||
19 |
(You may need to create the subdirs of /usr/local manually.) |
|
20 |
||
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
21 |
To use the library once it's built, you essential have two possibilities: |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
22 |
use the traditional autoconf/automake/make method, or use Apple's Project Builder. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
23 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
24 |
============================================================================== |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
25 |
Using the Simple DirectMedia Layer with a traditional Makefile |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
26 |
============================================================================== |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
27 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
28 |
In the following, it will be mostly assumed that you are using autoconf and |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
29 |
automake to setup your SDL project, and furthermore that you use the AM_PATH_SDL |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
30 |
macro provided by SDL in sdl.m4. If you are not using these tools, you can |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
31 |
still use SDL but it will be somewhat hard to get running. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
32 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
33 |
Only step 1) is really required to get started, but for full OS X support you |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
34 |
will want to do the other steps, too. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
35 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
36 |
1) Update your acinclude.m4 file in case you have copied an older version of |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
37 |
sdl.m4 into it. This is essential as AM_PATH_SDL now performs some additional |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
38 |
tasks when used on MacOS X |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
39 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
40 |
Rationale: AM_PATH_SDL copies /usr/local/share/sdl/Info.plist and the folder |
191
c151cfc43c07
Changed SDLMain to SDL_main for MacOS X stuff
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
41 |
/usr/local/share/sdl/SDL_main.nib/ into the directory where configure is invoked. |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
42 |
This is essential for the configure script to be able to run the test code |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
43 |
that detects SDL. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
44 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
45 |
2) Copy SDL's Info.plist.in file (from src/main/macosx) into your project's main |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
46 |
folder (the same spot that your configure.in sits), and edit it to suite your |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
47 |
needs. Then add it to your AC_OUTPUT list in configure.in |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
48 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
49 |
Rationale: The Info.plist file can be used to specify an icon file for |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
50 |
your app, and also to provide a human readable version/copyright string |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
51 |
and other meta-information to the user via the Finder's Get Info dialog. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
52 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
53 |
3) Add something like the following rule to your Makefile.am: |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
54 |
|
199
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
55 |
bundle_contents = APP_NAME.app/Contents |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
56 |
APP_NAME_bundle: EXE_NAME |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
57 |
mkdir -p $(bundle_contents)/MacOS |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
58 |
mkdir -p $(bundle_contents)/Resources |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
59 |
mkdir -p $(bundle_contents)/Resources/SDL_main.nib |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
60 |
echo "APPL????" > $(bundle_contents)/PkgInfo |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
61 |
$(INSTALL_DATA) Info.plist $(bundle_contents)/ |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
62 |
$(INSTALL_DATA) SDL_main.nib/*.nib $(bundle_contents)/Resources/SDLMain.nib |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
63 |
$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/ |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
64 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
65 |
You should replace EXE_NAME with the name of the executable. APP_NAME is what |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
66 |
will be visible to the user in the Finder. Usually it will be the same |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
67 |
as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME |
199
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
68 |
usually is "TestGame". You might also want to use @PACKAGE@ to use the package |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
69 |
name as specified in your configure.in file. |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
70 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
71 |
If your project builds more than one application, you will have to do a bit more. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
72 |
For each of your target applications, you need a seperate rule. Furthermore, each |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
73 |
needs its own Info.plist file, since that has to contain the exact name of the |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
74 |
executable (i.e. EXE_NAME above). One way to do that is to use sed in your make rules |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
75 |
and modify a single master Info.plist. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
76 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
77 |
Rationale: on Mac OS X, executables have to be put into so-called "bundles". |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
78 |
The make rule given above will construct such a bundle around the executable |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
79 |
for you. You need to make a copy of it for each target application. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
80 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
81 |
4) If you want the create bundles to be installed, you may want to add this |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
82 |
rule to your Makefile.am: |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
83 |
|
199
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
84 |
install-exec-hook: APP_NAME_bundle |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
85 |
rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
86 |
mkdir -p $(DESTDIR)$(prefix)/Applications/ |
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
87 |
cp -r $< /$(DESTDIR)$(prefix)Applications/ |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
88 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
89 |
This rule takes the Bundle created by the rule from step 3 and installs them |
199
2ad0957f6265
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
191
diff
changeset
|
90 |
into $(DESTDIR)$(prefix)/Applications/. |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
91 |
|
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
92 |
Again, if you want to install multiple applications, you will have to augment |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
93 |
the make rule accordingly. |
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
53
diff
changeset
|
94 |
|
0 | 95 |
|
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
96 |
============================================================================== |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
97 |
Using the Simple DirectMedia Layer with Project Builder |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
98 |
============================================================================== |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
99 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
100 |
These instructions are for using Apple's Project Builder IDE to build SDL applications. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
101 |
|
53
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
102 |
- First steps |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
103 |
|
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
104 |
The first thing to do is to unpack the PBProjects.tar.gz archive in the |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
105 |
top level SDL directory (where the PBProjects.tar.gz archive resides). |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
106 |
Because Stuffit Expander will unpack the archive into a subdirectory, |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
107 |
you should unpack the archive manually from the command line: |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
108 |
cd [path_to_SDL_source] |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
109 |
tar zxf PBProjects.tar.gz |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
110 |
This will create a new folder called PBProjects, which you can browse |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
111 |
normally from the Finder. |
25dfe480c75e
Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
112 |
|
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
113 |
- Building the Framework |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
114 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
115 |
The SDL Library is packaged as a framework bundle, an organized |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
116 |
relocatable folder heirarchy of executible code, interface headers, |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
117 |
and additional resources. For practical purposes, you can think of a |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
118 |
framework as a more user and system-friendly shared library, whose library |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
119 |
file behaves more or less like a standard UNIX shared library. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
120 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
121 |
To build the framework, simply open the framework project and build it. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
122 |
By default, the framework bundle "SDL.framework" is installed in |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
123 |
~/Library/Frameworks. Therefore, the testers and project stationary expect |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
124 |
it to be located there. However, it will function the same in any of the |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
125 |
following locations: |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
126 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
127 |
~/Library/Frameworks |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
128 |
/Local/Library/Frameworks |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
129 |
/System/Library/Frameworks |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
130 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
131 |
- Build Options |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
132 |
There are two "Build Styles" (See the "Targets" tab) for SDL. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
133 |
"Deployment" should be used if you aren't tweaking the SDL library. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
134 |
"Development" should be used to debug SDL apps or the library itself. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
135 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
136 |
- Building the Testers |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
137 |
Open the SDLTest project and build away! |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
138 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
139 |
- Using the Project Stationary |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
140 |
Copy the stationary to the indicated folders to access it from |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
141 |
the "New Project" and "Add target" menus. What could be easier? |
0 | 142 |
|
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
143 |
- Setting up a new project by hand |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
144 |
Some of you won't want to use the Stationary so I'll give some tips: |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
145 |
* Create a new "Cocoa Application" |
207
c03846dd489b
Added Darrell Walisser's updated project-builder projects
Sam Lantinga <slouken@libsdl.org>
parents:
199
diff
changeset
|
146 |
* Add src/main/macosx/SDLMain.m , .h and .nib to your project |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
147 |
* Remove "main.c" from your project |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
148 |
* Remove "MainMenu.nib" from your project |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
149 |
* Add "$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
150 |
* Add "$(HOME)/Library/Frameworks" to the frameworks search path |
207
c03846dd489b
Added Darrell Walisser's updated project-builder projects
Sam Lantinga <slouken@libsdl.org>
parents:
199
diff
changeset
|
151 |
* Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS" |
c03846dd489b
Added Darrell Walisser's updated project-builder projects
Sam Lantinga <slouken@libsdl.org>
parents:
199
diff
changeset
|
152 |
* Set the "Main Nib File" under "Application Settings" to "SDLMain.nib" |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
153 |
* Add your files |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
154 |
* Clean and build |
0 | 155 |
|
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
156 |
- Building from command line |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
157 |
Use pbxbuild in the same directory as your .pbproj file |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
158 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
159 |
- Running your app |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
160 |
You can send command line args to your app by either invoking it from |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
161 |
the command line (in *.app/Contents/MacOS) or by entering them in the |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
162 |
"Executibles" panel of the target settings. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
163 |
|
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
164 |
- Implementation Notes |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
165 |
Some things that may be of interest about how it all works... |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
166 |
* Working directory |
191
c151cfc43c07
Changed SDLMain to SDL_main for MacOS X stuff
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
167 |
As defined in the SDL_main.m file, the working directory of your SDL app |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
168 |
is by default set to its parent. You may wish to change this to better |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
169 |
suit your needs. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
170 |
* You have a Cocoa App! |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
171 |
Your SDL app is essentially a Cocoa application. When your app |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
172 |
starts up and the libraries finish loading, a Cocoa procedure is called, |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
173 |
which sets up the working directory and calls your main() method. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
174 |
You are free to modify your Cocoa app with generally no consequence |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
175 |
to SDL. You cannot, however, easily change the SDL window itself. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
176 |
Functionality may be added in the future to help this. |
207
c03846dd489b
Added Darrell Walisser's updated project-builder projects
Sam Lantinga <slouken@libsdl.org>
parents:
199
diff
changeset
|
177 |
|
c03846dd489b
Added Darrell Walisser's updated project-builder projects
Sam Lantinga <slouken@libsdl.org>
parents:
199
diff
changeset
|
178 |
|
0 | 179 |
Known bugs are listed in the file "BUGS" |