X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Makefile;h=becfcd725e77a3c67f39e92510aa840916aa3eff;hb=407497fcfdec3b3112b17cbcb6a800326cb49431;hp=546f447addffe3030ab09156fe97b1da83396c0e;hpb=2434902768a46ac75fc4445e678cb73bbeca017f;p=org.ibex.core.git diff --git a/Makefile b/Makefile index 546f447..becfcd7 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # The XWT Makefile # -all: JVM Linux Win32 Carbon Java2 #Solaris +all: JVM Linux Win32 Darwin Java2 Solaris JVM: build/JVM/xwt.jar Linux: ; make gcj platform=Linux target=i686-pc-linux-gnu link_flags="-lX11 -lXext --static" @@ -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) @@ -77,18 +77,21 @@ 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 |\ - sed s_build/class/__ | sed s/.class\$$//g | sed s_/_._g | (cd build/class; xargs ../../upstream/install/bin/gcjh -d ../h --classpath .) + sed s_build/class/__ | sed s/.class\$$//g | sed s_/_._g | (cd build/class; xargs ../../upstream/install/bin/$(target)-gcjh -d ../h --classpath .) + +# a hack since we've disabled gcj's awt implementation +build/$(platform)/org/xwt/plat/Java2.java.o: ; mkdir -p $(@D); touch $@ +build/$(platform)/org/xwt/plat/AWT.java.o: ; mkdir -p $(@D); touch $@ -# PHASE 4: object files 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 $@ + $(g++) -I/usr/X11R6/include/ -Iupstream/install/include -Ibuild/h -Iupstream/$(target)/include -Wno-multichar -c $< -o $@ build/$(platform)/jpeg-6b/%.c.o: upstream/jpeg-6b/src/%.c @echo -e "\n\033[1mcompiling .c -> .o: $<\033[0m" @@ -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_$(target) .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