comparison INSTALL @ 404:2f8bb876ab1d r21-2-32

Import from CVS: tag r21-2-32
author cvs
date Mon, 13 Aug 2007 11:16:07 +0200
parents a86b2b5e0111
children de805c49cfc1
comparison
equal deleted inserted replaced
403:9f011ab08d48 404:2f8bb876ab1d
1 XEmacs Installation Guide 1 XEmacs Installation Guide
2 Copyright (c) 1994, 1995, 1996 Board of Trustees, University of Illinois 2 Copyright (c) 1994, 1995, 1996 Board of Trustees, University of Illinois
3 Copyright (c) 1994-1999 Free Software Foundation, Inc. 3 Copyright (c) 1994-1999 Free Software Foundation, Inc.
4
5 Synched up with: FSF 19.30.
6 4
7 Permission is granted to anyone to make or distribute verbatim copies 5 Permission is granted to anyone to make or distribute verbatim copies
8 of this document as received, in any medium, provided that the 6 of this document as received, in any medium, provided that the
9 copyright notice and permission notice are preserved, 7 copyright notice and permission notice are preserved,
10 and that the distributor grants the recipient permission 8 and that the distributor grants the recipient permission
16 carry prominent notices stating who last changed them, 14 carry prominent notices stating who last changed them,
17 and that any new or changed statements about the activities 15 and that any new or changed statements about the activities
18 of the Free Software Foundation are approved by the Foundation. 16 of the Free Software Foundation are approved by the Foundation.
19 17
20 18
21 BUILDING AND INSTALLATION (Unix and Cygwin, see the file nt/README 19 BUILDING AND INSTALLATION FOR UNIX AND CYGWIN
22 for instructions on building under Microsoft Windows): 20
23 21 (for Microsoft Windows, see nt/README also.)
24 1) Make sure your system has enough swapping space allocated to handle 22
25 a program whose pure code is 900k bytes and whose data area is at 23 PREREQUISITES
26 least 400k and can reach 8Mb or more. Note that a typical XEmacs 24 =============
27 build is much bigger. If the swapping space is 25
28 insufficient, you will get an error in the command `temacs -batch 26 Make sure your system has enough swapping space allocated to handle a
29 -l loadup dump', found in `./src/Makefile.in.in', or possibly when 27 program whose pure code is 900k bytes and whose data area is at least
30 running the final dumped XEmacs. 28 400k and can reach 8Mb or more. Note that a typical XEmacs build is
31 29 much bigger. If the swapping space is insufficient, you will get an
32 Verify that your users have a high enough stack limit. On some 30 error in the command `temacs -batch -l loadup dump', found in
33 systems such as OpenBSD and OSF/Tru64 the default is 2MB which is 31 `./src/Makefile.in.in', or possibly when running the final dumped
34 too low. See 'PROBLEMS' for details. 32 XEmacs.
33
34 Verify that your users have a high enough stack limit. On some systems
35 such as OpenBSD and OSF/Tru64 the default is 2MB which is too low. See
36 'PROBLEMS' for details.
35 37
36 Building XEmacs requires about 100 Mb of disk space (including the 38 Building XEmacs requires about 100 Mb of disk space (including the
37 XEmacs sources). Once installed, XEmacs occupies between 20 and 100 Mb 39 XEmacs sources). Once installed, XEmacs occupies between 20 and 100 Mb
38 in the file system where it is installed; this includes the executable files, 40 in the file system where it is installed; this includes the executable files,
39 Lisp libraries, miscellaneous data files, and on-line documentation. The 41 Lisp libraries, miscellaneous data files, and on-line documentation. The
42 44
43 XEmacs requires an ANSI C compiler, such as GCC. If you wish to build 45 XEmacs requires an ANSI C compiler, such as GCC. If you wish to build
44 the documentation yourself, you will need at least version 1.68 of 46 the documentation yourself, you will need at least version 1.68 of
45 makeinfo (GNU texinfo-3.11). 47 makeinfo (GNU texinfo-3.11).
46 48
47 49 ADD-ON LIBRARIES
48 2) Decide on what other software packages you would like to use with 50 ================
51
52 Decide on what other software packages you would like to use with
49 XEmacs, but are not yet available on your system. On some systems, 53 XEmacs, but are not yet available on your system. On some systems,
50 Motif and CDE are optional additions. On Solaris, the SUNWaudmo 54 Motif and CDE are optional additions. On Solaris, the SUNWaudmo
51 package enables native sound support. There are also a number of free 55 package enables native sound support. There are also a number of free
52 software packages that XEmacs can use. If these are not yet available 56 software packages that XEmacs can use. If these are not yet available
53 on your system, obtain, build and install those external packages 57 on your system, obtain, build and install those external packages
70 to the --site-runtime-libraries option. For your convenience these can 74 to the --site-runtime-libraries option. For your convenience these can
71 be set together by using the --with-site-prefix command. This will set 75 be set together by using the --with-site-prefix command. This will set
72 these variables as needed assuming your libraries are organised as a 76 these variables as needed assuming your libraries are organised as a
73 typical /usr tree. 77 typical /usr tree.
74 78
75 3) [N.B. Most of this section can be done during or after the 79 PACKAGE SYSTEM
76 compilation of the core source code, but is present early to catch 80 ==============
77 your attention.] 81
78 82 The file README.packages contain information vital to have a fully
79 Decide what Initial Lisp you need with XEmacs. XEmacs is 83 working XEmacs. This information was not included in this file only
80 distributed separately from most of its runtime environment. This is 84 because it is too large for this terse INSTALL. Please read
81 done to make it easier for administrators to tune an installation for
82 what the local users need. Note that while XEmacs will compile and
83 install without any packages present at least some additional lisp
84 packages are needed to bring XEmacs up to "normal" editor
85 functionality. Installation and upgrading of the packages can be done
86 almost automatically when from inside XEmacs when it has been compiled
87 and installed.
88
89 More information and suggestions for which packages to install see the
90 file README.packages.
91
92 IMPORTANT! The file README.packages contain information vital to have
93 a fully working XEmacs. This information was not included in this file
94 only because it is too large for this terse INSTALL. Please read
95 README.packages now! 85 README.packages now!
96 86
97 By default, packages will be searched for in the path 87 CONFIGURATION OPTIONS
98 88 =====================
99 ~/.xemacs::$prefix/lib/xemacs-${version}/mule-packages:$prefix/lib/xemacs/mule-packages:$prefix/lib/xemacs-${version}/xemacs-packages:$prefix/lib/xemacs/xemacs-packages 89
100 90 In the top level directory of the XEmacs distribution, run the
101 This may be changed by specifying a different value with the 91 program `configure' as follows:
102 --package-path configuration option.
103
104 4) In the top level directory of the XEmacs distribution, run the
105 program `configure' as follows:
106 92
107 ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ... 93 ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...
108 94
109 Almost always, you should let `configure' (actually the shell script 95 Almost always, you should let `configure' (actually the shell script
110 `config.guess') guess your host type, by omitting the 96 `config.guess') guess your host type, by omitting the
200 - XEmacs (and the other utilities users run) go in EXECDIR/bin, and 186 - XEmacs (and the other utilities users run) go in EXECDIR/bin, and
201 - The architecture-dependent files go in 187 - The architecture-dependent files go in
202 EXECDIR/lib/xemacs-VERSION/CONFIGURATION-NAME. 188 EXECDIR/lib/xemacs-VERSION/CONFIGURATION-NAME.
203 EXECDIR/bin should be a directory that is normally in users' PATHs. 189 EXECDIR/bin should be a directory that is normally in users' PATHs.
204 190
205 For example, the command 191 If you specify --prefix (or any of the other installation directory
206 192 options), they will get compiled into the xemacs executable so it will
207 ./configure mips-dec-ultrix --with-x11=yes 193 be able to find its various associated file. However, XEmacs has
208 194 quite elaborate logic to find out the locations of these directories
209 configures XEmacs to build for a DECstation running Ultrix, with 195 dynamically. Sometimes, it is desirable *not* to compile these
210 support for the X11 window system. 196 directories into the executable so you can move the XEmacs
197 installation around (as whole) at will. This is true for binary kits,
198 for instance. Therefore, you can specify --without-prefix on the
199 configure command line to prevent the installation prefix to become
200 part of the generated executable; everything else will continue to
201 work as usual.
211 202
212 The `--with-menubars=TYPE' option allows you to specify which X 203 The `--with-menubars=TYPE' option allows you to specify which X
213 toolkit you wish to use for the menubar. The valid options are 204 toolkit you wish to use for the menubar. The valid options are
214 `lucid', `motif' and `no'. The default is `lucid' which is a 205 `lucid', `motif' and `no'. The default is `lucid' which is a
215 Motif-lookalike menubar. We highly recommend its usage over the real 206 Motif-lookalike menubar. We highly recommend its usage over the real
377 368
378 Please note that it is safe to build with as many of the options 369 Please note that it is safe to build with as many of the options
379 `--with-xim', `--with-canna' and `--with-wnn' as your system 370 `--with-xim', `--with-canna' and `--with-wnn' as your system
380 supports. 371 supports.
381 372
373 MAIL LOCKING
374 ============
375
376 Find out what the preferred method for locking mail spool files is in
377 your environment. Presently, XEmacs supports lockf, flock, and dot
378 locking. Specify the locking method via the --mail-locking=METHOD
379 option to configure. Valid values for METHOD are --mail-locking are
380 `lockf', `flock', and `dot'.
381
382 RUNNING CONFIGURE
383 =================
384
382 `configure' doesn't do any compilation or installation itself. It 385 `configure' doesn't do any compilation or installation itself. It
383 just creates the files that influence those things: `./src/config.h', 386 just creates the files that influence those things: `./src/config.h',
384 and all the Makefile's in the build tree. 387 and all the Makefile's in the build tree.
385
386 The `--with-pop', `--with-hesiod', and `--with-kerberos' options are used
387 in conjunction with movemail. As of XEmacs 20.1, movemail is identical
388 to the one used in Emacs.
389 388
390 When it is done, `configure' prints a description of what it did and 389 When it is done, `configure' prints a description of what it did and
391 creates a shell script `config.status' which, when run, recreates the 390 creates a shell script `config.status' which, when run, recreates the
392 same configuration. If `configure' exits with an error after 391 same configuration. If `configure' exits with an error after
393 disturbing the status quo, it removes `config.status'. 392 disturbing the status quo, it removes `config.status'.
394 393
395 5) Look at `./lisp/paths.el'; if some of those values are not right 394 AUXILIARY PATHS
396 for your system, set up the file `./lisp/site-init.el' with XEmacs 395 ===============
397 Lisp code to override them; it is not a good idea to edit paths.el 396
398 itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES, 397 Look at `./lisp/paths.el'; if some of those values are not right for
399 rather than `defvar', as used by `./lisp/paths.el'. For example, 398 your system, set up the file `./lisp/site-init.el' with XEmacs Lisp
399 code to override them; it is not a good idea to edit paths.el itself.
400 YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES, rather than
401 `defvar', as used by `./lisp/paths.el'. For example,
400 402
401 (setq news-inews-program "/usr/bin/inews") 403 (setq news-inews-program "/usr/bin/inews")
402 404
403 is how you would override the default value of the variable 405 is how you would override the default value of the variable
404 news-inews-program (which is "/usr/local/inews"). 406 news-inews-program (which is "/usr/local/inews").
413 canonical form. XEmacs tries to detect how your automounter is 415 canonical form. XEmacs tries to detect how your automounter is
414 configured. If you have an unusual automounter configuration that 416 configured. If you have an unusual automounter configuration that
415 XEmacs cannot detect, you may need to change the value of 417 XEmacs cannot detect, you may need to change the value of
416 `directory-abbrev-alist'. 418 `directory-abbrev-alist'.
417 419
418 6) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs 420 SITE-SPECIFIC STARTUP CODE
419 Lisp code you want XEmacs to load before it is dumped out. Use 421 ==========================
422
423 Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs Lisp
424 code you want XEmacs to load before it is dumped out. Use
420 site-load.el for additional libraries if you arrange for their 425 site-load.el for additional libraries if you arrange for their
421 documentation strings to be in the lib-src/DOC file (see 426 documentation strings to be in the lib-src/DOC file (see
422 src/Makefile.in.in if you wish to figure out how to do that). For all 427 src/Makefile.in.in if you wish to figure out how to do that). For all
423 else, use site-init.el. 428 else, use site-init.el.
424 429
425 If you set load-path to a different value in site-init.el or
426 site-load.el, XEmacs will use *precisely* that value when it starts up
427 again. If you do this, you are on your own!
428
429 Note that, on some systems, the code you place in site-init.el must 430 Note that, on some systems, the code you place in site-init.el must
430 not use expand-file-name or any other function which may look 431 not use expand-file-name or any other function which may look
431 something up in the system's password and user information database. 432 something up in the system's password and user information database.
432 See `./PROBLEMS' for more details on which systems this affects. 433 See `./PROBLEMS' for more details on which systems this affects.
433 434
434 The `site-*.el' files are nonexistent in the distribution. You do not 435 The `site-*.el' files are nonexistent in the distribution. You do not
435 need to create them if you have nothing to put in them. 436 need to create them if you have nothing to put in them.
436 437
437 7) Refer to the file `./etc/TERMS' for information on fields you may 438 TERMCAP CONFIGURATION
439 =====================
440
441 Refer to the file `./etc/TERMS' for information on fields you may
438 wish to add to various termcap entries. The files `./etc/termcap.ucb' 442 wish to add to various termcap entries. The files `./etc/termcap.ucb'
439 and `./etc/termcap.dat' may already contain appropriately-modified 443 and `./etc/termcap.dat' may already contain appropriately-modified
440 entries. 444 entries.
441 445
442 8) Run `make' in the top directory of the XEmacs distribution to finish 446 RUNNING MAKE
447 ============
448
449 Run `make' in the top directory of the XEmacs distribution to finish
443 building XEmacs in the standard way. The final executable file is 450 building XEmacs in the standard way. The final executable file is
444 named `src/emacs'. You can execute this file "in place" without 451 named `src/emacs'. You can execute this file "in place" without
445 copying it, if you wish; then it automatically uses the sibling 452 copying it, if you wish; then it automatically uses the sibling
446 directories ../lisp, ../lib-src, ../info. 453 directories ../lisp, ../lib-src, ../info.
447 454
509 in `/usr/local/bin'. 516 in `/usr/local/bin'.
510 517
511 If these directories are not what you want, you can specify where to 518 If these directories are not what you want, you can specify where to
512 install XEmacs's libraries and data files or where XEmacs should search 519 install XEmacs's libraries and data files or where XEmacs should search
513 for its lisp files by giving values for `make' variables as part of 520 for its lisp files by giving values for `make' variables as part of
514 the command. See the section below called `MAKE VARIABLES' for more 521 the command.
515 information on this.
516
517 Using GNU Make allows for simultaneous builds with and without the
518 --srcdir option.
519
520 9) If your system uses lock files to interlock access to mailer inbox
521 files, then you might need to make the movemail program setuid or
522 setgid to enable it to write the lock files. We believe this is safe.
523 The setuid/setgid bits need not be set on any other XEmacs-related
524 executables.
525
526 10) You are done with the hard part! You can remove executables and
527 object files from the build directory by typing `make clean'. To also
528 remove the files that `configure' created (so you can compile XEmacs
529 for a different configuration), type `make distclean'.
530
531 11) You should now go to the XEmacs web page at http://www.xemacs.org/
532 and decide what additional Lisp support you wish to have.
533
534 MAKE VARIABLES
535 522
536 You can change where the build process installs XEmacs and its data 523 You can change where the build process installs XEmacs and its data
537 files by specifying values for `make' variables as part of the `make' 524 files by specifying values for `make' variables as part of the `make'
538 command line. For example, if you type 525 command line. For example, if you type
539 526
641 while running. Its default value, based on `libdir' (see 628 while running. Its default value, based on `libdir' (see
642 above), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME' 629 above), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME'
643 (where VERSION and CONFIGURATION-NAME are as described above). 630 (where VERSION and CONFIGURATION-NAME are as described above).
644 631
645 `docdir' indicates where to put Lisp documentation strings that XEmacs 632 `docdir' indicates where to put Lisp documentation strings that XEmacs
646 refers to as it runs. It defaults the value of `archlibdir' 633 refers to as it runs. It defaults to the value of `archlibdir'
647 (see above). 634 (see above).
648 635
649 `moduledir' indicates where XEmacs installs and expects to find 636 `moduledir' indicates where XEmacs installs and expects to find
650 any dynamic modules. Its default value, based on 637 any dynamic modules. Its default value, based on
651 `archlibdir' (see above) is 638 `archlibdir' (see above) is
665 652
666 The top-level Makefile stores the variable settings it used in the 653 The top-level Makefile stores the variable settings it used in the
667 Makefiles for the subdirectories, so you don't have to specify them 654 Makefiles for the subdirectories, so you don't have to specify them
668 when running make in the subdirectories. 655 when running make in the subdirectories.
669 656
670 657 Using GNU Make allows for simultaneous builds with and without the
671 CONFIGURATION BY HAND 658 --srcdir option.
672 659
673 Instead of running the `configure' program, you have to perform the 660 MAIL-LOCKING POST-INSTALLATION
674 following steps. 661 ==============================
675 662
676 1) Copy `./src/config.h.in' to `./src/config.h'. 663 If your system uses dot-locking to interlock access to mailer inbox
677 664 files, then you might need to make the movemail program setuid or
678 2) Consult `./etc/MACHINES' to see what configuration name you should 665 setgid to enable it to write the lock files. We believe this is safe.
679 use for your system. Look at the code of the `configure' script to 666 The setuid/setgid bits need not be set on any other XEmacs-related
680 see which operating system and architecture description files from 667 executables.
681 `src/s' and `src/m' should be used for that configuration name. Edit 668
682 `src/config.h', and change the two `#include' directives to include 669 CLEANING UP
683 the appropriate system and architecture description files. 670 ==========
684 671
685 3) Edit `./src/config.h' to set the right options for your system. If 672 You are done with the hard part! You can remove executables and
686 you need to override any of the definitions in the s/*.h and m/*.h 673 object files from the build directory by typing `make clean'. To also
687 files for your system and machine, do so by editing config.h, not by 674 remove the files that `configure' created (so you can compile XEmacs
688 changing the s/*.h and m/*.h files. Occasionally you may need to 675 for a different configuration), type `make distclean'.
689 redefine parameters used in `./lib-src/movemail.c'. 676
690 677 READ README.packages
691 4) If you're going to use the make utility to build XEmacs, you will 678 ====================
692 still need to run `configure' first, giving the appropriate values for 679
693 the variables in the sections entitled "Things `configure' Might Edit" 680 Do it!
694 and "Where To Install Things." Note that you may only need to change
695 the variables `prefix' and `exec_prefix', since the rest of the
696 variables have reasonable defaults based on them. For each Makefile
697 variable of this type, there is a corresponding configure option; for
698 example, to change the location of the lock directory, you might use
699
700 ./configure --lockdir=/nfs/xemacslock
701
702 The `configure' script is built from `configure.in' by the `autoconf'
703 program. However, since XEmacs has configuration requirements that
704 autoconf can't meet, `configure.in' uses a marriage of custom-baked
705 configuration code and autoconf macros. New versions of autoconf
706 could very well break this arrangement, so it may be wise to avoid
707 rebuilding `configure' from `configure.in' when possible.
708
709
710 BUILDING XEMACS BY HAND
711
712 Once XEmacs is configured, running `make' in the top directory performs
713 the following steps.
714
715 1) Run `make src/paths.h' in the top directory. This produces
716 `./src/paths.h' from the template file `./src/paths.h.in', changing
717 the paths to the values specified in `./Makefile'.
718
719 2) Cd to `./lib-src' and run `make'. This creates executables named
720 `ctags' and `etags' and `wakeup' and `make-docfile' and `digest-doc'
721 and `test-distrib'. And others.
722
723 3) Cd to `./src' and Run `make'. This refers to files in the `./lisp'
724 and `./lib-src' subdirectories using names `../lisp' and
725 `../lib-src'.
726
727 This creates a file `./src/xemacs' which is the runnable XEmacs,
728 assigning it a new build version number by incrementing the build
729 version stored in `./lisp/version.el'.
730
731 It also creates a file in `./lib-src' whose name is `DOC' followed by
732 the current XEmacs version. This file contains documentation strings
733 for all the functions in XEmacs. Each time you run make to make a new
734 xemacs, a new DOC file with a new name is made. You must keep the DOC
735 file for an XEmacs version as long as you keep using that XEmacs
736 version.
737
738
739 INSTALLATION BY HAND
740
741 The steps below are done by running `make install' in the main
742 directory of the XEmacs distribution.
743
744 1) Copy `./lisp' and its subdirectories, `./etc', and the executables
745 in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
746
747 Strictly speaking, not all of the executables in `./lib-src' need be copied.
748 - The programs `cvtmail', `emacsserver', `env', `fakemail', `hexl',
749 `movemail', `timer', `vcdiff', `wakeup', and `yow' are used by
750 XEmacs; they do need to be copied.
751 - The programs `etags', `ctags', `emacsclient', `b2m', `rcs2log',
752 `gnuclient', `gnudoit', and `gnuattach' are intended to be run
753 by users; they are handled below.
754 - The programs `make-docfile' and `test-distrib' were
755 used in building XEmacs, and are not needed any more.
756 - The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
757 a file for users to read. There is no important reason to move them.
758
759 2) Copy the files in `./info' to the place specified in
760 `./lisp/site-init.el' or `./lisp/paths.el'. Note that if the
761 destination directory already contains a file named `dir', you
762 probably don't want to replace it with the `dir' file in the XEmacs
763 distribution. Instead, you should make sure that the existing `dir'
764 file contains an appropriate menu entry for the XEmacs info.
765
766 3) Create a directory for XEmacs to use for clash detection, named as
767 indicated by the PATH_LOCK macro in `./src/paths.h'.
768
769 4) Copy `./src/xemacs' to `/usr/local/bin', or to some other directory
770 in users' search paths. `./src/xemacs' has an alternate name
771 `./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
772 `/usr/local/bin/xemacs' pointing to that alternate name, as an easy way
773 of installing different versions.
774
775 You can delete `./src/temacs'.
776
777 5) Copy the programs `b2m', `emacsclient', `ctags', `etags', `rcs2log',
778 `gnuclient', `gnudoit', and `gnuattach' from `./lib-src' to
779 `/usr/local/bin'. These programs are intended for users to run.
780
781 6) Copy the man pages in `./etc' for xemacs, ctags, etags, and gnuserv
782 into the appropriate man directories.
783
784 7) The files in the `./src' subdirectory, except for `xemacs', are not
785 used by XEmacs once it is built. The source would be handy for
786 debugging.
787
788 681
789 PROBLEMS 682 PROBLEMS
683 ========
790 684
791 The most likely problem is that you forgot to read and follow the 685 The most likely problem is that you forgot to read and follow the
792 directions in README.packages. You can not have a working XEmacs 686 directions in README.packages. You can not have a working XEmacs
793 without downloading some additional packages. 687 without downloading some additional packages.
794 688
795 See the file PROBLEMS in this directory for a list of various 689 See the file PROBLEMS in this directory for a list of various
796 problems sometimes encountered, and what to do about them. 690 problems sometimes encountered, and what to do about them.
797
798
799 If all else fails, please see etc/InstallGuide courtesy
800 of Jonathan Seth Hayward.