File: INSTALL

package info (click to toggle)
xemacs20 20.4-5
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 67,304 kB
  • ctags: 57,609
  • sloc: lisp: 585,794; ansic: 184,572; sh: 4,179; asm: 3,179; makefile: 2,021; perl: 1,043; csh: 96; sed: 22
file content (749 lines) | stat: -rw-r--r-- 35,096 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
XEmacs Installation Guide
Copyright (c) 1994, 1995, 1996 Board of Trustees, University of Illinois
Copyright (c) 1994 Free Software Foundation, Inc.

Synched up with: FSF 19.30.

   Permission is granted to anyone to make or distribute verbatim copies
   of this document as received, in any medium, provided that the
   copyright notice and permission notice are preserved,
   and that the distributor grants the recipient permission
   for further redistribution as permitted by this notice.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them,
   and that any new or changed statements about the activities
   of the Free Software Foundation are approved by the Foundation.


BUILDING AND INSTALLATION:

1) Make sure your system has enough swapping space allocated to handle
   a program whose pure code is 900k bytes and whose data area is at
   least 400k and can reach 8Mb or more.  If the swapping space is
   insufficient, you will get an error in the command `temacs -batch
   -l loadup dump', found in `./src/Makefile.in.in', or possibly when
   running the final dumped XEmacs.
 
Building XEmacs requires about 88 Mb of disk space (including the
XEmacs sources).  Once installed, XEmacs occupies about 50 Mb in the
file system where it is installed; this includes the executable files,
Lisp libraries, miscellaneous data files, and on-line documentation. 
The amount of storage of the Lisp directories may be reduced by
compressing the .el files. If the building and installation take place
in different directories, then the installation procedure temporarily
requires 88+50 Mb.

XEmacs requires an ANSI C compiler, such as GCC.  If you wish to build
the documentation yourself, you will need at least version 1.68 of
makeinfo (GNU texinfo-3.11).


2) Decide on what other software packages you would like to use with
XEmacs, but are not yet available on your system.  On some systems,
Motif and CDE are optional additions.  On Solaris, the SUNWaudmo
package enables native sound support.  There are also a number of free
software packages that XEmacs can use.  If these are not yet available
on your system, obtain, build and install those external packages
before building XEmacs.  The packages XEmacs can use are:

   Xaw3d, XPM, JPEG, compface, PNG, zlib, OffiX, GNU DBM, Berkeley DB,
   socks, term, NAS, Canna, Wnn.

You can get (most of) them from the XEmacs ftp site at
ftp://ftp.xemacs.org/pub/aux

If you want users on other systems to be able to use the XEmacs you
have built, try to build those packages so that the generated
libraries are statically linked.

Use the --site-includes and --site-libraries options when building
XEmacs to allow configure to find the external software packages. 
If you link with dynamic (``.so'') external package libraries, which
is not recommended, you will also need to add the library directories
to the --site-runtime-libraries option.


3) In the top level directory of the XEmacs distribution, run the
   program `configure' as follows:

    ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...

Usually, you should let `configure' (actually the shell script
`config.guess') guess your system type, by omitting the
CONFIGURATION-NAME argument.  If you like to experiment, specify a
configuration name in the form MACHINE-VENDOR-OPSYS, for example:

sparc-sun-solaris2.6

See config.guess and configure.in for valid values for MACHINE,
VENDOR, and OPSYS.  Also check `./etc/MACHINES' for advice on building
on particular machines.

If you don't want X support, specify `--with-x=no'.  If you omit this
option, `configure' will try to autodetect whether your system has X,
and arrange to use it if present.

The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
process where the compiler should look for the include files and
object libraries used with the X Window System.  Normally, `configure'
is able to find them; these options are necessary if you have your X
Window System files installed in unusual places.

