Blame readline/README

Packit Service 706eca
Introduction
Packit Service 706eca
============
Packit Service 706eca
Packit Service 706eca
This is the Gnu Readline library, version 6.2.
Packit Service 706eca
Packit Service 706eca
The Readline library provides a set of functions for use by applications
Packit Service 706eca
that allow users to edit command lines as they are typed in.  Both
Packit Service 706eca
Emacs and vi editing modes are available.  The Readline library includes
Packit Service 706eca
additional functions to maintain a list of previously-entered command
Packit Service 706eca
lines, to recall and perhaps reedit those lines, and perform csh-like
Packit Service 706eca
history expansion on previous commands.
Packit Service 706eca
Packit Service 706eca
The history facilites are also placed into a separate library, the
Packit Service 706eca
History library, as part of the build process.  The History library
Packit Service 706eca
may be used without Readline in applications which desire its
Packit Service 706eca
capabilities.
Packit Service 706eca
Packit Service 706eca
The Readline library is free software, distributed under the terms of
Packit Service 706eca
the [GNU] General Public License as published by the Free Software
Packit Service 706eca
Foundation, version 3 of the License.  For more information, see the
Packit Service 706eca
file COPYING.
Packit Service 706eca
Packit Service 706eca
To build the library, try typing `./configure', then `make'.  The
Packit Service 706eca
configuration process is automated, so no further intervention should
Packit Service 706eca
be necessary.  Readline builds with `gcc' by default if it is
Packit Service 706eca
available.  If you want to use `cc' instead, type
Packit Service 706eca
Packit Service 706eca
        CC=cc ./configure
Packit Service 706eca
Packit Service 706eca
if you are using a Bourne-style shell.  If you are not, the following
Packit Service 706eca
may work:
Packit Service 706eca
Packit Service 706eca
        env CC=cc ./configure
Packit Service 706eca
Packit Service 706eca
Read the file INSTALL in this directory for more information about how
Packit Service 706eca
to customize and control the build process.
Packit Service 706eca
Packit Service 706eca
The file rlconf.h contains C preprocessor defines that enable and disable
Packit Service 706eca
certain Readline features.
Packit Service 706eca
Packit Service 706eca
The special make target `everything' will build the static and shared
Packit Service 706eca
libraries (if the target platform supports them) and the examples.
Packit Service 706eca
Packit Service 706eca
Examples
Packit Service 706eca
========
Packit Service 706eca
Packit Service 706eca
There are several example programs that use Readline features in the
Packit Service 706eca
examples directory.  The `rl' program is of particular interest.  It
Packit Service 706eca
is a command-line interface to Readline, suitable for use in shell
Packit Service 706eca
scripts in place of `read'.
Packit Service 706eca
Packit Service 706eca
Shared Libraries
Packit Service 706eca
================
Packit Service 706eca
Packit Service 706eca
There is skeletal support for building shared versions of the
Packit Service 706eca
Readline and History libraries.  The configure script creates
Packit Service 706eca
a Makefile in the `shlib' subdirectory, and typing `make shared'
Packit Service 706eca
will cause shared versions of the Readline and History libraries
Packit Service 706eca
to be built on supported platforms.
Packit Service 706eca
Packit Service 706eca
If `configure' is given the `--enable-shared' option, it will attempt
Packit Service 706eca
to build the shared libraries by default on supported platforms.
Packit Service 706eca
Packit Service 706eca
Configure calls the script support/shobj-conf to test whether or
Packit Service 706eca
not shared library creation is supported and to generate the values
Packit Service 706eca
of variables that are substituted into shlib/Makefile.  If you
Packit Service 706eca
try to build shared libraries on an unsupported platform, `make'
Packit Service 706eca
will display a message asking you to update support/shobj-conf for
Packit Service 706eca
your platform.
Packit Service 706eca
Packit Service 706eca
If you need to update support/shobj-conf, you will need to create
Packit Service 706eca
a `stanza' for your operating system and compiler.  The script uses
Packit Service 706eca
the value of host_os and ${CC} as determined by configure.  For
Packit Service 706eca
instance, FreeBSD 4.2 with any version of gcc is identified as
Packit Service 706eca
`freebsd4.2-gcc*'.
Packit Service 706eca
Packit Service 706eca
In the stanza for your operating system-compiler pair, you will need to
Packit Service 706eca
define several variables.  They are:
Packit Service 706eca
Packit Service 706eca
SHOBJ_CC	The C compiler used to compile source files into shareable
Packit Service 706eca
		object files.  This is normally set to the value of ${CC}
Packit Service 706eca
		by configure, and should not need to be changed.
Packit Service 706eca
Packit Service 706eca
SHOBJ_CFLAGS	Flags to pass to the C compiler ($SHOBJ_CC) to create
Packit Service 706eca
		position-independent code.  If you are using gcc, this
Packit Service 706eca
		should probably be set to `-fpic'.
Packit Service 706eca
Packit Service 706eca
SHOBJ_LD	The link editor to be used to create the shared library from
Packit Service 706eca
		the object files created by $SHOBJ_CC.  If you are using
Packit Service 706eca
		gcc, a value of `gcc' will probably work.
Packit Service 706eca
Packit Service 706eca
SHOBJ_LDFLAGS	Flags to pass to SHOBJ_LD to enable shared object creation.
Packit Service 706eca
		If you are using gcc, `-shared' may be all that is necessary.
Packit Service 706eca
		These should be the flags needed for generic shared object
Packit Service 706eca
		creation.
