diff --git a/INSTALL b/INSTALL
index 1ffe136..a2076ee 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,6 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2014,2015 Free Software Foundation, Inc.               --
+-- Copyright 2018-2023,2024 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.187 2015/07/16 23:59:08 tom Exp $
+-- $Id: INSTALL,v 1.254 2024/04/27 14:21:05 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -34,25 +35,22 @@
     * READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. *
     ************************************************************
 
-You should be reading the file INSTALL in a directory called ncurses-d.d, where
-d.d is the current version number.  There should be several subdirectories,
-including `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs',
-and `test'.  See the README file for a roadmap to the package.
+You should be reading the file INSTALL in a directory called ncurses-d.d,
+where d.d is the current version number.  There should be several
+subdirectories, including 'c++', 'form', 'man', 'menu', 'misc', 'ncurses',
+'panel', 'progs', and 'test'.  See 'README' for a roadmap to the package.
 
 If you are a distribution integrator or packager, please read and act on the
-section titled IF YOU ARE A SYSTEM INTEGRATOR below.
+section titled FOR SYSTEM INTEGRATORS below.
 
 If you are converting from BSD curses and do not have root access, be sure
 to read the BSD CONVERSION NOTES section below.
 
 If you are trying to build applications using gpm with ncurses,
-read the USING NCURSES WITH GPM section below.
+read the USING GPM section below.
 
-If you are running over the Andrew File System see the note below on
-USING NCURSES WITH AFS.
-
-If you are cross-compiling, see the note below on BUILDING NCURSES WITH A
-CROSS-COMPILER.
+If you are cross-compiling, see the note below on
+BUILDING WITH A CROSS-COMPILER.
 
 If you want to build the Ada95 binding, go to the Ada95 directory and
 follow the instructions there.  The Ada95 binding is not covered below.
@@ -75,14 +73,14 @@
 INSTALLATION PROCEDURE:
 ----------------------
 
