find upstream -name config.cache -exec rm {} \;
JVM: build/JVM/xwt.jar
-Linux: ; make gcj platform=Linux target=i686-pc-linux-gnu link_flags="-lX11 -lXext"
-Solaris: ; make gcj platform=Solaris target=sparc-sun-solaris2.7 link_flags="-lX11 -lXext -static-libgcc -lpthread"
-Win32: ; make gcj platform=Win32 target=i686-pc-mingw32 link_flags="-Wl,--subsystem,console -lcomdlg32" target_bin=xwt.exe
-Darwin: ; make gcj platform=Darwin target=powerpc-apple-darwin link_flags="$(darwin_linker_flags)"
+Linux: ; make gcj platform=Linux link_flags="-lX11 -lXext"
+Solaris: ; make gcj platform=Solaris link_flags="-lX11 -lXext -lpthread"
+Win32: ; make gcj platform=Win32 link_flags="-Wl,--subsystem,windows -lcomdlg32"
+Darwin: ; make gcj platform=Darwin link_flags="$(darwin_linker_flags)"
# default
platform := JVM
darwin_linker_flags += -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib:$(darwin_libdir)/libGLU.dylib
darwin_linker_flags += -lSystem.B -lmathCommon.A -lGL -lGLU
+target_Darwin := powerpc-apple-darwin
+target_Win32 := i686-pc-mingw32
+target_Solaris := sparc-sun-solaris2.7
+target_Linux := i686-pc-linux-gnu
+target := $(target_$(platform))
+
+gcj: .install_gcc-3.3_$(target); make $(target_bin) link_flags="$(link_flags)" platform=$(platform)
#############################################################################
# Configurables:
#
-target_bin := xwt.$(shell echo $(platform) | tr A-Z a-z)
+ifeq ($(platform),Win32)
+target_bin := build/$(platform)/xwt.exe
+else
+target_bin := build/$(platform)/xwt.$(shell echo $(platform) | tr A-Z a-z)
+endif
jikes_flags := -nowarn -sourcepath src/
gcc_optimizations := -O2
#gcc_optimizations := -O9 -ffast-math -fomit-frame-pointer -foptimize-sibling-calls
# PHASE 4: gcj-generated headers
java_headers := $(all_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
+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 |\
# 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/translators/MIPSApps.java.o: build/class/org/xwt/translators/MIPSApps.class
+build/$(platform)/org/xwt/translators/MIPSApps.java.o: build/class/org/xwt/translators/MIPSApps.class .install_gcc-3.3_$(target)
@echo -e "\n\033[1mcompiling .class -> .o: $<\033[0m"
mkdir -p `dirname $@`
$(gcj) -Os -c $< -o $@
build/$(platform)/org/xwt/plat/AWT.java.o:
touch .empty.c; mkdir -p $(@D); $(gcc) -c .empty.c -o $@;
-build/$(platform)/%.java.o: build/java/%.java
+build/$(platform)/%.java.o: build/java/%.java .install_gcc-3.3_$(target)
@echo -e "\n\033[1mcompiling .java -> .o: $<\033[0m"
mkdir -p `dirname $@`
$(gcj) -c $< -o $@
$(target_bin): build/$(platform)/org/xwt/plat/$(platform).cc.o upstream/jpeg-6b/build-$(target)/libjpeg.a build/$(platform)/builtin.o build/$(platform)/$(platform).ar
@echo -e "\n\033[1mlinking .o -> $(target_bin)\033[0m"
mkdir -p build/$(platform)
- PATH=upstream/install/bin:$$PATH $(gcj) -v --main=org.xwt.Main -o build/$(platform)/$(target_bin) -Lupstream/install/$(target)/lib build/$(platform)/org/xwt/plat/$(platform).java.o $^ $(link_flags)
+ PATH=upstream/install/bin:$$PATH $(gcj) -v --main=org.xwt.Main -o $@ -Lupstream/install/$(target)/lib build/$(platform)/org/xwt/plat/$(platform).java.o $^ $(link_flags)
##############################################################################
echo "};") > .builtin.c
$(gcc) -c .builtin.c -o build/$(platform)/builtin.o
-# compile is here to force compilation of the .class files (they get used via -Ibuild) without
-# having the individual .o's depend on the .java's (otherwise every .o gets recompiled when one .java changes)
-gcj: .vendor .compile .install_gcc-3.3_$(target) $(target_bin)
-
build/JVM/xwt.jar: .compile build/res/builtin.jar
@echo -e "\n\033[1marchiving .class -> .jar: build/JVM/xwt.jar\033[0m"
mkdir -p build/JVM