Packit Service 706eca
Packit Service 706eca
SHLIB_XLDFLAGS	Additional flags to pass to SHOBJ_LD for shared library
Packit Service 706eca
		creation.  Many systems use the -R option to the link
Packit Service 706eca
		editor to embed a path within the library for run-time
Packit Service 706eca
		library searches.  A reasonable value for such systems would
Packit Service 706eca
		be `-R$(libdir)'.
Packit Service 706eca
Packit Service 706eca
SHLIB_LIBS	Any additional libraries that shared libraries should be
Packit Service 706eca
		linked against when they are created.
Packit Service 706eca
Packit Service 706eca
SHLIB_LIBPREF	The prefix to use when generating the filename of the shared
Packit Service 706eca
		library.  The default is `lib'; Cygwin uses `cyg'.
Packit Service 706eca
Packit Service 706eca
SHLIB_LIBSUFF	The suffix to add to `libreadline' and `libhistory' when
Packit Service 706eca
		generating the filename of the shared library.  Many systems
Packit Service 706eca
		use `so'; HP-UX uses `sl'.
Packit Service 706eca
Packit Service 706eca
SHLIB_LIBVERSION The string to append to the filename to indicate the version
Packit Service 706eca
		of the shared library.  It should begin with $(SHLIB_LIBSUFF),
Packit Service 706eca
		and possibly include version information that allows the
Packit Service 706eca
		run-time loader to load the version of the shared library
Packit Service 706eca
		appropriate for a particular program.  Systems using shared
Packit Service 706eca
		libraries similar to SunOS 4.x use major and minor library
Packit Service 706eca
		version numbers; for those systems a value of
Packit Service 706eca
		`$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' is appropriate.
Packit Service 706eca
		Systems based on System V Release 4 don't use minor version
Packit Service 706eca
		numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems.
Packit Service 706eca
		Other Unix versions use different schemes.
Packit Service 706eca
Packit Service 706eca
SHLIB_DLLVERSION The version number for shared libraries that determines API
Packit Service 706eca
		compatibility between readline versions and the underlying
Packit Service 706eca
		system.  Used only on Cygwin.  Defaults to $SHLIB_MAJOR, but
Packit Service 706eca
		can be overridden at configuration time by defining DLLVERSION
Packit Service 706eca
		in the environment.
Packit Service 706eca
Packit Service 706eca
SHLIB_DOT	The character used to separate the name of the shared library
Packit Service 706eca
		from the suffix and version information.  The default is `.';
Packit Service 706eca
		systems like Cygwin which don't separate version information
Packit Service 706eca
		from the library name should set this to the empty string.
Packit Service 706eca
Packit Service 706eca
SHLIB_STATUS	Set this to `supported' when you have defined the other
Packit Service 706eca
		necessary variables.  Make uses this to determine whether
Packit Service 706eca
		or not shared library creation should be attempted.
Packit Service 706eca
Packit Service 706eca
You should look at the existing stanzas in support/shobj-conf for ideas.
Packit Service 706eca
Packit Service 706eca
Once you have updated support/shobj-conf, re-run configure and type
Packit Service 706eca
`make shared'.  The shared libraries will be created in the shlib
Packit Service 706eca
subdirectory.
Packit Service 706eca
Packit Service 706eca
If shared libraries are created, `make install' will install them. 
Packit Service 706eca
You may install only the shared libraries by running `make
Packit Service 706eca
install-shared' from the top-level build directory.  Running `make
Packit Service 706eca
install' in the shlib subdirectory will also work.  If you don't want
Packit Service 706eca
to install any created shared libraries, run `make install-static'. 
Packit Service 706eca
Packit Service 706eca
Documentation
Packit Service 706eca
=============
Packit Service 706eca
Packit Service 706eca
The documentation for the Readline and History libraries appears in
Packit Service 706eca
the `doc' subdirectory.  There are three texinfo files and a
Packit Service 706eca
Unix-style manual page describing the facilities available in the
Packit Service 706eca
Readline library.  The texinfo files include both user and
Packit Service 706eca
programmer's manuals.  HTML versions of the manuals appear in the
Packit Service 706eca
`doc' subdirectory as well. 
Packit Service 706eca
Packit Service 706eca
Reporting Bugs
Packit Service 706eca
==============
Packit Service 706eca
Packit Service 706eca
Bug reports for Readline should be sent to:
Packit Service 706eca
Packit Service 706eca
        bug-readline@gnu.org
Packit Service 706eca
Packit Service 706eca
When reporting a bug, please include the following information:
Packit Service 706eca
Packit Service 706eca
        * the version number and release status of Readline (e.g., 4.2-release)
Packit Service 706eca
        * the machine and OS that it is running on
Packit Service 706eca
        * a list of the compilation flags or the contents of `config.h', if
Packit Service 706eca
          appropriate
Packit Service 706eca
        * a description of the bug
Packit Service 706eca
        * a recipe for recreating the bug reliably
Packit Service 706eca
        * a fix for the bug if you have one!
Packit Service 706eca
Packit Service 706eca
If you would like to contact the Readline maintainer directly, send mail
Packit Service 706eca
to bash-maintainers@gnu.org.
Packit Service 706eca
Packit Service 706eca
Since Readline is developed along with bash, the bug-bash@gnu.org mailing
Packit Service 706eca
list (mirrored to the Usenet newsgroup gnu.bash.bug) often contains
Packit Service 706eca
Readline bug reports and fixes. 
Packit Service 706eca
Packit Service 706eca
Chet Ramey
Packit Service 706eca
chet.ramey@case.edu