]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - INSTALL
Imported from ../bash-2.05.tar.gz.
[thirdparty/bash.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 8df72165e26d46cbc81d22d3c81de007adfe6e3a..7131ed80f599fb19d859e74c10f790666be841ba 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -3,37 +3,6 @@ Basic Installation
 
 These are installation instructions for Bash.
 
-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' and `doc' directories, and the each
-directory under `lib').  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.
-
-If you need to do unusual things to compile the package, please try to
-figure out how `configure' could check whether or not to do them, and
-mail diffs or instructions to `bash-maintainers@prep.ai.mit.edu' 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.10 or newer.
-
-If you need to change `configure.in' or regenerate `configure', you
-will need to create two files: `_distribution' and `_patchlevel'.
-`_distribution' should contain the major and minor version numbers of
-the Bash distribution, for example `2.01'.  `_patchlevel' should
-contain the patch level of the Bash distribution, `0' for example.  The
-script `support/mkconffiles' has been provided to automate the creation
-of these files.
-
 The simplest way to compile Bash is:
 
   1. `cd' to the directory containing the source code and type
@@ -42,7 +11,7 @@ The simplest way to compile Bash is:
      ./configure' instead to prevent `csh' from trying to execute
      `configure' itself.
 
-     Running `configure' takes awhile.  While running, it prints some
+     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
@@ -53,6 +22,44 @@ The simplest way to compile Bash is:
   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.10 or newer.
+
+If you need to change `configure.in' or regenerate `configure', you
+will need to create two files: `_distribution' and `_patchlevel'.
+`_distribution' should contain the major and minor version numbers of
+the Bash distribution, for example `2.01'.  `_patchlevel' should
+contain the patch level of the Bash distribution, `0' for example.  The
+script `support/mkconffiles' has been provided to automate the creation
+of these files.
+
 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
@@ -115,17 +122,17 @@ than `/usr/local' by giving `configure' the option `--prefix=PATH'.
 
 You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-`PATH' as the prefix for installing programs and libraries.
+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 needs to determine by the type of host the package
-will run on.  Usually `configure' can figure that out, but if it prints
-message saying it can not guess the host type, give it the
+automatically, but needs 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., `sparc-sun-sunos4.1.2').
@@ -171,18 +178,17 @@ Operation Controls
      script, and exit.
 
 `configure' also accepts some other, not widely used, boilerplate
-options.
+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 the package.  There are also
-several `--with-PACKAGE' options, where PACKAGE is something like
-`gnu-malloc' or `purify' (for the Purify memory allocation checker).  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'.
+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.
@@ -190,6 +196,15 @@ 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
@@ -197,56 +212,81 @@ the Bash `configure' recognizes.
 
 `--with-glibc-malloc'
      Use the GNU libc version of `malloc' in `lib/malloc/gmalloc.c'.
-     This is somewhat slower than the default `malloc', but wastes
-     considerably less space.
+     This is not the version of `malloc' that appears in glibc version
+     2, but a modified version of the `malloc' from glibc version 1.
+     This is somewhat slower than the default `malloc', but wastes less
+     space on a per-allocation basis, and will return memory to the
+     operating system under certain circumstances.
 
 `--with-gnu-malloc'
-     Use the GNU 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 a lot of space.  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.
+     A synonym for `--with-bash-malloc'.
+
+`--with-installed-readline'
+     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.1 and later versions.
 
 `--with-purify'
-     Define this to use the Purify memory allocation checker from Pure
-     Software.
+     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-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
-`usg-echo-default' are enabled by default, unless the operating system
+`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.
+     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.
+     Include support for one-dimensional array shell variables (*note
+     Arrays::).
 
 `--enable-bang-history'
-     Include support for `csh'-like history substitution.
+     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'.
-     This allows pipelines as well as shell builtins and functions to
-     be timed.
+     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.
+     `popd', and `dirs' builtins (*note The Directory Stack::).
 
 `--enable-disabled-builtins'
      Allow builtin commands to be invoked via `builtin xxx' even after
@@ -255,31 +295,48 @@ does not provide the necessary support.
      commands.
 
 `--enable-dparen-arithmetic'
-     Include support for the `ksh' `((...))' command.
+     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.
+     and variables (*note Bash Builtins::).
 
 `--enable-history'
      Include command history and the `fc' and `history' builtin
-     commands.
+     commands (*note Bash History Facilities::).
 
 `--enable-job-control'
-     This enables job control features, if the OS supports them.
+     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 OS provides the necessary support.
+     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.
+     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.
+     version of the Readline library (*note Command Line Editing::).
 
 `--enable-restricted'
      Include support for a "restricted shell".  If this is enabled,
@@ -287,15 +344,21 @@ does not provide the necessary support.
      The Restricted Shell::, for a description of restricted mode.
 
 `--enable-select'
-     Include the `ksh' `select' builtin, which allows the generation of
-     simple menus.
+     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 makes the Bash
-     `echo' behave more like the System V version.
+     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.h.top' contains C Preprocessor `#define' statements
+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