Pull up CVS idents from FreeBSD to match our current version.
[dragonfly.git] / contrib / readline-5.0 / INSTALL
blobcb4a06fb701b937d94100f891eff894030a88fab
1 Basic Installation
2 ==================
4 These are installation instructions for Readline-5.0.
6 The simplest way to compile readline is:
8   1. `cd' to the directory containing the readline source code and type
9      `./configure' to configure readline for your system.  If you're
10      using `csh' on an old version of System V, you might need to type
11      `sh ./configure' instead to prevent `csh' from trying to execute
12      `configure' itself.
14      Running `configure' takes some time.  While running, it prints some
15      messages telling which features it is checking for.
17   2. Type `make' to compile readline and build the static readline
18      and history libraries.  If supported, the shared readline and history
19      libraries will be built also.  See below for instructions on compiling
20      the other parts of the distribution.  Typing `make everything' will
21      cause the static and shared libraries (if supported) and the example
22      programs to be built.
24   3. Type `make install' to install the static readline and history
25      libraries, the readline include files, the documentation, and, if
26      supported, the shared readline and history libraries.
28   4. You can remove the created libraries and object files from the
29      build directory by typing `make clean'.  To also remove the
30      files that `configure' created (so you can compile readline for
31      a different kind of computer), type `make distclean'.  There is
32      also a `make maintainer-clean' target, but that is intended mainly
33      for the readline developers, and should be used with care.
35 The `configure' shell script attempts to guess correct values for
36 various system-dependent variables used during compilation.  It
37 uses those values to create a `Makefile' in the build directory,
38 and Makefiles in the `doc', `shlib', and `examples'
39 subdirectories.  It also creates a `config.h' file containing
40 system-dependent definitions.  Finally, it creates a shell script
41 `config.status' that you can run in the future to recreate the
42 current configuration, a file `config.cache' that saves the
43 results of its tests to speed up reconfiguring, and a file
44 `config.log' containing compiler output (useful mainly for
45 debugging `configure'). 
47 If you need to do unusual things to compile readline, please try
48 to figure out how `configure' could check whether to do them, and
49 mail diffs or instructions to <bug-readline@gnu.org> so they can
50 be considered for the next release.  If at some point
51 `config.cache' contains results you don't want to keep, you may
52 remove or edit it. 
54 The file `configure.in' is used to create `configure' by a
55 program called `autoconf'.  You only need `configure.in' if you
56 want to change it or regenerate `configure' using a newer version
57 of `autoconf'.  The readline `configure.in' requires autoconf
58 version 2.50 or newer. 
60 Compilers and Options
61 =====================
63 Some systems require unusual options for compilation or linking that
64 the `configure' script does not know about.  You can give `configure'
65 initial values for variables by setting them in the environment.  Using
66 a Bourne-compatible shell, you can do that on the command line like
67 this:
69      CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
71 Or on systems that have the `env' program, you can do it like this:
73      env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
75 Compiling For Multiple Architectures
76 ====================================
78 You can compile readline for more than one kind of computer at the
79 same time, by placing the object files for each architecture in their
80 own directory.  To do this, you must use a version of `make' that
81 supports the `VPATH' variable, such as GNU `make'.  `cd' to the
82 directory where you want the object files and executables to go and run
83 the `configure' script.  `configure' automatically checks for the
84 source code in the directory that `configure' is in and in `..'.
86 If you have to use a `make' that does not supports the `VPATH'
87 variable, you have to compile readline for one architecture at a
88 time in the source code directory.  After you have installed
89 readline for one architecture, use `make distclean' before
90 reconfiguring for another architecture. 
92 Installation Names
93 ==================
95 By default, `make install' will install the readline libraries in
96 `/usr/local/lib', the include files in
97 `/usr/local/include/readline', the man pages in `/usr/local/man',
98 and the info files in `/usr/local/info'.  You can specify an
99 installation prefix other than `/usr/local' by giving `configure'
100 the option `--prefix=PATH' or by supplying a value for the
101 DESTDIR variable when running `make install'. 
103 You can specify separate installation prefixes for
104 architecture-specific files and architecture-independent files. 
105 If you give `configure' the option `--exec-prefix=PATH', the
106 readline Makefiles will use PATH as the prefix for installing the
107 libraries.  Documentation and other data files will still use the
108 regular prefix. 
110 Specifying the System Type
111 ==========================
113 There may be some features `configure' can not figure out
114 automatically, but need to determine by the type of host readline
115 will run on.  Usually `configure' can figure that out, but if it
116 prints a message saying it can not guess the host type, give it
117 the `--host=TYPE' option.  TYPE can either be a short name for
118 the system type, such as `sun4', or a canonical name with three
119 fields: CPU-COMPANY-SYSTEM (e.g., i386-unknown-freebsd4.2). 
121 See the file `config.sub' for the possible values of each field.
123 Sharing Defaults
124 ================
126 If you want to set default values for `configure' scripts to share,
127 you can create a site shell script called `config.site' that gives
128 default values for variables like `CC', `cache_file', and `prefix'.
129 `configure' looks for `PREFIX/share/config.site' if it exists, then
130 `PREFIX/etc/config.site' if it exists.  Or, you can set the
131 `CONFIG_SITE' environment variable to the location of the site script.
132 A warning: the readline `configure' looks for a site script, but not
133 all `configure' scripts do.
135 Operation Controls
136 ==================
138 `configure' recognizes the following options to control how it
139 operates.
141 `--cache-file=FILE'
142      Use and save the results of the tests in FILE instead of
143      `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
144      debugging `configure'.
146 `--help'
147      Print a summary of the options to `configure', and exit.
149 `--quiet'
150 `--silent'
151 `-q'
152      Do not print messages saying which checks are being made.
154 `--srcdir=DIR'
155      Look for the package's source code in directory DIR.  Usually
156      `configure' can determine that directory automatically.
158 `--version'
159      Print the version of Autoconf used to generate the `configure'
160      script, and exit.
162 `configure' also accepts some other, not widely useful, options.
164 Optional Features
165 =================
167 The readline `configure' recognizes a single `--with-PACKAGE' option:
169 `--with-curses'
170     This tells readline that it can find the termcap library functions
171     (tgetent, et al.) in the curses library, rather than a separate
172     termcap library.  Readline uses the termcap functions, but does not
173     link with the termcap or curses library itself, allowing applications
174     which link with readline the to choose an appropriate library.
175     This option tells readline to link the example programs with the
176     curses library rather than libtermcap.
178 `configure' also recognizes two `--enable-FEATURE' options:
180 `--enable-shared'
181     Build the shared libraries by default on supported platforms.  The
182     default is `yes'.
184 `--enable-static'
185     Build the static libraries by default.  The default is `yes'.
187 Shared Libraries
188 ================
190 There is support for building shared versions of the readline and
191 history libraries.  The configure script creates a Makefile in
192 the `shlib' subdirectory, and typing `make shared' will cause
193 shared versions of the readline and history libraries to be built
194 on supported platforms.
196 If `configure' is given the `--enable-shared' option, it will attempt
197 to build the shared libraries by default on supported platforms.
199 Configure calls the script support/shobj-conf to test whether or
200 not shared library creation is supported and to generate the values
201 of variables that are substituted into shlib/Makefile.  If you
202 try to build shared libraries on an unsupported platform, `make'
203 will display a message asking you to update support/shobj-conf for
204 your platform.
206 If you need to update support/shobj-conf, you will need to create
207 a `stanza' for your operating system and compiler.  The script uses
208 the value of host_os and ${CC} as determined by configure.  For
209 instance, FreeBSD 4.2 with any version of gcc is identified as
210 `freebsd4.2-gcc*'.
212 In the stanza for your operating system-compiler pair, you will need to
213 define several variables.  They are:
215 SHOBJ_CC        The C compiler used to compile source files into shareable
216                 object files.  This is normally set to the value of ${CC}
217                 by configure, and should not need to be changed.
219 SHOBJ_CFLAGS    Flags to pass to the C compiler ($SHOBJ_CC) to create
220                 position-independent code.  If you are using gcc, this
221                 should probably be set to `-fpic'.
223 SHOBJ_LD        The link editor to be used to create the shared library from
224                 the object files created by $SHOBJ_CC.  If you are using
225                 gcc, a value of `gcc' will probably work.
227 SHOBJ_LDFLAGS   Flags to pass to SHOBJ_LD to enable shared object creation.
228                 If you are using gcc, `-shared' may be all that is necessary.
229                 These should be the flags needed for generic shared object
230                 creation.
232 SHLIB_XLDFLAGS  Additional flags to pass to SHOBJ_LD for shared library
233                 creation.  Many systems use the -R option to the link
234                 editor to embed a path within the library for run-time
235                 library searches.  A reasonable value for such systems would
236                 be `-R$(libdir)'.
238 SHLIB_LIBS      Any additional libraries that shared libraries should be
239                 linked against when they are created.
241 SHLIB_LIBSUFF   The suffix to add to `libreadline' and `libhistory' when
242                 generating the filename of the shared library.  Many systems
243                 use `so'; HP-UX uses `sl'.
245 SHLIB_LIBVERSION The string to append to the filename to indicate the version
246                 of the shared library.  It should begin with $(SHLIB_LIBSUFF),
247                 and possibly include version information that allows the
248                 run-time loader to load the version of the shared library
249                 appropriate for a particular program.  Systems using shared
250                 libraries similar to SunOS 4.x use major and minor library
251                 version numbers; for those systems a value of
252                 `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' is appropriate.
253                 Systems based on System V Release 4 don't use minor version
254                 numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems.
255                 Other Unix versions use different schemes.
257 SHLIB_STATUS    Set this to `supported' when you have defined the other
258                 necessary variables.  Make uses this to determine whether
259                 or not shared library creation should be attempted.  If
260                 shared libraries are not supported, this will be set to
261                 `unsupported'.
263 You should look at the existing stanzas in support/shobj-conf for ideas.
265 Once you have updated support/shobj-conf, re-run configure and type
266 `make shared' or `make'.  The shared libraries will be created in the
267 shlib subdirectory.
269 If shared libraries are created, `make install' will install them. 
270 You may install only the shared libraries by running `make
271 install-shared' from the top-level build directory.  Running `make
272 install' in the shlib subdirectory will also work.  If you don't want
273 to install any created shared libraries, run `make install-static'.