README.MacOSX
changeset 199 2ad0957f6265
parent 191 c151cfc43c07
child 207 c03846dd489b
equal deleted inserted replaced
198:49bf25403f5e 199:2ad0957f6265
    15 	./configure
    15 	./configure
    16 	make
    16 	make
    17 	make install
    17 	make install
    18 
    18 
    19 (You may need to create the subdirs of /usr/local manually.)
    19 (You may need to create the subdirs of /usr/local manually.)
    20 
       
    21 /*
       
    22 To use the library once it's built, you need to use the "Carbon
       
    23 framework", which is the port of the old Mac Toolbox to OS X.
       
    24 To do this, use the -F and -framework arguments for compiling
       
    25 and linking, respectively:
       
    26 
       
    27 	cc -c myprog.c -I/usr/local/include/SDL -F/System/Library/Frameworks/Carbon.framework
       
    28 	cc myprog.o -L/usr/local/lib -lSDL -framework Carbon
       
    29 
       
    30 sdl-config knows about the linking path and -framework, so it's
       
    31 recommended to use it to fill in your Makefile variables.
       
    32 */
       
    33 
    20 
    34 To use the library once it's built, you essential have two possibilities:
    21 To use the library once it's built, you essential have two possibilities:
    35 use the traditional autoconf/automake/make method, or use Apple's Project Builder.
    22 use the traditional autoconf/automake/make method, or use Apple's Project Builder.
    36 
    23 
    37 ==============================================================================
    24 ==============================================================================
    63    your app, and also to provide a human readable version/copyright string
    50    your app, and also to provide a human readable version/copyright string
    64    and other meta-information to the user via the Finder's Get Info dialog.
    51    and other meta-information to the user via the Finder's Get Info dialog.
    65 
    52 
    66 3) Add something like the following rule to your Makefile.am:
    53 3) Add something like the following rule to your Makefile.am:
    67 
    54 
    68 APP_NAME.app: EXE_NAME
    55 bundle_contents = APP_NAME.app/Contents
    69 	mkdir -p $@/Contents/MacOS
    56 APP_NAME_bundle: EXE_NAME
    70 	mkdir -p $@/Contents/Resources
    57 	mkdir -p $(bundle_contents)/MacOS
    71 	mkdir -p $@/Contents/Resources/SDL_main.nib
    58 	mkdir -p $(bundle_contents)/Resources
    72 	echo "APPL????" > $@/Contents/PkgInfo
    59 	mkdir -p $(bundle_contents)/Resources/SDL_main.nib
    73 	$(INSTALL_DATA) Info.plist $@/Contents/
    60 	echo "APPL????" > $(bundle_contents)/PkgInfo
    74 	$(INSTALL_DATA) SDL_main.nib/*.nib $@/Contents/Resources/
    61 	$(INSTALL_DATA) Info.plist $(bundle_contents)/
    75 	$(INSTALL_PROGRAM) $< $@/Contents/MacOS/
    62 	$(INSTALL_DATA) SDL_main.nib/*.nib $(bundle_contents)/Resources/SDLMain.nib
       
    63 	$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
    76 
    64 
    77    You should replace EXE_NAME with the name of the executable. APP_NAME is what
    65    You should replace EXE_NAME with the name of the executable. APP_NAME is what
    78    will be visible to the user in the Finder. Usually it will be the same
    66    will be visible to the user in the Finder. Usually it will be the same
    79    as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME 
    67    as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME 
    80    usually is "TestGame"
    68    usually is "TestGame". You might also want to use @PACKAGE@ to use the package
       
    69    name as specified in your configure.in file.
    81 
    70 
    82    If your project builds more than one application, you will have to do a bit more.
    71    If your project builds more than one application, you will have to do a bit more.
    83    For each of your target applications, you need a seperate rule. Furthermore, each
    72    For each of your target applications, you need a seperate rule. Furthermore, each
    84    needs its own Info.plist file, since that has to contain the exact name of the 
    73    needs its own Info.plist file, since that has to contain the exact name of the 
    85    executable (i.e. EXE_NAME above). One way to do that is to use sed in your make rules
    74    executable (i.e. EXE_NAME above). One way to do that is to use sed in your make rules
    90    for you. You need to make a copy of it for each target application.
    79    for you. You need to make a copy of it for each target application.
    91 
    80 
    92 4) If you want the create bundles to be installed, you may want to add this
    81 4) If you want the create bundles to be installed, you may want to add this
    93    rule to your Makefile.am:
    82    rule to your Makefile.am:
    94 
    83 
    95 install-exec-local: Exult.app
    84 install-exec-hook: APP_NAME_bundle
    96 	mkdir -p /Applications/
    85 	rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
    97 	cp -r $< /Applications/
    86 	mkdir -p $(DESTDIR)$(prefix)/Applications/
       
    87 	cp -r $< /$(DESTDIR)$(prefix)Applications/
    98 
    88 
    99    This rule takes the Bundle created by the rule from step 3 and installs them
    89    This rule takes the Bundle created by the rule from step 3 and installs them
   100    into /Applications/. An alternate installation place would be $HOME/Applications/
    90    into $(DESTDIR)$(prefix)/Applications/.
   101 
    91 
   102    Again, if you want to install multiple applications, you will have to augment
    92    Again, if you want to install multiple applications, you will have to augment
   103    the make rule accordingly.
    93    the make rule accordingly.
   104 
    94 
   105 
    95