]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - INSTALL
ncurses 6.0 - patch 20160206
[ncurses.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 23487c7109238bf80d1712af00c661809ab04de2..8252244d8d26dd620567be24f37a273d8606227e 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.183 2015/01/17 23:20:46 tom Exp $
+-- $Id: INSTALL,v 1.194 2015/10/24 19:03:42 Tomas.Cech Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -196,17 +196,16 @@ INSTALLATION PROCEDURE:
     NOTE: You must have installed the terminfo database, or set the
     environment variable $TERMINFO to point to a SVr4-compatible terminfo
     database before running the test programs.  Not all vendors' terminfo
-    databases are SVr4-compatible, but most seem to be.  Exceptions include
-    DEC's Digital Unix (formerly known as OSF/1).
+    databases are SVr4-compatible, but most seem to be.
+
+    It is possible to configure ncurses to use other terminfo database formats.
+    A few are provided as examples in the include-directory (see --with-caps).
 
     If you run the test programs WITHOUT installing terminfo, ncurses may
     read the termcap file and cache that in $HOME/.terminfo, which will
     thereafter be used instead of the terminfo database.  See the comments
     on "--enable-getcap-cache", to see why this is a Bad Thing.
 
-    It is possible to configure ncurses to use other terminfo database formats.
-    A few are provided as examples in the include-directory (see --with-caps).
-
     The ncurses program is designed specifically to test the ncurses library.
     You can use it to verify that the screen highlights work correctly, that
     cursor addressing and window scrolling works OK, etc.
@@ -227,8 +226,7 @@ INSTALLATION PROCEDURE:
   ############################################################################
   #     CAVEAT EMPTOR: `install.data' run as root will NUKE any existing     #
   #  terminfo database. If you have any custom or unusual entries SAVE them  #
-  #  before you install ncurses.  I have a file called terminfo.custom for   #
-  #  this purpose.  Don't forget to run tic on the file once you're done.    #
+  #  before you install ncurses.                                             #
   ############################################################################
 
     The terminfo(5) manual page must be preprocessed with tbl(1) before
@@ -546,6 +544,14 @@ SUMMARY OF CONFIGURE OPTIONS:
        compatible with libncursesw 5.4.  None of the interfaces change, but
        applications which have mouse mask mmask_t's must be recompiled.
 
+    --enable-ext-putwin
+       Modify the file-format written by putwin() to use printable text rather
+       than binary files, allowing getwin() to read screen dumps written by
+       differently-configured ncurses libraries.  The extended getwin() can
+       still read binary screen dumps from the "same" configuration of
+       ncurses.  This does not change the ABI (the binary interface seen by
+       calling applications).
+
     --enable-getcap
        Use the 4.4BSD getcap code if available, or a bundled version of it to
        fetch termcap entries.  Entries read in this way cannot use (make
@@ -840,6 +846,12 @@ SUMMARY OF CONFIGURE OPTIONS:
        automatically chooses an appropriate ".sym" file, which lists the
        symbols which are part of the ABI.
 
+    --with-extra-suffix[=XXX]
+       Add the given suffix to header- and library-names to simplify
+       installing incompatible ncurses libraries, e.g., those using a
+       different ABI.  The renaming affects the name of the
+       include-subdirectory if --disable-overwrite is given.
+
     --with-fallbacks=XXX
        Specify a list of fallback terminal descriptions which will be
        compiled into the ncurses library.  See CONFIGURING FALLBACK ENTRIES.
@@ -966,7 +978,7 @@ SUMMARY OF CONFIGURE OPTIONS:
        copying the man-page for each alias.
 
     --with-manpage-tbl
-       Tell the configure script that you with to preprocess the manpages
+       Tell the configure script that you wish to preprocess the manpages
        by running them through tbl to generate tables understandable by
        nroff.
 
@@ -1081,6 +1093,9 @@ SUMMARY OF CONFIGURE OPTIONS:
        Specify a search-list of terminfo directories which will be compiled
        into the ncurses library (default: DATADIR/terminfo)
 
+       This is a colon-separated list, like the TERMINFO_DIRS environment
+       variable.
+
     --with-termlib[=XXX]
        When building the ncurses library, organize this as two parts:  the
        curses library (libncurses) and the low-level terminfo library
@@ -1130,11 +1145,11 @@ SUMMARY OF CONFIGURE OPTIONS:
        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.
-       
+
        Use "objdump -T" on a library to see the annotations.
 
-       The configure script will automatically apply a suitable ".map" file to
-       provide this information for Linux.  Solaris mapfiles differ:
+       The configure script attempts to 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, except for a special case of "_*".
@@ -1146,6 +1161,12 @@ SUMMARY OF CONFIGURE OPTIONS:
        several builds, some symbols will be listed in the the ".map" files
        that do not happen to be present in one configuration or another.
 
+       The sample ".map" (and ".sym") files are generated using a set of
+       scripts which build several configurations for each release version,
+       checking to see which of the "_nc_" symbols can be made local.  In
+       addition to the ncurses libraries and programs, the symbols used
+       by the "tack" program are made global.
+
        These sample ".map" files will not cover all possible combinations.
        In some cases, e.g., when using the --with-weak-symbols option, you
        may prefer to use a different ".map" file by setting this option's
@@ -1226,18 +1247,62 @@ SUMMARY OF CONFIGURE OPTIONS:
 COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
 --------------------------------------------
 
-    Because ncurses implements the X/Open Curses Specification, its interface
-    is fairly stable.  That does not mean the interface does not change.
-    Changes are made to the documented interfaces when we find differences
-    between ncurses and X/Open or implementations which they certify (such as
-    Solaris).  We add extensions to those interfaces to solve problems not
-    addressed by the original curses design, but those must not conflict with
-    the X/Open documentation.
+    Because ncurses implements X/Open Curses, its interface is fairly stable. 
+    That does not mean the interface does not change.  Changes are made to the
+    documented interfaces when we find differences between ncurses and X/Open
+    or implementations which largely correspond to X/Open (such as Solaris). 
+    We add extensions to those interfaces to solve problems not addressed by
+    the original curses design, but those must not conflict with the X/Open
+    documentation.
 
     Here are some of the major interface changes, and related problems which
     you may encounter when building a system with different versions of
     ncurses:
 
+    6.0 (Aug 08, 2015)
+       Interface changes:
+
+       + The 6.0 ABI modifies the defaults for these configure options:
+          --enable-const
+          --enable-ext-colors
+          --enable-ext-mouse
+          --enable-ext-putwin
+          --enable-interop
+          --enable-lp64
+          --enable-sp-funcs
+          --with-chtype=uint32_t
+          --with-mmask_t=uint32_t
+          --with-tparm-arg=intptr_t
+
+       + ncurses supports symbol versioning.  If you use this feature, about
+         half of the "_nc_" private symbols are changed to local symbols.
+
+       + a few applications may need to explicitly flush the standard output
+         when switching between printf's and (curses) printw.
+
+       Added extensions:
+
+       + use_tioctl is an improvement over use_env
+
+       + added wgetdelay to support the NCURSES_OPAQUE feature.
+
+       Added internal functions (other than "_sp" variants):
+               _nc_init_termtype
+               _nc_mvcur
+               _nc_putchar
+               _nc_setenv_num
+               _nc_trace_mmask_t
+
+       Removed internal functions:
+               none
+
+       Modified internal functions:
+               _nc_do_color - change parameters from short/bool to int
+               _nc_keypad - change parameter from bool to int
+               _nc_setupscreen - change parameter from bool to int
+               _nc_signal_handler - change parameter from bool to int
+
+    5.9 (Apr 04, 2011)
     5.8 (Feb 26, 2011)
        Interface changes:
 
@@ -1788,9 +1853,10 @@ IF YOU ARE A SYSTEM INTEGRATOR:
     Configuration and Installation:
 
        On platforms where ncurses is assumed to be installed in /usr/lib,
-       the configure script uses "/usr" as a default:
+       the configure script uses "/usr" as a default.  These include any
+       that use the Linux kernel, as well as these special cases:
 
-               GNU/Linux, FreeBSD, NetBSD, OpenBSD, Cygwin
+               FreeBSD, NetBSD, OpenBSD, Cygwin, MinGW
 
        For other platforms, the default is "/usr/local".  See the discussion
        of the "--disable-overwrite" option.
@@ -1951,11 +2017,10 @@ installation), there are a couple of details you need to be aware of.
 They have to do with the ncurses library, which uses terminfo rather
 than termcap for describing terminal characteristics.
 
-Though the ncurses library is terminfo-based, it will interpret your
+Though the ncurses library is terminfo-based, it can interpret your
 TERMCAP variable (if present), any local termcap files you reference
-through it, and the system termcap file.  However, in order to avoid
-slowing down your application startup, it will only do this once per
-terminal type!
+through it, and the system termcap file.  However, to avoid slowing
+down your application startup, it does this only once per terminal type!
 
 The first time you load a given terminal type from your termcap
 database, the library initialization code will automatically write it