The `--site-includes=DIR' and `--site-libraries=DIR' options allow you
to specify additional places the compiler should look for include
files and object libraries.  You may specify multiple DIR's by
enclosing the list in quotes.  All the external packages you want to
use with XEmacs (e.g. xpm, wnn, ...) described later should have their 
include and library directories defined using these options.

The `--site-runtime-libraries=DIR' option specifies directories to
search for shared libraries at run time.  This may be necessary if you
link with dynamic libraries that are installed in non-standard
directories, or if you expect some of the libraries used to build
XEmacs to be in a different directory at run time than at build time.
Usually this will add a `-R' to each directory specified and use that
when linking XEmacs.  If you use this option, you must specify ALL of
the directories containing shared libraries at run time, including
system directories.

Rationale: Some people think that directories in --site-libraries
should be automatically used to update --site-runtime-libraries.
Here's a real-life scenario that explains why this is not done: You
build binaries for your company using static libs in
/net/toy/hack/lib.  XEmacs adds /net/toy/hack/lib to the runpath of
the executable you've built.  Since there are only static libs there,
the system runtime loader will look in this dir, and ignore it,
causing only a .01 second delay in starting XEmacs.  You leave the
company for a job at a small Silicon Valley startup.  Time passes.
The next guy who inherits your machine objects to working on a machine
named `toy', and gets the sysadmin to rename the machine `godzilla'.
The SA forgets to remove the old entry for `toy' from the hosts file.
Now the system loader will still try to access /net/toy/, and the
automounter will hang trying to access /net/toy.  XEmacs suddenly
takes 30 seconds longer to start up, no one can figure out why, and
everyone at your old company curses your name, thinking that you've
put a time bomb into XEmacs.  And they're right!

The `--with-gcc' option specifies that the build process should
compile XEmacs using GCC.  The `--compiler' option allows you to
specify some other compiler to be used to compile XEmacs.  If neither
option is specified, the environment variable CC is used instead.
Otherwise the compiler will then default to 'cc'.

The `--cflags' option specifies the CFLAGS the build process should
use when compiling XEmacs.  Otherwise the value of the environment
variable CFLAGS is consulted.  If that is also undefined, CFLAGS
defaults to "-g -O" for gcc and "-g" for all other compilers.

The `--with-gnu-make' option specifies that Makefiles should be
written to take advantage of special features of GNU Make.  GNU Make
works fine on Makefiles even without this option.  This flag just
allows for simultaneous in-place and --srcdir building.

The `--dynamic' option specifies that configure should try to link
emacs dynamically rather than statically.

The `--const-is-losing' option is for use if you have trouble
compiling due to the `const' storage class in C.  This is defined by 
default.  Most users should have no need to change this.

You can build XEmacs for several different machine types from a single
source directory.  To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'.  Make separate
build directories for the different configuration types, and in each
one, run the XEmacs `configure' script.  `configure' looks for the
Emacs source code in the directory that `configure' is in.

The `--prefix=PREFIXDIR' option specifies where the installation process
should put XEmacs and its data files.  This defaults to `/usr/local'.
- XEmacs (and the other utilities users run) go in PREFIXDIR/bin
  (unless the `--exec-prefix' option says otherwise).
