-# FIXME this should be done with -ljpeg
-jpeg_c_sources := jdapimin.c jdapistd.c jcomapi.c jcparam.c jdmaster.c jdinput.c jdmainct.c jdcoefct.c jdpostct.c jdmarker.c
-jpeg_c_sources += jdhuff.c jdphuff.c jddctmgr.c jidctint.c jidctfst.c jidctflt.c jidctred.c jdsample.c jdcolor.c jdmerge.c
-jpeg_c_sources += jquant1.c jquant2.c jerror.c jutils.c jmemnobs.c jmemmgr.c
-upstream/jpeg-6b/src/%.c: .download_jpeg-6b
+# figure out what stuff in org.xwt.plat.* this platform requires (its superclasses)
+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' > $@
+
+build/java/org/xwt/%.java: src/org/xwt/%.java
+ make build/class/org/xwt/util/Preprocessor.class
+ @echo -e "\n\033[1mpreprocessing .java -> .java: $<\033[0m"
+ mkdir -p `dirname $@`; java -cp build/class org.xwt.util.Preprocessor < $< > $@