X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=README;h=aa161cc25872cd0ed0a7a108e84f71d82253e85a;hp=f06e7f5077fbfb179db61160d34e3c5fa113b205;hb=3c00949ca079114f52ee5fe60815420bbc6c91b1;hpb=7bba4af5d54cef6c873309daf57b917868fc13e2 diff --git a/README b/README index f06e7f5..aa161cc 100644 --- a/README +++ b/README @@ -1,6 +1,7 @@ ============================================================================== XWT README + ______________________________________________________________________________ Documentation @@ -8,235 +9,108 @@ 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 / - 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 - 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/ - 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= +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. -If you're using jdk1.2 or jdk1.3 to compile, you should remove -src/org/xwt/plat/Java14.java, since it can only be compiled with -jdk1.4+. +Public build targets: -The name of any class in org.xwt.plat is a valid ; here is a -list as of 20-Mar-2002: - - 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 - -Valid 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/ + clean - cleanup ______________________________________________________________________________ -Building +inet_addr patch -- 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 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. - - # 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 - -- The Linux native version is still experimental. 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 - - -______________________________________________________________________________ -GetFullPathName patch - -Index: natFileWin32.cc +Index: java/net/natInetAddress.cc =================================================================== -RCS file: /cvs/gcc/gcc/libjava/java/io/natFileWin32.cc,v -retrieving revision 1.9.2.1 -diff -u -r1.9.2.1 natFileWin32.cc ---- natFileWin32.cc 16 Apr 2002 15:35:20 -0000 1.9.2.1 -+++ natFileWin32.cc 14 May 2002 01:57:39 -0000 -@@ -106,7 +106,7 @@ - LPTSTR unused; - char buf2[MAX_PATH]; - if(!GetFullPathName(buf, MAX_PATH, buf2, &unused)) -- throw new IOException (JvNewStringLatin1 ("GetFullPathName failed")); -+ return NULL; - - // FIXME: what encoding to assume for file names? This affects many - // calls. - +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 ++#include -______________________________________________________________________________ -File Locking Patch + #ifdef WIN32 -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__ */ @@ -248,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 *); @@ -263,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; @@ -279,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); } @@ -291,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; + } @@ -316,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(); @@ -362,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 #include @@ -431,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