- The architecture-independent files go in PREFIXDIR/lib/xemacs-VERSION
  (where VERSION is the version number of XEmacs, like `20.4').
- The architecture-dependent files go in
  PREFIXDIR/lib/xemacs-VERSION/CONFIGURATION
  (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
  unless the `--exec-prefix' option says otherwise.

The `--exec-prefix=EXECDIR' option allows you to specify a separate
portion of the directory tree for installing architecture-specific
files, like executables and utility programs.  If specified,
- XEmacs (and the other utilities users run) go in EXECDIR/bin, and
- The architecture-dependent files go in
  EXECDIR/lib/xemacs-VERSION/CONFIGURATION.
EXECDIR/bin should be a directory that is normally in users' PATHs.

For example, the command

    ./configure mips-dec-ultrix --with-x11=yes

configures XEmacs to build for a DECstation running Ultrix, with
support for the X11 window system.

The `--with-menubars=TYPE' option allows you to specify which X
toolkit you wish to use for the menubar.  The valid options are
`lucid', `motif' and `no'.  The default is `lucid' which is a
Motif-lookalike menubar.  We highly recommend its usage over the real
Motif menubar. (In fact, the Motif menubar is currently broken.)  If
`no' is specified then support for menubars will not be compiled in.

The `--with-scrollbars=TYPE' option allows you to specify which X
toolkit you wish to use for the scrollbars.  The valid options are
`lucid', `motif', `athena', `athena3d', and `no'.  The default is
`lucid' which is a Motif-lookalike scrollbar.  If `no' is specified
then support for scrollbars will not be compiled in.

The `--with-dialogs=TYPE' option allows you to specify which X toolkit
you wish to use for the dialog boxes.  The valid options are `athena',
`motif, and `no.  The `lucid' option is accepted and will result in
the `athena' toolkit being used.  If the Motif toolkit can be found
the default is `motif'.  Otherwise, the default is `athena'.  If
`no' is specified then support for dialog boxes will not be compiled
in.

The `--with-toolbars' option allows you to enable or disable toolbar
support.  The default is `yes' as long as support for a windowing
system is included.

The `--with-gif' option specifies that XEmacs should support GIF image
conversion.  No extra libraries are required.  This options defaults
to `yes'.

The `--with-xpm' option specifies that XEmacs should support X11
Pixmaps.  `configure' will attempt to detect if you have the Xpm
libraries and define `--with-xpm' for you.

The `--with-xface' option specifies that XEmacs should support
X-Faces.  `configure' will attempt to detect if you have the compface
library and define `--with-xface' for you.

The `--with-jpeg' option specifies that XEmacs should support JPEG
image conversion.  This option requires libjpeg from the Independent
JPEG Group which is available on the XEmacs ftp site.  `configure'
will attempt to detect if you have libjpeg and define `--with-jpeg'
for you.

The `--with-png' option specifies that XEmacs should support PNG image
conversion.  The valid options are `yes' and `no'.  This option
requires libpng which is available on the XEmacs ftp site.  This
option also requires a decompression library, either libz or
libgz.  XEmacs will detect whether libz is available, and use that,
else it will use libgz.

The `--with-database' option specifies that XEmacs should be built
with additional database support.  The valid options are `no' or a
comma-separated list of one or more of `dbm', `gnudbm' or `berkdb'.
`configure' will attempt to detect the necessary libraries and header
files and define `--with-database' for you.

The `--with-socks' option specifies that XEmacs should be built with
SOCKS support.  This requires the libsocks library.

The `--with-term' option specifies that XEmacs should be built with
TERM support.  TERM is a way to multiplex serial lines over a simple
dialup connection, used on Linux and other systems.  We cannot
guarantee that our TERM support coexists well with standard Internet
connections.

The `--with-tooltalk' option specifies that XEmacs should be built
with ToolTalk support for interconnecting with other applications.
ToolTalk is not yet supported on all architectures.

The `--with-sparcworks' option specifies that XEmacs should be built
with support for Sun Sparcworks 3.0.1 and up (including Sun WorkShop).
This functionality is only of use on SunOS 4.1.x and Solaris 2.x
systems.

The `--with-cde' option allows you to enable or disable CDE drag and
drop support.  `configure' will attempt to detect this option and
define `--with-cde' for you.

The `--with-offix' option allows you to enable or disable OffiX drag and
drop support.  `configure' will attempt to detect this option and
define `--with-offix' for you.

The `--with-energize' option specifies that XEmacs should be built
with support for the Lucid Energize system.  (If you have not
purchased Energize, specifying this option won't gain you anything.)
Currently this doesn't work.

The `--external-widget' option specifies that XEmacs should be built
with support for being used as a widget by other X11 applications.
This functionality should be considered beta.

The `--with-xmu=no' option can be used if your vendor doesn't ship
the Xmu library.

The `--puresize' option can be used to change the amount of purespace
allocated for the dumped XEmacs.  As of XEmacs 20.1 usage of this
parameter is deprecated and, in fact, ignored.

The `--with-sound=TYPE' option specifies that XEmacs should be built
with sound support.  Native (`--with-sound=native') sound support is
currently available only on Sun SparcStations, SGI's, HP9000s, and
systems (such as Linux) with soundcard.h.  Network Audio Support (NAS)
(`--with-sound=nas' or `--with-sound=both') is an extension to X that
you may or may not have for your system.  For NAS, you will probably
need to provide the paths to the nas include and library directories
to configure.  If `--with-sound' is not specified, `configure' will
attempt to determine if your configuration supports native sound and
define --with-sound for you.  If your native sound library is not in a
standard location you can specify it with the `--native-sound-lib=LIB'
flag.  For Linux, `/dev/audio' is required for SunAudio files and
`/dev/dsp' is required for raw data and WAVE format files.

The `--rel-alloc' option can be used to either enable or disable use
of the relocating allocator.  Turning on --rel-alloc will allow XEmacs
to return unused memory to the operating system, thereby reducing its
memory footprint.  However, it may make XEmacs runs more slowly,
especially if your system's `mmap' implemntation is missing or
inefficient.  Generally, it's best to go with the default
configuration for your system.  You can tweak this based on how you
use XEmacs, and the memory and cpu resources available on your system.

The `--use-system-malloc' option can be use to either enable or
disable use of the system malloc.  Generally, it's best to go with the
default configuration for your system.  Note that on many systems
using the system malloc disables the use of the relocating allocator.

The `--use-debug-malloc' option can be used to link a special debugging
version of malloc.  Debug Malloc is not included with XEmacs, is
intended for use only by the developers and may be obtained from
<URL:http://www.letters.com/dmalloc/>.

The `--debug' and `--error-checking' options are intended for use only
by the developers.  `--debug' adds code to be compiled in for
performing various tests.  `--error-checking' adds additional tests to
many of the commonly used macros.

The `--verbose' and `--extra-verbose' options are intended for use
only by the developers.  `--verbose' causes the results of all
configure tests to be displayed.  `--extra-verbose' displays
additional information, useful for debugging.  Another help for
determining configure failures is the file `config.log', which
contains the results of the compile and link tests used by configure.

The `--with-mule' option enables (MUlti-Lingual Emacs) support, needed
to suport non-Latin-1 (including Asian) languages.  The Mule support
is not yet as stable or efficient as the `Latin1' support.   The
following options require Mule support:

The `--with-xim' option enables use of the X11 XIM mechanism to allow
an input method to input text into XEmacs.  The input method is shared
among all the X applications sharing an X display and using the same
language.  The XIM support comes in two flavors: `motif' and `xlib'.
The Motif support (the XmIm* functions) is preferred when available.
The xlib XIM support does not work quite as well.  The XIM support has
been known to cause crashes due to bugs in X11, so it defaults to `no'
except on Solaris, where it is known to be stable.

The `--with-canna' option enables the use of the Canna Japanese input
method.

The `--with-wnn' and `--with-wnn6' options are for compiling with the
Wnn multi-language input method.  `--with-wnn' is for compiling with
Wnn-4.2, the free version of WNN.  This is beta level code. 
`--with-wnn6' is for compiling against WNN6, the commercial version
of WNN.  This is alpha level code and very lightly tested at present.

`configure' doesn't do any compilation or installation itself.  It
just creates the files that influence those things: `./src/config.h',
and all the Makefile's in the build tree.

The `--with-pop', `--with-hesiod', and `--with-kerberos' options are used
in conjunction with movemail.  As of XEmacs 20.1, movemail is identical
to the one used in Emacs.

When it is done, `configure' prints a description of what it did and
creates a shell script `config.status' which, when run, recreates the
same configuration.  If `configure' exits with an error after
disturbing the status quo, it removes `config.status'.

4) Look at `./lisp/paths.el'; if some of those values are not right
for your system, set up the file `./lisp/site-init.el' with XEmacs
Lisp code to override them; it is not a good idea to edit paths.el
itself.  YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES,
rather than `defvar', as used by `./lisp/paths.el'.  For example,

     (setq news-inews-program "/usr/bin/inews")

is how you would override the default value of the variable
news-inews-program (which is "/usr/local/inews").

Before you override a variable this way, *look at the value* that the
variable gets by default!  Make sure you know what kind of value the
variable should have.  If you don't pay attention to what you are
doing, you'll make a mistake.

Things may malfunction if the variable `directory-abbrev-alist' is not set
up to translate "temporary" automounter mount points into the canonical
form.  The default value of this variable contains the translation

	("^/tmp_mnt/" . "/")

meaning translate "/tmp_mnt/net/FOO" into "/net/FOO", which is appropriate
for the default configuration of the Sun automounter, but which may be
inappropriate for different vendor's automounters, or if you have customized
your mount-point names.

5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
Lisp code you want XEmacs to load before it is dumped out.  Use
site-load.el for additional libraries if you arrange for their
documentation strings to be in the lib-src/DOC file (see
src/Makefile.in.in if you wish to figure out how to do that).  For all
else, use site-init.el.

If you set load-path to a different value in site-init.el or
site-load.el, XEmacs will use *precisely* that value when it starts up
again.  If you do this, you are on your own!

Note that, on some systems, the code you place in site-init.el must
not use expand-file-name or any other function which may look
something up in the system's password and user information database.
See `./PROBLEMS' for more details on which systems this affects.

The `site-*.el' files are nonexistent in the distribution.  You do not
need to create them if you have nothing to put in them.

6) Refer to the file `./etc/TERMS' for information on fields you may
wish to add to various termcap entries.  The files `./etc/termcap.ucb'
and `./etc/termcap.dat' may already contain appropriately-modified
entries.

7) Run `make' in the top directory of the XEmacs distribution to finish
building XEmacs in the standard way.  The final executable file is
named `src/emacs'.  You can execute this file "in place" without
copying it, if you wish; then it automatically uses the sibling
directories ../lisp, ../lib-src, ../info.

