X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=INSTALL;h=e57bbec75d0fd6cdb006474925e3e99a6494c77f;hp=1ffe13648696e5c03c127c093a83c76589a290e7;hb=7d6371e47006c8aef4ac94f52998a35b03bf89cf;hpb=6a530b46563470c2ca73579d1994a0c8e275dd98 diff --git a/INSTALL b/INSTALL index 1ffe1364..e57bbec7 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. -- +-- Copyright (c) 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 +25,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.206 2018/08/18 20:41:07 tom Exp $ --------------------------------------------------------------------- How to install Ncurses/Terminfo on your system --------------------------------------------------------------------- @@ -196,17 +196,16 @@ INSTALLATION PROCEDURE: 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. @@ -227,8 +226,7 @@ INSTALLATION PROCEDURE: ############################################################################ # 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 @@ -319,11 +317,20 @@ SUMMARY OF CONFIGURE OPTIONS: 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 +344,6 @@ SUMMARY OF CONFIGURE OPTIONS: --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 +364,25 @@ SUMMARY OF CONFIGURE OPTIONS: 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 @@ -433,10 +440,18 @@ SUMMARY OF CONFIGURE OPTIONS: --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 @@ -454,6 +469,9 @@ SUMMARY OF CONFIGURE OPTIONS: 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-tic-depends When building shared libraries, normally the tic library is linked to depend upon the ncurses library (or equivalently, on the tinfo-library @@ -472,6 +490,26 @@ SUMMARY OF CONFIGURE OPTIONS: list documented in X/Open. ncurses provides varargs support for this function. Use --disable-tparm-varargs to disable this support. + --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 + 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-assertions For testing, compile-in assertion code. This is used only for a few places where ncurses cannot easily recover by returning an error code. @@ -518,12 +556,6 @@ SUMMARY OF CONFIGURE OPTIONS: 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. @@ -599,6 +631,14 @@ SUMMARY OF CONFIGURE OPTIONS: 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 which controls whether some library + structures are treated as "opaque". The --enable-opaque-curses option + is overridden by the --enable-reentrant option. + --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 +649,9 @@ SUMMARY OF CONFIGURE OPTIONS: 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,7 +675,8 @@ SUMMARY OF CONFIGURE OPTIONS: --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. + 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 @@ -815,6 +856,10 @@ SUMMARY OF CONFIGURE OPTIONS: executables, e.g., by setting "--with-chtype=long" (the configure script supplies "unsigned"). + --with-config-suffix=XXX + Specify a suffix for the ncursesw6-config file, etc., used to work + around conflicts with packages. + --with-cxx-shared When --with-shared is set, build libncurses++ as a shared library. This implicitly relies upon building with gcc/g++, since other @@ -947,11 +992,18 @@ SUMMARY OF CONFIGURE OPTIONS: 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. + --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 + 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 man-directory for aliases to manpages which list them, e.g., the @@ -980,7 +1032,7 @@ SUMMARY OF CONFIGURE OPTIONS: 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. @@ -1095,6 +1147,9 @@ SUMMARY OF CONFIGURE OPTIONS: 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 @@ -1164,7 +1219,7 @@ SUMMARY OF CONFIGURE OPTIONS: 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 @@ -1194,6 +1249,11 @@ SUMMARY OF CONFIGURE OPTIONS: 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. + --without-ada Suppress the configure script's check for Ada95, do not build the Ada95 binding and related demo. @@ -1233,6 +1293,11 @@ SUMMARY OF CONFIGURE OPTIONS: programs (e.g., tic). The test applications will still be built if you type "make", though not if you simply do "make install". + --without-tack + Suppress build/install with tack program, if it happens to be + in the same build-tree (tack was moved out of the ncurses source-tree + in 20070203). + --without-tests Tell the configure script to suppress the build of ncurses' test programs. @@ -1246,19 +1311,145 @@ SUMMARY OF CONFIGURE OPTIONS: 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 (??? ??, 2015) + 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 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) @@ -1811,9 +2002,10 @@ IF YOU ARE A SYSTEM INTEGRATOR: 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. @@ -1974,11 +2166,10 @@ installation), there are a couple of details you need to be aware of. 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 @@ -2037,7 +2228,7 @@ USING NCURSES WITH GPM: 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 Ncurses can be built with a cross-compiler. Some parts must be built