annotate README.MacOSX @ 4426:1bceff8f008f

Fixed bug #943 Ozkan Sezer 2010-02-06 12:31:06 PST Hi: Here are some small fixes for compiling SDL against mingw-w64. (see http://mingw-w64.sourceforge.net/ . Despite the name, it supports both win32 and win64.) src/audio/windx5/directx.h and src/video/windx5/directx.h (both SDL-1.2 and SDL-1.3.) I get compilation errors about some union not having a member named u1 and alike, because of other system headers being included before this one and them already defining DUMMYUNIONNAME and stuff. This header probably assumes that those stuff are defined in windef.h, but mingw-w64 headers define them in _mingw.h. Easily fixed by moving NONAMELESSUNION definition to the top of the file. src/thread/win32/SDL_systhread.c (both SDL-1.2 and SDL-1.3.) : The __GNUC__ case for pfnSDL_CurrentBeginThread is 32-bit centric because _beginthreadex returns uintptr_t, not unsigned long which is 32 bits in win64. Changing the return type to uintptr_t fixes it. video/SDL_blit.h (and configure.in) (SDL-1.3-only) : MinGW-w64 uses msvcrt version of _aligned_malloc and _aligned_free and they are defined in intrin.h (similar to VC). Adding proper ifdefs fixes it. (Notes about macros to check: __MINGW32__ is defined for both mingw.org and for mingw-w64 for both win32 and win64, __MINGW64__ is only defined for _WIN64, so __MINGW64__ can't be used to detect mingw-w64: including _mingw.h and then checking for __MINGW64_VERSION_MAJOR does the trick.) SDL_win32video.h (SDL-1.3-only) : Tweaked the VINWER definition and location in order to avoid multiple redefinition warnings. Hope these are useful. Thanks.
author Sam Lantinga <slouken@libsdl.org>
date Wed, 10 Mar 2010 15:02:58 +0000
parents 78da406ad139
children
rev   line source
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
1 ==============================================================================
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
2 Using the Simple DirectMedia Layer with Mac OS X
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
3 ==============================================================================
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
4
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
5 These instructions are for people using Apple's Mac OS X (pronounced
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
6 "ten").
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
7
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
8 From the developer's point of view, OS X is a sort of hybrid Mac and
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
9 Unix system, and you have the option of using either traditional
1006
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
10 command line tools or Apple's IDE Xcode.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
11
869
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
12 To build SDL using the command line, use the standard configure and make
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
13 process:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
14
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
15 ./configure
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
16 make
869
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
17 sudo make install
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
18
1649
9705d5d69691 Added info about fatbuild.sh
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
19 You can also build SDL as a Universal library (a single binary for both
9705d5d69691 Added info about fatbuild.sh
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
20 PowerPC and Intel architectures), on Mac OS X 10.4 and newer, by using
9705d5d69691 Added info about fatbuild.sh
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
21 the fatbuild.sh script in build-scripts:
9705d5d69691 Added info about fatbuild.sh
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
22 sh build-scripts/fatbuild.sh
9705d5d69691 Added info about fatbuild.sh
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
23 sudo build-scripts/fatbuild.sh install
1839
78da406ad139 Added information about gcc-fat.sh to README.MacOSX
Sam Lantinga <slouken@libsdl.org>
parents: 1650
diff changeset
24 This script builds SDL with 10.2 ABI compatibility on PowerPC and 10.4
78da406ad139 Added information about gcc-fat.sh to README.MacOSX
Sam Lantinga <slouken@libsdl.org>
parents: 1650
diff changeset
25 ABI compatibility on Intel architectures. For best compatibility you
78da406ad139 Added information about gcc-fat.sh to README.MacOSX
Sam Lantinga <slouken@libsdl.org>
parents: 1650
diff changeset
26 should compile your application the same way. A script which wraps
78da406ad139 Added information about gcc-fat.sh to README.MacOSX
Sam Lantinga <slouken@libsdl.org>
parents: 1650
diff changeset
27 gcc to make this easy is provided in test/gcc-fat.sh
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
28
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
29 To use the library once it's built, you essential have two possibilities:
1650
ee4f2d77206f Whoops, you can't use Project Builder anymore...
Sam Lantinga <slouken@libsdl.org>
parents: 1649
diff changeset
30 use the traditional autoconf/automake/make method, or use Xcode.
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
31
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 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
34 ==============================================================================
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
35
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
36 An existing autoconf/automake build system for your SDL app has good chances
1621
f12379c41042 Fixes bug #195:
Sam Lantinga <slouken@libsdl.org>
parents: 1006
diff changeset
37 to work almost unchanged on OS X. However, to produce a "real" Mac OS X binary
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
38 that you can distribute to users, you need to put the generated binary into a
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
39 so called "bundle", which basically is a fancy folder with a name like
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
40 "MyCoolGame.app".
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
41
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
42 To get this build automatically, add something like the following rule to
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
43 your Makefile.am:
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
44
199
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
45 bundle_contents = APP_NAME.app/Contents
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
46 APP_NAME_bundle: EXE_NAME
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
47 mkdir -p $(bundle_contents)/MacOS
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
48 mkdir -p $(bundle_contents)/Resources
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
49 echo "APPL????" > $(bundle_contents)/PkgInfo
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
50 $(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
51
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
52 You should replace EXE_NAME with the name of the executable. APP_NAME is what
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
53 will be visible to the user in the Finder. Usually it will be the same
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
54 as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
55 usually is "TestGame". You might also want to use @PACKAGE@ to use the package
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
56 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
57
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
58 If your project builds more than one application, you will have to do a bit
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
59 more. For each of your target applications, you need a seperate rule.
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
60
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
61 If you want the created bundles to be installed, you may want to add this
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
62 rule to your Makefile.am:
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
63
199
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
64 install-exec-hook: APP_NAME_bundle
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
65 rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
66 mkdir -p $(DESTDIR)$(prefix)/Applications/
2ad0957f6265 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 191
diff changeset
67 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
68
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
69 This rule takes the Bundle created by the rule from step 3 and installs them
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
70 into $(DESTDIR)$(prefix)/Applications/.
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
71
221
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
72 Again, if you want to install multiple applications, you will have to augment
50620ec9c86a *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 207
diff changeset
73 the make rule accordingly.
172
37e3ca9254c7 Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 53
diff changeset
74
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
75
869
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
76 But beware! That is only part of the story! With the above, you end up with
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
77 a bare bone .app bundle, which is double clickable from the Finder. But
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
78 there are some more things you should do before shipping yor product...
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
79
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
80 1) The bundle right now probably is dynamically linked against SDL. That
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
81 means that when you copy it to another computer, *it will not run*,
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
82 unless you also install SDL on that other computer. A good solution
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
83 for this dilemma is to static link against SDL. On OS X, you can
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
84 achieve that by linkinag against the libraries listed by
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
85 sdl-config --static-libs
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
86 instead of those listed by
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
87 sdl-config --libs
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
88 Depending on how exactly SDL is integrated into your build systems, the
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
89 way to achieve that varies, so I won't describe it here in detail
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
90 2) Add an 'Info.plist' to your application. That is a special XML file which
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
91 contains some meta-information about your application (like some copyright
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
92 information, the version of your app, the name of an optional icon file,
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
93 and other things). Part of that information is displayed by the Finder
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
94 when you click on the .app, or if you look at the "Get Info" window.
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
95 More information about Info.plist files can be found on Apple's homepage.
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
96
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
97
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
98 As a final remark, let me add that I use some of the techniques (and some
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
99 variations of them) in Exult and ScummVM; both are available in source on
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
100 the net, so feel free to take a peek at them for inspiration!
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
101
ae4ab3ac89a9 Instructive comments from Max Horn
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
102
47
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
103 ==============================================================================
1006
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
104 Using the Simple DirectMedia Layer with Xcode
47
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
105 ==============================================================================
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
106
1006
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
107 These instructions are for using Apple's Xcode IDE to build SDL applications.
47
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
108
53
25dfe480c75e Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents: 47
diff changeset
109 - First steps
25dfe480c75e Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents: 47
diff changeset
110
1006
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
111 The first thing to do is to unpack the Xcode.tar.gz archive in the
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
112 top level SDL directory (where the Xcode.tar.gz archive resides).
53
25dfe480c75e Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents: 47
diff changeset
113 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
114 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
115 cd [path_to_SDL_source]
1006
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
116 tar zxf Xcode.tar.gz
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
117 This will create a new folder called Xcode, which you can browse
53
25dfe480c75e Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents: 47
diff changeset
118 normally from the Finder.
25dfe480c75e Added MacOS X Project Builder projects
Sam Lantinga <slouken@lokigames.com>
parents: 47
diff changeset
119
47
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
120 - Building the Framework
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
121
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
122 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
123 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
124 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
125 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
126 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
127
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
128 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
129 By default, the framework bundle "SDL.framework" is installed in
1006
3d9a199d2a70 Updated SDL for MacOS X Xcode support
Sam Lantinga <slouken@libsdl.org>
parents: 869
diff changeset
130 /Library/Frameworks. Therefore, the testers and project stationary expect
47
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
131 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
132 following locations:
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
133
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
134 ~/Library/Frameworks
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
135 /Local/Library/Frameworks
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
136 /System/Library/Frameworks
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
137
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
138 - Build Options
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
139 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
140 "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
141 "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
142
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
143 - Building the Testers
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
144 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
145
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
146 - Using the Project Stationary
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
147 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
148 the "New Project" and "Add target" menus. What could be easier?
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
149
47
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
150 - 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
151 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
152 * Create a new "Cocoa Application"
207
c03846dd489b Added Darrell Walisser's updated project-builder projects
Sam Lantinga <slouken@libsdl.org>
parents: 199
diff changeset
153 * 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
154 * Remove "main.c" from your project
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
155 * Remove "MainMenu.nib" from your project
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
156 * 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
157 * 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
158 * 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
159 * 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
160 * Add your files
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
161 * Clean and build
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
162
47
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
163 - Building from command line
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
164 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
165
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
166 - Running your app
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
167 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
168 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
169 "Executibles" panel of the target settings.
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
170
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
171 - Implementation Notes
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
172 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
173 * Working directory
191
c151cfc43c07 Changed SDLMain to SDL_main for MacOS X stuff
Sam Lantinga <slouken@libsdl.org>
parents: 172
diff changeset
174 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
175 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
176 suit your needs.
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
177 * You have a Cocoa App!
45b1c4303f87 Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
178 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
179 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
180 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
181 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
182 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
183 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
184
c03846dd489b Added Darrell Walisser's updated project-builder projects
Sam Lantinga <slouken@libsdl.org>
parents: 199
diff changeset
185
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
186 Known bugs are listed in the file "BUGS"