Mercurial > hg > xemacs-beta
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 |