X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=INSTALL;h=2bf47c2028617f50d26a6bdc9c371c67dc13e3b7;hp=23487c7109238bf80d1712af00c661809ab04de2;hb=2560bc3dae7f4919060c02c91a593566c908091c;hpb=5865ab4cec503465a610827c43b4b11b36fcda79 diff --git a/INSTALL b/INSTALL index 23487c71..2bf47c20 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-2016,2017 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.183 2015/01/17 23:20:46 tom Exp $ +-- $Id: INSTALL,v 1.197 2017/02/12 19:49:52 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 @@ -472,6 +470,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. @@ -546,6 +564,14 @@ SUMMARY OF CONFIGURE OPTIONS: 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 @@ -591,6 +617,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 @@ -601,9 +635,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. @@ -840,6 +874,12 @@ SUMMARY OF CONFIGURE OPTIONS: 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. @@ -966,7 +1006,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. @@ -1081,6 +1121,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 @@ -1130,11 +1173,11 @@ SUMMARY OF CONFIGURE OPTIONS: 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 "_*". @@ -1146,6 +1189,12 @@ SUMMARY OF CONFIGURE OPTIONS: 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 @@ -1226,18 +1275,62 @@ 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 (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: @@ -1788,9 +1881,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. @@ -1951,11 +2045,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