Note that if you just downloaded the basic xemacs-20.4.tar.gz file, you
will have to build the .elc and .info files with the command `make
dist'.

Or you can "install" the executable and the other XEmacs into their
installed locations, with `make install'.  By default, XEmacs's files
are installed in the following directories:

By default, XEmacs installs its files in the following directories:

`/usr/local/bin' holds the executable programs users normally run -
		`xemacs', `etags', `ctags', `b2m', `emacsclient',
		`gnuclient', `gnudoit', `gnuattach', and `rcs-checkin'.

`/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
		`VERSION' stands for the number of the XEmacs version
		you are installing, like `18.59' or `19.14'.  Since
		the lisp libraries change from one version of XEmacs to
		another, including the version number in the path
		allows you to have several versions of XEmacs installed
		at the same time; this means that you don't have to
		make XEmacs unavailable while installing a new version.

		XEmacs searches for its lisp files in these
		directories, and then in
		`/usr/local/lib/xemacs/site-lisp/*'.

`/usr/local/lib/xemacs-VERSION/etc' holds the XEmacs tutorial, the
		`yow' database, and other architecture-independent
		files XEmacs might need while running.  VERSION is as
		specified for `.../lisp'.

`/usr/local/lib/xemacs/lock' contains files indicating who is
		editing what, so XEmacs can detect editing clashes
		between users.

`/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME' contains executable
		programs used by XEmacs that users are not expected to
		run themselves, and the DOC file. `VERSION' is the
		number of the XEmacs version you are installing, and
		`CONFIGURATION-NAME' is the argument you gave to the
		`configure' program to identify the architecture and
		operating system of your machine, like
		`mips-dec-ultrix' or `sparc-sun-sunos'.  Since these
		files are specific to the version of XEmacs, operating
		system, and architecture in use, including the
		configuration name in the path allows you to have
		several versions of XEmacs for any mix of machines and
		operating systems installed at the same time; this is
		useful for sites at which different kinds of machines
		share the file system XEmacs is installed on.

