X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=INSTALL;h=8252244d8d26dd620567be24f37a273d8606227e;hp=ef6d7d6b235281505a53e39e46f335bc40b13e3a;hb=aa70bf3c762c5b6407bf34812d63c20f7ac8ffdd;hpb=50acaeeb9b282767ffe9c6a80f120b32ce3bd966 diff --git a/INSTALL b/INSTALL index ef6d7d6b..8252244d 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-2014,2015 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.178 2014/11/16 00:03:32 tom Exp $ +-- $Id: INSTALL,v 1.194 2015/10/24 19:03:42 Tomas.Cech 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 @@ -364,11 +362,17 @@ SUMMARY OF CONFIGURE OPTIONS: a screen, since (even after calling endwin()), it must be available for use in the next call to refresh(). There are also chunks of memory held for performance reasons. That makes it hard to analyze - curses applications for memory leaks. To work around this, build - a debugging version of the ncurses library which frees those chunks + curses applications for memory leaks. To work around this, build a + debugging version of the ncurses library which frees those chunks which it can, and provides the _nc_free_and_exit() function to free - the remainder on exit. The ncurses utility and test programs use this - feature, e.g., via the ExitProgram() macro. + the remainder and then exit. The ncurses utility and test programs + use this feature, e.g., via the ExitProgram() macro. + + Because this lies outside of the library's intended usage, it is not + normally considered part of the ABI. If there were some (as yet + unplanned) extension which frees memory in a manner that would let the + library resume and reallocate memory, then that would not use a "_nc_" + prefix. --disable-lp64 The header files will ignore use of the _LP64 symbol to make chtype @@ -540,6 +544,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 @@ -834,6 +846,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. @@ -960,7 +978,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. @@ -991,6 +1009,11 @@ SUMMARY OF CONFIGURE OPTIONS: those using termcap, do not use the higher speeds. Your application (or system, in general) may or may not. + --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-pkg-config=[DIR] Check for pkg-config, optionally specifying its path. @@ -1070,6 +1093,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 @@ -1118,15 +1144,33 @@ SUMMARY OF CONFIGURE OPTIONS: --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 - resulting objects with version identifiers. The configure script - will automatically apply a suitable ".map" file to provide this - information for Linux. Solaris mapfiles differ: + resulting objects with version identifiers. + + Use "objdump -T" on a library to see the annotations. + + 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 + b) wildcards are not accepted, except for a special case of "_*". c) each symbol listed in the map file must exist in the library - Use "objdump -T" on a library to see the annotations. + The Solaris limitations conflict with the development goal of providing + a small set of ".map" files as examples, which cover the most common + configurations. Because that coverage is done by merging together + 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 + value. --with-xterm-kbs=XXX Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII @@ -1203,18 +1247,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: @@ -1765,9 +1853,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. @@ -1928,11 +2017,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