]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - INSTALL
ncurses 6.2 - patch 20200801
[ncurses.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index bf1fead62859e2372bccd5ae95dbb6cfb1a93473..4cfff31e7b8a6063d3d37cbc9c1039835c5c3459 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.211 2018/09/08 23:28:11 tom Exp $
+-- $Id: INSTALL,v 1.223 2020/05/23 18:30:33 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,31 @@ 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-pkg-ldflags
+       Omit options in $EXTRA_LDFLAGS from the pkg-config ".pc" and
+       corresponding ncurses*-config script which normally are listed via
+       the "--libs" option.  These options are normally used to facilitate
+       linking to ncurses when it was configured to use the rpath feature.
+
+       See also --enable-rpath and --disable-rpath-hack.
+
     --disable-relink
        If --enable-rpath is given, the generated makefiles normally will
        rebuild shared libraries during install.  Use this option to simply
@@ -492,7 +518,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.
@@ -586,6 +612,12 @@ SUMMARY OF CONFIGURE OPTIONS:
        ncurses.  This does not change the ABI (the binary interface seen by
        calling applications).
 
+    --enable-fvisibility
+       Use the gcc "-fvisibility=hidden" option to make symbols which are not
+       explicitly exported, "hidden".  Doing this may reduce the number of
+       symbols exported in the C++ binding; it should have less effect on the
+       C libraries when symbol-versioning is used.
+
     --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
@@ -778,6 +810,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)
 
@@ -860,6 +895,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 +941,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 +997,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"
@@ -1033,6 +1080,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
@@ -1060,6 +1110,9 @@ 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.
@@ -1173,6 +1226,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
@@ -1329,6 +1386,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:
 
@@ -2120,9 +2214,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
 
@@ -2130,6 +2225,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
@@ -2138,10 +2235,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