comparison INSTALL @ 5699:a95c89dc9695

Reorganize and update INSTALL.
author Stephen J. Turnbull <stephen@xemacs.org>
date Mon, 24 Dec 2012 04:16:31 +0900
parents 3889ef128488
children 37b107e878b8
comparison
equal deleted inserted replaced
5698:0bd991c31cd1 5699:a95c89dc9695
1 XEmacs Installation Guide 1 XEmacs Installation Guide
2 2
3 Copyright (c) 1994, 1995, 1996 Board of Trustees, University of Illinois 3 Copyright (c) 1994-1996 Board of Trustees, University of Illinois
4 Copyright (c) 1994-1999, 2003, 2008 Free Software Foundation, Inc. 4 Copyright (c) 1994-1999, 2003, 2008, 2012 Free Software Foundation, Inc.
5 5
6 Permission is granted to anyone to make or distribute verbatim copies 6 Permission is granted to anyone to make or distribute verbatim copies
7 of this document as received, in any medium, provided that the 7 of this document as received, in any medium, provided that the
8 copyright notice and permission notice are preserved, 8 copyright notice and permission notice are preserved,
9 and that the distributor grants the recipient permission 9 and that the distributor grants the recipient permission
18 18
19 BUILDING AND INSTALLATION FOR UNIX AND CYGWIN 19 BUILDING AND INSTALLATION FOR UNIX AND CYGWIN
20 20
21 (for Microsoft Windows, see nt/README also.) 21 (for Microsoft Windows, see nt/README also.)
22 22
23 This file is in the process of revision. Some random information that didn't
24 fit elsewhere is appended to the end of the file.
25
23 PREREQUISITES 26 PREREQUISITES
24 ============= 27 =============
25 28
26 Make sure your system has enough swapping space allocated to handle a 29 Modern systems generally have more than enough RAM and virtual memory to run
27 program whose pure code is 900k bytes and whose data area is at least 30 XEmacs well. If you run into an "insufficient memory" error when building
28 400k and can reach 8Mb or more. Note that a typical XEmacs process 31 or on the first execution, see the 'PROBLEMS' file. In sufficient stack
29 can get much bigger: the instance this sentence was written with is 32 space is a separate problem, also address in 'PROBLEMS'.
30 over 100MB! If the swapping space is insufficient, you will get an 33
31 error in the command `temacs -batch -l loadup dump', found in 34 Building XEmacs requires about 100 Mb of disk space (including the XEmacs
32 `./src/Makefile.in.in', or possibly when running the final dumped 35 sources). Once installed, XEmacs occupies about 200 MB in the file system
33 XEmacs. 36 where it is installed, including the executable files, Lisp libraries,
34 37 miscellaneous data files, and on-line documentation.
35 Verify that your users have a high enough stack limit. On some systems
36 such as OpenBSD and OSF/Tru64 the default is 2MB which is too low. On
37 MacOS/X (Darwin) before 10.3, it's 512kB. See 'PROBLEMS' for details.
38
39 Building XEmacs requires about 100 Mb of disk space (including the
40 XEmacs sources). Once installed, XEmacs occupies between 20 and 100
41 MB in the file system where it is installed; this includes the
42 executable files, Lisp libraries, miscellaneous data files, and
43 on-line documentation. The exact amount depends greatly on the number
44 of extra Lisp packages that are installed.
45 38
46 XEmacs requires an ANSI C compiler, such as GCC. If you wish to build the 39 XEmacs requires an ANSI C compiler, such as GCC. If you wish to build the
47 documentation yourself, you will need at least version 1.68 of makeinfo (GNU 40 documentation yourself, you will need at least version 1.68 of makeinfo (GNU
48 texinfo-3.11). GNU Texinfo 4.2 is recommended; it is necessary for building 41 texinfo-3.11). GNU Texinfo 4.2 is strongly recommended; it is necessary for
49 Lisp packages, and we may move to it for the core. 42 building Lisp packages, and we may move to it for the core.
50 43
51 A note on terminology: unfortunately the terms "library" and "package" 44 BASIC INSTALLATION
52 are heavily overloaded. In the following, "library" refers to an 45 ==================
53 external body of executable code which may be linked with XEmacs at 46
54 build time to provide support for system features, such as images, 47 Since you are reading this, we assume you have already acquired XEmacs in
55 audio, stream compression, databases, and input methods. A "Lisp 48 source form, and the packages as tarballs. If not, see www.xemacs.org.
56 library" is a file of Lisp code which may be loaded into XEmacs at 49
57 run-time to provide editor features. A "package" is a specially 50 Building and installing XEmacs from source can be as simple as
58 prepared Lisp library or set of Lisp libraries, providing for easy 51
59 installation, upgrade, and removal of applications written in Lisp. 52 cd /usr/local/src/xemacs; ./configure; make; make install
60 53
61 PACKAGE SYSTEM 54 followed by installing the packages
62 ============== 55
63 56 mkdir -p /usr/local/share/xemacs
64 The FAQ sections 1.7 and 2.1 contain information vital to have a fully 57 cd /usr/local/share/xemacs
65 working XEmacs. It includes a description of available packages, and 58 tar xzf /tmp/xemacs-sumo.tar.gz
66 how to bootstrap XEmacs from a minimal or a complete set of packages. 59
67 This information was not included in this file only because it is too 60 However, this depends on the presence of relevant development resources on
68 large for this terse INSTALL. The FAQ is available in Texinfo format 61 your system, and there are a few frequently used features that are not built
69 in man/xemacs-faq.texi, as an Info file once you build XEmacs, and 62 in by default. To build XEmacs incorporating such features, the steps
70 online at http://www.xemacs.org/Documentation/21.5/html/xemacs-faq_1.html. 63 required are exactly as above, except that you need to start by confirming
71 64 the availability of required libraries and headers, and select them by
72 ADD-ON LIBRARIES 65 invoking configure with the appropriate options.
73 ================ 66
74 67 Add-on Libraries
75 Decide which libraries you would like to use with XEmacs, but are not 68 ----------------
76 yet available on your system. On some systems, X11, Motif and CDE are 69
77 optional additions. On MacOS/X systems prior to 10.2, you may download 70 A note on terminology: unfortunately the terms "library" and "package" are
78 X11R6 for Mac OS X from http://www.apple.com/macosx/x11/download/. In 71 heavily overloaded. In this section, "library" refers to an external body of
79 later releases X11 is available as an optional package on the 72 executable code which may be linked with XEmacs at build time to provide
80 installation CDs. In either case you need both the runtime libraries 73 support for system features, such as images, audio, stream compression,
81 and the SDK (in a sidebar of that page at the time of writing). There 74 databases, and input methods. Libraries must be available when XEmacs is
82 is also a 3rd-party implementation of X11R6 for the Mac at 75 built. A "module" is also a dynamically loadable library, but it is built
83 http://www.xdarwin.org/. On Solaris, the SUNWaudmo package enables 76 from the XEmacs sources, after the XEmacs executable is built.
84 native sound support. There are also a number of free software 77
85 applications that XEmacs can use. If these are not yet available on 78 We assume that your system has a GUI windowing system, specifically X11 (the
86 your system, obtain, build and install those external libraries before 79 X Window System) or Microsoft Windows. XEmacs can also use various toolkits
87 building XEmacs. The libraries XEmacs can use are: 80 and widget kits for X11, including Xt, GTK+/GNOME, and CDE, depending on
88 81 platform. If you don't have a window system installed, XEmacs will be built
89 Xaw3d, XPM, JPEG, compface, PNG, zlib, GNU DBM, Berkeley DB, socks, 82 only with terminal support. (For unreleased ports to Qt/KDE and Mac OS X,
90 term, NAS, Canna, Kinput2, SJ3, Wnn, PostgreSQL, LDAP. 83 ask on the xemacs-beta@xemacs.org mailing list.)
91 84
92 You can get (most of) them from the XEmacs FTP archive at 85 XEmacs can use a large number of additional libraries that are commonly
93 <ftp://ftp.xemacs.org/pub/xemacs/aux>. Information about what 86 available in many operating system distributions. Many are also available as
94 each library does is available in the file 87 open source distributions. These include:
95 <ftp://ftp.xemacs.org/pub/xemacs/aux/00README.txt>. 88
96 89 GTK+, GNOME:
97 Use the `--with-site-includes' and `--with-site-libraries' options when 90 An alternative to the Xt toolkit on X11-based window systems. GNOME
98 building XEmacs to allow configure to find the external software 91 is the desktop environment usually used with GTK+.
99 packages. For your convenience these can be set together by using the 92 Xaw3d, XawNeXT, XawXPM, Xaw95:
100 `--with-site-prefixes' option. This will set these variables as needed 93 Variants on the basic Athena widgets, which change the "look and feel"
101 assuming your libraries are organised as a typical /usr tree. 94 of XEmacs built using the Xt toolkit.
102 95 Motif, CDE, Tooltalk:
103 If you link dynamically with external libraries, usually denoted by 96 Mostly useful on Solaris systems (CDE and Tooltalk may be obsolete).
104 ".so" (Unix), ".dll" (Windows), or ".dylib" (MacOS) file extensions, on 97 Motif may be substituted for the Athena widgets on most systems
105 some systems you may also need to add the library directories to the 98 supporting X11.
106 `--with-site-runtime-libraries' option. It is typically necessary only 99 XPM, JPEG, TIFF, PNG, compface:
107 if you link with dynamic libraries that are installed in non-standard 100 Image format libraries. XPM and PNG are almost essential (they are
108 directories, or if you expect some of the libraries used to build XEmacs 101 used to display parts of the XEmacs GUI).
109 to be in a different directory at run time than at build time. 102 zlib:
110 103 Supports gzip compression and decompression.
111 NOTE: This option has unusual semantics. ONLY libraries found in the 104 socks:
112 directories specified in this option will be used at runtime. This 105 An old system for passing firewalls (may be obsolete).
113 means you must specify ALL directories you want searched at runtime in 106 GMP, MP:
114 this option (perhaps excluding a very small number of standard system 107 Multiple precision arithmetic libraries ("bignums") from GNU and BSD.
115 library paths). 108 curses, ncurses, termcap:
116 109 Character-based terminal support.
117 Directories specified with `--with-site-libraries' are NOT automatically 110 ALSA, OSS, ESD, NAS:
118 added. The rationale is that most users will not need this option, and 111 Various systems for audio output.
119 this allows the builder to specify exactly the needed directories. 112 Canna, SJ3, Wnn:
120 Specifying unnecessary directories leads to obscure problems (typically 113 Input systems for Japanese. (XEmacs accesses these libraries directly
121 startup delays) if those directories are mounted over a network, and the 114 rather than through more modern protocols such ibus and IIIMF. XEmacs
122 automounter configuration changes. Not all systems need this option; 115 can use XIM, but that is now considered obsolete.)
123 it's best to avoid using it if you can. 116 Databases:
124 117 GNU DBM, Berkeley DB, PostgreSQL, LDAP.
125 Dynamic linking has pros and cons. Dynamically linking 3rd party 118
126 libraries to XEmacs decreases the size of the binary, and means you 119 WARNING: In many distributions, you may have the necessary libraries
127 don't need to rebuild XEmacs to take advantage of improvements in the 120 installed, but not the "header files" which provide the APIs used by XEmacs
128 libraries. On the other hand, XEmacs can fail subtly if the semantics 121 to link to the libraries. Such distributions provide additional packages,
129 of a library changes, other users may not be able to use your 122 usually given names ending in "-dev" or "-devel", to supply the header files.
130 "private" copies of the libraries, and you may have to relink XEmacs, 123
131 or even omit the feature, if the ABI changes when the libraries are 124 XEmacs looks only in the default system directories for header files and
132 upgraded. 125 libraries. This will be sufficient unless you have built and installed
133 126 libraries yourself, or you use an add-on package manager like MacPorts on Mac
134 CONFIGURATION OPTIONS 127 OS X. In this case you will need to supply the "--with-site-prefixes"
135 ===================== 128 option, setting it to the root of the installation of such packages. Eg, the
136 129 most common setting is "--with-site-prefixes=/usr/local", which tells the
137 In the top level directory of the XEmacs distribution, run the 130 build process to search for headers in "/usr/local/include" for libraries
138 program `configure' as follows: 131 under "/usr/local/lib". (Use a colon to separate multiple directories.)
139 132
140 ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ... 133 If you need help installing additional libraries and header files, the best
141 134 resource is the help channels for your OS distribution. If that doesn't
142 Options are generally of the form `--with-FEATURE' or 135 help, or you think you have the right files installed but the built XEmacs
143 `--enable-FEATURE' to use a feature or `--without-FEATURE' or 136 doesn't seem to have all the corresponding features, check with the newsgroup
144 `--disable-FEATURE' to not use a feature. Unlike the `configure' 137 'comp.emacs.xemacs' or the mailing list 'xemacs-beta@xemacs.org'.
145 program used in other applications, either `--with-FEATURE' or 138
146 `--enable-FEATURE' can be used to use the same feature. 139 SELECTING configure OPTIONS
147 140 ===========================
148 If you haven't built XEmacs 21.5 recently, the change from the 141
149 configure script based on Autoconf 2.13 can be a shock. Appendix: 142 Options are generally of the form `--with-FEATURE' to use a feature or
150 Correspondence to Old Configure Options (at the end of this document) 143 `--without-FEATURE' to not use a feature. (Unlike the `configure' program
151 contains a list of old options and their new equivalents. 144 used in other applications, either `--with-FEATURE' or `--enable-FEATURE' can
152 145 be used to enable the same feature.)
153 Controlling the Host Type 146
154 ------------------------- 147 To get a long list of options and usage for the `configure' script, use
155 148 `./configure --help' (piped to less if you prefer that to scrolling your
156 Almost always, you should let `configure' (actually the shell script 149 terminal).
157 `config.guess') guess your host type, by omitting the 150
158 CONFIGURATION-NAME argument. If you like to experiment, specify a 151 Each option's explanation says what its default is. For Boolean options, the
159 configuration name in the form MACHINE-VENDOR-OPSYS, for example: 152 default may be "yes", "no", or "auto". If the default is "no", the feature
160 153 will not be included, and if any option that depends on it is enabled,
161 sparc-sun-solaris2.6 154 configure will fail with a fatal error. If the default is "yes", the feature
162 155 will be included, and configure will fail with a fatal error if any required
163 See config.guess and configure.in for valid values for MACHINE, 156 headers or libraries cannot be found. If the default is "auto", the feature
164 VENDOR, and OPSYS. Also check `./etc/MACHINES' for advice on building 157 will be included if configure can find the needed headers and libraries.
165 on particular machines. 158
166 159 Even if a feature's default is "auto", it is useful to explicitly request its
167 Specifying Location of Headers and Libraries 160 configuration. If the necessary headers or libraries aren't found, configure
168 -------------------------------------------- 161 will fail loudly instead of silently configuring an XEmacs without your
169 162 favorite features.
170 The `--with-site-includes=DIR' and `--with-site-libraries=DIR' options 163
171 allow you to specify additional places the compiler should look for 164 Configuring the Installation Locations
172 include files and object libraries. You may specify multiple DIR's by 165 --------------------------------------
173 enclosing the list in quotes. All the external libraries you want to 166
174 use with XEmacs (e.g. xpm, wnn, ...) described later should have their 167 Often the default location for the XEmacs installation ("/usr/local") is
175 include and library directories defined using these options. 168 appropriate. If you prefer to put the installation somewhere else, use the
176 169 `--prefix' option, such as `--prefix=/opt/local/xemacs'.
177 The `--with-site-runtime-libraries=DIR' option specifies directories to 170
178 search for shared libraries at run time. If you use this option, you 171 As of late 2011, XEmacs is transitioning from the traditional "$prefix/lib"
179 must specify ALL of the directories containing shared libraries at run 172 location to the FHS-conforming location "$prefix/share" for packages. If you
180 time, including system directories. Please read the information about 173 already have packages installed under, say, "/usr/local/lib" and would prefer
181 "ADD-ON LIBRARIES" above very carefully. 174 not to move them, use `--with-system-packages=/usr/local/lib/xemacs'. (The
182 175 value of this option should be the name of the directory containing the
183 The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build 176 "xemacs-packages", "mule-packages", and/or "site-packages" hierarchies.)
184 process where the compiler should look for the include files and 177
185 object libraries used with the X Window System. Normally, `configure' 178 The standard configuration of XEmacs builds in absolute paths for its various
186 is able to find them; these options are necessary if you have your X 179 support files. It is possible to make the XEmacs installation relocatable by
187 Window System files installed in unusual places. 180 using the option `--without-prefix'. Then all paths are computed at runtime
188 181 relative to the "bin" directory where the XEmacs executable is located.
189 Configuring the Build Process 182
190 ----------------------------- 183 There are a plethora of additional options for controlling exactly where
191 184 different parts of XEmacs are installed. We *strongly* recommend sticking
192 The `--with-gcc=PROGRAM' option specifies that the build process should 185 with the standard layout, except as just described. If you want to
193 compile XEmacs using GCC. The `--with-compiler' option allows you to 186 experiment, these additional configure options are described in a later
194 specify some other compiler to be used to compile XEmacs. If neither 187 section.
195 option is specified, the environment variable CC is used instead.
196 Otherwise the compiler will then default to 'cc'.
197
198 The `--with-xemacs-compiler=PROGRAM' option specifies the compiler
199 control program for the xemacs binary only. Other C code will be
200 compiled according to the `--with-gcc' and `--with-compiler' options
201 above. This is useful if you wish to compile XEmacs with a C++
202 compiler, because the utilities in ./lib-src cannot be compiled as C++.
203 This option is primarily intended for use by the maintainers.
204
205 The `--with-cflags=FLAGS' option specifies all of the CFLAGS the build
206 process should use when compiling XEmacs, except for flags controlling
207 warning generation. Otherwise the value of the environment variable
208 CFLAGS is consulted. If that is also undefined, CFLAGS defaults to "-g
209 -O" for gcc and "-g" for all other compilers.
210
211 The `--with-cflags-warning=FLAGS' option specifies the warnings to be
212 generated. There is normally no reason to use this flag, as XEmacs
213 turns on as many warnings as possible, and is still intended to build
214 with no warnings. If you get any undocumented warnings, please report
215 them as bugs---they very often are, or at least indicate possible
216 bitrot.
217
218 The `--with-cflags-optimization=FLAGS' option specifies the
219 optimizations to be used. There is normally no reason to use this
220 flag, as XEmacs will already set the maximum safe optimization flags
221 appropriate for the compiler being invoked.
222
223 The `--with-cflags-debugging=FLAGS' option specifies debugging
224 information to be generated. You should avoid using this flag, as it
225 makes most severe or fatal bugs hard-to-impossible to diagnose and
226 fix. Debugging information does not slow down XEmacs at runtime, and
227 it doesn't make the binary very much bigger.
228
229 The `--with-dynamic' option specifies that configure should try to
230 link XEmacs dynamically rather than statically. `--with-static'
231 specifies the reverse. XEmacs's configure script detects whether
232 dynamic linking can be done on all platforms we know of; these options
233 are normally unnecessary.
234
235 The `--with-modules' option specifies that XEmacs be built with
236 support for runtime loadable modules. NOTE TO OEMS: XEmacs can be
237 distributed configured to support several options based on external
238 APIs (currently LDAP, PostgreSQL, and Canna) as loadable modules. You
239 can distribute an XEmacs binary package with these options enabled
240 without depending on the external package. XEmacs will fail
241 gracefully at runtime, issuing an error message indicating that the
242 required support was not found on the system.
243
244 You can build XEmacs for several different machine types from a single
245 source directory. To do this, you must use a version of `make' that
246 supports the `VPATH' variable, such as GNU `make'. Create separate
247 build directories for the different configuration types, and in each
248 one, run the XEmacs `configure' script. `configure' looks for the
249 Emacs source code in the directory that `configure' is in. The
250 `--srcdir' option may not work correctly (traditionally it was
251 overridden by the directory containing `configure').
252
253 Configuring the Installation Layout
254 -----------------------------------
255
256 The `--prefix=PREFIXDIR' option specifies where the installation process
257 should put XEmacs and its data files. This defaults to `/usr/local'.
258 - XEmacs (and the other utilities users run) go in PREFIXDIR/bin
259 (unless the `--exec-prefix' option says otherwise).
260 - The architecture-independent files go in PREFIXDIR/share/xemacs-VERSION
261 (where VERSION is the version number of XEmacs, like `21.0').
262 - The architecture-dependent files go in
263 PREFIXDIR/lib/xemacs-VERSION/CONFIGURATION-NAME
264 (where CONFIGURATION-NAME is the host type, like mips-dec-ultrix4.2),
265 unless the `--exec-prefix' option says otherwise.
266
267 The `--exec-prefix=EXECDIR' option allows you to specify a separate
268 portion of the directory tree for installing architecture-specific
269 files, like executables and utility programs. If specified,
270 - XEmacs (and the other utilities users run) go in EXECDIR/bin, and
271 - The architecture-dependent files go in
272 EXECDIR/lib/xemacs-VERSION/CONFIGURATION-NAME.
273 EXECDIR/bin should be a directory that is normally in users' PATHs.
274
275 If you specify --prefix (or any of the other installation directory
276 options), they will get compiled into the xemacs executable so it will
277 be able to find its various associated files. However, XEmacs has
278 quite elaborate logic to find out the locations of these directories
279 dynamically. Sometimes, it is desirable *not* to compile these
280 directories into the executable so you can move the XEmacs
281 installation around (as whole) at will. This is true for binary kits,
282 for instance. Therefore, you can specify --without-prefix on the
283 configure command line to prevent the installation prefix to become
284 part of the generated executable; everything else will continue to
285 work as usual.
286
287 Unlike previous versions of XEmacs (21.4 or earlier),
288 architecture-independent files (in particular, the Lisp files and
289 package hierarchies) by default get installed under `/usr/local/share'
290 rather than `/usr/local/lib'. To create a setup as in previous
291 versions, use the `--datadir=/usr/local/lib' option to configure.
292
293 Configuring Feature Support
294 ---------------------------
295
296 If you don't want X Window System support, specify `--without-x'. If
297 you omit this option, `configure' will try to autodetect whether your
298 system has X Window System support, and arrange to use it if present.
299
300 The `--with-menubars=TYPE' option allows you to specify which X
301 toolkit you wish to use for the menubar. The valid options are
302 `lucid', `motif' and `no'. The default is `lucid' which is a
303 Motif-lookalike menubar. We highly recommend its usage over the real
304 Motif menubar. (In fact, the Motif menubar is currently broken.) If
305 `no' is specified then support for menubars will not be compiled in.
306
307 The `--with-scrollbars=TYPE' option allows you to specify which X
308 toolkit you wish to use for the scrollbars. The valid options are
309 `lucid', `motif', `athena', `athena3d', and `no'. The default is
310 `lucid' which is a Motif-lookalike scrollbar. If `no' is specified then
311 support for scrollbars will not be compiled in.
312
313 The `--with-dialogs=TYPE' option allows you to specify which X toolkit
314 you wish to use for the dialog boxes. The valid options are `athena',
315 `athena3d', `motif, and `no. The `lucid' option is accepted and will
316 result in the `athena' toolkit being used. If the Motif toolkit can be
317 found the default is `motif'. Otherwise, the default is `athena'. If
318 `no' is specified then support for dialog boxes will not be compiled in.
319
320 The `--with-toolbars' option allows you to enable or disable toolbar
321 support. The default is `yes' if support for a windowing system is
322 included.
323
324 The `--with-xpm' option specifies that XEmacs should support X11
325 Pixmaps. `configure' will attempt to detect if you have the Xpm
326 libraries and define `--with-xpm' for you.
327
328 The `--with-xface' option specifies that XEmacs should support
329 X-Faces. `configure' will attempt to detect if you have the compface
330 library and define `--with-xface' for you.
331
332 The `--with-database' option specifies that XEmacs should be built
333 with simple database support. The valid options are `no' or a
334 comma-separated list of one or more of `dbm', `gnudbm' or `berkdb'.
335 `configure' will attempt to detect the necessary libraries and header
336 files and define `--with-database' for you.
337
338 The `--with-postgresql' option specifies that XEmacs should be built
339 with PostgreSQL support, linking with libpq. `configure' will attempt
340 to detect whether PostgreSQL support is available, and automatically
341 define `--with-postgresql' for you. NOTE TO OEMS: If modules are
342 supported and enabled, the libpq API support will be build as a
343 module.
344
345 The `--with-ldap' option specifies that XEmacs should be build with
346 LDAP support, using the OpenLDAP libraries. `configure' will attempt
347 to detect whether LDAP support is available, and automatically define
348 `--with-ldap' for you. NOTE TO OEMS: If modules are supported and
349 enabled, the OpenLDAP API support will be build as a module.
350
351 The `--with-socks' option specifies that XEmacs should be built with
352 SOCKS support. This requires the libsocks library.
353
354 The `--with-external-widget' option specifies that XEmacs should be
355 built with support for being used as a widget by other X11 applications.
356 This functionality should be considered beta.
357
358 The `--with-sound=TYPE' option specifies that XEmacs should be built
359 with sound support. Native (`--with-sound=native') sound support is
360 currently available only on Sun SparcStations, SGI's, HP9000s, and
361 systems (such as Linux) with soundcard.h. Network Audio Support (NAS)
362 (`--with-sound=nas') is an extension to X that you may or may not have
363 for your system. For NAS, you will probably need to provide the paths
364 to the nas include and library directories to configure. If
365 `--with-sound' is not specified, `configure' will attempt to determine
366 if your configuration supports native sound and define --with-sound
367 for you. If your native sound library is not in a standard location you
368 can specify it with the `--with-native-sound-lib=LIB' flag. For Linux,
369 `/dev/audio' is required for SunAudio files and `/dev/dsp' is required
370 for raw data and WAVE format files.
371
372 The `--with-tooltalk' option specifies that XEmacs should be built
373 with ToolTalk support for interconnecting with other applications.
374 ToolTalk is not yet supported on all architectures. If you use this
375 option, you should have the tooltalk package (see etc/PACKAGES)
376 installed prior to building XEmacs.
377
378 The `--with-sparcworks' option specifies that XEmacs should be built
379 with support for Sun Sparcworks 3.0.1 and up (including Sun WorkShop).
380 This functionality is only of use on SunOS 4.1.x and Solaris 2.x
381 systems. If you use this option, you should have the Sun package (see
382 etc/PACKAGES) installed prior to building XEmacs.
383
384 The `--with-cde' option allows you to enable or disable CDE drag and
385 drop support. `configure' will attempt to detect this option and
386 define `--with-cde' for you.
387 188
388 Internationalization Options 189 Internationalization Options
389 ---------------------------- 190 ----------------------------
390 191
391 The `--with-mule' option enables MUlti-Lingual Emacs (Mule) support, 192 The `--with-mule' option enables MUlti-Lingual Emacs (Mule) support,
394 character) support. With the advent of the Euro and European 195 character) support. With the advent of the Euro and European
395 Community expansion, Mule support is also recommended for Western 196 Community expansion, Mule support is also recommended for Western
396 Europeans. Enabling Mule support requires the mule-base package 197 Europeans. Enabling Mule support requires the mule-base package
397 installed prior to building XEmacs. The `--with-xim', --with-xfs', 198 installed prior to building XEmacs. The `--with-xim', --with-xfs',
398 `--with-canna', `--with-wnn' and `--with-wnn6' options require 199 `--with-canna', `--with-wnn' and `--with-wnn6' options require
399 Mule support. 200 Mule support. (Default: no.)
400 201
401 The `--with-xim' option enables use of the X11 XIM mechanism to allow 202 The `--with-canna' option enables the use of the Canna Japanese input method.
402 an input method to input text into XEmacs. The input method is shared 203 This is stable code and fairly well tested. In order to use it, you will
403 among all the X applications sharing an X display and using the same 204 have to have the Canna server installed and running. Canna versions 3.2pl2,
404 language. The XIM support comes in two flavors: `motif' and `xlib'. 205 3.5b2, and 3.7p3 are known to work. Version 3.2pl2 is considered more stable
405 The Motif support (the XmIm* functions) is preferred when available. 206 than version 3.5b2; the stability of 3.7p3 is still unknown. If Canna is
406 The xlib XIM support works reasonably well so long as the X11 libraries 207 already installed, configure will autodetect it, so you never need to
407 are recent enough. It has been fairly well tested on Linux with glibc 208 explicitly use this option unless your Canna libraries are somewhere strange.
408 2.0.5 and 2.0.6 and Kinput2 as an XIM server. In this configuration 209 Canna run time support is currently bundled with the `mule-base' package so
409 X11 must be recompiled with X_LOCALE defined because glibc is lacking 210 there is nothing additional to install in order to use it. NOTE TO OEMS: If
410 localization for Japanese. The XIM support defaults to `no' except 211 modules are supported and enabled, the libcanna API support will be build as
411 when Motif is detected where it is stable with OSF libraries. The XIM 212 a module. (Default: no.)
412 support in Lesstif (a Free Motif replacement) does not work as of
413 v0.82. If you enable this option, you will probably wish to install
414 the `locale' package which contains localized Splash screens and
415 Menubars.
416
417 The `--with-xfs' option enables use of a multilingual Menubar. At the
418 present time, only Japanese and French locales are supported. In
419 order to use a multilingual Menubar you must have the `locale' package
420 installed. The `locale' package does not have to be installed when
421 building XEmacs.
422
423 The `--with-canna' option enables the use of the Canna Japanese input
424 method. This is stable code and fairly well tested. In order to use
425 it, you will have to have the Canna server installed and running. Canna
426 versions 3.2pl2, 3.5b2, and 3.7p3 are known to work. Version 3.2pl2 is
427 considered more stable than version 3.5b2; the stability of 3.7p3 is
428 still unknown. If Canna is already installed, configure will autodetect
429 it, so you never need to explicitly use this option unless your Canna
430 libraries are somewhere strange. Canna run time support is currently
431 bundled with the `mule-base' package so there is nothing additional to
432 install in order to use it. NOTE TO OEMS: If modules are supported
433 and enabled, the libcanna API support will be build as a module.
434 213
435 The `--with-wnn' and `--with-wnn6' options are for compiling with the Wnn 214 The `--with-wnn' and `--with-wnn6' options are for compiling with the Wnn
436 multi-language input method. `--with-wnn' is for compiling with Wnn-4.2, 215 multi-language input method. `--with-wnn' is for compiling with Wnn-4.2, the
437 the Free version of WNN. `--with-wnn6' is for compiling against WNN6, 216 Free version of WNN. `--with-wnn6' is for compiling against WNN6, the
438 the commercial version of WNN available from OMRON Corporation. This is 217 commercial version of WNN available from OMRON Corporation. This is stable
439 stable code and fairly well tested. In order to build with this 218 code and fairly well tested. In order to build with this option, you will
440 option, you will need to have the `egg-its' lisp package already 219 need to have the `egg-its' lisp package already installed. (Default: no.)
441 installed. 220
221 The `--with-xim' option enables use of the X11 XIM mechanism to allow an
222 input method to input text into XEmacs. The input method is shared among all
223 the X applications sharing an X display and using the same language. The XIM
224 support comes in two flavors: `motif' and `xlib'. The Motif support (the
225 XmIm* functions) is preferred when available. The XIM support defaults to
226 `no' except when Motif is detected where it is stable with OSF libraries.
227 The XIM support in Lesstif (a Free Motif replacement) does not work as of
228 v0.82. If you enable this option, you will probably wish to install the
229 `locale' package which contains localized Splash screens and Menubars.
230
231 (This option is deprecated and will be removed.) The `--with-xfs' option
232 enables use of a multilingual Menubar. At the present time, only Japanese
233 and French locales are supported. In order to use a multilingual Menubar you
234 must have the `locale' package installed. The `locale' package does not have
235 to be installed when building XEmacs. (Default: no.)
442 236
443 Please note that it is safe to build with as many of the options 237 Please note that it is safe to build with as many of the options
444 `--with-xim', `--with-canna' and `--with-wnn' as your system 238 `--with-xim', `--with-canna' and `--with-wnn' as your system
445 supports. 239 supports.
446 240
447 Options for Developers and Special Requirements 241 Configuring the Window System
448 ----------------------------------------------- 242 -----------------------------
449 243
450 The `--with-rel-alloc' option can be used to either enable or disable 244 If you prefer the GTK+ look and feel to Xt, specify `--with-gtk'. You can
451 use of the relocating allocator. Turning on --with-rel-alloc will allow 245 also enable support for some GNOME desktop features with `--with-gnome'. You
452 XEmacs to return unused memory to the operating system, thereby reducing 246 cannot use both GTK+ and Xt at the same time.
453 its memory footprint. However, it may make XEmacs runs more slowly, 247
454 especially if your system's `mmap' implementation is missing or 248 If you don't want X Window System support at all, specify `--without-x'. If
455 inefficient. Generally, it's best to go with the default configuration 249 you omit this option, `configure' will try to autodetect whether your system
456 for your system. You can tweak this based on how you use XEmacs, and 250 has X Window System support, and arrange to use it if present.
457 the memory and cpu resources available on your system. 251
458 252 On Cygwin, you can configure support for the "native" MS Windows GUI with
459 The `--with-system-malloc' option can be used to either enable or 253 `--with-msw'. XEmacs supports both `--with-msw' and `--with-x' at the same
460 disable use of the system malloc. Generally, it's best to go with the 254 time.
461 default configuration for your system. Note that on many systems 255
462 using the system malloc disables the use of the relocating allocator. 256 The `--with-menubars=TYPE' option allows you to specify which X
463 257 toolkit you wish to use for the menubar. The valid options are
464 The `--with-debug-malloc' option can be used to link a special 258 `lucid', `motif' and `no'. The default is `lucid' which is a
465 debugging version of malloc. Debug Malloc is not included with XEmacs 259 Motif-lookalike menubar. We highly recommend its usage over the real
466 and is intended for use only by the developers. It may be obtained 260 Motif menubar. (In fact, the Motif menubar is currently broken.) If
467 from <URL:http://www.letters.com/dmalloc/>. 261 `no' is specified then support for menubars will not be compiled in.
468 262
469 The `--with-debug' and `--with-error-checking' options are primarily 263 The `--with-scrollbars=TYPE' option allows you to specify which X toolkit you
470 useful to the developers. `--with-debug' incorporates code for 264 wish to use for the scrollbars. The valid options are `lucid', `motif',
471 performing various tests, but does not impose a speed penalty. 265 `athena', and `no'. The default is `lucid' which is a Motif-lookalike
472 `--with-error-checking' adds additional tests to many of the commonly 266 scrollbar. If `no' is specified then support for scrollbars will not be
473 used macros, and imposes a speed penalty. Using either or both of these 267 compiled in.
474 options can make bug reports more useful to the developers. 268
475 269 The `--with-dialogs=TYPE' option allows you to specify which X toolkit you
476 The `--verbose' option is useful only to the developers. It displays 270 wish to use for the dialog boxes. The valid options are `athena', `motif,
477 additional information, useful for debugging `configure'. 271 and `no. The `lucid' option is accepted and will result in the `athena'
478 272 toolkit being used. If the Motif toolkit can be found the default is
479 MAIL LOCKING 273 `motif'. Otherwise, the default is `athena'. If `no' is specified then
480 ============ 274 support for dialog boxes will not be compiled in.
481 275
482 For most platforms, configure or the src/s file have the preferred 276 The `--with-toolbars' option allows you to enable or disable toolbar
483 method for locking mail spool files preconfigured. Otherwise you must 277 support. The default is `yes' if support for a windowing system is
484 find out for yourself. Do not choose a locking protocol "on the 278 included.
485 objective merits." XEmacs must use the same method as other mail 279
486 utilities on your system, or you WILL lose mail. 280 The `--with-dragndrop' option compiles in the generic drag and drop API.
487 281 This is automatically added if one of the drag and drop protocols is found
488 Presently, XEmacs supports lockf, flock, and dot locking. Specify the 282 (currently CDE, MSWindows, and GTK). *WARNING* The Drag'n'drop support is
489 locking method via the --with-mail-locking=METHOD option to configure. 283 under development and is considered experimental.
490 Valid values for METHOD are --with-mail-locking are `lockf', `flock', 284
491 and `dot'. 285 Miscellaneous Features
286 ----------------------
287
288 The `--with-xpm' option specifies that XEmacs should support X11
289 Pixmaps. (Default: auto.)
290
291 The `--with-xface' option specifies that XEmacs should support
292 X-Faces. (Default: auto.)
293
294 The `--with-database' option specifies that XEmacs should be built with
295 simple database support. The valid options are `no' or a comma-separated
296 list of one or more of `dbm', `gnudbm' or `berkdb'. (Default: auto.)
297
298 The `--with-postgresql' option specifies that XEmacs should be built with
299 PostgreSQL support, linking with libpq. (Default: auto.) NOTE TO OEMS: If
300 modules are enabled, the libpq API support will be build as a module.
301
302 The `--with-ldap' option specifies that XEmacs should be build with LDAP
303 support, using the OpenLDAP libraries. (Default: auto.) NOTE TO OEMS: If
304 modules are enabled, the OpenLDAP API support will be build as a module.
305
306 The `--with-socks' option specifies that XEmacs should be built with
307 SOCKS support. This requires the libsocks library. (Default: no.)
308
309 The `--with-sound=TYPE' option specifies that XEmacs should be built with
310 sound support. Native (`--with-sound=native') sound support is currently
311 available only on Sun SparcStations, SGI's, HP9000s, and systems (such as
312 Linux) with soundcard.h. Network Audio Support (NAS) (`--with-sound=nas') is
313 an extension to X that you may or may not have for your system. For NAS, you
314 will probably need to provide the paths to the nas include and library
315 directories to configure. ESD ("Enlightened Sound Daemon")
316 (`--with-sound=esd') is a third-party library which interacts with a special
317 sound daemon. If `--with-sound' is not specified, `configure' will attempt
318 to determine if your configuration supports native sound and define
319 --with-sound for you. If your native sound library is not in a standard
320 location you can specify it with the `--with-native-sound-lib=LIB' flag. For
321 Linux, `/dev/audio' is required for SunAudio files and `/dev/dsp' is required
322 for raw data and WAVE format files. You may specify as many sound types as
323 your system supports, separated by commas: `--with-sound=nas,native'.
324 (Default: auto.)
325
326 The `--with-tty' option enables TTY support. (Default: yes.)
327
328 The `--with-ncurses' options specifies use of the ncurses library for tty
329 support. (Default: auto.)
330
331 The `--with-gpm' option compiles in GPM mouse support for ttys. (Default:
332 no.)
333
334 The `--with-external-widget' option specifies that XEmacs should be
335 built with support for being used as a widget by other X11 applications.
336 This functionality should be considered beta. (Default: no.)
337
338 The `--with-tooltalk' option specifies that XEmacs should be built
339 with ToolTalk support for interconnecting with other applications.
340 ToolTalk is not yet supported on all architectures. If you use this
341 option, you should have the tooltalk package (see etc/PACKAGES)
342 installed prior to building XEmacs. (Default: no.)
343
344 The `--with-sparcworks' option specifies that XEmacs should be built
345 with support for Sun Sparcworks 3.0.1 and up (including Sun WorkShop).
346 This functionality is only of use on SunOS 4.1.x and Solaris 2.x
347 systems. If you use this option, you should have the Sun package (see
348 etc/PACKAGES) installed prior to building XEmacs. (Default: no.)
349
350 The `--with-cde' option allows you to enable or disable CDE drag and
351 drop support. `configure' will attempt to detect this option and
352 define `--with-cde' for you. (Default: no.)
492 353
493 RUNNING CONFIGURE 354 RUNNING CONFIGURE
494 ================= 355 =================
495 356
496 `configure' doesn't do any compilation or installation itself. It 357 `configure' doesn't do any compilation or installation itself. It just
497 just creates the files that influence those things: `./src/config.h', 358 creates the files that influence those things: `./src/config.h', and all the
498 and all the Makefiles in the build tree. 359 Makefiles in the build tree.
499 360
500 When it is done, `configure' prints a description of what it did and 361 XEmacs supports the implicit --srcdir option to allow building outside of the
501 creates a shell script `config.status' which, when run, recreates the 362 source tree. This is recommended; it only requires adding a single build
502 same configuration. If `configure' exits with an error after 363 directory, cd'ing there, and invoking configure:
503 disturbing the status quo, it removes `config.status'. If `configure' 364
504 doesn't work as expected, the file `config.log' contains details of 365 mkdir +build
505 the tests run and their results. 366 cd +build
506 367 ../configure [--OPTION[=VALUE]] ...
507 AUXILIARY PATHS 368
508 =============== 369 If you want to build in the source tree for some reason, cd to the top level
509 370 directory of the XEmacs distribution, and run the program `configure' as
510 Look at `./lisp/paths.el'; if some of those values are not right for 371 follows:
511 your system, set up the file `./lisp/site-init.el' with XEmacs Lisp 372
512 code to override them; it is not a good idea to edit paths.el itself. 373 ./configure [--OPTION[=VALUE]] ...
513 YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES, rather than 374
514 `defvar', as used by `./lisp/paths.el'. For example, 375 When it is done, `configure' prints a description of what it did and creates
515 376 a shell script `config.status' which, when run, recreates the same
516 (setq news-inews-program "/usr/bin/inews") 377 configuration. If `configure' exits with an error after disturbing the
517 378 status quo, it removes `config.status'. If `configure' doesn't work as
518 is how you would override the default value of the variable 379 expected, the file `config.log' contains details of the tests run and their
519 news-inews-program (which is "/usr/local/inews"). 380 results.
520
521 Before you override a variable this way, *look at the value* that the
522 variable gets by default! Make sure you know what kind of value the
523 variable should have. If you don't pay attention to what you are
524 doing, you'll make a mistake.
525
526 Things may malfunction if the variable `directory-abbrev-alist' is not
527 set up to translate "temporary" automounter mount points into the
528 canonical form. XEmacs tries to detect how your automounter is
529 configured. If you have an unusual automounter configuration that
530 XEmacs cannot detect, you may need to change the value of
531 `directory-abbrev-alist'.
532
533 SITE-SPECIFIC STARTUP CODE
534 ==========================
535
536 Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs Lisp
537 code you want XEmacs to load before it is dumped out. Use
538 site-load.el for additional libraries if you arrange for their
539 documentation strings to be in the lib-src/DOC file (see
540 src/Makefile.in.in if you wish to figure out how to do that). For all
541 else, use site-init.el.
542
543 Note that, on some systems, the code you place in site-init.el must
544 not use expand-file-name or any other function which may look
545 something up in the system's password and user information database.
546 See `./PROBLEMS' for more details on which systems this affects.
547
548 The `site-*.el' files are nonexistent in the distribution. You do not
549 need to create them if you have nothing to put in them.
550
551 TERMCAP CONFIGURATION
552 =====================
553
554 Refer to the file `./etc/TERMS' for information on fields you may
555 wish to add to various termcap entries. The files `./etc/termcap.ucb'
556 and `./etc/termcap.dat' may already contain appropriately-modified
557 entries.
558 381
559 RUNNING MAKE 382 RUNNING MAKE
560 ============ 383 ============
561 384
562 Run `make' in the top directory of the XEmacs distribution to finish 385 `configure' also creates an `Installation' file in the top directory of the
563 building XEmacs in the standard way. The final executable file is 386 build tree. Do read this file before running `make'! It's not very long.
564 named `src/xemacs'. You can execute this file in place without 387 You can save much grief by checking that expected features are listed there.
565 copying it, if you wish; then it automatically uses the sibling 388
566 directories ../lisp, ../lib-src, ../info. 389 Run `make' in the top directory of the XEmacs distribution to finish building
567 390 XEmacs in the standard way. The final executable file is named `src/xemacs'.
568 Or you can install the executable and the other XEmacs into their 391 You can execute this file in place without copying it, if you wish; then it
569 permanent locations, with `make install'. By default, XEmacs's files 392 automatically uses the sibling directories ../lisp, ../lib-src, ../info.
570 are installed in the following directories: 393
394 Or you can install the executable and the other XEmacs into their permanent
395 locations, with `make install'. By default, XEmacs's files are installed in
396 the following directories:
571 397
572 `/usr/local/bin' holds the executable programs users normally run - 398 `/usr/local/bin' holds the executable programs users normally run -
573 `xemacs', `etags', `ctags', `b2m', `emacsclient', `ellcc', 399 `xemacs', `etags', `ctags', `b2m', `emacsclient', `ellcc',
574 `gnuclient', `gnudoit', and `gnuattach'. 400 `gnuclient', `gnudoit', and `gnuattach'.
575 401
576 `/usr/local/share/xemacs-VERSION/lisp' holds the Emacs Lisp libraries; 402 `/usr/local/share/xemacs-VERSION/lisp' holds the basic Emacs Lisp libraries
403 (including core implementations of many Lisp primitives);
577 `VERSION' stands for the number of the XEmacs version 404 `VERSION' stands for the number of the XEmacs version
578 you are installing, like `18.59' or `19.14'. Since 405 you are installing, like `19.14' or `21.5.31'. Since
579 the lisp libraries change from one version of XEmacs to 406 the lisp libraries change from one version of XEmacs to
580 another, including the version number in the path 407 another, including the version number in the path
581 allows you to have several versions of XEmacs installed 408 allows you to have several versions of XEmacs installed
582 at the same time; this means that you don't have to 409 at the same time; this means that you don't have to
583 make XEmacs unavailable while installing a new version. 410 make XEmacs unavailable while installing a new version.
584 411
585 XEmacs searches for its lisp files in these 412 `/usr/local/share/xemacs/xemacs-packages'
586 directories, and then in 413 `/usr/local/share/xemacs/mule-packages'
587 `/usr/local/share/xemacs/site-lisp/*'. 414 `/usr/local/share/xemacs/site-packages'
415 XEmacs searches for "packaged" Emacs Lisp applications or
416 extensions and their support files in these hierarchies.
417 Each hierarchy has its own set of lisp, etc, info, lib-src,
418 and pkginfo subdirectories. The pkginfo subdirectory
419 contains "MANIFEST" files used when installing or removing
420 packages. Each of the others has the same purpose as the
421 similarly-named directory for "core XEmacs".
422
423 `/usr/local/share/xemacs/site-lisp'
424 A last-resort location for Lisp files (optional).
588 425
589 `/usr/local/share/xemacs-VERSION/etc' holds the XEmacs tutorial, the 426 `/usr/local/share/xemacs-VERSION/etc' holds the XEmacs tutorial, the
590 Unicode database, and other architecture-independent 427 Unicode database, and other architecture-independent
591 files XEmacs might need while running. VERSION is as 428 files XEmacs might need while running. VERSION is as
592 specified for `.../lisp'. 429 specified for `.../lisp'.
624 for XEmacs, known as "info files". 461 for XEmacs, known as "info files".
625 462
626 `/usr/local/man/man1' holds the man pages for the programs installed 463 `/usr/local/man/man1' holds the man pages for the programs installed
627 in `/usr/local/bin'. 464 in `/usr/local/bin'.
628 465
629 If these directories are not what you want, you can specify where to 466 If you have specified the `--prefix' option, it will replace "/usr/local"
630 install XEmacs's libraries and data files or where XEmacs should search 467 in the locations above.
631 for its lisp files by giving values for `make' variables as part of 468
632 the command. 469 STRIPPING BINARIES
633 470 ==================
634 You can change where the build process installs XEmacs and its data 471
635 files by specifying values for `make' variables as part of the `make' 472 This saves nothing but a small (by modern standards) amount of disk space;
636 command line. For example, if you type 473 the symbol table is not loaded into memory at execution time. If you do
474 encounter a crash or other serious bug, the first thing the developers will
475 do is ask you to build an XEmacs with a full symbol table, anyway. Don't
476 strip the XEmacs binary.
477
478 MAIL-LOCKING POST-INSTALLATION
479 ==============================
480
481 If your system uses dot-locking to interlock access to mailer inbox files,
482 then you might need to make the movemail program setuid or setgid to enable
483 it to write the lock files. We believe this is not a security hole. The
484 setuid/setgid bits need not be set on any other XEmacs-related executables.
485
486 CLEANING UP
487 ==========
488
489 You are done with the hard part! You can remove executables and object files
490 from the build directory by typing `make clean'. To also remove the files
491 that `configure' created (so you can compile XEmacs for a different
492 configuration), type `make distclean'.
493
494 READ THE FAQ
495 ============
496
497 Do it!
498
499 PROBLEMS
500 ========
501
502 The most common problem is that you forgot to read and follow the directions
503 for installing bootstrap packages in the FAQ. You can not have a normal
504 XEmacs without downloading some additional packages.
505
506 See the file PROBLEMS in this directory for a list of various problems
507 sometimes encountered, and what to do about them. PROBLEMS is also the place
508 where platform-specific build notes can be found.
509
510 ADVANCED CONFIGURATION
511 ======================
512
513 There are a large number of options to configure that can be used to control
514 the build and installation process. These are primarily of interest to
515 developers and OEMs.
516
517 Controlling the Host Type
518 -------------------------
519
520 Almost always, you should let `configure' (actually the shell script
521 `config.guess') guess your host type, by omitting the CONFIGURATION-NAME
522 argument. If you like to experiment, specify a configuration name in the
523 form MACHINE-VENDOR-OPSYS, for example:
524
525 sparc-sun-solaris2.6
526
527 using the command form
528
529 ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...
530
531 See config.guess and configure.ac for valid values for MACHINE, VENDOR, and
532 OPSYS. Also check `./etc/MACHINES' for advice on building on particular
533 machines.
534
535 Specifying Location of Headers and Libraries
536 --------------------------------------------
537
538 The `--with-site-includes=DIR' and `--with-site-libraries=DIR' options allow
539 you to specify additional places the compiler should look for include files
540 and object libraries. You may specify multiple DIR's by enclosing the list
541 in quotes. All the external libraries you want to use with XEmacs (e.g. xpm,
542 wnn, ...) described later should have their include and library directories
543 defined using these options.
544
545 The `--with-site-runtime-libraries=DIR' option specifies directories to
546 search for shared libraries at run time. If you use this option, you must
547 specify ALL of the directories containing shared libraries at run time,
548 including system directories. Please read the information about "ADD-ON
549 LIBRARIES" above very carefully.
550
551 The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build process
552 where the compiler should look for the include files and object libraries
553 used with the X Window System. Normally, `configure' is able to find them;
554 these options are necessary if you have your X Window System files installed
555 in unusual places.
556
557 Configuring the Build Process
558 -----------------------------
559
560 The `--with-gcc=PROGRAM' option specifies that the build process should
561 compile XEmacs using GCC. The `--with-compiler' option allows you to specify
562 some other compiler to be used to compile XEmacs. If neither option is
563 specified, the environment variable CC is used instead. Otherwise the
564 compiler will then default to 'cc'.
565
566 The `--with-xemacs-compiler=PROGRAM' option specifies the compiler control
567 program for the xemacs binary only. Other C code will be compiled according
568 to the `--with-gcc' and `--with-compiler' options above. This is useful if
569 you wish to compile XEmacs with a C++ compiler, because the utilities in
570 ./lib-src cannot be compiled as C++. This option is primarily intended for
571 use by the maintainers.
572
573 The `--with-cflags=FLAGS' option specifies all of the CFLAGS the build
574 process should use when compiling XEmacs, except for flags controlling
575 warning generation. Otherwise the value of the environment variable CFLAGS
576 is consulted. If that is also undefined, CFLAGS defaults to "-g -O" for gcc
577 and "-g" for all other compilers.
578
579 The `--with-cflags-warning=FLAGS' option specifies the warnings to be
580 generated. There is normally no reason to use this flag, as XEmacs turns on
581 as many warnings as possible, and is still intended to build with no
582 warnings. If you get any undocumented warnings, please report them as
583 bugs---they very often are, or at least indicate possible bitrot.
584
585 The `--with-cflags-optimization=FLAGS' option specifies the optimizations to
586 be used. There is normally no reason to use this flag, as XEmacs will
587 already set the maximum safe optimization flags appropriate for the compiler
588 being invoked.
589
590 The `--with-cflags-debugging=FLAGS' option specifies debugging information to
591 be generated. You should avoid using this flag, as it makes most severe or
592 fatal bugs hard-to-impossible to diagnose and fix. Debugging information
593 does not slow down XEmacs at runtime, and it doesn't make the binary very
594 much bigger.
595
596 The `--with-dynamic' option specifies that configure should try to link
597 XEmacs dynamically rather than statically. `--with-static' specifies the
598 reverse. XEmacs's configure script detects whether dynamic linking can be
599 done on all platforms we know of; these options are normally unnecessary.
600
601 The `--with-modules' option specifies that XEmacs be built with support for
602 runtime loadable modules. NOTE TO OEMS: XEmacs can be distributed configured
603 to support several options based on external APIs (currently LDAP,
604 PostgreSQL, and Canna) as loadable modules. You can distribute an XEmacs
605 binary package with these options enabled without depending on the external
606 package. XEmacs will fail gracefully at runtime, issuing an error message
607 indicating that the required support was not found on the system.
608
609 You can build XEmacs for several different machine types from a single source
610 directory. To do this, you must use a version of `make' that supports the
611 `VPATH' variable, such as GNU `make'. Create separate build directories for
612 the different configuration types, and in each one, run the XEmacs
613 `configure' script. `configure' looks for the Emacs source code in the
614 directory that `configure' is in. The `--srcdir' option may not work
615 correctly (traditionally it was overridden by the directory containing
616 `configure').
617
618 Configuring the Installation Layout
619 -----------------------------------
620
621 The `--prefix=PREFIXDIR' option specifies where the installation process
622 should put XEmacs and its data files. This defaults to `/usr/local'.
623 - XEmacs (and the other utilities users run) go in PREFIXDIR/bin
624 (unless the `--exec-prefix' option says otherwise).
625 - The architecture-independent files go in PREFIXDIR/share/xemacs-VERSION
626 (where VERSION is the version number of XEmacs, like `21.0').
627 - The architecture-dependent files go in
628 PREFIXDIR/lib/xemacs-VERSION/CONFIGURATION-NAME
629 (where CONFIGURATION-NAME is the host type, like mips-dec-ultrix4.2),
630 unless the `--exec-prefix' option says otherwise.
631
632 The `--exec-prefix=EXECDIR' option allows you to specify a separate portion
633 of the directory tree for installing architecture-specific files, like
634 executables and utility programs. If specified,
635 - XEmacs (and the other utilities users run) go in EXECDIR/bin, and
636 - The architecture-dependent files go in
637 EXECDIR/lib/xemacs-VERSION/CONFIGURATION-NAME.
638 EXECDIR/bin should be a directory that is normally in users' PATHs.
639
640 If you specify --prefix (or any of the other installation directory options),
641 they will get compiled into the xemacs executable so it will be able to find
642 its various associated files. However, XEmacs has quite elaborate logic to
643 find out the locations of these directories dynamically. Sometimes, it is
644 desirable *not* to compile these directories into the executable so you can
645 move the XEmacs installation around (as whole) at will. This is true for
646 binary kits, for instance. Therefore, you can specify --without-prefix on
647 the configure command line to prevent the installation prefix to become part
648 of the generated executable; everything else will continue to work as usual.
649
650 Unlike previous versions of XEmacs (21.4 or earlier),
651 architecture-independent files (in particular, the Lisp files and
652 package hierarchies) by default get installed under `/usr/local/share'
653 rather than `/usr/local/lib'. To create a setup as in previous
654 versions, use the `--datadir=/usr/local/lib' option to configure.
655
656 Options for Developers and Special Requirements
657 -----------------------------------------------
658
659 The `--with-rel-alloc' option can be used to either enable or disable
660 use of the relocating allocator. Turning on --with-rel-alloc will allow
661 XEmacs to return unused memory to the operating system, thereby reducing
662 its memory footprint. However, it may make XEmacs runs more slowly,
663 especially if your system's `mmap' implementation is missing or
664 inefficient. Generally, it's best to go with the default configuration
665 for your system. You can tweak this based on how you use XEmacs, and
666 the memory and cpu resources available on your system.
667
668 The `--with-system-malloc' option can be used to either enable or
669 disable use of the system malloc. Generally, it's best to go with the
670 default configuration for your system. Note that on many systems
671 using the system malloc disables the use of the relocating allocator.
672
673 The `--with-debug-malloc' option can be used to link a special
674 debugging version of malloc. Debug Malloc is not included with XEmacs
675 and is intended for use only by the developers. It may be obtained
676 from <URL:http://www.letters.com/dmalloc/>.
677
678 The `--with-debug' and `--with-error-checking' options are primarily
679 useful to the developers. `--with-debug' incorporates code for
680 performing various tests, but does not impose a speed penalty.
681 `--with-error-checking' adds additional tests to many of the commonly
682 used macros, and imposes a speed penalty. Using either or both of these
683 options can make bug reports more useful to the developers.
684
685 The `--verbose' option is useful only to the developers. It displays
686 additional information, useful for debugging `configure'.
687
688 AUXILIARY PATHS
689 ===============
690
691 After configuring, look at `./lisp/paths.el'; if some of those values are not
692 right for your system, set up the file `./lisp/site-init.el' with XEmacs Lisp
693 code to override them; it is not a good idea to edit paths.el itself. YOU
694 MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES, rather than `defvar', as
695 used by `./lisp/paths.el'. For example,
696
697 (setq news-inews-program "/usr/bin/inews")
698
699 is how you would override the default value of the variable
700 news-inews-program (which is "/usr/local/inews").
701
702 Before you override a variable this way, *look at the value* that the
703 variable gets by default! Make sure you know what kind of value the variable
704 should have. If you don't pay attention to what you are doing, you'll make a
705 mistake.
706
707 Things may malfunction if the variable `directory-abbrev-alist' is not set up
708 to translate "temporary" automounter mount points into the canonical form.
709 XEmacs tries to detect how your automounter is configured. If you have an
710 unusual automounter configuration that XEmacs cannot detect, you may need to
711 change the value of `directory-abbrev-alist'.
712
713 SITE-SPECIFIC STARTUP CODE
714 ==========================
715
716 Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs Lisp code
717 you want XEmacs to load before it is dumped out. Use site-load.el for
718 additional libraries if you arrange for their documentation strings to be in
719 the lib-src/DOC file (see src/Makefile.in.in if you wish to figure out how to
720 do that). For all else, use site-init.el.
721
722 Note that, on some systems, the code you place in site-init.el must not use
723 expand-file-name or any other function which may look something up in the
724 system's password and user information database. See `./PROBLEMS' for more
725 details on which systems this affects.
726
727 The `site-*.el' files are nonexistent in the distribution. You do not need
728 to create them if you have nothing to put in them.
729
730 TERMCAP CONFIGURATION
731 =====================
732
733 Refer to the file `./etc/TERMS' for information on fields you may wish to add
734 to various termcap entries. The files `./etc/termcap.ucb' and
735 `./etc/termcap.dat' may already contain appropriately-modified entries.
736
737 ADVANCED MAKE
738 =============
739
740 If the default installation directories are not what you want, you can
741 specify where to install XEmacs's libraries and data files or where XEmacs
742 should search for its lisp files by giving values for `make' variables as
743 part of the command.
744
745 You can change where the build process installs XEmacs and its data files by
746 specifying values for `make' variables as part of the `make' command line.
747 For example, if you type
637 748
638 make install bindir=/usr/local/gnubin 749 make install bindir=/usr/local/gnubin
639 750
640 the `bindir=/usr/local/gnubin' argument indicates that the XEmacs 751 the `bindir=/usr/local/gnubin' argument indicates that the XEmacs executable
641 executable files should go in `/usr/local/gnubin', not 752 files should go in `/usr/local/gnubin', not `/usr/local/bin'.
642 `/usr/local/bin'. 753
643 754 Note that this is not tested or recommended, and specifying installation
644 Here is a complete list of the variables you may want to set. 755 locations here rather than via `configure' may not work as expected. Here
756 is a complete list of the variables you may want to set.
645 757
646 `bindir' indicates where to put executable programs that users can 758 `bindir' indicates where to put executable programs that users can
647 run. This defaults to /usr/local/bin. 759 run. This defaults to /usr/local/bin.
648 760
649 `datadir' indicates where to put the architecture-independent 761 `datadir' indicates where to put the architecture-independent
716 828
717 `exec_prefix' serves the same purpose as `prefix', but instead 829 `exec_prefix' serves the same purpose as `prefix', but instead
718 determines the default values for the architecture-dependent 830 determines the default values for the architecture-dependent
719 path variables - `bindir' and `libdir'. 831 path variables - `bindir' and `libdir'.
720 832
721 The above variables serve analogous purposes in the makefiles for all 833 The above variables serve analogous purposes in the makefiles for all GNU
722 GNU software; here are some variables specific to XEmacs. 834 software; here are some variables specific to XEmacs.
723 835
724 `lispdir' indicates where XEmacs installs and expects its lisp 836 `lispdir' indicates where XEmacs installs and expects its lisp
725 libraries. Its default value, based on `datadir' (see above), 837 libraries. Its default value, based on `datadir' (see above),
726 is `/usr/local/share/xemacs-VERSION/lisp' (where `VERSION' is as 838 is `/usr/local/share/xemacs-VERSION/lisp' (where `VERSION' is as
727 described above). 839 described above).
758 (where VERSION and CONFIGURATION-NAME are as described above). 870 (where VERSION and CONFIGURATION-NAME are as described above).
759 By their very nature, dynamic loadable modules are architecture- 871 By their very nature, dynamic loadable modules are architecture-
760 dependent, and care should be taken not to set this directory 872 dependent, and care should be taken not to set this directory
761 to a system- or architecture-independent directory. 873 to a system- or architecture-independent directory.
762 874
763 Remember that you must specify any variable values you need each time 875 Remember that you must specify any variable values you need each time you run
764 you run `make' in the top directory. If you run `make' once to build 876 `make' in the top directory. If you run `make' once to build xemacs, test
765 xemacs, test it, and then run `make' again to install the files, you 877 it, and then run `make' again to install the files, you must provide the same
766 must provide the same variable settings each time. To make the 878 variable settings each time. To make the settings persist, you can edit them
767 settings persist, you can edit them into the `Makefile' in the top 879 into the `Makefile' in the top directory, but be aware that running the
768 directory, but be aware that running the `configure' program erases 880 `configure' program erases `Makefile' and rebuilds it from `Makefile.in'.
769 `Makefile' and rebuilds it from `Makefile.in'. 881
770 882 The top-level Makefile stores the variable settings it used in the Makefiles
771 The top-level Makefile stores the variable settings it used in the 883 for the subdirectories, so you don't have to specify them when running make
772 Makefiles for the subdirectories, so you don't have to specify them 884 in the subdirectories.
773 when running make in the subdirectories. 885
774 886 Using GNU Make allows for simultaneous builds with and without the --srcdir
775 Using GNU Make allows for simultaneous builds with and without the 887 option.
776 --srcdir option. 888
777 889 MAIL LOCKING
778 STRIPPING BINARIES
779 ==================
780
781 This saves nothing but a small (by modern standards) amount of disk
782 space; the symbol table is not loaded into memory at execution time.
783 If you do encounter a crash or other serious bug, the first thing the
784 developers will do is ask you to build an XEmacs with a full symbol
785 table, anyway. Don't strip the XEmacs binary.
786
787 MAIL-LOCKING POST-INSTALLATION
788 ==============================
789
790 If your system uses dot-locking to interlock access to mailer inbox
791 files, then you might need to make the movemail program setuid or
792 setgid to enable it to write the lock files. We believe this is safe.
793 The setuid/setgid bits need not be set on any other XEmacs-related
794 executables.
795
796 CLEANING UP
797 ==========
798
799 You are done with the hard part! You can remove executables and
800 object files from the build directory by typing `make clean'. To also
801 remove the files that `configure' created (so you can compile XEmacs
802 for a different configuration), type `make distclean'.
803
804 READ THE FAQ
805 ============ 890 ============
806 891
807 Do it! 892 For most platforms, configure or the src/s file have the preferred method for
808 893 locking mail spool files preconfigured. Otherwise you must find out for
809 PROBLEMS 894 yourself. Do not choose a locking protocol "on the objective merits."
810 ======== 895 XEmacs must use the same method as other mail utilities on your system, or
811 896 you WILL lose mail.
812 The most common problem is that you forgot to read and follow the 897
813 directions for installing bootstrap packages in the FAQ. You can not 898 Presently, XEmacs supports lockf, flock, and dot locking. Specify the
814 have a normal XEmacs without downloading some additional packages. 899 locking method via the --with-mail-locking=METHOD option to configure. Valid
815 900 values for METHOD are --with-mail-locking are `lockf', `flock', and `dot'.
816 See the file PROBLEMS in this directory for a list of various problems
817 sometimes encountered, and what to do about them. PROBLEMS is also
818 the place where platform-specific build notes can be found.
819 901
820 APPENDIX: CORRESPONDENCE TO OLD CONFIGURE OPTIONS 902 APPENDIX: CORRESPONDENCE TO OLD CONFIGURE OPTIONS
821 ================================================= 903 =================================================
822 904
823 Here is a full translation of command line arguments. Note that any 905 Here is a full translation of command line arguments. Note that any option
824 option starting with "--with" may also be specified with "--enable". 906 starting with "--with" may also be specified with "--enable". This list may
825 This list may not be up-to-date. 907 not be up-to-date.
826 908
827 Old | New 909 Old | New
828 ------------------------------------------ 910 ------------------------------------------
829 General options: 911 General options:
830 ---------------- 912 ----------------
998 --with-workshop Unchanged 1080 --with-workshop Unchanged
999 --pdump --with-pdump 1081 --pdump --with-pdump
1000 --use-kkcc --with-kkcc 1082 --use-kkcc --with-kkcc
1001 --with-modules Unchanged 1083 --with-modules Unchanged
1002 1084
1003 The output files produced by this new configure should be almost 1085 The output files produced by this new configure should be almost identical to
1004 identical to those produced by the old. This can be tested with the 1086 those produced by the old. This can be tested with the provided regression
1005 provided regression test script. This script runs the two versions of 1087 test script. This script runs the two versions of configure with the
1006 configure with the supplied list of command line arguments and reports 1088 supplied list of command line arguments and reports any differences. Please
1007 any differences. Please add your favorite configuration command lines 1089 add your favorite configuration command lines to the list before running the
1008 to the list before running the test. The script is run as: 1090 test. The script is run as:
1009 1091
1010 $ tests/autoconf/regressiontest.pl /absolute/path/to/2.13/configure \ 1092 $ tests/autoconf/regressiontest.pl /absolute/path/to/2.13/configure \
1011 /absolute/path/to/2.59/configure >diffs.txt 1093 /absolute/path/to/2.59/configure >diffs.txt
1012 1094
1013 The only differences should be: 1095 The only differences should be:
1014 - those related to changes in the command line arguments 1096 - those related to changes in the command line arguments
1015 - the change of SYS_SIGLIST_DECLARED to HAVE_DECL_SYS_SIGLIST (because the old 1097 - the change of SYS_SIGLIST_DECLARED to HAVE_DECL_SYS_SIGLIST (because the old
1016 form has been removed), and 1098 form has been removed), and
1017 - The removal of trailing comments in src/config.h. 1099 - The removal of trailing comments in src/config.h.
1018 1100
1101 RANDOM NOTES
1102 ============
1103
1104 Definitions
1105 -----------
1106
1107 A note on terminology: unfortunately the terms "library" and "package" are
1108 heavily overloaded. In the following, "library" refers to an external body
1109 of executable code which may be linked with XEmacs at build time to provide
1110 support for system features, such as images, audio, stream compression,
1111 databases, and input methods. A "Lisp library" is a file of Lisp code which
1112 may be loaded into XEmacs at run-time to provide editor features. A
1113 "package" is a specially prepared Lisp library or set of Lisp libraries,
1114 providing for easy installation, upgrade, and removal of applications written
1115 in Lisp.
1116
1117 Package System
1118 --------------
1119
1120 The FAQ sections 1.7 and 2.1 contain information vital to have a fully
1121 working XEmacs. It includes a description of available packages, and how to
1122 bootstrap XEmacs from a minimal or a complete set of packages. This
1123 information was not included in this file only because it is too large for
1124 this terse INSTALL. The FAQ is available in Texinfo format in
1125 man/xemacs-faq.texi, as an Info file once you build XEmacs, and online at
1126 http://www.xemacs.org/Documentation/21.5/html/xemacs-faq_1.html.
1127
1128 Other
1129 -----
1130
1131 On some systems, X11, Motif and CDE are optional additions. On MacOS/X
1132 systems prior to 10.2, you may download X11R6 for Mac OS X from
1133 http://www.apple.com/macosx/x11/download/. In later releases X11 is
1134 available as an optional package on the installation CDs. In either case you
1135 need both the runtime libraries and the SDK (in a sidebar of that page at the
1136 time of writing). There is also a 3rd-party implementation of X11R6 for the
1137 Mac at http://www.xdarwin.org/. On Solaris, the SUNWaudmo package enables
1138 native sound support.
1139
1140 You can get (most of) them from the XEmacs FTP archive at
1141 <ftp://ftp.xemacs.org/pub/xemacs/aux>. Information about what
1142 each library does is available in the file
1143 <ftp://ftp.xemacs.org/pub/xemacs/aux/00README.txt>.
1144
1145 (This note is probably obsolete.) Dynamic linking has pros and cons.
1146 Dynamically linking 3rd party libraries to XEmacs decreases the size of the
1147 binary, and means you don't need to rebuild XEmacs to take advantage of
1148 improvements in the libraries. On the other hand, XEmacs can fail subtly if
1149 the semantics of a library changes, other users may not be able to use your
1150 "private" copies of the libraries, and you may have to relink XEmacs, or even
1151 omit the feature, if the ABI changes when the libraries are upgraded.
1152
1153 Use the `--with-site-includes' and `--with-site-libraries' options when
1154 building XEmacs to allow configure to find the external software packages.
1155 For your convenience these can be set together by using the
1156 `--with-site-prefixes' option. This will set these variables as needed
1157 assuming your libraries are organised as a typical /usr tree.
1158
1159 If you link dynamically with external libraries, usually denoted by ".so"
1160 (Unix), ".dll" (Windows), or ".dylib" (MacOS) file extensions, on some
1161 systems you may also need to add the library directories to the
1162 `--with-site-runtime-libraries' option. It is typically necessary only if
1163 you link with dynamic libraries that are installed in non-standard
1164 directories, or if you expect some of the libraries used to build XEmacs to
1165 be in a different directory at run time than at build time.
1166
1167 NOTE: This option has unusual semantics. ONLY libraries found in the
1168 directories specified in this option will be used at runtime. This means you
1169 must specify ALL directories you want searched at runtime in this option
1170 (perhaps excluding a very small number of standard system library paths).
1171
1172 Directories specified with `--with-site-libraries' are NOT automatically
1173 added. The rationale is that most users will not need this option, and this
1174 allows the builder to specify exactly the needed directories. Specifying
1175 unnecessary directories leads to obscure problems (typically startup delays)
1176 if those directories are mounted over a network, and the automounter
1177 configuration changes. Not all systems need this option; it's best to avoid
1178 using it if you can.
1179
1180 If you haven't built XEmacs 21.5 recently, the change from the configure
1181 script based on Autoconf 2.13 can be a shock. Appendix: Correspondence to
1182 Old Configure Options (at the end of this document) contains a list of old
1183 options and their new equivalents.
1184