--- a/README.MacOSX Thu Nov 01 16:45:40 2001 +0000
+++ b/README.MacOSX Fri Nov 02 18:12:52 2001 +0000
@@ -25,79 +25,52 @@
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.
-
-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
+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".
- 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