SuperTuxKart 0.3 Alpha

xeno74

Mitglied
Thread Starter
Dabei seit
06.04.2007
Beiträge
70
Reaktionspunkte
3
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
 
hm... kann dir leider auch nicht helfen, wollte aber anmerken, dass sich hier in diesem forum eher weniger Entwickler rumtreiben... mein Eindruck zumindestens.

Schau doch mal bei www.osxentwicklerforum.de vorbei !
 
Ähem, wenn ich nicht auf dem völlig falschen Dampfer bin hat sdl-config überhaupt keinen Parameter --static-libs. Wenn du statisch linken willst, musst du dem gcc (nehm ich mal an) doch einfach nur den Parameter -static mitgeben. Und eben noch die passenden Parameter von sdl.

Keine Ahnung wie du die Sachen linkst, aber das müsste doch dann in etwa so aussehen:

gcc -static -o myApp $(sdl-config --libs) tolledatei.o nocheinetolledatei.o


Oder etwa nicht? :confused: Den Weg zum osxentwicklerforum spar ich mir jetzt mal. ;)
 
MMMmmmmhhh, ich brauch etwas, dass ich dem ./configure mitgeben
kann. Oder ein Eintrag in einem Makefile. "-static" hatte ich auch schon probiert. :confused:
 
Zurück
Oben Unten