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