`/usr/local/lib/xemacs-VERSION/info' holds the on-line documentation
		for XEmacs, known as "info files".

`/usr/local/man/man1' holds the man pages for the programs installed
		in `/usr/local/bin'.

If these directories are not what you want, you can specify where to
install XEmacs's libraries and data files or where XEmacs should search
for its lisp files by giving values for `make' variables as part of
the command.  See the section below called `MAKE VARIABLES' for more
information on this.

8) If your system uses lock files to interlock access to mailer inbox files,
then you might need to make the movemail program setuid or setgid
to enable it to write the lock files.  We believe this is safe.
The setuid/setgid bits need not be set on any other XEmacs-related
executables.

9) You are done!  You can remove executables and object files from
the build directory by typing `make clean'.  To also remove the files
that `configure' created (so you can compile XEmacs for a different
configuration), type `make distclean'.


MAKE VARIABLES

You can change where the build process installs XEmacs and its data
files by specifying values for `make' variables as part of the `make'
command line.  For example, if you type

    make install bindir=/usr/local/gnubin

the `bindir=/usr/local/gnubin' argument indicates that the XEmacs
executable files should go in `/usr/local/gnubin', not
`/usr/local/bin'.

Here is a complete list of the variables you may want to set.

`bindir' indicates where to put executable programs that users can
	run.  This defaults to /usr/local/bin.

