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 `lib/malloc/malloc.c'. This
is not the same `malloc' that appears in GNU libc, but an older
version 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 4.2 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.
`--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-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-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-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-progcomp'
Enable the programmable completion facilities (Note:Programmable
Completion). If Readline is not enabled, this option has no
effect.
`--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-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 2. 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.