-1.  First, decide whether you want ncurses to replace your existing library (in
-    which case you'll need super-user privileges) or be installed in parallel
-    with it.
+1.  First, decide whether you want ncurses to replace your existing library
+    (in which case you'll need super-user privileges) or be installed in
+    parallel with it.
 
     The --prefix option to configure changes the root directory for installing
     ncurses.  The default is normally in subdirectories of /usr/local, except
     for systems where ncurses is normally installed as a system library (see
-    "IF YOU ARE A SYSTEM INTEGRATOR").  Use --prefix=/usr to replace your
+    "FOR SYSTEM INTEGRATORS").  Use --prefix=/usr to replace your
     default curses distribution.
 
     The package gets installed beneath the --prefix directory as follows:
@@ -109,16 +107,16 @@
 
     See also the discussion of --with-install-prefix.
 
-2.  Type `./configure' in the top-level directory of the distribution to
+2.  Type './configure' in the top-level directory of the distribution to
     configure ncurses for your operating system and create the Makefiles.
     Besides --prefix, various configuration options are available to customize
-    the installation; use `./configure --help' to list the available options.
+    the installation; use './configure --help' to list the available options.
 
     If your operating system is not supported, read the PORTABILITY section in
     the file ncurses/README for information on how to create a configuration
     file for your system.
 
-    The `configure' script generates makefile rules for one or more object
+    The 'configure' script generates makefile rules for one or more object
     models and their associated libraries:
 
 	libncurses.a (normal)
@@ -148,7 +146,7 @@
     the library names (e.g., libncursest.a, libncursestw.a).
 
     If you do not specify any models, the normal and debug libraries will be
-    configured.  Typing `configure' with no arguments is equivalent to:
+    configured.  Typing 'configure' with no arguments is equivalent to:
 
 	./configure --with-normal --with-debug --enable-overwrite
 
@@ -179,10 +177,10 @@
     You can make curses and terminfo fall back to an existing file of termcap
     definitions by configuring with --enable-termcap.  If you do this, the
     library will search /etc/termcap before the terminfo database, and will
-    also interpret the contents of the TERM environment variable.  See the
+    also interpret the contents of the $TERM environment variable.  See the
     section BSD CONVERSION NOTES below.
 
-3.  Type `make'.  Ignore any warnings, no error messages should be produced.
+3.  Type 'make'.  Ignore any warnings; no error messages should be produced.
     This should compile the ncurses library, the terminfo compiler tic(1),
     captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1)
     programs (see the manual pages for explanation of what they do), some test
@@ -196,39 +194,38 @@
     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.
 
-5.  Once you've tested, you can type `make install' to install libraries,
-    the programs, the terminfo database and the manual pages.  Alternately, you
-    can type `make install' in each directory you want to install.  In the
+5.  Once you've tested, you can type 'make install' to install libraries,
+    the programs, the terminfo database and the manual pages.  Alternately,
+    you can type 'make install' in each directory you want to install.  In the
     top-level directory, you can do a partial install using these commands:
 
 	'make install.progs'    installs tic, infocmp, etc...
 	'make install.includes' installs the headers.
 	'make install.libs'     installs the libraries (and the headers).
-	'make install.data'     installs the terminfo data. (Note: `tic' must
+	'make install.data'     installs the terminfo data. (Note: 'tic' must
 				be installed before the terminfo data can be
 				compiled).
 	'make install.man'      installs the manual pages.
 
   ############################################################################
-  #     CAVEAT EMPTOR: `install.data' run as root will NUKE any existing     #
+  #     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
@@ -247,8 +244,8 @@
     compile using its curses.h you'll end up with a large number of
     undefined symbols at link time.
 
-    IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory
-    and run the `capconvert' script.  This script will deduce various things
+    IF YOU DO NOT HAVE ROOT: Change directory to the 'progs' subdirectory
+    and run the 'capconvert' script.  This script will deduce various things
     about your environment and use them to build you a private terminfo tree,
     so you can use ncurses applications.
 
@@ -271,20 +268,20 @@
     YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++.
 
 
-SUMMARY OF CONFIGURE OPTIONS:
-----------------------------
+CONFIGURE OPTIONS:
+-----------------
 
     The configure script provides a short list of its options when you type
 
 	./configure --help
 
-    The --help and several options are common to all configure scripts that are
-    generated with autoconf.  Those are all listed before the line
+    The --help and several options are common to all configure scripts that
+    are generated with autoconf.  Those are all listed before the line
 
 	--enable and --with options recognized:
 
-    The other options are specific to this package.  We list them in alphabetic
-    order.
+    The other options are specific to this package.  We list them in
+    alphabetic order.
 
     --disable-assumed-color
 	With ncurses 5.1, we introduced a new function, assume_default_colors()
@@ -312,18 +309,27 @@
 	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
 	Do not install the terminal database.  This is used to omit features
 	for packages, as done with --without-progs.
 
+    --disable-echo
+	Use the option --disable-echo to make the build-log less verbose by
+	suppressing the display of the compile and link commands.  This makes
+	it easier to see the compiler warnings.  (You can always use "make -n"
+	to see the options that are used).
+
     --disable-ext-funcs
 	Disable function-extensions.  Configure ncurses without the functions
 	that are not specified by XSI.  See ncurses/modules for the exact
 	list of library modules that would be suppressed.
 
+    --disable-gnat-projects
+	Disable GNAT projects even if usable, for testing old makefile rules.
+
     --disable-hashmap
 	Compile without hashmap scrolling-optimization code.  This algorithm is
 	the default.
@@ -337,25 +343,6 @@
     --disable-largefile
 	Disable compiler flags needed to use large-file interfaces.
 
-    --disable-lib-suffixes
-	Suppress the "w", "t" or "tw" suffixes which normally would be added
-	to the library names for the --enable-widec and --with-pthread options.
-
-    --disable-libtool-version
-	when using --with-libtool, control how the major/minor version numbers
-	are used for constructing the library name.
-
-	The default uses the -version-number feature of libtool, which makes
-	the library names compatible (though not identical) with the standard
-	build using --with-shared.
-
-	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.
@@ -376,6 +363,25 @@
 	library resume and reallocate memory, then that would not use a "_nc_"
 	prefix.
 
+    --disable-lib-suffixes
+	Suppress the "w", "t" or "tw" suffixes which normally would be added
+	to the library names for the --enable-widec and --with-pthread options.
+
+    --disable-libtool-version
+	when using --with-libtool, control how the major/minor version numbers
+	are used for constructing the library name.
+
+	The default uses the -version-number feature of libtool, which makes
+	the library names compatible (though not identical) with the standard
+	build using --with-shared.
+
+	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-lp64
 	The header files will ignore use of the _LP64 symbol to make chtype
 	and mmask_t types 32 bits (they may be long on 64-bit hosts, for
@@ -431,18 +437,59 @@
 	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 arbitrarily, 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 $LDFLAGS and $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 the libraries during install.  Use this option to simply
-	copy whatever the linked produced.
+	rebuild shared libraries during install.  Use this option to simply
+	copy whatever the linker produced.
 
-	This option is ignored if --enable-rpath is not given.
+	Static libraries cannot simply be copied because tools use timestamps
+	to determine if the library's symbol table is up to date.  If your
+	install program supports the "-p" (preserve timestamp) option, that
+	is used when --disable-relink is given, to avoid rebuilding the symbol
+	table.
+
+	Finally, some tools ignore the subsecond timestamps supported by some
+	filesystems.  This option adds a 1-second sleep to help those tools
+	avoid unnecessary relinking during the install process.
+
+    --disable-root-access
+	Compile with environment restriction, so most file-access is limited
+	when running as root, or via a setuid/setgid application.
 
     --disable-root-environ
 	Compile with environment restriction, so certain environment variables
-	are not available when running as root, or via a setuid/setgid
-	application.  These are (for example $TERMINFO) those that allow the
-	search path for the terminfo or termcap entry to be customized.
+	are not available when running as root.  These are (for example
+	$TERMINFO) those that allow the search path for the terminfo or termcap
+	entry to be customized.
+
+	Disabling the root environment variables also disables the setuid
+	environment variables by default.  Use the --disable-setuid-environ
+	option to modify this behavior.
 
     --disable-rpath-hack
 	Normally the configure script helps link libraries found in unusual
@@ -454,6 +501,19 @@
 	Compile without scroll-hints code.  This option is ignored when
 	hashmap scrolling is configured, which is the default.
 
+    --disable-stripping
+	Do not strip installed executables.
+
+    --disable-setuid-environ
+	Compile with environment restriction, so certain environment variables
+	are not available when running via a setuid/setgid application.  These
+	are (for example $TERMINFO) those that allow the search path for the
+	terminfo or termcap entry to be customized.
+
+	A setuid/setgid application inherits its environment variables from
+	the current user, in contrast to sudo which may limit the environment
+	variables that ncurses uses.
+
     --disable-tic-depends
 	When building shared libraries, normally the tic library is linked to
 	depend upon the ncurses library (or equivalently, on the tinfo-library
@@ -493,6 +553,10 @@
 	Recognize BSD-style prefix padding.  Some ancient BSD programs (such as
 	nethack) call tputs("50") to implement delays.
 
+    --enable-check-size
+	Compile-in feature to detect screensize for terminals which do not
+	advertise their screensize, e.g., serial terminals.
+
     --enable-colorfgbg
 	Compile with experimental $COLORFGBG code.  That environment variable
 	is set by some terminal emulators as a hint to applications, by
@@ -518,16 +582,13 @@
 	issues arise when porting to SVr4 curses, which uses const in even
 	fewer places.
 
-    --enable-echo
-	Use the option --disable-echo to make the build-log less verbose by
-	suppressing the display of the compile and link commands.  This makes
-	it easier to see the compiler warnings.  (You can always use "make -n"
-	to see the options that are used).
-
     --enable-expanded
 	For testing, generate functions for certain macros to make them visible
 	as such to the debugger.  See also the --disable-macros option.
 
+    --enable-exp-win32
+	When configuring for MinGW, use the experimental Windows 10 driver.
+
     --enable-ext-colors
 	Extend the cchar_t structure to allow more than 16 colors to be
 	encoded.  This applies only to the wide-character (--enable-widec)
@@ -554,6 +615,12 @@
 	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
@@ -599,6 +666,22 @@
 	terminfo entries.  This is the default, unless you have disabled the
 	extended functions.
 
+    --enable-opaque-curses
+    --enable-opaque-form
+    --enable-opaque-menu
+    --enable-opaque-panel
+	Define symbol in curses.h controlling whether some library structures
+	are opaque, meaning that their members are accessible only via the
+	documented API.  The --enable-opaque-curses option may be overridden
+	by the --enable-reentrant option.
+
+	Enabling opaque-curses enables opaque for the form, menu, and panel
+	libraries.  Use their corresponding options to disable the feature
+	individually.
+
+	NOTE: beginning with ncurses 6.5 this option is enabled by default;
+	older versions disable it by default.
+
     --enable-pc-files
 	If pkg-config is found (see --with-pkg-config), generate ".pc" files
 	for each of the libraries, and install them in pkg-config's library
@@ -609,9 +692,9 @@
 	call can be interrupted for SIGWINCH.
 
     --enable-reentrant
-	Compile experimental configuration which improves reentrant use of the
-	library by reducing global and static variables.  This option is also
-	set if --with-pthread is used.
+	Compile configuration which improves reentrant use of the library by
+	reducing global and static variables.  This option is also set if
+	--with-pthread is used.
 
 	Enabling this option adds a "t" to the library names, except for the
 	special case when --enable-weak-symbols is also used.
@@ -635,14 +718,8 @@
     --enable-safe-sprintf
 	Compile with experimental safe-sprintf code.  You may consider using
 	this if you are building ncurses for a system that has neither
-	vsnprintf() or vsprintf().  It is slow, however.
-
-    --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.
+	vsnprintf() or vsprintf().  It is slow, however, and is used only on
+	very old systems which lack vsnprintf().
 
     --enable-signed-char
 	The term.h header declares a Booleans[] array typed "char".  But it
@@ -651,11 +728,26 @@
 	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
 	delscreen().
 
+    --enable-stdnoreturn
+	When enabled, check if the <stdnoreturn.h> header exists, and if found
+	define GCC_NORETURN to _Noreturn rather than either the gcc-specific
+	__attribute__((noreturn)) or an empty token.  Doing this may require
+	calling programs which use GCC_NORETURN in their own function
+	definitions to be modified, because _Noreturn is only accepted as
+	the first token in a declaration.
+
     --enable-string-hacks
 	Controls whether strlcat and strlcpy may be used.  The same issue
 	applies to OpenBSD's warnings about snprintf, noting that this function
@@ -694,6 +786,26 @@
     --enable-warnings
 	Turn on GCC compiler warnings.  There should be only a few.
 
+    --enable-wattr-macros
+	The 6.0 ABI adds support for extended colors and for extended mouse.
+	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.
+
+	Since ncurses provides an actual function for each of these macros,
+	suppressing them from the curses.h header allows the ncurses5 libraries
+	to be used in most applications.
+
+	NOTE: The extended colors also are used in the cchar_t structure, but
+	fewer applications use that.
+
+	NOTE: This workaround does not help with mismatches in the ncurses
+	mouse version.  The extended mouse feature uses one less fewer bit for
+	each button, so that only the first button will work as expected with
+	a mismatch between header and library.  Again, most applications will
+	work, since most use only the first button.
+
     --enable-weak-symbols
 	If the --with-pthread option is set, check if the compiler supports
 	weak-symbols.  If it does, then name the thread-capable library without
@@ -714,14 +826,22 @@
 	symbolic link to equate libncurses.so with libncursesw.so
 
 	NOTE: the Ada95 binding may be built against either version of the the
-	ncurses library, but you must decide which:  the binding installs the
-	same set of files for either version.  Currently (2002/6/22) it does
+	ncurses library, but you must decide which: the binding installs the
+	same set of files for either version.  Currently (2023/10/21) it does
 	not use the extended features from the wide-character code, so it is
 	probably better to not install the binding for that configuration.
 
+	NOTE: beginning with ncurses 6.5 this option is enabled by default;
+	older versions disable it by default.
+
     --enable-xmc-glitch
 	Compile-in support experimental xmc (magic cookie) code.
 
+    --with-abi-altered=NUM
+	Override the displayed (rather than compiled-in) ABI.  Only packagers
+	who have created configurations where the ABI differs from ncurses
+	should be interested in this option.
+
     --with-abi-version=NUM
 	Override the ABI version, which is used in shared library filenames.
 	Normally this is the same as the release version; some ports have
@@ -737,6 +857,9 @@
 	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)
 
@@ -753,10 +876,6 @@
 	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.
@@ -771,6 +890,10 @@
 	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
@@ -815,6 +938,14 @@
 	executables, e.g., by setting "--with-chtype=long" (the configure
 	script supplies "unsigned").
 
+    --with-config-suffix=XXX
+	Specify an suffix for "ncurses*" in the ncurses*-config filename to
+	work around conflicts with packages.  The suffix is placed before the
+	dash.
+
+    --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
@@ -858,6 +989,11 @@
 	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
@@ -909,6 +1045,10 @@
 
 	See also the --enable-getcap option.
 
+    --with-infocmp-path[=XXX]
+	Use this option to override the automatic detection of infocmp 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"
@@ -947,10 +1087,14 @@
 	macros for libtool, e.g., AC_PROG_LIBTOOL.  See the comments in
 	aclocal.m4 for CF_PROG_LIBTOOL, and ensure that you build configure
 	using the appropriate patch for autoconf from
-		http://invisible-island.net/autoconf/
+		https://invisible-island.net/autoconf/
 
     --with-libtool-opts=XXX
-	Specify additional libtool options.
+	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
+	to get the same behavior as automake-flavored
+		./configure --enable-static
 
     --with-manpage-aliases
 	Tell the configure script you wish to create entries in the
@@ -980,10 +1124,13 @@
 	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.
 
+    --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
@@ -1011,17 +1158,46 @@
 	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.
+	If ".pc" files are installed (see --enable-pc-files), 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-pkg-config=[DIR]
-	Check for pkg-config, optionally specifying its path.
+    --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.
 
-    --with-pkg-config-libdir=[DIR]
+	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[=CMD]
+	Check for pkg-config, optionally specifying its pathname.
+
+    --with-pkg-config-libdir[=DIR]
 	If pkg-config was found, override the automatic check for its library
-	path.
+	path.  The optional DIR value can be
+	
+	"auto", automatically use pkg-config's library directory, or
+	
+	"libdir", use a ${libdir}/pkgconfig (based on the configuration), or
+	
+	a directory path, i.e., beginning with "/".
+
+	The configure script allows only a single directory, because
+	that is used as the directory in which to install ".pc" files.
+
+	The automatic check for the library path prefers the first directory
+	which currently exists.  If none of the directories listed by
+	pkg-config exist, the check prefers a pkgconfig directory under the
+	"libdir" set by the configure script (which may not be the system
+	default), or if pkg-config lists nothing suitable, the first one which
+	is listed by pkg-config is used.
 
     --with-profile
 	Generate profile-libraries These are named by adding "_p" to the root,
@@ -1081,6 +1257,10 @@
 	This is normally chosen automatically based on the type of system
 	which you are building on.  We use it for testing the configure script.
 
+    --with-strip-program=XXX
+    	When stripping executables during install, use the specified program
+	rather than "strip".
+
     --with-sysmouse
 	use FreeBSD sysmouse interface provide mouse support on the console.
 
@@ -1095,6 +1275,9 @@
 	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
@@ -1112,6 +1295,10 @@
 	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
@@ -1140,6 +1327,10 @@
 	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
@@ -1164,25 +1355,13 @@
 	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.
+	by the "tack" program before version 1.08 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
 	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
@@ -1194,6 +1373,20 @@
 	which applications should not call even via a macro.  This configure
 	option lets you choose the prefix for these wrapped variables.
 
+    --with-x11-rgb=FILE
+	Provide a pathname for the X11 rgb file, used by the picsmap program.
+	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).  If XXX is "auto", the configure script chooses BS or
+	DEL according to platform defaults.
+
+	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.
@@ -1243,22 +1436,267 @@
 	X11R5 and X11R6 xterm.
 
 
-COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
---------------------------------------------
+COMPATIBILITY WITH OLDER RELEASES:
+---------------------------------
 
-    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 (??? ??, 2015)
+    6.5 (Apt 27, 2024)
+	Interface changes:
+
+	+ the WINDOW structure and some related internal data types declared
+	  in <curses.h> have been made opaque by default;
+	+ the FORM, MENU, and PANEL structures and related internal data types
+	  from their corresponding header files have been made opqaue by
+	  default; and
+	+ support for wide characters is now enabled by default.
+
+	Added extensions:
+
+	+ is_cbreak, is_echo, is_nl, and is_raw, as well as "_sp" variants
+
+	+ tiparm_s and tiscan_s
+
+	Added internal functions (other than "_sp" variants):
+
+	+ _nc_env_access
+
+	Removed internal functions:
+
+	+ none
+
+	Modified internal functions:
+
+	+ These now pass a const parameter: _nc_delink_entry, _nc_str_copy,
+	  and _nc_trans_string
+
+    6.4 (Dec 31, 2022)
+	Interface changes:
+
+	+ none
+
+	Added extensions:
+
+	+ none
+
+	Added internal functions (other than "_sp" variants):
+
+	+ add _nc_free_termtype1 and _nc_free_tparm, for memory-leaks
+
+	Removed internal functions:
+
+	+ none
+
+	Modified internal functions:
+
+	+ none
+
+    6.3 (Oct 21, 2021)
+	Interface changes:
+
+	+ the definition of TERMTYPE2 is now internal, not visible in the ABI,
+	  like the enclosing TERMINAL which was previously made opaque.  This
+	  was done to provide SCREEN-specific "static" variables in terminfo.
+
+	Added extensions:
+
+	+ add sp-funcs for erasewchar, killwchar.
+
+	Added internal functions (other than "_sp" variants):
+
+	+ _nc_safe_fopen and _nc_safe_open3 limit privileges if possible when
+	  opening a file; otherwise disallow access for updating files.
+
+	+ _nc_tiparm is a variant of tiparm which is used when all of the
+	  parameters are known to be numbers rather than possibly strings.
+
+	+ _nc_reset_tparm improves tic's checks by resetting the terminfo
+	  "static variables" before calling functions which may update them.
+
+	Removed internal functions:
+
+	+ none
+
+	Modified internal functions:
+
+	+ _nc_trace_ttymode passes pointer to const data
+
+	+ _nc_tparm_analyze passes pointer to int*, not int[]
+
+    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:
+
+	+ X/Open Curses specifies a "reserved" void* parameter in several
+	  functions, saying that it must be NULL.  In this release, if the
+	  parameter is non-NULL, it is interpreted as a point to an integer
+	  containing a color pair.  In previous releases, a non-NULL parameter
+	  caused an error return.  Portable applications are unaffected.  Here
+	  are the functions which have been extended:
+		attr_get
+		attr_off
+		attr_on
+		attr_set
+		chgat
+		color_set
+		mvchgat
+		mvwchgat
+		slk_attr_off
+		slk_attr_on
+		slk_attr_set
+		wattr_get
+		wattr_on
+		wattr_off
+		wattr_set
+		wchgat
+		wcolor_set
+
+	+ the TERMINAL structure declared in <term.h> has been made opaque,
+	  and its size increased to handle the increased size of color pair
+	  and color value, as well as other numeric capabilities.
+
+	  A few applications required change, e.g., to use def_prog_mode;
+	  only one application (tack) is known to have a valid reason for
+	  accessing these internal details, and that was addressed by the
+	  release of tack 1.08 in 2017.  Internal functions marked as used
+	  by tack will be deprecated in future releases.
+
+	Added extensions:
+
+	+ Several new functions were added to manipulate extended color pairs
+	  and color values.  These include:
+		alloc_pair
+		extended_color_content
+		extended_pair_content
+		extended_slk_color
+		find_pair
+		free_pair
+		init_extended_color
+		init_extended_pair
+		reset_color_pairs
+
+	  as well as corresponding sp-functions.
+
+	+ A new terminfo capability "RGB" tells the ncurses library that the
+	  color values are red/green/blue, to eliminate the need for palettes
+	  in that special case for the color_content function.
+
+	Added internal functions (other than "_sp" variants):
+		_nc_copy_termtype2
+		_nc_export_termtype2
+		_nc_fallback2
+		_nc_find_prescr
+		_nc_forget_prescr
+		_nc_free_termtype2
+		_nc_read_entry2
+		_nc_write_object
+
+	Removed internal functions:
+		_nc_check_termtype
+		_nc_resolve_uses
+
+	Modified internal functions:
+
+	+ symbols are used by tic/infocmp/toe:
+		_nc_align_termtype - change parameters to TERMTYPE2*
+		_nc_check_termtype2 - change parameter to TERMTYPE2*
+		_nc_read_file_entry - change parameter to TERMTYPE2*
+		_nc_read_termtype - change parameter to TERMTYPE2*
+		_nc_trim_sgr0 - change parameter to TERMTYPE2*
+		_nc_write_entry - change parameter to TERMTYPE2*
+
+	+ symbols used only within the library:
+		_nc_fallback - change return type to TERMTYPE2*
+		_nc_init_termtype - change parameter to TERMTYPE2*
+
+    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)
@@ -1805,15 +2243,16 @@
 	incorrect color scheme.
 
 
-IF YOU ARE A SYSTEM INTEGRATOR:
-------------------------------
+FOR SYSTEM INTEGRATORS:
+----------------------
 
     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.
@@ -1856,15 +2295,15 @@
     Naming the Console Terminal
 
 	In various systems there has been a practice of designating the system
-	console driver type as `console'.  Please do not do this!  It
+	console driver type as 'console'.  Please do not do this!  It
 	complicates peoples' lives, because it can mean that several different
 	terminfo entries from different operating systems all logically want to
-	be called `console'.
+	be called 'console'.
 
 	Please pick a name unique to your console driver and set that up
 	in the /etc/inittab table or local equivalent.  Send the entry to the
 	terminfo maintainer (listed in the misc/terminfo file) to be included
-	in the terminfo file, if it's not already there.  See the
+	in the terminfo file, if it is not already there.  See the
 	term(7) manual page included with this distribution for more on
 	conventions for choosing type names.
 
@@ -1881,7 +2320,7 @@
 	that will make users' lives easier rather than harder.
 
 
-RECENT XTERM VERSIONS:
+MODERN XTERM VERSIONS:
 ---------------------
 
 	The terminfo database file included with this distribution assumes you
@@ -1897,9 +2336,13 @@
 	In order to support operation of ncurses programs before the terminfo
 	tree is accessible (that is, in single-user mode or at OS installation
 	time) the ncurses library can be compiled to include an array of
-	pre-fetched fallback entries.  This must be done on a machine which
-	has ncurses' infocmp and terminfo database installed (as well as
-	ncurses' tic and infocmp programs).
+	pre-fetched fallback entries.
+
+	NOTE: This must be done on a machine which has ncurses' infocmp and
+	terminfo database installed (as well as ncurses' tic and infocmp
+	programs).  That is because the fallback sources are generated and
+	compiled into the library before the build-tree's copy of infocmp is
+	available.
 
 	These entries are checked by setupterm() only when the conventional
 	fetches from the terminfo tree and the termcap fallback (if configured)
@@ -1922,9 +2365,10 @@
 			$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
 
@@ -1932,6 +2376,8 @@
 		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
@@ -1940,10 +2386,11 @@
 			$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
@@ -1974,11 +2421,10 @@
 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
@@ -2015,12 +2461,8 @@
 
 ------------------------------- CUT HERE --------------------------------
 
-USING NCURSES WITH AFS:
-	AFS treats each directory as a separate logical filesystem, you
-	can't hard-link across them.  The --enable-symlinks option copes
-	with this by making tic use symbolic links.
-
-USING NCURSES WITH GPM:
+USING GPM:
+---------
 	Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
 	which is used with Linux console.  Be aware that GPM is commonly
 	installed as a shared library which contains a wrapper for the curses
@@ -2037,9 +2479,11 @@
 	but the linker may not cooperate, producing mysterious errors.
 	See the FAQ, as well as the discussion under the --with-gpm option:
 
-	http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
+	https://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
 
-BUILDING NCURSES WITH A CROSS-COMPILER
+
+BUILDING WITH A CROSS-COMPILER:
+------------------------------
 	Ncurses can be built with a cross-compiler.  Some parts must be built
 	with the host's compiler since they are used for building programs
 	(e.g., ncurses/make_hash and ncurses/make_keys) that generate tables
@@ -2064,14 +2508,26 @@
 	When ncurses has been successfully cross-compiled, you may want to use
 	"make install" (with a suitable target directory) to construct an
 	install tree.  Note that in this case (as with the --with-fallbacks
-	option), ncurses uses the development platform's tic to do the
-	"make install.data" portion.
+	option), ncurses uses the development platform's tic to do the "make
+	install.data" portion.
 
 	The system's tic program is used to install the terminal database,
-	even for cross-compiles.  For best results, the tic program should
-	be from the most current version of ncurses.
+	even for cross-compiles.  For best results, the tic program should be
+	from the most current version of ncurses.
 
-BUGS:
+	NOTE:  the system's tic program may use a different terminfo database
+	format than the target system.  For instance, as described in term(5),
+	the conventional terminfo layout uses a directory hierarchy with one
+	letter names, while some platforms use two-letter names to work with
+	case-insensitive filesystems.  The configure script searches for a tic
+	program using the AC_CHECK_TOOL macro, which will prefer programs
+	using the canonical host prefix in their name.  You can use this fact
+	to provide a cross-compiler support utility tic, otherwise you can
+	override the configure script's choice using --with-tic-path
+
+
+BUG REPORTS:
+-----------
 	Send any feedback to the ncurses mailing list at
 	bug-ncurses@gnu.org. To subscribe send mail to
 	bug-ncurses-request@gnu.org with body that reads:
@@ -2080,4 +2536,4 @@
 	The Hacker's Guide in the doc directory includes some guidelines
 	on how to report bugs in ways that will get them fixed most quickly.
 
--- vile:txtmode
+-- vile:txtmode fc=78
