2003/09/07 03:04:31
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:04:52 +0000 (07:04 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:04:52 +0000 (07:04 +0000)
darcs-hash:20040130070452-2ba56-6815ac93777f5d0cb1e9e8a9d4c63190ac25e840.gz

Makefile
Makefile.upstream
src/org/xwt/Platform.java
src/org/xwt/plat/AWT.java

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
index 26f505a..7819c74 100644 (file)
@@ -17,7 +17,7 @@ url_jpeg-6b            := http://www.ijg.org/files/jpegsrc.v6b.tar.gz
 url_jikes-1.18         := http://www.megacz.com/tmp/jikes-1.18.tgz       #ftp://www-126.ibm.com/pub/jikes/1.18/jikes-1.18.tar.gz
 
 # building gcc requires binutils
-configure_gcc-3.3: binutils-2.13.2.1 .configure_gcc-3.3
+configure_gcc-3.3: install_binutils-2.13.2.1
 
 # how to configure it
 configure_gcc-3.3                       := --enable-languages=c,c++,java --enable-gc-type=boehm --disable-shared --disable-jvmpi
@@ -29,16 +29,18 @@ configure_gcc-3.3-i686-pc-linux-gnu     := --enable-threads=posix --enable-hash-
 configure_gcc-3.3-sparc-sun-solaris2.7  := --enable-threads=posix --disable-multilib
 configure_gcc-3.3-mips                  := --enable-languages=c --nfp --with-newlib=yes --enable-multilib --disable-threads
 
+.PRECIOUS: .vendor .download_%_$(target) .configure_%_$(target) .install_%_$(target)
+
 # vendor-supplied binaries and headers; this is stuff that comes with various OSes
-vendor: .vendor
+vendor: .vendor; @true
 .vendor:
        @echo -e "\n\033[1mdownloading vendor-supplied headers and libraries...\033[0m"
        curl http://www.megacz.com/vendor.tgz | tar xzf - -C upstream/install
+       mkdir -p upstream/install/i686-pc-mingw32
        curl $(url_w32api-2.3) | tar xzf - -C upstream/install/i686-pc-mingw32
        curl $(url_mingw-runtime-3.0) | tar xzf - -C upstream/install/i686-pc-mingw32
        touch .vendor
 
-download_%: .download_%
 .download_%:
        @echo -e "\n\033[1mdownloading $*...\033[0m"
        mkdir -p upstream/$*
@@ -47,27 +49,26 @@ download_%: .download_%
        (test -e upstream/$*/patches && cd upstream/$*/src && for A in ../patches/*.patch; do patch -p0 < $$A; done); true
        touch $@
 
-configure_%: .configure_%
-.configure_%: download_% 
+.configure_%_$(target): download_% 
        @echo -e "\n\033[1mconfiguring $*...\033[0m"
-       mkdir -p $*/build-$(target)
-       cd -p $*/build-$(target); \
+       mkdir -p upstream/$*/build-$(target)
+       cd upstream/$*/build-$(target); \
                $(setcc) ../src/configure \
                --target=$(target) \
                --prefix=`pwd`/../../install \
                $(configure_$*) \
-               $(configure_$*)-$(target)
+               $(configure_$*-$(target))
        touch $@
 
-install_%: .install_%
-.install_%: configure_%
+install_%: .install_%_$(target); @true
+.install_%_$(target): .configure_%
        @echo -e "\n\033[1mbuilding $*...\033[0m"
        cd upstream/$*/build-$(target); $(setcc) PATH=$$PATH:`pwd`/../../install/bin make
        @echo -e "\n\033[1minstalling $*...\033[0m"
        cd upstream/$*/build-$(target); $(setcc) PATH=$$PATH:`pwd`/../../install/bin make install
        touch $@
 
-.install_freetype-2.1.4: download_freetype-2.1.4 install_binutils-2.13.2.1 install_gcc-3.3
+.install_freetype-2.1.4_$(target): download_freetype-2.1.4 install_binutils-2.13.2.1 install_gcc-3.3
        @echo -e "\n\033[1mbuilding freetype $*...\033[0m"
        cd upstream/freetype-2.1.4/src; make setup ansi; PATH=$$PATH:`pwd`/../install/bin make CC=mips-gcc AR=mips-ar
        ../install/bin/mips-ranlib freetype-2.1.4/objs/libfreetype.a
index 671b002..8ee8b20 100644 (file)
@@ -211,7 +211,15 @@ public class Platform {
 
     /** returns an InputStream to the builtin xwar */
     protected InputStream _getBuiltinInputStream() {
-       return new ByteArrayInputStream(org.bouncycastle.util.encoders.Base64.decode(org.xwt.Builtin.encoded));
+       try {
+           Class c = Class.forName("org.xwt.Builtin");
+           Field f = c.getField("encoded");
+           Object o = f.get(null);
+           return new ByteArrayInputStream(org.bouncycastle.util.encoders.Base64.decode((String)o));
+       } catch (Exception e) {
+           Log.log(this, e);
+           return null;
+       }
     }
 
     /** returns the value of the environment variable key, or null if no such key exists */
index 5d46570..b9e58c3 100644 (file)
@@ -10,7 +10,6 @@ import java.awt.*;
 import java.awt.datatransfer.*;
 import java.awt.image.*;
 import java.awt.event.*;
-import java.applet.*;
 
 /** Platform subclass for all VM's providing AWT 1.1 functionality */
 public class AWT extends Platform {