2003/09/07 03:04:31
[org.ibex.core.git] / Makefile
index 546f447..5cc88bd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@ jikes_flags            := -nowarn -sourcepath src/
 gcc_optimizations      := -O2
 #gcc_optimizations      := -O9 -ffast-math -fomit-frame-pointer -foptimize-sibling-calls
 #gcc_optimizations      += -finline-functions -funroll-loops -ffunction-sections -fdata-sections
-gcc_flags              := $(gcc_optimizations) -Ibuild/h -Iupstream/jpeg-6b/src/
+gcc_flags              := -nostdinc $(gcc_optimizations) -Ibuild/h -Iupstream/jpeg-6b/src/
 gcj_flags              := -fCLASSPATH=build/java
 gcj                    := upstream/install/bin/$(target)-gcj $(gcc_flags) $(gcj_flags)
 g++                    := upstream/install/bin/$(target)-g++ $(gcc_flags)
@@ -65,7 +65,7 @@ build/class/%.class: build/java/%.java .jikes
        @./.jikes $<
 
 compile: .compile
-.compile: $(java_sources)
+.compile: $(java_sources:build/java/%.c=build/class/%.class)
        @echo -e "\n\033[1mcompiling          .java -> .class: src/**/*.java\033[0m"
        mkdir -p build/class
        @./.jikes $(java_sources)
@@ -79,13 +79,16 @@ build/h/%.h: build/class/%.class .compile
        ls `echo $< | sed s/.class\$$//`*.class |\
                 sed s_build/class/__ | sed s/.class\$$//g | sed s_/_._g | (cd build/class; xargs ../../upstream/install/bin/gcjh -d ../h --classpath .)
 
-# PHASE 4: object files
+# a hack since we've disabled gcj's awt implementation
+build/$(platform)/org/xwt/plat/Java2.java.o: ; touch $@
+build/$(platform)/org/xwt/plat/AWT.java.o: ; touch $@
+
 build/$(platform)/%.java.o: build/java/%.java
        @echo -e "\n\033[1mcompiling          .java -> .o:     $<\033[0m"
        mkdir -p `dirname $@`
        $(gcj) -c $< -o $@
 
-build/$(platform)/org/xwt/plat/$(platform).cc.o: src/org/xwt/plat/*.cc $(java_headers)
+build/$(platform)/org/xwt/plat/$(platform).cc.o: src/org/xwt/plat/$(platform).cc src/org/xwt/plat/*.cc $(java_headers)
        @echo -e "\n\033[1mcompiling            .cc -> .o:     $<\033[0m"
        mkdir -p `dirname $@`
        $(g++) -I/usr/X11R6/include/ -Iupstream/install/include -Ibuild/h -Iupstream/$(platform)/include -Wno-multichar -c $< -o $@
@@ -96,15 +99,15 @@ build/$(platform)/jpeg-6b/%.c.o: upstream/jpeg-6b/src/%.c
        $(gcc) -Ibuild/h -c $< -o $@
 
 # PHASE 5: linking
-$(target_bin).ar: $(java_object_files) build/$(platform)/org/xwt/plat/$(platform).cc.o $(jpeg_object_files)
+$(target_bin).ar: $(java_sources:build/java/%.java=build/$(platform)/%.java.o) build/$(platform)/org/xwt/plat/$(platform).cc.o $(jpeg_object_files)
        @echo -e "\n\033[1marchiving             .o -> $(target_bin).ar\033[0m"
        rm -f $(target_bin).ar
-       $(ar) -c $(target_bin).ar $^
+       upstream/install/$(target)/bin/ar -cq $(target_bin).ar $^
 
 $(target_bin): $(target_bin).ar
        @echo -e "\n\033[1mlinking               .o -> $(target_bin)\033[0m"
        mkdir -p build/$(platform)
-       $(gcj) --main=org.xwt.Main -o build/$(platform)/$(target_bin) $(target_bin).ar -Lupstream/install/lib $(link_flags) 
+       $(gcj) -nostdlib --main=org.xwt.Main -o build/$(platform)/$(target_bin) $(target_bin).ar -Lupstream/install/$(target)/lib $(link_flags) 
 
 
 ##############################################################################
@@ -125,7 +128,7 @@ build/java/org/xwt/Builtin.java: $(shell ls src/org/xwt/builtin/*.png src/org/xw
 
 # 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: install_gcc-3.3 compile $(target_bin)
+gcj: .vendor install_gcc-3.3 .compile $(target_bin)
 build/JVM/xwt.jar: .compile
        @echo -e "\n\033[1marchiving         .class -> .jar:   build/JVM/xwt.jar\033[0m"
        mkdir -p build/JVM