• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

SuperTuxKart 0.3 Alpha

  • Ersteller Ersteller xeno74
  • Erstellt am Erstellt am

xeno74

Gast
Hallo Forum,

ich gehöre dem Mac-Portiererteam von SuperTuxKart an.

Wir bereiten gerade den Port für die Version 0.3 vor.

Normales Kompilieren ist kein Problem mehr.

Wir wollen in regelmäßigen Abständen Test-Versionen
von STK bereitstellen und diese als AppBundle verteilen.

Dafür möchte ich SuperTuxKart gerne statisch kompilieren (inkl. SDL + Freealut von OpenAL.org).

Folgende Versuche habe ich bereits unternommen:

1. Versuch:
Code:
./configure --enable-static
2. Versuch durch Eintrag von LDFLAGS in das Makefile:
Code:
LDFLAGS = -framework OpenAL /sw/lib/libalut.a `/sw/bin/sdl-config --static-libs`
3. Versuch wieder durch einen Eintrag in das Makefile:
Code:
LDFLAGS =  -framework OpenAL -lalut /sw/lib/libSDLmain.a /sw/lib/libSDL.a -Wl,-framework,OpenGL -Wl,-framework,IOKit -Wl,-framework,Cocoa -Wl,-framework,QuickTime -Wl,-framework,ApplicationServices -Wl,-framework,Carbon -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit
Das komische an der Sache ist, dass diese Einträge in den Makefiles zwar vom Linker zur Kenntnis genommen werden. Der Linker dann aber doch macht was er will.

Wie schon geschrieben, dass "make" läuft immer sauber durch und der Linker verknüpft immer mit Shared Librarys.

Dies überprüfe ich mit "otool -L supertuxkart":

Code:
supertuxkart:
        /System/Library/Frameworks/OpenAL.framework/Versions/A/OpenAL (compatibility version 1.0.0, current version 1.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/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0)
        /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 12.0.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
        /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 128.0.0)
        /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
        /sw/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.0.0)
        /sw/lib/libvorbisfile.3.dylib (compatibility version 5.0.0, current version 5.0.0)
        /sw/lib/libmikmod.2.dylib (compatibility version 3.0.0, current version 3.4.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)
Was habe ich falsch gemacht?

Wie werden die SDL-Libs statisch eingebunden?

Gruß,

Christian