1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
The Simple DirectMedia Layer (SDL for short) is a cross-platform
library designed to make it easy to write multi-media software,
such as games and emulators.
The Simple DirectMedia Layer library source code is available from:
http://www.libsdl.org/
This library is distributed under the terms of the GNU LGPL license:
http://www.gnu.org/copyleft/lesser.html
This packages contains the SDL.framework for OS X.
Conforming with Apple guidelines, this framework
contains both the SDL runtime component and development header files.
To Install:
Copy the SDL.framework to /Library/Frameworks
You may alternatively install it in <Your home directory>/Library/Frameworks
if your access privileges are not high enough.
(Be aware that the Xcode templates we provide in the SDL Developer Extras
package may require some adjustment for your system if you do this.)
Known Issues:
???
Additional References:
- Screencast tutorials for getting started with OpenSceneGraph/Mac OS X are
available at:
http://www.openscenegraph.org/projects/osg/wiki/Support/Tutorials/MacOSXTips
Though these are OpenSceneGraph centric, the same exact concepts apply to
SDL, thus the videos are recommended for everybody getting started with
developing on Mac OS X. (You can skim over the PlugIns stuff since SDL
doesn't have any PlugIns to worry about.)
(Partial) History of PB/Xcode projects:
2009-09-21 - Added 64-bit for Snow Leopard. 10.4 is the new minimum requirement.
Removed 'no X11' targets as
new codebase will assume you have them. Also removed specific #defines
for X11, but needed to add search path to /usr/X11R6/include
2007-12-31 - Enabled strip -x in the Xcode settings and removed it
from the Build DMG script.
Added a per-arch setting for the Deployment targets for OTHER_LDFLAGS_ppc
to re-enable prebinding.
Need to remember to copy these changes to the SDL satellite projects.
2007-12-30 - Updated documentation to reflect new installation paths for
Xcode project templates under Leopard (Xcode 2.5/3.0).
????-??-?? - Added extra targets for building formal releases against the
10.2 SDK so we don't have to keep modifying the settings.
????-??-?? - Added fancy DMG (background logo) support with automation.
2006-05-09 - Added shell script phase to deal with new SDL_config.h
behavior. Encountered what seems to be an Xcode bug with
multiple files of the same name, even when conditional compiling
is controlled by custom #defines (SDL_sysloadso.c). Multiple or
undefined symbols are the result of this.
Recommended that macosx/SDL_sysloadso.c be modified to directly
include the dlopen version of the file via #ifdef's so only
one version needs to exist. Filed a formal bug report with Apple
about this (4542369).
2006-03-22 - gcc 4 visibility features have been added to the code base so I
enabled the switch in Xcode to take advantage of it. Be aware that only
our x86 builds will be exposed to this feature as we still build ppc
with gcc 3.3.
Christian Walther has sent me some great feedback on things that are
broken, so I have made some of these fixes. Among the issues are
compatibility and current library versions are not set to 1 (breaks
backwards compatibility), documentation errors, resource copying
location problems for the SDLTest apps, missing HAVE_OPENGL and
OpenGL.framework linking in testgl.
(Eric Wing)
2006-03-17 - Because the X11 headers are not installed by default with Xcode,
we decided to offer two variants of the same targets (one with X11 stuff
and one without). By default, since the X11 stuff does not necessarily
conflict with the native stuff, we build the libraries with the X11 stuff
so advanced developers can access it by default. However, in the case
that a developer did not install X11 (or just doesn't want the extra bloat),
the user may directly select those targets and build those instead.
Once again, we are attempting to remove the exported symbols file. If
I recall correctly, the clashing symbol problems we got were related
to the CD-ROM code which was formerly in C++. Now that the C++ code
has been purged, we are speculating that we might be able to remove
the exports file safely. The long term solution is to utilize gcc 4's
visibility features.
For the developer extras package, I changed the package format
from a .pkg based installer to a .dmg to avoid requiring
administrator/root to access contents, for better
transparency, and to allow users to more easily control which components
they actually want to install.
I also made changes and updates to the PB/Xcode project templates (see Developer ReadMe).
(Eric Wing)
2006-03-07 - The entire code base has been reorganized and platform specific
defines have been pushed into header files (SDL_config_*.h). This means
that defines that previously had to be defined in the Xcode projects can
be removed (which I have started doing). Furthermore, it appears that the
MMX/SSE code has been rewritten and refactored so it now compiles without
nasm and without making us do strange things to support OS X. However, this
Xcode project still employs architecture specific build options in order to
achieve the mandated 10.2 compatibility. As a result of the code base changes,
there are new public headers. But also as a result of these changes, there are
also new headers that qualify as "PrivateHeaders". Private Headers are headers
that must be exported because a public header includes them, but users shouldn't
directly invoke these. SDL_config_macosx.h and SDL_config_dreamcast.h are
examples of this. We have considered marking these headers as Private, but it
requires that the public headers invoke them via framework conventions, i.e.
#include <FrameworkName/Header.h>
e.g.
#include <SDL/SDL_config_macosx.h>
and not
#include "SDL_config_macosx.h"
However this imposes the restriction that non-framework distributions must
place their headers in a directory called SDL/ (and not SDL11/ like FreeBSD).
Currently, I do not believe this would pose a problem for any of the current
distributions (Fink, DarwinPorts). Or alternatively, users could be
expected/forced to also include the header path:
-I/Library/Frameworks/SDL.framework/PrivateHeaders,
but most people would probably not read the documentation on this.
But currently, we have decided to be conservative and have opted not to
use the PrivateHeaders feature.
(Eric Wing)
2006-01-31 - Updates to build Universal Binaries while retaining 10.2 compatibility.
We were unable to get MMX/SSE support enabled. It is believed that a rewrite of
the assembly code will be necessary to make it position independent and not
require nasm. Altivec has finally been enabled for PPC. (Eric Wing)
2005-09-?? - Had to add back the exports file because it was causing build problems
for some cases. (Eric Wing)
2005-08-21 - First entry in history. Updated for SDL 1.2.9 and Xcode 2.1. Getting
ready for Universal Binaries. Removed the .pkg system for .dmg for due to problems
with broken packages in the past several SDL point releases. Removed usage of SDL
exports file because it has become another point of failure. Introduced new documentation
about SDLMain and how to compile in an devel-lite section of the SDL.dmg. (Eric Wing)
Before history:
SDL 1.2.6? to 1.2.8
Started updating Project Builder projects to Xcode for Panther and Tiger. Also removed
the system that split the single framework into separate runtime and headers frameworks.
This is against Apple conventions and causes problems on multiuser systems.
We now distribute a single framework.
The .pkg system has repeatedly been broken with every new release of OS X.
With 1.2.8, started migrating stuff to .dmg based system to simplify distribution process.
Tried updating the exports file and Perl script generation system for changing syntax. (Eric Wing)
Pre-SDL 1.2.6
Created Project Builder projects for SDL and .pkg based distribution system. (Darrell Walisser)
|