2002/03/21 01:19:26
[org.ibex.core.git] / README
1 ==============================================================================
2 XWT README
3
4 ______________________________________________________________________________
5 Documentation
6
7 If you're new to XWT, you should read the documentation in the order
8 presented below:
9
10 - README [this file]
11
12       Start here. Includes a map of all other documentation and a
13       description of the directory strucure
14
15 - The XWT home page [www/ or http://www.xwt.org/]
16
17       A complete copy of all static and dynamic content for
18       www.xwt.org is in the xwt/www/ directory.
19
20 - The XWT tutorial [www/html/tutorial.html_]:
21
22       Gentle introduction to what XWT is, and how to write
23       .xwt's. Good for anybody who wants to write XWT applications.
24
25 - The XWT reference [www/html/reference.html]
26
27       Precise, technical spec of exactly how XWT works. Assumes
28       familiarity with XWT (ie, you've read the tutorial). This is the
29       authoritative source for how an XWT engine should
30       behave.
31
32 - Javadoc [www/html/javadoc/package-summary.html]
33
34       The org.xwt.* packages are all documented with javadoc. If
35       you've just checked out or downloaded a fresh copy of the XWT
36       distribution, you can generate the javadoc by typing
37       "./ant www" at the root directory of the distribution. You
38       should start by reading the package summary for org.xwt.Main,
39       and work your way around from there.
40
41 - Javasrc [www/html/javasrc/index.html]
42
43       Javasrc generates a syntax-colored and hyperlinked html copy of
44       the XWT source code. To generate this documentation, type "./ant www"
45       from the root directory of the distribution.
46
47
48 ______________________________________________________________________________
49 Directory Structure
50
51 /
52    README                - this file
53    COPYING               - copyright information for all files in this distro
54    TM                    - trademark information for XWT
55    ant                   - a unix shell script to launch ant
56    bin/                  - all binary stuff generated by ant builds
57    build.xml             - ANT build file
58    doc/                  - documentation
59
60    www/                  - a copy of all static and dynamic content on xwt.org
61        etc/              - configuration files
62        html/             - static content -- files ending with an underscore get
63                            prefix.html/suffix.html/tagline.html added to them
64        launch/           - code for launch.xwt.org
65        src/              - source code for servlets running on xwt.org
66
67    lib/                  - any third-party binary stuff needed during the build process
68        javago            - a copy of the javago post-compilation bytecode inliner
69        ant.jar           - the Jakarta project's ANT build tool, including Sun's XML parser
70        netscape.jar      - minimal set of classes required for compiling against Netcape's Applet interfaces
71        msjvm.jar         - minimal set of classes required for compiling against Microsoft's Applet interfaces
72        signtool          - the Netscape Object Signing tool, for signing applets
73        signcode.exe      - the Microsoft ActiveX Signing tool, for signing ActiveX controls
74        guidgen.exe       - the Microsoft GUID generator, for generating OLE clsid's
75        cabarc.exe        - the Microsoft CAB file generator, for creating .cab archives
76        javasrc.jar       - javasrc, a tool for generating hyperlinked, syntax-colored html from java code
77
78    src/                  - all java source files and xwt sources go here
79        jazz/             - jazzlib, which XWT currently uses since libgcj's java.util.zip.* is broken
80
81        org/
82            bouncycastle/ - the BouncyCastle Crypto Library
83            gimp/tigert/  - some icons used in XWT Mail, by Tigert Labs
84            mozilla/      - a copy of Rhino, the Mozilla JavaScript interpreter
85
86            xwt/          - the source code for the XWT engine
87                demo/     - the XWT widget sampler
88                chess/    - XWT Chess
89                fonts/    - some XWF fonts
90                mail/     - XWT Mail
91                plat/     - platform abstraction classes for XWT
92                tasks/    - source code for some ANT tasks used in the XWT build process
93                themes/   - some XWT themes
94                util/     - some helper classes
95
96        xwt/standard/     - the XWT standard library
97
98
99
100 ______________________________________________________________________________
101 Build Targets
102
103 To build, make sure your $JAVA_HOME points to jdk1.2 or later, and type
104
105     ./ant -Dplat=<platform> <targetname>
106
107 The name of any class in org.xwt.plat is a valid <platform>; here is a
108 list as of 20-Mar-2002:
109
110     Win32         - Windows 95 / NT4 or later
111     Java2         - Any Java 1.2+ compliant JVM
112
113 Valid <target>s are:
114
115     build         - builds a binary for the selected platform
116     dist          - creates deployment materials for the selected platform in dist/
117     run           - runs the binary for the selected platform
118
119 The following targets do not require that you specify a platform:
120
121     compile       - compiles all .java's to .class'es
122     clean         - empties bin/ and compiled binaries in dist/
123     www           - rebuild www/html/
124     push          - push changes to the web server via ssh (RSA auth)
125
126
127
128
129 ______________________________________________________________________________
130 Building a compiler
131
132 - The Win32 native version of XWT can ONLY be built with the very
133   latest pre-release of GCC 3.1. You can follow the steps below to
134   create a cross-compiler from linux to Win32.
135
136   If the steps below fail, try adding "-D 20-Mar-2002" to the cvs
137   checkout line; 20-Mar-2002 was the last date on which the compiler
138   was known to work. Please don't do this unless you have attempted
139   without it, however, since it puts additional strain on the gcc cvs
140   server.
141
142
143   # create an install area
144   export CLASSPATH=
145   export PREFIX=/usr/local/gcc
146   export CC=/usr/bin/gcc
147   
148   sudo rm -rf $PREFIX
149   export PATH=$PATH:$PREFIX/bin
150   sudo mkdir $PREFIX
151   sudo mkdir $PREFIX/i686-pc-mingw32/
152   
153   wget http://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz
154   sudo tar -C $PREFIX/i686-pc-mingw32/ -xvzf ~/mingw-gcj/MinGW-1.1.tar.gz
155   
156   wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.11.2.tar.gz
157   tar xzvf binutils-2.11.2.tar.gz
158   cd binutils-2.11.2
159   ./configure --target=i686-pc-mingw32 --prefix=$PREFIX
160   make
161   sudo make install
162   cd ..
163   
164   cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/gcc co -rgcc-3_1-branch gcc
165   mkdir bin
166   cd bin
167   ../gcc/configure \
168                    --prefix=$PREFIX \
169                    --target=i686-pc-mingw32 \
170                    --host=i686-pc-linux-gnu \
171                    --enable-languages=c,c++,java \
172                    --disable-nls \
173                    --with-as=$PREFIX/i686-pc-mingw32/bin/as \
174                    --with-ld=$PREFIX/i686-pc-mingw32/bin/ld \
175                    --with-gnu-ld \
176                    --with-gnu-as \
177                    --enable-libgcj \
178                    --enable-gc-type=boehm \
179                    --disable-shared \
180                    --enable-threads=win32 \
181                    --disable-hash-synchronization \
182                    --disable-interpreter \
183                    --enable-sjlj-exceptions
184   
185   make
186   sudo make install
187