comparison INSTALL @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 XEmacs Installation Guide
2 Copyright (c) 1994, 1995, 1996 Board of Trustees, University of Illinois
3 Copyright (c) 1994 Free Software Foundation, Inc.
4
5 Synched up with: FSF 19.30.
6
7 Permission is granted to anyone to make or distribute verbatim copies
8 of this document as received, in any medium, provided that the
9 copyright notice and permission notice are preserved,
10 and that the distributor grants the recipient permission
11 for further redistribution as permitted by this notice.
12
13 Permission is granted to distribute modified versions
14 of this document, or of portions of it,
15 under the above conditions, provided also that they
16 carry prominent notices stating who last changed them,
17 and that any new or changed statements about the activities
18 of the Free Software Foundation are approved by the Foundation.
19
20
21 BUILDING AND INSTALLATION:
22
23 1) Make sure your system has enough swapping space allocated to handle
24 a program whose pure code is 900k bytes and whose data area is at
25 least 400k and can reach 8Mb or more. If the swapping space is
26 insufficient, you will get an error in the command `temacs -batch -l
27 loadup dump', found in `./src/Makefile.in.in', or possibly when
28 running the final dumped XEmacs.
29
30 Building XEmacs requires about 70 Mb of disk space (including the
31 XEmacs sources). Once installed, XEmacs occupies about 50 Mb in the
32 file system where it is installed; this includes the executable files,
33 Lisp libraries, miscellaneous data files, and on-line documentation.
34 If the building and installation take place in different directories,
35 then the installation procedure momentarily requires 70+50 Mb.
36
37 XEmacs requires an ANSI C compiler, such as LCC or GCC.
38
39 2) Consult `./etc/MACHINES' to see what configuration name you should
40 give to the `configure' program. That file offers hints for
41 getting around some possible installation problems.
42
43 3) In the top directory of the XEmacs distribution, run the program
44 `configure' as follows:
45
46 ./configure CONFIGURATION-NAME [--OPTION[=VALUE]] ...
47
48 The CONFIGURATION-NAME argument should be a configuration name given
49 in `./etc/MACHINES'. If omitted, `configure' will try to guess your
50 system type; if it cannot, you must find the appropriate configuration
51 name in `./etc/MACHINES' and specify it explicitly.
52
53 If you don't want X support, specify `--with-x=no'. If you omit this
54 option, `configure' will try to figure out for itself whether your
55 system has X, and arrange to use it if present.
56
57 Additional support can be included for the NeXTstep system by
58 specifying the flag `--with-ns'. This is not yet fully supported.
59
60 The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
61 process where the compiler should look for the include files and
62 object libraries used with the X Window System. Normally, `configure'
63 is able to find them; these options are necessary if you have your X
64 Window System files installed in unusual places.
65
66 The `--site-includes=DIR' and `--site-libraries=DIR' options allow you
67 to specify additional places the compiler should look for include
68 files and object libraries. You may specify multiple DIR's by
69 enclosing the list in quotes. On some systems (noticeably Solaris) you
70 may need to use `--site-runtime-libraries=DIR'. This will add -R
71 versions of each path in addition to the -L versions.
72
73 The `--with-gcc' option specifies that the build process should
74 compile XEmacs using GCC. The `--with-lcc' option specifies that the
75 build process should compile XEmacs using Lucid C. The `--compiler'
76 option allows you to specify some other compiler to be used to compile
77 XEmacs. It is compatible with both the `--with-gcc' and `--with-lcc'
78 options, so if the compiler that you specify is a special version of
79 either gcc or lcc, then use the appropriate --with-gcc or --with-lcc
80 flag as well as the --compiler flag. If none of these flags is
81 specified, `configure' will search for GCC in your load path, and use
82 it if present. If you don't want to use GCC, specify `--with-gcc=no'
83 and the compiler will then default to 'cc'.
84
85 The `--cflags' option specifies the CFLAGS the build process should
86 use when compiling XEmacs. If not used CFLAGS defaults to "-g -O" for
87 gcc and "-g" for all other compilers.
88
89 The `--with-gnu-make' option specifies that Makefiles should be
90 written to take advantage of special features of GNU Make. GNU Make
91 works fine on Makefiles even without this option. This flag just
92 allows for simultaneous in-place and --srcdir building.
93
94 The `--dynamic' option specifies that configure should try to link
95 emacs dynamically rather than statically.
96
97 The `--const-is-losing' option is for use if you have trouble
98 compiling due to the `const' storage class in C. This is defined by
99 default. Most users should have no need to change this.
100
101 You can build XEmacs for several different machine types from a single
102 source directory. To do this, you must use a version of `make' that
103 supports the `VPATH' variable, such as GNU `make'. Make separate
104 build directories for the different configuration types, and in each
105 one, run the XEmacs `configure' script. `configure' looks for the
106 Emacs source code in the directory that `configure' is in.
107
108 The `--prefix=PREFIXDIR' option specifies where the installation process
109 should put XEmacs and its data files. This defaults to `/usr/local'.
110 - XEmacs (and the other utilities users run) go in PREFIXDIR/bin
111 (unless the `--exec-prefix' option says otherwise).
112 - The architecture-independent files go in PREFIXDIR/lib/xemacs-VERSION
113 (where VERSION is the version number of XEmacs, like `19.14').
114 - The architecture-dependent files go in
115 PREFIXDIR/lib/xemacs-VERSION/CONFIGURATION
116 (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
117 unless the `--exec-prefix' option says otherwise.
118
119 The `--exec-prefix=EXECDIR' option allows you to specify a separate
120 portion of the directory tree for installing architecture-specific
121 files, like executables and utility programs. If specified,
122 - XEmacs (and the other utilities users run) go in EXECDIR/bin, and
123 - The architecture-dependent files go in
124 EXECDIR/lib/xemacs-VERSION/CONFIGURATION.
125 EXECDIR/bin should be a directory that is normally in users' PATHs.
126
127 For example, the command
128
129 ./configure mips-dec-ultrix --with-x
130
131 configures XEmacs to build for a DECstation running Ultrix, with
132 support for the X11 window system.
133
134 The `--run-in-place' option will make the installed binaries reference
135 the source tree for the elisp files.
136
137 The `--with-menubars=TYPE' option allows you to specify which X
138 toolkit you wish to use for the menubar. The valid options are
139 `lucid', `motif' and `none'. The default is `lucid' which is a
140 Motif-lookalike menubar. We highly recommend its usage over the real
141 Motif menubar. (In fact, the Motif menubar is currently broken.) If
142 `none' is specified then support for menubars will not be compiled in.
143
144 The `--with-scrollbars=TYPE' option allows you to specify which X
145 toolkit you wish to use for the scrollbars. The valid options are
146 `lucid', `motif', `athena' and `none'. The default is `lucid' which
147 is a Motif-lookalike scrollbar. If `none' is specified then support
148 for scrollbars will not be compiled in.
149
150 The `--with-dialogs=TYPE' option allows you to specify which X toolkit
151 you wish to use for the scrollbars. The valid options are `athena',
152 `motif, and `none. The `lucid' option is accepted and will result in
153 the `athena' toolkit being used. If the Motif toolkit can be found
154 the default is `motif'. Otherwise, the default is `athena'. If
155 `none' is specified then support for dialog boxes will not be compiled
156 in.
157
158 The `--with-toolbars' option allows you to enable or disable toolbar
159 support. The default is `yes' as long as support for a windowing
160 system is included.
161
162 The `--with-xpm' option specifies that XEmacs should support X
163 Pixmaps. `configure' will attempt to detect if you have the Xpm
164 libraries and define `--with-xpm' for you.
165
166 The `--with-xface' option specifies that XEmacs should support
167 X-Faces. `configure' will attempt to detect if you have the compface
168 library and define `--with-xface' for you.
169
170 The `--with-gif' option specifies that XEmacs should support GIF image
171 conversion. No extra libraries are required. This options defaults
172 to `yes'.
173
174 The `--with-jpeg' option specifies that XEmacs should support JPEG
175 image conversion. This option requires libjpeg from the Independent
176 JPEG Group which is available on the XEmacs ftp site. `configure'
177 will attempt to detect if you have libjpeg and define `--with-jpeg'
178 for you.
179
180 The `--with-png option specifies that XEmacs should support PNG image
181 conversion. The valid options at `yes', `no' and `gnuz'. This option
182 requires libpng which is available on the XEmacs ftp site. This
183 option also requires a decompression library, either libz or libgz.
184 The default is to use libz. Specify `gnuz' as the option to use libgz
185 instead. `configure' will attempt to detect if you have libpng and
186 define `--with-png' for you.
187
188 The `--with-database' option specifies that XEmacs should be built
189 with additional database support. The valid options are `no' or a
190 comma-separated list of one or more of `dbm', `gnudbm' or `berkdb'.
191 `configure' will attempt to detect the necessary libraries and header
192 files and define `--with-database' for you.
193
194 The `--with-socks' option specifies that XEmacs should be built with
195 SOCKS support.
196
197 The `--with-term' option specifies that XEmacs should be built with
198 TERM support. TERM is a way to multiplex serial lines over a simple
199 dialup connection, used on Linux and other systems. We cannot
200 guarantee that our TERM support coexists well with standard Internet
201 connections.
202
203 The `--with-tooltalk' option specifies that XEmacs should be built
204 with ToolTalk support for interconnecting with other applications.
205 ToolTalk is not yet supported on all architectures.
206
207 The `--with-sparcworks' option specifies that XEmacs should be built
208 with support for Sun Sparcworks 3.0.1 and up. This functionality is
209 only of use on SunOS 4.1.x and Solaris 2.x systems.
210
211 The `--with-cde option allows you to enable or disable CDE drag and
212 drop support. `configure' will attempt to detect this option and
213 define `--with-cde' for you.
214
215 The `--with-energize' option specifies that XEmacs should be built
216 with support for the Lucid Energize system. (If you have not
217 purchased Energize, specifying this option won't gain you anything.)
218 Currently this doesn't work.
219
220 The `--external-widget' option specifies that XEmacs should be built
221 with support for being used as a widget. This functionality should be
222 considered beta.
223
224 The `--with-mocklisp' option specifies that XEmacs should be built
225 with support for Mocklisp. Do not use this option unless you have a
226 Mocklisp program that you need to run.
227
228 The `--with-xmu=no' option can be used if your vendor doesn't ship
229 the Xmu library.
230
231 The `--puresize' option can be used to change the amount of purespace
232 allocated for the dumped XEmacs.
233
234 The `--with-sound=TYPE' option specifies that XEmacs should be built
235 with sound support. Native (`--with-sound=native') sound support is
236 currently available only on Sun SparcStations, SGI's, HP9000s, and
237 Linux. Network Audio Support (NAS) (`--with-sound=nas' or
238 `--with-sound=both') is an extension to X that you may or may not have
239 for your system. For NAS, you will probably need to provide the paths
240 to the nas include and library directories to configure. `configure'
241 will attempt to determine if your configuration supports sound and
242 define --with-sound for you. If your native sound library is not in a
243 standard location you can specify where it is with the
244 `--native-sound-lib=LIB' flag. For Linux, `/dev/audio' is required
245 for SunAudio files and `/dev/dsp' is required for raw data and WAVE
246 format files.
247
248 The `--rel-alloc' option can be used to either enable or disable use
249 of the relocating allocator. Generally, it's best to go with the
250 default configuration for your system.
251
252 The `--use-system-malloc' option can be use to either enable or
253 disable use of the relocating allocator. Generally, it's best to go
254 with the default configuration for your system. Note that on many
255 systems using the system malloc disables the use of the relocating
256 allocator.
257
258 The `--with-epoch' option enables functionality taken from Epoch.
259 Currently this doesn't work.
260
261 The `--debug' and `--error-checking' options are intended for use only
262 by the developers. `--debug' adds code to be compiled in for
263 performing various tests. `--error-checking' adds additional tests to
264 many of the commonly used macros.
265
266 The `--verbose' and `--extra-verbose' options are intended for use
267 only by the developers. `--verbose' causes the results of all
268 configure tests to be displayed. `--extra-verbose' also displays the
269 output of any compiler invocations done by configure.
270
271 `configure' doesn't do any compilation or installation
272 itself. It just creates the files that influence those things:
273 `./Makefile', `src/Makefile', `lwlib/Makefile', `lib-src/Makefile',
274 `man/Makefile', `dynodump/Makefile', and `./src/config.h'. For
275 details on exactly what it does, see the section called `CONFIGURATION
276 BY HAND', below.
277
278 When it is done, `configure' prints a description of what it did and
279 creates a shell script `config.status' which, when run, recreates the
280 same configuration. If `configure' exits with an error after
281 disturbing the status quo, it removes `config.status'.
282
283 The work of `configure' can be done by editing various files in the
284 distribution, but using `configure' is supposed to be simpler. See
285 the section called "CONFIGURATION BY HAND" below if you want to do the
286 configuration yourself.
287
288 4) Look at `./lisp/paths.el'; if some of those values are not right
289 for your system, set up the file `./lisp/site-init.el' with XEmacs
290 Lisp code to override them; it is not a good idea to edit paths.el
291 itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES,
292 rather than `defvar', as used by `./lisp/paths.el'. For example,
293
294 (setq news-inews-program "/usr/bin/inews")
295
296 is how you would override the default value of the variable
297 news-inews-program (which is "/usr/local/inews").
298
299 Before you override a variable this way, *look at the value* that the
300 variable gets by default! Make sure you know what kind of value the
301 variable should have. If you don't pay attention to what you are
302 doing, you'll make a mistake.
303
304 Things may malfunction if the variable `directory-abbrev-alist' is not set
305 up to translate "temporary" automounter mount points into the canonical
306 form. The default value of this variable contains the translation
307
308 ("^/tmp_mnt/" . "/")
309
310 meaning translate "/tmp_mnt/net/FOO" into "/net/FOO", which is appropriate
311 for the default configuration of the Sun automounter, but which may be
312 inappropriate for different vendor's automounters, or if you have customized
313 your mount-point names.
314
315 5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
316 Lisp code you want XEmacs to load before it is dumped out. Use
317 site-load.el for additional libraries if you arrange for their
318 documentation strings to be in the lib-src/DOC file (see
319 src/Makefile.in.in if you wish to figure out how to do that). For all
320 else, use site-init.el.
321
322 If you set load-path to a different value in site-init.el or
323 site-load.el, XEmacs will use *precisely* that value when it starts up
324 again. If you do this, you are on your own!
325
326 Note that, on some systems, the code you place in site-init.el must
327 not use expand-file-name or any other function which may look
328 something up in the system's password and user information database.
329 See `./PROBLEMS' for more details on which systems this affects.
330
331 The `site-*.el' files are nonexistent in the distribution. You do not
332 need to create them if you have nothing to put in them.
333
334 6) Refer to the file `./etc/TERMS' for information on fields you may
335 wish to add to various termcap entries. The files `./etc/termcap.ucb'
336 and `./etc/termcap.dat' may already contain appropriately-modified
337 entries.
338
339 7) Run `make' in the top directory of the XEmacs distribution to finish
340 building XEmacs in the standard way. The final executable file is
341 named `src/emacs'. You can execute this file "in place" without
342 copying it, if you wish; then it automatically uses the sibling
343 directories ../lisp, ../lib-src, ../info.
344
345 Or you can "install" the executable and the other XEmacs into their
346 installed locations, with `make install'. By default, XEmacs's files
347 are installed in the following directories:
348
349 By default, XEmacs installs its files in the following directories:
350
351 `/usr/local/bin' holds the executable programs users normally run -
352 `xemacs', `etags', `ctags', `b2m', `emacsclient',
353 `gnuclient', `gnudoit', `gnuattach', and `rcs-checkin'.
354
355 `/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
356 `VERSION' stands for the number of the XEmacs version
357 you are installing, like `18.59' or `19.14'. Since
358 the lisp libraries change from one version of XEmacs to
359 another, including the version number in the path
360 allows you to have several versions of XEmacs installed
361 at the same time; this means that you don't have to
362 make XEmacs unavailable while installing a new version.
363
364 XEmacs searches for its lisp files in these
365 directories, and then in
366 `/usr/local/lib/xemacs/site-lisp/*'.
367
368 `/usr/local/lib/xemacs-VERSION/etc' holds the XEmacs tutorial, the
369 `yow' database, and other architecture-independent
370 files XEmacs might need while running. VERSION is as
371 specified for `.../lisp'.
372
373 `/usr/local/lib/xemacs/lock' contains files indicating who is
374 editing what, so XEmacs can detect editing clashes
375 between users.
376
377 `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME' contains executable
378 programs used by XEmacs that users are not expected to
379 run themselves, and the DOC file. `VERSION' is the
380 number of the XEmacs version you are installing, and
381 `CONFIGURATION-NAME' is the argument you gave to the
382 `configure' program to identify the architecture and
383 operating system of your machine, like
384 `mips-dec-ultrix' or `sparc-sun-sunos'. Since these
385 files are specific to the version of XEmacs, operating
386 system, and architecture in use, including the
387 configuration name in the path allows you to have
388 several versions of XEmacs for any mix of machines and
389 operating systems installed at the same time; this is
390 useful for sites at which different kinds of machines
391 share the file system XEmacs is installed on.
392
393 `/usr/local/lib/xemacs-VERSION/info' holds the on-line documentation
394 for XEmacs, known as "info files".
395
396 `/usr/local/man/man1' holds the man pages for the programs installed
397 in `/usr/local/bin'.
398
399 If these directories are not what you want, you can specify where to
400 install XEmacs's libraries and data files or where XEmacs should search
401 for its lisp files by giving values for `make' variables as part of
402 the command. See the section below called `MAKE VARIABLES' for more
403 information on this.
404
405 8) If your system uses lock files to interlock access to mailer inbox files,
406 then you might need to make the movemail program setuid or setgid
407 to enable it to write the lock files. We believe this is safe.
408 The setuid/setgid bits need not be set on any other XEmacs-related
409 executables.
410
411 9) You are done! You can remove executables and object files from
412 the build directory by typing `make clean'. To also remove the files
413 that `configure' created (so you can compile XEmacs for a different
414 configuration), type `make distclean'.
415
416
417 MAKE VARIABLES
418
419 You can change where the build process installs XEmacs and its data
420 files by specifying values for `make' variables as part of the `make'
421 command line. For example, if you type
422
423 make install bindir=/usr/local/gnubin
424
425 the `bindir=/usr/local/gnubin' argument indicates that the XEmacs
426 executable files should go in `/usr/local/gnubin', not
427 `/usr/local/bin'.
428
429 Here is a complete list of the variables you may want to set.
430
431 `bindir' indicates where to put executable programs that users can
432 run. This defaults to /usr/local/bin.
433
434 `datadir' indicates where to put the architecture-independent
435 read-only data files that XEmacs refers to while it runs; it
436 defaults to /usr/local/lib. We create the following
437 subdirectories under `datadir':
438 - `xemacs-VERSION/lisp', containing the XEmacs lisp libraries, and
439
440 - `xemacs-VERSION/etc', containing the XEmacs tutorial and the
441 `yow' database.
442 `VERSION' is the number of the XEmacs version you are installing,
443 like `18.59' or `19.14'. Since these files vary from one version
444 of XEmacs to another, including the version number in the path
445 allows you to have several versions of XEmacs installed at the
446 same time; this means that you don't have to make XEmacs
447 unavailable while installing a new version.
448
449 `statedir' indicates where to put architecture-independent data files
450 that XEmacs modifies while it runs; it defaults to
451 /usr/local/lib as well. We create the following
452 subdirectories under `statedir':
453 - `xemacs/lock', containing files indicating who is editing
454 what, so XEmacs can detect editing clashes between
455 users.
456
457 `libdir' indicates where to put architecture-specific data files that
458 XEmacs refers to as it runs; it too defaults to `/usr/local/lib'.
459 We create the following subdirectories under `libdir':
460 - `xemacs-VERSION/CONFIGURATION-NAME', containing executable
461 programs used by XEmacs that users are not expected to run
462 themselves and the DOC file.
463 `VERSION' is the number of the XEmacs version you are installing,
464 and `CONFIGURATION-NAME' is the argument you gave to the
465 `configure' program to identify the architecture and operating
466 system of your machine, like `mips-dec-ultrix' or
467 `sparc-sun-sunos'. Since these files are specific to the version
468 of XEmacs, operating system, and architecture in use, including
469 the configuration name in the path allows you to have several
470 versions of XEmacs for any mix of machines and operating systems
471 installed at the same time; this is useful for sites at which
472 different kinds of machines share the file system XEmacs is
473 installed on.
474
475 `infodir' indicates where to put the info files distributed with
476 XEmacs; it defaults to `/usr/local/lib/xemacs-VERSION/info'.
477
478 `mandir' indicates where to put the man pages for XEmacs and its
479 utilities (like `etags'); it defaults to
480 `/usr/local/man/man1'.
481
482 `prefix' doesn't give a path for any specific part of XEmacs; instead,
483 its value is used to determine the defaults for all the
484 architecture-independent path variables - `datadir',
485 `statedir', `infodir', and `mandir'. Its default value is
486 `/usr/local'; the other variables add on `lib' or `man' to it
487 by default.
488
489 For example, suppose your site generally places GNU software
490 under `/usr/users/software/gnusoft' instead of `/usr/local'.
491 By including
492 `prefix=/usr/users/software/gnusoft'
493 in the arguments to `make', you can instruct the build process
494 to place all of the XEmacs data files in the appropriate
495 directories under that path.
496
497 `exec_prefix' serves the same purpose as `prefix', but instead
498 determines the default values for the architecture-dependent
499 path variables - `bindir' and `libdir'.
500
501 The above variables serve analogous purposes in the makefiles for all
502 GNU software; here are some variables specific to XEmacs.
503
504 `lispdir' indicates where XEmacs installs and expects its lisp
505 libraries. Its default value, based on `datadir' (see above),
506 is `/usr/local/lib/xemacs-VERSION/lisp' (where `VERSION' is as
507 described above).
508
509 `sitelispdir' indicates where XEmacs should search for lisp libraries
510 specific to your site. XEmacs checks them in order before
511 checking `lispdir'. Its default value, based on `datadir'
512 (see above), is `/usr/local/lib/xemacs/site-lisp'.
513
514 `etcdir' indicates where XEmacs should install and expect the rest of
515 its architecture-independent data, like the tutorial and yow
516 database. Its default value, based on `datadir'
517 (see above), is `/usr/local/lib/xemacs-VERSION/etc' (where
518 `VERSION' is as described above).
519
520 `lockdir' indicates the directory where XEmacs keeps track of its
521 locking information. Its default value, based on `statedir'
522 (see above), is `/usr/local/lib/xemacs/lock'.
523
524 `archlibdir' indicates where XEmacs installs and expects the
525 executable files and other architecture-dependent data it uses
526 while running. Its default value, based on `libdir' (see
527 above), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME'
528 (where VERSION and CONFIGURATION-NAME are as described above).
529
530 Remember that you must specify any variable values you need each time
531 you run `make' in the top directory. If you run `make' once to build
532 xemacs, test it, and then run `make' again to install the files, you
533 must provide the same variable settings each time. To make the
534 settings persist, you can edit them into the `Makefile' in the top
535 directory, but be aware that running the `configure' program erases
536 `Makefile' and rebuilds it from `Makefile.in'.
537
538 The top-level Makefile stores the variable settings it used in the
539 Makefiles for the subdirectories, so you don't have to specify them
540 when running make in the subdirectories.
541
542
543 CONFIGURATION BY HAND
544
545 Instead of running the `configure' program, you have to perform the
546 following steps.
547
548 1) Copy `./src/config.h.in' to `./src/config.h'.
549
550 2) Consult `./etc/MACHINES' to see what configuration name you should
551 use for your system. Look at the code of the `configure' script to
552 see which operating system and architecture description files from
553 `src/s' and `src/m' should be used for that configuration name. Edit
554 `src/config.h', and change the two `#include' directives to include
555 the appropriate system and architecture description files.
556
557 2) Edit `./src/config.h' to set the right options for your system. If
558 you need to override any of the definitions in the s/*.h and m/*.h
559 files for your system and machine, do so by editing config.h, not by
560 changing the s/*.h and m/*.h files. Occasionally you may need to
561 redefine parameters used in `./lib-src/movemail.c'.
562
563 3) If you're going to use the make utility to build XEmacs, you will
564 still need to run `configure' first, giving the appropriate values for
565 the variables in the sections entitled "Things `configure' Might Edit"
566 and "Where To Install Things." Note that you may only need to change
567 the variables `prefix' and `exec_prefix', since the rest of the
568 variables have reasonable defaults based on them. For each Makefile
569 variable of this type, there is a corresponding configure option; for
570 example, to change the location of the lock directory, you might use
571
572 ./configure --lockdir=/nfs/xemacslock
573
574 The `configure' script is built from `configure.in' by the `autoconf'
575 program. However, since XEmacs has configuration requirements that
576 autoconf can't meet, `configure.in' uses an marriage of custom-baked
577 configuration code and autoconf macros. New versions of autoconf
578 could very well break this arrangement, so it may be wise to avoid
579 rebuilding `configure' from `configure.in' when possible.
580
581
582 BUILDING XEMACS BY HAND
583
584 Once XEmacs is configured, running `make' in the top directory performs
585 the following steps.
586
587 1) Run `make src/paths.h' in the top directory. This produces
588 `./src/paths.h' from the template file `./src/paths.h.in', changing
589 the paths to the values specified in `./Makefile'.
590
591 2) Cd to `./lib-src' and run `make'. This creates executables named
592 `ctags' and `etags' and `wakeup' and `make-docfile' and `digest-doc'
593 and `test-distrib'. And others.
594
595 3) Cd to `./src' and Run `make'. This refers to files in the `./lisp'
596 and `./lib-src' subdirectories using names `../lisp' and
597 `../lib-src'.
598
599 This creates a file `./src/xemacs' which is the runnable XEmacs,
600 assigning it a new build version number by incrementing the build
601 version stored in `./lisp/version.el'.
602
603 It also creates a file in `./lib-src' whose name is `DOC' followed by
604 the current XEmacs version. This file contains documentation strings
605 for all the functions in XEmacs. Each time you run make to make a new
606 xemacs, a new DOC file with a new name is made. You must keep the DOC
607 file for an XEmacs version as long as you keep using that XEmacs
608 version.
609
610
611 INSTALLATION BY HAND
612
613 The steps below are done by running `make install' in the main
614 directory of the XEmacs distribution.
615
616 1) Copy `./lisp' and its subdirectories, `./etc', and the executables
617 in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
618
619 Strictly speaking, not all of the executables in `./lib-src' need be copied.
620 - The programs `cvtmail', `emacsserver', `env', `fakemail', `hexl',
621 `movemail', `timer', `vcdiff', `wakeup', and `yow' are used by
622 XEmacs; they do need to be copied.
623 - The programs `etags', `ctags', `emacsclient', `b2m', `rcs2log',
624 `gnuclient', `gnudoit', and `gnuattach' are intended to be run
625 by users; they are handled below.
626 - The programs `make-docfile' and `test-distrib' were
627 used in building XEmacs, and are not needed any more.
628 - The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
629 a file for users to read. There is no important reason to move them.
630
631 2) Copy the files in `./info' to the place specified in
632 `./lisp/site-init.el' or `./lisp/paths.el'. Note that if the
633 destination directory already contains a file named `dir', you
634 probably don't want to replace it with the `dir' file in the XEmacs
635 distribution. Instead, you should make sure that the existing `dir'
636 file contains an appropriate menu entry for the XEmacs info.
637
638 3) Create a directory for XEmacs to use for clash detection, named as
639 indicated by the PATH_LOCK macro in `./src/paths.h'.
640
641 4) Copy `./src/xemacs' to `/usr/local/bin', or to some other directory
642 in users' search paths. `./src/xemacs' has an alternate name
643 `./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
644 `/usr/local/bin/xemacs' pointing to that alternate name, as an easy way
645 of installing different versions.
646
647 You can delete `./src/temacs'.
648
649 5) Copy the programs `b2m', `emacsclient', `ctags', `etags', `rcs2log',
650 `gnuclient', `gnudoit', and `gnuattach' from `./lib-src' to
651 `/usr/local/bin'. These programs are intended for users to run.
652
653 6) Copy the man pages in `./etc' for xemacs, ctags, etags, and gnuserv
654 into the appropriate man directories.
655
656 7) The files in the `./src' subdirectory, except for `xemacs', are not
657 used by XEmacs once it is built. The source would be handy for
658 debugging.
659
660
661 PROBLEMS
662
663 See the file PROBLEMS in this directory for a list of various
664 problems sometimes encountered, and what to do about them.
665
666