-all_java_sources := $(patsubst src/%.java, build/java/%.java, $(shell find src -name '*.java'))
-all_java_sources += $(patsubst src/%.java.pp, build/java/%.java, $(shell find src -name '*.java.pp'))
+java_sources := $(patsubst src/%.java, build/java/%.java, $(shell find src -name '*.java' | grep -v Preprocessor))
+all_java_sources := $(java_sources)
+
+nonplat_java_sources := $(filter-out build/java/org/xwt/plat/%, $(java_sources)) build/java/org/xwt/translators/Freetype.java build/java/org/xwt/translators/MSPack.java build/java/org/xwt/translators/MIPSApps.java
+plat_java_sources := $(filter build/java/org/xwt/plat/%, $(java_sources))
+
+build/java/org/xwt/translators/MIPSApps.java: build/mips/mipsapps.mips
+ make build/class/org/xwt/mips/Compiler.class
+ mkdir -p build/java/org/xwt/translators
+ @echo -e "\n\033[1mtranslating .mips -> .java: $<\033[0m"
+ (echo -e 'package org.xwt.translators;\nimport org.xwt.mips.*;\n'; \
+ java -Xint -cp build/class org.xwt.mips.Compiler MIPSApps build/mips/mipsapps.mips)\
+ | sed 's,//.*$$,,;'|tr -d '\n' > $@