14a1a9510SRong-En Fan------------------------------------------------------------------------------- 25d08fb1fSRong-En Fan-- Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. -- 34a1a9510SRong-En Fan-- -- 44a1a9510SRong-En Fan-- Permission is hereby granted, free of charge, to any person obtaining a -- 54a1a9510SRong-En Fan-- copy of this software and associated documentation files (the -- 64a1a9510SRong-En Fan-- "Software"), to deal in the Software without restriction, including -- 74a1a9510SRong-En Fan-- without limitation the rights to use, copy, modify, merge, publish, -- 84a1a9510SRong-En Fan-- distribute, distribute with modifications, sublicense, and/or sell copies -- 94a1a9510SRong-En Fan-- of the Software, and to permit persons to whom the Software is furnished -- 104a1a9510SRong-En Fan-- to do so, subject to the following conditions: -- 114a1a9510SRong-En Fan-- -- 124a1a9510SRong-En Fan-- The above copyright notice and this permission notice shall be included -- 134a1a9510SRong-En Fan-- in all copies or substantial portions of the Software. -- 144a1a9510SRong-En Fan-- -- 154a1a9510SRong-En Fan-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- 164a1a9510SRong-En Fan-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- 174a1a9510SRong-En Fan-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -- 184a1a9510SRong-En Fan-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- 194a1a9510SRong-En Fan-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- 204a1a9510SRong-En Fan-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -- 214a1a9510SRong-En Fan-- USE OR OTHER DEALINGS IN THE SOFTWARE. -- 224a1a9510SRong-En Fan-- -- 234a1a9510SRong-En Fan-- Except as contained in this notice, the name(s) of the above copyright -- 244a1a9510SRong-En Fan-- holders shall not be used in advertising or otherwise to promote the -- 254a1a9510SRong-En Fan-- sale, use or other dealings in this Software without prior written -- 264a1a9510SRong-En Fan-- authorization. -- 274a1a9510SRong-En Fan------------------------------------------------------------------------------- 285d08fb1fSRong-En Fan-- $Id: INSTALL,v 1.135 2008/11/02 21:13:51 tom Exp $ 290e3d5408SPeter Wemm--------------------------------------------------------------------- 300e3d5408SPeter Wemm How to install Ncurses/Terminfo on your system 310e3d5408SPeter Wemm--------------------------------------------------------------------- 3215589c42SPeter Wemm 330e3d5408SPeter Wemm ************************************************************ 340e3d5408SPeter Wemm * READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. * 350e3d5408SPeter Wemm ************************************************************ 360e3d5408SPeter Wemm 370e3d5408SPeter WemmYou should be reading the file INSTALL in a directory called ncurses-d.d, where 380e3d5408SPeter Wemmd.d is the current version number. There should be several subdirectories, 390e3d5408SPeter Wemmincluding `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs', 400e3d5408SPeter Wemmand `test'. See the README file for a roadmap to the package. 410e3d5408SPeter Wemm 420e3d5408SPeter WemmIf you are a Linux or FreeBSD or NetBSD distribution integrator or packager, 430e3d5408SPeter Wemmplease read and act on the section titled IF YOU ARE A SYSTEM INTEGRATOR 440e3d5408SPeter Wemmbelow. 450e3d5408SPeter Wemm 460e3d5408SPeter WemmIf you are converting from BSD curses and do not have root access, be sure 470e3d5408SPeter Wemmto read the BSD CONVERSION NOTES section below. 480e3d5408SPeter Wemm 490e3d5408SPeter WemmIf you are trying to build applications using gpm with ncurses, 500e3d5408SPeter Wemmread the USING NCURSES WITH GPM section below. 510e3d5408SPeter Wemm 520e3d5408SPeter WemmIf you are running over the Andrew File System see the note below on 530e3d5408SPeter WemmUSING NCURSES WITH AFS. 540e3d5408SPeter Wemm 5518259542SPeter WemmIf you are cross-compiling, see the note below on BUILDING NCURSES WITH A 5618259542SPeter WemmCROSS-COMPILER. 5718259542SPeter Wemm 580e3d5408SPeter WemmIf you want to build the Ada95 binding, go to the Ada95 directory and 590e3d5408SPeter Wemmfollow the instructions there. The Ada95 binding is not covered below. 600e3d5408SPeter Wemm 610e3d5408SPeter WemmIf you are using anything but (a) Linux, or (b) one of the 4.4BSD-based 620e3d5408SPeter Wemmi386 Unixes, go read the Portability section in the TO-DO file before you 630e3d5408SPeter Wemmdo anything else. 640e3d5408SPeter Wemm 6515589c42SPeter Wemm 660e3d5408SPeter WemmREQUIREMENTS: 6715589c42SPeter Wemm------------ 680e3d5408SPeter Wemm 694a1a9510SRong-En FanYou will need the following to build and install ncurses under UNIX: 700e3d5408SPeter Wemm 714a1a9510SRong-En Fan * ANSI C compiler (gcc, for instance) 720e3d5408SPeter Wemm * sh (bash will do) 730e3d5408SPeter Wemm * awk (mawk or gawk will do) 740e3d5408SPeter Wemm * sed 750e3d5408SPeter Wemm * BSD or System V style install (a script is enclosed) 760e3d5408SPeter Wemm 770e3d5408SPeter WemmNcurses has been also built in the OS/2 EMX environment. 780e3d5408SPeter Wemm 7915589c42SPeter Wemm 800e3d5408SPeter WemmINSTALLATION PROCEDURE: 8115589c42SPeter Wemm---------------------- 820e3d5408SPeter Wemm 830e3d5408SPeter Wemm1. First, decide whether you want ncurses to replace your existing library (in 840e3d5408SPeter Wemm which case you'll need super-user privileges) or be installed in parallel 850e3d5408SPeter Wemm with it. 860e3d5408SPeter Wemm 870e3d5408SPeter Wemm The --prefix option to configure changes the root directory for installing 884a1a9510SRong-En Fan ncurses. The default is normally in subdirectories of /usr/local, except 894a1a9510SRong-En Fan for systems where ncurses is normally installed as a system library, e.g., 904a1a9510SRong-En Fan Linux, the various BSD systems and Cygwin. Use --prefix=/usr to replace 914a1a9510SRong-En Fan your default curses distribution. 920e3d5408SPeter Wemm 930e3d5408SPeter Wemm The package gets installed beneath the --prefix directory as follows: 940e3d5408SPeter Wemm 950e3d5408SPeter Wemm In $(prefix)/bin: tic, infocmp, captoinfo, tset, 960e3d5408SPeter Wemm reset, clear, tput, toe 970e3d5408SPeter Wemm In $(prefix)/lib: libncurses*.* libcurses.a 980e3d5408SPeter Wemm In $(prefix)/share/terminfo: compiled terminal descriptions 990e3d5408SPeter Wemm In $(prefix)/include: C header files 1000e3d5408SPeter Wemm Under $(prefix)/man: the manual pages 1010e3d5408SPeter Wemm 1024a1a9510SRong-En Fan Note that the configure script attempts to locate previous installation of 1034a1a9510SRong-En Fan ncurses, and will set the default prefix according to where it finds the 1044a1a9510SRong-En Fan ncurses headers. 1054a1a9510SRong-En Fan 1064a1a9510SRong-En Fan Do not use commands such as 1074a1a9510SRong-En Fan 1084a1a9510SRong-En Fan make install prefix=XXX 1094a1a9510SRong-En Fan 1104a1a9510SRong-En Fan to change the prefix after configuration, since the prefix value is used 1114a1a9510SRong-En Fan for some absolute pathnames such as TERMINFO. Instead do this 1124a1a9510SRong-En Fan 1134a1a9510SRong-En Fan make install DESTDIR=XXX 1144a1a9510SRong-En Fan 1154a1a9510SRong-En Fan See also the discussion of --with-install-prefix. 1160e3d5408SPeter Wemm 1170e3d5408SPeter Wemm2. Type `./configure' in the top-level directory of the distribution to 1180e3d5408SPeter Wemm configure ncurses for your operating system and create the Makefiles. 1190e3d5408SPeter Wemm Besides --prefix, various configuration options are available to customize 1200e3d5408SPeter Wemm the installation; use `./configure --help' to list the available options. 1210e3d5408SPeter Wemm 1220e3d5408SPeter Wemm If your operating system is not supported, read the PORTABILITY section in 1230e3d5408SPeter Wemm the file ncurses/README for information on how to create a configuration 1240e3d5408SPeter Wemm file for your system. 1250e3d5408SPeter Wemm 1260e3d5408SPeter Wemm The `configure' script generates makefile rules for one or more object 1270e3d5408SPeter Wemm models and their associated libraries: 1280e3d5408SPeter Wemm 1290e3d5408SPeter Wemm libncurses.a (normal) 1300e3d5408SPeter Wemm 1310e3d5408SPeter Wemm libcurses.a (normal, a link to libncurses.a) 1320e3d5408SPeter Wemm This gets left out if you configure with --disable-overwrite. 1330e3d5408SPeter Wemm 1340e3d5408SPeter Wemm libncurses.so (shared) 1350e3d5408SPeter Wemm 1360e3d5408SPeter Wemm libncurses_g.a (debug) 1370e3d5408SPeter Wemm 1380e3d5408SPeter Wemm libncurses_p.a (profile) 1390e3d5408SPeter Wemm 1407a69bbfbSPeter Wemm libncurses.la (libtool) 1417a69bbfbSPeter Wemm 1424a1a9510SRong-En Fan If you configure using the --enable-widec option, a "w" is appended to the 1434a1a9510SRong-En Fan library names (e.g., libncursesw.a), and the resulting libraries support 1444a1a9510SRong-En Fan wide-characters, e.g., via a UTF-8 locale. The corresponding header files 1454a1a9510SRong-En Fan are compatible with the non-wide-character configuration; wide-character 1464a1a9510SRong-En Fan features are provided by ifdef's in the header files. The wide-character 1474a1a9510SRong-En Fan library interfaces are not binary-compatible with the non-wide-character 1484a1a9510SRong-En Fan version. Building and running the wide-character code relies on a fairly 1494a1a9510SRong-En Fan recent implementation of libiconv. We have built this configuration on 1504a1a9510SRong-En Fan Linux using libiconv, sometimes requiring libutf8. 1514a1a9510SRong-En Fan 152aa59d4d4SRong-En Fan If you configure using the --with-pthread option, a "t" is appended to 153aa59d4d4SRong-En Fan the library names (e.g., libncursest.a, libncursestw.a). 154aa59d4d4SRong-En Fan 1550e3d5408SPeter Wemm If you do not specify any models, the normal and debug libraries will be 1560e3d5408SPeter Wemm configured. Typing `configure' with no arguments is equivalent to: 1570e3d5408SPeter Wemm 1580e3d5408SPeter Wemm ./configure --with-normal --with-debug --enable-overwrite 1590e3d5408SPeter Wemm 1600e3d5408SPeter Wemm Typing 1610e3d5408SPeter Wemm 1620e3d5408SPeter Wemm ./configure --with-shared 1630e3d5408SPeter Wemm 1640e3d5408SPeter Wemm makes the shared libraries the default, resulting in 1650e3d5408SPeter Wemm 1660e3d5408SPeter Wemm ./configure --with-shared --with-normal --with-debug --enable-overwrite 1670e3d5408SPeter Wemm 1680e3d5408SPeter Wemm If you want only shared libraries, type 1690e3d5408SPeter Wemm 1700e3d5408SPeter Wemm ./configure --with-shared --without-normal --without-debug 1710e3d5408SPeter Wemm 1720e3d5408SPeter Wemm Rules for generating shared libraries are highly dependent upon the choice 1730e3d5408SPeter Wemm of host system and compiler. We've been testing shared libraries on Linux 1740e3d5408SPeter Wemm and SunOS with gcc, but more work needs to be done to make shared libraries 1750e3d5408SPeter Wemm work on other systems. 1760e3d5408SPeter Wemm 1777a69bbfbSPeter Wemm If you have libtool installed, you can type 1787a69bbfbSPeter Wemm 1797a69bbfbSPeter Wemm ./configure --with-libtool 1807a69bbfbSPeter Wemm 1817a69bbfbSPeter Wemm to generate the appropriate static and/or shared libraries for your 1827a69bbfbSPeter Wemm platform using libtool. 1837a69bbfbSPeter Wemm 1840e3d5408SPeter Wemm You can make curses and terminfo fall back to an existing file of termcap 1850e3d5408SPeter Wemm definitions by configuring with --enable-termcap. If you do this, the 1860e3d5408SPeter Wemm library will search /etc/termcap before the terminfo database, and will 1870e3d5408SPeter Wemm also interpret the contents of the TERM environment variable. See the 1880e3d5408SPeter Wemm section BSD CONVERSION NOTES below. 1890e3d5408SPeter Wemm 1900e3d5408SPeter Wemm3. Type `make'. Ignore any warnings, no error messages should be produced. 1910e3d5408SPeter Wemm This should compile the ncurses library, the terminfo compiler tic(1), 1920e3d5408SPeter Wemm captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1) 19318259542SPeter Wemm programs (see the manual pages for explanation of what they do), some test 1940e3d5408SPeter Wemm programs, and the panels, menus, and forms libraries. 1950e3d5408SPeter Wemm 1960e3d5408SPeter Wemm4. Run ncurses and several other test programs in the test directory to 1970e3d5408SPeter Wemm verify that ncurses functions correctly before doing an install that 1980e3d5408SPeter Wemm may overwrite system files. Read the file test/README for details on 1990e3d5408SPeter Wemm the test programs. 2000e3d5408SPeter Wemm 2010e3d5408SPeter Wemm NOTE: You must have installed the terminfo database, or set the 2020e3d5408SPeter Wemm environment variable $TERMINFO to point to a SVr4-compatible terminfo 2030e3d5408SPeter Wemm database before running the test programs. Not all vendors' terminfo 2040e3d5408SPeter Wemm databases are SVr4-compatible, but most seem to be. Exceptions include 2050e3d5408SPeter Wemm DEC's Digital Unix (formerly known as OSF/1). 2060e3d5408SPeter Wemm 2074a1a9510SRong-En Fan If you run the test programs WITHOUT installing terminfo, ncurses may 2084a1a9510SRong-En Fan read the termcap file and cache that in $HOME/.terminfo, which will 2094a1a9510SRong-En Fan thereafter be used instead of the terminfo database. See the comments 2104a1a9510SRong-En Fan on "--enable-getcap-cache", to see why this is a Bad Thing. 2114a1a9510SRong-En Fan 2124a1a9510SRong-En Fan It is possible to configure ncurses to use other terminfo database formats. 2134a1a9510SRong-En Fan A few are provided as examples in the include-directory (see --with-caps). 2144a1a9510SRong-En Fan 2150e3d5408SPeter Wemm The ncurses program is designed specifically to test the ncurses library. 2160e3d5408SPeter Wemm You can use it to verify that the screen highlights work correctly, that 2170e3d5408SPeter Wemm cursor addressing and window scrolling works OK, etc. 2180e3d5408SPeter Wemm 2190e3d5408SPeter Wemm5. Once you've tested, you can type `make install' to install libraries, 22018259542SPeter Wemm the programs, the terminfo database and the manual pages. Alternately, you 2210e3d5408SPeter Wemm can type `make install' in each directory you want to install. In the 2220e3d5408SPeter Wemm top-level directory, you can do a partial install using these commands: 2230e3d5408SPeter Wemm 2240e3d5408SPeter Wemm 'make install.progs' installs tic, infocmp, etc... 2250e3d5408SPeter Wemm 'make install.includes' installs the headers. 2260e3d5408SPeter Wemm 'make install.libs' installs the libraries (and the headers). 2270e3d5408SPeter Wemm 'make install.data' installs the terminfo data. (Note: `tic' must 2280e3d5408SPeter Wemm be installed before the terminfo data can be 2290e3d5408SPeter Wemm compiled). 23018259542SPeter Wemm 'make install.man' installs the manual pages. 2310e3d5408SPeter Wemm 2320e3d5408SPeter Wemm ############################################################################ 2330e3d5408SPeter Wemm # CAVEAT EMPTOR: `install.data' run as root will NUKE any existing # 2340e3d5408SPeter Wemm # terminfo database. If you have any custom or unusual entries SAVE them # 2350e3d5408SPeter Wemm # before you install ncurses. I have a file called terminfo.custom for # 2360e3d5408SPeter Wemm # this purpose. Don't forget to run tic on the file once you're done. # 2370e3d5408SPeter Wemm ############################################################################ 2380e3d5408SPeter Wemm 23918259542SPeter Wemm The terminfo(5) manual page must be preprocessed with tbl(1) before 2400e3d5408SPeter Wemm being formatted by nroff(1). Modern man(1) implementations tend to do 24118259542SPeter Wemm this by default, but you may want to look at your version's manual page 2427a69bbfbSPeter Wemm to be sure. You may also install the manual pages after preprocessing 2437a69bbfbSPeter Wemm with tbl(1) by specifying the configure option --with-manpage-tbl. 2440e3d5408SPeter Wemm 2450e3d5408SPeter Wemm If the system already has a curses library that you need to keep using 2464a1a9510SRong-En Fan you'll need to distinguish between it and ncurses. See the discussion of 2474a1a9510SRong-En Fan --disable-overwrite. If ncurses is installed outside the standard 2484a1a9510SRong-En Fan directories (/usr/include and /usr/lib) then all your users will need to 2494a1a9510SRong-En Fan use the -I option to compile programs and -L to link them. 2500e3d5408SPeter Wemm 2514a1a9510SRong-En Fan If you have another curses installed in your system and you accidentally 2520e3d5408SPeter Wemm compile using its curses.h you'll end up with a large number of 2534a1a9510SRong-En Fan undefined symbols at link time. 2540e3d5408SPeter Wemm 2550e3d5408SPeter Wemm IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory 2560e3d5408SPeter Wemm and run the `capconvert' script. This script will deduce various things 2570e3d5408SPeter Wemm about your environment and use them to build you a private terminfo tree, 2580e3d5408SPeter Wemm so you can use ncurses applications. 2590e3d5408SPeter Wemm 2600e3d5408SPeter Wemm If more than one user at your site does this, the space for the duplicate 2610e3d5408SPeter Wemm trees is wasted. Try to get your site administrators to install a system- 2620e3d5408SPeter Wemm wide terminfo tree instead. 2630e3d5408SPeter Wemm 2640e3d5408SPeter Wemm See the BSD CONVERSION NOTES section below for a few more details. 2650e3d5408SPeter Wemm 2660e3d5408SPeter Wemm6. The c++ directory has C++ classes that are built on top of ncurses and 2671759abf3SPeter Wemm panels. You must have c++ (and its libraries) installed before you can 2680e3d5408SPeter Wemm compile and run the demo. 2690e3d5408SPeter Wemm 2701759abf3SPeter Wemm Use --without-cxx-binding to tell configure to not build the C++ bindings 2711759abf3SPeter Wemm and demo. 2721759abf3SPeter Wemm 2730e3d5408SPeter Wemm If you do not have C++, you must use the --without-cxx option to tell 2741759abf3SPeter Wemm the configure script to not attempt to determine the type of 'bool' 2751759abf3SPeter Wemm which may be supported by C++. IF YOU USE THIS OPTION, BE ADVISED THAT 2761759abf3SPeter Wemm YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++. 2770e3d5408SPeter Wemm 27815589c42SPeter Wemm 27918259542SPeter WemmSUMMARY OF CONFIGURE OPTIONS: 28018259542SPeter Wemm---------------------------- 28118259542SPeter Wemm 28218259542SPeter Wemm The configure script provides a short list of its options when you type 28318259542SPeter Wemm 28418259542SPeter Wemm ./configure --help 28518259542SPeter Wemm 28618259542SPeter Wemm The --help and several options are common to all configure scripts that are 28718259542SPeter Wemm generated with autoconf. Those are all listed before the line 28818259542SPeter Wemm 28918259542SPeter Wemm --enable and --with options recognized: 29018259542SPeter Wemm 29118259542SPeter Wemm The other options are specific to this package. We list them in alphabetic 29218259542SPeter Wemm order. 29318259542SPeter Wemm 29418259542SPeter Wemm --disable-assumed-color 29518259542SPeter Wemm With ncurses 5.1, we introduced a new function, assume_default_colors() 29618259542SPeter Wemm which allows applications to specify what the default foreground and 29718259542SPeter Wemm background color are assumed to be. Most color applications use 29818259542SPeter Wemm full-screen color; but a few do not color the background. While the 29918259542SPeter Wemm assumed values can be overridden by invoking assume_default_colors(), 30018259542SPeter Wemm you may find it useful to set the assumed values to the pre-5.1 30118259542SPeter Wemm convention, using this configure option. 30218259542SPeter Wemm 30318259542SPeter Wemm --disable-big-core 30418259542SPeter Wemm Assume machine has little memory. The configure script attempts to 30518259542SPeter Wemm determine if your machine has enough memory (about 6Mb) to compile the 30618259542SPeter Wemm terminfo database without writing portions to disk. Some allocators 30718259542SPeter Wemm return deceptive results, so you may have to override the configure 30818259542SPeter Wemm script. Or you may be building tic for a smaller machine. 30918259542SPeter Wemm 3105ca44d1cSRong-En Fan --disable-big-strings 3115ca44d1cSRong-En Fan Disable compile-time optimization of predefined tables which puts 3125ca44d1cSRong-En Fan all of their strings into a very long string, to reduce relocation 3135ca44d1cSRong-En Fan overhead. 3145ca44d1cSRong-En Fan 31518259542SPeter Wemm --disable-database 31618259542SPeter Wemm Use only built-in data. The ncurses libraries normally read terminfo 31718259542SPeter Wemm and termcap data from disk. You can configure ncurses to have a 31818259542SPeter Wemm built-in database, aka "fallback" entries. Embedded applications may 31939f2269fSPeter Wemm have no need for an external database. Some, but not all of the 32039f2269fSPeter Wemm programs are useful in this configuration, e.g., reset and tput versus 32139f2269fSPeter Wemm infocmp and tic. 32218259542SPeter Wemm 32318259542SPeter Wemm --disable-ext-funcs 32418259542SPeter Wemm Disable function-extensions. Configure ncurses without the functions 32518259542SPeter Wemm that are not specified by XSI. See ncurses/modules for the exact 32618259542SPeter Wemm list of library modules that would be suppressed. 32718259542SPeter Wemm 32818259542SPeter Wemm --disable-hashmap 32918259542SPeter Wemm Compile without hashmap scrolling-optimization code. This algorithm is 33018259542SPeter Wemm the default. 33118259542SPeter Wemm 3324a1a9510SRong-En Fan --disable-home-terminfo 3334a1a9510SRong-En Fan The $HOME/.terminfo directory is normally added to ncurses' search 3344a1a9510SRong-En Fan list for reading/writing terminfo entries, since that directory is 3354a1a9510SRong-En Fan more likely writable than the system terminfo database. Use this 3364a1a9510SRong-En Fan option to disable the feature altogether. 3374a1a9510SRong-En Fan 3384a1a9510SRong-En Fan --disable-largefile 3394a1a9510SRong-En Fan Disable compiler flags needed to use large-file interfaces. 3404a1a9510SRong-En Fan 34118259542SPeter Wemm --disable-leaks 34218259542SPeter Wemm For testing, compile-in code that frees memory that normally would not 34318259542SPeter Wemm be freed, to simplify analysis of memory-leaks. 34418259542SPeter Wemm 3455ca44d1cSRong-En Fan Any implementation of curses must not free the memory associated with 3465ca44d1cSRong-En Fan a screen, since (even after calling endwin()), it must be available 3475ca44d1cSRong-En Fan for use in the next call to refresh(). There are also chunks of 3485ca44d1cSRong-En Fan memory held for performance reasons. That makes it hard to analyze 3495ca44d1cSRong-En Fan curses applications for memory leaks. To work around this, build 3505ca44d1cSRong-En Fan a debugging version of the ncurses library which frees those chunks 3515ca44d1cSRong-En Fan which it can, and provides the _nc_free_and_exit() function to free 3525ca44d1cSRong-En Fan the remainder on exit. The ncurses utility and test programs use this 3535ca44d1cSRong-En Fan feature, e.g., via the ExitProgram() macro. 3545ca44d1cSRong-En Fan 3554a1a9510SRong-En Fan --disable-lp64 3564a1a9510SRong-En Fan The header files will ignore use of the _LP64 symbol to make chtype 3574a1a9510SRong-En Fan and mmask_t types 32 bits (they may be long on 64-bit hosts, for 3584a1a9510SRong-En Fan compatibility with older releases). 3594a1a9510SRong-En Fan 3604a1a9510SRong-En Fan NOTE: this is potentially an ABI change, depending on existing 3614a1a9510SRong-En Fan packages. The default for this option is "disabled" for ncurses 3624a1a9510SRong-En Fan ABI 5, and "enabled" for ABI 6. 3634a1a9510SRong-En Fan 36418259542SPeter Wemm --disable-macros 36518259542SPeter Wemm For testing, use functions rather than macros. The program will run 3664a1a9510SRong-En Fan more slowly, but it is simpler to debug. This defines NCURSES_NOMACROS 3674a1a9510SRong-En Fan at build time. See also the --enable-expanded option. 36818259542SPeter Wemm 36918259542SPeter Wemm --disable-overwrite 37018259542SPeter Wemm If you are installing ncurses on a system which contains another 37118259542SPeter Wemm development version of curses, or which could be confused by the loader 37218259542SPeter Wemm for another version, we recommend that you leave out the link to 37318259542SPeter Wemm -lcurses. The ncurses library is always available as -lncurses. 37418259542SPeter Wemm Disabling overwrite also causes the ncurses header files to be 37518259542SPeter Wemm installed into a subdirectory, e.g., /usr/local/include/ncurses, 37618259542SPeter Wemm rather than the include directory. This makes it simpler to avoid 37718259542SPeter Wemm compile-time conflicts with other versions of curses.h 37818259542SPeter Wemm 3795ca44d1cSRong-En Fan --disable-relink 3805ca44d1cSRong-En Fan If --enable-rpath is given, the generated makefiles normally will 3815ca44d1cSRong-En Fan rebuild the libraries during install. Use this option to simply 3825ca44d1cSRong-En Fan copy whatever the linked produced. 3835ca44d1cSRong-En Fan 3845ca44d1cSRong-En Fan This option is ignored if --enable-rpath is not given. 3855ca44d1cSRong-En Fan 38618259542SPeter Wemm --disable-root-environ 38718259542SPeter Wemm Compile with environment restriction, so certain environment variables 38818259542SPeter Wemm are not available when running as root, or via a setuid/setgid 38918259542SPeter Wemm application. These are (for example $TERMINFO) those that allow the 39018259542SPeter Wemm search path for the terminfo or termcap entry to be customized. 39118259542SPeter Wemm 39218259542SPeter Wemm --disable-scroll-hints 39318259542SPeter Wemm Compile without scroll-hints code. This option is ignored when 39418259542SPeter Wemm hashmap scrolling is configured, which is the default. 39518259542SPeter Wemm 3965d08fb1fSRong-En Fan --disable-tic-depends 3975d08fb1fSRong-En Fan When building shared libraries, normally the tic library is linked to 3985d08fb1fSRong-En Fan depend upon the ncurses library (and in turn, on the term-library if 3995d08fb1fSRong-En Fan the --with-termlib option was given). The tic- and term-libraries 4005d08fb1fSRong-En Fan ABI does not depend on the --enable-widec option. Some packagers have 4015d08fb1fSRong-En Fan used this to reduce the number of library files which are packaged 4025d08fb1fSRong-En Fan by using only one copy of those libraries. To make this work properly, 4035d08fb1fSRong-En Fan the tic library must be built without an explicit dependency on the 4045d08fb1fSRong-En Fan ncurses (or ncursesw) library. Use this configure option to do that. 4055d08fb1fSRong-En Fan For example 4065d08fb1fSRong-En Fan configure --with-ticlib --with-shared --disable-tic-depends 4075d08fb1fSRong-En Fan 4084a1a9510SRong-En Fan --disable-tparm-varargs 4094a1a9510SRong-En Fan Portable programs should call tparm() using the fixed-length parameter 4104a1a9510SRong-En Fan list documented in X/Open. ncurses provides varargs support for this 4114a1a9510SRong-En Fan function. Use --disable-tparm-varargs to disable this support. 41218259542SPeter Wemm 41318259542SPeter Wemm --enable-assertions 41418259542SPeter Wemm For testing, compile-in assertion code. This is used only for a few 41518259542SPeter Wemm places where ncurses cannot easily recover by returning an error code. 41618259542SPeter Wemm 41718259542SPeter Wemm --enable-broken_linker 41818259542SPeter Wemm A few platforms have what we consider a broken linker: it cannot link 41918259542SPeter Wemm objects from an archive solely by referring to data objects in those 42018259542SPeter Wemm files, but requires a function reference. This configure option 42118259542SPeter Wemm changes several data references to functions to work around this 42218259542SPeter Wemm problem. 42318259542SPeter Wemm 42418259542SPeter Wemm NOTE: With ncurses 5.1, this may not be necessary, since we are 42518259542SPeter Wemm told that some linkers interpret uninitialized global data as a 42618259542SPeter Wemm different type of reference which behaves as described above. We have 42718259542SPeter Wemm explicitly initialized all of the global data to work around the 42818259542SPeter Wemm problem. 42918259542SPeter Wemm 43018259542SPeter Wemm --enable-bsdpad 43118259542SPeter Wemm Recognize BSD-style prefix padding. Some ancient BSD programs (such as 43218259542SPeter Wemm nethack) call tputs("50") to implement delays. 43318259542SPeter Wemm 43418259542SPeter Wemm --enable-colorfgbg 43518259542SPeter Wemm Compile with experimental $COLORFGBG code. That environment variable 43618259542SPeter Wemm is set by some terminal emulators as a hint to applications, by 43718259542SPeter Wemm advertising the default foreground and background colors. During 43818259542SPeter Wemm initialization, ncurses sets color pair 0 to match this. 43918259542SPeter Wemm 44018259542SPeter Wemm --enable-const 44118259542SPeter Wemm The curses interface as documented in XSI is rather old, in fact 44218259542SPeter Wemm including features that precede ANSI C. The prototypes generally do 44318259542SPeter Wemm not make effective use of "const". When using stricter compilers (or 44418259542SPeter Wemm gcc with appropriate warnings), you may see warnings about the mismatch 44518259542SPeter Wemm between const and non-const data. We provide a configure option which 44618259542SPeter Wemm changes the interfaces to use const - quieting these warnings and 44718259542SPeter Wemm reflecting the actual use of the parameters more closely. The ncurses 44818259542SPeter Wemm library uses the symbol NCURSES_CONST for these instances of const, 44918259542SPeter Wemm and if you have asked for compiler warnings, will add gcc's const-qual 45018259542SPeter Wemm warning. There will still be warnings due to subtle inconsistencies 45118259542SPeter Wemm in the interface, but at a lower level. 45218259542SPeter Wemm 45318259542SPeter Wemm NOTE: configuring ncurses with this option may detract from the 45418259542SPeter Wemm portability of your applications by encouraging you to use const in 45518259542SPeter Wemm places where the XSI curses interface would not allow them. Similar 45618259542SPeter Wemm issues arise when porting to SVr4 curses, which uses const in even 45718259542SPeter Wemm fewer places. 45818259542SPeter Wemm 45918259542SPeter Wemm --enable-echo 46018259542SPeter Wemm Use the option --disable-echo to make the build-log less verbose by 46118259542SPeter Wemm suppressing the display of the compile and link commands. This makes 46218259542SPeter Wemm it easier to see the compiler warnings. (You can always use "make -n" 46318259542SPeter Wemm to see the options that are used). 46418259542SPeter Wemm 46518259542SPeter Wemm --enable-expanded 46618259542SPeter Wemm For testing, generate functions for certain macros to make them visible 46718259542SPeter Wemm as such to the debugger. See also the --disable-macros option. 46818259542SPeter Wemm 4694a1a9510SRong-En Fan --enable-ext-colors 4704a1a9510SRong-En Fan Extend the cchar_t structure to allow more than 16 colors to be 4714a1a9510SRong-En Fan encoded. This applies only to the wide-character (--enable-widec) 4724a1a9510SRong-En Fan configuration. 4734a1a9510SRong-En Fan 4744a1a9510SRong-En Fan NOTE: using this option will make libraries which are not binary- 4754a1a9510SRong-En Fan compatible with libncursesw 5.4. None of the interfaces change, but 4764a1a9510SRong-En Fan applications which have an array of cchar_t's must be recompiled. 4774a1a9510SRong-En Fan 4784a1a9510SRong-En Fan --enable-ext-mouse 4794a1a9510SRong-En Fan Modify the encoding of mouse state to make room for a 5th mouse button. 4804a1a9510SRong-En Fan That allows one to use ncurses with a wheel mouse with xterm or 4814a1a9510SRong-En Fan similar X terminal emulators. 4824a1a9510SRong-En Fan 4834a1a9510SRong-En Fan NOTE: using this option will make libraries which are not binary- 4844a1a9510SRong-En Fan compatible with libncursesw 5.4. None of the interfaces change, but 4854a1a9510SRong-En Fan applications which have mouse mask mmask_t's must be recompiled. 4864a1a9510SRong-En Fan 48718259542SPeter Wemm --enable-getcap 48818259542SPeter Wemm Use the 4.4BSD getcap code if available, or a bundled version of it to 48918259542SPeter Wemm fetch termcap entries. Entries read in this way cannot use (make 49018259542SPeter Wemm cross-references to) the terminfo tree, but it is faster than reading 49118259542SPeter Wemm /etc/termcap. 49218259542SPeter Wemm 4934a1a9510SRong-En Fan If configured for one of the *BSD systems, this automatically uses 4944a1a9510SRong-En Fan the hashed database system produced using cap_mkdb or similar tools. 4954a1a9510SRong-En Fan In that case, there is no advantage in using the --enable-getcap-cache 4964a1a9510SRong-En Fan option. 4974a1a9510SRong-En Fan 4984a1a9510SRong-En Fan See also the --with-hashed-db option. 4994a1a9510SRong-En Fan 50018259542SPeter Wemm --enable-getcap-cache 50118259542SPeter Wemm Cache translated termcaps under the directory $HOME/.terminfo 50218259542SPeter Wemm 50318259542SPeter Wemm NOTE: this sounds good - it makes ncurses run faster the second time. 50418259542SPeter Wemm But look where the data comes from - an /etc/termcap containing lots of 50518259542SPeter Wemm entries that are not up to date. If you configure with this option and 50618259542SPeter Wemm forget to install the terminfo database before running an ncurses 50718259542SPeter Wemm application, you will end up with a hidden terminfo database that 50818259542SPeter Wemm generally does not support color and will miss some function keys. 50918259542SPeter Wemm 51018259542SPeter Wemm --enable-hard-tabs 51118259542SPeter Wemm Compile-in cursor-optimization code that uses hard-tabs. We would make 51218259542SPeter Wemm this a standard feature except for the concern that the terminfo entry 51318259542SPeter Wemm may not be accurate, or that your stty settings have disabled the use 51418259542SPeter Wemm of tabs. 51518259542SPeter Wemm 5165ca44d1cSRong-En Fan --enable-mixed-case 5175ca44d1cSRong-En Fan Controls whether the filesystem on which the terminfo database resides 5185ca44d1cSRong-En Fan supports mixed-case filenames (normal for UNIX, but not on other 5195ca44d1cSRong-En Fan systems). If you do not specify this option, the configure script 5205ca44d1cSRong-En Fan checks the current filesystem. 5215ca44d1cSRong-En Fan 52218259542SPeter Wemm --enable-no-padding 52318259542SPeter Wemm Compile-in support for the $NCURSES_NO_PADDING environment variable, 52418259542SPeter Wemm which allows you to suppress the effect of non-mandatory padding in 52518259542SPeter Wemm terminfo entries. This is the default, unless you have disabled the 52618259542SPeter Wemm extended functions. 52718259542SPeter Wemm 5285ca44d1cSRong-En Fan --enable-reentrant 5295ca44d1cSRong-En Fan Compile experimental configuration which improves reentrant use of the 530aa59d4d4SRong-En Fan library by reducing global and static variables. This option is also 531aa59d4d4SRong-En Fan set if --with-pthread is used. 5325ca44d1cSRong-En Fan 53318259542SPeter Wemm --enable-rpath 5344a1a9510SRong-En Fan Use rpath option when generating shared libraries, and (with some 5354a1a9510SRong-En Fan restrictions) when linking the corresponding programs. This originally 5364a1a9510SRong-En Fan (in 1997) applied mainly to systems using the GNU linker (read the 5374a1a9510SRong-En Fan manpage). 5384a1a9510SRong-En Fan 5394a1a9510SRong-En Fan More recently it is useful for systems that require special treatment 5404a1a9510SRong-En Fan shared libraries in "unusual" locations. The "system" libraries reside 5414a1a9510SRong-En Fan in directories which are on the loader's default search-path. While 5424a1a9510SRong-En Fan you may be able to use workarounds such as the $LD_LIBRARY_PATH 5434a1a9510SRong-En Fan environment variable, they do not work with setuid applications since 5444a1a9510SRong-En Fan the LD_LIBRARY_PATH variable would be unset in that situation. 54518259542SPeter Wemm 5465ca44d1cSRong-En Fan This option does not apply to --with-libtool, since libtool makes 5475ca44d1cSRong-En Fan extra assumptions about rpath. 5485ca44d1cSRong-En Fan 54918259542SPeter Wemm --enable-safe-sprintf 55018259542SPeter Wemm Compile with experimental safe-sprintf code. You may consider using 55118259542SPeter Wemm this if you are building ncurses for a system that has neither 55218259542SPeter Wemm vsnprintf() or vsprintf(). It is slow, however. 55318259542SPeter Wemm 55418259542SPeter Wemm --enable-sigwinch 55518259542SPeter Wemm Compile support for ncurses' SIGWINCH handler. If your application has 55618259542SPeter Wemm its own SIGWINCH handler, ncurses will not use its own. The ncurses 55718259542SPeter Wemm handler causes wgetch() to return KEY_RESIZE when the screen-size 55818259542SPeter Wemm changes. This option is the default, unless you have disabled the 55918259542SPeter Wemm extended functions. 56018259542SPeter Wemm 5614a1a9510SRong-En Fan --enable-signed-char 5624a1a9510SRong-En Fan The term.h header declares a Booleans[] array typed "char". But it 5634a1a9510SRong-En Fan stores signed values there and "char" is not necessarily signed. 5644a1a9510SRong-En Fan Some packagers choose to alter the type of Booleans[] though this 5654a1a9510SRong-En Fan is not strictly compatible. This option allows one to implement this 5664a1a9510SRong-En Fan alteration without patching the source code. 5674a1a9510SRong-En Fan 56818259542SPeter Wemm --enable-symlinks 56918259542SPeter Wemm If your system supports symbolic links, make tic use symbolic links 57018259542SPeter Wemm rather than hard links to save diskspace when writing aliases in the 57118259542SPeter Wemm terminfo database. 57218259542SPeter Wemm 57318259542SPeter Wemm --enable-tcap-names 57418259542SPeter Wemm Compile-in support for user-definable terminal capabilities. Use the 57518259542SPeter Wemm -x option of tic and infocmp to treat unrecognized terminal 57618259542SPeter Wemm capabilities as user-defined strings. This option is the default, 57718259542SPeter Wemm unless you have disabled the extended functions. 57818259542SPeter Wemm 57918259542SPeter Wemm --enable-termcap 58018259542SPeter Wemm Compile in support for reading terminal descriptions from termcap if no 58118259542SPeter Wemm match is found in the terminfo database. See also the --enable-getcap 58218259542SPeter Wemm and --enable-getcap-cache options. 58318259542SPeter Wemm 58418259542SPeter Wemm --enable-warnings 58518259542SPeter Wemm Turn on GCC compiler warnings. There should be only a few. 58618259542SPeter Wemm 5875d08fb1fSRong-En Fan --enable-weak-symbols 5885d08fb1fSRong-En Fan If the --with-pthread option is set, check if the compiler supports 5895d08fb1fSRong-En Fan weak-symbols. If it does, then name the thread-capable library without 5905d08fb1fSRong-En Fan the "t" (libncurses rather than libncursest), and provide for 5915d08fb1fSRong-En Fan dynamically loading the pthreads entrypoints at runtime. This allows 5925d08fb1fSRong-En Fan one to reduce the number of library files for ncurses. 5935d08fb1fSRong-En Fan 5944a1a9510SRong-En Fan --enable-wgetch-events 5954a1a9510SRong-En Fan Compile with experimental wgetch-events code. See ncurses/README.IZ 5964a1a9510SRong-En Fan 59718259542SPeter Wemm --enable-widec 5984a1a9510SRong-En Fan Compile with wide-character code. This makes a different version of 5994a1a9510SRong-En Fan the libraries (e.g., libncursesw.so), which stores characters as 6004a1a9510SRong-En Fan wide-characters, 60118259542SPeter Wemm 60218259542SPeter Wemm NOTE: applications compiled with this configuration are not compatible 60318259542SPeter Wemm with those built for 8-bit characters. You cannot simply make a 60418259542SPeter Wemm symbolic link to equate libncurses.so with libncursesw.so 60518259542SPeter Wemm 6064a1a9510SRong-En Fan NOTE: the Ada95 binding may be built against either version of the the 6074a1a9510SRong-En Fan ncurses library, but you must decide which: the binding installs the 6084a1a9510SRong-En Fan same set of files for either version. Currently (2002/6/22) it does 6094a1a9510SRong-En Fan not use the extended features from the wide-character code, so it is 6104a1a9510SRong-En Fan probably better to not install the binding for that configuration. 6114a1a9510SRong-En Fan 61218259542SPeter Wemm --enable-xmc-glitch 61318259542SPeter Wemm Compile-in support experimental xmc (magic cookie) code. 61418259542SPeter Wemm 6154a1a9510SRong-En Fan --with-abi-version=NUM 6164a1a9510SRong-En Fan Override the ABI version, which is used in shared library filenames. 6174a1a9510SRong-En Fan Normally this is the same as the release version; some ports have 6184a1a9510SRong-En Fan special requirements for compatibility. 6194a1a9510SRong-En Fan 6205d08fb1fSRong-En Fan This option does not affect linking with libtool, which uses the 6215d08fb1fSRong-En Fan release major/minor numbers. 6225d08fb1fSRong-En Fan 62318259542SPeter Wemm --with-ada-compiler=CMD 62418259542SPeter Wemm Specify the Ada95 compiler command (default "gnatmake") 62518259542SPeter Wemm 62618259542SPeter Wemm --with-ada-include=DIR 62718259542SPeter Wemm Tell where to install the Ada includes (default: 62818259542SPeter Wemm PREFIX/lib/ada/adainclude) 62918259542SPeter Wemm 63018259542SPeter Wemm --with-ada-objects=DIR 63118259542SPeter Wemm Tell where to install the Ada objects (default: PREFIX/lib/ada/adalib) 63218259542SPeter Wemm 63339f2269fSPeter Wemm --with-bool=TYPE 63439f2269fSPeter Wemm If --without-cxx is specified, override the type used for the "bool" 63539f2269fSPeter Wemm declared in curses.h (normally the type is automatically chosen to 63639f2269fSPeter Wemm correspond with that in <stdbool.h>, or defaults to platform-specific 63739f2269fSPeter Wemm sizes). 63839f2269fSPeter Wemm 63939f2269fSPeter Wemm --with-build-cc=XXX 64039f2269fSPeter Wemm If cross-compiling, specify a host C compiler, which is needed to 6414a1a9510SRong-En Fan compile a few utilities which generate source modules for ncurses. 64239f2269fSPeter Wemm If you do not give this option, the configure script checks if the 64339f2269fSPeter Wemm $BUILD_CC variable is set, and otherwise defaults to gcc or cc. 64439f2269fSPeter Wemm 64539f2269fSPeter Wemm --with-build-cflags=XXX 64639f2269fSPeter Wemm If cross-compiling, specify the host C compiler-flags. You might need 64739f2269fSPeter Wemm to do this if the target compiler has unusual flags which confuse the 64839f2269fSPeter Wemm host compiler. 64939f2269fSPeter Wemm 6505d08fb1fSRong-En Fan You can also set the environment variable $BUILD_CFLAGS rather than 6515d08fb1fSRong-En Fan use this option. 6525d08fb1fSRong-En Fan 6534a1a9510SRong-En Fan --with-build-cppflags=XXX 6544a1a9510SRong-En Fan If cross-compiling, specify the host C preprocessor-flags. You might 6554a1a9510SRong-En Fan need to do this if the target compiler has unusual flags which confuse 6564a1a9510SRong-En Fan the host compiler. 6574a1a9510SRong-En Fan 6585d08fb1fSRong-En Fan You can also set the environment variable $BUILD_CPPFLAGS rather than 6595d08fb1fSRong-En Fan use this option. 6605d08fb1fSRong-En Fan 66139f2269fSPeter Wemm --with-build-ldflags=XXX 66239f2269fSPeter Wemm If cross-compiling, specify the host linker-flags. You might need to 66339f2269fSPeter Wemm do this if the target linker has unusual flags which confuse the host 66439f2269fSPeter Wemm compiler. 66539f2269fSPeter Wemm 6665d08fb1fSRong-En Fan You can also set the environment variable $BUILD_LDFLAGS rather than 6675d08fb1fSRong-En Fan use this option. 6685d08fb1fSRong-En Fan 66939f2269fSPeter Wemm --with-build-libs=XXX 67039f2269fSPeter Wemm If cross-compiling, the host libraries. You might need to do this if 67139f2269fSPeter Wemm the target environment requires unusual libraries. 67239f2269fSPeter Wemm 6735d08fb1fSRong-En Fan You can also set the environment variable $BUILD_LIBS rather than 6745d08fb1fSRong-En Fan use this option. 6755d08fb1fSRong-En Fan 67639f2269fSPeter Wemm --with-caps=XXX 67739f2269fSPeter Wemm Specify an alternate terminfo capabilities file, which makes the 67839f2269fSPeter Wemm configure script look for "include/Caps.XXX". A few systems, e.g., 67939f2269fSPeter Wemm AIX 4.x use the same overall file-format as ncurses for terminfo 68039f2269fSPeter Wemm data, but use different alignments within the tables to support 68139f2269fSPeter Wemm legacy applications. For those systems, you can configure ncurses 68239f2269fSPeter Wemm to use a terminfo database which is compatible with the native 68339f2269fSPeter Wemm applications. 68439f2269fSPeter Wemm 6854a1a9510SRong-En Fan --with-chtype=TYPE 6864a1a9510SRong-En Fan Override type of chtype, which stores the video attributes and (if 6874a1a9510SRong-En Fan --enable-widec is not given) a character. Prior to ncurses 5.5, this 6884a1a9510SRong-En Fan was always unsigned long, but with ncurses 5.5, it may be unsigned. 6894a1a9510SRong-En Fan Use this option if you need to preserve compatibility with 64-bit 6904a1a9510SRong-En Fan executables. 6914a1a9510SRong-En Fan 69218259542SPeter Wemm --with-database=XXX 69318259542SPeter Wemm Specify the terminfo source file to install. Usually you will wish 69418259542SPeter Wemm to install ncurses' default (misc/terminfo.src). Certain systems 69518259542SPeter Wemm have special requirements, e.g, OS/2 EMX has a customized terminfo 69618259542SPeter Wemm source file. 69718259542SPeter Wemm 69818259542SPeter Wemm --with-dbmalloc 69918259542SPeter Wemm For testing, compile and link with Conor Cahill's dbmalloc library. 7004a1a9510SRong-En Fan This also sets the --disable-leaks option. 70118259542SPeter Wemm 70218259542SPeter Wemm --with-debug 70318259542SPeter Wemm Generate debug-libraries (default). These are named by adding "_g" 70418259542SPeter Wemm to the root, e.g., libncurses_g.a 70518259542SPeter Wemm 70618259542SPeter Wemm --with-default-terminfo-dir=XXX 70718259542SPeter Wemm Specify the default terminfo database directory. This is normally 70818259542SPeter Wemm DATADIR/terminfo, e.g., /usr/share/terminfo. 70918259542SPeter Wemm 71018259542SPeter Wemm --with-dmalloc 71118259542SPeter Wemm For testing, compile and link with Gray Watson's dmalloc library. 7124a1a9510SRong-En Fan This also sets the --disable-leaks option. 71318259542SPeter Wemm 71418259542SPeter Wemm --with-fallbacks=XXX 71518259542SPeter Wemm Specify a list of fallback terminal descriptions which will be 71618259542SPeter Wemm compiled into the ncurses library. See CONFIGURING FALLBACK ENTRIES. 71718259542SPeter Wemm 71818259542SPeter Wemm --with-gpm 71918259542SPeter Wemm use Alessandro Rubini's GPM library to provide mouse support on the 7204a1a9510SRong-En Fan Linux console. Prior to ncurses 5.5, this introduced a dependency on 7214a1a9510SRong-En Fan the GPM library. 7224a1a9510SRong-En Fan 7234a1a9510SRong-En Fan Currently ncurses uses the dlsym() function to bind to the library at 7244a1a9510SRong-En Fan runtime, so it is only necessary that the library be present when 7254a1a9510SRong-En Fan ncurses is built, to obtain the filename (or soname) used in the 7264a1a9510SRong-En Fan corresponding dlopen() call. If you give a value for this option, 7274a1a9510SRong-En Fan e.g., 7284a1a9510SRong-En Fan 7294a1a9510SRong-En Fan --with-gpm=$HOME/tmp/test-gpm.so 7304a1a9510SRong-En Fan 7314a1a9510SRong-En Fan that overrides the configure check for the soname. 7324a1a9510SRong-En Fan 7334a1a9510SRong-En Fan See also --without-dlsym 7344a1a9510SRong-En Fan 7355ca44d1cSRong-En Fan --with-hashed-db[=XXX] 7364a1a9510SRong-En Fan Use a hashed database for storing terminfo data rather than storing 7374a1a9510SRong-En Fan each compiled entry in a separate binary file within a directory 7384a1a9510SRong-En Fan tree. 7394a1a9510SRong-En Fan 7405ca44d1cSRong-En Fan In particular, this uses the Berkeley database 1.8.5 interface, as 7415ca44d1cSRong-En Fan provided by that and its successors db 2, 3, and 4. The actual 7425ca44d1cSRong-En Fan interface is slightly different in the successor versions of the 7435ca44d1cSRong-En Fan Berkeley database. The database should have been configured using 7445ca44d1cSRong-En Fan "--enable-compat185". 7455ca44d1cSRong-En Fan 7464a1a9510SRong-En Fan If you use this option for configuring ncurses, tic will only be able 7474a1a9510SRong-En Fan to write entries in the hashed database. infocmp can still read 7484a1a9510SRong-En Fan entries from a directory tree as well as reading entries from the 7494a1a9510SRong-En Fan hashed database. To do this, infocmp determines whether the $TERMINFO 7504a1a9510SRong-En Fan variable points to a directory or a file, and reads the directory-tree 7514a1a9510SRong-En Fan or hashed database respectively. 7524a1a9510SRong-En Fan 7534a1a9510SRong-En Fan You cannot have a directory containing both hashed-database and 7544a1a9510SRong-En Fan filesystem-based terminfo entries. 7554a1a9510SRong-En Fan 7565ca44d1cSRong-En Fan Use the parameter value to give the install-prefix used for the 7575ca44d1cSRong-En Fan datbase, e.g., 7585ca44d1cSRong-En Fan --with-hashed-db=/usr/local/BigBase 7595ca44d1cSRong-En Fan to find the corresponding include- and lib-directories under the 7605ca44d1cSRong-En Fan given directory. 7615ca44d1cSRong-En Fan 7624a1a9510SRong-En Fan See also the --enable-getcap option. 76318259542SPeter Wemm 76418259542SPeter Wemm --with-install-prefix=XXX 76518259542SPeter Wemm Allows you to specify an alternate location for installing ncurses 76618259542SPeter Wemm after building it. The value you specify is prepended to the "real" 7674a1a9510SRong-En Fan install location. This simplifies making binary packages. The 7684a1a9510SRong-En Fan makefile variable DESTDIR is set by this option. It is also possible 7694a1a9510SRong-En Fan to use 7704a1a9510SRong-En Fan make install DESTDIR=XXX 7714a1a9510SRong-En Fan since the makefiles pass that variable to subordinate makes. 77218259542SPeter Wemm 77318259542SPeter Wemm NOTE: a few systems build shared libraries with fixed pathnames; this 77418259542SPeter Wemm option probably will not work for those configurations. 77518259542SPeter Wemm 7764a1a9510SRong-En Fan --with-libtool[=XXX] 7774a1a9510SRong-En Fan Generate libraries with libtool. If this option is selected, then it 7784a1a9510SRong-En Fan overrides all other library model specifications. Note that libtool 7794a1a9510SRong-En Fan must already be installed, uses makefile rules dependent on GNU make, 7804a1a9510SRong-En Fan and does not promise to follow the version numbering convention of 7814a1a9510SRong-En Fan other shared libraries on your system. However, if the --with-shared 7824a1a9510SRong-En Fan option does not succeed, you may get better results with this option. 7834a1a9510SRong-En Fan 7844a1a9510SRong-En Fan If a parameter value is given, it must be the full pathname of the 7854a1a9510SRong-En Fan particular version of libtool, e.g., 7864a1a9510SRong-En Fan /usr/bin/libtool-1.2.3 7874a1a9510SRong-En Fan 7884a1a9510SRong-En Fan It is possible to rebuild the configure script to use the automake 7894a1a9510SRong-En Fan macros for libtool, e.g., AC_PROG_LIBTOOL. See the comments in 7904a1a9510SRong-En Fan aclocal.m4 for CF_PROG_LIBTOOL, and ensure that you build configure 7914a1a9510SRong-En Fan using the appropriate patch for autoconf from 7924a1a9510SRong-En Fan http://invisible-island.net/autoconf/ 7934a1a9510SRong-En Fan 7944a1a9510SRong-En Fan --with-manpage-aliases 7954a1a9510SRong-En Fan Tell the configure script you wish to create entries in the 7964a1a9510SRong-En Fan man-directory for aliases to manpages which list them, e.g., the 7974a1a9510SRong-En Fan functions in the panel manpage. This is the default. You can disable 7984a1a9510SRong-En Fan it if your man program does this. You can also disable 7994a1a9510SRong-En Fan --with-manpage-symlinks to install files containing a ".so" command 8004a1a9510SRong-En Fan rather than symbolic links. 8017a69bbfbSPeter Wemm 80218259542SPeter Wemm --with-manpage-format=XXX 80318259542SPeter Wemm Tell the configure script how you would like to install man-pages. The 80418259542SPeter Wemm option value must be one of these: gzip, compress, BSDI, normal, 80518259542SPeter Wemm formatted. If you do not give this option, the configure script 80618259542SPeter Wemm attempts to determine which is the case. 80718259542SPeter Wemm 80818259542SPeter Wemm --with-manpage-renames=XXX 80918259542SPeter Wemm Tell the configure script that you wish to rename the manpages while 81018259542SPeter Wemm installing. Currently the only distribution which does this is 81118259542SPeter Wemm the Linux Debian. The option value specifies the name of a file 81218259542SPeter Wemm that lists the renamed files, e.g., $srcdir/man/man_db.renames 81318259542SPeter Wemm 81418259542SPeter Wemm --with-manpage-symlinks 81518259542SPeter Wemm Tell the configure script that you wish to make symbolic links in the 81618259542SPeter Wemm man-directory for aliases to the man-pages. This is the default, but 81718259542SPeter Wemm can be disabled for systems that provide this automatically. Doing 81818259542SPeter Wemm this on systems that do not support symbolic links will result in 81918259542SPeter Wemm copying the man-page for each alias. 82018259542SPeter Wemm 8217a69bbfbSPeter Wemm --with-manpage-tbl 8227a69bbfbSPeter Wemm Tell the configure script that you with to preprocess the manpages 8237a69bbfbSPeter Wemm by running them through tbl to generate tables understandable by 8247a69bbfbSPeter Wemm nroff. 8257a69bbfbSPeter Wemm 8264a1a9510SRong-En Fan --with-mmask-t=TYPE 8274a1a9510SRong-En Fan Override type of mmask_t, which stores the mouse mask. Prior to 8284a1a9510SRong-En Fan ncurses 5.5, this was always unsigned long, but with ncurses 5.5, it 8294a1a9510SRong-En Fan may be unsigned. Use this option if you need to preserve compatibility 8304a1a9510SRong-En Fan with 64-bit executables. 8314a1a9510SRong-En Fan 8325d08fb1fSRong-En Fan --with-normal 8335d08fb1fSRong-En Fan Generate normal (i.e., static) libraries (default). 8345d08fb1fSRong-En Fan 8355d08fb1fSRong-En Fan Note: on Linux, the configure script will attempt to use the GPM 8365d08fb1fSRong-En Fan library via the dlsym() function call. Use --without-dlsym to disable 8375d08fb1fSRong-En Fan this feature, or --without-gpm, depending on whether you wish to use 8385d08fb1fSRong-En Fan GPM. 8395d08fb1fSRong-En Fan 8407a69bbfbSPeter Wemm --with-ospeed=TYPE 8417a69bbfbSPeter Wemm Override type of ospeed variable, which is part of the termcap 8427a69bbfbSPeter Wemm compatibility interface. In termcap, this is a 'short', which works 8437a69bbfbSPeter Wemm for a wide range of baudrates because ospeed is not the actual speed 8447a69bbfbSPeter Wemm but the encoded value, e.g., B9600 would be a small number such as 13. 8457a69bbfbSPeter Wemm However the encoding scheme originally allowed for values "only" up to 8467a69bbfbSPeter Wemm 38400bd. A newer set of definitions past 38400bd is not encoded as 8477a69bbfbSPeter Wemm compactly, and is not guaranteed to fit into a short (see the function 8487a69bbfbSPeter Wemm cfgetospeed(), which returns a speed_t for this reason). In practice, 8497a69bbfbSPeter Wemm applications that required knowledge of the ospeed variable, i.e., 8507a69bbfbSPeter Wemm those using termcap, do not use the higher speeds. Your application 8517a69bbfbSPeter Wemm (or system, in general) may or may not. 8527a69bbfbSPeter Wemm 85318259542SPeter Wemm --with-profile 85418259542SPeter Wemm Generate profile-libraries These are named by adding "_p" to the root, 85518259542SPeter Wemm e.g., libncurses_p.a 85618259542SPeter Wemm 857aa59d4d4SRong-En Fan --with-pthread 858aa59d4d4SRong-En Fan Link with POSIX threads, set --enable-reentrant. The use_window() and 859aa59d4d4SRong-En Fan use_screen() functions will use mutex's, allowing rudimentary support 860aa59d4d4SRong-En Fan for multithreaded applications. 861aa59d4d4SRong-En Fan 86218259542SPeter Wemm --with-rcs-ids 86318259542SPeter Wemm Compile-in RCS identifiers. Most of the C files have an identifier. 86418259542SPeter Wemm 8654a1a9510SRong-En Fan --with-rel-version=NUM 8664a1a9510SRong-En Fan Override the release version, which may be used in shared library 8674a1a9510SRong-En Fan filenames. This consists of a major and minor version number separated 8684a1a9510SRong-En Fan by ".". Normally the major version number is the same as the ABI 8694a1a9510SRong-En Fan version; some ports have special requirements for compatibility. 8704a1a9510SRong-En Fan 87118259542SPeter Wemm --with-shared 87218259542SPeter Wemm Generate shared-libraries. The names given depend on the system for 87318259542SPeter Wemm which you are building, typically using a ".so" suffix, along with 87418259542SPeter Wemm symbolic links that refer to the release version. 87518259542SPeter Wemm 87618259542SPeter Wemm NOTE: Unless you override the configure script by setting the $CFLAGS 87718259542SPeter Wemm environment variable, these will not be built with the -g debugging 87818259542SPeter Wemm option. 87918259542SPeter Wemm 8804a1a9510SRong-En Fan NOTE: For some configurations, e.g., installing a new version of 8814a1a9510SRong-En Fan ncurses shared libraries on a machine which already has ncurses 8824a1a9510SRong-En Fan shared libraries, you may encounter problems with the linker. 8834a1a9510SRong-En Fan For example, it may prevent you from running the build tree's 8844a1a9510SRong-En Fan copy of tic (for installing the terminfo database) because it 8854a1a9510SRong-En Fan loads the system's copy of the ncurses shared libraries. In that 8864a1a9510SRong-En Fan case, using the misc/shlib script may be helpful, since it sets 8874a1a9510SRong-En Fan $LD_LIBRARY_PATH to point to the build tree, e.g., 8884a1a9510SRong-En Fan ./misc/shlib make install 8894a1a9510SRong-En Fan 89018259542SPeter Wemm --with-shlib-version=XXX 89118259542SPeter Wemm Specify whether to use the release or ABI version for shared libraries. 89218259542SPeter Wemm This is normally chosen automatically based on the type of system 89318259542SPeter Wemm which you are building on. We use it for testing the configure script. 89418259542SPeter Wemm 8954a1a9510SRong-En Fan --with-sysmouse 8964a1a9510SRong-En Fan use FreeBSD sysmouse interface provide mouse support on the console. 8974a1a9510SRong-En Fan 89818259542SPeter Wemm --with-system-type=XXX 89918259542SPeter Wemm For testing, override the derived host system-type which is used to 90018259542SPeter Wemm decide things such as the linker commands used to build shared 90118259542SPeter Wemm libraries. This is normally chosen automatically based on the type of 90218259542SPeter Wemm system which you are building on. We use it for testing the configure 90318259542SPeter Wemm script. 90418259542SPeter Wemm 90518259542SPeter Wemm --with-terminfo-dirs=XXX 90618259542SPeter Wemm Specify a search-list of terminfo directories which will be compiled 90718259542SPeter Wemm into the ncurses library (default: DATADIR/terminfo) 90818259542SPeter Wemm 9094a1a9510SRong-En Fan --with-termlib[=XXX] 91018259542SPeter Wemm When building the ncurses library, organize this as two parts: the 91118259542SPeter Wemm curses library (libncurses) and the low-level terminfo library 91218259542SPeter Wemm (libtinfo). This is done to accommodate applications that use only 91318259542SPeter Wemm the latter. The terminfo library is about half the size of the total. 91418259542SPeter Wemm 9154a1a9510SRong-En Fan If an option value is given, that overrides the name of the terminfo 9164a1a9510SRong-En Fan library. For instance, if the wide-character version is built, the 9174a1a9510SRong-En Fan terminfo library would be named libtinfow. But the libtinfow interface 9184a1a9510SRong-En Fan is upward compatible from libtinfo, so it would be possible to overlay 9194a1a9510SRong-En Fan libtinfo.so with a "wide" version of libtinfow.so by renaming it with 9204a1a9510SRong-En Fan this option. 9214a1a9510SRong-En Fan 92239f2269fSPeter Wemm --with-termpath=XXX 92339f2269fSPeter Wemm Specify a search-list of termcap files which will be compiled into the 92439f2269fSPeter Wemm ncurses library (default: /etc/termcap:/usr/share/misc/termcap) 92539f2269fSPeter Wemm 9265ca44d1cSRong-En Fan --with-ticlib[=XXX] 9275ca44d1cSRong-En Fan When building the ncurses library, build a separate library for 9285ca44d1cSRong-En Fan the modules that are used only by the utility programs. Normally 9295ca44d1cSRong-En Fan those would be bundled with the termlib or ncurses libraries. 9305ca44d1cSRong-En Fan 9315ca44d1cSRong-En Fan If an option value is given, that overrides the name of the tic 9325ca44d1cSRong-En Fan library. As in termlib, there is no ABI difference between the 9335ca44d1cSRong-En Fan "wide" libticw.so and libtic.so 9345ca44d1cSRong-En Fan 9355d08fb1fSRong-En Fan NOTE: Overriding the name of the tic library may be useful if you are 9365d08fb1fSRong-En Fan also using the --with-termlib option to rename libtinfo. If you are 9375d08fb1fSRong-En Fan not doing that, renaming the tic library can result in conflicting 9385d08fb1fSRong-En Fan library dependencies for tic and other programs built with the tic 9395d08fb1fSRong-En Fan library. 9405d08fb1fSRong-En Fan 9414a1a9510SRong-En Fan --with-trace 9424a1a9510SRong-En Fan Configure the trace() function as part of the all models of the ncurses 9434a1a9510SRong-En Fan library. Normally it is part of the debug (libncurses_g) library only. 9444a1a9510SRong-En Fan 9454a1a9510SRong-En Fan --with-valgrind 9464a1a9510SRong-En Fan For testing, compile with debug option. 9474a1a9510SRong-En Fan This also sets the --disable-leaks option. 9484a1a9510SRong-En Fan 94918259542SPeter Wemm --without-ada 95018259542SPeter Wemm Suppress the configure script's check for Ada95, do not build the 95118259542SPeter Wemm Ada95 binding and related demo. 95218259542SPeter Wemm 9537a69bbfbSPeter Wemm --without-curses-h 9547a69bbfbSPeter Wemm Don't install the ncurses header with the name "curses.h". Rather, 9557a69bbfbSPeter Wemm install as "ncurses.h" and modify the installed headers and manpages 9567a69bbfbSPeter Wemm accordingly. 9577a69bbfbSPeter Wemm 95818259542SPeter Wemm --without-cxx 95918259542SPeter Wemm XSI curses declares "bool" as part of the interface. C++ also declares 96018259542SPeter Wemm "bool". Neither specifies the size and type of booleans, but both 96118259542SPeter Wemm insist on the same name. We chose to accommodate this by making the 96218259542SPeter Wemm configure script check for the size and type (e.g., unsigned or signed) 96318259542SPeter Wemm that your C++ compiler uses for booleans. If you do not wish to use 96418259542SPeter Wemm ncurses with C++, use this option to tell the configure script to not 96518259542SPeter Wemm adjust ncurses bool to match C++. 96618259542SPeter Wemm 96718259542SPeter Wemm --without-cxx-binding 96818259542SPeter Wemm Suppress the configure script's check for C++, do not build the 96918259542SPeter Wemm C++ binding and related demo. 97018259542SPeter Wemm 9714a1a9510SRong-En Fan --without-develop 9724a1a9510SRong-En Fan Disable development options. This does not include those that change 9734a1a9510SRong-En Fan the interface, such as --enable-widec. 9744a1a9510SRong-En Fan 9754a1a9510SRong-En Fan --without-dlsym 9764a1a9510SRong-En Fan Do not use dlsym() to load GPM dynamically. 9774a1a9510SRong-En Fan 97818259542SPeter Wemm --without-progs 97918259542SPeter Wemm Tell the configure script to suppress the build of ncurses' application 98018259542SPeter Wemm programs (e.g., tic). The test applications will still be built if you 98118259542SPeter Wemm type "make", though not if you simply do "make install". 98218259542SPeter Wemm 9834a1a9510SRong-En Fan --without-xterm-new 9844a1a9510SRong-En Fan Tell the configure script to use "xterm-old" for the entry used in 9854a1a9510SRong-En Fan the terminfo database. This will work with variations such as 9864a1a9510SRong-En Fan X11R5 and X11R6 xterm. 9874a1a9510SRong-En Fan 98818259542SPeter Wemm 98915589c42SPeter WemmCOMPATIBILITY WITH OLDER VERSIONS OF NCURSES: 99015589c42SPeter Wemm-------------------------------------------- 99115589c42SPeter Wemm 99215589c42SPeter Wemm Because ncurses implements the X/Open Curses Specification, its interface 99315589c42SPeter Wemm is fairly stable. That does not mean the interface does not change. 99415589c42SPeter Wemm Changes are made to the documented interfaces when we find differences 99515589c42SPeter Wemm between ncurses and X/Open or implementations which they certify (such as 99615589c42SPeter Wemm Solaris). We add extensions to those interfaces to solve problems not 99715589c42SPeter Wemm addressed by the original curses design, but those must not conflict with 99815589c42SPeter Wemm the X/Open documentation. 99915589c42SPeter Wemm 100015589c42SPeter Wemm Here are some of the major interface changes, and related problems which 100115589c42SPeter Wemm you may encounter when building a system with different versions of 100215589c42SPeter Wemm ncurses: 100315589c42SPeter Wemm 10045d08fb1fSRong-En Fan 5.7 (November 2, 2008) 10055d08fb1fSRong-En Fan Interface changes: 10065d08fb1fSRong-En Fan 10075d08fb1fSRong-En Fan + generate linkable stubs for some macros: 10085d08fb1fSRong-En Fan getattrs 10095d08fb1fSRong-En Fan 10105d08fb1fSRong-En Fan + Add new library configuration for tic-library (the non-curses portion 10115d08fb1fSRong-En Fan of the ncurses library used for the tic program as well as some 10125d08fb1fSRong-En Fan others such as tack. There is no API change, but makefiles would be 10135d08fb1fSRong-En Fan changed to use the tic-library built separately. 10145d08fb1fSRong-En Fan 10155d08fb1fSRong-En Fan tack, distributed separately from ncurses, uses some of the internal 10165d08fb1fSRong-En Fan _nc_XXX functions, which are declared in the tic.h header file. 10175d08fb1fSRong-En Fan 10185d08fb1fSRong-En Fan The reason for providing this separate library is that none of the 10195d08fb1fSRong-En Fan functions in it are suitable for threaded applications. 10205d08fb1fSRong-En Fan 10215d08fb1fSRong-En Fan + Add new library configuration (ncursest, ncurseswt) which provides 10225d08fb1fSRong-En Fan rudimentary support for POSIX threads. This introduces opaque 10235d08fb1fSRong-En Fan access functions to the WINDOW structure and adds a parameter to 10245d08fb1fSRong-En Fan several internal functions. 10255d08fb1fSRong-En Fan 10265d08fb1fSRong-En Fan + move most internal variables (except tic-library) into data blocks 10275d08fb1fSRong-En Fan _nc_globals and _nc_prescreen to simplify analysis. Those were 10285d08fb1fSRong-En Fan globally accessible, but since they were not part of the documented 10295d08fb1fSRong-En Fan API, there is no ABI change. 10305d08fb1fSRong-En Fan 10315d08fb1fSRong-En Fan + changed static tables of strings to be indices into long strings, to 10325d08fb1fSRong-En Fan improve startup performance. This changes parameter lists for some 10335d08fb1fSRong-En Fan of the internal functions. 10345d08fb1fSRong-En Fan 10355d08fb1fSRong-En Fan Added extensions: 10365d08fb1fSRong-En Fan 10375d08fb1fSRong-En Fan + add NCURSES_OPAQUE definition in curses.h to control whether internal 10385d08fb1fSRong-En Fan details of the WINDOW structure are visible to an application. This 10395d08fb1fSRong-En Fan is always defined when the threaded library is built, and is optional 10405d08fb1fSRong-En Fan otherwise. New functions for this: is_cleared, is_idcok, is_idlok, 10415d08fb1fSRong-En Fan is_immedok, is_keypad, is_leaveok, is_nodelay, is_notimeout, 10425d08fb1fSRong-En Fan is_scrollok, is_syncok, wgetparent and wgetscrreg. 10435d08fb1fSRong-En Fan 10445d08fb1fSRong-En Fan + the threaded library (ncursest) also disallows direct updating of 10455d08fb1fSRong-En Fan global curses-level variables, providing functions (via macros) for 10465d08fb1fSRong-En Fan obtaining their value. A few of those variables can be modified by 10475d08fb1fSRong-En Fan the application, using new functions: set_escdelay, set_tabsize 10485d08fb1fSRong-En Fan 10495d08fb1fSRong-En Fan + added functions use_window() and use_screen() which wrap a mutex 10505d08fb1fSRong-En Fan (if threading is configured) around a call to a user-supplied 10515d08fb1fSRong-En Fan function. 10525d08fb1fSRong-En Fan 10535d08fb1fSRong-En Fan Added internal functions: 10545d08fb1fSRong-En Fan _nc_get_alias_table 10555d08fb1fSRong-En Fan _nc_get_screensize 10565d08fb1fSRong-En Fan _nc_keyname 10575d08fb1fSRong-En Fan _nc_screen_of 10585d08fb1fSRong-En Fan _nc_set_no_padding 10595d08fb1fSRong-En Fan _nc_tracechar 10605d08fb1fSRong-En Fan _nc_tracemouse 10615d08fb1fSRong-En Fan _nc_unctrl 10625d08fb1fSRong-En Fan _nc_ungetch 10635d08fb1fSRong-En Fan 10645d08fb1fSRong-En Fan These are used for leak-testing, and are stubs for 10655d08fb1fSRong-En Fan ABI compatibility when ncurses is not configured for that 10665d08fb1fSRong-En Fan using the --disable-leaks configure script option: 10675d08fb1fSRong-En Fan 10685d08fb1fSRong-En Fan _nc_free_and_exit 10695d08fb1fSRong-En Fan _nc_leaks_tinfo 10705d08fb1fSRong-En Fan 10715d08fb1fSRong-En Fan Removed internal functions: 10725d08fb1fSRong-En Fan none 10735d08fb1fSRong-En Fan 10745d08fb1fSRong-En Fan Modified internal functions: 10755d08fb1fSRong-En Fan _nc_fifo_dump 10765d08fb1fSRong-En Fan _nc_find_entry 10775d08fb1fSRong-En Fan _nc_handle_sigwinch 10785d08fb1fSRong-En Fan _nc_init_keytry 10795d08fb1fSRong-En Fan _nc_keypad 10805d08fb1fSRong-En Fan _nc_locale_breaks_acs 10815d08fb1fSRong-En Fan _nc_timed_wait 10825d08fb1fSRong-En Fan _nc_update_screensize 10835d08fb1fSRong-En Fan 10845d08fb1fSRong-En Fan Use new typedef TRIES to replace "struct tries": 10855d08fb1fSRong-En Fan 10865d08fb1fSRong-En Fan _nc_add_to_try 10875d08fb1fSRong-En Fan _nc_expand_try 10885d08fb1fSRong-En Fan _nc_remove_key 10895d08fb1fSRong-En Fan _nc_remove_string 10905d08fb1fSRong-En Fan _nc_trace_tries 10915d08fb1fSRong-En Fan 10924a1a9510SRong-En Fan 5.6 (December 17, 2006) 10934a1a9510SRong-En Fan Interface changes: 10944a1a9510SRong-En Fan 10954a1a9510SRong-En Fan + generate linkable stubs for some macros: 10964a1a9510SRong-En Fan 10974a1a9510SRong-En Fan getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx, 10984a1a9510SRong-En Fan getpary, getpary, 10994a1a9510SRong-En Fan 11004a1a9510SRong-En Fan and (for libncursesw) 11014a1a9510SRong-En Fan 11024a1a9510SRong-En Fan wgetbkgrnd 11034a1a9510SRong-En Fan 11044a1a9510SRong-En Fan Added extensions: 11054a1a9510SRong-En Fan nofilter() 11064a1a9510SRong-En Fan use_legacy_coding() 11074a1a9510SRong-En Fan 11084a1a9510SRong-En Fan Added internal functions: 11094a1a9510SRong-En Fan _nc_first_db 11104a1a9510SRong-En Fan _nc_get_source 11114a1a9510SRong-En Fan _nc_handle_sigwinch 11124a1a9510SRong-En Fan _nc_is_abs_path 11134a1a9510SRong-En Fan _nc_is_dir_path 11144a1a9510SRong-En Fan _nc_is_file_path 11154a1a9510SRong-En Fan _nc_keep_tic_dir 11164a1a9510SRong-En Fan _nc_keep_tic_dir 11174a1a9510SRong-En Fan _nc_last_db 11184a1a9510SRong-En Fan _nc_next_db 11194a1a9510SRong-En Fan _nc_read_termtype 11204a1a9510SRong-En Fan _nc_tic_dir 11214a1a9510SRong-En Fan 11224a1a9510SRong-En Fan Also (if using the hashed database configuration): 11234a1a9510SRong-En Fan 11244a1a9510SRong-En Fan _nc_db_close 11254a1a9510SRong-En Fan _nc_db_first 11264a1a9510SRong-En Fan _nc_db_get 11274a1a9510SRong-En Fan _nc_db_have_data 11284a1a9510SRong-En Fan _nc_db_have_index 11294a1a9510SRong-En Fan _nc_db_next 11304a1a9510SRong-En Fan _nc_db_open 11314a1a9510SRong-En Fan _nc_db_put 11324a1a9510SRong-En Fan 11334a1a9510SRong-En Fan otherwise 11344a1a9510SRong-En Fan 11354a1a9510SRong-En Fan _nc_hashed_db 11364a1a9510SRong-En Fan 11374a1a9510SRong-En Fan Removed internal functions: 11384a1a9510SRong-En Fan none 11394a1a9510SRong-En Fan 11404a1a9510SRong-En Fan Modified internal functions: 11414a1a9510SRong-En Fan _nc_add_to_try 11424a1a9510SRong-En Fan _nc_do_color 11434a1a9510SRong-En Fan _nc_expand_try 11444a1a9510SRong-En Fan _nc_remove_key 11454a1a9510SRong-En Fan _nc_setupscreen 11464a1a9510SRong-En Fan 11474a1a9510SRong-En Fan 5.5 (October 10, 2005) 11484a1a9510SRong-En Fan Interface changes: 11494a1a9510SRong-En Fan 11504a1a9510SRong-En Fan + terminfo installs "xterm-new" as "xterm" entry rather than 11514a1a9510SRong-En Fan "xterm-old" (aka xterm-r6). 11524a1a9510SRong-En Fan 11534a1a9510SRong-En Fan + terminfo data is installed using the tic -x option (few systems 11544a1a9510SRong-En Fan still use ncurses 4.2). 11554a1a9510SRong-En Fan 11564a1a9510SRong-En Fan + modify C++ binding to work with newer C++ compilers by providing 11574a1a9510SRong-En Fan initializers and using modern casts. Old-style header names are 11584a1a9510SRong-En Fan still used in this release to allow compiling with not-so-old 11594a1a9510SRong-En Fan compilers. 11604a1a9510SRong-En Fan 11614a1a9510SRong-En Fan + form and menu libraries now work with wide-character data. 11624a1a9510SRong-En Fan Applications which bypassed the form library and manipulated the 11634a1a9510SRong-En Fan FIELD.buf data directly will not work properly with libformw, since 11644a1a9510SRong-En Fan that no longer points to an array of char. The set_field_buffer() 11654a1a9510SRong-En Fan and field_buffer() functions translate to/from the actual field 11664a1a9510SRong-En Fan data. 11674a1a9510SRong-En Fan 11684a1a9510SRong-En Fan + change SP->_current_attr to a pointer, adjust ifdef's to ensure that 11694a1a9510SRong-En Fan libtinfo.so and libtinfow.so have the same ABI. The reason for this 11704a1a9510SRong-En Fan is that the corresponding data which belongs to the upper-level 11714a1a9510SRong-En Fan ncurses library has a different size in each model. 11724a1a9510SRong-En Fan 11734a1a9510SRong-En Fan + winnstr() now returns multibyte character strings for the 11744a1a9510SRong-En Fan wide-character configuration. 11754a1a9510SRong-En Fan 11764a1a9510SRong-En Fan + assume_default_colors() no longer requires that use_default_colors() 11774a1a9510SRong-En Fan be called first. 11784a1a9510SRong-En Fan 11794a1a9510SRong-En Fan + data_ahead() now works with wide-characters. 11804a1a9510SRong-En Fan 11814a1a9510SRong-En Fan + slk_set() and slk_wset() now accept and store multibyte or 11824a1a9510SRong-En Fan multicolumn characters. 11834a1a9510SRong-En Fan 11844a1a9510SRong-En Fan + start_color() now returns OK if colors have already been started. 11854a1a9510SRong-En Fan start_color() also returns ERR if it cannot allocate memory. 11864a1a9510SRong-En Fan 11874a1a9510SRong-En Fan + pair_content() now returns -1 for consistency with init_pair() if it 11884a1a9510SRong-En Fan corresponds to the default-color. 11894a1a9510SRong-En Fan 11904a1a9510SRong-En Fan + unctrl() now returns null if its parameter does not correspond 11914a1a9510SRong-En Fan to an unsigned char. 11924a1a9510SRong-En Fan 11934a1a9510SRong-En Fan Added extensions: 11944a1a9510SRong-En Fan Experimental mouse version 2 supports wheel mice with buttons 11954a1a9510SRong-En Fan 4 and 5. This requires ABI 6 because it modifies the encoding 11964a1a9510SRong-En Fan of mouse events. 11974a1a9510SRong-En Fan 11984a1a9510SRong-En Fan Experimental extended colors allows encoding of 256 foreground 11994a1a9510SRong-En Fan and background colors, e.g., with the xterm-256color or 12004a1a9510SRong-En Fan xterm-88color terminfo entries. This requires ABI 6 because 12014a1a9510SRong-En Fan it changes the size of cchar_t. 12024a1a9510SRong-En Fan 12034a1a9510SRong-En Fan Added internal functions: 12044a1a9510SRong-En Fan _nc_check_termtype2 12054a1a9510SRong-En Fan _nc_resolve_uses2 12064a1a9510SRong-En Fan _nc_retrace_cptr 12074a1a9510SRong-En Fan _nc_retrace_cvoid_ptr 12084a1a9510SRong-En Fan _nc_retrace_void_ptr 12094a1a9510SRong-En Fan _nc_setup_term 12104a1a9510SRong-En Fan 12114a1a9510SRong-En Fan Removed internal functions: 12124a1a9510SRong-En Fan none 12134a1a9510SRong-En Fan 12144a1a9510SRong-En Fan Modified internal functions: 12154a1a9510SRong-En Fan _nc_insert_ch 12164a1a9510SRong-En Fan _nc_save_str 12174a1a9510SRong-En Fan _nc_trans_string 12184a1a9510SRong-En Fan 12194a1a9510SRong-En Fan 5.4 (February 8, 2004) 12204a1a9510SRong-En Fan Interface changes: 12214a1a9510SRong-En Fan 12224a1a9510SRong-En Fan + add the remaining functions for X/Open curses wide-character support. 12234a1a9510SRong-En Fan These are only available if the library is configured using the 12244a1a9510SRong-En Fan --enable-widec option. 12254a1a9510SRong-En Fan pecho_wchar() 12264a1a9510SRong-En Fan slk_wset() 12274a1a9510SRong-En Fan 12284a1a9510SRong-En Fan + write getyx() and related 2-return macros in terms of getcury(), 12294a1a9510SRong-En Fan getcurx(), etc. 12304a1a9510SRong-En Fan 12314a1a9510SRong-En Fan + simplify ifdef for bool declaration in curses.h 12324a1a9510SRong-En Fan 12334a1a9510SRong-En Fan + modify ifdef's in curses.h that disabled use of __attribute__() for 12344a1a9510SRong-En Fan g++, since recent versions implement the cases which ncurses uses. 12354a1a9510SRong-En Fan 12364a1a9510SRong-En Fan + change some interfaces to use const: 12374a1a9510SRong-En Fan define_key() 12384a1a9510SRong-En Fan mvprintw() 12394a1a9510SRong-En Fan mvwprintw() 12404a1a9510SRong-En Fan printw() 12414a1a9510SRong-En Fan vw_printw() 12424a1a9510SRong-En Fan winsnstr() 12434a1a9510SRong-En Fan wprintw() 12444a1a9510SRong-En Fan 12454a1a9510SRong-En Fan Added extensions: 12464a1a9510SRong-En Fan key_defined() 12474a1a9510SRong-En Fan 12484a1a9510SRong-En Fan Added internal functions: 12494a1a9510SRong-En Fan _nc_get_locale() 12504a1a9510SRong-En Fan _nc_insert_ch() 12514a1a9510SRong-En Fan _nc_is_charable() wide 12524a1a9510SRong-En Fan _nc_locale_breaks_acs() 12534a1a9510SRong-En Fan _nc_pathlast() 12544a1a9510SRong-En Fan _nc_to_char() wide 12554a1a9510SRong-En Fan _nc_to_widechar() wide 12564a1a9510SRong-En Fan _nc_tparm_analyze() 12574a1a9510SRong-En Fan _nc_trace_bufcat() debug 12584a1a9510SRong-En Fan _nc_unicode_locale() 12594a1a9510SRong-En Fan 12604a1a9510SRong-En Fan Removed internal functions: 12614a1a9510SRong-En Fan _nc_outstr() 12624a1a9510SRong-En Fan _nc_sigaction() 12634a1a9510SRong-En Fan 12644a1a9510SRong-En Fan Modified internal functions: 12654a1a9510SRong-En Fan _nc_remove_string() 12664a1a9510SRong-En Fan _nc_retrace_chtype() 12674a1a9510SRong-En Fan 12684a1a9510SRong-En Fan 5.3 (October 12, 2002) 12694a1a9510SRong-En Fan Interface changes: 12704a1a9510SRong-En Fan 12714a1a9510SRong-En Fan + change type for bool used in headers to NCURSES_BOOL, which usually 12724a1a9510SRong-En Fan is the same as the compiler's definition for 'bool'. 12734a1a9510SRong-En Fan 12744a1a9510SRong-En Fan + add all but two functions for X/Open curses wide-character support. 12754a1a9510SRong-En Fan These are only available if the library is configured using the 12764a1a9510SRong-En Fan --enable-widec option. Missing functions are 12774a1a9510SRong-En Fan pecho_wchar() 12784a1a9510SRong-En Fan slk_wset() 12794a1a9510SRong-En Fan 12804a1a9510SRong-En Fan + add environment variable $NCURSES_ASSUMED_COLORS to modify the 12814a1a9510SRong-En Fan assume_default_colors() extension. 12824a1a9510SRong-En Fan 12834a1a9510SRong-En Fan Added extensions: 12844a1a9510SRong-En Fan is_term_resized() 12854a1a9510SRong-En Fan resize_term() 12864a1a9510SRong-En Fan 12874a1a9510SRong-En Fan Added internal functions: 12884a1a9510SRong-En Fan _nc_altcharset_name() debug 12894a1a9510SRong-En Fan _nc_reset_colors() 12904a1a9510SRong-En Fan _nc_retrace_bool() debug 12914a1a9510SRong-En Fan _nc_retrace_unsigned() debug 12924a1a9510SRong-En Fan _nc_rootname() 12934a1a9510SRong-En Fan _nc_trace_ttymode() debug 12944a1a9510SRong-En Fan _nc_varargs() debug 12954a1a9510SRong-En Fan _nc_visbufn() debug 12964a1a9510SRong-En Fan _nc_wgetch() 12974a1a9510SRong-En Fan 12984a1a9510SRong-En Fan Removed internal functions: 12994a1a9510SRong-En Fan _nc_background() 13004a1a9510SRong-En Fan 13014a1a9510SRong-En Fan Modified internal functions: 13024a1a9510SRong-En Fan _nc_freeall() debug 13034a1a9510SRong-En Fan 13047a69bbfbSPeter Wemm 5.2 (October 21, 2000) 13057a69bbfbSPeter Wemm Interface changes: 13067a69bbfbSPeter Wemm 13077a69bbfbSPeter Wemm + revert termcap ospeed variable to 'short' (see discussion of the 13087a69bbfbSPeter Wemm --with-ospeed configure option). 13097a69bbfbSPeter Wemm 131018259542SPeter Wemm 5.1 (July 8, 2000) 131118259542SPeter Wemm Interface changes: 131218259542SPeter Wemm 131318259542SPeter Wemm + made the extended terminal capabilities 131418259542SPeter Wemm (configure --enable-tcap-names) a standard feature. This should 131518259542SPeter Wemm be transparent to applications that do not require it. 131618259542SPeter Wemm 131718259542SPeter Wemm + removed the trace() function and related trace support from the 131818259542SPeter Wemm production library. 131918259542SPeter Wemm 132018259542SPeter Wemm + modified curses.h.in, undef'ing some symbols to avoid conflict 132118259542SPeter Wemm with C++ STL. 132218259542SPeter Wemm 132318259542SPeter Wemm Added extensions: assume_default_colors(). 132418259542SPeter Wemm 132518259542SPeter Wemm 5.0 (October 23, 1999) 132615589c42SPeter Wemm Interface changes: 132715589c42SPeter Wemm 132815589c42SPeter Wemm + implemented the wcolor_set() and slk_color() functions. 132915589c42SPeter Wemm 133015589c42SPeter Wemm + move macro winch to a function, to hide details of struct ldat 133115589c42SPeter Wemm 133215589c42SPeter Wemm + corrected prototypes for slk_* functions, using chtype rather than 133315589c42SPeter Wemm attr_t. 133415589c42SPeter Wemm 133515589c42SPeter Wemm + the slk_attr_{set,off,on} functions need an additional void* 133615589c42SPeter Wemm parameter according to XSI. 133715589c42SPeter Wemm 133815589c42SPeter Wemm + modified several prototypes to correspond with 1997 version of X/Open 133915589c42SPeter Wemm Curses: [w]attr_get(), [w]attr_set(), border_set() have different 134015589c42SPeter Wemm parameters. Some functions were renamed or misspelled: 134115589c42SPeter Wemm erase_wchar(), in_wchntr(), mvin_wchntr(). Some developers have used 134215589c42SPeter Wemm attr_get(). 134315589c42SPeter Wemm 134415589c42SPeter Wemm Added extensions: keybound(), curses_version(). 134515589c42SPeter Wemm 134615589c42SPeter Wemm Terminfo database changes: 134715589c42SPeter Wemm 134815589c42SPeter Wemm + change translation for termcap 'rs' to terminfo 'rs2', which is 134915589c42SPeter Wemm the documented equivalent, rather than 'rs1'. 135015589c42SPeter Wemm 135115589c42SPeter Wemm The problems are subtler in recent releases. 135215589c42SPeter Wemm 135315589c42SPeter Wemm a) This release provides users with the ability to define their own 135415589c42SPeter Wemm terminal capability extensions, like termcap. To accomplish this, 135515589c42SPeter Wemm we redesigned the TERMTYPE struct (in term.h). Very few 135615589c42SPeter Wemm applications use this struct. They must be recompiled to work with 135715589c42SPeter Wemm the 5.0 library. 135815589c42SPeter Wemm 135915589c42SPeter Wemm a) If you use the extended terminfo names (i.e., you used configure 136015589c42SPeter Wemm --enable-tcap-names), the resulting terminfo database can have some 136115589c42SPeter Wemm entries which are not readable by older versions of ncurses. This 136215589c42SPeter Wemm is a bug in the older versions: 136315589c42SPeter Wemm 136415589c42SPeter Wemm + the terminfo database stores booleans, numbers and strings in 136515589c42SPeter Wemm arrays. The capabilities that are listed in the arrays are 136615589c42SPeter Wemm specified by X/Open. ncurses recognizes a number of obsolete and 136715589c42SPeter Wemm extended names which are stored past the end of the specified 136815589c42SPeter Wemm entries. 136915589c42SPeter Wemm 137015589c42SPeter Wemm + a change to read_entry.c in 951001 made the library do an lseek() 137115589c42SPeter Wemm call incorrectly skipping data which is already read from the 137215589c42SPeter Wemm string array. This happens when the number of strings in the 137315589c42SPeter Wemm terminfo data file is greater than STRCOUNT, the number of 137415589c42SPeter Wemm specified and obsolete or extended strings. 137515589c42SPeter Wemm 137615589c42SPeter Wemm + as part of alignment with the X/Open final specification, in the 137715589c42SPeter Wemm 990109 patch we added two new terminfo capabilities: 137815589c42SPeter Wemm set_a_attributes and set_pglen_inch). This makes the indices for 137915589c42SPeter Wemm the obsolete and extended capabilities shift up by 2. 138015589c42SPeter Wemm 138115589c42SPeter Wemm + the last two capabilities in the obsolete/extended list are memu 138215589c42SPeter Wemm and meml, which are found in most terminfo descriptions for xterm. 138315589c42SPeter Wemm 138415589c42SPeter Wemm When trying to read this terminfo entry, the spurious lseek() 138515589c42SPeter Wemm causes the library to attempt to read the final portion of the 138615589c42SPeter Wemm terminfo data (the text of the string capabilities) 4 characters 138715589c42SPeter Wemm past its starting point, and reads 4 characters too few. The 138815589c42SPeter Wemm library rejects the data, and applications are unable to 138915589c42SPeter Wemm initialize that terminal type. 139015589c42SPeter Wemm 139115589c42SPeter Wemm FIX: remove memu and meml from the xterm description. They are 139215589c42SPeter Wemm obsolete, not used by ncurses. (It appears that the feature was 139315589c42SPeter Wemm added to xterm to make it more like hpterm). 139415589c42SPeter Wemm 139515589c42SPeter Wemm This is not a problem if you do not use the -x option of tic to 139615589c42SPeter Wemm create a terminfo database with extended names. Note that the 139715589c42SPeter Wemm user-defined terminal capabilities are not affected by this bug, 139815589c42SPeter Wemm since they are stored in a table after the older terminfo data ends, 139915589c42SPeter Wemm and are invisible to the older libraries. 140015589c42SPeter Wemm 140115589c42SPeter Wemm c) Some developers did not wish to use the C++ binding, and used the 140215589c42SPeter Wemm configure --without-cxx option. This causes problems if someone 140315589c42SPeter Wemm uses the ncurses library from C++ because that configure test 140415589c42SPeter Wemm determines the type for C++'s bool and makes ncurses match it, since 140515589c42SPeter Wemm both C++ and curses are specified to declare bool. Calling ncurses 140615589c42SPeter Wemm functions with the incorrect type for bool will cause execution 140715589c42SPeter Wemm errors. In 5.0 we added a configure option "--without-cxx-binding" 140815589c42SPeter Wemm which controls whether the binding itself is built and installed. 140915589c42SPeter Wemm 141018259542SPeter Wemm 4.2 (March 2, 1998) 141115589c42SPeter Wemm Interface changes: 141215589c42SPeter Wemm 141315589c42SPeter Wemm + correct prototype for termattrs() as per XPG4 version 2. 141415589c42SPeter Wemm 141515589c42SPeter Wemm + add placeholder prototypes for color_set(), erasewchar(), 141615589c42SPeter Wemm term_attrs(), wcolor_set() as per XPG4 version 2. 141715589c42SPeter Wemm 141815589c42SPeter Wemm + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in 141915589c42SPeter Wemm SVr4 headers. 142015589c42SPeter Wemm 142115589c42SPeter Wemm New extensions: keyok() and define_key(). 142215589c42SPeter Wemm 142315589c42SPeter Wemm Terminfo database changes: 142415589c42SPeter Wemm 142515589c42SPeter Wemm + corrected definition in curses.h for ACS_LANTERN, which was 'I' 142615589c42SPeter Wemm rather than 'i'. 142715589c42SPeter Wemm 142815589c42SPeter Wemm 4.1 (May 15, 1997) 142915589c42SPeter Wemm 143015589c42SPeter Wemm We added these extensions: use_default_colors(). Also added 143115589c42SPeter Wemm configure option --enable-const, to support the use of const where 143215589c42SPeter Wemm X/Open should have, but did not, specify. 143315589c42SPeter Wemm 143415589c42SPeter Wemm The terminfo database content changed the representation of color for 143515589c42SPeter Wemm most entries that use ANSI colors. SVr4 curses treats the setaf/setab 143615589c42SPeter Wemm and setf/setb capabilities differently, interchanging the red/blue 143715589c42SPeter Wemm colors in the latter. 143815589c42SPeter Wemm 143915589c42SPeter Wemm 4.0 (December 24, 1996) 144015589c42SPeter Wemm 144115589c42SPeter Wemm We bumped to version 4.0 because the newly released dynamic loader 144215589c42SPeter Wemm (ld.so.1.8.5) on Linux did not load shared libraries whose ABI and REL 144315589c42SPeter Wemm versions were inconsistent. At that point, ncurses ABI was 3.4 and the 144415589c42SPeter Wemm REL was 1.9.9g, so we made them consistent. 144515589c42SPeter Wemm 144615589c42SPeter Wemm 1.9.9g (December 1, 1996) 144715589c42SPeter Wemm 144815589c42SPeter Wemm This fixed most of the problems with 1.9.9e, and made these interface 144915589c42SPeter Wemm changes: 145015589c42SPeter Wemm 145115589c42SPeter Wemm + remove tparam(), which had been provided for compatibility with 145215589c42SPeter Wemm some termcap. tparm() is standard, and does not conflict with 145315589c42SPeter Wemm application's fallback for missing tparam(). 145415589c42SPeter Wemm 145515589c42SPeter Wemm + turn off hardware echo in initscr(). This changes the sense of the 145615589c42SPeter Wemm echo() function, which was initialized to echoing rather than 145715589c42SPeter Wemm nonechoing (the latter is specified). There were several other 145815589c42SPeter Wemm corrections to the terminal I/O settings which cause applications to 145915589c42SPeter Wemm behave differently. 146015589c42SPeter Wemm 146115589c42SPeter Wemm + implemented several functions (such as attr_on()) which were 146215589c42SPeter Wemm available only as macros. 146315589c42SPeter Wemm 146415589c42SPeter Wemm + corrected several typos in curses.h.in (i.e., the mvXXXX macros). 146515589c42SPeter Wemm 146615589c42SPeter Wemm + corrected prototypes for delay_output(), 146715589c42SPeter Wemm has_color, immedok() and idcok(). 146815589c42SPeter Wemm 146915589c42SPeter Wemm + corrected misspelled getbkgd(). Some applications used the 147015589c42SPeter Wemm misspelled name. 147115589c42SPeter Wemm 147215589c42SPeter Wemm + added _yoffset to WINDOW. The size of WINDOW does not impact 147315589c42SPeter Wemm applications, since they use only pointers to WINDOW structs. 147415589c42SPeter Wemm 147515589c42SPeter Wemm These changes were made to the terminfo database: 147615589c42SPeter Wemm 147715589c42SPeter Wemm + removed boolean 'getm' which was available as an extended name. 147815589c42SPeter Wemm 147915589c42SPeter Wemm We added these extensions: wresize(), resizeterm(), has_key() and 148015589c42SPeter Wemm mcprint(). 148115589c42SPeter Wemm 148215589c42SPeter Wemm 1.9.9e (March 24, 1996) 148315589c42SPeter Wemm 148415589c42SPeter Wemm not recommended (a last-minute/untested change left the forms and 148515589c42SPeter Wemm menus libraries unusable since they do not repaint the screen). 148615589c42SPeter Wemm Foreground/background colors are combined incorrectly, working properly 148715589c42SPeter Wemm only on a black background. When this was released, the X/Open 148815589c42SPeter Wemm specification was available only in draft form. 148915589c42SPeter Wemm 149015589c42SPeter Wemm Some applications (such as lxdialog) were "fixed" to work with the 149115589c42SPeter Wemm incorrect color scheme. 149215589c42SPeter Wemm 149315589c42SPeter Wemm 14940e3d5408SPeter WemmIF YOU ARE A SYSTEM INTEGRATOR: 149515589c42SPeter Wemm------------------------------ 14960e3d5408SPeter Wemm 14970e3d5408SPeter Wemm Configuration and Installation: 14980e3d5408SPeter Wemm 14994a1a9510SRong-En Fan On platforms where ncurses is assumed to be installed in /usr/lib, 15004a1a9510SRong-En Fan the configure script uses "/usr" as a default: 15010e3d5408SPeter Wemm 15024a1a9510SRong-En Fan Linux, FreeBSD, NetBSD, OpenBSD, Cygwin 15034a1a9510SRong-En Fan 15044a1a9510SRong-En Fan For other platforms, the default is "/usr/local". See the discussion 15054a1a9510SRong-En Fan of the "--disable-overwrite" option. 15064a1a9510SRong-En Fan 15074a1a9510SRong-En Fan The location of the terminfo is set indirectly by the "--datadir" 15084a1a9510SRong-En Fan configure option, e.g., /usr/share/terminfo, given a datadir of 15094a1a9510SRong-En Fan /usr/share. You may want to override this if you are installing 15104a1a9510SRong-En Fan ncurses libraries in nonstandard locations, but wish to share the 15114a1a9510SRong-En Fan terminfo database. 15124a1a9510SRong-En Fan 15134a1a9510SRong-En Fan Normally the ncurses library is configured in a pure-terminfo mode; 15144a1a9510SRong-En Fan that is, with the --disable-termcap option. This makes the ncurses 15150e3d5408SPeter Wemm library smaller and faster. The ncurses library includes a termcap 15164a1a9510SRong-En Fan emulation that queries the terminfo database, so even applications that 15174a1a9510SRong-En Fan use raw termcap to query terminal characteristics will win (providing 15184a1a9510SRong-En Fan you recompile and relink them!). 15190e3d5408SPeter Wemm 15204a1a9510SRong-En Fan If you must configure with termcap fallback enabled, you may also wish 15214a1a9510SRong-En Fan to use the --enable-getcap option. This speeds up termcap-based 15224a1a9510SRong-En Fan startups, at the expense of not allowing personal termcap entries to 15234a1a9510SRong-En Fan reference the terminfo tree. See comments in 15244a1a9510SRong-En Fan ncurses/tinfo/read_termcap.c for further details. 15250e3d5408SPeter Wemm 15260e3d5408SPeter Wemm Note that if you have $TERMCAP set, ncurses will use that value 15270e3d5408SPeter Wemm to locate termcap data. In particular, running from xterm will 15280e3d5408SPeter Wemm set $TERMCAP to the contents of the xterm's termcap entry. 15290e3d5408SPeter Wemm If ncurses sees that, it will not examine /etc/termcap. 15300e3d5408SPeter Wemm 15310e3d5408SPeter Wemm Keyboard Mapping: 15320e3d5408SPeter Wemm 15330e3d5408SPeter Wemm The terminfo file assumes that Shift-Tab generates \E[Z (the ECMA-48 15340e3d5408SPeter Wemm reverse-tabulation sequence) rather than ^I. Here are the loadkeys -d 15350e3d5408SPeter Wemm mappings that will set this up: 15360e3d5408SPeter Wemm 15370e3d5408SPeter Wemm keycode 15 = Tab Tab 15380e3d5408SPeter Wemm alt keycode 15 = Meta_Tab 15390e3d5408SPeter Wemm shift keycode 15 = F26 15400e3d5408SPeter Wemm string F26 ="\033[Z" 15410e3d5408SPeter Wemm 15420e3d5408SPeter Wemm Naming the Console Terminal 15430e3d5408SPeter Wemm 15444a1a9510SRong-En Fan In various systems there has been a practice of designating the system 15454a1a9510SRong-En Fan console driver type as `console'. Please do not do this! It 15464a1a9510SRong-En Fan complicates peoples' lives, because it can mean that several different 15474a1a9510SRong-En Fan terminfo entries from different operating systems all logically want to 15484a1a9510SRong-En Fan be called `console'. 15490e3d5408SPeter Wemm 15500e3d5408SPeter Wemm Please pick a name unique to your console driver and set that up 15510e3d5408SPeter Wemm in the /etc/inittab table or local equivalent. Send the entry to the 15520e3d5408SPeter Wemm terminfo maintainer (listed in the misc/terminfo file) to be included 15530e3d5408SPeter Wemm in the terminfo file, if it's not already there. See the 15540e3d5408SPeter Wemm term(7) manual page included with this distribution for more on 15550e3d5408SPeter Wemm conventions for choosing type names. 15560e3d5408SPeter Wemm 15570e3d5408SPeter Wemm Here are some recommended primary console names: 15580e3d5408SPeter Wemm 15590e3d5408SPeter Wemm linux -- Linux console driver 15600e3d5408SPeter Wemm freebsd -- FreeBSD 15610e3d5408SPeter Wemm netbsd -- NetBSD 15620e3d5408SPeter Wemm bsdos -- BSD/OS 15630e3d5408SPeter Wemm 15640e3d5408SPeter Wemm If you are responsible for integrating ncurses for one of these 15650e3d5408SPeter Wemm distribution, please either use the recommended name or get back 15660e3d5408SPeter Wemm to us explaining why you don't want to, so we can work out nomenclature 15670e3d5408SPeter Wemm that will make users' lives easier rather than harder. 15680e3d5408SPeter Wemm 156915589c42SPeter Wemm 157015589c42SPeter WemmRECENT XTERM VERSIONS: 157115589c42SPeter Wemm--------------------- 157215589c42SPeter Wemm 15730e3d5408SPeter Wemm The terminfo database file included with this distribution assumes you 15744a1a9510SRong-En Fan are running a modern xterm based on XFree86 (i.e., xterm-new). The 15754a1a9510SRong-En Fan earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided 15764a1a9510SRong-En Fan as well. See the --without-xterm-new configure script option if you 15774a1a9510SRong-En Fan are unable to update your system. 15780e3d5408SPeter Wemm 157915589c42SPeter Wemm 158015589c42SPeter WemmCONFIGURING FALLBACK ENTRIES: 158115589c42SPeter Wemm---------------------------- 158215589c42SPeter Wemm 15830e3d5408SPeter Wemm In order to support operation of ncurses programs before the terminfo 15840e3d5408SPeter Wemm tree is accessible (that is, in single-user mode or at OS installation 15850e3d5408SPeter Wemm time) the ncurses library can be compiled to include an array of 15864a1a9510SRong-En Fan pre-fetched fallback entries. This must be done on a machine which 15874a1a9510SRong-En Fan has ncurses' infocmp and terminfo database installed. 15880e3d5408SPeter Wemm 15890e3d5408SPeter Wemm These entries are checked by setupterm() only when the conventional 15900e3d5408SPeter Wemm fetches from the terminfo tree and the termcap fallback (if configured) 15910e3d5408SPeter Wemm have been tried and failed. Thus, the presence of a fallback will not 15920e3d5408SPeter Wemm shadow modifications to the on-disk entry for the same type, when that 15930e3d5408SPeter Wemm entry is accessible. 15940e3d5408SPeter Wemm 15954a1a9510SRong-En Fan By default, there are no entries on the fallback list. After you have 15964a1a9510SRong-En Fan built the ncurses suite for the first time, you can change the list 15974a1a9510SRong-En Fan (the process needs infocmp(1)). To do so, use the script 15984a1a9510SRong-En Fan ncurses/tinfo/MKfallback.sh. A configure script option 15994a1a9510SRong-En Fan --with-fallbacks does this (it accepts a comma-separated list of the 16004a1a9510SRong-En Fan names you wish, and does not require a rebuild). 16010e3d5408SPeter Wemm 16020e3d5408SPeter Wemm If you wanted (say) to have linux, vt100, and xterm fallbacks, you 16030e3d5408SPeter Wemm would use the commands 16040e3d5408SPeter Wemm 16050e3d5408SPeter Wemm cd ncurses; 16064a1a9510SRong-En Fan tinfo/MKfallback.sh linux vt100 xterm >fallback.c 16070e3d5408SPeter Wemm 16080e3d5408SPeter Wemm Then just rebuild and reinstall the library as you would normally. 16090e3d5408SPeter Wemm You can restore the default empty fallback list with 16100e3d5408SPeter Wemm 16114a1a9510SRong-En Fan tinfo/MKfallback.sh >fallback.c 16120e3d5408SPeter Wemm 16130e3d5408SPeter Wemm The overhead for an empty fallback list is one trivial stub function. 16140e3d5408SPeter Wemm Any non-empty fallback list is const-ed and therefore lives in sharable 16150e3d5408SPeter Wemm text space. You can look at the comment trailing each initializer in 16160e3d5408SPeter Wemm the generated ncurses/fallback.c file to see the core cost of the 16170e3d5408SPeter Wemm fallbacks. A good rule of thumb for modern vt100-like entries is that 16180e3d5408SPeter Wemm each one will cost about 2.5K of text space. 16190e3d5408SPeter Wemm 162015589c42SPeter Wemm 16210e3d5408SPeter WemmBSD CONVERSION NOTES: 162215589c42SPeter Wemm-------------------- 162315589c42SPeter Wemm 16240e3d5408SPeter Wemm If you need to support really ancient BSD programs, you probably 16250e3d5408SPeter Wemm want to configure with the --enable-bsdpad option. What this does 16260e3d5408SPeter Wemm is enable code in tputs() that recognizes a numeric prefix on a 16270e3d5408SPeter Wemm capability as a request for that much trailing padding in milliseconds. 16280e3d5408SPeter Wemm There are old BSD programs that do things like tputs("50"). 16290e3d5408SPeter Wemm 16300e3d5408SPeter Wemm (If you are distributing ncurses as a support-library component of 16310e3d5408SPeter Wemm an application you probably want to put the remainder of this section 16320e3d5408SPeter Wemm in the package README file.) 16330e3d5408SPeter Wemm 16340e3d5408SPeter Wemm The following note applies only if you have configured ncurses with 16350e3d5408SPeter Wemm --enable-termcap. 16360e3d5408SPeter Wemm 16370e3d5408SPeter Wemm------------------------------- CUT HERE -------------------------------- 16380e3d5408SPeter Wemm 16390e3d5408SPeter WemmIf you are installing this application privately (either because you 16400e3d5408SPeter Wemmhave no root access or want to experiment with it before doing a root 16410e3d5408SPeter Wemminstallation), there are a couple of details you need to be aware of. 16420e3d5408SPeter WemmThey have to do with the ncurses library, which uses terminfo rather 16430e3d5408SPeter Wemmthan termcap for describing terminal characteristics. 16440e3d5408SPeter Wemm 16450e3d5408SPeter WemmThough the ncurses library is terminfo-based, it will interpret your 16460e3d5408SPeter WemmTERMCAP variable (if present), any local termcap files you reference 16470e3d5408SPeter Wemmthrough it, and the system termcap file. However, in order to avoid 16480e3d5408SPeter Wemmslowing down your application startup, it will only do this once per 16490e3d5408SPeter Wemmterminal type! 16500e3d5408SPeter Wemm 16510e3d5408SPeter WemmThe first time you load a given terminal type from your termcap 16520e3d5408SPeter Wemmdatabase, the library initialization code will automatically write it 16530e3d5408SPeter Wemmin terminfo format to a subdirectory under $HOME/.terminfo. After 16540e3d5408SPeter Wemmthat, the initialization code will find it there and do a (much 16550e3d5408SPeter Wemmfaster) terminfo fetch. 16560e3d5408SPeter Wemm 16570e3d5408SPeter WemmUsually, all this means is that your home directory will silently grow 16580e3d5408SPeter Wemman invisible .terminfo subdirectory which will get filled in with 16590e3d5408SPeter Wemmterminfo descriptions of terminal types as you invoke them. If anyone 16600e3d5408SPeter Wemmever installs a global terminfo tree on your system, this will quietly 16610e3d5408SPeter Wemmstop happening and your $HOME/.terminfo will become redundant. 16620e3d5408SPeter Wemm 16630e3d5408SPeter WemmThe objective of all this logic is to make converting from BSD termcap 16640e3d5408SPeter Wemmas painless as possible without slowing down your application (termcap 16650e3d5408SPeter Wemmcompilation is expensive). 16660e3d5408SPeter Wemm 16670e3d5408SPeter WemmIf you don't have a TERMCAP variable or custom personal termcap file, 16680e3d5408SPeter Wemmyou can skip the rest of this dissertation. 16690e3d5408SPeter Wemm 16700e3d5408SPeter WemmIf you *do* have a TERMCAP variable and/or a custom personal termcap file 16710e3d5408SPeter Wemmthat defines a terminal type, that definition will stop being visible 16720e3d5408SPeter Wemmto this application after the first time you run it, because it will 16730e3d5408SPeter Wemminstead see the terminfo entry that it wrote to $HOME/terminfo the 16740e3d5408SPeter Wemmfirst time around. 16750e3d5408SPeter Wemm 16760e3d5408SPeter WemmSubsequently, editing the TERMCAP variable or personal TERMCAP file 16770e3d5408SPeter Wemmwill have no effect unless you explicitly remove the terminfo entry 16780e3d5408SPeter Wemmunder $HOME/terminfo. If you do that, the entry will be recompiled 16790e3d5408SPeter Wemmfrom your termcap resources the next time it is invoked. 16800e3d5408SPeter Wemm 16810e3d5408SPeter WemmTo avoid these complications, use infocmp(1) and tic(1) to edit the 16820e3d5408SPeter Wemmterminfo directory directly. 16830e3d5408SPeter Wemm 16840e3d5408SPeter Wemm------------------------------- CUT HERE -------------------------------- 16850e3d5408SPeter Wemm 16860e3d5408SPeter WemmUSING NCURSES WITH AFS: 16870e3d5408SPeter Wemm AFS treats each directory as a separate logical filesystem, you 16880e3d5408SPeter Wemm can't hard-link across them. The --enable-symlinks option copes 16890e3d5408SPeter Wemm with this by making tic use symbolic links. 16900e3d5408SPeter Wemm 16910e3d5408SPeter WemmUSING NCURSES WITH GPM: 16924a1a9510SRong-En Fan Ncurses 4.1 and up can be configured to use GPM (General Purpose 16934a1a9510SRong-En Fan Mouse) which is used on Linux console. Be aware that GPM is commonly 16940e3d5408SPeter Wemm installed as a shared library which contains a wrapper for the curses 16950e3d5408SPeter Wemm wgetch() function (libcurses.o). Some integrators have simplified 16964a1a9510SRong-En Fan linking applications by combining all or part of libcurses.so into the 16974a1a9510SRong-En Fan libgpm.so file, producing symbol conflicts with ncurses (specifically 16984a1a9510SRong-En Fan the wgetch function). This was originally the BSD curses, but 16994a1a9510SRong-En Fan generally whatever curses library exists on the system. 17004a1a9510SRong-En Fan 17014a1a9510SRong-En Fan You may be able to work around this problem by linking as follows: 17020e3d5408SPeter Wemm 17030e3d5408SPeter Wemm cc -o foo foo.o -lncurses -lgpm -lncurses 17040e3d5408SPeter Wemm 17050e3d5408SPeter Wemm but the linker may not cooperate, producing mysterious errors. 17064a1a9510SRong-En Fan See the FAQ, as well as the discussion under the --with-gpm option: 17070e3d5408SPeter Wemm 17084a1a9510SRong-En Fan http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib 17090e3d5408SPeter Wemm 171018259542SPeter WemmBUILDING NCURSES WITH A CROSS-COMPILER 171118259542SPeter Wemm Ncurses can be built with a cross-compiler. Some parts must be built 171218259542SPeter Wemm with the host's compiler since they are used for building programs 171318259542SPeter Wemm (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables 17144a1a9510SRong-En Fan that are compiled into the ncurses library. The essential thing to do 17154a1a9510SRong-En Fan is set the BUILD_CC environment variable to your host's compiler, and 17164a1a9510SRong-En Fan run the configure script configuring for the cross-compiler. 17174a1a9510SRong-En Fan 17184a1a9510SRong-En Fan The configure options --with-build-cc, etc., are provided to make this 17194a1a9510SRong-En Fan simpler. Since make_hash and make_keys use only ANSI C features, it 17204a1a9510SRong-En Fan is normally not necessary to provide the other options such as 17214a1a9510SRong-En Fan --with-build-libs, but they are provided for completeness. 17220e3d5408SPeter Wemm 172318259542SPeter Wemm Note that all of the generated source-files which are part of ncurses 172418259542SPeter Wemm will be made if you use 17250e3d5408SPeter Wemm 172618259542SPeter Wemm make sources 172718259542SPeter Wemm 172818259542SPeter Wemm This would be useful in porting to an environment which has little 172918259542SPeter Wemm support for the tools used to generate the sources, e.g., sed, awk and 173018259542SPeter Wemm Bourne-shell. 17310e3d5408SPeter Wemm 17324a1a9510SRong-En Fan When ncurses has been successfully cross-compiled, you may want to use 17334a1a9510SRong-En Fan "make install" (with a suitable target directory) to construct an 17344a1a9510SRong-En Fan install tree. Note that in this case (as with the --with-fallbacks 17354a1a9510SRong-En Fan option), ncurses uses the development platform's tic to do the 17364a1a9510SRong-En Fan "make install.data" portion. 17374a1a9510SRong-En Fan 17380e3d5408SPeter WemmBUGS: 17390e3d5408SPeter Wemm Send any feedback to the ncurses mailing list at 17400e3d5408SPeter Wemm bug-ncurses@gnu.org. To subscribe send mail to 17410e3d5408SPeter Wemm bug-ncurses-request@gnu.org with body that reads: 17420e3d5408SPeter Wemm subscribe ncurses <your-email-address-here> 17430e3d5408SPeter Wemm 174418259542SPeter Wemm The Hacker's Guide in the doc directory includes some guidelines 17450e3d5408SPeter Wemm on how to report bugs in ways that will get them fixed most quickly. 17464a1a9510SRong-En Fan 17474a1a9510SRong-En Fan-- vile:txtmode 1748