2003/03/20 03:11:11
[org.ibex.core.git] / README
diff --git a/README b/README
index bbe83b7..e7c63c1 100644 (file)
--- a/README
+++ b/README
@@ -1,6 +1,7 @@
 ==============================================================================
 XWT README
 
 ==============================================================================
 XWT README
 
+             
 ______________________________________________________________________________
 Documentation
 
 ______________________________________________________________________________
 Documentation
 
@@ -8,219 +9,108 @@ If you're new to XWT, you should read the documentation in the order
 presented below:
 
 - README [this file]
 presented below:
 
 - README [this file]
-
+        
       Start here. Includes a map of all other documentation and a
       description of the directory strucure
 
       Start here. Includes a map of all other documentation and a
       description of the directory strucure
 
-- The XWT home page [www/ or http://www.xwt.org/]
-
-      A complete copy of all static and dynamic content for
-      www.xwt.org is in the xwt/www/ directory.
-
-- The XWT tutorial [www/html/tutorial.html_]:
+- 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.
 
 
       Gentle introduction to what XWT is, and how to write
       .xwt's. Good for anybody who wants to write XWT applications.
 
-- The XWT reference [www/html/reference.html]
-
+- 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.
 
       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 [www/html/javadoc/package-summary.html]
-
-      The org.xwt.* packages are all documented with javadoc. If
-      you've just checked out or downloaded a fresh copy of the XWT
-      distribution, you can generate the javadoc by typing
-      "./ant www" at the root directory of the distribution. You
-      should start by reading the package summary for org.xwt.Main,
-      and work your way around from there.
-
-- Javasrc [www/html/javasrc/index.html]
-
-      Javasrc generates a syntax-colored and hyperlinked html copy of
-      the XWT source code. To generate this documentation, type "./ant www"
-      from the root directory of the distribution.
-
-
 ______________________________________________________________________________
 Directory Structure
 
 ______________________________________________________________________________
 Directory Structure
 
-/
-   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
-   doc/                  - documentation
-
-   www/                  - a copy of all static and dynamic content on xwt.org
-       etc/              - configuration files
-       html/             - static content -- files ending with an underscore get
-                           prefix.html/suffix.html/tagline.html added to them
-       launch/           - code for launch.xwt.org
-       src/              - source code for servlets running on xwt.org
-
-   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
-       signtool          - the Netscape Object Signing tool, for signing applets
-       signcode.exe      - the Microsoft ActiveX Signing tool, for signing ActiveX controls
-       guidgen.exe       - the Microsoft GUID generator, for generating OLE clsid's
-       cabarc.exe        - the Microsoft CAB file generator, for creating .cab archives
-       javasrc.jar       - javasrc, a tool for generating hyperlinked, syntax-colored html from java code
-
-   src/                  - all java source files and xwt sources go here
-       jazz/             - jazzlib, which XWT currently uses since libgcj's java.util.zip.* is broken
-
+/      
+   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/
        org/
-           bouncycastle/ - the BouncyCastle Crypto Library
-           gimp/tigert/  - some icons used in XWT Mail, by Tigert Labs
-           mozilla/      - a copy of Rhino, the Mozilla JavaScript interpreter
-
-           xwt/          - the source code for the XWT engine
-               demo/     - the XWT widget sampler
-               chess/    - XWT Chess
-               fonts/    - some XWF fonts
-               mail/     - XWT Mail
-               plat/     - platform abstraction classes for XWT
-               tasks/    - source code for some ANT tasks used in the XWT build process
-               themes/   - some XWT themes
-               util/     - some helper classes
-
-       xwt/standard/     - the XWT standard library
-
-
+           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
+Build Targets and Requirements
 
 
-To build, make sure your $JAVA_HOME points to jdk1.2 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
+    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
     Java2         - Any Java 1.2+ compliant JVM
-
-Valid <target>s are:
-
-    build         - builds a binary for the selected platform
-    dist          - creates deployment materials for the selected platform in dist/
-    run           - runs the 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/
-    www           - rebuild www/html/
-    push          - push changes to the web server via ssh (RSA auth)
-
-
+    clean         - cleanup
 
 
 ______________________________________________________________________________
 
 
 ______________________________________________________________________________
-Building
-
-- If you only want to build the JVM version of XWT, delete these two
-  files:
-
-    xwt/src/org/xwt/plat/Win32.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.1. You can follow the steps below to
-  create a cross-compiler from linux to Win32.
-
-  If the steps below fail, try adding "-D 20-Mar-2002" to the cvs
-  checkout line; 20-Mar-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 two patches at the end of this file which can be
-  applied to the branch -- the first disables Win32 file locking (so
-  you can view XWT's log files while it is running), and the second
-  makes Throwable.printStackTrace() work.
-
-  # 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://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz
-  sudo tar -C $PREFIX/i686-pc-mingw32/ -xvzf ~/mingw-gcj/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 \
-                   --disable-hash-synchronization \
-                   --disable-interpreter \
-                   --enable-sjlj-exceptions
-  
-  make
-  sudo make install
-
+inet_addr patch
 
 
+Index: java/net/natInetAddress.cc
+===================================================================
+RCS file: /cvs/gcc/gcc/libjava/java/net/natInetAddress.cc,v
+retrieving revision 1.18.18.1
+diff -u -r1.18.18.1 natInetAddress.cc
+--- java/net/natInetAddress.cc  4 Mar 2002 20:02:19 -0000       1.18.18.1
++++ java/net/natInetAddress.cc  27 May 2002 22:54:40 -0000
+@@ -9,6 +9,7 @@
+ details.  */
+
+ #include <config.h>
++#include <platform.h>
 
 
+ #ifdef WIN32
 
 
-______________________________________________________________________________
-File Locking Patch
-
-Index: java/io/natFileDescriptorWin32.cc
+Index: include/win32.h
 ===================================================================
 ===================================================================
-RCS file: /cvs/gcc/gcc/libjava/java/io/natFileDescriptorWin32.cc,v
-retrieving revision 1.5.2.2
-diff -u -r1.5.2.2 natFileDescriptorWin32.cc
---- java/io/natFileDescriptorWin32.cc   10 Mar 2002 03:34:59 -0000  1.5.2.2
-+++ java/io/natFileDescriptorWin32.cc   27 Apr 2002 08:40:40 -0000
-@@ -112,7 +112,7 @@
-         create = CREATE_ALWAYS;
-     }
--  handle = CreateFile(buf, access, share, NULL, create, 0, NULL);
-+  handle = CreateFile(buf, access, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, create, 0, NULL);
-   if (handle == INVALID_HANDLE_VALUE)
-     {
+RCS file: /cvs/gcc/gcc/libjava/include/win32.h,v
+retrieving revision 1.3.8.5
+diff -u -r1.3.8.5 win32.h
+--- include/win32.h     24 Apr 2002 01:04:45 -0000      1.3.8.5
++++ include/win32.h     27 May 2002 22:54:40 -0000
+@@ -35,4 +35,8 @@
+    ARRAY and return the exact number of values stored.  */
+ extern int backtrace (void **__array, int __size);
+
++// configure cannot correctly detect inet_addr due to Win32's
++// oddball header naming scheme
++#define HAVE_INET_ADDR
++
+ #endif /* __JV_WIN32_H__ */
 
 
 
 
 
 
@@ -232,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
 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 *);
 @@ -308,6 +308,7 @@
    friend void _Jv_LayoutVTableMethods (jclass klass);
    friend void _Jv_SetVTableEntries (jclass, _Jv_VTable *);
@@ -247,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
 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;
 @@ -577,4 +577,8 @@
      // Default to returning null.  Derived classes implement this.
      return null;
@@ -263,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
 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);
    }
 @@ -123,21 +123,64 @@
      printStackTrace (writer);
    }
