annotate README @ 781:eba92770173a

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