2002/11/26 21:29:19
[org.ibex.core.git] / README
diff --git a/README b/README
index 4ff3a68..bca8015 100644 (file)
--- a/README
+++ b/README
@@ -42,6 +42,7 @@ ______________________________________________________________________________
 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
@@ -54,33 +55,14 @@ Directory Structure
        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
-
        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
-
-
+           xwt/builtin/  - .xwt's and .png's that are essential to bootstrapping the engine
+           xwt/plat/     - platform-specific code
 
 ______________________________________________________________________________
 Build Targets
@@ -95,7 +77,7 @@ The name of any class in org.xwt.plat is a valid <platform>; here is a
 list as of 20-Mar-2002:
 
     Win32         - Windows 95 / NT4 or later
-    Java2         - Any Java 1.2+ compliant JVM
+    Java12        - Any Java 1.2+ compliant JVM
 
 Valid <target>s are:
 
@@ -110,6 +92,10 @@ The following targets do not require that you specify a platform:
 ______________________________________________________________________________
 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:
 
@@ -122,20 +108,19 @@ Building
 
 
 - 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
+  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 20-Mar-2002" to the cvs
-  checkout line; 20-Mar-2002 was the last date on which the compiler
+  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 a bug related to
-  GetFullPathName, the second disables Win32 file locking (so you can
-  view XWT's log files while it is running), and the third makes
-  Throwable.printStackTrace() work.
+  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=
@@ -175,15 +160,15 @@ Building
                    --enable-gc-type=boehm \
                    --disable-shared \
                    --enable-threads=win32 \
-                   --disable-hash-synchronization \
+                   --enable-hash-synchronization \
                    --disable-interpreter \
                    --enable-sjlj-exceptions
   
   make
   sudo make install
 
-- The Linux native version is still experimental. You should configure
-  your compiler with:
+- 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 \
@@ -197,6 +182,88 @@ Building
 
 
 ______________________________________________________________________________
+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
+
+
+______________________________________________________________________________
+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
+
+Index: include/win32.h
+===================================================================
+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__ */
+
+
+
+______________________________________________________________________________
+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