`datadir' indicates where to put the architecture-independent
	read-only data files that XEmacs refers to while it runs; it
	defaults to /usr/local/lib.  We create the following
	subdirectories under `datadir':
	- `xemacs-VERSION/lisp', containing the XEmacs lisp libraries, and

	- `xemacs-VERSION/etc', containing the XEmacs tutorial and the
		`yow' database.
	`VERSION' is the number of the XEmacs version you are installing,
	like `18.59' or `19.14'.  Since these files vary from one version
	of XEmacs to another, including the version number in the path
	allows you to have several versions of XEmacs installed at the
	same time; this means that you don't have to make XEmacs
	unavailable while installing a new version.

`statedir' indicates where to put architecture-independent data files
	that XEmacs modifies while it runs; it defaults to
	/usr/local/lib as well.  We create the following
	subdirectories under `statedir':
	- `xemacs/lock', containing files indicating who is editing
		what, so XEmacs can detect editing clashes between
		users.

`libdir' indicates where to put architecture-specific data files that
	XEmacs refers to as it runs; it too defaults to `/usr/local/lib'.
	We create the following subdirectories under `libdir':
	- `xemacs-VERSION/CONFIGURATION-NAME', containing executable
		programs used by XEmacs that users are not expected to run
		themselves and the DOC file.
	`VERSION' is the number of the XEmacs version you are installing,
	and `CONFIGURATION-NAME' is the argument you gave to the
	`configure' program to identify the architecture and operating
	system of your machine, like `mips-dec-ultrix' or
	`sparc-sun-sunos'.  Since these files are specific to the version
	of XEmacs, operating system, and architecture in use, including
	the configuration name in the path allows you to have several
	versions of XEmacs for any mix of machines and operating systems
	installed at the same time; this is useful for sites at which
	different kinds of machines share the file system XEmacs is
	installed on.

