summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorAn-Cheng Huang <ancheng@vyatta.com>2007-11-12 13:06:02 -0800
committerAn-Cheng Huang <ancheng@vyatta.com>2007-11-12 13:06:02 -0800
commitb7fc9e0f6d6105ba2203f219743d4b269415e84b (patch)
treeef6586dfc62798c2b17487b443864699aca55f31 /INSTALL
downloadvyatta-bash-b7fc9e0f6d6105ba2203f219743d4b269415e84b.tar.gz
vyatta-bash-b7fc9e0f6d6105ba2203f219743d4b269415e84b.zip
initial import from bash_3.1dfsg.orig.tar.gz
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL393
1 files changed, 393 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..4dfaa0d
--- /dev/null
+++ b/INSTALL
@@ -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.