ncurses 6.2 - patch 20200308
[ncurses.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index e57bbec75d0fd6cdb006474925e3e99a6494c77f..8ce3878ce93467aa615d17745bb698a27ed47d2f 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,6 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.               --
+-- Copyright 2018-2019,2020 Thomas E. Dickey                                 --
+-- Copyright 1998-2017,2018 Free Software Foundation, Inc.                   --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
 -- copy of this software and associated documentation files (the             --
@@ -25,7 +26,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.206 2018/08/18 20:41:07 tom Exp $
+-- $Id: INSTALL,v 1.221 2020/03/08 14:27:08 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -310,7 +311,7 @@ SUMMARY OF CONFIGURE OPTIONS:
        and termcap data from disk.  You can configure ncurses to have a
        built-in database, aka "fallback" entries.  Embedded applications may
        have no need for an external database.  Some, but not all of the
-       programs are useful in this configuration, e.g., reset and tput versus
+       programs are useful in this configuration, e.g., tset and tput versus
        infocmp and tic.
 
     --disable-db-install
@@ -438,6 +439,23 @@ SUMMARY OF CONFIGURE OPTIONS:
        Without some special effort, it will either fail to compile at all,
        or the compiler may find a different unctrl.h file.
 
+       In addition to the curses library, a system may provide its own
+       versions of the add-on libraries (form, menu, panel), which would
+       not be compatible with ncurses.  These options allow you to rename
+       ncurses' add-on libraries to avoid conflicts when linking:
+
+               --with-form-libname=XXX
+               --with-menu-libname=XXX
+               --with-panel-libname=XXX
+
+       Rather than renaming them abitrarily, a prefix or suffix is
+       recommended.  An "n" prefix provides consistency with ncurses versus
+       curses, i.e.,
+
+               --with-form-libname=nform
+               --with-menu-libname=nmenu
+               --with-panel-libname=npanel
+
     --disable-relink
        If --enable-rpath is given, the generated makefiles normally will
        rebuild shared libraries during install.  Use this option to simply
@@ -492,7 +510,7 @@ SUMMARY OF CONFIGURE OPTIONS:
 
     --disable-wattr-macros
        The 6.0 ABI adds support for extended colors and for extended mouse.
-       The former is a noticeable problem when developers inadvertantly
+       The former is a noticeable problem when developers inadvertently
        compile using the ncurses6 header files and link with an ncurses5
        library, because the wattr* macros use a new field in the WINDOW
        structure.  These macros are used in several applications.
@@ -678,13 +696,6 @@ SUMMARY OF CONFIGURE OPTIONS:
        vsnprintf() or vsprintf().  It is slow, however, and is used only on
        very old systems which lack vsnprintf().
 
-    --enable-sigwinch
-       Compile support for ncurses' SIGWINCH handler.  If your application has
-       its own SIGWINCH handler, ncurses will not use its own.  The ncurses
-       handler causes wgetch() to return KEY_RESIZE when the screen-size
-       changes.  This option is the default, unless you have disabled the
-       extended functions.
-
     --enable-signed-char
        The term.h header declares a Booleans[] array typed "char".  But it
        stores signed values there and "char" is not necessarily signed.
@@ -692,6 +703,13 @@ SUMMARY OF CONFIGURE OPTIONS:
        is not strictly compatible.  This option allows one to implement this
        alteration without patching the source code.
 
+    --enable-sigwinch
+       Compile support for ncurses' SIGWINCH handler.  If your application has
+       its own SIGWINCH handler, ncurses will not use its own.  The ncurses
+       handler causes wgetch() to return KEY_RESIZE when the screen-size
+       changes.  This option is the default, unless you have disabled the
+       extended functions.
+
     --enable-sp-funcs
        Compile-in support for extended functions which accept a SCREEN pointer,
        reducing the need for juggling the global SP value with set_term() and
@@ -778,6 +796,9 @@ SUMMARY OF CONFIGURE OPTIONS:
        Tell where to install the Ada includes (default:
        PREFIX/lib/ada/adainclude)
 
+    --with-ada-libname=NAME
+       Override the name of the Ada binding (default: "AdaCurses")
+
     --with-ada-objects=DIR
        Tell where to install the Ada objects (default:  PREFIX/lib/ada/adalib)
 
@@ -794,10 +815,6 @@ SUMMARY OF CONFIGURE OPTIONS:
        correspond with that in <stdbool.h>, or defaults to platform-specific
        sizes).
 
-    --with-build-cpp=XXX
-       This option is provided by the same macro used for $BUILD_CC, etc.,
-       but is not directly used by ncurses.
-
     --with-build-cc=XXX
        If cross-compiling, specify a host C compiler, which is needed to
        compile a few utilities which generate source modules for ncurses.
@@ -812,6 +829,10 @@ SUMMARY OF CONFIGURE OPTIONS:
        You can also set the environment variable $BUILD_CFLAGS rather than
        use this option.
 
+    --with-build-cpp=XXX
+       This option is provided by the same macro used for $BUILD_CC, etc.,
+       but is not directly used by ncurses.
+
     --with-build-cppflags=XXX
        If cross-compiling, specify the host C preprocessor-flags.  You might
        need to do this if the target compiler has unusual flags which confuse
@@ -860,6 +881,9 @@ SUMMARY OF CONFIGURE OPTIONS:
        Specify a suffix for the ncursesw6-config file, etc., used to work
        around conflicts with packages.
 
+    --with-cxx-libname=NAME
+       Override the basename of the ncurses++ library (default: "ncurses++")
+
     --with-cxx-shared
        When --with-shared is set, build libncurses++ as a shared library.
        This implicitly relies upon building with gcc/g++, since other
@@ -903,6 +927,11 @@ SUMMARY OF CONFIGURE OPTIONS:
        Specify a list of fallback terminal descriptions which will be
        compiled into the ncurses library.  See CONFIGURING FALLBACK ENTRIES.
 
+       See also "--with-tic-path" and "--with-infocmp-path".
+
+    --with-form-libname=NAME
+       Override the basename of the form library (default: "form")
+
     --with-gpm
        use Alessandro Rubini's GPM library to provide mouse support on the
        Linux console.  Prior to ncurses 5.5, this introduced a dependency on
@@ -954,6 +983,10 @@ SUMMARY OF CONFIGURE OPTIONS:
 
        See also the --enable-getcap option.
 
+    --with-infocmp-path[=XXX]
+       Use this option to override the automatic detection of tic in your
+       $PATH when building fallbacks (see "--with-fallbacks").
+
     --with-install-prefix=XXX
        Allows you to specify an alternate location for installing ncurses
        after building it.  The value you specify is prepended to the "real"
@@ -995,9 +1028,6 @@ SUMMARY OF CONFIGURE OPTIONS:
                https://invisible-island.net/autoconf/
 
     --with-libtool-opts=XXX
-       Specify additional libtool options.
-
-    --with-libtool-opts
        Allow user to pass additional libtool options into the library creation
        and link steps.  The main use for this is to do something like
                ./configure --with-libtool-opts=-static
@@ -1036,6 +1066,9 @@ SUMMARY OF CONFIGURE OPTIONS:
        by running them through tbl to generate tables understandable by
        nroff.
 
+    --with-menu-libname=NAME
+       Override the basename of the menu library (default: "menu")
+
     --with-mmask-t=TYPE
        Override type of mmask_t, which stores the mouse mask.  Prior to
        ncurses 5.5, this was always unsigned long, but with ncurses 5.5, it
@@ -1063,11 +1096,23 @@ SUMMARY OF CONFIGURE OPTIONS:
        those using termcap, do not use the higher speeds.  Your application
        (or system, in general) may or may not.
 
+    --with-panel-libname=NAME
+       Override the basename of the panel library (default: "panel")
+
     --with-pc-suffix=SUFFIX
        If ".pc" files are installed, optionally add a suffix to the files
        and corresponding package names to separate unusual configurations.
        If no option value is given (or if it is "none"), no suffix is added.
 
+    --with-pcre2
+       Add PCRE2 (Perl-compatible regular expressions v2) to the build if it
+       is available and the user requests it.  Assume the application will
+       otherwise use the POSIX interface.
+
+       This is useful for MinGW builds because the usual POSIX interface is
+       not supplied by the development environment, while ncurses' form
+       library uses a regular expression feature for one of the field types.
+
     --with-pkg-config=[DIR]
        Check for pkg-config, optionally specifying its path.
 
@@ -1167,6 +1212,10 @@ SUMMARY OF CONFIGURE OPTIONS:
        Specify a search-list of termcap files which will be compiled into the
        ncurses library (default:  /etc/termcap:/usr/share/misc/termcap)
 
+    --with-tic-path[=XXX]
+       Use this option to override the automatic detection of tic in your
+       $PATH when building fallbacks (see "--with-fallbacks").
+
     --with-ticlib[=XXX]
        When building the ncurses library, build a separate library for
        the modules that are used only by the utility programs.  Normally
@@ -1195,6 +1244,10 @@ 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-valgrind
+       For testing, compile with debug option.
+       This also sets the --disable-leaks option.
+
     --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
@@ -1226,18 +1279,6 @@ SUMMARY OF CONFIGURE OPTIONS:
        may prefer to use a different ".map" file by setting this option's
        value.
 
-    --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
-       (or del, 127).
-
-       During installation, the makefile and scripts modifies the "xterm+kbs"
-       terminfo entry to use this setting.
-
-    --with-valgrind
-       For testing, compile with debug option.
-       This also sets the --disable-leaks option.
-
     --with-wrap-prefix=XXX
        When using the --enable-reentrant option, ncurses redefines variables
        that would be global in curses, e.g., LINES, as a macro that calls a
@@ -1254,6 +1295,14 @@ SUMMARY OF CONFIGURE OPTIONS:
        This overrides a configure check which usually works, but is needed
        due to the lack of standardization for X11's files.
 
+    --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
+       (or del, 127).
+
+       During installation, the makefile and scripts modifies the "xterm+kbs"
+       terminfo entry to use this setting.
+
     --without-ada
        Suppress the configure script's check for Ada95, do not build the
        Ada95 binding and related demo.
@@ -1323,6 +1372,43 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
     you may encounter when building a system with different versions of
     ncurses:
 
+    6.2 (Feb 12, 2020)
+       Interface changes:
+
+       + the terminal database must be compiled with ncurses 6.2 tic;
+         older versions of tic/infocmp will not work.  Aside from that,
+         the compiled database will work with older applications.
+
+       + "*.pc" and "ncurses*-config" files give the same information.
+
+       + vwprintw and vwscanw are deprecated.
+
+       Added extensions:
+
+       + These make it simpler to substitute a debug-configuration of the
+         library for non-debug:
+               curses_trace
+               exit_curses
+               exit_terminfo
+
+       Added internal functions (other than "_sp" variants):
+
+       + These provide fast-lookup of common user-defined capabilities:
+               _nc_find_user_entry
+               _nc_get_userdefs_table
+               _nc_get_hash_user
+
+       + This is added to work around compiler-warnings:
+               _nc_fmt_funcptr
+
+       Removed internal functions:
+
+       + _nc_import_termtype
+
+       Modified internal functions:
+
+       + _nc_reserve_pairs no longer returns a value
+
     6.1 (Jan 27, 2018)
        Interface changes:
 
@@ -2114,9 +2200,10 @@ CONFIGURING FALLBACK ENTRIES:
                        $TERMINFO \
                        ../misc/terminfo.src \
                        `which tic` \
+                       `which infocmp` \
                        linux vt100 xterm >fallback.c
 
-       The first three parameters of the script are normally supplied by
+       The first four parameters of the script are normally supplied by
        the configured makefiles via the "--with-fallbacks" option.  They
        are
 
@@ -2124,6 +2211,8 @@ CONFIGURING FALLBACK ENTRIES:
                2) the source for the terminfo entries
                3) the location of the tic program, used to create a terminfo
                   database.
+               4) the location of the infocmp program, used to print a terminfo
+                  description.
 
        Then just rebuild and reinstall the library as you would normally.
        You can restore the default empty fallback list with
@@ -2132,10 +2221,11 @@ CONFIGURING FALLBACK ENTRIES:
                        $TERMINFO \
                        ../misc/terminfo.src \
                        `which tic` \
+                       `which infocmp` \
                        >fallback.c
 
        The overhead for an empty fallback list is one trivial stub function.
-       Any non-empty fallback list is const-ed and therefore lives in sharable
+       Any non-empty fallback list is const'd and therefore lives in shareable
        text space.  You can look at the comment trailing each initializer in
        the generated ncurses/fallback.c file to see the core cost of the
        fallbacks.  A good rule of thumb for modern vt100-like entries is that