From b5fa5227a80e97611a8433a275c18a6f695bf32b Mon Sep 17 00:00:00 2001 From: megacz Date: Fri, 30 Jan 2004 07:04:52 +0000 Subject: [PATCH] 2003/09/07 03:04:31 darcs-hash:20040130070452-2ba56-6815ac93777f5d0cb1e9e8a9d4c63190ac25e840.gz --- Makefile | 19 +++++++++++-------- Makefile.upstream | 23 ++++++++++++----------- src/org/xwt/Platform.java | 10 +++++++++- src/org/xwt/plat/AWT.java | 1 - 4 files changed, 32 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 546f447..5cc88bd 100644 --- 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 diff --git a/Makefile.upstream b/Makefile.upstream index 26f505a..7819c74 100644 --- a/Makefile.upstream +++ b/Makefile.upstream @@ -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 diff --git a/src/org/xwt/Platform.java b/src/org/xwt/Platform.java index 671b002..8ee8b20 100644 --- a/src/org/xwt/Platform.java +++ b/src/org/xwt/Platform.java @@ -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 */ diff --git a/src/org/xwt/plat/AWT.java b/src/org/xwt/plat/AWT.java index 5d46570..b9e58c3 100644 --- a/src/org/xwt/plat/AWT.java +++ b/src/org/xwt/plat/AWT.java @@ -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 { -- 1.7.10.4