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