*** empty log message ***
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40222
This commit is contained in:
parent
c0d645637d
commit
e79ad74ac3
9 changed files with 163 additions and 120 deletions
|
@ -25,79 +25,52 @@ use the traditional autoconf/automake/make method, or use Apple's Project Builde
|
|||
Using the Simple DirectMedia Layer with a traditional Makefile
|
||||
==============================================================================
|
||||
|
||||
In the following, it will be mostly assumed that you are using autoconf and
|
||||
automake to setup your SDL project, and furthermore that you use the AM_PATH_SDL
|
||||
macro provided by SDL in sdl.m4. If you are not using these tools, you can
|
||||
still use SDL but it will be somewhat hard to get running.
|
||||
An existing autoconf/automake build system for your SDL app has good chances
|
||||
to work almost unchanged on OS X. However, to produce a "real" MacOS X binary
|
||||
that you can distribute to users, you need to put the generated binary into a
|
||||
so called "bundle", which basically is a fancy folder with a name like
|
||||
"MyCoolGame.app".
|
||||
|
||||
Only step 1) is really required to get started, but for full OS X support you
|
||||
will want to do the other steps, too.
|
||||
|
||||
1) Update your acinclude.m4 file in case you have copied an older version of
|
||||
sdl.m4 into it. This is essential as AM_PATH_SDL now performs some additional
|
||||
tasks when used on MacOS X
|
||||
|
||||
Rationale: AM_PATH_SDL copies /usr/local/share/sdl/Info.plist and the folder
|
||||
/usr/local/share/sdl/SDL_main.nib/ into the directory where configure is invoked.
|
||||
This is essential for the configure script to be able to run the test code
|
||||
that detects SDL.
|
||||
|
||||
2) Copy SDL's Info.plist.in file (from src/main/macosx) into your project's main
|
||||
folder (the same spot that your configure.in sits), and edit it to suite your
|
||||
needs. Then add it to your AC_OUTPUT list in configure.in
|
||||
|
||||
Rationale: The Info.plist file can be used to specify an icon file for
|
||||
your app, and also to provide a human readable version/copyright string
|
||||
and other meta-information to the user via the Finder's Get Info dialog.
|
||||
|
||||
3) Add something like the following rule to your Makefile.am:
|
||||
To get this build automatically, add something like the following rule to
|
||||
your Makefile.am:
|
||||
|
||||
bundle_contents = APP_NAME.app/Contents
|
||||
APP_NAME_bundle: EXE_NAME
|
||||
mkdir -p $(bundle_contents)/MacOS
|
||||
mkdir -p $(bundle_contents)/Resources
|
||||
mkdir -p $(bundle_contents)/Resources/SDL_main.nib
|
||||
echo "APPL????" > $(bundle_contents)/PkgInfo
|
||||
$(INSTALL_DATA) Info.plist $(bundle_contents)/
|
||||
$(INSTALL_DATA) SDL_main.nib/*.nib $(bundle_contents)/Resources/SDLMain.nib
|
||||
$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
|
||||
|
||||
You should replace EXE_NAME with the name of the executable. APP_NAME is what
|
||||
will be visible to the user in the Finder. Usually it will be the same
|
||||
as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME
|
||||
usually is "TestGame". You might also want to use @PACKAGE@ to use the package
|
||||
name as specified in your configure.in file.
|
||||
You should replace EXE_NAME with the name of the executable. APP_NAME is what
|
||||
will be visible to the user in the Finder. Usually it will be the same
|
||||
as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME
|
||||
usually is "TestGame". You might also want to use @PACKAGE@ to use the package
|
||||
name as specified in your configure.in file.
|
||||
|
||||
If your project builds more than one application, you will have to do a bit more.
|
||||
For each of your target applications, you need a seperate rule. Furthermore, each
|
||||
needs its own Info.plist file, since that has to contain the exact name of the
|
||||
executable (i.e. EXE_NAME above). One way to do that is to use sed in your make rules
|
||||
and modify a single master Info.plist.
|
||||
If your project builds more than one application, you will have to do a bit
|
||||
more. For each of your target applications, you need a seperate rule.
|
||||
|
||||
Rationale: on Mac OS X, executables have to be put into so-called "bundles".
|
||||
The make rule given above will construct such a bundle around the executable
|
||||
for you. You need to make a copy of it for each target application.
|
||||
|
||||
4) If you want the create bundles to be installed, you may want to add this
|
||||
rule to your Makefile.am:
|
||||
If you want the created bundles to be installed, you may want to add this
|
||||
rule to your Makefile.am:
|
||||
|
||||
install-exec-hook: APP_NAME_bundle
|
||||
rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
|
||||
mkdir -p $(DESTDIR)$(prefix)/Applications/
|
||||
cp -r $< /$(DESTDIR)$(prefix)Applications/
|
||||
|
||||
This rule takes the Bundle created by the rule from step 3 and installs them
|
||||
into $(DESTDIR)$(prefix)/Applications/.
|
||||
This rule takes the Bundle created by the rule from step 3 and installs them
|
||||
into $(DESTDIR)$(prefix)/Applications/.
|
||||
|
||||
Again, if you want to install multiple applications, you will have to augment
|
||||
the make rule accordingly.
|
||||
Again, if you want to install multiple applications, you will have to augment
|
||||
the make rule accordingly.
|
||||
|
||||
|
||||
==============================================================================
|
||||
Using the Simple DirectMedia Layer with Project Builder
|
||||
==============================================================================
|
||||
|
||||
These instructions are for using Apple's Project Builder IDE to build SDL applications.
|
||||
These instructions are for using Apple's Project Builder IDE to build SDL
|
||||
applications.
|
||||
|
||||
- First steps
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue