]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - INSTALL
ncurses 5.9 - patch 20141115
[ncurses.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 71baeb08fddb992576d7f0b0c3670687b3be7a8f..ef6d7d6b235281505a53e39e46f335bc40b13e3a 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.171 2014/04/26 20:30:01 tom Exp $
+-- $Id: INSTALL,v 1.178 2014/11/16 00:03:32 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -352,6 +352,10 @@ SUMMARY OF CONFIGURE OPTIONS:
        Use --disable-libtool-version to use the libtool -version-info feature.
        This corresponds to the setting used before patch 20100515.
 
+       Starting with patch 20141115, using this option causes the configure
+       script to apply the top-level VERSION file to the ABI version used
+       for libtool.
+
     --disable-leaks
        For testing, compile-in code that frees memory that normally would not
        be freed, to simplify analysis of memory-leaks.
@@ -390,6 +394,37 @@ SUMMARY OF CONFIGURE OPTIONS:
        rather than the include directory.  This makes it simpler to avoid
        compile-time conflicts with other versions of curses.h
 
+       Putting the header files into a subdirectory assumes that applications
+       will follow the (standard) practice of including the headers with
+       reference to the subdirectory name.  For instance, the normal ncurses
+       header would be included using
+
+               #include <ncurses/curses.h>
+               #include <ncurses/term.h>
+
+       while the ncursesw headers would be found this way:
+
+               #include <ncursesw/curses.h>
+               #include <ncursesw/term.h>
+
+       In either case (with or without the --disable-overwrite option),
+       almost all applications are designed to include a related set of
+       curses header files from the same directory.
+
+       Manipulating the --includedir configure option to put header files
+       directly in a subdirectory of the normal include-directory defeats
+       this, and breaks builds of portable applications.  Likewise, putting
+       some headers in /usr/include, and others in a subdirectory is a good
+       way to break builds.
+
+       When configured with --disable-overwrite, the installed header files'
+       embedded #include's are adjusted to use the same style of includes
+       noted above.  In particular, the unctrl.h header is included from
+       curses.h, which means that a makefile which tells the compiler to
+       include directly from the subdirectory will fail to compile correctly.
+       Without some special effort, it will either fail to compile at all,
+       or the compiler may find a different unctrl.h file.
+
     --disable-relink
        If --enable-rpath is given, the generated makefiles normally will
        rebuild the libraries during install.  Use this option to simply
@@ -794,6 +829,11 @@ SUMMARY OF CONFIGURE OPTIONS:
        For testing, compile and link with Gray Watson's dmalloc library.
        This also sets the --disable-leaks option.
 
+    --with-export-syms[=XXX]
+       Limit exported symbols using libtool.  The configure script
+       automatically chooses an appropriate ".sym" file, which lists the
+       symbols which are part of the ABI.
+
     --with-fallbacks=XXX
        Specify a list of fallback terminal descriptions which will be
        compiled into the ncurses library.  See CONFIGURING FALLBACK ENTRIES.
@@ -841,7 +881,7 @@ SUMMARY OF CONFIGURE OPTIONS:
                --with-hashed-db=/usr/local/BigBase
        to find the corresponding include- and lib-directories under the
        given directory.  Alternatively, you can specify a directory leaf
-       name, e.g., 
+       name, e.g.,
                --with-hashed-db=db4
        to make the configure script look for files in a subdirectory such as
                /usr/include/db4/db.h
@@ -889,6 +929,9 @@ SUMMARY OF CONFIGURE OPTIONS:
        using the appropriate patch for autoconf from
                http://invisible-island.net/autoconf/
 
+    --with-libtool-opts=XXX
+       Specify additional libtool options.
+
     --with-manpage-aliases
        Tell the configure script you wish to create entries in the
        man-directory for aliases to manpages which list them, e.g., the
@@ -987,11 +1030,23 @@ SUMMARY OF CONFIGURE OPTIONS:
        shared libraries, you may encounter problems with the linker.
        For example, it may prevent you from running  the build tree's
        copy of tic (for installing the terminfo database) because it
-       loads the system's copy of the ncurses shared libraries.  In that
-       case, using the misc/shlib script may be helpful, since it sets
-       $LD_LIBRARY_PATH to point to the build tree, e.g.,
+       loads the system's copy of the ncurses shared libraries.
+
+       In that case, using the misc/shlib script may be helpful, since it
+       sets $LD_LIBRARY_PATH to point to the build tree, e.g.,
+
                ./misc/shlib make install
 
+       Alternatively, for most platforms, the linker accepts a list of
+       directories which will be searched for libraries at run-time.  The
+       configure script allows you to modify this list using the
+       RPATH_LIST environment variable.  It is a colon-separated list of
+       directories (default:  the "libdir" set via the configure script).
+       If you set that to put "../lib" first in the list, the linker will
+       look first at the build-directory, and avoid conflict with libraries
+       already installed.  One drawback to this approach is that libraries
+       can be accidentally searched in any "../lib" directory.
+
        NOTE: If you use the --with-ada-sharedlib option, you should also
        set this option, to ensure that C-language modules needed for the
        Ada binding use appropriate compiler options.
@@ -1060,6 +1115,19 @@ SUMMARY OF CONFIGURE OPTIONS:
        Configure the trace() function as part of the all models of the ncurses
        library.  Normally it is part of the debug (libncurses_g) library only.
 
+    --with-versioned-syms[=XXX]
+       The Solaris, GNU and reportedly some other linkers (ld) accept a
+       "--version-script" option which tells the linker to annotate the
+       resulting objects with version identifiers.  The configure script
+       will automatically apply a suitable ".map" file to provide this
+       information for Linux.  Solaris mapfiles differ:
+
+       a) comments are not accepted
+       b) wildcards are not accepted
+       c) each symbol listed in the map file must exist in the library
+
+       Use "objdump -T" on a library to see the annotations.
+
     --with-xterm-kbs=XXX
        Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII
        backspace) or DEL (^?, or 127).  XXX can be BS (or bs, 8) or DEL