more uniorm handling of javac
[org.ibex.core.git] / Makefile
index 3b4ea7f..4779d99 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -33,12 +33,12 @@ libwing_Solaris := -Lupstream/install/sparc-sun-solaris2.7/lib/
 libwing_Solaris +=   upstream/install/sparc-sun-solaris2.7/lib/libWINGs.a
 libwing_Solaris +=   upstream/install/sparc-sun-solaris2.7/lib/libwraster.a
 
-Java2:        build/Java2/ibex.jar
-JVM:; make Java2
-Linux:    ; make gcj platform=Linux   link_flags="$(libwing_Linux) -lXpm -lX11 -lXext"
-Solaris:  ; make gcj platform=Solaris link_flags="$(libwing_Solaris) -lXpm -lX11 -lXext -lpthread"
-Win32:    ; make gcj platform=Win32   link_flags="-Wl,--subsystem,windows -lcomdlg32"
-Darwin:   ; make gcj platform=Darwin  link_flags="$(darwin_linker_flags)"
+Java2:      build/Java2/ibex.jar
+JVM:;       @make Java2
+Linux:    ; @make gcj platform=Linux   link_flags="$(libwing_Linux) -lXpm -lX11 -lXext"
+Solaris:  ; @make gcj platform=Solaris link_flags="$(libwing_Solaris) -lXpm -lX11 -lXext -lpthread"
+Win32:    ; @make gcj platform=Win32   link_flags="-Wl,--subsystem,windows -lcomdlg32"
+Darwin:   ; @make gcj platform=Darwin  link_flags="$(darwin_linker_flags)"
 
 darwin_libdir       := upstream/install/powerpc-apple-darwin/lib
 darwin_linker_flags := -Wl,-dylib_file,/usr/lib/libSystem.B.dylib:$(darwin_libdir)/libSystem.B.dylib
@@ -48,16 +48,12 @@ darwin_linker_flags += -Wl,-dylib_file,$(darwin_ogl_libdir)/libGL.dylib:$(darwin
 darwin_linker_flags += -Wl,-dylib_file,$(darwin_ogl_libdir):$(darwin_libdir)/libGLU.dylib
 darwin_linker_flags += -lSystem.B -lmathCommon.A -lGL -lGLU
 
-# stupid broke-ass darwin linker...
-darwin_linker_flags += build/Darwin/org/ibex/plat/OpenGL.java.o build/Darwin/org/ibex/plat/POSIX.java.o
-
 target_bin_extension_$(platform) := $(shell echo $(platform) | tr A-Z a-z)
 target_bin_extension_Win32       := exe
 target_bin_extension_Java2       := jar
 target_bin_extension             := $(target_bin_extension_$(platform))
 target_bin                       := ibex.$(target_bin_extension)
 
-javac   := javac -classpath upstream/bcel-5.1/src/bcel-5.1.jar:build/class -d build/class/ -sourcepath build/java/:upstream/mips:upstream/mips/build:src
 gcc_optimizations  := -Os
 #gcc_optimizations  := -O9 -ffast-math -fomit-frame-pointer -foptimize-sibling-calls
 #gcc_optimizations  += -finline-functions -funroll-loops -ffunction-sections -fdata-sections
@@ -70,10 +66,16 @@ gcj                += -foptimize-static-class-initialization -feliminate-dwarf2-
 gcjh               := $(shell pwd)/upstream/install/bin/$(shell test -e upstream/install/bin/$(target)-gcjh && echo $(target)-)gcjh
 g++                := upstream/install/bin/$(target)-gcj $(gcc_flags) -Iupstream/install/include -Wno-multichar
 gcc                := upstream/install/bin/$(target)-gcc $(gcc_flags)
+nm                 := upstream/install/$(target)/bin/nm
 jar                := $(shell ((type fastjar &>/dev/null) && echo fastjar) || echo jar)
+ifeq ($(platform),Java2)
+javac   := javac -classpath upstream/bcel-5.1/src/bcel-5.1.jar   -d build/class/ -sourcepath build/java/
+else
+javac   := $(gcj) -fCLASSPATH=upstream/bcel-5.1/src/bcel-5.1.jar -d build/class/          -Ibuild/java -Iupstream/gnu.regexp-1.1.4/src/src -C
+endif
 
 gcj: .install_gcc-3.3_$(target)
-       make build/$(platform)/$(target_bin) link_flags="$(link_flags)" platform=$(platform)
+       @make build/$(platform)/$(target_bin) link_flags="$(link_flags)" platform=$(platform)
 
 include Makefile.upstream
 
@@ -112,6 +114,8 @@ java_sources              += build/java/org/xwt/mips/UsermodeConstants.java
 java_classes              := $(java_sources:build/java/%.java=build/class/%.class)
 java_classes              += build/class/gnu/regexp/CharUnit.class build/class/gnu/regexp/IntPair.class
 
+.PRECIOUS: $(java_classes) $(java_sources) *.java
+
 ### Java Source Files ##############################################################################
 
 build/java/gnu/regexp: .download_gnu.regexp-1.1.4