-- 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.193 2015/09/26 21:34:14 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
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.
############################################################################
# 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
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
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.
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
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 "_*".
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
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:
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.
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