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