2003/03/20 03:11:11
[org.ibex.core.git] / README
diff --git a/README b/README
index bca8015..e7c63c1 100644 (file)
--- a/README
+++ b/README
@@ -1,6 +1,7 @@
 ==============================================================================
 XWT README
 
+             
 ______________________________________________________________________________
 Documentation
 
@@ -8,197 +9,72 @@ If you're new to XWT, you should read the documentation in the order
 presented below:
 
 - README [this file]
-
+        
       Start here. Includes a map of all other documentation and a
       description of the directory strucure
 
-- The XWT home page [http://www.xwt.org/]
-
+- The XWT home page [http://www.xwt.org/]      
+          
 - The XWT tutorial [http://www.xwt.org/tutorial.html]
 
       Gentle introduction to what XWT is, and how to write
       .xwt's. Good for anybody who wants to write XWT applications.
 
 - The XWT reference [http://www.xwt.org/reference.html]
-
+        
       Precise, technical spec of exactly how XWT works. Assumes
       familiarity with XWT (ie, you've read the tutorial). This is the
       authoritative source for how an XWT engine should
       behave.
 
-- Javadoc [http://www.xwt.org/javadoc/]
-
-      The org.xwt.* packages are all documented with javadoc. You
-      should start by reading the package summary for org.xwt.Main,
-      and work your way around from there.
-
-- Javasrc [http://www.xwt.org/javasrc]
-
-      Javasrc generates a syntax-colored and hyperlinked html copy of
-      the XWT source code.
-
-
 ______________________________________________________________________________
 Directory Structure
 
-/
-   AUTHORS               - people involved in developing XWT
-   README                - this file
-   COPYING               - copyright information for all files in this distro
-   TM                    - trademark information for XWT
-   ant                   - a unix shell script to launch ant
-   bin/                  - all binary stuff generated by ant builds
-   build.xml             - ANT build file
-
-   lib/                  - any third-party binary stuff needed during the build process
-       javago            - a copy of the javago post-compilation bytecode inliner
-       ant.jar           - the Jakarta project's ANT build tool, including Sun's XML parser
-       netscape.jar      - minimal set of classes required for compiling against Netcape's Applet interfaces
-       msjvm.jar         - minimal set of classes required for compiling against Microsoft's Applet interfaces
-       javasrc.jar       - javasrc, a tool for generating hyperlinked, syntax-colored html from java code
-
-   src/                  - all java source files and xwt sources go here
+/      
+   AUTHORS                - people involved in developing XWT  
+   README                 - this file
+   COPYING                - copyright information for all files in this distro
+   TM                     - trademark information for XWT      
+   Makefile               - build file for gcc 3.3
+   next.build             - the build id of the next build to be generated
+   bin/                   - all binary stuff generated by xwt builds
+   gcc/                   - build area for a custom copy of gcc3.3 and binutils2.13
+       Makefile           - will download, configure, compile, and private-install gcc3.3/binutils2.13
+   lib/                   - any third-party binary stuff needed during the build process
+       javago             - a copy of the javago post-compilation bytecode inliner
+       netscape.jar       - minimal set of classes required for compiling against Netcape's Applet interfaces
+       msjvm.jar          - minimal set of classes required for compiling against Microsoft's Applet interfaces
+       jump.jar           - the jump2 bytecode-to-palmos translator
+       libgcj-minimal.jar - a tiny portion of libgcj.jar; allows java->bytecode compilation without gcj
+   src/                   - all java source files and xwt sources go here
        org/
-           bouncycastle/ - the BouncyCastle Crypto Library
-           mozilla/      - a copy of Rhino, the Mozilla JavaScript interpreter
-           xwt/builtin/  - .xwt's and .png's that are essential to bootstrapping the engine
-           xwt/plat/     - platform-specific code
+           bouncycastle/  - the BouncyCastle Crypto Library
+           mozilla/       - a copy of Rhino, the Mozilla JavaScript interpreter
+           xwt/builtin/   - .xwt's and .png's that are essential to bootstrapping the engine
+           xwt/plat/      - platform-specific code
 
 ______________________________________________________________________________
-Build Targets
-
-        *** XWT now requires JDK 1.4 or later to build ***
+Build Targets and Requirements
 
-To build, make sure your $JAVA_HOME points to jdk1.4 or later, and type
+Build requirements:
+- jdk 1.4+
+- jikes (warning: Jikes 1.16 has a fatal bug; use 1.15)
+- gcj 3.3+
+- binutils 2.13+
+- fastjar
 
-    ./ant -Dplat=<platform> <targetname>
+If you already have a suitably configured gcj 3.3 and binutils 2.13+
+you can set "gcc_path" to point at its installation location;
+otherwise the Makefile will download, configure, compile, and install
+gcc and binutils.
 
-The name of any class in org.xwt.plat is a valid <platform>; here is a
-list as of 20-Mar-2002:
+Public build targets:
 
-    Win32         - Windows 95 / NT4 or later
-    Java12        - Any Java 1.2+ compliant JVM
-
-Valid <target>s are:
-
-    build         - builds a binary for the selected platform
-
-The following targets do not require that you specify a platform:
-
-    compile       - compiles all .java's to .class'es
-    clean         - empties bin/ and compiled binaries in dist/
-
-
-______________________________________________________________________________
-Building
-
-- WARNING: Jikes 1.16 has a bug which will cause it to generate
-  corrupt .class files; you must downgrade to 1.15 in order to compile
-  XWT.
-
-- If you only want to build the JVM version of XWT, delete these three
-  files:
-
-    xwt/src/org/xwt/plat/Win32.java
-    xwt/src/org/xwt/plat/POSIX.java
-    xwt/src/org/xwt/plat/GCJ.java
-
-  This will allow XWT to build correctly *without* gcc 3.1. Otherwise,
-  you must compile and install gcc 3.1.
-
-
-- The Win32 native version of XWT can ONLY be built with the very
-  latest pre-release of GCC 3.3. You can follow the steps below to
-  create a cross-compiler from linux to Win32.
-
-  If the steps below fail, try adding "-D 11-Oct-2002" to the cvs
-  checkout line; 11-Oct-2002 was the last date on which the compiler
-  was known to work. Please don't do this unless you have attempted
-  without it, however, since it puts additional strain on the gcc cvs
-  server.
-
-  There are also three patches at the end of this file which can be
-  applied to the branch -- the first fixes an inet_addr() bug on
-  Win32, the second fixes a garbage collector bug, and the third
-  enables stack traces.
-
-  # create an install area
-  export CLASSPATH=
-  export PREFIX=/usr/local/gcc
-  export CC=/usr/bin/gcc
-  
-  sudo rm -rf $PREFIX
-  export PATH=$PATH:$PREFIX/bin
-  sudo mkdir $PREFIX
-  sudo mkdir $PREFIX/i686-pc-mingw32/
-  
-  wget http://telia.dl.sourceforge.net/sourceforge/mingw/MinGW-1.1.tar.gz
-  sudo tar -C $PREFIX/i686-pc-mingw32/ -xvzf MinGW-1.1.tar.gz
-  
-  wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.11.2.tar.gz
-  tar xzvf binutils-2.11.2.tar.gz
-  cd binutils-2.11.2
-  ./configure --target=i686-pc-mingw32 --prefix=$PREFIX
-  make
-  sudo make install
-  cd ..
-  
-  cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/gcc co -rgcc-3_1-branch gcc
-  mkdir bin
-  cd bin
-  ../gcc/configure \
-                   --prefix=$PREFIX \
-                   --target=i686-pc-mingw32 \
-                   --host=i686-pc-linux-gnu \
-                   --enable-languages=c,c++,java \
-                   --disable-nls \
-                   --with-as=$PREFIX/i686-pc-mingw32/bin/as \
-                   --with-ld=$PREFIX/i686-pc-mingw32/bin/ld \
-                   --with-gnu-ld \
-                   --with-gnu-as \
-                   --enable-libgcj \
-                   --enable-gc-type=boehm \
-                   --disable-shared \
-                   --enable-threads=win32 \
-                   --enable-hash-synchronization \
-                   --disable-interpreter \
-                   --enable-sjlj-exceptions
-  
-  make
-  sudo make install
-
-- The Linux native version can also be built with the latest
-  prerelease of gcj 3.3. You should configure your compiler with:
-
-  ../gcc/configure \
-                   --prefix=$PREFIX \
-                   --enable-languages=c,c++,java \
-                   --disable-nls \
-                   --enable-libgcj \
-                   --enable-threads=posix \
-                   --enable-hash-synchronization \
-                   --enable-static \
-                   --disable-interpreter
-
-
-______________________________________________________________________________
-Native-Code "ant"
-
-** THIS DOESN'T WORK YET **
-
-Ant takes a long time to start up, mainly because it has to load a
-JVM. If you compile ant to native code using GCJ, it will load much
-more quickly. So far, this only works on Linux.
-
-    mkdir /tmp/ant
-    cd /tmp/ant
-    jar xvf ~/xwt/lib/ant.jar
-    for A in `find * -name \*.properties -or -name \*.txt -or -name \*.mf`
-        do gcj -c --resource $A $A -o $A.o
-    done
-    CLASSPATH= gcj --main=org.apache.tools.ant.Main \
-               `find . -name \*.class -or -name \*.o` -o ant
-    mv ant ~/xwt/ant
+    compile       - compiles all .java files into bin/*.class
+    Win32         - Win95 or later (bin-Win32/xwt.exe)
+    Linux         - Linux 2.2 or later (bin-Linux/xwt.linux)
+    Java2         - Any Java 1.2+ compliant JVM
+    clean         - cleanup
 
 
 ______________________________________________________________________________
@@ -239,31 +115,6 @@ diff -u -r1.3.8.5 win32.h
 
 
 ______________________________________________________________________________
-GC patch
-
-Index: win32_threads.c
-===================================================================
-RCS file: /cvs/gcc/gcc/boehm-gc/win32_threads.c,v
-retrieving revision 1.9.2.2
-diff -u -r1.9.2.2 win32_threads.c
---- win32_threads.c     29 Jun 2002 17:29:51 -0000      1.9.2.2
-+++ win32_threads.c     2 Jul 2002 18:10:02 -0000
-@@ -134,10 +134,7 @@
-                                (LPCONTEXT)&thread_table[i].context))
-          ABORT("GetThreadContext failed");
- #      ifdef I386
--         if (thread_table[i].context.Esp >= (DWORD)thread_table[i].stack
--             || thread_table[i].context.Esp < (DWORD)bottom)
--             ABORT("Thread stack pointer out of range");
--         GC_push_one ((word) thread_table[i].context.Edi);
-+             GC_push_one ((word) thread_table[i].context.Edi);
-          GC_push_one ((word) thread_table[i].context.Esi);
-          GC_push_one ((word) thread_table[i].context.Ebp);
-          GC_push_one ((word) thread_table[i].context.Ebx);
-
-
-
-______________________________________________________________________________
 Throwable.printStackTrace() patch
 
 Index: Class.h
@@ -271,8 +122,8 @@ Index: Class.h
 RCS file: /cvs/gcc/gcc/libjava/java/lang/Class.h,v
 retrieving revision 1.43
 diff -u -r1.43 Class.h
---- Class.h    21 Dec 2001 19:47:50 -0000      1.43
-+++ Class.h    24 Apr 2002 03:06:14 -0000
+--- Class.h     21 Dec 2001 19:47:50 -0000      1.43
++++ Class.h     24 Apr 2002 03:06:14 -0000
 @@ -308,6 +308,7 @@
    friend void _Jv_LayoutVTableMethods (jclass klass);
    friend void _Jv_SetVTableEntries (jclass, _Jv_VTable *);
@@ -286,8 +137,8 @@ Index: ClassLoader.java
 RCS file: /cvs/gcc/gcc/libjava/java/lang/ClassLoader.java,v
 retrieving revision 1.16
 diff -u -r1.16 ClassLoader.java
---- ClassLoader.java   7 Dec 2001 23:34:12 -0000       1.16
-+++ ClassLoader.java   24 Apr 2002 03:06:14 -0000
+--- ClassLoader.java    7 Dec 2001 23:34:12 -0000       1.16
++++ ClassLoader.java    24 Apr 2002 03:06:14 -0000
 @@ -577,4 +577,8 @@
      // Default to returning null.  Derived classes implement this.
      return null;
@@ -302,8 +153,8 @@ Index: Throwable.java
 RCS file: /cvs/gcc/gcc/libjava/java/lang/Throwable.java,v
 retrieving revision 1.10
 diff -u -r1.10 Throwable.java
---- Throwable.java     24 Feb 2001 03:52:49 -0000      1.10
-+++ Throwable.java     24 Apr 2002 03:06:14 -0000
+--- Throwable.java      24 Feb 2001 03:52:49 -0000      1.10
++++ Throwable.java      24 Apr 2002 03:06:14 -0000
 @@ -123,21 +123,64 @@
      printStackTrace (writer);
    }
@@ -314,17 +165,17 @@ diff -u -r1.10 Throwable.java
    {
 -    try
 -      {
--      CPlusPlusDemangler cPlusPlusFilter = new CPlusPlusDemangler (wr);
--      PrintWriter writer = new PrintWriter (cPlusPlusFilter);
--      printRawStackTrace (writer);    
--      writer.close ();
--      if (cPlusPlusFilter.written == 0) // The demangler has failed...
--        printRawStackTrace (wr);
+-       CPlusPlusDemangler cPlusPlusFilter = new CPlusPlusDemangler (wr);
+-       PrintWriter writer = new PrintWriter (cPlusPlusFilter);
+-       printRawStackTrace (writer);    
+-       writer.close ();
+-       if (cPlusPlusFilter.written == 0) // The demangler has failed...
+-         printRawStackTrace (wr);
 +      try
 +          {
 +              CPlusPlusDemangler cPlusPlusFilter = new CPlusPlusDemangler (wr);
 +              PrintWriter writer = new PrintWriter (cPlusPlusFilter);
-+              printRawStackTrace (writer);    
++              printRawStackTrace (writer);     
 +              writer.close ();
 +              if (cPlusPlusFilter.written > 0) return;
 +          }
@@ -339,7 +190,7 @@ diff -u -r1.10 Throwable.java
        }
 -    catch (Exception e1)
 -      {
--      printRawStackTrace (wr);
+-       printRawStackTrace (wr);
 +      
 +      long[] allAddrs = ClassLoader.getAllMethodAddrs();
 +      java.lang.reflect.Method[] meths = ClassLoader.getAllMethods();
@@ -385,8 +236,8 @@ Index: natClassLoader.cc
 RCS file: /cvs/gcc/gcc/libjava/java/lang/natClassLoader.cc,v
 retrieving revision 1.47.8.1
 diff -u -r1.47.8.1 natClassLoader.cc
---- natClassLoader.cc  2 Apr 2002 22:19:55 -0000       1.47.8.1
-+++ natClassLoader.cc  24 Apr 2002 03:06:14 -0000
+--- natClassLoader.cc   2 Apr 2002 22:19:55 -0000       1.47.8.1
++++ natClassLoader.cc   24 Apr 2002 03:06:14 -0000
 @@ -40,6 +40,10 @@
  #include <java/lang/StringBuffer.h>
  #include <java/io/Serializable.h>
@@ -454,8 +305,8 @@ Index: natThrowable.cc
 RCS file: /cvs/gcc/gcc/libjava/java/lang/natThrowable.cc,v
 retrieving revision 1.11
 diff -u -r1.11 natThrowable.cc
---- natThrowable.cc    7 Feb 2002 19:26:06 -0000       1.11
-+++ natThrowable.cc    24 Apr 2002 03:06:14 -0000
+--- natThrowable.cc     7 Feb 2002 19:26:06 -0000       1.11
++++ natThrowable.cc     24 Apr 2002 03:06:14 -0000
 @@ -32,6 +32,7 @@
  #include <stdio.h>