X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/db50afc09f10adb8bb0f7d0ec6a2ec1f9c439410..7b16a6bf075b9d77cd28ec59cc7059d8977802f5:/INSTALL diff --git a/INSTALL b/INSTALL index 728d2394a2..e171d52375 100644 --- a/INSTALL +++ b/INSTALL @@ -1,51 +1,265 @@ GNU Emacs Installation Guide -Copyright (c) 1992, 1994 Free software Foundation, Inc. +Copyright (c) 1992, 1994, 1996, 1997, 2000 Free software Foundation, Inc. +See the end of the file for copying permissions. - Permission is granted to anyone to make or distribute verbatim copies - of this document as received, in any medium, provided that the - copyright notice and permission notice are preserved, - and that the distributor grants the recipient permission - for further redistribution as permitted by this notice. - Permission is granted to distribute modified versions - of this document, or of portions of it, - under the above conditions, provided also that they - carry prominent notices stating who last changed them, - and that any new or changed statements about the activities - of the Free Software Foundation are approved by the Foundation. +BASIC INSTALLATION + +The simplest way to build Emacs is to use the `configure' shell script +which attempts to guess correct values for various system-dependent +variables and features and find the directories where various system +headers and libraries are kept. It then creates a `Makefile' in each +subdirectory and a `config.h' file containing system-dependent +definitions. Running the `make' utility then builds the package for +your system. + +Here's the procedure to build Emacs using `configure' on systems which +are supported by it. If this simplified procedure fails, or if you +are using a platform such as MS-Windows, where `configure' script +doesn't work, you might need to use various non-default options, and +maybe perform some of the steps manually. The more detailed +description in the rest of the sections of this guide will help you do +that, so please refer to them if the simple procedure does not work. + + 1. If you want to be able to input international characters which + your keyboard doesn't support directly (i.e. you cannot type + them at the shell prompt), download the leim-M.N.tar.gz + distribution and unpack it into the same directory where you have + unpacked the main Emacs distribution. See ADDITIONAL + DISTRIBUTION FILES, below, for more about this. + + 2. Make sure your system has at least 120 MB of free disk space. + + 3a. `cd' to the directory where you unpacked Emacs and invoke the + `configure' script: + + ./configure + + 3b. Alternatively, create a separate directory, outside the source + directory, where you want to build Emacs, and invoke `configure' + from there: + + SOURCE-DIR/configure + + where SOURCE-DIR is the top-level Emacs source directory. This + may not work unless you use GNU make. + + 4. When `configure' finishes, it prints several lines of details + about the system configuration. Read those details carefully + looking for anything suspicious, such as wrong CPU and operating + system names, wrong places for headers or libraries, missing + libraries that you know are installed on your system, etc. + + If you find anything wrong, you will have to pass to `configure' + explicit machine configuration name, and one or more options + which tell it where to find various headers and libraries; refer + to DETAILED BUILDING AND INSTALLATION section below. + + If `configure' didn't find some image support libraries, such as + Xpm, jpeg, etc., and you want to use them refer to the subsection + "Image support libraries", below. + + If the details printed by `configure' don't make any sense to + you, assume that `configure' did its job and proceed. + + 5. If you need to run the `configure' script more than once (e.g., + with some non-default options), always clean the source + directories before running `configure' again: + + make distclean + ./configure + + 6. Invoke the `make' program: + + make + + 7. If `make' succeeds, it will build an executable program `emacs' + in the `src' directory. You can try this program, to make sure + it works: + + src/emacs -q + + 8. Assuming that the program `src/emacs' starts and displays its + opening screen, you can install the program and its auxiliary + files into their installation directories: + + make install + + You are now ready to use Emacs. If you wish to conserve disk space, + you may remove the program binaries and object files from the + directory where you built Emacs: + + make clean + + You can also save some space by compressing (with `gzip') Info files + and installed Lisp source (.el) files which have corresponding .elc + versions. + + +ADDITIONAL DISTRIBUTION FILES + +* leim-M.N.tar.gz + +The Emacs Lisp code for input methods for various international +character scripts allows you to input characters in scripts which are +not directly supported by your keyboard. It is distributed in a +separate tar file because it amounts to a significant fraction of the +size of the distribution. This tar file is called leim-M.N.tar.gz, +with the same version number as Emacs, and it unpacks into the +directory emacs-M.N/leim. + +You should unpack leim-M.N.tar.gz into the same directory where you +have previously unpacked the main Emacs distribution. It fills in the +contents of one subdirectory, which is present in the main Emacs +distribution only in dummy form. + +Once you have unpacked the Leim tar file into the Emacs source tree, +building and installing Emacs automatically installs the input method +support as well. If you have built Emacs without unpacking Leim +first, just unpack Leim, build Emacs again, and install it again. + +* intlfonts-VERSION.tar.gz + +The intlfonts distribution contains X11 fonts that Emacs needs in +order to display international characters. If you see a non-ASCII +character appear as a hollow box, that means you don't have a font for +it. You might find a font in the intlfonts distribution. If you do +have a font for a non-ASCII character, but some characters don't look +right, or appear improperly aligned, a font from the intlfonts +distribution might look better. +The fonts in the intlfonts distribution are also used by the ps-print +package for printing international characters. The file +lisp/ps-mule.el defines the *.bdf font files required for printing +each character set. -BUILDING AND INSTALLATION: -(This is for a Unix or Unix-like system. For MSDOS, see below; -search for MSDOG. For Windows NT, see the file nt/INSTALL.) +The intlfonts distribution contains its own installation instructions, +in the intlfonts/README file. + +* elisp-manual-M.N.tar.gz + +This distribution contains the Emacs Lisp Reference Manual which +complements the Emacs Manual. (The Emacs Manual is accessible from +within the editor by typing "C-h i", then selecting the "Emacs" item +from the menu, or by clicking "Help" in the menu bar and selecting +"Read Emacs Manual".) It is a good idea to install the Emacs Lisp +Reference Manual after installing Emacs, to complete the on-line +documentation of Emacs in Info. + +If you have installed Texinfo, you can install the Emacs Lisp +Reference Manual this way (after unpacking the elisp-manual-M.N.tar.gz +file): + + cd elisp-manual-M.N + ./configure --prefix=PREFIXDIR + make install + +Otherwise, you can install it manually. Just copy the files elisp and +elisp-* from the elisp-manual-M.N directory to your site's info +directory (see the description of `infodir', below), and make sure +that file `dir' in this directory contains an entry like this: + + * Elisp: (elisp). The Emacs Lisp Reference Manual. + +* Image support libraries + +Emacs needs optional libraries to be able to display images (with the +exception of PBM and XBM images whose support is built-in). + +On some systems, particularly on GNU/Linux, these libraries may +already be present or available as additional packages. Note that if +there is a separate `dev' or `devel' package, for use at compilation +time rather than run time, you will need that as well as the +corresponding run time package; typically the dev package will +contain header files and a library archive. Otherwise, you can +download and build libraries from sources. None of them are vital for +running Emacs; however, note that Emacs will not be able to use +colored icons in the toolbar if XPM support is not compiled in. + +Here's the list of these optional libraries, and the URLs where they +can be found: + + . libXaw3d for fancy 3D-style + scroll bars: ftp://ftp.x.org/contrib/widgets/Xaw3d/ + . libxpm for XPM: ftp://ftp.x.org/contrib/libraries/ + . libpng for PNG: ftp://www.libpng.org/pub/png/ + . libz (for PNG): http://www.info-zip.org/pub/infozip/zlib/ + . libjpeg for JPEG: ftp://ftp.uu.net/graphics/jpeg/ + Get version 6b -- 6a is reported to fail in + Emacs. + . libtiff for TIFF: http://www.libtiff.org/ + . libungif for GIF: + http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml + Ensure you get version 4.1.0b1 or higher of libungif -- a bug in + 4.1.0 can crash Emacs. + +Emacs will configure itself to build with these libraries if the +`configure' script finds them on your system, unless you supply the +appropriate --without-LIB option. In some cases, older versions of +these libraries won't work because some routines are missing, and +configure should avoid such old versions. If that happens, use the +--without-LIB options to `configure'. See below for more details. + +* Extra fonts + +To take proper advantage of Emacs 21's mule-unicode charsets, you need +a Unicode font. For information on Unicode fonts for X, see +, + and +. + has basic fonts for Emacs's +ISO-8859 charsets. + +XFree86 release 4 (from and mirrors) +contains font support for most, if not all, of the charsets that Emacs +supports. The font files should be usable separately with older X +releases. + + +DETAILED BUILDING AND INSTALLATION: + +(This is for a Unix or Unix-like system. For MS-DOS and Windows 3.X, +see below; search for MSDOG. For Windows 9X, Windows ME, Windows NT, +and Windows 2000, see the file nt/INSTALL. For the Mac, see the file +mac/INSTALL.) 1) Make sure your system has enough swapping space allocated to handle -a program whose pure code is 900k bytes and whose data area is at -least 400k and can reach 8Mb or more. If the swapping space is +a program whose pure code is 1.5 MB and whose data area is at +least 2.5 MB and can reach 80 MB or more. If the swapping space is insufficient, you will get an error in the command `temacs -batch -l loadup dump', found in `./src/Makefile.in', or possibly when running the final dumped Emacs. -Building Emacs requires about 70 Mb of disk space (including the Emacs -sources). Once installed, Emacs occupies about 35 Mb in the file -system where it is installed; this includes the executable files, Lisp -libraries, miscellaneous data files, and on-line documentation. If -the building and installation take place in different directories, -then the installation procedure momentarily requires 70+35 Mb. +Building Emacs requires about 95 MB of disk space (including the Emacs +sources), or 130 MB if Leim is used. Once installed, Emacs occupies +about 60 MB (70 MB with Leim) in the file system where it is +installed; this includes the executable files, Lisp libraries, +miscellaneous data files, and on-line documentation. If the building +and installation take place in different directories, then the +installation procedure momentarily requires 95+60 MB (130+70 MB). 2) Consult `./etc/MACHINES' to see what configuration name you should give to the `configure' program. That file offers hints for -getting around some possible installation problems. +getting around some possible installation problems. The file lists +many different configurations, but only the part for your machine and +operating system is relevant. (The list is arranged in alphabetical +order by the vendor name.) + +3) You can build Emacs in the top-level Emacs source directory +or in a separate directory. -3) In the top directory of the Emacs distribution, run the program -`configure' as follows: +3a) To build in the top-level Emacs source directory, go to that +directory and run the program `configure' as follows: - ./configure CONFIGURATION-NAME [--OPTION[=VALUE]] ... + ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ... The CONFIGURATION-NAME argument should be a configuration name given -in `./etc/MACHINES'. If omitted, `configure' will try to guess your -system type; if it cannot, you must find the appropriate configuration -name in `./etc/MACHINES' and specify it explicitly. +in `./etc/MACHINES', with the system version number added at the end. + +You should try first omitting CONFIGURATION-NAME. This way, +`configure' will try to guess your system type. If it cannot guess, +or if something goes wrong in building or installing Emacs this way, +try again specifying the proper CONFIGURATION-NAME explicitly. If you don't want X support, specify `--with-x=no'. If you omit this option, `configure' will try to figure out for itself whether your @@ -62,19 +276,45 @@ To get more attractive menus, you can specify an X toolkit when you configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where TOOLKIT is `athena' or `motif' (`yes' and `lucid' are synonyms for `athena'). On some systems, it does not work to use a toolkit with -shared libraries. +shared libraries. A free implementation of Motif, called LessTif, is +available ftom . Compiling with LessTif or +Motif causes a standard File Selection Dialog to pop up when you type +"C-x C-f" and similar commands. You can get fancy 3D-style scroll +bars, even without LessTif/Motif, if you have the Xaw3d library +installed (see "Image support libraries" above for Xaw3d +availability). The `--with-gcc' option specifies that the build process should compile Emacs using GCC. If you don't want to use GCC, specify `--with-gcc=no'. If you omit this option, `configure' will search for GCC in your path, and use it if present. -You can build Emacs for several different machine types from a single -source directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. Make separate -build directories for the different configuration types, and in each -one, run the Emacs `configure' script. `configure' looks for the -Emacs source code in the directory that `configure' is in. +The Emacs mail reader RMAIL is configured to be able to read mail from +a POP3 server by default. Versions of the POP protocol older than +POP3 are not supported. For Kerberos-authenticated POP add +`--with-kerberos', for Hesiod support add `--with-hesiod'. While POP3 +is always enabled, whether Emacs actually uses POP is controlled by +individual users--see the Rmail chapter of the Emacs manual. + +For image support you may have to download, build, and install the +appropriate image support libraries for image types other than XBM and +PBM, see the list of URLs in "ADDITIONAL DISTRIBUTION FILES" above. +(Note that PNG support requires libz in addition to libpng.) + +To disable individual types of image support in Emacs for some reason, +even though configure finds the libraries, you can configure with one +or more of these options: + + --without-xpm for XPM image support + --without-jpeg for JPEG image support + --without-tiff for TIFF image support + --without-gif for GIF image support + --without-png for PNG image support + +Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d +scroll bars. --without-xim disables the use of X Input Methods, and +--disable-largefile omits support for files larger than 2GB on systems +which support that. The `--prefix=PREFIXDIR' option specifies where the installation process should put emacs and its data files. This defaults to `/usr/local'. @@ -120,10 +360,62 @@ output (useful mainly for debugging `configure'). You can give tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. +If the description of the system configuration printed by `configure' +is not right, or if it claims some of the fatures or libraries are not +available when you know they are, look at the `config.log' file for +the trace of the failed tests performed by `configure' to check +whether these features are supported. Typically, some test fails +because the compiler cannot find some function in the system +libraries, or some macro-processor definition in the system headers. + +Some tests might fail because the compiler should look in special +directories for some header files, or link against optional +libraries, or use special compilation options. You can force +`configure' and the build process which follows it to do that by +setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, and CC before +running `configure'. CPPFLAGS lists the options passed to the +preprocessor, CFLAGS are compilation options, LDFLAGS are options used +when linking, LIBS are libraries to link against, and CC is the +command which invokes the compiler. + +Here's an example of a `configure' invocation, assuming a Bourne-like +shell such as Bash, which uses these variables: + + CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \ + CFLAGS='-O3' LIBS='-lfoo -lbar' ./configure + +(this is all one long line). This tells `configure' to instruct the +preprocessor to look in the `/foo/myinclude' directory for header +files (in addition to the standard directories), instruct the linker +to look in `/bar/mylib' for libraries, pass the -O3 optimization +switch to the compiler, and link against libfoo.a and libbar.a +libraries in addition to the standard ones. + The work of `configure' can be done by editing various files in the -distribution, but using `configure' is supposed to be simpler. See -the section called "CONFIGURATION BY HAND" below if you want to do the -configuration yourself. +distribution, but using `configure' is easier. See the section called +"CONFIGURATION BY HAND" below if you want to do the configuration +yourself. + +3b) To build in a separate directory, go to that directory +and run the program `configure' as follows: + + SOURCE-DIR/configure CONFIGURATION-NAME [--OPTION[=VALUE]] ... + +SOURCE-DIR refers to the top-level Emacs source directory which is +where Emacs's configure script is located. `configure' looks for the +Emacs source code in the directory that `configure' is in. + +To build in a separate directory, you must use a version of `make' +that supports the `VPATH' variable, such as GNU `make'. + +3c) Some people try to build in a separate directory by filling +it full of symlinks to the files in the real source directory. +If you do that, `make all' does work, but `make install' fails: +it copies the symbolic links rather than the actual files. + +As far as is known, there is no particular reason to use +a directory full of links rather than use the standard GNU +facilities to build in a separate directory (see 3b above). 4) Look at `./lisp/paths.el'; if some of those values are not right for your system, set up the file `./lisp/site-init.el' with Emacs @@ -146,7 +438,8 @@ Lisp code you want Emacs to load before it is dumped out. Use site-load.el for additional libraries if you arrange for their documentation strings to be in the etc/DOC file (see src/Makefile.in if you wish to figure out how to do that). For all -else, use site-init.el. +else, use site-init.el. Do not load byte-compiled code which +was build with a non-nil value of `byte-compile-dynamic'. If you set load-path to a different value in site-init.el or site-load.el, Emacs will use *precisely* that value when it starts up @@ -155,7 +448,7 @@ again. If you do this, you are on your own! Note that, on some systems, the code you place in site-init.el must not use expand-file-name or any other function which may look something up in the system's password and user information database. -See `./PROBLEMS' for more details on which systems this affects. +See `./etc/PROBLEMS' for more details on which systems this affects. The `site-*.el' files are nonexistent in the distribution. You do not need to create them if you have nothing to put in them. @@ -204,10 +497,6 @@ are installed in the following directories: architecture-independent files Emacs might need while running. VERSION is as specified for `.../lisp'. -`/usr/local/com/emacs/lock' contains files indicating who is editing - what, so Emacs can detect editing clashes between - users. - `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable programs used by Emacs that users are not expected to run themselves. @@ -249,7 +538,11 @@ to enable it to write the lock files. We believe this is safe. 10) You are done! You can remove executables and object files from the build directory by typing `make clean'. To also remove the files that `configure' created (so you can compile Emacs for a different -configuration), type `make distclean'. +configuration), type `make distclean'. If you don't need some, or all +of the input methods from the Leim package, you can remove the +unneeded files in the leim/quail, leim/skk, and leim/skk-dic +subdirectories of your site's lisp directory (usually +/usr/local/share/emacs/VERSION/). @@ -284,14 +577,6 @@ Here is a complete list of the variables you may want to set. same time; this means that you don't have to make Emacs unavailable while installing a new version. -`sharedstatedir' indicates where to put architecture-independent data files - that Emacs modifies while it runs; it defaults to - /usr/local/com. We create the following - subdirectories under `sharedstatedir': - - `emacs/lock', containing files indicating who is editing - what, so Emacs can detect editing clashes between - users. - `libexecdir' indicates where to put architecture-specific data files that Emacs refers to as it runs; it defaults to `/usr/local/libexec'. We create the following subdirectories under `libexecdir': @@ -343,33 +628,7 @@ Here is a complete list of the variables you may want to set. path variables - `bindir' and `libexecdir'. The above variables serve analogous purposes in the makefiles for all -GNU software; here are some variables specific to Emacs. - -`lispdir' indicates where Emacs installs and expects its Lisp library. - Its default value, based on `datadir' (see above), is - `/usr/local/share/emacs/VERSION/lisp' (where `VERSION' is as - described above). - -`locallisppath' indicates where Emacs should search for Lisp files - specific to your site. It should be a colon-separated list of - directories; Emacs checks them in order before checking - `lispdir'. Its default value, based on `datadir' (see above), is - `/usr/local/share/emacs/VERSION/site-lisp:/usr/local/share/emacs/site-lisp'. - -`lisppath' is the complete list of directories Emacs should search for - its Lisp files; its default value is the concatenation of - `locallisppath' and `lispdir'. It should be a colon-separated - list of directories; Emacs checks them in the order they - appear. - -`etcdir' indicates where Emacs should install and expect the rest of - its architecture-independent data, like the tutorial, DOC - file, and yow database. Its default value, based on `datadir' - (which see), is `/usr/local/share/emacs/VERSION/etc'. - -`lockdir' indicates the directory where Emacs keeps track of its - locking information. Its default value, based on - `sharedstatedir' (which see), is `/usr/local/com/emacs/lock'. +GNU software; this variable is specific to Emacs. `archlibdir' indicates where Emacs installs and expects the executable files and other architecture-dependent data it uses while @@ -385,6 +644,11 @@ settings persist, you can edit them into the `Makefile' in the top directory, but be aware that running the `configure' program erases `Makefile' and rebuilds it from `Makefile.in'. +The path for finding Lisp files is specified in src/paths.h, +a file which is generated by running configure. To change the path, +you can edit the definition of PATH_LOADSEARCH in that file +before you run `make'. + The top-level Makefile stores the variable settings it used in the Makefiles for the subdirectories, so you don't have to specify them when running make in the subdirectories. @@ -421,7 +685,8 @@ from the corresponding `Makefile.in' files. This isn't so hard, just a matter of substitution. The `configure' script is built from `configure.in' by the `autoconf' -program. You need version 2.0 or newer of `autoconf' to rebuild `configure'. +program. You need version 2.8 or newer of `autoconf' to rebuild +`configure'. BUILDING GNU EMACS BY HAND @@ -478,10 +743,7 @@ probably don't want to replace it with the `dir' file in the Emacs distribution. Instead, you should make sure that the existing `dir' file contains an appropriate menu entry for the Emacs info. -3) Create a directory for Emacs to use for clash detection, named as -indicated by the PATH_LOCK macro in `./src/paths.h'. - -4) Copy `./src/emacs' to `/usr/local/bin', or to some other directory +3) Copy `./src/emacs' to `/usr/local/bin', or to some other directory in users' search paths. `./src/emacs' has an alternate name `./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named `/usr/local/bin/emacs' pointing to that alternate name, as an easy way @@ -489,73 +751,176 @@ of installing different versions. You can delete `./src/temacs'. -5) Copy the programs `b2m', `emacsclient', `ctags', `etags', and +4) Copy the programs `b2m', `emacsclient', `ctags', `etags', and `rcs-checkin' from `./lib-src' to `/usr/local/bin'. These programs are intended for users to run. -6) Copy the man pages in `./etc' for emacs, ctags, and etags into the +5) Copy the man pages in `./etc' for emacs, ctags, and etags into the appropriate man directories. -7) The files in the `./src' subdirectory, except for `emacs', are not +6) The files in the `./src' subdirectory, except for `emacs', are not used by Emacs once it is built. However, it is very desirable to keep the source on line for debugging. PROBLEMS -See the file PROBLEMS in this directory for a list of various +See the file PROBLEMS in etc subdirectory for a list of various problems sometimes encountered, and what to do about them. Installation on MSDOG (a.k.a. MSDOS) To install on MSDOG, you need to have the GNU C compiler for MSDOG -(also known as djgpp), GNU Make, rm, mv, chmod, and sed. See the -remarks in config.bat for more information about locations and -versions. - -If you are compiling on an MSDOG-like system which has long file -names, you may need to do `SET LFN=y' for some of the commands, -especially the compilation commands. It might be more convenient to -unpack the Emacs distribution with djtar, which comes with djgpp; if -you do `SET LFN=n' before unpacking, djtar truncates file names to 8.3 -naming as it extracts files, even if the system allows long file -names, and this ensures that build procedures designed for 8.3 file -names still work. Use djtar with the command `djtar -x foo.tar' or -`djtar -x foo.tgz'. - -Some users report that running Emacs 19.29 requires dpmi memory -management. We do not know why this is so, since 19.28 did not need -it. If we find out what change introduced this requirement, we may -try to eliminate it. ("May" because perhaps djgpp version 2's -improved dpmi handling means this is no longer a problem.) - -It is possible that this problem happens only when there is not enough -physical memory on the machine. - -You can find out if you have a dpmi host by running go32 (part of -djgpp) without arguments; it will tell you if it uses dpmi memory. -For more information about dpmi memory, consult the djgpp FAQ. - -To build and install Emacs, type these commands: +(also known as djgpp), GNU Make, rm, mv, and sed. See the remarks in +config.bat for more information about locations and versions. The +file etc/FAQ includes pointers to Internet sites where you can find +the necessary utilities; search for "MS-DOS". The configuration step +(see below) will test for these utilities and will refuse to continue +if any of them isn't found. + +Recompiling Lisp files in the `lisp' subdirectory using the various +targets in the lisp/Makefile file requires additional utilities: +`find' and `xargs' (from Findutils), `touch' (from Fileutils) GNU +`echo' and `test' (from Sh-utils), `tr, `sort', and `uniq' (from +Textutils), and a port of Bash. However, you should not normally need +to run lisp/Makefile, as all the Lisp files are distributed in +byte-compiled form as well. + +If you are building the MSDOG version of Emacs on an MSDOG-like system +which supports long file names (e.g. Windows 95), you need to make +sure that long file names are handled consistently both when you +unpack the distribution and compile it. If you intend to compile with +DJGPP v2.0 or later, and long file names support is enabled (LFN=y in +the environment), you need to unpack Emacs distribution in a way that +doesn't truncate the original long filenames to the DOS 8.3 namespace; +the easiest way to do this is to use djtar program which comes with +DJGPP, since it will note the LFN setting and behave accordingly. +DJGPP v1 doesn't support long filenames, so you must unpack Emacs with +a program that truncates the filenames to 8.3 naming as it extracts +files; again, using djtar after setting LFN=n is the recommended way. +You can build Emacs with LFN=n even if you use DJGPP v2, if some of +your tools don't support long file names: just ensure that LFN is set +to `n' during both unpacking and compiling. + +(By the time you read this, you have already unpacked the Emacs +distribution, but if the explanations above imply that you should have +done it differently, it's safer to delete the directory tree created +by the unpacking program and unpack Emacs again, than to risk running +into problems during the build process.) + +It is important to understand that the runtime support of long file +names by the Emacs binary is NOT affected by the LFN setting during +compilation; Emacs compiled with DJGPP v2.0 or later will always +support long file names on Windows 9X no matter what was the setting +of LFN at compile time. However, if you compiled with LFN disabled +and want to enable LFN support after Emacs was already built, you need +to make sure that the support files in the lisp, etc and info +directories are called by their original long names as found in the +distribution. You can do this either by renaming the files manually, +or by extracting them from the original distribution archive with +djtar after you set LFN=y in the environment. + +To unpack Emacs with djtar, type this command: + + djtar -x emacs.tgz + +(This assumes that the Emacs distribution is called `emacs.tgz' on +your system.) + +If you need to type international characters, you will need to unpack +the Leim distribution (see the description near the beginning of this +file). You unpack it from the same directory where you unpacked +Emacs. To unpack Leim with djtar, assuming the Leim distribution is +called `leim.tgz', type this command: + + djtar -x leim.tgz + +If you want to print international characters, install the intlfonts +distribution. For this, create a directory called `fonts' under the +Emacs top-level directory (usually called `emacs-XX.YY') created by +unpacking emacs.tgz, chdir into the directory emacs-XX.YY/fonts, and +type this: + + djtar -x intlfonts.tgz + +When unpacking is done, a directory called `emacs-XX.YY' will be +created, where XX.YY is the Emacs version. To build and install +Emacs, chdir to that directory and type these commands: config msdos make install +Running "config msdos" checks for several programs that are required +to configure and build Emacs; if one of those programs is not found, +CONFIG.BAT stops and prints an error message. If you have DJGPP +version 2.0 or 2.01, it will complain about a program called +DJECHO.EXE. These old versions of DJGPP shipped that program under +the name ECHO.EXE, so you can simply copy ECHO.EXE to DJECHO.EXE and +rerun CONFIG.BAT. If you have neither ECHO.EXE nor DJECHO.EXE, you +should be able to find them in your djdevNNN.zip archive (where NNN is +the DJGPP version number). + +On Windows NT or Windows 2000, running "config msdos" might print an +error message like "VDM has been already loaded". This is because +those systems have a program called `redir.exe' which is incompatible +with a program by the same name supplied with DJGPP, which is used by +config.bat. To resolve this, move the DJGPP's `bin' subdirectory to +the front of your PATH environment variable. + +To install the international fonts, chdir to the intlfonts-X.Y +directory created when you unpacked the intlfonts distribution (X.Y is +the version number of the fonts' distribution), and type the following +command: + + make bdf INSTALLDIR=.. + +After Make finishes, you may remove the directory intlfonts-X.Y; the +fonts are installed into the fonts/bdf subdirectory of the top-level +Emacs directory, and that is where Emacs will look for them by +default. + Building Emacs creates executable files in the src and lib-src directories. Installing Emacs on MSDOS moves these executables to a sibling directory called bin. For example, if you build in directory /emacs, installing moves the executables from /emacs/src and /emacs/lib-src to the directory /emacs/bin, so you can then delete the subdirectories /emacs/src and /emacs/lib-src if you wish. The only -subdirectories you need to keep are bin, lisp, etc and info. +subdirectories you need to keep are bin, lisp, etc and info. (If you +installed Leim, keep the leim subdirectory, and if you installed +intlfonts, keep the fonts directory and all its subdirectories as well.) +The bin subdirectory should be added to your PATH. The msdos +subdirectory includes a PIF and an icon file for Emacs which you might +find useful if you run Emacs under MS Windows. Emacs on MSDOS finds the lisp, etc and info directories by looking in ../lisp, ../etc and ../info, starting from the directory where the Emacs executable was run from. You can override this by setting the -environment variable HOME; if you do that, the directories lisp, etc -and info are accessed as subdirectories of the HOME directory. +environment variables EMACSDATA (for the location of `etc' directory), +EMACSLOADPATH (for the location of `lisp' directory) and INFOPATH (for +the location of the `info' directory). MSDOG is a not a multitasking operating system, so Emacs features such as asynchronous subprocesses that depend on multitasking will not work. Synchronous subprocesses do work. + +Version 2.0 of djgpp has two bugs that affect Emacs. We've included +corrected versions of two files from djgpp in the msdos subdirectory: +is_exec.c and sigaction.c. To work around the bugs, compile these +files and link them into temacs. Djgpp versions 2.01 and later have +these bugs fixed, so upgrade if you can before building Emacs. + +COPYING PERMISSIONS + + Permission is granted to anyone to make or distribute verbatim copies + of this document as received, in any medium, provided that the + copyright notice and permission notice are preserved, + and that the distributor grants the recipient permission + for further redistribution as permitted by this notice. + + Permission is granted to distribute modified versions + of this document, or of portions of it, + under the above conditions, provided also that they + carry prominent notices stating who last changed them, + and that any new or changed statements about the activities + of the Free Software Foundation are approved by the Foundation.