+oldcompile:; CLASSPATH=$$CLASSPATH:lib/libgcj-minimal.jar:upstream/mips/build javac -target 1.1 -d build/class `find build/java/ -name \*.java`
+compile: .compile
+.compile: $(java_sources) .jikes .install_mips2java
+ @echo -e "\n\033[1mcompiling .java -> .class: src/**/*.java\033[0m"
+ @rm -f $(java_sources:build/java/%.java=build/class/%.class)
+ mkdir -p build/class
+ @./.jikes $(java_sources)
+ touch .compile
+
+build/JVM/xwt.jar: .compile build/res/builtin.jar build/class/org/xwt/translators/MIPSApps.class
+ @echo -e "\n\033[1marchiving .class -> .jar: build/JVM/xwt.jar\033[0m"
+ mkdir -p build/JVM
+ echo -e "Manifest-Version: 1.0\nMain-Class: org.xwt.Main\n" > build/JVM/.manifest
+ cd build/class/org/xwt; ln -sf ../../../res/builtin.jar
+ cd build/class; $(jar) cfm ../JVM/xwt.jar ../JVM/.manifest \
+ `find . \! -type d` \
+ $(patsubst %,../../upstream/mips/build/org/xwt/mips/%*.class, Runtime Registers Syscalls Errno)
+
+
+### GCJH Headers ##############################################################################
+
+java_headers := $(java_sources:build/java/%.java=build/h/%.h)
+build/h/edu/stanford/ejalbert/BrowserLauncher.h:; mkdir -p $(@D); touch $@
+build/h/%.h: build/class/%.class .compile
+ @echo -e "\n\033[1mextracting .class -> .h: $<\033[0m"
+ mkdir -p `dirname $@`
+ ls `echo $< | sed s/.class\$$//`*.class |\
+ sed s_build/class/__ | sed s/.class\$$//g | sed s_/_._g | (cd build/class; xargs $(gcjh) -d ../h --classpath .)
+
+
+### Native Code ##############################################################################
+
+# a hack since we've disabled gcj's awt implementation
+build/$(platform)/org/xwt/plat/Java2.java.o: ; touch .empty.c; mkdir -p $(@D); $(gcc) -c .empty.c -o $@;
+build/$(platform)/org/xwt/plat/AWT.java.o: ; touch .empty.c; mkdir -p $(@D); $(gcc) -c .empty.c -o $@;
+
+build/$(platform)/org/xwt/translators/MIPSApps.java.o: build/class/org/xwt/translators/MIPSApps.class
+ @echo -e "\n\033[1mcompiling .class -> .o: $<\033[0m"
+ mkdir -p `dirname $@`
+ $(gcj) -Os -c $< -o $@
+
+build/$(platform)/%.java.o: build/java/%.java
+ @echo -e "\n\033[1mcompiling .java -> .o: $<\033[0m"