`infodir' indicates where to put the info files distributed with
	XEmacs; it defaults to `/usr/local/lib/xemacs-VERSION/info'.

`mandir' indicates where to put the man pages for XEmacs and its
	utilities (like `etags'); it defaults to
	`/usr/local/man/man1'.

`prefix' doesn't give a path for any specific part of XEmacs; instead,
	its value is used to determine the defaults for all the
	architecture-independent path variables - `datadir',
	`statedir', `infodir', and `mandir'.  Its default value is
	`/usr/local'; the other variables add on `lib' or `man' to it
	by default.

	For example, suppose your site generally places GNU software
	under `/usr/users/software/gnusoft' instead of `/usr/local'.
	By including
	    `prefix=/usr/users/software/gnusoft'
	in the arguments to `make', you can instruct the build process
	to place all of the XEmacs data files in the appropriate
	directories under that path.

`exec_prefix' serves the same purpose as `prefix', but instead
	determines the default values for the architecture-dependent
	path variables - `bindir' and `libdir'.

The above variables serve analogous purposes in the makefiles for all
GNU software; here are some variables specific to XEmacs.

`lispdir' indicates where XEmacs installs and expects its lisp
	libraries.  Its default value, based on `datadir' (see above),
	is `/usr/local/lib/xemacs-VERSION/lisp' (where `VERSION' is as
	described above).

`sitelispdir' indicates where XEmacs should search for lisp libraries
	specific to your site. XEmacs checks them in order before
	checking `lispdir'.  Its default value, based on `datadir'
	(see above), is `/usr/local/lib/xemacs/site-lisp'.

`etcdir' indicates where XEmacs should install and expect the rest of
	its architecture-independent data, like the tutorial and yow
	database.  Its default value, based on `datadir'
	(see above), is `/usr/local/lib/xemacs-VERSION/etc' (where
	`VERSION' is as described above).

`lockdir' indicates the directory where XEmacs keeps track of its
	locking information.  Its default value, based on `statedir'
	(see above), is `/usr/local/lib/xemacs/lock'.

`archlibdir' indicates where XEmacs installs and expects the
	executable files and other architecture-dependent data it uses
	while running.  Its default value, based on `libdir' (see
	above), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME'
	(where VERSION and CONFIGURATION-NAME are as described above).

Remember that you must specify any variable values you need each time
you run `make' in the top directory.  If you run `make' once to build
xemacs, test it, and then run `make' again to install the files, you
must provide the same variable settings each time.  To make the
settings persist, you can edit them into the `Makefile' in the top
directory, but be aware that running the `configure' program erases
`Makefile' and rebuilds it from `Makefile.in'.

The top-level Makefile stores the variable settings it used in the
Makefiles for the subdirectories, so you don't have to specify them
when running make in the subdirectories.


CONFIGURATION BY HAND

Instead of running the `configure' program, you have to perform the
following steps.

1) Copy `./src/config.h.in' to `./src/config.h'.

2) Consult `./etc/MACHINES' to see what configuration name you should
use for your system.  Look at the code of the `configure' script to
see which operating system and architecture description files from
`src/s' and `src/m' should be used for that configuration name.  Edit
`src/config.h', and change the two `#include' directives to include
the appropriate system and architecture description files.

2) Edit `./src/config.h' to set the right options for your system.  If
you need to override any of the definitions in the s/*.h and m/*.h
files for your system and machine, do so by editing config.h, not by
changing the s/*.h and m/*.h files.  Occasionally you may need to
redefine parameters used in `./lib-src/movemail.c'.

3) If you're going to use the make utility to build XEmacs, you will
still need to run `configure' first, giving the appropriate values for
the variables in the sections entitled "Things `configure' Might Edit"
and "Where To Install Things."  Note that you may only need to change
the variables `prefix' and `exec_prefix', since the rest of the
variables have reasonable defaults based on them.  For each Makefile
variable of this type, there is a corresponding configure option; for
example, to change the location of the lock directory, you might use

	 ./configure --lockdir=/nfs/xemacslock

