]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - INSTALL
ncurses 5.9 - patch 20141206
[ncurses.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 36c0bbcb24c51d79b4c0a9b7debcab1bba45c398..75f4687198eb5bce0c4513f1dfb5e0d1a61f8cad 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.172 2014/06/21 18:53:42 tom Exp $
+-- $Id: INSTALL,v 1.179 2014/12/06 13:31:57 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.
@@ -360,11 +364,17 @@ SUMMARY OF CONFIGURE OPTIONS:
        a screen, since (even after calling endwin()), it must be available
        for use in the next call to refresh().  There are also chunks of
        memory held for performance reasons.  That makes it hard to analyze
-       curses applications for memory leaks.  To work around this, build
-       debugging version of the ncurses library which frees those chunks
+       curses applications for memory leaks.  To work around this, build a
+       debugging version of the ncurses library which frees those chunks
        which it can, and provides the _nc_free_and_exit() function to free
-       the remainder on exit.  The ncurses utility and test programs use this
-       feature, e.g., via the ExitProgram() macro.
+       the remainder and then exit.  The ncurses utility and test programs
+       use this feature, e.g., via the ExitProgram() macro.
+
+       Because this lies outside of the library's intended usage, it is not
+       normally considered part of the ABI.  If there were some (as yet
+       unplanned) extension which frees memory in a manner that would let the
+       library resume and reallocate memory, then that would not use a "_nc_"
+       prefix.
 
     --disable-lp64
        The header files will ignore use of the _LP64 symbol to make chtype
@@ -390,6 +400,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 +835,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 +887,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 +935,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
@@ -988,7 +1037,7 @@ SUMMARY OF CONFIGURE OPTIONS:
        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.,
 
@@ -1072,6 +1121,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