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.