This commit was generated by cvs2svn to compensate for changes in r5670,
[chise/xemacs-chise.git.1] / INSTALL
1 XEmacs Installation Guide
2 Copyright (c) 1994, 1995, 1996 Board of Trustees, University of Illinois
3 Copyright (c) 1994-1999 Free Software Foundation, Inc.
4
5    Permission is granted to anyone to make or distribute verbatim copies
6    of this document as received, in any medium, provided that the
7    copyright notice and permission notice are preserved,
8    and that the distributor grants the recipient permission
9    for further redistribution as permitted by this notice.
10
11    Permission is granted to distribute modified versions
12    of this document, or of portions of it,
13    under the above conditions, provided also that they
14    carry prominent notices stating who last changed them,
15    and that any new or changed statements about the activities
16    of the Free Software Foundation are approved by the Foundation.
17
18
19 BUILDING AND INSTALLATION FOR UNIX AND CYGWIN
20
21 (for Microsoft Windows, see nt/README also.)
22
23 PREREQUISITES
24 =============
25
26 Make sure your system has enough swapping space allocated to handle a
27 program whose pure code is 900k bytes and whose data area is at least
28 400k and can reach 8Mb or more. Note that a typical XEmacs build is
29 much bigger. If the swapping space is insufficient, you will get an
30 error in the command `temacs -batch -l loadup dump', found in
31 `./src/Makefile.in.in', or possibly when running the final dumped
32 XEmacs.
33
34 Verify that your users have a high enough stack limit. On some systems
35 such as OpenBSD and OSF/Tru64 the default is 2MB which is too low.  On
36 MacOS/X (Darwin), it's 512kB.  See 'PROBLEMS' for details.
37
38 Building XEmacs requires about 100 Mb of disk space (including the
39 XEmacs sources).  Once installed, XEmacs occupies between 20 and 100 Mb
40 in the file system where it is installed; this includes the executable files,
41 Lisp libraries, miscellaneous data files, and on-line documentation. The
42 exact amount depends greatly on the number of extra lisp packages that are
43 installed 
44
45 XEmacs requires an ANSI C compiler, such as GCC.  If you wish to build
46 the documentation yourself, you will need at least version 1.68 of
47 makeinfo (GNU texinfo-3.11).  GNU Texinfo 4.2 is recommended; it is
48 necessary for building packages, and we may move to it for the core.
49
50 ADD-ON LIBRARIES
51 ================
52
53 Decide on what other software packages you would like to use with
54 XEmacs, but are not yet available on your system.  On some systems,
55 Motif and CDE are optional additions.  On Solaris, the SUNWaudmo
56 package enables native sound support.  There are also a number of free
57 software packages that XEmacs can use.  If these are not yet available
58 on your system, obtain, build and install those external packages
59 before building XEmacs.  The packages XEmacs can use are:
60
61    Xaw3d, XPM, JPEG, compface, PNG, zlib, GNU DBM, Berkeley DB, socks,
62    term, NAS, Canna, Kinput2, SJ3, Wnn.
63
64 You can get (most of) them from the XEmacs ftp site at
65 ftp://ftp.xemacs.org/pub/xemacs/aux
66
67 If you want users on other systems to be able to use the XEmacs you
68 have built, try to build those packages so that the generated
69 libraries are statically linked.
70
71 Use the --site-includes and --site-libraries options when building
72 XEmacs to allow configure to find the external software packages.
73 If you link with dynamic (``.so'') external package libraries, which
74 is not recommended, you will also need to add the library directories
75 to the --site-runtime-libraries option. For your convenience these can
76 be set together by using the --with-site-prefix command. This will set
77 these variables as needed assuming your libraries are organised as a
78 typical /usr tree.
79
80 PACKAGE SYSTEM
81 ==============
82
83 The file README.packages contain information vital to have a fully
84 working XEmacs. This information was not included in this file only
85 because it is too large for this terse INSTALL.  Please read
86 README.packages now!
87
88 CONFIGURATION OPTIONS
89 =====================
90
91 In the top level directory of the XEmacs distribution, run the
92 program `configure' as follows:
93
94     ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...
95
96 Almost always, you should let `configure' (actually the shell script
97 `config.guess') guess your host type, by omitting the
98 CONFIGURATION-NAME argument.  If you like to experiment, specify a
99 configuration name in the form MACHINE-VENDOR-OPSYS, for example:
100
101 sparc-sun-solaris2.6
102
103 See config.guess and configure.in for valid values for MACHINE,
104 VENDOR, and OPSYS.  Also check `./etc/MACHINES' for advice on building
105 on particular machines.
106
107 If you don't want X support, specify `--without-x'.  If you omit this
108 option, `configure' will try to autodetect whether your system has X,
109 and arrange to use it if present.
110
111 The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
112 process where the compiler should look for the include files and
113 object libraries used with the X Window System.  Normally, `configure'
114 is able to find them; these options are necessary if you have your X
115 Window System files installed in unusual places.
116
117 The `--site-includes=DIR' and `--site-libraries=DIR' options allow you
118 to specify additional places the compiler should look for include
119 files and object libraries.  You may specify multiple DIR's by
120 enclosing the list in quotes.  All the external packages you want to
121 use with XEmacs (e.g. xpm, wnn, ...) described later should have their
122 include and library directories defined using these options.
123
124 The `--site-runtime-libraries=DIR' option specifies directories to
125 search for shared libraries at run time.  This may be necessary if you
126 link with dynamic libraries that are installed in non-standard
127 directories, or if you expect some of the libraries used to build
128 XEmacs to be in a different directory at run time than at build time.
129 Usually this will add a `-R' to each directory specified and use that
130 when linking XEmacs.  If you use this option, you must specify ALL of
131 the directories containing shared libraries at run time, including
132 system directories.
133
134 Rationale: Some people think that directories in --site-libraries
135 should be automatically used to update --site-runtime-libraries.
136 Here's a real-life scenario that explains why this is not done: You
137 build binaries for your company using static libs in
138 /net/toy/hack/lib.  XEmacs adds /net/toy/hack/lib to the runpath of
139 the executable you've built.  Since there are only static libs there,
140 the system runtime loader will look in this dir, and ignore it,
141 causing only a .01 second delay in starting XEmacs.  You leave the
142 company for a job at a small Silicon Valley startup.  Time passes.
143 The next guy who inherits your machine objects to working on a machine
144 named `toy', and gets the sysadmin to rename the machine `godzilla'.
145 The SA forgets to remove the old entry for `toy' from the hosts file.
146 Now the system loader will still try to access /net/toy/, and the
147 automounter will hang trying to access /net/toy.  XEmacs suddenly
148 takes 30 seconds longer to start up, no one can figure out why, and
149 everyone at your old company curses your name, thinking that you've
150 put a time bomb into XEmacs.  And they're right!
151
152 The `--with-gcc' option specifies that the build process should
153 compile XEmacs using GCC.  The `--compiler' option allows you to
154 specify some other compiler to be used to compile XEmacs.  If neither
155 option is specified, the environment variable CC is used instead.
156 Otherwise the compiler will then default to 'cc'.
157
158 The `--cflags' option specifies the CFLAGS the build process should
159 use when compiling XEmacs.  Otherwise the value of the environment
160 variable CFLAGS is consulted.  If that is also undefined, CFLAGS
161 defaults to "-g -O" for gcc and "-g" for all other compilers.
162
163 The `--dynamic' option specifies that configure should try to link
164 emacs dynamically rather than statically.
165
166 You can build XEmacs for several different machine types from a single
167 source directory.  To do this, you must use a version of `make' that
168 supports the `VPATH' variable, such as GNU `make'.  Create separate
169 build directories for the different configuration types, and in each
170 one, run the XEmacs `configure' script.  `configure' looks for the
171 Emacs source code in the directory that `configure' is in.
172
173 The `--prefix=PREFIXDIR' option specifies where the installation process
174 should put XEmacs and its data files.  This defaults to `/usr/local'.
175 - XEmacs (and the other utilities users run) go in PREFIXDIR/bin
176   (unless the `--exec-prefix' option says otherwise).
177 - The architecture-independent files go in PREFIXDIR/lib/xemacs-VERSION
178   (where VERSION is the version number of XEmacs, like `21.0').
179 - The architecture-dependent files go in
180   PREFIXDIR/lib/xemacs-VERSION/CONFIGURATION-NAME
181   (where CONFIGURATION-NAME is the host type, like mips-dec-ultrix4.2),
182   unless the `--exec-prefix' option says otherwise.
183
184 The `--exec-prefix=EXECDIR' option allows you to specify a separate
185 portion of the directory tree for installing architecture-specific
186 files, like executables and utility programs.  If specified,
187 - XEmacs (and the other utilities users run) go in EXECDIR/bin, and
188 - The architecture-dependent files go in
189   EXECDIR/lib/xemacs-VERSION/CONFIGURATION-NAME.
190 EXECDIR/bin should be a directory that is normally in users' PATHs.
191
192 If you specify --prefix (or any of the other installation directory
193 options), they will get compiled into the xemacs executable so it will
194 be able to find its various associated file.  However, XEmacs has
195 quite elaborate logic to find out the locations of these directories
196 dynamically.  Sometimes, it is desirable *not* to compile these
197 directories into the executable so you can move the XEmacs
198 installation around (as whole) at will.  This is true for binary kits,
199 for instance.  Therefore, you can specify --without-prefix on the
200 configure command line to prevent the installation prefix to become
201 part of the generated executable; everything else will continue to
202 work as usual.
203
204 The `--with-menubars=TYPE' option allows you to specify which X
205 toolkit you wish to use for the menubar.  The valid options are
206 `lucid', `motif' and `no'.  The default is `lucid' which is a
207 Motif-lookalike menubar.  We highly recommend its usage over the real
208 Motif menubar. (In fact, the Motif menubar is currently broken.)  If
209 `no' is specified then support for menubars will not be compiled in.
210
211 The `--with-scrollbars=TYPE' option allows you to specify which X
212 toolkit you wish to use for the scrollbars.  The valid options are
213 `lucid', `motif', `athena', `athena3d', and `no'.  The default is
214 `lucid' which is a Motif-lookalike scrollbar.  If `no' is specified
215 then support for scrollbars will not be compiled in.
216
217 The `--with-dialogs=TYPE' option allows you to specify which X toolkit
218 you wish to use for the dialog boxes.  The valid options are `athena',
219 `athena3d', `motif, and `no.  The `lucid' option is accepted and will
220 result in the `athena' toolkit being used.  If the Motif toolkit can be
221 found the default is `motif'.  Otherwise, the default is `athena'.  If
222 `no' is specified then support for dialog boxes will not be compiled
223 in.
224
225 The `--with-toolbars' option allows you to enable or disable toolbar
226 support.  The default is `yes' as long as support for a windowing
227 system is included.
228
229 The `--with-xpm' option specifies that XEmacs should support X11
230 Pixmaps.  `configure' will attempt to detect if you have the Xpm
231 libraries and define `--with-xpm' for you.
232
233 The `--with-xface' option specifies that XEmacs should support
234 X-Faces.  `configure' will attempt to detect if you have the compface
235 library and define `--with-xface' for you.
236
237 The `--with-database' option specifies that XEmacs should be built
238 with additional database support.  The valid options are `no' or a
239 comma-separated list of one or more of `dbm', `gnudbm' or `berkdb'.
240 `configure' will attempt to detect the necessary libraries and header
241 files and define `--with-database' for you.
242
243 The `--with-socks' option specifies that XEmacs should be built with
244 SOCKS support.  This requires the libsocks library.
245
246 The `--with-tooltalk' option specifies that XEmacs should be built
247 with ToolTalk support for interconnecting with other applications.
248 ToolTalk is not yet supported on all architectures.  If you use this
249 option, you should have the tooltalk package (see etc/PACKAGES)
250 installed prior to building XEmacs.
251
252 The `--with-sparcworks' option specifies that XEmacs should be built
253 with support for Sun Sparcworks 3.0.1 and up (including Sun WorkShop).
254 This functionality is only of use on SunOS 4.1.x and Solaris 2.x
255 systems.  If you use this option, you should have the Sun package (see
256 etc/PACKAGES) installed prior to building XEmacs.
257
258 The `--with-cde' option allows you to enable or disable CDE drag and
259 drop support.  `configure' will attempt to detect this option and
260 define `--with-cde' for you.
261
262 The `--with-offix' option allows you to enable or disable OffiX drag
263 and drop support.  This requires no external library support, so if
264 X11 support is available, then this option defaults to `yes'.  OffiX
265 support can be explicitly disabled via the `--with-offix=no' option.
266
267 The `--external-widget' option specifies that XEmacs should be built
268 with support for being used as a widget by other X11 applications.
269 This functionality should be considered beta.
270
271 The `--without-xmu' option can be used if your vendor doesn't ship
272 the Xmu library.
273
274 The `--puresize' option can be used to change the amount of purespace
275 allocated for the dumped XEmacs.  As of XEmacs 20.1 usage of this
276 parameter is deprecated and will be ignored.
277
278 The `--with-sound=TYPE' option specifies that XEmacs should be built
279 with sound support.  Native (`--with-sound=native') sound support is
280 currently available only on Sun SparcStations, SGI's, HP9000s, and
281 systems (such as Linux) with soundcard.h.  Network Audio Support (NAS)
282 (`--with-sound=nas' or `--with-sound=both') is an extension to X that
283 you may or may not have for your system.  For NAS, you will probably
284 need to provide the paths to the nas include and library directories
285 to configure.  If `--with-sound' is not specified, `configure' will
286 attempt to determine if your configuration supports native sound and
287 define --with-sound for you.  If your native sound library is not in a
288 standard location you can specify it with the `--native-sound-lib=LIB'
289 flag.  For Linux, `/dev/audio' is required for SunAudio files and
290 `/dev/dsp' is required for raw data and WAVE format files.
291
292 The `--rel-alloc' option can be used to either enable or disable use
293 of the relocating allocator.  Turning on --rel-alloc will allow XEmacs
294 to return unused memory to the operating system, thereby reducing its
295 memory footprint.  However, it may make XEmacs runs more slowly,
296 especially if your system's `mmap' implementation is missing or
297 inefficient.  Generally, it's best to go with the default
298 configuration for your system.  You can tweak this based on how you
299 use XEmacs, and the memory and cpu resources available on your system.
300
301 The `--with-system-malloc' option can be use to either enable or
302 disable use of the system malloc.  Generally, it's best to go with the
303 default configuration for your system.  Note that on many systems
304 using the system malloc disables the use of the relocating allocator.
305
306 The `--with-debug-malloc' option can be used to link a special debugging
307 version of malloc.  Debug Malloc is not included with XEmacs, is
308 intended for use only by the developers and may be obtained from
309 <URL:http://www.letters.com/dmalloc/>.
310
311 The `--debug' and `--error-checking' options are intended for use only
312 by the developers.  `--debug' adds code to be compiled in for
313 performing various tests.  `--error-checking' adds additional tests to
314 many of the commonly used macros.
315
316 The `--verbose' and `--extra-verbose' options are intended for use
317 only by the developers.  `--verbose' causes the results of all
318 configure tests to be displayed.  `--extra-verbose' displays
319 additional information, useful for debugging.  Another help for
320 determining configure failures is the file `config.log', which
321 contains the results of the compile and link tests used by configure.
322
323 The `--with-mule' option enables (MUlti-Lingual Emacs) support, needed
324 to support non-Latin-1 (including Asian) languages.  The Mule support
325 is not yet as stable or efficient as the `Latin1' support.   Enabling
326 Mule support requires the mule-base package installed prior to
327 building XEmacs.  The following options require Mule support:
328
329 The `--with-xim' option enables use of the X11 XIM mechanism to allow
330 an input method to input text into XEmacs.  The input method is shared
331 among all the X applications sharing an X display and using the same
332 language.  The XIM support comes in two flavors: `motif' and `xlib'.
333 The Motif support (the XmIm* functions) is preferred when available.
334 The xlib XIM support works reasonably well so long as the X11 libraries
335 are recent enough.  It has been fairly well tested on Linux with glibc
336 2.0.5 and 2.0.6 and Kinput2 as an XIM server.  In this configuration
337 X11 must be recompiled with X_LOCALE defined because glibc is lacking
338 localization for Japanese.  The XIM support defaults to `no' except
339 when Motif is detected where it is stable with OSF libraries.  The XIM
340 support in Lesstif (a Free Motif replacement) does not work as of
341 v0.82.  If you enable this option, you will probably wish to install
342 the `locale' package which contains localized Splash screens and
343 Menubars.
344
345 The `--with-xfs' option enables use of a multilingual Menubar.  At the
346 present time, only Japanese and French locales are supported.  In
347 order to use a multilingual Menubar you must have the `locale' package
348 installed.  The `locale' package does not have to be installed when
349 building XEmacs.
350
351 The `--with-canna' option enables the use of the Canna Japanese input
352 method.  This is stable code and fairly well tested.  In order to use
353 it, you will have to have the Canna server installed and running.
354 Canna versions 3.2pl2 and 3.5b2 are known to work.  Version 3.2pl2 is
355 considered most stable than version 3.5b2.  If Canna is already
356 installed, configure will autodetect it, so you never need to
357 explicitly use this option unless your Canna libraries are somewhere
358 strange.  Canna run time support is currently bundled with the
359 `mule-base' package so there is nothing additional to install in order
360 to use it.
361
362 The `--with-wnn' and `--with-wnn6' options are for compiling with the Wnn
363 multi-language input method.  `--with-wnn' is for compiling with Wnn-4.2,
364 the Free version of WNN.  `--with-wnn6' is for compiling against WNN6,
365 the commercial version of WNN available from OMRON Corporation.  This is
366 stable code and fairly well tested.  In order to build with this
367 option, you will need to have the `egg-its' lisp package already
368 installed.
369
370 Please note that it is safe to build with as many of the options
371 `--with-xim', `--with-canna' and `--with-wnn' as your system
372 supports.
373
374 MAIL LOCKING
375 ============
376
377 For most platforms, configure or the src/s file have the preferred
378 method for locking mail spool files preconfigured.  Otherwise you must
379 find out for youself.  Do not choose a locking protocol "on the
380 objective merits."  XEmacs must use the same method as other mail
381 utilities on your system, or you will lose mail.
382
383 Presently, XEmacs supports lockf, flock, and dot locking.  Specify the
384 locking method via the --mail-locking=METHOD option to configure.
385 Valid values for METHOD are --mail-locking are `lockf', `flock', and
386 `dot'.
387
388 RUNNING CONFIGURE
389 =================
390
391 `configure' doesn't do any compilation or installation itself.  It
392 just creates the files that influence those things: `./src/config.h',
393 and all the Makefile's in the build tree.
394
395 When it is done, `configure' prints a description of what it did and
396 creates a shell script `config.status' which, when run, recreates the
397 same configuration.  If `configure' exits with an error after
398 disturbing the status quo, it removes `config.status'.
399
400 AUXILIARY PATHS
401 ===============
402
403 Look at `./lisp/paths.el'; if some of those values are not right for
404 your system, set up the file `./lisp/site-init.el' with XEmacs Lisp
405 code to override them; it is not a good idea to edit paths.el itself.
406 YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES, rather than
407 `defvar', as used by `./lisp/paths.el'.  For example,
408
409      (setq news-inews-program "/usr/bin/inews")
410
411 is how you would override the default value of the variable
412 news-inews-program (which is "/usr/local/inews").
413
414 Before you override a variable this way, *look at the value* that the
415 variable gets by default!  Make sure you know what kind of value the
416 variable should have.  If you don't pay attention to what you are
417 doing, you'll make a mistake.
418
419 Things may malfunction if the variable `directory-abbrev-alist' is not
420 set up to translate "temporary" automounter mount points into the
421 canonical form.  XEmacs tries to detect how your automounter is
422 configured.  If you have an unusual automounter configuration that
423 XEmacs cannot detect, you may need to change the value of
424 `directory-abbrev-alist'.
425
426 SITE-SPECIFIC STARTUP CODE
427 ==========================
428
429 Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs Lisp
430 code you want XEmacs to load before it is dumped out.  Use
431 site-load.el for additional libraries if you arrange for their
432 documentation strings to be in the lib-src/DOC file (see
433 src/Makefile.in.in if you wish to figure out how to do that).  For all
434 else, use site-init.el.
435
436 Note that, on some systems, the code you place in site-init.el must
437 not use expand-file-name or any other function which may look
438 something up in the system's password and user information database.
439 See `./PROBLEMS' for more details on which systems this affects.
440
441 The `site-*.el' files are nonexistent in the distribution.  You do not
442 need to create them if you have nothing to put in them.
443
444 TERMCAP CONFIGURATION
445 =====================
446
447 Refer to the file `./etc/TERMS' for information on fields you may
448 wish to add to various termcap entries.  The files `./etc/termcap.ucb'
449 and `./etc/termcap.dat' may already contain appropriately-modified
450 entries.
451
452 RUNNING MAKE
453 ============
454
455 Run `make' in the top directory of the XEmacs distribution to finish
456 building XEmacs in the standard way.  The final executable file is
457 named `src/emacs'.  You can execute this file "in place" without
458 copying it, if you wish; then it automatically uses the sibling
459 directories ../lisp, ../lib-src, ../info.
460
461 Or you can "install" the executable and the other XEmacs into their
462 installed locations, with `make install'.  By default, XEmacs's files
463 are installed in the following directories:
464
465 By default, XEmacs installs its files in the following directories:
466
467 `/usr/local/bin' holds the executable programs users normally run -
468                 `xemacs', `etags', `ctags', `b2m', `emacsclient', `ellcc',
469                 `gnuclient', `gnudoit', `gnuattach', and `rcs-checkin'.
470
471 `/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
472                 `VERSION' stands for the number of the XEmacs version
473                 you are installing, like `18.59' or `19.14'.  Since
474                 the lisp libraries change from one version of XEmacs to
475                 another, including the version number in the path
476                 allows you to have several versions of XEmacs installed
477                 at the same time; this means that you don't have to
478                 make XEmacs unavailable while installing a new version.
479
480                 XEmacs searches for its lisp files in these
481                 directories, and then in
482                 `/usr/local/lib/xemacs/site-lisp/*'.
483
484 `/usr/local/lib/xemacs-VERSION/etc' holds the XEmacs tutorial, the
485                 `yow' database, and other architecture-independent
486                 files XEmacs might need while running.  VERSION is as
487                 specified for `.../lisp'.
488
489 `/usr/local/lib/xemacs/lock' contains files indicating who is
490                 editing what, so XEmacs can detect editing clashes
491                 between users.
492
493 `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME' contains executable
494                 programs used by XEmacs that users are not expected to
495                 run themselves, and the DOC file. `VERSION' is the
496                 number of the XEmacs version you are installing, and
497                 `CONFIGURATION-NAME' is the host type of your system.
498                 Since these files are specific to the version of
499                 XEmacs, operating system, and architecture in use,
500                 including the configuration name in the path allows
501                 you to have several versions of XEmacs for any mix of
502                 machines and operating systems installed at the same
503                 time; this is useful for sites at which different
504                 kinds of machines share the file system XEmacs is
505                 installed on.
506
507 `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME/modules' holds the Emacs
508                 dynamically loadable modules.  These are special programs
509                 typically written in C that can be loaded in much the same
510                 way that Lisp packages are.  Not all systems support
511                 dynamic modules, so do not be alarmed if this directory
512                 does not exist or is empty.
513
514                 XEmacs searches for modules in this directory, or any
515                 sub-directory of it, and then in
516                 `/usr/local/lib/xemacs/site-modules/*'.
517
518 `/usr/local/lib/xemacs-VERSION/info' holds the on-line documentation
519                 for XEmacs, known as "info files".
520
521 `/usr/local/man/man1' holds the man pages for the programs installed
522                 in `/usr/local/bin'.
523
524 If these directories are not what you want, you can specify where to
525 install XEmacs's libraries and data files or where XEmacs should search
526 for its lisp files by giving values for `make' variables as part of
527 the command.
528
529 You can change where the build process installs XEmacs and its data
530 files by specifying values for `make' variables as part of the `make'
531 command line.  For example, if you type
532
533     make install bindir=/usr/local/gnubin
534
535 the `bindir=/usr/local/gnubin' argument indicates that the XEmacs
536 executable files should go in `/usr/local/gnubin', not
537 `/usr/local/bin'.
538
539 Here is a complete list of the variables you may want to set.
540
541 `bindir' indicates where to put executable programs that users can
542         run.  This defaults to /usr/local/bin.
543
544 `datadir' indicates where to put the architecture-independent
545         read-only data files that XEmacs refers to while it runs; it
546         defaults to /usr/local/lib.  We create the following
547         subdirectories under `datadir':
548         - `xemacs-VERSION/lisp', containing the XEmacs lisp libraries, and
549
550         - `xemacs-VERSION/etc', containing the XEmacs tutorial and the
551                 `yow' database.
552         `VERSION' is the number of the XEmacs version you are installing,
553         like `18.59' or `19.14'.  Since these files vary from one version
554         of XEmacs to another, including the version number in the path
555         allows you to have several versions of XEmacs installed at the
556         same time; this means that you don't have to make XEmacs
557         unavailable while installing a new version.
558
559 `statedir' indicates where to put architecture-independent data files
560         that XEmacs modifies while it runs; it defaults to
561         /usr/local/lib as well.  We create the following
562         subdirectories under `statedir':
563         - `xemacs/lock', containing files indicating who is editing
564                 what, so XEmacs can detect editing clashes between
565                 users.
566
567 `libdir' indicates where to put architecture-specific data files that
568         XEmacs refers to as it runs; it too defaults to `/usr/local/lib'.
569         We create the following subdirectories under `libdir':
570         - `xemacs-VERSION/CONFIGURATION-NAME', containing executable
571                 programs used by XEmacs that users are not expected to run
572                 themselves and the DOC file.
573         `VERSION' is the number of the XEmacs version you are installing,
574         and `CONFIGURATION-NAME' is the host type of your system.
575         Since these files are specific to the version of XEmacs,
576         operating system, and architecture in use, including the
577         configuration name in the path allows you to have several
578         versions of XEmacs for any mix of machines and operating
579         systems installed at the same time; this is useful for sites
580         at which different kinds of machines share the file system
581         XEmacs is installed on.
582
583 `infodir' indicates where to put the info files distributed with
584         XEmacs; it defaults to `/usr/local/lib/xemacs-VERSION/info'.
585
586 `mandir' indicates where to put the man pages for XEmacs and its
587         utilities (like `etags'); it defaults to
588         `/usr/local/man/man1'.
589
590 `prefix' doesn't give a path for any specific part of XEmacs; instead,
591         its value is used to determine the defaults for all the
592         architecture-independent path variables - `datadir',
593         `statedir', `infodir', and `mandir'.  Its default value is
594         `/usr/local'; the other variables add on `lib' or `man' to it
595         by default.
596
597         For example, suppose your site generally places GNU software
598         under `/usr/users/software/gnusoft' instead of `/usr/local'.
599         By including
600             `prefix=/usr/users/software/gnusoft'
601         in the arguments to `make', you can instruct the build process
602         to place all of the XEmacs data files in the appropriate
603         directories under that path.
604
605 `exec_prefix' serves the same purpose as `prefix', but instead
606         determines the default values for the architecture-dependent
607         path variables - `bindir' and `libdir'.
608
609 The above variables serve analogous purposes in the makefiles for all
610 GNU software; here are some variables specific to XEmacs.
611
612 `lispdir' indicates where XEmacs installs and expects its lisp
613         libraries.  Its default value, based on `datadir' (see above),
614         is `/usr/local/lib/xemacs-VERSION/lisp' (where `VERSION' is as
615         described above).
616
617 `sitelispdir' indicates where XEmacs should search for lisp libraries
618         specific to your site. XEmacs checks them in order before
619         checking `lispdir'.  Its default value, based on `datadir'
620         (see above), is `/usr/local/lib/xemacs/site-lisp'.
621
622 `etcdir' indicates where XEmacs should install and expect the rest of
623         its architecture-independent data, like the tutorial and yow
624         database.  Its default value, based on `datadir'
625         (see above), is `/usr/local/lib/xemacs-VERSION/etc' (where
626         `VERSION' is as described above).
627
628 `lockdir' indicates the directory where XEmacs keeps track of its
629         locking information.  Its default value, based on `statedir'
630         (see above), is `/usr/local/lib/xemacs/lock'.
631
632 `archlibdir' indicates where XEmacs installs and expects the
633         executable files and other architecture-dependent data it uses
634         while running.  Its default value, based on `libdir' (see
635         above), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME'
636         (where VERSION and CONFIGURATION-NAME are as described above).
637
638 `docdir' indicates where to put Lisp documentation strings that XEmacs
639         refers to as it runs.  It defaults to the value of `archlibdir'
640         (see above).
641
642 `moduledir' indicates where XEmacs installs and expects to find
643         any dynamic modules.  Its default value, based on
644         `archlibdir' (see above) is
645         `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME/modules'
646         (where VERSION and CONFIGURATION-NAME are as described above).
647         By their very nature, dynamic loadable modules are architecture-
648         dependent, and care should be taken not to set this directory
649         to a system- or architecture-independent directory.
650
651 Remember that you must specify any variable values you need each time
652 you run `make' in the top directory.  If you run `make' once to build
653 xemacs, test it, and then run `make' again to install the files, you
654 must provide the same variable settings each time.  To make the
655 settings persist, you can edit them into the `Makefile' in the top
656 directory, but be aware that running the `configure' program erases
657 `Makefile' and rebuilds it from `Makefile.in'.
658
659 The top-level Makefile stores the variable settings it used in the
660 Makefiles for the subdirectories, so you don't have to specify them
661 when running make in the subdirectories.
662
663 Using GNU Make allows for simultaneous builds with and without the
664 --srcdir option.
665
666 MAIL-LOCKING POST-INSTALLATION
667 ==============================
668
669 If your system uses dot-locking to interlock access to mailer inbox
670 files, then you might need to make the movemail program setuid or
671 setgid to enable it to write the lock files.  We believe this is safe.
672 The setuid/setgid bits need not be set on any other XEmacs-related
673 executables.
674
675 CLEANING UP
676 ==========
677
678 You are done with the hard part!  You can remove executables and
679 object files from the build directory by typing `make clean'.  To also
680 remove the files that `configure' created (so you can compile XEmacs
681 for a different configuration), type `make distclean'.
682
683 READ README.packages
684 ====================
685
686 Do it!
687
688 PROBLEMS
689 ========
690
691 The most likely problem is that you forgot to read and follow the
692 directions in README.packages.  You can not have a working XEmacs
693 without downloading some additional packages.
694
695 See the file PROBLEMS in this directory for a list of various problems
696 sometimes encountered, and what to do about them.  PROBLEMS is also
697 the place where platform-specific build notes can be found.