diff options
author | An-Cheng Huang <ancheng@vyatta.com> | 2007-11-12 13:06:02 -0800 |
---|---|---|
committer | An-Cheng Huang <ancheng@vyatta.com> | 2007-11-12 13:06:02 -0800 |
commit | b7fc9e0f6d6105ba2203f219743d4b269415e84b (patch) | |
tree | ef6586dfc62798c2b17487b443864699aca55f31 /INSTALL | |
download | vyatta-bash-b7fc9e0f6d6105ba2203f219743d4b269415e84b.tar.gz vyatta-bash-b7fc9e0f6d6105ba2203f219743d4b269415e84b.zip |
initial import from bash_3.1dfsg.orig.tar.gz
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 393 |
1 files changed, 393 insertions, 0 deletions
@@ -0,0 +1,393 @@ +Basic Installation +================== + +These are installation instructions for Bash. + +The simplest way to compile Bash is: + + 1. `cd' to the directory containing the source code and type + `./configure' to configure Bash for your system. If you're using + `csh' on an old version of System V, you might need to type `sh + ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes some time. While running, it prints + messages telling which features it is checking for. + + 2. Type `make' to compile Bash and build the `bashbug' bug reporting + script. + + 3. Optionally, type `make tests' to run the Bash test suite. + + 4. Type `make install' to install `bash' and `bashbug'. This will + also install the manual pages and Info file. + +The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package +(the top directory, the `builtins', `doc', and `support' directories, +each directory under `lib', and several others). It also creates a +`config.h' file containing system-dependent definitions. Finally, it +creates a shell script named `config.status' that you can run in the +future to recreate the current configuration, a file `config.cache' +that saves the results of its tests to speed up reconfiguring, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). If at some point `config.cache' contains +results you don't want to keep, you may remove or edit it. + +To find out more about the options and arguments that the `configure' +script understands, type + + bash-2.04$ ./configure --help + +at the Bash prompt in your Bash source directory. + +If you need to do unusual things to compile Bash, please try to figure +out how `configure' could check whether or not to do them, and mail +diffs or instructions to <bash-maintainers@gnu.org> so they can be +considered for the next release. + +The file `configure.in' is used to create `configure' by a program +called Autoconf. You only need `configure.in' if you want to change it +or regenerate `configure' using a newer version of Autoconf. If you do +this, make sure you are using Autoconf version 2.50 or newer. + +You can remove the program binaries and object files from the source +code directory by typing `make clean'. To also remove the files that +`configure' created (so you can compile Bash for a different kind of +computer), type `make distclean'. + +Compilers and Options +===================== + +Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +On systems that have the `env' program, you can do it like this: + + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +The configuration process uses GCC to build Bash if it is available. + +Compiling For Multiple Architectures +==================================== + +You can compile Bash for more than one kind of computer at the same +time, by placing the object files for each architecture in their own +directory. 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 from the source directory. You may need to supply the +`--srcdir=PATH' argument to tell `configure' where the source files +are. `configure' automatically checks for the source code in the +directory that `configure' is in and in `..'. + +If you have to use a `make' that does not supports the `VPATH' +variable, you can compile Bash for one architecture at a time in the +source code directory. After you have installed Bash for one +architecture, use `make distclean' before reconfiguring for another +architecture. + +Alternatively, if your system supports symbolic links, you can use the +`support/mkclone' script to create a build tree which has symbolic +links back to each file in the source directory. Here's an example +that creates a build directory in the current directory from a source +directory `/usr/gnu/src/bash-2.0': + + bash /usr/gnu/src/bash-2.0/support/mkclone -s /usr/gnu/src/bash-2.0 . + +The `mkclone' script requires Bash, so you must have already built Bash +for at least one architecture before you can create build directories +for other architectures. + +Installation Names +================== + +By default, `make install' will install into `/usr/local/bin', +`/usr/local/man', etc. You can specify an installation prefix other +than `/usr/local' by giving `configure' the option `--prefix=PATH', or +by specifying a value for the `DESTDIR' `make' variable when running +`make install'. + +You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', `make install' will +use PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + +Specifying the System Type +========================== + +There may be some features `configure' can not figure out +automatically, but need to determine by the type of host Bash will run +on. Usually `configure' can figure that out, but if it prints a +message saying it can not guess the host type, give it the +`--host=TYPE' option. `TYPE' can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: +`CPU-COMPANY-SYSTEM' (e.g., `i386-unknown-freebsd4.2'). + +See the file `support/config.sub' for the possible values of each field. + +Sharing Defaults +================ + +If you want to set default values for `configure' scripts to share, you +can create a site shell script called `config.site' that gives default +values for variables like `CC', `cache_file', and `prefix'. `configure' +looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: the Bash `configure' looks for a site script, but not all +`configure' scripts do. + +Operation Controls +================== + +`configure' recognizes the following options to control how it operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the Bash source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely used, boilerplate +options. `configure --help' prints the complete list. + +Optional Features +================= + +The Bash `configure' has a number of `--enable-FEATURE' options, where +FEATURE indicates an optional part of Bash. There are also several +`--with-PACKAGE' options, where PACKAGE is something like `bash-malloc' +or `purify'. To turn off the default use of a package, use +`--without-PACKAGE'. To configure Bash without a feature that is +enabled by default, use `--disable-FEATURE'. + +Here is a complete list of the `--enable-' and `--with-' options that +the Bash `configure' recognizes. + +`--with-afs' + Define if you are using the Andrew File System from Transarc. + +`--with-bash-malloc' + Use the Bash version of `malloc' in the directory `lib/malloc'. + This is not the same `malloc' that appears in GNU libc, but an + older version originally derived from the 4.2 BSD `malloc'. This + `malloc' is very fast, but wastes some space on each allocation. + This option is enabled by default. The `NOTES' file contains a + list of systems for which this should be turned off, and + `configure' disables this option automatically for a number of + systems. + +`--with-curses' + Use the curses library instead of the termcap library. This should + be supplied if your system has an inadequate or incomplete termcap + database. + +`--with-gnu-malloc' + A synonym for `--with-bash-malloc'. + +`--with-installed-readline[=PREFIX]' + Define this to make Bash link with a locally-installed version of + Readline rather than the version in `lib/readline'. This works + only with Readline 5.0 and later versions. If PREFIX is `yes' or + not supplied, `configure' uses the values of the make variables + `includedir' and `libdir', which are subdirectories of `prefix' by + default, to find the installed version of Readline if it is not in + the standard system include and library directories. If PREFIX is + `no', Bash links with the version in `lib/readline'. If PREFIX is + set to any other value, `configure' treats it as a directory + pathname and looks for the installed version of Readline in + subdirectories of that directory (include files in + PREFIX/`include' and the library in PREFIX/`lib'). + +`--with-purify' + Define this to use the Purify memory allocation checker from + Rational Software. + +`--enable-minimal-config' + This produces a shell with minimal features, close to the + historical Bourne shell. + +There are several `--enable-' options that alter how Bash is compiled +and linked, rather than changing run-time features. + +`--enable-largefile' + Enable support for large files + (http://www.sas.com/standards/large_file/x_open.20Mar96.html) if + the operating system requires special compiler options to build + programs which can access large files. This is enabled by + default, if the operating system provides large file support. + +`--enable-profiling' + This builds a Bash binary that produces profiling information to be + processed by `gprof' each time it is executed. + +`--enable-static-link' + This causes Bash to be linked statically, if `gcc' is being used. + This could be used to build a version to use as root's shell. + +The `minimal-config' option can be used to disable all of the following +options, but it is processed first, so individual options may be +enabled using `enable-FEATURE'. + +All of the following options except for `disabled-builtins' and +`xpg-echo-default' are enabled by default, unless the operating system +does not provide the necessary support. + +`--enable-alias' + Allow alias expansion and include the `alias' and `unalias' + builtins (*note Aliases::). + +`--enable-arith-for-command' + Include support for the alternate form of the `for' command that + behaves like the C language `for' statement (*note Looping + Constructs::). + +`--enable-array-variables' + Include support for one-dimensional array shell variables (*note + Arrays::). + +`--enable-bang-history' + Include support for `csh'-like history substitution (*note History + Interaction::). + +`--enable-brace-expansion' + Include `csh'-like brace expansion ( `b{a,b}c' ==> `bac bbc' ). + See *Note Brace Expansion::, for a complete description. + +`--enable-command-timing' + Include support for recognizing `time' as a reserved word and for + displaying timing statistics for the pipeline following `time' + (*note Pipelines::). This allows pipelines as well as shell + builtins and functions to be timed. + +`--enable-cond-command' + Include support for the `[[' conditional command. (*note + Conditional Constructs::). + +`--enable-cond-regexp' + Include support for matching POSIX regular expressions using the + `=~' binary operator in the `[[' conditional command. (*note + Conditional Constructs::). + +`--enable-debugger' + Include support for the bash debugger (distributed separately). + +`--enable-directory-stack' + Include support for a `csh'-like directory stack and the `pushd', + `popd', and `dirs' builtins (*note The Directory Stack::). + +`--enable-disabled-builtins' + Allow builtin commands to be invoked via `builtin xxx' even after + `xxx' has been disabled using `enable -n xxx'. See *Note Bash + Builtins::, for details of the `builtin' and `enable' builtin + commands. + +`--enable-dparen-arithmetic' + Include support for the `((...))' command (*note Conditional + Constructs::). + +`--enable-extended-glob' + Include support for the extended pattern matching features + described above under *Note Pattern Matching::. + +`--enable-help-builtin' + Include the `help' builtin, which displays help on shell builtins + and variables (*note Bash Builtins::). + +`--enable-history' + Include command history and the `fc' and `history' builtin + commands (*note Bash History Facilities::). + +`--enable-job-control' + This enables the job control features (*note Job Control::), if + the operating system supports them. + +`--enable-multibyte' + This enables support for multibyte characters if the operating + system provides the necessary support. + +`--enable-net-redirections' + This enables the special handling of filenames of the form + `/dev/tcp/HOST/PORT' and `/dev/udp/HOST/PORT' when used in + redirections (*note Redirections::). + +`--enable-process-substitution' + This enables process substitution (*note Process Substitution::) if + the operating system provides the necessary support. + +`--enable-progcomp' + Enable the programmable completion facilities (*note Programmable + Completion::). If Readline is not enabled, this option has no + effect. + +`--enable-prompt-string-decoding' + Turn on the interpretation of a number of backslash-escaped + characters in the `$PS1', `$PS2', `$PS3', and `$PS4' prompt + strings. See *Note Printing a Prompt::, for a complete list of + prompt string escape sequences. + +`--enable-readline' + Include support for command-line editing and history with the Bash + version of the Readline library (*note Command Line Editing::). + +`--enable-restricted' + Include support for a "restricted shell". If this is enabled, + Bash, when called as `rbash', enters a restricted mode. See *Note + The Restricted Shell::, for a description of restricted mode. + +`--enable-select' + Include the `select' builtin, which allows the generation of simple + menus (*note Conditional Constructs::). + +`--enable-separate-helpfiles' + Use external files for the documentation displayed by the `help' + builtin instead of storing the text internally. + +`--enable-single-help-strings' + Store the text displayed by the `help' builtin as a single string + for each help topic. This aids in translating the text to + different languages. You may need to disable this if your + compiler cannot handle very long string literals. + +`--enable-strict-posix-default' + Make Bash POSIX-conformant by default (*note Bash POSIX Mode::). + +`--enable-usg-echo-default' + A synonym for `--enable-xpg-echo-default'. + +`--enable-xpg-echo-default' + Make the `echo' builtin expand backslash-escaped characters by + default, without requiring the `-e' option. This sets the default + value of the `xpg_echo' shell option to `on', which makes the Bash + `echo' behave more like the version specified in the Single Unix + Specification, version 3. *Note Bash Builtins::, for a + description of the escape sequences that `echo' recognizes. + +The file `config-top.h' contains C Preprocessor `#define' statements +for options which are not settable from `configure'. Some of these are +not meant to be changed; beware of the consequences if you do. Read +the comments associated with each definition for more information about +its effect. |