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