623
|
1 This directory tree holds version 21.5 of XEmacs.
|
|
2
|
|
3
|
|
4 *** What is XEmacs?
|
|
5
|
|
6 XEmacs is a powerful, highly customizable open source text editor and
|
|
7 application development system, with full GUI support. It is protected
|
|
8 under the GNU Public License and related to other versions of Emacs, in
|
|
9 particular GNU Emacs. Its emphasis is on modern graphical user
|
|
10 interface support and an open software development model, similar to
|
|
11 Linux. XEmacs has an active development community numbering in the
|
|
12 hundreds (and thousands of active beta testers on top of this), and runs
|
|
13 on all versions of MS Windows, on Linux, and on nearly every other
|
|
14 version of Unix in existence. Support for XEmacs has been supplied by
|
|
15 Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical
|
|
16 Laboratory, Amdahl Corporation, BeOpen, and others, as well as the
|
|
17 unpaid time of a great number of individual developers.
|
|
18
|
|
19
|
|
20
|
|
21 *** What platforms does it run on?
|
|
22
|
|
23 -- MS Windows (It has been tested on NT, 2000, 95, 98, and ME; you
|
|
24 can also compile Cygwin and MinGW versions.)
|
|
25 -- Unix (It is regularly tested on Linux, Solaris, SunOS, HP/UX,
|
|
26 FreeBSD, OpenBSD, BSD/OS aka BSDI, Tru64 aka DEC/OSF, SCO5,
|
|
27 and probably others. It should work on all versions of Unix
|
|
28 created in the last 10 years or so, perhaps with a bit of
|
|
29 work on more obscure platforms to correct bit-rot. It uses
|
|
30 a sophisticated configuration system to auto-detect zillions
|
|
31 of features that are implemented differently in different
|
|
32 versions of Unix, so it will probably work on your vendor's
|
|
33 version, possibly with a bit of tweaking, even if we've
|
|
34 never heard of it.)
|
|
35 -- MacOS/X (As an X Windows application. Unfortunately there is no
|
|
36 support currently for MacOS-specific features.)
|
|
37
|
|
38 There is also a port of XEmacs 19.14 (an older version, circa 1996)
|
|
39 for all versions of MacOS, with extensive support for MacOS-specific
|
|
40 features. See the FAQ for more details.
|
|
41
|
|
42 There are rumors of an in-progress port to OS/2. See the FAQ.
|
|
43
|
|
44 XEmacs will probably never work on MS/DOS or Windows 3.1, and we're
|
|
45 not particularly interested in patches for these platforms, as they
|
|
46 would introduce huge amounts of code clutter due to the woefully
|
|
47 underfeatured nature of these systems. (See GNU Emacs for a port to
|
|
48 MS/DOS.)
|
|
49
|
|
50
|
|
51
|
|
52 *** Where's the FAQ?
|
|
53
|
|
54 Look at `man/xemacs-faq.texi'.
|
|
55
|
|
56 For the very latest version, see
|
|
57 http://cvs.xemacs.org/cgi-bin/cvswebxe/xemacs/man/xemacs-faq.texi.
|
|
58
|
|
59
|
|
60
|
|
61 *** Where's the latest version?
|
|
62
|
|
63 For up-to-date information on XEmacs, see http://www.xemacs.org.
|
|
64
|
|
65 To download XEmacs, see http://ftp.xemacs.org/ or
|
|
66 ftp://ftp.xemacs.org/pub/xemacs/.
|
|
67
|
|
68 For the latest experimental sources, see http://cvs.xemacs.org/, which
|
|
69 gives instructions on how to get started with CVS access.
|
|
70
|
|
71 There are numerous mailing lists for discussion of XEmacs. The
|
|
72 current description of these lists can be found at
|
|
73 http://www.xemacs.org/Lists/, or see `etc/MAILINGLISTS'. General
|
|
74 discussion of bugs, new features, etc. takes place on
|
|
75 xemacs-beta@xemacs.org.
|
|
76
|
|
77
|
|
78
|
|
79 *** How do I build and install XEmacs?
|
0
|
80
|
|
81 See the file `etc/NEWS' for information on new features and other
|
|
82 user-visible changes since the last version of XEmacs.
|
|
83
|
253
|
84 The file `INSTALL' in this directory says how to bring up XEmacs on
|
|
85 Unix and Cygwin, once you have loaded the entire subtree of this
|
|
86 directory.
|
0
|
87
|
253
|
88 See the file `nt/README' for instructions on building XEmacs for
|
|
89 Microsoft Windows.
|
|
90
|
424
|
91 The file 'README.packages' will guide you in the installation of
|
|
92 (essential) add on packages.
|
|
93
|
623
|
94
|
|
95
|
|
96 *** How do I deal with bugs or with problems building, installing, or running?
|
|
97
|
|
98 The file `PROBLEMS' contains information on many common problems that
|
|
99 occur in building, installing and running XEmacs.
|
|
100
|
|
101 Reports of bugs in XEmacs should be sent to xemacs-beta@xemacs.org.
|
|
102 You can also post to the newsgroup comp.emacs.xemacs (or equivalentlt,
|
|
103 send to the mailing list xemacs@xemacs.org), but it is less likely
|
|
104 that the developers will see it in a timely fashion. See the "Bugs"
|
|
105 section of the XEmacs manual for more information on how to report
|
|
106 bugs. (The file `BUGS' in this directory explains how you can find
|
|
107 and read that section using the Info files that come with XEmacs.)
|
|
108 See `etc/MAILINGLISTS' for more information on mailing lists relating
|
|
109 to XEmacs.
|
|
110
|
|
111
|
781
|
112 *** How do I get started developing XEmacs?
|
|
113
|
|
114 First, get yourself set up under CVS so that you can access the CVS
|
|
115 repositories containing the XEmacs sources and the XEmacs packages.
|
|
116
|
|
117 Next, set up your layout. This is important, as a good layout will
|
|
118 facilitate getting things done efficiently, while a bad layout will could
|
|
119 lead to disaster, as you can't figure out which code is the most recent,
|
|
120 which can be thrown away, etc. We suggest the following layout: (feel free
|
|
121 to make changes)
|
|
122
|
|
123 -- Everything goes under /src/xemacs (use a different directory if you
|
|
124 want). From now, instead of saying /src/xemacs, we use <xsrc-top>, to
|
|
125 make it easier in case someone picked a different directory.
|
|
126
|
|
127 -- Package source is in <xsrc-top>/package-src.
|
|
128
|
|
129 -- Installed packages go under <xsrc-top>/xemacs-packages, and
|
|
130 <xsrc-top>/mule-packages.
|
|
131
|
|
132 -- A "workspace" is a complete copy of the sources, in which you do work of
|
|
133 a particular kind. Workspaces can be differentiated by which branch of
|
|
134 the source tree they extend off of -- usually either the stable or
|
|
135 experimental, unless other branches have been created (for example, Ben
|
|
136 created a branch for his Mule work because (1) the project was long-term
|
|
137 and involved an enormous number of changes, (2) people wanted to be able
|
|
138 to look at what his work in progress, and (3) he wanted to be able to
|
|
139 check things in and in general use source-code control, since it was a
|
|
140 long-term project). Workspaces are also differentiated in what their
|
|
141 purpose is -- general working workspace, workspace for particular
|
|
142 projects, workspace keeping the latest copy of the code in one of the
|
|
143 branches without mods, etc.
|
|
144
|
|
145 -- Various workspaces are subdirectories under <xsrc-top>, e.g.:
|
|
146
|
|
147 -- <xsrc-top>/working (the workspace you're actively working on,
|
|
148 periodically synched up with the latest trunk)
|
|
149
|
|
150 -- <xsrc-top>/stable (for making changes to the stable version of
|
|
151 XEmacs, which sits on a branch)
|
|
152
|
|
153 -- <xsrc-top>/unsigned-removal (a workspace for a specific, difficult
|
|
154 task that's going to affect lots of source and take a long time, and
|
|
155 so best done in its own workspace without the interference of other
|
|
156 work you're doing. Also, you can commit just this one large change,
|
|
157 separate from all the other changes).
|
|
158
|
|
159 -- <xsrc-top>/latest (a copy of the latest sources on the trunk,
|
|
160 i.e. the experimental version of XEmacs, with no patches in it;
|
|
161 either update it periodically, by hand, or set up a cron job to do it
|
|
162 automatically). Set it up so it can be built, and build it so you
|
|
163 have a working XEmacs. (Building it might also go into the cron job.)
|
|
164
|
|
165 This workspace serves a number of purposes:
|
|
166 -- 1. You always have a recent version of XEmacs you can compare
|
|
167 against when something you're working on breaks. It's true
|
|
168 that you can do this with cvs diff, but when you need to do
|
|
169 some serious investigation, this method just fails.
|
|
170 -- 2. You (almost) always have a working, up-to-date executable that
|
|
171 can be used when your executable is crashing and you need to
|
|
172 keep developing it, or when you need an `xemacs' to build
|
|
173 packages, etc.
|
|
174 -- 3. When creating new workspaces, you can just copy the `latest'
|
|
175 workspace using GNU cp -a. You have all the .elc's built,
|
|
176 everything else probably configured, any spare files in place
|
|
177 (e.g. some annoying xpm.dll under Windows, etc.).
|
|
178
|
|
179 -- <xsrc-top>/latest-stable/ (equivalent to <xsrc-top>/latest/, but
|
|
180 for the Stable branch of XEmacs, rather than the Experimental branch
|
|
181 of XEmacs). This may or may not be necessary depending on how much
|
|
182 development you do of the stable branch.
|
|
183
|
|
184 -- <xsrc-top>/xemacsweb is a workspace for working on the XEmacs web site.
|
|
185
|
|
186 -- <xsrc-top>/in-patches for patches received from email and saved to files.
|
|
187
|
|
188 -- <xsrc-top>/out-patches for locally-generated patches to be sent to
|
|
189 xemacs-patches@xemacs.org. Less useful now that the patcher util has been
|
|
190 developed.
|
|
191
|
|
192 -- <xsrc-top>/build, for build trees when compiling and testing XEmacs with
|
|
193 various configuration options turned off and on. The scripts in
|
|
194 xemacs-builds/ben (see below) can be used to automate building XEmacs
|
|
195 workspaces with many different configuration options and automatically
|
|
196 filtering out the normal output so that you see only the abnormal
|
|
197 output.
|
|
198
|
|
199 -- <xsrc-top>/xemacs-builds, for the xemacs-builds module, which you need
|
|
200 to check out separately in CVS. This contains scripts used for building
|
|
201 XEmacs, automating and simplifying using CVS, etc. Under various
|
|
202 people's directories are their own build and other scripts. The
|
|
203 currently most-maintained scripts are under ben/, where there are easily
|
|
204 configurable scripts that can be used to easily build any workspace
|
|
205 (esp. if you've more or less followed the layout presented above)
|
|
206 unattended, with one or more configuration states (there's a
|
|
207 pre-determined list of the most useful, but it's easy to change). The
|
|
208 output is filtered and split up in various ways so that you can identify
|
|
209 which output came from where, and you can see the output either full or
|
|
210 with all "normal" output except occasional status messages filtered so
|
|
211 that you only see the abnormal ones.
|
|
212
|
623
|
213 *** What's the basic layout of the code?
|
0
|
214
|
|
215 The file `configure' is a shell script to acclimate XEmacs to the
|
|
216 oddities of your processor and operating system. It will create a
|
|
217 file named `Makefile' (a script for the `make' program), which helps
|
|
218 automate the process of building and installing emacs. See INSTALL
|
|
219 for more detailed information.
|
|
220
|
|
221 The file `configure.in' is the input used by the autoconf program to
|
|
222 construct the `configure' script. Since XEmacs has configuration
|
|
223 requirements that autoconf can't meet, `configure.in' uses an unholy
|
|
224 marriage of custom-baked configuration code and autoconf macros; it
|
|
225 may be wise to avoid rebuilding `configure' from `configure.in' when
|
|
226 possible.
|
|
227
|
|
228 The file `Makefile.in' is a template used by `configure' to create
|
|
229 `Makefile'.
|
|
230
|
|
231 There are several subdirectories:
|
|
232
|
623
|
233 `src' holds the C code for XEmacs (the XEmacs Lisp interpreter and its
|
0
|
234 primitives, the redisplay code, and some basic editing functions).
|
623
|
235 `lisp' holds the XEmacs Lisp code for XEmacs (most everything else).
|
0
|
236 `lib-src' holds the source code for some utility programs for use by
|
|
237 or with XEmacs, like movemail and etags.
|
|
238 `etc' holds miscellaneous architecture-independent data files
|
|
239 XEmacs uses, like the tutorial text and the Zippy the Pinhead quote
|
|
240 database. The contents of the `lisp', `info' and `man'
|
|
241 subdirectories are architecture-independent too.
|
623
|
242 `lwlib' holds the C code for the X toolkit objects used by XEmacs.
|
0
|
243 `info' holds the Info documentation tree for XEmacs.
|
623
|
244 `man' holds the source code for the XEmacs online documentation.
|
|
245 `nt' holds files used compiling XEmacs under Microsoft Windows.
|