-------------------------------------------------------------------------------
--- 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 --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.204 2018/02/10 17:46:44 tom Exp $
+-- $Id: INSTALL,v 1.222 2020/04/05 00:05:52 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
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
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 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.
+
+ 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.
- This option is ignored if --enable-rpath is not given.
+ 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-environ
Compile with environment restriction, so certain environment variables
--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.
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
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.
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
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)
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.
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
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
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
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"
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
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
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.
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
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
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
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.
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:
$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
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
$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