diff options
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 242 |
1 files changed, 242 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL new file mode 100644 index 000000000..4019a16b8 --- /dev/null +++ b/INSTALL @@ -0,0 +1,242 @@ +-------------- +INSTALLING ZSH +-------------- + +Check MACHINES File +------------------- + +Check the file MACHINES in the subdirectory Etc to see the architectures +that zsh is known to compile on, as well as any special instructions +for your particular architecture. Most architectures will not require any +special instructions. + +Configuring Zsh +--------------- + +To configure zsh, from the top level directory, do the command: + ./configure + +Configure accepts several options (explained below). To display +currently available options, do the command: + ./configure --help + +Most of the interesting configuration options can be added after running +configure by editing the user configuration section of config.h and the +top level Makefile. + +Dynamic loading +--------------- + +Zsh-3.1 has support for dynamically loadable modules. To enable this run +configure with the --enable-dynamic option. Note that dynamic loading +does not work on all systems. On these systems this option will have no +effect, so it is always safe to use --enable-dynamic. When dynamic +loading is enabled, major parts of zsh (including the Zsh Line Editor) are +compiled into modules and not included into the main zsh binary. Zsh +autoloads these modules when they are required. This means that you have +to execute make install.modules before you try the newly compiled zsh +executable. + +Adding more modules +------------------- + +The zsh distribution contains several modules, in the Src/Builtins, +Src/Modules and Src/Zle directories. If you have any additional zsh +modules that you wish to compile for this version of zsh, create another +subdirectory of the Src directory and put them there. You can create +as many extra subdirectory hierarchies as you need. The subdirectories +must be actual directories; symbolic links will not work. + +If you wish to add or remove modules or module directories after you +have already run make, then after adding or removing the modules run: + make prep + +Controlling what is compiled into the main zsh binary +----------------------------------------------------- + +By default the comp1, compctl, zle, sched and rlimits modules are compiled +into non-dynamic zsh and no modules are compiled into the main binary if +dynamic loading is available. This can be overridden by creating the +Src/modules-bltin file with the list of modules which are to be compiled +into the main binary. See the zshmodules manual page for the list of +available modules. + +Compiler Options or Using a Different Compiler +---------------------------------------------- + +By default, configure will use the "gcc" compiler if found. You can use a +different compiler, or add unusual options for compiling or linking that +the "configure" script does not know about, by either editing the user +configuration section of the top level Makefile (after running configure) +or giving "configure" initial values for these variables by setting them +in the environment. Using a Bourne-compatible shell (such as sh,ksh,zsh), + +you can do that on the command line like this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the "env" program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Check Generated Files +--------------------- + +Configure will probe your system and create a "config.h" header file. +You should check the user configuration section at the beginning of +this include file. You should also examine the values (determined by +configure) of HOSTTYPE, OSTYPE, MACHTYPE, and VENDOR to make sure they +are correct. The value of these #defines's is used only to initialize +the corresponding default shell parameters. Since these shell parameters +are only for informational purposes, you can change them to whatever +you feel is appropriate. + +Also configure will create a Makefile in the top level directory as well +as in the various subdirectories. You should check the user configuration +section of the top level Makefile. + +Compiling Zsh +------------- + +After configuring, to build zsh, do the command: + make + +Installing Zsh +-------------- + +If no make/compilation errors occur, then to install the zsh binary, do +the command: + make install.bin + +Any previous copy of zsh will be renamed "zsh.old" + +To install the dynamically-loadable modules, do the command: + make install.modules + +To install the zsh man page, do the command: + make install.man + +To install the zsh info files, do the command: + make install.info + +Or alternatively, you can install all the above with the command: + make install + +"make install.info" will only move the info files into the info directory. +You will have to edit the topmost node of the info tree "dir" manually +in order to have the zsh info files available to your info reader. + +Building Zsh On Additional Architectures +---------------------------------------- + +To build zsh on additional architectures, you can do a "make distclean". +This should restore the zsh source distribution back to its original +state. You can then configure zsh as above on other architectures in +which you wish to build zsh. Or alternatively, you can use a different +build directory for each architecture. + +Using A Different Build Directory +--------------------------------- + +You can compile the zsh in a different directory from the one containing +the source code. Doing so allows you to compile it on more than one +architecture at the same time. To do this, you must use a version of +"make" that supports the "VPATH" variable, such as GNU "make". "cd" to +the directory where you want the object files and executables to go and +run the "configure" script. "configure" automatically checks for the +source code in the directory that "configure" is in. For example, + + cd /usr/local/SunOS/zsh + /usr/local/src/zsh-3.0/configure + make + +Memory Routines +--------------- + +Included in this release are alternate malloc and associated functions +which reduce memory usage on some systems. To use these, add the option + --enable-zsh-mem +when invoking "configure". + +You should check Etc/MACHINES to see if there are specific recommendations +about using the zsh malloc routines on your particular architecture. + +Debugging Routines +------------------ + +You can turn on various debugging options when invoking "configure". + +To turn on some extra checking in the memory management routines, you +can use the following options when invoking "configure". + --enable-zsh-mem-warning # turn on warnings of memory allocation errors + --enable-zsh-secure-free # turn on memory checking of free() + +If you are using zsh's memory allocation routines (--enable-zsh-mem), you +can turn on debugging of this code. This enables the builtin "mem". + --enable-zsh-mem-debug # debug zsh's memory allocators + +You can turn on some debugging information of zsh's internal hash tables. +This enables the builtin "hashinfo". + --enable-zsh-hash-debug # turn on debugging of internal hash tables + +To add some sanity checks and generate debugging information for debuggers +you can use the following option. This also disables optimization. + --enable-zsh-debug # use it if you want to debug zsh + +Startup/shutdown files +---------------------- + +Zsh has several startup/shutdown files which are in /etc by default. This +can be overriden using one of the options below when invoking "configure". + + --enable-etcdir=directory # default directory for global zsh scripts + --enable-zshenv=pathname # the full pathname of the global zshenv script + --enable-zshrc=pathname # the full pathname of the global zshrc script + --enable-zlogin=pathname # the full pathname of the global zlogin script + --enable-zprofile=pathname # the full pathname of the global zprofile script + --enable-zlogout=pathname # the full pathname of the global zlogout script + +Any startup/shutdown script can be disabled by giving the +--disable-scriptname option to "configure". The --disable-etcdir option +disables all startup/shutdown files which are not explicitely enabled. + + +Options For Configure +--------------------- + +The `configure' program accepts many options, not all of which are useful +or relevant to zsh. To get the complete list of configure options, run +"./configure --help". The following list should contain most of the +options of interest for configuring zsh. + +Configuration: + --cache-file=FILE # cache test results in FILE + --help # print a help message + --version # print the version of autoconf that create configure + --quiet, --silent # do not print `checking...' messages + --no-create # do not create output files + +Directories: + --prefix=PREFIX # install host independent files in PREFIX [/usr/local] + --exec-prefix=EPREFIX # install host dependent files in EPREFIX [same as prefix] + --bindir=DIR # install user executables in DIR [EPREFIX/bin] + --infodir=DIR # install info documentation in DIR [PREFIX/info] + --mandir=DIR # install man documentation in DIR [PREFIX/man] + --srcdir=DIR # find the sources in DIR [configure dir or ..] + +Features: + --enable-FEATURE # enable use of this feature + --disable-FEATURE # disable use of this feature + + The FEATURES currently supported are: + zsh-debug # use it if you want to debug zsh + zsh-mem # use zsh's memory allocators + zsh-mem-debug # debug zsh's memory allocators + zsh-mem-warning # turn on warnings of memory allocation errors + zsh-secure-free # turn on memory checking of free() + zsh-hash-debug # turn on debugging of internal hash tables + etcdir=directory # default directory for global zsh scripts + zshenv=pathname # the full pathname of the global zshenv script + zshrc=pathname # the full pathname of the global zshrc script + zlogin=pathname # the full pathname of the global zlogin script + zprofile=pathname # the full pathname of the global zprofile script + zlogout=pathname # the full pathname of the global zlogout script + dynamic # allow dynamically loaded binary modules |