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 |
