3aa29aef07
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@2158 178a84e3-b1eb-0310-8ba1-8eac791a3b58
531 lines
10 KiB
Plaintext
531 lines
10 KiB
Plaintext
(*) The latest information about compilation on Mac are on our wiki:
|
|
http://supertuxkart.sourceforge.net/Building_and_packaging_on_OSX
|
|
(*) There is an experimental Xcode project in /src/ide/Xcode/. It will still require that all dependencies are installed as explained on the wiki. It currently does not build bullet, so you'll need to build from terminal at least once to get bullet built.
|
|
|
|
The older instructions should still work, and are quite detailed.
|
|
Note that we supply a modified version of plib (on our download page
|
|
at http://sourceforge.net/project/showfiles.php?group_id=202302)
|
|
which fixes a few compilation problems on Macs. We strongly recommend
|
|
to use this version (unless a newer plib version is released).
|
|
|
|
System requirements Mac:
|
|
PowerPC- or Intel-Mac with 800 MHz or more,
|
|
1 GHz recommended 3D-graphics card with 32 MB or more.
|
|
100 MB free disk space. Supporting Mac OS X 10.3.9 or later.
|
|
|
|
Compiling SuperTuxKart on OS X 10.4.x
|
|
|
|
01. Install all updates for OS X.
|
|
|
|
02. Download xcode 2.4.1_8m1910_6936315 from http://developer.apple.com/macosx/
|
|
|
|
You must be an Apple Developer Connection member to download this package.
|
|
|
|
03. Installing XCode.
|
|
|
|
04. Edit "/etc/profile":
|
|
|
|
--------------------------------------------------------------------------------------------------------
|
|
|
|
# System-wide .profile for sh(1)
|
|
|
|
PATH="/sw/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin"
|
|
|
|
export PATH
|
|
|
|
PKG_CONFIG_PATH="/sw/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11R6/lib/pkgconfig:/usr/local/lib/pkgconfig"
|
|
|
|
export PKG_CONFIG_PATH
|
|
|
|
if [ "${BASH-no}" != "no" ]; then [ -r /etc/bashrc ] && . /etc/bashrc fi
|
|
|
|
--------------------------------------------------------------------------------------------------------
|
|
|
|
05. Download Fink from http://www.finkproject.org/download/index.php?phpLang=en
|
|
|
|
06. Installing Fink.
|
|
|
|
07. Copy the FinkCommander folder to Applications and launch FinkCommander.
|
|
|
|
08. Run selfupdate.
|
|
|
|
09. Run update-all.
|
|
|
|
10. Run the index command.
|
|
|
|
11. Installing the following 'fink' packages:
|
|
|
|
|
|
11.01 SDL
|
|
|
|
11.02 audiofile
|
|
|
|
11.03 esound
|
|
|
|
11.04 svn
|
|
|
|
11.05 svn-client
|
|
|
|
|
|
12. Download the SDL framework from http://www.libsdl.org/download-1.2.php and copy it to /Library/Frameworks.
|
|
|
|
13. Installing Vorbis.framework and Ogg.framework:
|
|
|
|
13.01 Download SuperTux from http://developer.berlios.de/project/showfiles.php?group_id=3467&release_id=11879
|
|
|
|
13.02 Right-click the SuperTux icon and select Show Package Contents from the context menu.
|
|
|
|
13.03 Change in the folder Contents:Frameworks. And copy Vorbis.framework and Ogg.framework to <hd>:Library:Frameworks.
|
|
|
|
|
|
14. Installing plib: ////////////////////////////////////////
|
|
|
|
|
|
14.01 Download PLIB from http://plib.sourceforge.net/download.html
|
|
|
|
|
|
14.02 Unpack plib-1.8.4.tar.gz.
|
|
|
|
|
|
14.03 Change in the folder PLIB.
|
|
|
|
|
|
14.04 Download "pwMacOSX.cxx"-patch from ftp://ftp.berlios.de/pub/supertuxkart/plib_patch_for_osx.zip
|
|
|
|
|
|
14.05 Installing pwMacOSX.cxx-patch.
|
|
|
|
|
|
14.06 Run ./configure --prefix=<..... Universal/plib_ppc>" in the folder PLIB.
|
|
|
|
|
|
e.g.: /Users/christian/Desktop/Universal/plib_ppc.
|
|
|
|
|
|
14.07 Modify the plib:
|
|
|
|
|
|
jsMacOSX.cxx:
|
|
|
|
|
|
#include <IOKit/IOkitLib.h>
|
|
|
|
|
|
replace with:
|
|
|
|
|
|
#include <IOKit/IOKitLib.h>
|
|
|
|
|
|
14.08 jsMacOSX.cxx:
|
|
|
|
|
|
static void os_specific_s::elementEnumerator( const void *element, void* vjs)
|
|
|
|
|
|
replace with:
|
|
|
|
|
|
void os_specific_s::elementEnumerator( const void *element, void* vjs)
|
|
|
|
|
|
14.09 make
|
|
|
|
14.10 make install
|
|
|
|
14.11 make clean
|
|
|
|
|
|
14.12 Run "./configure --prefix=<..... Universal/plib_x86>" in the folder PLIB.
|
|
|
|
e.g.: /Users/christian/Desktop/Universal/plib_x86.
|
|
|
|
14.13 Edit the following Makefiles:
|
|
|
|
<PLIB-Ordner>/Makefile
|
|
|
|
<PLIB-Ordner>/src/Makefile
|
|
|
|
<PLIB-Ordner>/src/fnt/Makefile
|
|
|
|
<PLIB-Ordner>/src/js/Makefile
|
|
|
|
<PLIB-Ordner>/src/net/Makefile
|
|
|
|
<PLIB-Ordner>/src/psl/Makefile
|
|
|
|
<PLIB-Ordner>/src/puAux/Makefile
|
|
|
|
<PLIB-Ordner>/src/pui/Makefile
|
|
|
|
<PLIB-Ordner>/src/pw/Makefile
|
|
|
|
<PLIB-Ordner>/src/sg/Makefile
|
|
|
|
<PLIB-Ordner>/src/sl/Makefile
|
|
|
|
<PLIB-Ordner>/src/ssg/Makefile
|
|
|
|
<PLIB-Ordner>/src/ssgAux/Makefile
|
|
|
|
<PLIB-Ordner>/src/util/Makefile
|
|
|
|
replace the line: "CXXFLAGS =" with "CXXFLAGS = -g -O2 -Wall -arch i386"
|
|
|
|
14.14 make install
|
|
|
|
14.15 Create a universal (multi-architecture) plib:
|
|
|
|
lipo -create /Users/christian/Desktop/Universal/plib_ppc/lib/libplibfnt.a /Users/christian/Desktop/Universal/
|
|
|
|
plib_x86/lib/libplibfnt.a -output /usr/lib/libplibfnt.a
|
|
|
|
Repeat this step for all libraries.
|
|
|
|
15. Installing Freealut-1.1.0 from OpenAL.org ////////////////////
|
|
|
|
15.01 Makefile.in:
|
|
|
|
Replace the line:
|
|
|
|
SUBDIRS = admin src include examples test_suite
|
|
|
|
with
|
|
|
|
SUBDIRS = admin src include
|
|
|
|
|
|
15.02 configure:
|
|
|
|
Replace the line
|
|
|
|
for ac_header in AL/alc.h AL/al.h basetsd.h ctype.h math.h stdio.h time.h
|
|
|
|
with
|
|
|
|
for ac_header in OpenAL/alc.h OpenAL/al.h basetsd.h ctype.h math.h stdio.h time.h
|
|
|
|
|
|
15.03 export CXXFLAGS="-framework OpenAL"
|
|
|
|
|
|
15.04 export LDFLAGS="-framework OpenAL"
|
|
|
|
|
|
15.05 ./configure --prefix=/usr
|
|
|
|
|
|
15.06 make
|
|
|
|
|
|
15.07 Open admin/pkgconfig/freealut.pc
|
|
|
|
Replace the line
|
|
|
|
Requires: openal
|
|
|
|
with
|
|
|
|
Requires:
|
|
|
|
|
|
15.08 Replace the line:
|
|
|
|
Libs: -L${libdir} -lalut Cflags: -I${includedir}
|
|
|
|
with
|
|
|
|
Libs: -framework OpenAL -L${libdir} -lalut Cflags: -framework OpenAL -I${includedir}
|
|
|
|
|
|
15.09 sudo make install
|
|
|
|
|
|
16. Copy the plib files to "/usr/local":
|
|
|
|
16.01 sudo cp /usr/lib/libplib* /usr/local/lib/
|
|
|
|
16.02 sudo cp -R /usr/include/plib /usr/local/include/
|
|
|
|
|
|
Installing SuperTuxKart //////////
|
|
|
|
|
|
1. Copy the following code and paste it in the new file "buildUB.sh".
|
|
|
|
|
|
buildUB.sh:
|
|
|
|
---------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
#!/bin/bash
|
|
|
|
if [ -r ./configure ]; then
|
|
|
|
echo "Configure found!"
|
|
|
|
else
|
|
|
|
echo "No Config file found! Runing autogen.sh..."
|
|
|
|
sh autogen.sh
|
|
|
|
fi
|
|
|
|
|
|
if [ -r ./config.guess ]; then
|
|
|
|
echo "config.guess found!"
|
|
|
|
else
|
|
|
|
echo "config.guess not present! Copying it..."
|
|
|
|
cp /usr/share/libtool/config.guess ./config.guess
|
|
|
|
fi
|
|
|
|
|
|
if [ -r ./config.sub ]; then
|
|
|
|
echo "config.sub found!"
|
|
|
|
else
|
|
|
|
echo "config.sub not present! Copying it..."
|
|
|
|
cp /usr/share/libtool/config.sub ./config.sub
|
|
|
|
fi
|
|
|
|
|
|
if [ -r ./Makefile ]; then
|
|
|
|
echo "Makefile found!"
|
|
|
|
else
|
|
|
|
echo "Makefile missing! Running ./configure..."
|
|
|
|
./configure
|
|
|
|
if [ -r ./Makefile ]; then
|
|
|
|
echo "Makefile present, ready to compile!"
|
|
|
|
else
|
|
|
|
echo "Configure not completed, Makefile still missing! Exiting..."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
echo "Setting environment variables..."
|
|
|
|
export sdl_LIBS=""
|
|
|
|
export LDFLAGS="-framework OpenAL -Wl,-framework,Cocoa -framework SDL -framework Cocoa -lSDLmain
|
|
|
|
-framework Vorbis -framework Ogg -L/usr/local/lib -L/opt/local/lib -L/sw/lib"
|
|
|
|
export openal_LIBS="/usr/local/lib/libmikmod.a"
|
|
|
|
|
|
if [ -r ./bin/supertuxkartPPC ]; then
|
|
|
|
echo "supertuxkartPPC is present, nothing to do."
|
|
|
|
else
|
|
|
|
echo "Cleaning up..."
|
|
|
|
make clean -s
|
|
|
|
|
|
echo "Building PPC Binary..."
|
|
|
|
make -e -s
|
|
|
|
|
|
echo "Copying PPC Binary..."
|
|
|
|
mkdir ./bin
|
|
|
|
if [ -r ./src/supertuxkart ]; then
|
|
|
|
cp ./src/supertuxkart ./bin/supertuxkartPPC
|
|
|
|
else
|
|
|
|
echo "Error!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
if [ -r ./bin/supertuxkartx86 ]; then
|
|
|
|
echo "supertuxkartx86 is present, nothing to do."
|
|
|
|
else
|
|
|
|
echo "Cleaning up..."
|
|
|
|
make clean -s
|
|
|
|
|
|
echo "Building x86 Binary..."
|
|
|
|
export CXXFLAGS="-g -O2 -Wall -arch i386 `sdl-config --cflags`"
|
|
|
|
export LDFLAGS=$LDFLAGS" -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -L/usr/local/lib -L/opt/local/lib -L/sw/lib"
|
|
|
|
make -e -s
|
|
|
|
|
|
echo "Copying x86 Binary..."
|
|
|
|
if [ -r ./src/supertuxkart ]; then
|
|
|
|
cp ./src/supertuxkart ./bin/supertuxkartx86
|
|
|
|
else
|
|
|
|
echo "Error!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
echo "Creating Universal Binary..."
|
|
|
|
lipo -create ./bin/supertuxkartPPC ./bin/supertuxkartx86 -output ./bin/supertuxkart
|
|
|
|
|
|
echo "Done!"
|
|
|
|
|
|
-------------------------------------------------------------------------------------------------------------
|
|
|
|
2. Set the permissions for the script "buildUB.sh"
|
|
|
|
e.g.: chmod 744 buildUB.sh
|
|
|
|
|
|
3. Download SuperTuxKart-Source from "http://sourceforge.net/project/showfiles.php?group_id=202302".
|
|
|
|
|
|
4. Go in the folder SuperTuxKart.
|
|
|
|
|
|
5. Copy the script "buildUB.sh" in the directory "SuperTuxKart".
|
|
|
|
|
|
6. ./buildUB.sh
|
|
|
|
|
|
7. Check-up:
|
|
|
|
|
|
7.01 Go in the folder "bin".
|
|
|
|
|
|
7.02 ./supertuxkart --version
|
|
|
|
Print version information
|
|
|
|
e.g.:
|
|
-------------------------------------------------------------------------
|
|
SuperTuxKart, 0.3alpha.
|
|
|
|
SuperTuxKart, SVN revision number '975M'.
|
|
-------------------------------------------------------------------------
|
|
|
|
|
|
7.03 Is this a universal binary?
|
|
|
|
file supertuxkart
|
|
|
|
|
|
e.g.:
|
|
-------------------------------------------------------------------------
|
|
supertuxkart: Mach-O fat file with 2 architectures
|
|
|
|
supertuxkart (for architecture ppc): Mach-O executable ppc
|
|
|
|
supertuxkart (for architecture i386): Mach-O executable i386
|
|
-------------------------------------------------------------------------
|
|
|
|
|
|
7.04 otool -L supertuxkart
|
|
|
|
Print shared library dependencies.
|
|
|
|
e.g.:
|
|
------------------------------------------------------------------------------------------------
|
|
supertuxkart:
|
|
|
|
/System/Library/Frameworks/OpenAL.framework/Versions/A/OpenAL (compatibility version 1.0.0,
|
|
|
|
current version 1.0.0)
|
|
|
|
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0,
|
|
|
|
current version 11.0.0)
|
|
|
|
@executable_path/../Frameworks/SDL.framework/Versions/A/SDL (compatibility version 1.0.0, current
|
|
|
|
version 1.0.0)
|
|
|
|
@executable_path/../Frameworks/Vorbis.framework/Versions/A/Vorbis (compatibility version 1.0.0,
|
|
|
|
current version 1.0.0)
|
|
|
|
@executable_path/../Frameworks/Ogg.framework/Versions/A/Ogg (compatibility version 1.0.0, current
|
|
|
|
version 1.0.0)
|
|
|
|
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current
|
|
|
|
version 128.0.0)
|
|
|
|
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current
|
|
|
|
version 1.0.0)
|
|
|
|
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current
|
|
|
|
version 275.0.0)
|
|
|
|
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version
|
|
|
|
1.0.0)
|
|
|
|
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
|
|
|
|
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
|
|
|
|
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.8)
|
|
---------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
************* S T A R T T H E G A M E A N D H A V E F U N! **************
|
|
|
|
|
|
Please post to the development list if you have any problems.
|
|
|
|
|
|
|