Categories
Tech

phoneME Advanced on OSX Intel

Um Java CDC Anwendungen zu entwickeln braucht man eine entsprechende virtuelle Machine. Eine OpenSource VM wird im phoneME Projekt entwickelt. Es gibt dort verschiedenste Versionen für Linux, Windows, Windows Mobile und auch für Darwin/OS X. Allerdings ist bisher nur ein PowerPC Variante für OS X verfügbar. Die lässt sich auch auf einem Intel Mac benutzen, allerdings nur im Foundation-Profile, dass keine UI bereitstellt. Um AWT zu haben benötigt man das Personal-Profile, was jedoch QT verlangt. Und mit Fink kann man von QT keine Universal Binarys installieren.

Deshalb habe ich versucht die PowerPC Version von phoneME Advanced nach x86 zu portieren. Dazu war nicht sonderlich viel nötig. Ich habe lediglich einige Dateien durch die entsprechenden Linux x86 Versionen ersetzt.

I wanted to develop my J2ME CDC Applicatins on my Intel Mac. Unfortunalty there is no CDC VM available for Intel Macs. The phoneME project provides sources for a PowerPC version for Darwin/OS X. So I decided to port that over to Intel by replacing some files with the correct Linux x86 ones.

Hier ist nun das Ergebnis:

Here is my result:


Patch: phoneme-cdc-darwin-x86

Binary: phoneme-cdc-personal-darwin-x86-qt3-x11-bin

Die Dateien aus dem Patch-Archiv müssen in die entsprechenden Ordner der phoneME Sourcen kopiert werden. Dann kann im Verzeichnis cdc/build/darwin-x86-mac “make” aufgerufen werden um das Foundation Profil zu bauen und mit “make J2ME_CLASSLIB=personal” kann das Personal-Profil erzeugt werden. Dafür benötigt man QT3, das am einfachsten mit Fink installiert wird.

Die entstandene VM lässt sich am einfachsten mit “bin/cvm -jar democlasses.jar” testen.

Copy the files from the Patch-Archive into the correct folders of the phoneME sources. You can build the Foundation-Profile with “make”in the directory cdc/build/darwin-x86-mac and with “make J2ME_CLASSLIB=personal” the Personal-Profile. You need QT3 for the Personal-Profile. Install that with Fink.

You can try out the resulting VM with “bin/cvm -jar democlasses.jar”.

7 replies on “phoneME Advanced on OSX Intel”

Habs ausprobiert und heraus kommt ein UnsatisfiedLinkError. In der Meldung steht der Pfad zu libqtawt.so. X11 (Apple) und qt3 (via fink) sind vorhanden. Irgendeine Idee, was da fehlt?

Hallo Sascha,

Benutzt du Tiger oder Leopard? Ich habs auf Leopard compiliert.

Kannst du mal den kompletten Stacktrace posten?

Nachtrag:

Folgende Libraries werden von cvm auf meinem Mac genutzt:

/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/bin/cvm
/usr/X11/lib/libXau.6.dylib
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/lib/libqtawt.so
/usr/X11/lib/libGL.1.2.dylib
/usr/X11/lib/libXmu.6.dylib
/usr/X11/lib/libXrender.1.dylib
/usr/X11/lib/libXrandr.2.dylib
/usr/X11/lib/libXcursor.1.dylib
/usr/X11/lib/libXinerama.1.dylib
/usr/X11/lib/libXft.2.dylib
/sw/lib/freetype219/lib/libfreetype.6.3.10.dylib
/usr/X11/lib/libfontconfig.1.3.0.dylib
/usr/X11/lib/libXext.6.dylib
/usr/X11/lib/libX11.6.dylib
/usr/X11/lib/libSM.6.dylib
/usr/X11/lib/libICE.6.dylib
/usr/lib/libXplugin.1.dylib
/usr/X11/lib/libXdmcp.6.dylib
/usr/X11/lib/libXt.6.dylib
/usr/X11/lib/libXfixes.3.dylib
/usr/lib/libexpat.1.5.0.dylib
/sw/lib/qt3/lib/libqt-mt.3.3.8.dylib
/usr/X11/lib/libfreetype.6.3.16.dylib
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/lib/libawtjpeg.so
/usr/lib/dyld
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/lib/personal.jar
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/democlasses.jar

Evtl. fehlt dir da was?

Hi auch. Bin ein Stück weiter gekommen. Ein Debug-Build fördert dann (unter anderem) folgende Meldung des Linkers zutage…
dlopen(/Users/sascha/Development/src/java/phoneme/phoneme_advanced-mr2-dev-b76/cdc/build/darwin-x86-mac/lib/libqtawt_g.so, 1): Library not loaded: /usr/X11/lib/libXrandr.2.dylib
Referenced from: /sw/lib/qt3/lib/libqt-mt.3.dylib
Reason: Incompatible library version: libqt-mt.3.dylib requires version 4.0.0 or later, but libXrandr.2.dylib provides version 3.0.0

Wie mir scheint ist meine X11 Installation zu alt. Woher kommt denn deine?

Seit Snow Leopard 10.6.2 mußte ich in cdc/build/darwin-x86-mac/GNUmakefile -m32 zu diesen Einstellungen hinzufügen:

ASM_ARCH_FLAGS = -m32 -march=i686
CC_ARCH_FLAGS = -m32 -march=i686

LINK_ARCH_FLAGS = -m32

Leave a Reply

Your email address will not be published. Required fields are marked *