26763: fix problem on failed cd -s to relative path
[zsh.git] / INSTALL
blob55c51aa3b4f2498bcff27b6ceffc2c63a918da2d
1                         ++++++++++++++
2                         INSTALLING ZSH
3                         ++++++++++++++
5 This file is divided into two parts:  making and installing the shell, a
6 note on the script run to set up the environment for new users, and
7 a description of various additional configuration options.  You should
8 have a look at the items in the second and third parts before following the
9 instructions in the first.
12 =====================
13 MAKING AND INSTALLING
14 =====================
16 Check MACHINES File
17 -------------------
19 Check the file MACHINES in the top directory to see the architectures
20 that zsh is known to compile on, as well as any special instructions
21 for your particular architecture.  Most architectures will not require any
22 special instructions.
24 Pre-configuration
25 -----------------
27 If you are using a normal source release, skip this section.
29 If the `configure' script does not already exist -- e.g., if you've got
30 a snapshot of the bare sources just checked out from a CVS repository
31 -- some things need to be built before the configuration can proceed.
32 Run the script `./Util/preconfig' to do this.
34 Configuring Zsh
35 ---------------
37 To configure zsh, from the top level directory, do the command:
38     ./configure
40 Configure accepts several options (explained below).  To display
41 currently available options, do the command:
42     ./configure --help
44 Many of the interesting configuration options can be added after running
45 configure by editing the user configuration section of config.h and the
46 top level Makefile.  However, see the end of this file for a list of
47 features configurable on the command line.
49 Dynamic loading
50 ---------------
52 Zsh has support for dynamically loadable modules.  This is now enabled
53 by default; to disable it, run configure with the --disable-dynamic option.
54 Note that dynamic loading does not work on all systems.  On these systems
55 this option will have no effect.  When dynamic loading is enabled, major
56 parts of zsh (including the Zsh Line Editor) are compiled into modules and
57 not included into the main zsh binary.  Zsh autoloads these modules when
58 they are required.  This means that you have to execute make
59 install.modules before you try the newly compiled zsh executable, and hence
60 also the install paths must be correct.  The installation path for modules
61 is EPREFIX/lib/zsh/<zsh-version-number>, where EPREFIX defaults to PREFIX
62 unless given explicitly, and PREFIX defaults to /usr/local.  See the end of
63 this file for options to configure to change these.
65 Adding and removing modules
66 ---------------------------
68 The zsh distribution contains several modules, in the Src/Builtins,
69 Src/Modules and Src/Zle directories.  If you have any additional zsh
70 modules that you wish to compile for this version of zsh, create another
71 subdirectory of the Src directory and put them there.  You can create
72 as many extra subdirectories as you need, but currently configure will only
73 search in immediate subdirectories of Src.  The subdirectories must be
74 actual directories; symbolic links will not work.  You will then need to
75 rerun configure; the easiest way is to run `config.status --recheck' from
76 the top-level build directory which retains the existing configuration as
77 much as possible.
79 The key to the module system is the file config.modules, created in the
80 configuration process.  In the normal case that dynamic loading is
81 available, all modules relevant to your configuration will be compiled and
82 installed as separate files, so unless you want the modules to be loaded by
83 default you don't need to do anything.  For a non-dynamic zsh, the default
84 is to compile the complete, compctl, zle, computil, complist, sched,
85 parameter, zleparameter and rlimits modules into the shell, and you will
86 need to edit config.modules to make any other modules available.
88 If you wish to change the configuration, here is how config.modules works.
89 Each module has a line in the file.  Be careful to retain the (strict)
90 format for lines in the file:
91 link - `dynamic', if the module is to be dynamically linked -- meaningless
92            if this is not available on your system.
93        `static' if the module is to be linked directly into the executable.
94        `no' if the module is not to be linked at all.  In this case it will
95            not even be compiled.
96 load - `yes' if the module is to be visible to the user.  This will make
97            builtins, parameters etc. visible to the user without any need
98            to use the zmodload builtin.
99        `no' if an explicit zmodload command is to be required to load the
100            utilities in the module.  Note that this applies both to
101            statically and dynamically linked modules.
102 auto - `yes' if the entry is to be regenerated whenever configure is run.
103        `no' if you wish to retain your hand-edited version.
104 Do not edit the entry for the pseudo-module zsh/main (apart from the
105 `functions=' part) as this is the main shell.  After you have edited this
106 file, run `make prep' in the Src subdirectory.
108 Note that the modules depending on zle or complete (e.g.: complist and
109 deltochar) cannot be loaded dynamically on systems which do not allow symbols
110 in one dynamically loaded library to be visible from another; this is true,
111 for example, of version 4 of SunOS.  The most convenient workaround is to
112 compile zle and complete into the base executable by setting their `link'
113 entries in config.modules to `static' as described above.
115 Compiler Options or Using a Different Compiler
116 ----------------------------------------------
118 By default, configure will use the "gcc" compiler if found.  You can use a
119 different compiler, or add unusual options for compiling or linking that
120 the "configure" script does not know about, by either editing the user
121 configuration section of the top level Makefile (after running configure)
122 or giving "configure" initial values for these variables by setting them
123 in the environment.  Using a Bourne-compatible shell (such as sh,ksh,zsh),
124 you can do that on the command line like this:
125     CC=c89 ./configure --enable-cflags=-O2 --enable-libs=-lposix
126 This is almost equivalent to
127     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
128 but has the advantage that the CFLAGS and LIBS variables are remembered if
129 the configuration is recreated by means of `config.status --recheck' (this
130 happens automatically if certain configuration files change).  You can
131 set the make variables CFLAGS, CPPFLAGS, LDFLAGS and LIBS in this way,
132 however CC must appear as shown.  If you are configuring from a csh-derived
133 shell, you may need to use the "env" program:
134     env CC=c89 ./configure --enable-cflags=-O2 --enable-libs=-lposix.
136 You can override the variables directly when running `make':
137     make CFLAGS=-g
138 However, these will not be passed down via `config.status --recheck'.
140 Check Generated Files
141 ---------------------
143 Configure will probe your system and create a "config.h" header file.
144 You should  check the user configuration section at the beginning of
145 this include file.  You should also examine the values (determined by
146 configure) of HOSTTYPE, OSTYPE, MACHTYPE, and VENDOR to make sure they
147 are correct.  The value of these #defines's is used only to initialize
148 the corresponding default shell parameters.  Since these shell parameters
149 are only for informational purposes, you can change them to whatever
150 you feel is appropriate.
152 Also, configure will create a Makefile in the top level directory as well
153 as in the various subdirectories.  You should check the user configuration
154 section of the top level Makefile.
156 Compiling Zsh
157 -------------
159 After configuring, to build zsh, execute the command:
160     make
162 It's then a good idea to check that your build is working properly:
163     make check
165 If you have trouble with a particular test, you can run it separately:
166     make TESTNUM=C02 check
168 The TESTNUM value can be a single test number, as above, or a letter to
169 run an entire category of tests:
170     make TESTNUM=Y check
172 See Test/README for a list of test categories.
174 Installing Zsh
175 --------------
177 If no make/compilation errors occur, then execute the command
178     make install
179 to install all the necessary files except for the info files.
181 Alternatively, you can install the various parts in separate stages.  To
182 install the zsh binary, execute the command:
183     make install.bin
184 Any previous copy of zsh will be renamed "zsh.old"
186 To install the dynamically-loadable modules, execute the command:
187     make install.modules
188 Note that this is required for the shell to operate properly if dynamic
189 loading is enabled.
191 To install the zsh man page, execute the command:
192     make install.man
194 To install all the shell functions which come with the distribution,
195 execute the command:
196     make install.fns
198 To install the zsh info files (this must be done separately), execute the
199 command:
200     make install.info
201 If the programme install-info is available, "make install.info" will
202 insert an entry in the file "dir" in the same directory as the info
203 files.  Otherwise you will have to edit the topmost node of the info
204 tree "dir" manually in order to have the zsh info files available to
205 your info reader.
207 Building Zsh On Additional Architectures
208 ----------------------------------------
210 To build zsh on additional architectures, you can do a "make distclean".
211 This should restore the zsh source distribution back to its original
212 state.  You can then configure zsh as above on other architectures in
213 which you wish to build zsh.  Or alternatively, you can use a different
214 build directory for each architecture.
216 Using A Different Build Directory
217 ---------------------------------
219 You can compile the zsh in a different directory from the one containing
220 the source code.  Doing so allows you to compile it on more than one
221 architecture at the same time.  To do this, you must use a version of
222 "make" that supports the "VPATH" variable, such as GNU "make".  "cd" to
223 the directory where you want the object files and executables to go and
224 run the "configure" script.  "configure" automatically checks for the
225 source code in the directory that "configure" is in.  For example,
227     cd /usr/local/SunOS/zsh
228     /usr/local/src/zsh-3.0/configure
229     make
231 Note that this is mutually exclusive with using the source directories
232 as make can become confused by build files created in the source directories.
235 ================================
236 AUTOMATIC NEW USER CONFIGURATION
237 ================================
239 In the default configuration, the shell comes with a system based around
240 the zsh/newuser add-on module that detects when a user first starts the
241 shell interactively and has no initialisation files (.zshenv, .zshrc,
242 .zprofile or .zlogin).  The shell then executes code in the file
243 scripts/newuser in the shared library area (by default
244 /usr/local/share/zsh/<VERSION>/scripts/newuser).  This feature can be
245 turned off simply by removing or renaming this script.  This is the
246 recommended way of disabling the features as the function
247 zsh-newuser-install (see below) remains available for users who
248 wish to run it.
250 The module can be removed entirely from the configured shell by editing the
251 line starting "name=zsh/newuser" in the config.modules file, which is
252 generated in the top level distribution directory during configuration:
253 change the line to include "link=no auto=no".
255 The supplied script executes the function supplied as
256 Functions/Newuser/zsh-newuser-install, which is installed to the user's
257 function path when the module is installed.  The function can be run by
258 hand after being marked for autoload.  This is documented in the zshcontrib
259 manual or in the info node `User Configuration Functions'.
261 zsh-newuser-install is currently under development.  It is probably
262 preferable for administrators who wish to customize the system their own
263 way to edit the newuser script in scripts/newuser; for example, this script
264 could copy skeleton files into place safe in the knowledge that the files
265 don't yet exist.  Also, as there is currently no internationalization
266 support, administrators of sites with users who mostly do not speak English
267 may wish not to install the zsh/newuser module.
270 =====================
271 CONFIGURATION OPTIONS
272 =====================
274 Modified versions of zsh
275 ------------------------
277 If you are making local modifications to zsh, you are strongly
278 advised to configure with the option
280   --enable-local-patchlevel="<my-mod-string>"
282 so that the variable $ZSH_PATCHLEVEL indicates this is not a standard
283 version of the shell.  The argument is arbitrary, but should indicate
284 the entity that is customizing the shell, for example the OS vendor
285 or distributor.
287 Multibyte Character Support
288 ---------------------------
290 Support for multibyte character sets that extend ASCII, such as UTF-8, is
291 now reasonably close to complete, except that combining characters are not
292 handled properly (some assistance with this problem would be appreciated).
293 The configuration script should turn on multibyte support on all systems
294 where it can be compiled successfully.
296 The support can be explicitly enabled or disabled with --enable-multibyte or
297 --disable-multibyte.  The developers are not aware of any need to use
298 --disable-multibyte and this should be reported as a bug.  Currently
299 multibyte mode is believed to work on at least the following:
301   - All(?) current GNU/Linux distributions
302   - OS X 10.4.3 (problems have been reported with multibyte characters
303     in HFS file names)
304   - NetBSD 2.0.2
305   - Solaris 8+ (inputting multibyte characters from the keyboard doesn't
306     work in some installations).
307   - Cygwin (though use of multibyte characters is somewhat non-standard).
309 The corresponding shell option MULTIBYTE is now on by default in all
310 emulation modes when multibyte support is enabled.  Turning it off is not
311 recommended unless there is a particular need to examine single bytes
312 regardless of the locale.  As the line editor bases its behaviour on the
313 locale regardless of the option (in order to correspond to the displayed
314 character set), the option should be left on during the execution of
315 user-defined editor and completion widgets so that the behaviour
316 corresponds to that of builtin widgets.
318 See chapter 5 in the FAQ for some notes on multibyte input.
320 Terminal Handling
321 -----------------
323 Historically, several different libraries have provided the features the
324 shell needs to provide output to the terminal.  The most common have been
325 termcap, which is now largely outmoded, and curses, which supersedes
326 termcap and typically contains the same features as well as others.
327 configure will search for an appropriate library; the default search order
328 is "ncursesw tinfo termcap ncurses curses" except on HP-UX and Solaris
329 where it is "Hcurses ncursesw ncurses curses termcap".  Note that even
330 though termcap is searched before traditional forms of curses zsh tries to
331 make features from curses available and if the curses library contains both
332 curses and termcap features, as is normal, the curses variant is used.
333 ncurses is a newer version of curses and tinfo is related to it.
335 The library ncursesw is a variant of ncurses that supports wide characters.
336 zsh attempts to use this to provide functions needed by the zsh/curses
337 module; depending on the configuration, the main shell may not require the
338 additional functions.  As the integration of wide character support into
339 ncurses is continuing, it is possible that on some systems attempting to
340 use ncursesw may cause problems during building.  If so, please report this
341 to the developers at zsh-workers@sunsite.dk and attempt to recompile with
342 --with-term-lib="tinfo termcap ncurses curses" (see below).
344 Note that use of ncurses requires the header ncurses.h, so this
345 needs to be in the include path.  configure will not search for
346 ncurses or ncursesw unless this is the case.  If you have installed
347 ncurses.h in a non-standard place you may need to pass
348 CPPFLAGS=-I/usr/local/include (or wherever the header is found) to
349 configure.  Similarly, you may need to pass LDFLAGS=-L/usr/local/lib
350 (or wherever) in order to find the library.
352 You may also need to add headers if you need to include the file term.h
353 from an installation of an ncurses variant instead of from the system
354 directories.  For example, CPPFLAGS=-I/usr/local/include/ncursesw will
355 force configure to search for term.h in the given directory.
357 On some systems a suitable development package with a name such as
358 curses-devel or ncurses-devel needs to be installed before zsh can
359 be compiled.  This is likely to be contained on any installation media,
360 or available for download.  It is highly unlikely that you will need to
361 compile this from scratch.
363 You can tell configure which libraries to search by passing an
364 argument via --with-term-lib.  This takes a space-separated list
365 of libraries to try as its argument, so the default is equivalent to
366 --with-term-lib="ncursesw tinfo termcap ncurses curses".  It replaces the
367 old option --with-curses-terminfo, which altered the search order but
368 didn't allow an explicit search list to be passed.
370 Memory Routines
371 ---------------
373 Included in this release are alternate malloc and associated functions
374 which reduce memory usage on some systems. To use these, add the option
375   --enable-zsh-mem
376 when invoking "configure".
378 You should check MACHINES to see if there are specific recommendations
379 about using the zsh malloc routines on your particular architecture.
381 Debugging Routines
382 ------------------
384 You can turn on various debugging options when invoking "configure".
386 To turn on some extra checking in the memory management routines, you
387 can use the following options when invoking "configure".
388  --enable-zsh-mem-warning      # turn on warnings of memory allocation errors
389  --enable-zsh-secure-free      # turn on memory checking of free()
391 If you are using zsh's memory allocation routines (--enable-zsh-mem), you
392 can turn on debugging of this code.  This enables the builtin "mem".
393  --enable-zsh-mem-debug        # debug zsh's memory allocators
395 You can turn on some debugging information of zsh's internal hash tables.
396 This enables the builtin "hashinfo".
397  --enable-zsh-hash-debug       # turn on debugging of internal hash tables
399 To add some sanity checks and generate debugging information for debuggers
400 you can use the following option.  This also disables optimization.
401  --enable-zsh-debug            # use it if you want to debug zsh
402 In this mode, zsh may output extra information about internal errors
403 to stderr.  The shell variable ZSH_DEBUG_LOG may be set to another file
404 to which errors will be appended.
406 Startup/shutdown files
407 ----------------------
409 Zsh has several startup/shutdown files which are in /etc by default.  This
410 can be overriden using one of the options below when invoking "configure".
412  --enable-etcdir=directory    # default directory for global zsh scripts
413  --enable-zshenv=pathname     # the full pathname of the global zshenv script
414  --enable-zshrc=pathname      # the full pathname of the global zshrc script
415  --enable-zlogin=pathname     # the full pathname of the global zlogin script
416  --enable-zprofile=pathname   # the full pathname of the global zprofile script
417  --enable-zlogout=pathname    # the full pathname of the global zlogout script
419 Any startup/shutdown script can be disabled by giving the
420 --disable-SCRIPTNAME option to "configure".  The --disable-etcdir option
421 disables all startup/shutdown files which are not explicitly enabled.
423 The precompiled documentation comes with startup files listed
424 as being in the /etc directory.  If yodl is available, running
425 "touch version.yo" and "make" in the Doc directory should produce
426 correctly substituted documentation.  (This has to be run by hand
427 to avoid introducing a dependency on yodl on systems where the precompiled
428 documentation is sufficient.)
430 Shell functions
431 ---------------
433 By default, the shell functions which are installed with `make install' or
434 `make install.fns' go into the directory ${datadir}/zsh/functions, which
435 unless you have specified --datadir is the same as
436 ${prefix}/share/zsh/$ZSH_VERSION/functions ($prefix itself defaults to
437 /usr/local, as described below).  This directory will also be compiled into
438 the shell as the default directory for the parameters $fpath and
439 $FPATH. You can override it with --enable-fndir=directory; --disable-fndir
440 or --enable-fndir=no will turn off both installation of functions and the
441 setting of a default value for $fpath/$FPATH.  Note the presence of
442 $ZSH_VERSION (e.g. `3.1.7') to avoid clashes between versions of zsh.
443 If you only run one version of zsh at once, installing into a common
444 directory such as /usr/local/share/zsh/functions is fine --- note, however,
445 that uninstallation is more likely to create problems in this case.
447 The functions to be installed are controlled by config.modules.  These
448 appear at the end of the line after `functions=': note that the rest of the
449 line is taken verbatim as shell command line text, i.e. no quoting is used
450 around the value as a whole and unquoted wildcards will be expanded.  To
451 prevent any functions from being installed, either remove the `functions='
452 entry or delete the rest of the line after it.
454 Functions not specific to a particular module are listed on the zsh/main
455 line.  None of these are crucial to shell operation, so you may choose not
456 to install them.  For other modules, the functions will be installed if and
457 only if the module itself is installed.  This will usually be what you
458 want; in particular, the zsh/complete and zsh/zftp modules are of much less
459 use without the associated functions.  The functions listed with zsh/zle
460 are not used by the editor unless you explicitly load them, however.
462 You can also use the configure option --enable-function-subdirs to allow
463 shell functions to be installed into subdirectories of the function
464 directory, i.e. `Base/*' files will be installed into `FNDIR/Base, and so
465 on. This also initialises $fpath/$FPATH appropriately.
467 The option --enable-site-fndir controls whether to create and initialise
468 $fpath to include a directory for site-specific functions.  By default this
469 is created in the location ${datadir}/zsh/site-functions, i.e. parallel to
470 the version-specific functions directory, and inserted at the start of the
471 $fpath array on shell startup.  This directory will not be affected by
472 `make uninstall' or `make uninstall.fns', although the version-specific
473 directory and its contents will be deleted.
475 Function depth
476 --------------
478 Shell functions may be called recursively.  In order to detect infinite
479 recursion the shell has a limit on the depth to which functions may be
480 called:  note that this is a single limit for all functions, not a limit
481 for each function called recursively.  The default for the limit is 4096.
482 The limit may be altered to the value MAX by passing the option
483 --enable-max-function-depth=MAX to configure.  Alternatively, the limit may
484 be disabled with --disable-max-function-depth.  However, this is not
485 recommended as it is likely to cause the shell to crash on an infinite
486 recursion.
488 Support for large files and integers
489 ------------------------------------
491 Some 32-bit systems allow special compilation modes to get around the 2GB
492 file size barrier.  This is enabled by default; use --disable-largefile
493 to turn it off.  Not all systems recognize the test used by zsh (via the
494 getconf command), so flags may need to be set by hand.  On HP-UX 10.20,
495 zsh has been successfully compiled with large file support by configuring
496 with
497   CC="cc -Ae" CPPFLAGS="-D_LARGEFILE_SOURCE -D_FILE64" configure \
498   --enable-largefile ...
500 Furthermore, use of --enable-largefile will also enable 64-bit arithmetic
501 for shell parameters, and anywhere they are used such as in mathematical
502 formulae.  This depends only on the shell finding a suitable 64-bit integer
503 type; it does not require that support for large files is actually
504 enabled.  Hence --enable-largefile is useful on many 32-bit systems
505 with a suitable compiler such as gcc.
507 Also note that if `configure' finds out that either of the types off_t or
508 ino_t are 64-bit quantities, but that long integers are only 32 bits, all
509 the above will be enabled automatically.  This is necessary to ensure
510 correct handling of these types.
512 None of this is relevant for 64-bit systems; zsh should compile and run
513 without problems if (sizeof(long) == 8).
515 Searching for additional features
516 ---------------------------------
518 Various additional features are turned off by default to avoid
519 compatibility problems.
521 --enable-pcre:
523 Zsh has a module which allows the pcre regular expression library to be
524 used via shell builtins.  Compiling this library into the shell with
525 dynamic loading (the default where available) produces a dependency on the
526 library libpcre.so.  This is a problem on systems where zsh needs to be
527 available at boot before the directory containing libpcre.so (for example
528 /usr/lib or /usr/local/lib) is mounted.  For this reason, pcre support will
529 only be searched for if the option --enable-pcre is passed to configure.
531 (Future versions of the shell may have a better fix for this problem.)
533 --enable-cap:
535 This searches for POSIX capabilities; if found, the `cap' library
536 is available and the shell will use these to determine if the
537 shell is running in some privileged mode.  This is turned off by
538 default as on some systems non-standard headers (in particular AIX) are
539 required.  A direct fix for that problem would be appreciated.
541 A test for the function tcsetpgrp is turned on by default.  The test
542 needs to run the function to determine if the implementation is
543 usable. However, this can cause problems when configure is run without
544 a controlling terminal (eg. from cron).  To avoid this, use
545 --with-tcsetpgrp or --without-tcsetpgrp to tell configure whether the
546 function should be used.
548 Options For Configure
549 ---------------------
551 The `configure' program accepts many options, not all of which are useful
552 or relevant to zsh.  To get the complete list of configure options, run
553 "./configure --help".  The following list should contain most of the
554 options of interest for configuring zsh.
556 Configuration:
557   --cache-file=FILE     # cache test results in FILE
558   --help                # print a help message
559   --version             # print the version of autoconf that create configure
560   --quiet, --silent     # do not print `checking...' messages
561   --no-create           # do not create output files
563 Directories:
564   --prefix=PREFIX       # install host independent files in PREFIX [/usr/local]
565   --exec-prefix=EPREFIX # install host dependent files in EPREFIX [PREFIX]
566   --bindir=DIR          # install user executables in DIR [EPREFIX/bin]
567   --infodir=DIR         # install info documentation in DIR [PREFIX/info]
568   --mandir=DIR          # install man documentation in DIR [PREFIX/man]
569   --srcdir=DIR          # find the sources in DIR [configure dir or ..]
570   --datadir=DATADIR     # install shared files in DATADIR [PREFIX/share]
572 Features:
573   --enable-FEATURE      # enable use of this feature
574   --disable-FEATURE     # disable use of this feature
576 Here is the list of FEATURES currently supported.  Defaults are shown in
577 brackets, though a value shown as `yes' (equivalent to --enable-FEATURE)
578 will be ignored if your OS doesn't support that feature.
580 zsh-debug            # compile debugging features into zsh [no]
581 zsh-mem              # use zsh's memory allocators [no]
582 zsh-mem-debug        # debug zsh's memory allocators [no]
583 zsh-mem-warning      # turn on warnings of memory allocation errors [no]
584 zsh-secure-free      # turn on memory checking of free() [no]
585 zsh-hash-debug       # turn on debugging of internal hash tables [no]
586 etcdir=directory     # default directory for global zsh scripts [/etc]
587 zshenv=pathname      # the path to the global zshenv script [/etc/zshenv]
588 zshrc=pathname       # the path to the global zshrc script [/etc/zshrc]
589 zlogin=pathname      # the path to the global zlogin script [/etc/zlogin]
590 zprofile=pathname    # the path to the global zprofile script [/etc/zprofile]
591 zlogout=pathname     # the path to the global zlogout script [/etc/zlogout]
592 fndir=directory      # the directory where shell functions will go
593                      # [DATADIR/zsh/VERSION/functions]
594 site-fndir=directory # the directory where site-specific functions can go
595                      # [DATADIR/zsh/site-functions]
596 function-subdirs     # if functions will be installed into subdirectories [no]
597 dynamic              # allow dynamically loaded binary modules [yes]
598 largefile            # allow configure check for large files [yes]
599 locale               # allow use of locale library [yes]