Mac Status Report -- Merge to BSD Repository, AWT Native Toolkit
Landon Fuller
landonf at bikemonkey.org
Sun Dec 9 21:04:48 PST 2007
Howdy all,
I thought I'd send out a Mac status report -- Hopefully this isn't too
off-topic for the varied members of the list =)
== Merge to BSD Repository ==
I've completed the merge of the Mac OS X port to the BSD Java project.
I hope that this provides a solid start for Mac OS X in OpenJDK.
With this work done, I've split Mac OS X development into two branches:
Development - Integration with Mac OS X-specific technology (native
AWT, etc.)
http://hg.bikemonkey.org/javasrc_1_6_jrl_darwin/
Stable - A baseline Mac OS X port without additional native
integration. Synchronized with the BSD repository.
http://hg.bikemonkey.org/javasrc_1_6_jrl_darwin_stable/
== AWT Native Toolkit ==
I've a bit of time working on a native AWT toolkit. My initial tasks
have been:
- Running the Cocoa event loop on the 'main' (first) thread.
- Getting a window on the screen.
- Drawing to the window.
The first two items are done -- It's possible to display a basic AWT
window (CPanelPeer, CWindowPeer), but not draw to it.
In pursuit of drawing, I've begun work on implementing a
MacGraphicsDevice and a MacGraphicsEnvironment -- my current plan is
to leverage the existing java2d OpenGL pipeline, if possible.
I'm still getting my head around the best approach to this, especially
in relation to resolution independence on Leopard.
If you'd like to check out the work, it's available via the
development (JRL) mercurial repository:
http://hg.bikemonkey.org/javasrc_1_6_jrl_darwin/
The code is currently located in:
j2se/src/solaris/classes/sun/awt/mac/
j2se/src/solaris/native/sun/awt/mac/
I will probably need to move the Mac-specific code out of the j2se/src/
solaris directory. One of my goals is to retain support for both the
X11 and the CG/Cocoa AWT toolkits.
The build only AWT, you can cd to j2se/make/sun/awt and run:
make ALT_BOOTDIR=/System/Library/Frameworks/JavaVM.framework/Home \
ALT_MOTIF_DIR=/opt/local SYS_CFLAGS="" LANG="C" JAVA_HOME=""
CLASSPATH="" \
LD_LIBRARY_PATH="" MAKEFLAGS="" SKIP_COMPARE_IMAGES="YES" \
BUILD_DEPLOY="false" ALT_DEVTOOLS_PATH=/usr ALT_CUPS_HEADERS_PATH=/
usr/include \
HOTSPOT_BUILD_JOBS=5 PARALLEL_BUILD_JOBS=5 \
ALT_HOTSPOT_CLIENT_PATH=/usr/local/soylatte16-i386-1.0/jre/lib/i386/
client/ \
ALT_HOTSPOT_SERVER_PATH=/usr/local/soylatte16-i386-1.0/jre/lib/i386/
server/
This will output a working JVM in j2se/build/bsd-i586. For the initial
build, you make need to run make from top-level j2se/make directory.
Cheers,
Landon
More information about the porters-dev
mailing list