@@ -275,17 +165,17 @@ diff -u -r1.10 Throwable.java
    {
 -    try
 -      {
    {
 -    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);
 +      try
 +          {
 +              CPlusPlusDemangler cPlusPlusFilter = new CPlusPlusDemangler (wr);
 +              PrintWriter writer = new PrintWriter (cPlusPlusFilter);
-+              printRawStackTrace (writer);    
++              printRawStackTrace (writer);     
 +              writer.close ();
 +              if (cPlusPlusFilter.written > 0) return;
 +          }
 +              writer.close ();
 +              if (cPlusPlusFilter.written > 0) return;
 +          }
@@ -300,7 +190,7 @@ diff -u -r1.10 Throwable.java
        }
 -    catch (Exception e1)
 -      {
        }
 -    catch (Exception e1)
 -      {
--      printRawStackTrace (wr);
+-       printRawStackTrace (wr);
 +      
 +      long[] allAddrs = ClassLoader.getAllMethodAddrs();
 +      java.lang.reflect.Method[] meths = ClassLoader.getAllMethods();
 +      
 +      long[] allAddrs = ClassLoader.getAllMethodAddrs();
 +      java.lang.reflect.Method[] meths = ClassLoader.getAllMethods();
@@ -346,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
 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>
 @@ -40,6 +40,10 @@
  #include <java/lang/StringBuffer.h>
  #include <java/io/Serializable.h>
@@ -415,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
 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>
  
 @@ -32,6 +32,7 @@
  #include <stdio.h>