The `configure' script is built from `configure.in' by the `autoconf'
program.  However, since XEmacs has configuration requirements that
autoconf can't meet, `configure.in' uses a marriage of custom-baked
configuration code and autoconf macros.  New versions of autoconf
could very well break this arrangement, so it may be wise to avoid
rebuilding `configure' from `configure.in' when possible.


BUILDING XEMACS BY HAND

Once XEmacs is configured, running `make' in the top directory performs
the following steps.

1) Run `make src/paths.h' in the top directory.  This produces
`./src/paths.h' from the template file `./src/paths.h.in', changing
the paths to the values specified in `./Makefile'.

2) Cd to `./lib-src' and run `make'.  This creates executables named
`ctags' and `etags' and `wakeup' and `make-docfile' and `digest-doc'
and `test-distrib'.  And others.

3) Cd to `./src' and Run `make'.  This refers to files in the `./lisp'
and `./lib-src' subdirectories using names `../lisp' and
`../lib-src'.

This creates a file `./src/xemacs' which is the runnable XEmacs,
assigning it a new build version number by incrementing the build
version stored in `./lisp/version.el'.

It also creates a file in `./lib-src' whose name is `DOC' followed by
the current XEmacs version.  This file contains documentation strings
for all the functions in XEmacs.  Each time you run make to make a new
xemacs, a new DOC file with a new name is made.  You must keep the DOC
file for an XEmacs version as long as you keep using that XEmacs
version.


INSTALLATION BY HAND

The steps below are done by running `make install' in the main
directory of the XEmacs distribution.

1) Copy `./lisp' and its subdirectories, `./etc', and the executables
in `./lib-src' to their final destinations, as selected in `./src/paths.h'.

Strictly speaking, not all of the executables in `./lib-src' need be copied.
- The programs `cvtmail', `emacsserver', `env', `fakemail', `hexl',
    `movemail', `timer', `vcdiff', `wakeup', and `yow' are used by
    XEmacs; they do need to be copied.
- The programs `etags', `ctags', `emacsclient', `b2m', `rcs2log',
    `gnuclient', `gnudoit', and `gnuattach' are intended to be run
    by users; they are handled below.
- The programs `make-docfile' and `test-distrib' were
    used in building XEmacs, and are not needed any more.
- The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
    a file for users to read.  There is no important reason to move them.

2) Copy the files in `./info' to the place specified in
`./lisp/site-init.el' or `./lisp/paths.el'.  Note that if the
destination directory already contains a file named `dir', you
probably don't want to replace it with the `dir' file in the XEmacs
distribution.  Instead, you should make sure that the existing `dir'
file contains an appropriate menu entry for the XEmacs info.

3) Create a directory for XEmacs to use for clash detection, named as
indicated by the PATH_LOCK macro in `./src/paths.h'.

4) Copy `./src/xemacs' to `/usr/local/bin', or to some other directory
in users' search paths.  `./src/xemacs' has an alternate name
`./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
`/usr/local/bin/xemacs' pointing to that alternate name, as an easy way
of installing different versions.

You can delete `./src/temacs'.

5) Copy the programs `b2m', `emacsclient', `ctags', `etags', `rcs2log',
`gnuclient', `gnudoit', and `gnuattach' from `./lib-src' to
`/usr/local/bin'.  These programs are intended for users to run.

6) Copy the man pages in `./etc' for xemacs, ctags, etags, and gnuserv
into the appropriate man directories.

7) The files in the `./src' subdirectory, except for `xemacs', are not
used by XEmacs once it is built.  The source would be handy for
debugging.


PROBLEMS

See the file PROBLEMS in this directory for a list of various
problems sometimes encountered, and what to do about them.


If all else fails, please see etc/InstallGuide courtesy
of Jonathan Seth Hayward.