]> ncurses.scripts.mit.edu Git - ncurses.git/blob - INSTALL
ncurses 6.6 - patch 20260607
[ncurses.git] / INSTALL
1 -------------------------------------------------------------------------------
2 -- Copyright 2018-2025,2026 Thomas E. Dickey                                 --
3 -- Copyright 1998-2017,2018 Free Software Foundation, Inc.                   --
4 --                                                                           --
5 -- Permission is hereby granted, free of charge, to any person obtaining a   --
6 -- copy of this software and associated documentation files (the             --
7 -- "Software"), to deal in the Software without restriction, including       --
8 -- without limitation the rights to use, copy, modify, merge, publish,       --
9 -- distribute, distribute with modifications, sublicense, and/or sell copies --
10 -- of the Software, and to permit persons to whom the Software is furnished  --
11 -- to do so, subject to the following conditions:                            --
12 --                                                                           --
13 -- The above copyright notice and this permission notice shall be included   --
14 -- in all copies or substantial portions of the Software.                    --
15 --                                                                           --
16 -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS   --
17 -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF                --
18 -- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
19 -- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,       --
20 -- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR     --
21 -- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
22 -- USE OR OTHER DEALINGS IN THE SOFTWARE.                                    --
23 --                                                                           --
24 -- Except as contained in this notice, the name(s) of the above copyright    --
25 -- holders shall not be used in advertising or otherwise to promote the      --
26 -- sale, use or other dealings in this Software without prior written        --
27 -- authorization.                                                            --
28 -------------------------------------------------------------------------------
29 -- $Id: INSTALL,v 1.267 2026/05/30 19:39:15 tom Exp $
30 ---------------------------------------------------------------------
31              How to install Ncurses/Terminfo on your system
32 ---------------------------------------------------------------------
33
34     ************************************************************
35     * READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. *
36     ************************************************************
37
38 You should be reading the file INSTALL in a directory called ncurses-d.d,
39 where d.d is the current version number.  There should be several
40 subdirectories, including 'c++', 'form', 'man', 'menu', 'misc', 'ncurses',
41 'panel', 'progs', and 'test'.  See 'README' for a roadmap to the package.
42
43 If you are a distribution integrator or packager, please read and act on the
44 section titled FOR SYSTEM INTEGRATORS below.
45
46 If you are converting from BSD curses and do not have root access, be sure
47 to read the BSD CONVERSION NOTES section below.
48
49 If you are trying to build applications using gpm with ncurses,
50 read the USING GPM section below.
51
52 If you are cross-compiling, see the note below on
53 BUILDING WITH A CROSS-COMPILER.
54
55 If you want to build the Ada95 binding, go to the Ada95 directory and
56 follow the instructions there.  The Ada95 binding is not covered below.
57
58
59 REQUIREMENTS:
60 ------------
61
62 You will need the following to build and install ncurses under UNIX:
63
64         * ANSI C compiler  (gcc, for instance)
65         * sh               (bash will do)
66         * awk              (mawk or gawk will do)
67         * sed
68         * BSD or System V style install (a script is enclosed)
69
70 Ncurses has been also built in the OS/2 EMX environment.
71
72
73 INSTALLATION PROCEDURE:
74 ----------------------
75
76 1.  First, decide whether you want ncurses to replace your existing library
77     (in which case you'll need super-user privileges) or be installed in
78     parallel with it.
79
80     The --prefix option to configure changes the root directory for installing
81     ncurses.  The default is normally in subdirectories of /usr/local, except
82     for systems where ncurses is normally installed as a system library (see
83     "FOR SYSTEM INTEGRATORS").  Use --prefix=/usr to replace your
84     default curses distribution.
85
86     The package gets installed beneath the --prefix directory as follows:
87
88     In $(prefix)/bin:          tic, infocmp, captoinfo, tset,
89                                 reset, clear, tput, toe, tabs
90     In $(prefix)/lib:          libncurses*.* libcurses.a
91     In $(prefix)/share/terminfo: compiled terminal descriptions
92     In $(prefix)/include:      C header files
93     Under $(prefix)/man:       the manual pages
94
95     Note that the configure script attempts to locate previous installation of
96     ncurses, and will set the default prefix according to where it finds the
97     ncurses headers.
98
99     Do not use commands such as
100
101         make install prefix=XXX
102
103     to change the prefix after configuration, since the prefix value is used
104     for some absolute pathnames such as TERMINFO.  Instead do this
105
106         make install DESTDIR=XXX
107
108     See also the discussion of --with-install-prefix.
109
110 2.  Type './configure' in the top-level directory of the distribution to
111     configure ncurses for your operating system and create the Makefiles.
112     Besides --prefix, various configuration options are available to customize
113     the installation; use './configure --help' to list the available options.
114
115     If your operating system is not supported, read the PORTABILITY section in
116     the file ncurses/README for information on how to create a configuration
117     file for your system.
118
119     The 'configure' script generates makefile rules for one or more object
120     models and their associated libraries:
121
122         libncurses.a (normal)
123
124         libcurses.a (normal, a link to libncurses.a)
125                 This gets left out if you configure with --disable-overwrite.
126
127         libncurses.so (shared)
128
129         libncurses_g.a (debug)
130
131         libncurses_p.a (profile)
132
133         libncurses.la (libtool)
134
135     If you configure using the --enable-widec option, a "w" is appended to the
136     library names (e.g., libncursesw.a), and the resulting libraries support
137     wide-characters, e.g., via a UTF-8 locale.  The corresponding header files
138     are compatible with the non-wide-character configuration; wide-character
139     features are provided by ifdef's in the header files.  The wide-character
140     library interfaces are not binary-compatible with the non-wide-character
141     version.  Building and running the wide-character code relies on a fairly
142     recent implementation of libiconv.  We have built this configuration on
143     various systems using libiconv, sometimes requiring libutf8.
144
145     If you configure using the --with-pthread option, a "t" is appended to
146     the library names (e.g., libncursest.a, libncursestw.a).
147
148     If you do not specify any models, the normal and debug libraries will be
149     configured.  Typing 'configure' with no arguments is equivalent to:
150
151         ./configure --with-normal --with-debug --enable-overwrite
152
153     Typing
154
155         ./configure --with-shared
156
157     makes the shared libraries the default, resulting in
158
159         ./configure --with-shared --with-normal --with-debug --enable-overwrite
160
161     If you want only shared libraries, type
162
163         ./configure --with-shared --without-normal --without-debug
164
165     Rules for generating shared libraries are highly dependent upon the choice
166     of host system and compiler.  We've been testing shared libraries on
167     several systems, but more work needs to be done to make shared libraries
168     work on other systems.
169
170     If you have libtool installed, you can type
171
172         ./configure --with-libtool
173
174     to generate the appropriate static and/or shared libraries for your
175     platform using libtool.
176
177     You can make curses and terminfo fall back to an existing file of termcap
178     definitions by configuring with --enable-termcap.  If you do this, the
179     library will search /etc/termcap before the terminfo database, and will
180     also interpret the contents of the $TERM environment variable.  See the
181     section BSD CONVERSION NOTES below.
182
183 3.  Type 'make'.  Ignore any warnings; no error messages should be produced.
184     This should compile the ncurses library, the terminfo compiler tic(1),
185     captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1)
186     programs (see the manual pages for explanation of what they do), some test
187     programs, and the panels, menus, and forms libraries.
188
189 4.  Run ncurses and several other test programs in the test directory to
190     verify that ncurses functions correctly before doing an install that
191     may overwrite system files.  Read the file test/README for details on
192     the test programs.
193
194     NOTE: You must have installed the terminfo database, or set the
195     environment variable $TERMINFO to point to a SVr4-compatible terminfo
196     database before running the test programs.  Not all vendors' terminfo
197     databases are SVr4-compatible, but most seem to be.
198
199     It is possible to configure ncurses to use other terminfo database
200     formats.  A few are provided as examples in the include-directory (see
201     --with-caps).
202
203     If you run the test programs WITHOUT installing terminfo, ncurses may
204     read the termcap file and cache that in $HOME/.terminfo, which will
205     thereafter be used instead of the terminfo database.  See the comments
206     on "--enable-getcap-cache", to see why this is a Bad Thing.
207
208     The ncurses program is designed specifically to test the ncurses library.
209     You can use it to verify that the screen highlights work correctly, that
210     cursor addressing and window scrolling works OK, etc.
211
212 5.  Once you've tested, you can type 'make install' to install libraries,
213     the programs, the terminfo database and the manual pages.  Alternately,
214     you can type 'make install' in each directory you want to install.  In the
215     top-level directory, you can do a partial install using these commands:
216
217         'make install.progs'    installs tic, infocmp, etc...
218         'make install.includes' installs the headers.
219         'make install.libs'     installs the libraries (and the headers).
220         'make install.data'     installs the terminfo data. (Note: 'tic' must
221                                 be installed before the terminfo data can be
222                                 compiled).
223         'make install.man'      installs the manual pages.
224
225   ############################################################################
226   #     CAVEAT EMPTOR: 'install.data' run as root will NUKE any existing     #
227   #  terminfo database. If you have any custom or unusual entries SAVE them  #
228   #  before you install ncurses.                                             #
229   ############################################################################
230
231     The terminfo(5) manual page must be preprocessed with tbl(1) before
232     being formatted by nroff(1).  Modern man(1) implementations tend to do
233     this by default, but you may want to look at your version's manual page
234     to be sure.  You may also install the manual pages after preprocessing
235     with tbl(1) by specifying the configure option --with-manpage-tbl.
236
237     If the system already has a curses library that you need to keep using
238     you'll need to distinguish between it and ncurses.  See the discussion of
239     --disable-overwrite.  If ncurses is installed outside the standard
240     directories (/usr/include and /usr/lib) then all your users will need to
241     use the -I option to compile programs and -L to link them.
242
243     If you have another curses installed in your system and you accidentally
244     compile using its curses.h you'll end up with a large number of
245     undefined symbols at link time.
246
247     IF YOU DO NOT HAVE ROOT: Change directory to the 'progs' subdirectory
248     and run the 'capconvert' script.  This script will deduce various things
249     about your environment and use them to build you a private terminfo tree,
250     so you can use ncurses applications.
251
252     If more than one user at your site does this, the space for the duplicate
253     trees is wasted.  Try to get your site administrators to install a system-
254     wide terminfo tree instead.
255
256     See the BSD CONVERSION NOTES section below for a few more details.
257
258 6.  The c++ directory has C++ classes that are built on top of ncurses and
259     panels.  You must have c++ (and its libraries) installed before you can
260     compile and run the demo.
261
262     Use --without-cxx-binding to tell configure to not build the C++ bindings
263     and demo.
264
265     If you do not have C++, you must use the --without-cxx option to tell
266     the configure script to not attempt to determine the type of 'bool'
267     which may be supported by C++.  IF YOU USE THIS OPTION, BE ADVISED THAT
268     YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++.
269
270
271 CONFIGURE OPTIONS:
272 -----------------
273
274     The configure script provides a short list of its options when you type
275
276         ./configure --help
277
278     The --help and several options are common to all configure scripts that
279     are generated with autoconf.  Those are all listed before the line
280
281         --enable and --with options recognized:
282
283     The other options are specific to this package.  We list them in
284     alphabetic order.
285
286     --disable-assumed-color
287         With ncurses 5.1, we introduced a new function, assume_default_colors()
288         which allows applications to specify what the default foreground and
289         background color are assumed to be.  Most color applications use
290         full-screen color; but a few do not color the background.  While the
291         assumed values can be overridden by invoking assume_default_colors(),
292         you may find it useful to set the assumed values to the pre-5.1
293         convention, using this configure option.
294
295     --disable-big-core
296         Assume machine has little memory.  The configure script attempts to
297         determine if your machine has enough memory (about 6Mb) to compile the
298         terminfo database without writing portions to disk.  Some allocators
299         return deceptive results, so you may have to override the configure
300         script.  Or you may be building tic for a smaller machine.
301
302     --disable-big-strings
303         Disable compile-time optimization of predefined tables which puts
304         all of their strings into a very long string, to reduce relocation
305         overhead.
306
307     --disable-database
308         Use only built-in data.  The ncurses libraries normally read terminfo
309         and termcap data from disk.  You can configure ncurses to have a
310         built-in database, aka "fallback" entries.  Embedded applications may
311         have no need for an external database.  Some, but not all of the
312         programs are useful in this configuration, e.g., tset and tput versus
313         infocmp and tic.
314
315     --disable-db-install
316         Do not install the terminal database.  This is used to omit features
317         for packages, as done with --without-progs.
318
319     --disable-echo
320         Use the option --disable-echo to make the build-log less verbose by
321         suppressing the display of the compile and link commands.  This makes
322         it easier to see the compiler warnings.  (You can always use "make -n"
323         to see the options that are used).
324
325     --disable-ext-funcs
326         Disable function-extensions.  Configure ncurses without the functions
327         that are not specified by XSI.  See ncurses/modules for the exact
328         list of library modules that would be suppressed.
329
330     --disable-gnat-projects
331         Disable GNAT projects even if usable, for testing old makefile rules.
332
333     --disable-hashmap
334         Compile without hashmap scrolling-optimization code.  This algorithm is
335         the default.
336
337     --disable-home-terminfo
338         The $HOME/.terminfo directory is normally added to ncurses' search
339         list for reading/writing terminfo entries, since that directory is
340         more likely writable than the system terminfo database.  Use this
341         option to disable the feature altogether.
342
343     --disable-largefile
344         Disable compiler flags needed to use large-file interfaces.
345
346     --disable-leaks
347         For testing, compile-in code that frees memory that normally would not
348         be freed, to simplify analysis of memory-leaks.
349
350         Any implementation of curses must not free the memory associated with
351         a screen, since (even after calling endwin()), it must be available
352         for use in the next call to refresh().  There are also chunks of
353         memory held for performance reasons.  That makes it hard to analyze
354         curses applications for memory leaks.  To work around this, build a
355         debugging version of the ncurses library which frees those chunks
356         which it can, and provides the _nc_free_and_exit() function to free
357         the remainder and then exit.  The ncurses utility and test programs
358         use this feature, e.g., via the ExitProgram() macro.
359
360         Because this lies outside of the library's intended usage, it is not
361         normally considered part of the ABI.  If there were some (as yet
362         unplanned) extension which frees memory in a manner that would let the
363         library resume and reallocate memory, then that would not use a "_nc_"
364         prefix.
365
366     --disable-lib-suffixes
367         Suppress the "w", "t" or "tw" suffixes which normally would be added
368         to the library names for the --enable-widec and --with-pthread options.
369
370     --disable-libtool-version
371         when using --with-libtool, control how the major/minor version numbers
372         are used for constructing the library name.
373
374         The default uses the -version-number feature of libtool, which makes
375         the library names compatible (though not identical) with the standard
376         build using --with-shared.
377
378         Use --disable-libtool-version to use the libtool -version-info feature.
379         This corresponds to the setting used before patch 20100515.
380
381         Starting with patch 20141115, using this option causes the configure
382         script to apply the top-level VERSION file to the ABI version used
383         for libtool.
384
385     --disable-lp64
386         The header files will ignore use of the _LP64 symbol to make chtype
387         and mmask_t types 32 bits, for compatibility with older releases.
388         The default "unsigned" for these types may be long on 64-bit hosts.
389
390         NOTE: this is potentially an ABI change, depending on existing
391         packages.  The default for this option is "disabled" for ncurses
392         ABI 5, and "enabled" for ABI 6.
393
394         The --enable-ext-mouse2 option overrides the type used for mmask_t.
395
396     --disable-macros
397         For testing, use functions rather than macros.  The program will run
398         more slowly, but it is simpler to debug.  This defines NCURSES_NOMACROS
399         at build time.  See also the --enable-expanded option.
400
401     --disable-overwrite
402         If you are installing ncurses on a system which contains another
403         development version of curses, or which could be confused by the loader
404         for another version, we recommend that you leave out the link to
405         -lcurses.  The ncurses library is always available as -lncurses.
406         Disabling overwrite also causes the ncurses header files to be
407         installed into a subdirectory, e.g., /usr/local/include/ncurses,
408         rather than the include directory.  This makes it simpler to avoid
409         compile-time conflicts with other versions of curses.h
410
411         Putting the header files into a subdirectory assumes that applications
412         will follow the (standard) practice of including the headers with
413         reference to the subdirectory name.  For instance, the normal ncurses
414         header would be included using
415
416                 #include <ncurses/curses.h>
417                 #include <ncurses/term.h>
418
419         while the ncursesw headers would be found this way:
420
421                 #include <ncursesw/curses.h>
422                 #include <ncursesw/term.h>
423
424         In either case (with or without the --disable-overwrite option),
425         almost all applications are designed to include a related set of
426         curses header files from the same directory.
427
428         Manipulating the --includedir configure option to put header files
429         directly in a subdirectory of the normal include-directory defeats
430         this, and breaks builds of portable applications.  Likewise, putting
431         some headers in /usr/include, and others in a subdirectory is a good
432         way to break builds.
433
434         When configured with --disable-overwrite, the installed header files'
435         embedded #include's are adjusted to use the same style of includes
436         noted above.  In particular, the unctrl.h header is included from
437         curses.h, which means that a makefile which tells the compiler to
438         include directly from the subdirectory will fail to compile correctly.
439         Without some special effort, it will either fail to compile at all,
440         or the compiler may find a different unctrl.h file.
441
442         In addition to the curses library, a system may provide its own
443         versions of the add-on libraries (form, menu, panel), which would
444         not be compatible with ncurses.  These options allow you to rename
445         ncurses' add-on libraries to avoid conflicts when linking:
446
447                 --with-form-libname=XXX
448                 --with-menu-libname=XXX
449                 --with-panel-libname=XXX
450
451         Rather than renaming them arbitrarily, a prefix or suffix is
452         recommended.  An "n" prefix provides consistency with ncurses versus
453         curses, i.e.,
454
455                 --with-form-libname=nform
456                 --with-menu-libname=nmenu
457                 --with-panel-libname=npanel
458
459     --disable-pkg-ldflags
460         Omit options in $LDFLAGS and $EXTRA_LDFLAGS from the pkg-config ".pc"
461         and corresponding ncurses*-config script which normally are listed via
462         the "--libs" option.  These options are normally used to facilitate
463         linking to ncurses when it was configured to use the rpath feature.
464
465         See also --enable-rpath and --disable-rpath-hack.
466
467     --disable-relink
468         If --enable-rpath is given, the generated makefiles normally will
469         rebuild shared libraries during install.  Use this option to simply
470         copy whatever the linker produced.
471
472         Static libraries cannot simply be copied because tools use timestamps
473         to determine if the library's symbol table is up to date.  If your
474         install program supports the "-p" (preserve timestamp) option, that
475         is used when --disable-relink is given, to avoid rebuilding the symbol
476         table.
477
478         Finally, some tools ignore the subsecond timestamps supported by some
479         filesystems.  This option adds a 1-second sleep to help those tools
480         avoid unnecessary relinking during the install process.
481
482     --disable-root-access
483         Compile with environment restriction, so most file-access is limited
484         when running as root, or via a setuid/setgid application.
485
486     --disable-root-environ
487         Compile with environment restriction, so certain environment variables
488         are not available when running as root.  These are (for example
489         $TERMINFO) those that allow the search path for the terminfo or termcap
490         entry to be customized.
491
492         Disabling the root environment variables also disables the setuid
493         environment variables by default.  Use the --disable-setuid-environ
494         option to modify this behavior.
495
496     --disable-rpath-hack
497         Normally the configure script helps link libraries found in unusual
498         places by adding an rpath option to the link command.  If you are
499         building packages, this feature may be redundant.  Use this option
500         to suppress the feature.
501
502     --disable-scroll-hints
503         Compile without scroll-hints code.  This option is ignored when
504         hashmap scrolling is configured, which is the default.
505
506     --disable-stripping
507         Do not strip installed executables.
508
509     --disable-setuid-environ
510         Compile with environment restriction, so certain environment variables
511         are not available when running via a setuid/setgid application.  These
512         are (for example $TERMINFO) those that allow the search path for the
513         terminfo or termcap entry to be customized.
514
515         A setuid/setgid application inherits its environment variables from
516         the current user, in contrast to sudo which may limit the environment
517         variables that ncurses uses.
518
519     --disable-tic-depends
520         When building shared libraries, normally the tic library is linked to
521         depend upon the ncurses library (or equivalently, on the tinfo-library
522         if the --with-termlib option was given).  The tic- and tinfo-library
523         ABIs do not depend on the --enable-widec option.  Some packagers have
524         used this to reduce the number of library files which are packaged by
525         using only one copy of those libraries.  To make this work properly,
526         the tic library must be built without an explicit dependency on the
527         underlying library (ncurses vs ncursesw, tinfo vs tinfow).  Use this
528         configure option to do that.
529         For example
530                 configure --with-ticlib --with-shared --disable-tic-depends
531
532     --disable-tparm-varargs
533         Portable programs should call tparm() using the fixed-length parameter
534         list documented in X/Open.  ncurses provides varargs support for this
535         function.  Use --disable-tparm-varargs to disable this support.
536
537     --enable-assertions
538         For testing, compile-in assertion code.  This is used only for a few
539         places where ncurses cannot easily recover by returning an error code.
540
541     --enable-broken_linker
542         A few platforms have what we consider a broken linker:  it cannot link
543         objects from an archive solely by referring to data objects in those
544         files, but requires a function reference.  This configure option
545         changes several data references to functions to work around this
546         problem.
547
548         NOTE: With ncurses 5.1, this may not be necessary, since we are
549         told that some linkers interpret uninitialized global data as a
550         different type of reference which behaves as described above.  We have
551         explicitly initialized all of the global data to work around the
552         problem.
553
554     --enable-bsdpad
555         Recognize BSD-style prefix padding.  Some programs written using
556         the BSD curses API use tputs("50") to implement delays.
557
558     --enable-check-size
559         Compile-in feature to detect screensize for terminals which do not
560         advertise their screensize, e.g., serial terminals.
561
562     --enable-colorfgbg
563         Compile with experimental $COLORFGBG code.  That environment variable
564         is set by some terminal emulators as a hint to applications, by
565         advertising the default foreground and background colors.  During
566         initialization, ncurses sets color pair 0 to match this.
567
568     --enable-conpty
569         Experimental (in-progress development).
570
571         This also turns on --enable-named-pipes by default.
572
573     --enable-const
574         The curses interface as documented in XSI is rather old, in fact
575         including features that precede ANSI C.  The prototypes generally do
576         not make effective use of "const".  When using stricter compilers (or
577         gcc with appropriate warnings), you may see warnings about the mismatch
578         between const and non-const data.  We provide a configure option which
579         changes the interfaces to use const - quieting these warnings and
580         reflecting the actual use of the parameters more closely.  The ncurses
581         library uses the symbol NCURSES_CONST for these instances of const,
582         and if you have asked for compiler warnings, will add gcc's const-qual
583         warning.  There will still be warnings due to subtle inconsistencies
584         in the interface, but at a lower level.
585
586         NOTE: configuring ncurses with this option may detract from the
587         portability of your applications by encouraging you to use const in
588         places where the XSI curses interface would not allow them.  Similar
589         issues arise when porting to SVr4 curses, which uses const in even
590         fewer places.
591
592     --enable-expanded
593         For testing, generate functions for certain macros to make them visible
594         as such to the debugger.  See also the --disable-macros option.
595
596     --enable-exp-win32
597         This is an obsolete option used for configuring the Windows 10 driver
598         for MinGW.
599
600     --enable-ext-colors
601         Extend the cchar_t structure to allow more than 16 colors to be
602         encoded.  This applies only to the wide-character (--enable-widec)
603         configuration.
604
605         NOTE: using this option will make libraries which are not binary-
606         compatible with libncursesw 5.4.  None of the interfaces change, but
607         applications which have an array of cchar_t's must be recompiled.
608
609     --enable-ext-mouse
610         Modify the encoding of mouse state to make room for a 5th mouse button.
611         That allows one to use ncurses with a wheel mouse with xterm or
612         similar X terminal emulators.
613
614         NOTE: using this option will make libraries which are not binary-
615         compatible with libncursesw 5.4.  None of the interfaces change, but
616         applications which have mouse mask mmask_t's must be recompiled.
617
618     --enable-ext-mouse2
619         Modify the encoding of mouse state to make room for 11 mouse buttons.
620         That allows one to use ncurses with extra buttons provided on some
621         a wheel mice with xterm or similar X terminal emulators.
622
623         NOTE: using this option will make libraries which are not binary-
624         compatible with ncursesw 6.x.  None of the interfaces change, but
625         applications which have mouse mask mmask_t's must be recompiled.
626
627     --enable-ext-putwin
628         Modify the file-format written by putwin() to use printable text rather
629         than binary files, allowing getwin() to read screen dumps written by
630         differently-configured ncurses libraries.  The extended getwin() can
631         still read binary screen dumps from the "same" configuration of
632         ncurses.  This does not change the ABI (the binary interface seen by
633         calling applications).
634
635     --enable-fvisibility
636         Use the gcc "-fvisibility=hidden" option to make symbols which are not
637         explicitly exported, "hidden".  Doing this may reduce the number of
638         symbols exported in the C++ binding; it should have less effect on the
639         C libraries when symbol-versioning is used.
640
641     --enable-getcap
642         Use the 4.4BSD getcap code if available, or a bundled version of it to
643         fetch termcap entries.  Entries read in this way cannot use (make
644         cross-references to) the terminfo tree, but it is faster than reading
645         /etc/termcap.
646
647         If configured for one of the *BSD systems, this automatically uses
648         the hashed database system produced using cap_mkdb or similar tools.
649         In that case, there is no advantage in using the --enable-getcap-cache
650         option.
651
652         See also the --with-hashed-db option.
653
654     --enable-getcap-cache
655         Cache translated termcaps under the directory $HOME/.terminfo
656
657         NOTE: this sounds good - it makes ncurses run faster the second time.
658         But look where the data comes from - an /etc/termcap containing lots of
659         entries that are not up to date.  If you configure with this option and
660         forget to install the terminfo database before running an ncurses
661         application, you will end up with a hidden terminfo database that
662         generally does not support color and will miss some function keys.
663
664     --enable-hard-tabs
665         Compile-in cursor-optimization code that uses hard-tabs.  We would make
666         this a standard feature except for the concern that the terminfo entry
667         may not be accurate, or that your stty settings have disabled the use
668         of tabs.
669
670     --enable-install-prefix
671         Extend the --with-install-prefix feature to replace the prefix value
672         with $DESTDIR rather than simply prepending $DESTDIR to install
673         pathnames.  This works with any "make" which supports AT&T style
674         variable substitution.
675
676     --enable-interop
677         Compile-in experimental interop bindings.  These provide generic types
678         for the form-library.
679
680     --enable-mixed-case
681         Controls whether the filesystem on which the terminfo database resides
682         supports mixed-case filenames (normal for UNIX, but not on other
683         systems).  If you do not specify this option, the configure script
684         checks the current filesystem.
685
686     --enable-named-pipes
687         Compile-in support for named pipes, used to connect to Windows 10
688         pseudo-console.
689
690     --enable-no-padding
691         Compile-in support for the $NCURSES_NO_PADDING environment variable,
692         which allows you to suppress the effect of non-mandatory padding in
693         terminfo entries.  This is the default, unless you have disabled the
694         extended functions.
695
696     --enable-opaque-curses
697     --enable-opaque-form
698     --enable-opaque-menu
699     --enable-opaque-panel
700         Define symbol in curses.h controlling whether some library structures
701         are opaque, meaning that their members are accessible only via the
702         documented API.  The --enable-opaque-curses option may be overridden
703         by the --enable-reentrant option.
704
705         Enabling opaque-curses enables opaque for the form, menu, and panel
706         libraries.  Use their corresponding options to disable the feature
707         individually.
708
709         NOTE: beginning with ncurses 6.5 this option is enabled by default;
710         older versions disable it by default.
711
712     --enable-pc-files
713         If pkg-config is found (see --with-pkg-config), generate ".pc" files
714         for each of the libraries, and install them in pkg-config's library
715         directory.
716
717     --enable-pthreads-eintr
718         add logic in threaded configuration to ensure that a read(2) system
719         call can be interrupted for SIGWINCH.
720
721     --enable-reentrant
722         Compile configuration which improves reentrant use of the library by
723         reducing global and static variables.  This option is also set if
724         --with-pthread is used.
725
726         Enabling this option adds a "t" to the library names, except for the
727         special case when --enable-weak-symbols is also used.
728
729     --enable-rpath
730         Use rpath option when generating shared libraries, and (with some
731         restrictions) when linking the corresponding programs.  This originally
732         (in 1997) applied mainly to systems using the GNU linker (read the
733         man page).
734
735         More recently it is useful for systems that require special treatment
736         shared libraries in "unusual" locations.  The "system" libraries reside
737         in directories which are on the loader's default search-path.  While
738         you may be able to use workarounds such as the $LD_LIBRARY_PATH
739         environment variable, they do not work with setuid applications since
740         the LD_LIBRARY_PATH variable would be unset in that situation.
741
742         This option does not apply to --with-libtool, since libtool makes
743         extra assumptions about rpath.
744
745     --enable-safe-sprintf
746         Compile with experimental safe-sprintf code.  You may consider using
747         this if you are building ncurses for a system that has neither
748         vsnprintf() or vsprintf().  It is slow, however, and is used only on
749         very old systems which lack vsnprintf().
750
751     --enable-signed-char
752         The term.h header declares a Booleans[] array typed "char".  But it
753         stores signed values there and "char" is not necessarily signed.
754         Some packagers choose to alter the type of Booleans[] though this
755         is not strictly compatible.  This option allows one to implement this
756         alteration without patching the source code.
757
758     --enable-sigwinch
759         Compile support for ncurses' SIGWINCH handler.  If your application has
760         its own SIGWINCH handler, ncurses will not use its own.  The ncurses
761         handler causes wgetch() to return KEY_RESIZE when the screen-size
762         changes.  This option is the default, unless you have disabled the
763         extended functions.
764
765     --enable-sp-funcs
766         Compile-in support for extended functions which accept a SCREEN pointer,
767         reducing the need for juggling the global SP value with set_term() and
768         delscreen().
769
770     --enable-stdnoreturn
771         When enabled, check if the <stdnoreturn.h> header exists, and if found
772         define GCC_NORETURN to _Noreturn rather than either the gcc-specific
773         __attribute__((noreturn)) or an empty token.  Doing this may require
774         calling programs which use GCC_NORETURN in their own function
775         definitions to be modified, because _Noreturn is only accepted as
776         the first token in a declaration.
777
778     --enable-string-hacks
779         Controls whether strlcat and strlcpy may be used.  The same issue
780         applies to OpenBSD's warnings about snprintf, noting that this function
781         is weakly standardized.
782
783         Aside from stifling these warnings, there is no functional improvement
784         in ncurses.
785
786     --enable-symlinks
787         If your system supports symbolic links, make tic use symbolic links
788         rather than hard links to save diskspace when writing aliases in the
789         terminfo database.
790
791     --enable-tcap-names
792         Compile-in support for user-definable terminal capabilities.  Use the
793         -x option of tic and infocmp to treat unrecognized terminal
794         capabilities as user-defined strings.  This option is the default,
795         unless you have disabled the extended functions.
796
797     --enable-term-driver
798         Enable terminal-driver.  This is required for the MinGW port, by
799         providing a way to substitute the low-level terminfo library with
800         different terminal drivers.
801
802     --enable-termcap
803         Compile in support for reading terminal descriptions from termcap if no
804         match is found in the terminfo database.  See also the --enable-getcap
805         and --enable-getcap-cache options.
806
807         Termcap support requires run-time parsing rather than loading
808         predigested data.  If you have specified --with-ticlib, then you
809         cannot have termcap support since run-time parsing is done in the
810         tic library, which is intentionally not part of normal linkage
811         dependencies.
812
813     --enable-warnings
814         Turn on GCC compiler warnings.  There should be only a few.
815
816     --enable-wattr-macros
817         The 6.0 ABI adds support for extended colors and for extended mouse.
818         The former is a noticeable problem when developers inadvertently
819         compile using the ncurses6 header files and link with an ncurses5
820         library, because the wattr* macros use a new field in the WINDOW
821         structure.  These macros are used in several applications.
822
823         Since ncurses provides an actual function for each of these macros,
824         suppressing them from the curses.h header allows the ncurses5 libraries
825         to be used in most applications.
826
827         NOTE: The extended colors also are used in the cchar_t structure, but
828         fewer applications use that.
829
830         NOTE: This workaround does not help with mismatches in the ncurses
831         mouse version.  The extended mouse feature uses one less fewer bit for
832         each button, so that only the first button will work as expected with
833         a mismatch between header and library.  Again, most applications will
834         work, since most use only the first button.
835
836     --enable-weak-symbols
837         If the --with-pthread option is set, check if the compiler supports
838         weak-symbols.  If it does, then name the thread-capable library without
839         the "t" (libncurses rather than libncursest), and provide for
840         dynamically loading the pthreads entrypoints at runtime.  This allows
841         one to reduce the number of library files for ncurses.
842
843     --enable-wgetch-events
844         Compile with experimental wgetch-events code.  See ncurses/README.IZ
845
846     --enable-widec
847         Compile with wide-character code.  This makes a different version of
848         the libraries (e.g., libncursesw.so), which stores characters as
849         wide-characters,
850
851         NOTE: applications compiled with this configuration are not compatible
852         with those built for 8-bit characters.  You cannot simply make a
853         symbolic link to equate libncurses.so with libncursesw.so
854
855         NOTE: the Ada95 binding may be built against either version of the the
856         ncurses library, but you must decide which: the binding installs the
857         same set of files for either version.  Currently (2023/10/21) it does
858         not use the extended features from the wide-character code, so it is
859         probably better to not install the binding for that configuration.
860
861         NOTE: beginning with ncurses 6.5 this option is enabled by default;
862         older versions disable it by default.
863
864     --enable-xmc-glitch
865         Compile-in support experimental xmc (magic cookie) code.
866
867     --with-abi-altered=NUM
868         Override the displayed (rather than compiled-in) ABI.  Only packagers
869         who have created configurations where the ABI differs from ncurses
870         should be interested in this option.
871
872     --with-abi-version=NUM
873         Override the ABI version, which is used in shared library filenames.
874         Normally this is the same as the release version; some ports have
875         special requirements for compatibility.
876
877         This option does not affect linking with libtool, which uses the
878         release major/minor numbers.
879
880     --with-ada-compiler=CMD
881         Specify the Ada95 compiler command (default "gnatmake")
882
883     --with-ada-include=DIR
884         Tell where to install the Ada includes (default:
885         PREFIX/lib/ada/adainclude)
886
887     --with-ada-libname=NAME
888         Override the name of the Ada binding (default: "AdaCurses")
889
890     --with-ada-objects=DIR
891         Tell where to install the Ada objects (default:  PREFIX/lib/ada/adalib)
892
893     --with-ada-sharedlib
894         Build a shared library for Ada95 binding, if the compiler permits.
895
896         NOTE: You must also set the --with-shared option on some platforms
897         for a successful build.  You need not use this option when you set
898         --with-shared, unless you want to use the Ada shared library.
899
900     --with-bool=TYPE
901         If --without-cxx is specified, override the type used for the "bool"
902         declared in curses.h (normally the type is automatically chosen to
903         correspond with that in <stdbool.h>, or defaults to platform-specific
904         sizes).
905
906     --with-build-cc=XXX
907         If cross-compiling, specify a host C compiler, which is needed to
908         compile a few utilities which generate source modules for ncurses.
909         If you do not give this option, the configure script checks if the
910         $BUILD_CC variable is set, and otherwise defaults to gcc or cc.
911
912     --with-build-cflags=XXX
913         If cross-compiling, specify the host C compiler-flags.  You might need
914         to do this if the target compiler has unusual flags which confuse the
915         host compiler.
916
917         You can also set the environment variable $BUILD_CFLAGS rather than
918         use this option.
919
920     --with-build-cpp=XXX
921         This option is provided by the same macro used for $BUILD_CC, etc.,
922         but is not directly used by ncurses.
923
924     --with-build-cppflags=XXX
925         If cross-compiling, specify the host C preprocessor-flags.  You might
926         need to do this if the target compiler has unusual flags which confuse
927         the host compiler.
928
929         You can also set the environment variable $BUILD_CPPFLAGS rather than
930         use this option.
931
932     --with-build-ldflags=XXX
933         If cross-compiling, specify the host linker-flags.  You might need to
934         do this if the target linker has unusual flags which confuse the host
935         compiler.
936
937         You can also set the environment variable $BUILD_LDFLAGS rather than
938         use this option.
939
940     --with-build-libs=XXX
941         If cross-compiling, the host libraries.  You might need to do this if
942         the target environment requires unusual libraries.
943
944         You can also set the environment variable $BUILD_LIBS rather than
945         use this option.
946
947     --with-caps=XXX
948         Specify an alternate terminfo capabilities file, which makes the
949         configure script look for "include/Caps.XXX".  A few systems, e.g.,
950         AIX 4.x use the same overall file-format as ncurses for terminfo
951         data, but use different alignments within the tables to support
952         legacy applications.  For those systems, you can configure ncurses
953         to use a terminfo database which is compatible with the native
954         applications.
955
956     --with-ccharw-max=XXX
957         Override the size of the wide-character array in cchar_t structures.
958         Changing this will alter the binary interface.  This defaults to 5.
959
960     --with-chtype=TYPE
961         Override type of chtype, which stores the video attributes and (if
962         --enable-widec is not given) a character.  Prior to ncurses 5.5, this
963         was always unsigned long, but with ncurses 5.5, it may be unsigned.
964         Use this option if you need to preserve compatibility with 64-bit
965         executables, e.g., by setting "--with-chtype=long" (the configure
966         script supplies "unsigned").
967
968     --with-config-suffix=XXX
969         Specify an suffix for "ncurses*" in the ncurses*-config filename to
970         work around conflicts with packages.  The suffix is placed before the
971         dash.
972
973     --with-cxx-libname=NAME
974         Override the basename of the ncurses++ library (default: "ncurses++")
975
976     --with-cxx-shared
977         When --with-shared is set, build libncurses++ as a shared library.
978         This implicitly relies upon building with gcc/g++, since other
979         compiler suites may have differences in the way shared libraries are
980         built.  libtool by the way has similar limitations.
981
982     --with-database=XXX
983         Specify the terminfo source file to install.  Usually you will wish
984         to install ncurses' default (misc/terminfo.src).  Certain systems
985         have special requirements, e.g, OS/2 EMX has a customized terminfo
986         source file.
987
988     --with-dbmalloc
989         For testing, compile and link with Conor Cahill's dbmalloc library.
990         This also sets the --disable-leaks option.
991
992     --with-debug
993         Generate debug-libraries (default).  These are named by adding "_g"
994         to the root, e.g., libncurses_g.a
995
996     --with-default-terminfo-dir=XXX
997         Specify the default terminfo database directory.  This is normally
998         DATADIR/terminfo, e.g., /usr/share/terminfo.
999
1000     --with-dmalloc
1001         For testing, compile and link with Gray Watson's dmalloc library.
1002         This also sets the --disable-leaks option.
1003
1004     --with-export-syms[=XXX]
1005         Limit exported symbols using libtool.  The configure script
1006         automatically chooses an appropriate ".sym" file, which lists the
1007         symbols which are part of the ABI.
1008
1009     --with-extra-suffix[=XXX]
1010         Add the given suffix to header- and library-names to simplify
1011         installing incompatible ncurses libraries, e.g., those using a
1012         different ABI.  The renaming affects the name of the
1013         include-subdirectory if --disable-overwrite is given.
1014
1015     --with-fallbacks=XXX
1016         Specify a list of fallback terminal descriptions which will be
1017         compiled into the ncurses library.  See CONFIGURING FALLBACK ENTRIES.
1018
1019         See also "--with-tic-path" and "--with-infocmp-path".
1020
1021     --with-form-libname=NAME
1022         Override the basename of the form library (default: "form")
1023
1024     --with-gpm
1025         use Alessandro Rubini's GPM library to provide mouse support on the
1026         Linux console.  Prior to ncurses 5.5, this introduced a dependency on
1027         the GPM library.
1028
1029         Currently ncurses uses the dlsym() function to bind to the library at
1030         runtime, so it is only necessary that the library be present when
1031         ncurses is built, to obtain the filename (or soname) used in the
1032         corresponding dlopen() call.  If you give a value for this option,
1033         e.g.,
1034
1035                 --with-gpm=$HOME/tmp/test-gpm.so
1036
1037         that overrides the configure check for the soname.
1038
1039         See also --without-dlsym
1040
1041     --with-hashed-db[=XXX]
1042         Use a hashed database for storing terminfo data rather than storing
1043         each compiled entry in a separate binary file within a directory
1044         tree.
1045
1046         In particular, this uses the Berkeley database 1.8.5 interface, as
1047         provided by that and its successors db 2, 3, and 4.  The actual
1048         interface is slightly different in the successor versions of the
1049         Berkeley database.  The database should have been configured using
1050         "--enable-compat185".
1051
1052         If you use this option for configuring ncurses, tic will only be able
1053         to write entries in the hashed database.  infocmp can still read
1054         entries from a directory tree as well as reading entries from the
1055         hashed database.  To do this, infocmp determines whether the $TERMINFO
1056         variable points to a directory or a file, and reads the directory-tree
1057         or hashed database respectively.
1058
1059         You cannot have a directory containing both hashed-database and
1060         filesystem-based terminfo entries.
1061
1062         Use the parameter value to give the install-prefix used for the
1063         database, e.g.,
1064                 --with-hashed-db=/usr/local/BigBase
1065         to find the corresponding include- and lib-directories under the
1066         given directory.  Alternatively, you can specify a directory leaf
1067         name, e.g.,
1068                 --with-hashed-db=db4
1069         to make the configure script look for files in a subdirectory such as
1070                 /usr/include/db4/db.h
1071                 /usr/lib/db4/libdb.so
1072
1073         See also the --enable-getcap option.
1074
1075     --with-infocmp-path[=XXX]
1076         Use this option to override the automatic detection of infocmp in your
1077         $PATH when building fallbacks (see "--with-fallbacks").
1078
1079     --with-install-prefix=XXX
1080         Allows you to specify an alternate location for installing ncurses
1081         after building it.  The value you specify is prepended to the "real"
1082         install location.  This simplifies making binary packages.  The
1083         makefile variable DESTDIR is set by this option.  It is also possible
1084         to use
1085                 make install DESTDIR=XXX
1086         since the makefiles pass that variable to subordinate makes.
1087
1088         NOTE: a few systems build shared libraries with fixed pathnames; this
1089         option probably will not work for those configurations.
1090
1091     --with-lib-prefix=XXX
1092         OS/2 EMX used a different naming convention from most Unix-like
1093         platforms.  It required that the "lib" part of a library name was
1094         omitted.  Newer EMX as part of eComStation does not follow that
1095         convention.  Use this option to override the configure script's
1096         assumptions about the library-prefix.  If this option is omitted, it
1097         uses the original OS/2 EMX convention for that platform.  Use
1098         "--with-lib-prefix=lib" for the newer EMX in eComStation.  Use
1099         "--without-lib-prefix" to suppress it for other odd platforms.
1100
1101     --with-libtool[=XXX]
1102         Generate libraries with libtool.  If this option is selected, then it
1103         overrides all other library model specifications.  Note that libtool
1104         must already be installed, uses makefile rules dependent on GNU make,
1105         and does not promise to follow the version numbering convention of
1106         other shared libraries on your system.  However, if the --with-shared
1107         option does not succeed, you may get better results with this option.
1108
1109         If a parameter value is given, it must be the full pathname of the
1110         particular version of libtool, e.g.,
1111                 /usr/bin/libtool-1.2.3
1112
1113         It is possible to rebuild the configure script to use the automake
1114         macros for libtool, e.g., AC_PROG_LIBTOOL.  See the comments in
1115         aclocal.m4 for CF_PROG_LIBTOOL, and ensure that you build configure
1116         using the appropriate patch for autoconf from
1117                 https://invisible-island.net/autoconf/
1118
1119     --with-libtool-opts=XXX
1120         Allow user to pass additional libtool options into the library creation
1121         and link steps.  The main use for this is to do something like
1122                 ./configure --with-libtool-opts=-static
1123         to get the same behavior as automake-flavored
1124                 ./configure --enable-static
1125
1126     --with-manpage-aliases
1127         Create files in subdirectories of the installation "man" directory that
1128         alias the man pages documenting them.  For example, the "beep" man page
1129         also documents the function "flash".  This is the default.  You can
1130         disable this procedure if your system's makewhatis(8) or mandb(8)
1131         program indexes the directory to which the pages are installed.  If you
1132         disable man page symlinks by specifying "--without-manpage-symlinks",
1133         the alias pages are created as stubs containing ".so" *roff requests.
1134
1135     --with-manpage-format=XXX
1136         Tell the configure script how you would like to install man pages.  The
1137         option value must be one of these: "gzip", "compress", "BSDI", "normal",
1138         "formatted".  If you do not specify this option, the configure script
1139         attempts to determine which is the case.
1140
1141     --with-manpage-renames=XXX
1142         Tell the configure script that you wish to rename the man pages when
1143         installing them.  Debian and distributions descended from it do this.
1144         The option value specifies the name of a file that lists the renamed
1145         files, e.g., "$srcdir/man/man_db.renames".
1146
1147     --with-manpage-symlinks
1148         Tell the configure script that you wish to make symbolic links in the
1149         man-directory for aliases to the man pages.  This is the default, but
1150         can be disabled for systems that provide this service automatically.
1151         Doing this on systems that do not support symbolic links creates a copy
1152         of the target man page for each alias.
1153
1154     --with-manpage-tbl
1155         Tell the configure script that you wish to preprocess the man pages
1156         by running them through tbl to generate tables understandable by
1157         nroff.
1158
1159     --with-menu-libname=NAME
1160         Override the basename of the menu library (default: "menu")
1161
1162     --with-mmask-t=TYPE
1163         Override type of mmask_t, which stores the mouse mask.  Prior to
1164         ncurses 5.5, this was always unsigned long, but with ncurses 5.5, it
1165         may be unsigned.  Use this option if you need to preserve compatibility
1166         with 64-bit executables.
1167
1168     --with-normal
1169         Generate normal (i.e., static) libraries (default).
1170
1171         Note:  on Linux, the configure script will attempt to use the GPM
1172         library via the dlsym() function call.  Use --without-dlsym to disable
1173         this feature, or --without-gpm, depending on whether you wish to use
1174         GPM.
1175
1176     --with-ospeed=TYPE
1177         Override type of ospeed variable, which is part of the termcap
1178         compatibility interface.  In termcap, this is a 'short', which works
1179         for a wide range of baudrates because ospeed is not the actual speed
1180         but the encoded value, e.g., B9600 would be a small number such as 13.
1181         However the encoding scheme originally allowed for values "only" up to
1182         38400bd.  A newer set of definitions past 38400bd is not encoded as
1183         compactly, and is not guaranteed to fit into a short (see the function
1184         cfgetospeed(), which returns a speed_t for this reason).  In practice,
1185         applications that required knowledge of the ospeed variable, i.e.,
1186         those using termcap, do not use the higher speeds.  Your application
1187         (or system, in general) may or may not.
1188
1189     --with-panel-libname=NAME
1190         Override the basename of the panel library (default: "panel")
1191
1192     --with-pc-suffix=SUFFIX
1193         If ".pc" files are installed (see --enable-pc-files), optionally add a
1194         suffix to the files and corresponding package names to separate
1195         unusual configurations.  If no option value is given (or if it is
1196         "none"), no suffix is added.
1197
1198     --with-pcre2=[XXX]
1199         Add PCRE2 (Perl-compatible regular expressions v2) to the build if it
1200         is available and the user requests it.  Assume the application will
1201         otherwise use the POSIX interface.
1202
1203         If an option value is given, try that pkgconfig name first.
1204
1205         This is useful for MinGW builds because the usual POSIX interface is
1206         not supplied by the development environment, while ncurses' form
1207         library uses a regular expression feature for one of the field types.
1208
1209     --with-pkg-config[=CMD]
1210         Check for pkg-config, optionally specifying its pathname.
1211
1212     --with-pkg-config-libdir[=DIR]
1213         If pkg-config was found, override the automatic check for its library
1214         path.  The optional DIR value can be
1215
1216         "auto", automatically use pkg-config's library directory, or
1217
1218         "libdir", use a ${libdir}/pkgconfig (based on the configuration), or
1219
1220         a directory path, i.e., beginning with "/".
1221
1222         The configure script allows only a single directory, because
1223         that is used as the directory in which to install ".pc" files.
1224
1225         The automatic check for the library path prefers the first directory
1226         which currently exists.  If none of the directories listed by
1227         pkg-config exist, the check prefers a pkgconfig directory under the
1228         "libdir" set by the configure script (which may not be the system
1229         default), or if pkg-config lists nothing suitable, the first one which
1230         is listed by pkg-config is used.
1231
1232     --with-profile
1233         Generate profile-libraries These are named by adding "_p" to the root,
1234         e.g., libncurses_p.a
1235
1236     --with-pthread
1237         Link with POSIX threads, set --enable-reentrant.  The use_window() and
1238         use_screen() functions will use mutex's, allowing rudimentary support
1239         for multithreaded applications.
1240
1241     --with-rcs-ids
1242         Compile-in RCS identifiers.  Most of the C files have an identifier.
1243
1244     --with-rel-version=NUM
1245         Override the release version, which may be used in shared library
1246         filenames.  This consists of a major and minor version number separated
1247         by ".".  Normally the major version number is the same as the ABI
1248         version; some ports have special requirements for compatibility.
1249
1250     --with-shared
1251         Generate shared-libraries.  The names given depend on the system for
1252         which you are building, typically using a ".so" suffix, along with
1253         symbolic links that refer to the release version.
1254
1255         NOTE: Unless you override the configure script by setting the $CFLAGS
1256         environment variable, these will not be built with the -g debugging
1257         option.
1258
1259         NOTE: For some configurations, e.g., installing a new version of
1260         ncurses shared libraries on a machine which already has ncurses
1261         shared libraries, you may encounter problems with the linker.
1262         For example, it may prevent you from running  the build tree's
1263         copy of tic (for installing the terminfo database) because it
1264         loads the system's copy of the ncurses shared libraries.
1265
1266         In that case, using the misc/shlib script may be helpful, since it
1267         sets $LD_LIBRARY_PATH to point to the build tree, e.g.,
1268
1269                 ./misc/shlib make install
1270
1271         Alternatively, for most platforms, the linker accepts a list of
1272         directories which will be searched for libraries at run-time.  The
1273         configure script allows you to modify this list using the
1274         RPATH_LIST environment variable.  It is a colon-separated list of
1275         directories (default:  the "libdir" set via the configure script).
1276         If you set that to put "../lib" first in the list, the linker will
1277         look first at the build-directory, and avoid conflict with libraries
1278         already installed.  One drawback to this approach is that libraries
1279         can be accidentally searched in any "../lib" directory.
1280
1281         NOTE: If you use the --with-ada-sharedlib option, you should also
1282         set this option, to ensure that C-language modules needed for the
1283         Ada binding use appropriate compiler options.
1284
1285     --with-shlib-version=XXX
1286         Specify whether to use the release or ABI version for shared libraries.
1287         This is normally chosen automatically based on the type of system
1288         which you are building on.  We use it for testing the configure script.
1289
1290     --with-strip-program=XXX
1291         When stripping executables during install, use the specified program
1292         rather than "strip".
1293
1294     --with-sysmouse
1295         use FreeBSD sysmouse interface provide mouse support on the console.
1296
1297     --with-system-type=XXX
1298         For testing, override the derived host system-type which is used to
1299         decide things such as the linker commands used to build shared
1300         libraries.  This is normally chosen automatically based on the type of
1301         system which you are building on.  We use it for testing the configure
1302         script.
1303
1304     --with-terminfo-dirs=XXX
1305         Specify a search-list of terminfo directories which will be compiled
1306         into the ncurses library (default: DATADIR/terminfo)
1307
1308         This is a colon-separated list, like the $TERMINFO_DIRS environment
1309         variable.
1310
1311     --with-termlib[=XXX]
1312         When building the ncurses library, organize this as two parts:  the
1313         curses library (libncurses) and the low-level terminfo library
1314         (libtinfo).  This is done to accommodate applications that use only
1315         the latter.  The terminfo library is about half the size of the total.
1316
1317         If an option value is given, that overrides the name of the terminfo
1318         library.  For instance, if the wide-character version is built, the
1319         terminfo library would be named libtinfow.  But the libtinfow interface
1320         is upward compatible from libtinfo, so it would be possible to overlay
1321         libtinfo.so with a "wide" version of libtinfow.so by renaming it with
1322         this option.
1323
1324     --with-termpath=XXX
1325         Specify a search-list of termcap files which will be compiled into the
1326         ncurses library (default:  /etc/termcap:/usr/share/misc/termcap)
1327
1328     --with-tic-path[=XXX]
1329         Use this option to override the automatic detection of tic in your
1330         $PATH when building fallbacks (see "--with-fallbacks").
1331
1332     --with-ticlib[=XXX]
1333         When building the ncurses library, build a separate library for
1334         the modules that are used only by the utility programs.  Normally
1335         those would be bundled with the termlib or ncurses libraries.
1336
1337         If an option value is given, that overrides the name of the tic
1338         library.  As in termlib, there is no ABI difference between the
1339         "wide" libticw.so and libtic.so
1340
1341         NOTE: Overriding the name of the tic library may be useful if you are
1342         also using the --with-termlib option to rename libtinfo.  If you are
1343         not doing that, renaming the tic library can result in conflicting
1344         library dependencies for tic and other programs built with the tic
1345         library.
1346
1347     --with-tparm-arg[=XXX]
1348         Override the type used for tparm() arguments, which normally is a
1349         "long".  However the function must assume that its arguments can hold a
1350         pointer to char's which is not always workable for 64-bit platforms.  A
1351         better choice would be intptr_t, which was not available at the time
1352         tparm's interface was defined.
1353
1354         If the option is not given, this defaults to "long".
1355
1356     --with-trace
1357         Configure the trace() function as part of the all models of the ncurses
1358         library.  Normally it is part of the debug (libncurses_g) library only.
1359
1360     --with-valgrind
1361         For testing, compile with debug option.
1362         This also sets the --disable-leaks option.
1363
1364     --with-versioned-syms[=XXX]
1365         The Solaris, GNU and reportedly some other linkers (ld) accept a
1366         "--version-script" option which tells the linker to annotate the
1367         resulting objects with version identifiers.
1368
1369         Use "objdump -T" on a library to see the annotations.
1370
1371         The configure script attempts to automatically apply a suitable ".map"
1372         file to provide this information for Linux.  Solaris mapfiles differ:
1373
1374         a) comments are not accepted
1375         b) wildcards are not accepted, except for a special case of "_*".
1376         c) each symbol listed in the map file must exist in the library
1377
1378         The Solaris limitations conflict with the development goal of providing
1379         a small set of ".map" files as examples, which cover the most common
1380         configurations.  Because that coverage is done by merging together
1381         several builds, some symbols will be listed in the the ".map" files
1382         that do not happen to be present in one configuration or another.
1383
1384         The sample ".map" (and ".sym") files were generated using a set of
1385         scripts which built several configurations for each release version,
1386         checking to see which of the "_nc_" symbols can be made local.
1387
1388         These sample ".map" files will not cover all possible combinations.
1389         In some cases, e.g., when using the --with-weak-symbols option, you
1390         may prefer to use a different ".map" file by setting this option's
1391         value.
1392
1393     --with-wrap-prefix=XXX
1394         When using the --enable-reentrant option, ncurses redefines variables
1395         that would be global in curses, e.g., LINES, as a macro that calls a
1396         "wrapping" function which fetches the data from the current SCREEN
1397         structure.  Normally that function is named by prepending "_nc_" to the
1398         variable's name.  The function is technically private (since portable
1399         applications would not refer directly to it).  But according to one
1400         line of reasoning, it is not the same type of "private" as functions
1401         which applications should not call even via a macro.  This configure
1402         option lets you choose the prefix for these wrapped variables.
1403
1404     --with-x11-rgb=FILE
1405         Provide a pathname for the X11 rgb file, used by the picsmap program.
1406         This overrides a configure check which usually works, but is needed
1407         due to the lack of standardization for X11's files.
1408
1409     --with-xterm-kbs=XXX
1410         Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII
1411         backspace) or DEL (^?, or 127).  XXX can be BS (or bs, 8) or DEL
1412         (or del, 127).  If XXX is "auto", the configure script chooses BS or
1413         DEL according to platform defaults.
1414
1415         During installation, the makefile and scripts modifies the "xterm+kbs"
1416         terminfo entry to use this setting.
1417
1418     --without-ada
1419         Suppress the configure script's check for Ada95, do not build the
1420         Ada95 binding and related demo.
1421
1422     --without-curses-h
1423         Don't install the ncurses header with the name "curses.h".  Rather,
1424         install as "ncurses.h" and modify the installed headers and man pages
1425         accordingly.
1426
1427         Likewise, do not install an alias "curses" for the ncurses man page.
1428
1429     --without-cxx
1430         XSI curses declares "bool" as part of the interface.  C++ also declares
1431         "bool".  Neither specifies the size and type of booleans, but both
1432         insist on the same name.  We chose to accommodate this by making the
1433         configure script check for the size and type (e.g., unsigned or signed)
1434         that your C++ compiler uses for booleans.  If you do not wish to use
1435         ncurses with C++, use this option to tell the configure script to not
1436         adjust ncurses bool to match C++.
1437
1438     --without-cxx-binding
1439         Suppress the configure script's check for C++, do not build the
1440         C++ binding and related demo.
1441
1442     --without-develop
1443         Disable development options.  This does not include those that change
1444         the interface, such as --enable-widec.
1445
1446     --without-dlsym
1447         Do not use dlsym() to load GPM dynamically.
1448
1449     --without-manpages
1450         Tell the configure script to suppress the install of ncurses' man pages.
1451
1452     --without-progs
1453         Tell the configure script to suppress the build of ncurses' application
1454         programs (e.g., tic).  The test applications will still be built if you
1455         type "make", though not if you simply do "make install".
1456
1457     --without-tests
1458         Tell the configure script to suppress the build of ncurses' test
1459         programs.
1460
1461     --without-xterm-new
1462         Tell the configure script to use "xterm-old" for the entry used in
1463         the terminfo database.  This will work with variations such as
1464         X11R5 and X11R6 xterm.
1465
1466
1467 COMPATIBILITY WITH OLDER RELEASES:
1468 ---------------------------------
1469
1470     Because ncurses implements X/Open Curses, its interface is fairly stable.
1471     That does not mean the interface does not change.  Changes are made to the
1472     documented interfaces when we find differences between ncurses and X/Open
1473     or implementations which largely correspond to X/Open (such as Solaris).
1474     We add extensions to those interfaces to solve problems not addressed by
1475     the original curses design, but those must not conflict with the X/Open
1476     documentation.
1477
1478     Here are some of the major interface changes, and related problems which
1479     you may encounter when building a system with different versions of
1480     ncurses:
1481
1482     6.6 (Dec 30, 2025)
1483         Interface changes:
1484
1485         + none
1486
1487         Added extensions:
1488
1489         + none
1490
1491         Added internal functions (other than "_sp" variants):
1492
1493         + _nc_is_path_found
1494
1495         Removed internal functions:
1496
1497         + none
1498
1499         Modified internal functions:
1500
1501         + These now pass a const parameter:  _nc_has_mouse,
1502           _nc_reset_color_pair, _nc_free_entry, and _nc_timed_wait.
1503         + These now use a NCURSES_BOOL where an int was used:
1504           _nc_setupscreen, _nc_keypad, _nc_unicode_locale, and
1505           _nc_retrace_bool.
1506
1507     6.5 (Apr 27, 2024)
1508         Interface changes:
1509
1510         + the WINDOW structure and some related internal data types declared
1511           in <curses.h> have been made opaque by default;
1512         + the FORM, MENU, and PANEL structures and related internal data types
1513           from their corresponding header files have been made opqaue by
1514           default; and
1515         + support for wide characters is now enabled by default.
1516
1517         Added extensions:
1518
1519         + is_cbreak, is_echo, is_nl, and is_raw, as well as "_sp" variants
1520
1521         + tiparm_s and tiscan_s
1522
1523         Added internal functions (other than "_sp" variants):
1524
1525         + _nc_env_access
1526
1527         Removed internal functions:
1528
1529         + none
1530
1531         Modified internal functions:
1532
1533         + These now pass a const parameter: _nc_delink_entry, _nc_str_copy,
1534           and _nc_trans_string
1535
1536     6.4 (Dec 31, 2022)
1537         Interface changes:
1538
1539         + none
1540
1541         Added extensions:
1542
1543         + none
1544
1545         Added internal functions (other than "_sp" variants):
1546
1547         + add _nc_free_termtype1 and _nc_free_tparm, for memory-leaks
1548
1549         Removed internal functions:
1550
1551         + none
1552
1553         Modified internal functions:
1554
1555         + none
1556
1557     6.3 (Oct 21, 2021)
1558         Interface changes:
1559
1560         + the definition of TERMTYPE2 is now internal, not visible in the ABI,
1561           like the enclosing TERMINAL which was previously made opaque.  This
1562           was done to provide SCREEN-specific "static" variables in terminfo.
1563
1564         Added extensions:
1565
1566         + add sp-funcs for erasewchar, killwchar.
1567
1568         Added internal functions (other than "_sp" variants):
1569
1570         + _nc_safe_fopen and _nc_safe_open3 limit privileges if possible when
1571           opening a file; otherwise disallow access for updating files.
1572
1573         + _nc_tiparm is a variant of tiparm which is used when all of the
1574           parameters are known to be numbers rather than possibly strings.
1575
1576         + _nc_reset_tparm improves tic's checks by resetting the terminfo
1577           "static variables" before calling functions which may update them.
1578
1579         Removed internal functions:
1580
1581         + none
1582
1583         Modified internal functions:
1584
1585         + _nc_trace_ttymode passes pointer to const data
1586
1587         + _nc_tparm_analyze passes pointer to int*, not int[]
1588
1589     6.2 (Feb 12, 2020)
1590         Interface changes:
1591
1592         + the terminal database must be compiled with ncurses 6.2 tic;
1593           older versions of tic/infocmp will not work.  Aside from that,
1594           the compiled database will work with older applications.
1595
1596         + "*.pc" and "ncurses*-config" files give the same information.
1597
1598         + vwprintw and vwscanw are deprecated.
1599
1600         Added extensions:
1601
1602         + These make it simpler to substitute a debug-configuration of the
1603           library for non-debug:
1604                 curses_trace
1605                 exit_curses
1606                 exit_terminfo
1607
1608         Added internal functions (other than "_sp" variants):
1609
1610         + These provide fast-lookup of common user-defined capabilities:
1611                 _nc_find_user_entry
1612                 _nc_get_userdefs_table
1613                 _nc_get_hash_user
1614
1615         + This is added to work around compiler-warnings:
1616                 _nc_fmt_funcptr
1617
1618         Removed internal functions:
1619
1620         + _nc_import_termtype
1621
1622         Modified internal functions:
1623
1624         + _nc_reserve_pairs no longer returns a value
1625
1626     6.1 (Jan 27, 2018)
1627         Interface changes:
1628
1629         + X/Open Curses specifies a "reserved" void* parameter in several
1630           functions, saying that it must be NULL.  In this release, if the
1631           parameter is non-NULL, it is interpreted as a point to an integer
1632           containing a color pair.  In previous releases, a non-NULL parameter
1633           caused an error return.  Portable applications are unaffected.  Here
1634           are the functions which have been extended:
1635                 attr_get
1636                 attr_off
1637                 attr_on
1638                 attr_set
1639                 chgat
1640                 color_set
1641                 mvchgat
1642                 mvwchgat
1643                 slk_attr_off
1644                 slk_attr_on
1645                 slk_attr_set
1646                 wattr_get
1647                 wattr_on
1648                 wattr_off
1649                 wattr_set
1650                 wchgat
1651                 wcolor_set
1652
1653         + the TERMINAL structure declared in <term.h> has been made opaque,
1654           and its size increased to handle the increased size of color pair
1655           and color value, as well as other numeric capabilities.
1656
1657           A few applications required change, e.g., to use def_prog_mode;
1658           only one application (tack) is known to have a valid reason for
1659           accessing these internal details, and that was addressed by the
1660           release of tack 1.08 in 2017.  Internal functions marked as used
1661           by tack will be deprecated in future releases.
1662
1663         Added extensions:
1664
1665         + Several new functions were added to manipulate extended color pairs
1666           and color values.  These include:
1667                 alloc_pair
1668                 extended_color_content
1669                 extended_pair_content
1670                 extended_slk_color
1671                 find_pair
1672                 free_pair
1673                 init_extended_color
1674                 init_extended_pair
1675                 reset_color_pairs
1676
1677           as well as corresponding sp-functions.
1678
1679         + A new terminfo capability "RGB" tells the ncurses library that the
1680           color values are red/green/blue, to eliminate the need for palettes
1681           in that special case for the color_content function.
1682
1683         Added internal functions (other than "_sp" variants):
1684                 _nc_copy_termtype2
1685                 _nc_export_termtype2
1686                 _nc_fallback2
1687                 _nc_find_prescr
1688                 _nc_forget_prescr
1689                 _nc_free_termtype2
1690                 _nc_read_entry2
1691                 _nc_write_object
1692
1693         Removed internal functions:
1694                 _nc_check_termtype
1695                 _nc_resolve_uses
1696
1697         Modified internal functions:
1698
1699         + symbols are used by tic/infocmp/toe:
1700                 _nc_align_termtype - change parameters to TERMTYPE2*
1701                 _nc_check_termtype2 - change parameter to TERMTYPE2*
1702                 _nc_read_file_entry - change parameter to TERMTYPE2*
1703                 _nc_read_termtype - change parameter to TERMTYPE2*
1704                 _nc_trim_sgr0 - change parameter to TERMTYPE2*
1705                 _nc_write_entry - change parameter to TERMTYPE2*
1706
1707         + symbols used only within the library:
1708                 _nc_fallback - change return type to TERMTYPE2*
1709                 _nc_init_termtype - change parameter to TERMTYPE2*
1710
1711     6.0 (Aug 08, 2015)
1712         Interface changes:
1713
1714         + The 6.0 ABI modifies the defaults for these configure options:
1715            --enable-const
1716            --enable-ext-colors
1717            --enable-ext-mouse
1718            --enable-ext-putwin
1719            --enable-interop
1720            --enable-lp64
1721            --enable-sp-funcs
1722            --with-chtype=uint32_t
1723            --with-mmask_t=uint32_t
1724            --with-tparm-arg=intptr_t
1725
1726         + ncurses supports symbol versioning.  If you use this feature, about
1727           half of the "_nc_" private symbols are changed to local symbols.
1728
1729         + a few applications may need to explicitly flush the standard output
1730           when switching between printf's and (curses) printw.
1731
1732         Added extensions:
1733
1734         + use_tioctl is an improvement over use_env
1735
1736         + added wgetdelay to support the NCURSES_OPAQUE feature.
1737
1738         Added internal functions (other than "_sp" variants):
1739                 _nc_init_termtype
1740                 _nc_mvcur
1741                 _nc_putchar
1742                 _nc_setenv_num
1743                 _nc_trace_mmask_t
1744
1745         Removed internal functions:
1746                 none
1747
1748         Modified internal functions:
1749                 _nc_do_color - change parameters from short/bool to int
1750                 _nc_keypad - change parameter from bool to int
1751                 _nc_setupscreen - change parameter from bool to int
1752                 _nc_signal_handler - change parameter from bool to int
1753
1754     5.9 (Apr 04, 2011)
1755     5.8 (Feb 26, 2011)
1756         Interface changes:
1757
1758         + add an alternate library configuration, i.e., "terminal driver" to
1759           support port to Windows, built with MinGW.  There are two drivers
1760           (terminfo and Windows console).  The terminfo driver works on other
1761           platforms.
1762
1763         + add a new set of functions which accept a SCREEN* parameter, in
1764           contrast with the original set which use the global value "sp".
1765           By default, these names end with "_sp", and are otherwise
1766           functionally identical with the originals.
1767
1768           In addition to the "_sp" functions, there are a few new functions
1769           associated with this feature:  ceiling_panel, ground_panel,
1770           new_prescr.
1771
1772           If the library is not built with the sp-funcs extension, there
1773           are no related interface changes.
1774
1775         + add tiparm function based on review of X/Open Curses Issue 7.
1776
1777         + change internal _nc_has_mouse function to public has_mouse function
1778
1779         Added extensions:
1780
1781         + add a few more functions to support the NCURSES_OPAQUE feature:
1782           get_escdelay, is_pad, is_subwin
1783
1784         Added internal functions (other than "_sp" variants):
1785                 _nc_curscr_of
1786                 _nc_format_slks
1787                 _nc_get_alias_table
1788                 _nc_get_hash_info
1789                 _nc_insert_wch
1790                 _nc_newscr_of
1791                 _nc_outc_wrapper
1792                 _nc_retrace_char
1793                 _nc_retrace_int_attr_t
1794                 _nc_retrace_mmask_t
1795                 _nc_setup_tinfo
1796                 _nc_stdscr_of
1797                 _nc_tinfo_cmdch
1798
1799         Removed internal functions:
1800                 _nc_makenew (some configurations replace by _nc_makenew_sp)
1801
1802         Modified internal functions:
1803                 _nc_UpdateAttrs
1804                 _nc_get_hash_table
1805                 _nc_has_mouse
1806                 _nc_insert_ch
1807                 _nc_wgetch
1808
1809     5.7 (November 2, 2008)
1810         Interface changes:
1811
1812         + generate linkable stubs for some macros:
1813                 getattrs
1814
1815         + Add new library configuration for tic-library (the non-curses portion
1816           of the ncurses library used for the tic program as well as some
1817           others such as tack.  There is no API change, but makefiles would be
1818           changed to use the tic-library built separately.
1819
1820           tack, distributed separately from ncurses, uses some of the internal
1821           _nc_XXX functions, which are declared in the tic.h header file.
1822
1823           The reason for providing this separate library is that none of the
1824           functions in it are suitable for threaded applications.
1825
1826         + Add new library configuration (ncursest, ncurseswt) which provides
1827           rudimentary support for POSIX threads.  This introduces opaque
1828           access functions to the WINDOW structure and adds a parameter to
1829           several internal functions.
1830
1831         + move most internal variables (except tic-library) into data blocks
1832           _nc_globals and _nc_prescreen to simplify analysis.  Those were
1833           globally accessible, but since they were not part of the documented
1834           API, there is no ABI change.
1835
1836         + changed static tables of strings to be indices into long strings, to
1837           improve startup performance.  This changes parameter lists for some
1838           of the internal functions.
1839
1840         Added extensions:
1841
1842         + add NCURSES_OPAQUE definition in curses.h to control whether internal
1843           details of the WINDOW structure are visible to an application.  This
1844           is always defined when the threaded library is built, and is optional
1845           otherwise.  New functions for this:  is_cleared, is_idcok, is_idlok,
1846           is_immedok, is_keypad, is_leaveok, is_nodelay, is_notimeout,
1847           is_scrollok, is_syncok, wgetparent and wgetscrreg.
1848
1849         + the threaded library (ncursest) also disallows direct updating of
1850           global curses-level variables, providing functions (via macros) for
1851           obtaining their value.  A few of those variables can be modified by
1852           the application, using new functions:  set_escdelay, set_tabsize
1853
1854         + added functions use_window() and use_screen() which wrap a mutex
1855           (if threading is configured) around a call to a user-supplied
1856           function.
1857
1858         Added internal functions:
1859                 _nc_get_alias_table
1860                 _nc_get_screensize
1861                 _nc_keyname
1862                 _nc_screen_of
1863                 _nc_set_no_padding
1864                 _nc_tracechar
1865                 _nc_tracemouse
1866                 _nc_unctrl
1867                 _nc_ungetch
1868
1869                 These are used for leak-testing, and are stubs for
1870                 ABI compatibility when ncurses is not configured for that
1871                 using the --disable-leaks configure script option:
1872
1873                 _nc_free_and_exit
1874                 _nc_leaks_tinfo
1875
1876         Removed internal functions:
1877                 none
1878
1879         Modified internal functions:
1880                 _nc_fifo_dump
1881                 _nc_find_entry
1882                 _nc_handle_sigwinch
1883                 _nc_init_keytry
1884                 _nc_keypad
1885                 _nc_locale_breaks_acs
1886                 _nc_timed_wait
1887                 _nc_update_screensize
1888
1889                 Use new typedef TRIES to replace "struct tries":
1890
1891                 _nc_add_to_try
1892                 _nc_expand_try
1893                 _nc_remove_key
1894                 _nc_remove_string
1895                 _nc_trace_tries
1896
1897     5.6 (December 17, 2006)
1898         Interface changes:
1899
1900         + generate linkable stubs for some macros:
1901
1902           getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
1903           getpary, getpary,
1904
1905           and (for libncursesw)
1906
1907           wgetbkgrnd
1908
1909         Added extensions:
1910                 nofilter()
1911                 use_legacy_coding()
1912
1913         Added internal functions:
1914                 _nc_first_db
1915                 _nc_get_source
1916                 _nc_handle_sigwinch
1917                 _nc_is_abs_path
1918                 _nc_is_dir_path
1919                 _nc_is_file_path
1920                 _nc_keep_tic_dir
1921                 _nc_keep_tic_dir
1922                 _nc_last_db
1923                 _nc_next_db
1924                 _nc_read_termtype
1925                 _nc_tic_dir
1926
1927                 Also (if using the hashed database configuration):
1928
1929                 _nc_db_close
1930                 _nc_db_first
1931                 _nc_db_get
1932                 _nc_db_have_data
1933                 _nc_db_have_index
1934                 _nc_db_next
1935                 _nc_db_open
1936                 _nc_db_put
1937
1938                 otherwise
1939
1940                 _nc_hashed_db
1941
1942         Removed internal functions:
1943                 none
1944
1945         Modified internal functions:
1946                 _nc_add_to_try
1947                 _nc_do_color
1948                 _nc_expand_try
1949                 _nc_remove_key
1950                 _nc_setupscreen
1951
1952     5.5 (October 10, 2005)
1953         Interface changes:
1954
1955         + terminfo installs "xterm-new" as "xterm" entry rather than
1956           "xterm-old" (aka xterm-r6).
1957
1958         + terminfo data is installed using the tic -x option (few systems
1959           still use ncurses 4.2).
1960
1961         + modify C++ binding to work with newer C++ compilers by providing
1962           initializers and using modern casts.  Old-style header names are
1963           still used in this release to allow compiling with not-so-old
1964           compilers.
1965
1966         + form and menu libraries now work with wide-character data.
1967           Applications which bypassed the form library and manipulated the
1968           FIELD.buf data directly will not work properly with libformw, since
1969           that no longer points to an array of char.  The set_field_buffer()
1970           and field_buffer() functions translate to/from the actual field
1971           data.
1972
1973         + change SP->_current_attr to a pointer, adjust ifdef's to ensure that
1974           libtinfo.so and libtinfow.so have the same ABI.  The reason for this
1975           is that the corresponding data which belongs to the upper-level
1976           ncurses library has a different size in each model.
1977
1978         + winnstr() now returns multibyte character strings for the
1979           wide-character configuration.
1980
1981         + assume_default_colors() no longer requires that use_default_colors()
1982           be called first.
1983
1984         + data_ahead() now works with wide-characters.
1985
1986         + slk_set() and slk_wset() now accept and store multibyte or
1987           multicolumn characters.
1988
1989         + start_color() now returns OK if colors have already been started.
1990           start_color() also returns ERR if it cannot allocate memory.
1991
1992         + pair_content() now returns -1 for consistency with init_pair() if it
1993           corresponds to the default-color.
1994
1995         + unctrl() now returns null if its parameter does not correspond
1996           to an unsigned char.
1997
1998         Added extensions:
1999                 Experimental mouse version 2 supports wheel mice with buttons
2000                 4 and 5.  This requires ABI 6 because it modifies the encoding
2001                 of mouse events.
2002
2003                 Experimental extended colors allows encoding of 256 foreground
2004                 and background colors, e.g., with the xterm-256color or
2005                 xterm-88color terminfo entries.  This requires ABI 6 because
2006                 it changes the size of cchar_t.
2007
2008         Added internal functions:
2009                 _nc_check_termtype2
2010                 _nc_resolve_uses2
2011                 _nc_retrace_cptr
2012                 _nc_retrace_cvoid_ptr
2013                 _nc_retrace_void_ptr
2014                 _nc_setup_term
2015
2016         Removed internal functions:
2017                 none
2018
2019         Modified internal functions:
2020                 _nc_insert_ch
2021                 _nc_save_str
2022                 _nc_trans_string
2023
2024     5.4 (February 8, 2004)
2025         Interface changes:
2026
2027         + add the remaining functions for X/Open curses wide-character support.
2028           These are only available if the library is configured using the
2029           --enable-widec option.
2030                 pecho_wchar()
2031                 slk_wset()
2032
2033         + write getyx() and related 2-return macros in terms of getcury(),
2034           getcurx(), etc.
2035
2036         + simplify ifdef for bool declaration in curses.h
2037
2038         + modify ifdef's in curses.h that disabled use of __attribute__() for
2039           g++, since recent versions implement the cases which ncurses uses.
2040
2041         + change some interfaces to use const:
2042                 define_key()
2043                 mvprintw()
2044                 mvwprintw()
2045                 printw()
2046                 vw_printw()
2047                 winsnstr()
2048                 wprintw()
2049
2050         Added extensions:
2051                 key_defined()
2052
2053         Added internal functions:
2054                 _nc_get_locale()
2055                 _nc_insert_ch()
2056                 _nc_is_charable()       wide
2057                 _nc_locale_breaks_acs()
2058                 _nc_pathlast()
2059                 _nc_to_char()           wide
2060                 _nc_to_widechar()       wide
2061                 _nc_tparm_analyze()
2062                 _nc_trace_bufcat()      debug
2063                 _nc_unicode_locale()
2064
2065         Removed internal functions:
2066                 _nc_outstr()
2067                 _nc_sigaction()
2068
2069         Modified internal functions:
2070                 _nc_remove_string()
2071                 _nc_retrace_chtype()
2072
2073     5.3 (October 12, 2002)
2074         Interface changes:
2075
2076         + change type for bool used in headers to NCURSES_BOOL, which usually
2077           is the same as the compiler's definition for 'bool'.
2078
2079         + add all but two functions for X/Open curses wide-character support.
2080           These are only available if the library is configured using the
2081           --enable-widec option.  Missing functions are
2082                 pecho_wchar()
2083                 slk_wset()
2084
2085         + add environment variable $NCURSES_ASSUMED_COLORS to modify the
2086           assume_default_colors() extension.
2087
2088         Added extensions:
2089                 is_term_resized()
2090                 resize_term()
2091
2092         Added internal functions:
2093                 _nc_altcharset_name()   debug
2094                 _nc_reset_colors()
2095                 _nc_retrace_bool()      debug
2096                 _nc_retrace_unsigned()  debug
2097                 _nc_rootname()
2098                 _nc_trace_ttymode()     debug
2099                 _nc_varargs()           debug
2100                 _nc_visbufn()           debug
2101                 _nc_wgetch()
2102
2103         Removed internal functions:
2104                 _nc_background()
2105
2106         Modified internal functions:
2107                 _nc_freeall()           debug
2108
2109     5.2 (October 21, 2000)
2110         Interface changes:
2111
2112         + revert termcap ospeed variable to 'short' (see discussion of the
2113           --with-ospeed configure option).
2114
2115     5.1 (July 8, 2000)
2116         Interface changes:
2117
2118         + made the extended terminal capabilities
2119           (configure --enable-tcap-names) a standard feature.  This should
2120           be transparent to applications that do not require it.
2121
2122         + removed the trace() function and related trace support from the
2123           production library.
2124
2125         + modified curses.h.in, undef'ing some symbols to avoid conflict
2126           with C++ STL.
2127
2128         Added extensions:  assume_default_colors().
2129
2130     5.0 (October 23, 1999)
2131         Interface changes:
2132
2133         + implemented the wcolor_set() and slk_color() functions.
2134
2135         + move macro winch to a function, to hide details of struct ldat
2136
2137         + corrected prototypes for slk_* functions, using chtype rather than
2138           attr_t.
2139
2140         + the slk_attr_{set,off,on} functions need an additional void*
2141           parameter according to XSI.
2142
2143         + modified several prototypes to correspond with 1997 version of X/Open
2144           Curses:  [w]attr_get(), [w]attr_set(), border_set() have different
2145           parameters.  Some functions were renamed or misspelled:
2146           erase_wchar(), in_wchntr(), mvin_wchntr().  Some developers have used
2147           attr_get().
2148
2149         Added extensions:  keybound(), curses_version().
2150
2151         Terminfo database changes:
2152
2153         + change translation for termcap 'rs' to terminfo 'rs2', which is
2154           the documented equivalent, rather than 'rs1'.
2155
2156         The problems are subtler in recent releases.
2157
2158         a) This release provides users with the ability to define their own
2159            terminal capability extensions, like termcap.  To accomplish this,
2160            we redesigned the TERMTYPE struct (in term.h).  Very few
2161            applications use this struct.  They must be recompiled to work with
2162            the 5.0 library.
2163
2164         a) If you use the extended terminfo names (i.e., you used configure
2165            --enable-tcap-names), the resulting terminfo database can have some
2166            entries which are not readable by older versions of ncurses.  This
2167            is a bug in the older versions:
2168
2169            + the terminfo database stores booleans, numbers and strings in
2170              arrays.  The capabilities that are listed in the arrays are
2171              specified by X/Open.  ncurses recognizes a number of obsolete and
2172              extended names which are stored past the end of the specified
2173              entries.
2174
2175            + a change to read_entry.c in 951001 made the library do an lseek()
2176              call incorrectly skipping data which is already read from the
2177              string array.  This happens when the number of strings in the
2178              terminfo data file is greater than STRCOUNT, the number of
2179              specified and obsolete or extended strings.
2180
2181            + as part of alignment with the X/Open final specification, in the
2182              990109 patch we added two new terminfo capabilities:
2183              set_a_attributes and set_pglen_inch).  This makes the indices for
2184              the obsolete and extended capabilities shift up by 2.
2185
2186            + the last two capabilities in the obsolete/extended list are memu
2187              and meml, which are found in most terminfo descriptions for xterm.
2188
2189              When trying to read this terminfo entry, the spurious lseek()
2190              causes the library to attempt to read the final portion of the
2191              terminfo data (the text of the string capabilities) 4 characters
2192              past its starting point, and reads 4 characters too few.  The
2193              library rejects the data, and applications are unable to
2194              initialize that terminal type.
2195
2196            FIX: remove memu and meml from the xterm description.  They are
2197            obsolete, not used by ncurses.  (It appears that the feature was
2198            added to xterm to make it more like hpterm).
2199
2200            This is not a problem if you do not use the -x option of tic to
2201            create a terminfo database with extended names.  Note that the
2202            user-defined terminal capabilities are not affected by this bug,
2203            since they are stored in a table after the older terminfo data ends,
2204            and are invisible to the older libraries.
2205
2206         c) Some developers did not wish to use the C++ binding, and used the
2207            configure --without-cxx option.  This causes problems if someone
2208            uses the ncurses library from C++ because that configure test
2209            determines the type for C++'s bool and makes ncurses match it, since
2210            both C++ and curses are specified to declare bool.  Calling ncurses
2211            functions with the incorrect type for bool will cause execution
2212            errors.  In 5.0 we added a configure option "--without-cxx-binding"
2213            which controls whether the binding itself is built and installed.
2214
2215     4.2 (March 2, 1998)
2216         Interface changes:
2217
2218         + correct prototype for termattrs() as per XPG4 version 2.
2219
2220         + add placeholder prototypes for color_set(), erasewchar(),
2221           term_attrs(), wcolor_set() as per XPG4 version 2.
2222
2223         + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in
2224           SVr4 headers.
2225
2226         New extensions: keyok() and define_key().
2227
2228         Terminfo database changes:
2229
2230         + corrected definition in curses.h for ACS_LANTERN, which was 'I'
2231           rather than 'i'.
2232
2233     4.1 (May 15, 1997)
2234
2235         We added these extensions:  use_default_colors().  Also added
2236         configure option --enable-const, to support the use of const where
2237         X/Open should have, but did not, specify.
2238
2239         The terminfo database content changed the representation of color for
2240         most entries that use ANSI colors.  SVr4 curses treats the setaf/setab
2241         and setf/setb capabilities differently, interchanging the red/blue
2242         colors in the latter.
2243
2244     4.0 (December 24, 1996)
2245
2246         We bumped to version 4.0 because the newly released Linux dynamic
2247         loader (ld.so.1.8.5) did not load shared libraries whose ABI and REL
2248         versions were inconsistent.  At that point, ncurses ABI was 3.4 and the
2249         REL was 1.9.9g, so we made them consistent.
2250
2251     1.9.9g (December 1, 1996)
2252
2253         This fixed most of the problems with 1.9.9e, and made these interface
2254         changes:
2255
2256         + remove tparam(), which had been provided for compatibility with
2257           some termcap.  tparm() is standard, and does not conflict with
2258           application's fallback for missing tparam().
2259
2260         + turn off hardware echo in initscr().  This changes the sense of the
2261           echo() function, which was initialized to echoing rather than
2262           nonechoing (the latter is specified).  There were several other
2263           corrections to the terminal I/O settings which cause applications to
2264           behave differently.
2265
2266         + implemented several functions (such as attr_on()) which were
2267           available only as macros.
2268
2269         + corrected several typos in curses.h.in (i.e., the mvXXXX macros).
2270
2271         + corrected prototypes for delay_output(),
2272           has_color, immedok() and idcok().
2273
2274         + corrected misspelled getbkgd().  Some applications used the
2275           misspelled name.
2276
2277         + added _yoffset to WINDOW.  The size of WINDOW does not impact
2278           applications, since they use only pointers to WINDOW structs.
2279
2280         These changes were made to the terminfo database:
2281
2282         + removed boolean 'getm' which was available as an extended name.
2283
2284         We added these extensions: wresize(), resizeterm(), has_key() and
2285         mcprint().
2286
2287     1.9.9e (March 24, 1996)
2288
2289         not recommended (a last-minute/untested change left the forms and
2290         menus libraries unusable since they do not repaint the screen).
2291         Foreground/background colors are combined incorrectly, working properly
2292         only on a black background.  When this was released, the X/Open
2293         specification was available only in draft form.
2294
2295         Some applications (such as lxdialog) were "fixed" to work with the
2296         incorrect color scheme.
2297
2298
2299 FOR SYSTEM INTEGRATORS:
2300 ----------------------
2301
2302     Configuration and Installation:
2303
2304         On platforms where ncurses is assumed to be installed in /usr/lib,
2305         the configure script uses "/usr" as a default.  These include any
2306         that use the Linux kernel, as well as these special cases:
2307
2308                 FreeBSD, NetBSD, OpenBSD, Cygwin, MinGW
2309
2310         For other platforms, the default is "/usr/local".  See the discussion
2311         of the "--disable-overwrite" option.
2312
2313         The location of the terminfo is set indirectly by the "--datadir"
2314         configure option, e.g., /usr/share/terminfo, given a datadir of
2315         /usr/share.  You may want to override this if you are installing
2316         ncurses libraries in nonstandard locations, but wish to share the
2317         terminfo database.
2318
2319         Normally the ncurses library is configured in a pure-terminfo mode;
2320         that is, with the --disable-termcap option.  This makes the ncurses
2321         library smaller and faster.  The ncurses library includes a termcap
2322         emulation that queries the terminfo database, so even applications that
2323         use raw termcap to query terminal characteristics will win (providing
2324         you recompile and relink them!).
2325
2326         If you must configure with termcap fallback enabled, you may also wish
2327         to use the --enable-getcap option.  This speeds up termcap-based
2328         startups, at the expense of not allowing personal termcap entries to
2329         reference the terminfo tree.  See comments in
2330         ncurses/tinfo/read_termcap.c for further details.
2331
2332         Note that if you have $TERMCAP set, ncurses will use that value
2333         to locate termcap data.  In particular, running from xterm will
2334         set $TERMCAP to the contents of the xterm's termcap entry.
2335         If ncurses sees that, it will not examine /etc/termcap.
2336
2337     Keyboard Mapping:
2338
2339         The terminfo file assumes that Shift-Tab generates \E[Z (the ECMA-48
2340         reverse-tabulation sequence) rather than ^I.  Here are the loadkeys -d
2341         mappings that will set this up:
2342
2343                 keycode  15 = Tab             Tab
2344                         alt     keycode  15 = Meta_Tab
2345                         shift   keycode  15 = F26
2346                 string F26 ="\033[Z"
2347
2348     Naming the Console Terminal
2349
2350         In various systems there has been a practice of designating the system
2351         console driver type as 'console'.  Please do not do this!  It
2352         complicates peoples' lives, because it can mean that several different
2353         terminfo entries from different operating systems all logically want to
2354         be called 'console'.
2355
2356         Please pick a name unique to your console driver and set that up
2357         in the /etc/inittab table or local equivalent.  Send the entry to the
2358         terminfo maintainer (listed in the misc/terminfo file) to be included
2359         in the terminfo file, if it is not already there.  See the
2360         term(7) manual page included with this distribution for more on
2361         conventions for choosing type names.
2362
2363         Here are some recommended primary console names:
2364
2365                 linux   -- Linux console driver
2366                 freebsd -- FreeBSD
2367                 netbsd  -- NetBSD
2368                 bsdos   -- BSD/OS
2369
2370         If you are responsible for integrating ncurses for one of these
2371         distributions, please either use the recommended name or get back
2372         to us explaining why you don't want to, so we can work out nomenclature
2373         that will make users' lives easier rather than harder.
2374
2375
2376 MODERN XTERM VERSIONS:
2377 ---------------------
2378
2379         The terminfo database file included with this distribution assumes you
2380         are running a modern xterm based on XFree86 (i.e., xterm-new).  The
2381         earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided
2382         as well.  See the --without-xterm-new configure script option if you
2383         are unable to update your system.
2384
2385
2386 CONFIGURING FALLBACK ENTRIES:
2387 ----------------------------
2388
2389         In order to support operation of ncurses programs before the terminfo
2390         tree is accessible (that is, in single-user mode or at OS installation
2391         time) the ncurses library can be compiled to include an array of
2392         pre-fetched fallback entries.
2393
2394         NOTE: This must be done on a machine which has ncurses' infocmp and
2395         terminfo database installed (as well as ncurses' tic and infocmp
2396         programs).  That is because the fallback sources are generated and
2397         compiled into the library before the build-tree's copy of infocmp is
2398         available.
2399
2400         These entries are checked by setupterm() only when the conventional
2401         fetches from the terminfo tree and the termcap fallback (if configured)
2402         have been tried and failed.  Thus, the presence of a fallback will not
2403         shadow modifications to the on-disk entry for the same type, when that
2404         entry is accessible.
2405
2406         By default, there are no entries on the fallback list.  After you have
2407         built the ncurses suite for the first time, you can change the list
2408         (the process needs infocmp(1)).  To do so, use the script
2409         ncurses/tinfo/MKfallback.sh.  The configure script option
2410         --with-fallbacks does this (it accepts a comma-separated list of the
2411         names you wish, and does not require a rebuild).
2412
2413         If you wanted (say) to have linux, vt100, and xterm fallbacks, you
2414         might use the commands
2415
2416                 cd ncurses;
2417                 tinfo/MKfallback.sh \
2418                         $TERMINFO \
2419                         ../misc/terminfo.src \
2420                         `which tic` \
2421                         `which infocmp` \
2422                         linux vt100 xterm >fallback.c
2423
2424         The first four parameters of the script are normally supplied by
2425         the configured makefiles via the "--with-fallbacks" option.  They
2426         are
2427
2428                 1) the location of the terminfo database
2429                 2) the source for the terminfo entries
2430                 3) the location of the tic program, used to create a terminfo
2431                    database.
2432                 4) the location of the infocmp program, used to print a terminfo
2433                    description.
2434
2435         Then just rebuild and reinstall the library as you would normally.
2436         You can restore the default empty fallback list with
2437
2438                 tinfo/MKfallback.sh \
2439                         $TERMINFO \
2440                         ../misc/terminfo.src \
2441                         `which tic` \
2442                         `which infocmp` \
2443                         >fallback.c
2444
2445         The overhead for an empty fallback list is one trivial stub function.
2446         Any non-empty fallback list is const'd and therefore lives in shareable
2447         text space.  You can look at the comment trailing each initializer in
2448         the generated ncurses/fallback.c file to see the core cost of the
2449         fallbacks.  A good rule of thumb for modern vt100-like entries is that
2450         each one will cost about 2.5K of text space.
2451
2452
2453 BSD CONVERSION NOTES:
2454 --------------------
2455
2456         If you need to support really ancient BSD programs, you probably
2457         want to configure with the --enable-bsdpad option.  What this does
2458         is enable code in tputs() that recognizes a numeric prefix on a
2459         capability as a request for that much trailing padding in milliseconds.
2460         There are old BSD programs that do things like tputs("50").
2461
2462         (If you are distributing ncurses as a support-library component of
2463         an application you probably want to put the remainder of this section
2464         in the package README file.)
2465
2466         The following note applies only if you have configured ncurses with
2467         --enable-termcap.
2468
2469 ------------------------------- CUT HERE --------------------------------
2470
2471 If you are installing this application privately (either because you
2472 have no root access or want to experiment with it before doing a root
2473 installation), there are a couple of details you need to be aware of.
2474 They have to do with the ncurses library, which uses terminfo rather
2475 than termcap for describing terminal characteristics.
2476
2477 Though the ncurses library is terminfo-based, it can interpret your
2478 TERMCAP variable (if present), any local termcap files you reference
2479 through it, and the system termcap file.  However, to avoid slowing
2480 down your application startup, it does this only once per terminal type!
2481
2482 The first time you load a given terminal type from your termcap
2483 database, the library initialization code will automatically write it
2484 in terminfo format to a subdirectory under $HOME/.terminfo.  After
2485 that, the initialization code will find it there and do a (much
2486 faster) terminfo fetch.
2487
2488 Usually, all this means is that your home directory will silently grow
2489 an invisible .terminfo subdirectory which will get filled in with
2490 terminfo descriptions of terminal types as you invoke them.  If anyone
2491 ever installs a global terminfo tree on your system, this will quietly
2492 stop happening and your $HOME/.terminfo will become redundant.
2493
2494 The objective of all this logic is to make converting from BSD termcap
2495 as painless as possible without slowing down your application (termcap
2496 compilation is expensive).
2497
2498 If you don't have a TERMCAP variable or custom personal termcap file,
2499 you can skip the rest of this dissertation.
2500
2501 If you *do* have a TERMCAP variable and/or a custom personal termcap file
2502 that defines a terminal type, that definition will stop being visible
2503 to this application after the first time you run it, because it will
2504 instead see the terminfo entry that it wrote to $HOME/terminfo the
2505 first time around.
2506
2507 Subsequently, editing the TERMCAP variable or personal TERMCAP file
2508 will have no effect unless you explicitly remove the terminfo entry
2509 under $HOME/terminfo.  If you do that, the entry will be recompiled
2510 from your termcap resources the next time it is invoked.
2511
2512 To avoid these complications, use infocmp(1) and tic(1) to edit the
2513 terminfo directory directly.
2514
2515 ------------------------------- CUT HERE --------------------------------
2516
2517 USING GPM:
2518 ---------
2519         Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
2520         which is used with Linux console.  Be aware that GPM is commonly
2521         installed as a shared library which contains a wrapper for the curses
2522         wgetch() function (libcurses.o).  Some integrators have simplified
2523         linking applications by combining all or part of libcurses.so into the
2524         libgpm.so file, producing symbol conflicts with ncurses (specifically
2525         the wgetch function).  This was originally the BSD curses, but
2526         generally whatever curses library exists on the system.
2527
2528         You may be able to work around this problem by linking as follows:
2529
2530                 cc -o foo foo.o -lncurses -lgpm -lncurses
2531
2532         but the linker may not cooperate, producing mysterious errors.
2533         See the FAQ, as well as the discussion under the --with-gpm option:
2534
2535         https://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
2536
2537
2538 BUILDING WITH A CROSS-COMPILER:
2539 ------------------------------
2540         Ncurses can be built with a cross-compiler.  Some parts must be built
2541         with the host's compiler since they are used for building programs
2542         (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables
2543         that are compiled into the ncurses library.  The essential thing to do
2544         is set the BUILD_CC environment variable to your host's compiler, and
2545         run the configure script configuring for the cross-compiler.
2546
2547         The configure options --with-build-cc, etc., are provided to make this
2548         simpler.  Since make_hash and make_keys use only ANSI C features, it
2549         is normally not necessary to provide the other options such as
2550         --with-build-libs, but they are provided for completeness.
2551
2552         Note that all of the generated source-files which are part of ncurses
2553         will be made if you use
2554
2555                 make sources
2556
2557         This would be useful in porting to an environment which has little
2558         support for the tools used to generate the sources, e.g., sed, awk and
2559         Bourne-shell.
2560
2561         When ncurses has been successfully cross-compiled, you may want to use
2562         "make install" (with a suitable target directory) to construct an
2563         install tree.  Note that in this case (as with the --with-fallbacks
2564         option), ncurses uses the development platform's tic to do the "make
2565         install.data" portion.
2566
2567         The system's tic program is used to install the terminal database,
2568         even for cross-compiles.  For best results, the tic program should be
2569         from the most current version of ncurses.
2570
2571         NOTE:  the system's tic program may use a different terminfo database
2572         format than the target system.  For instance, as described in term(5),
2573         the conventional terminfo layout uses a directory hierarchy with one
2574         letter names, while some platforms use two-letter names to work with
2575         case-insensitive filesystems.  The configure script searches for a tic
2576         program using the AC_CHECK_TOOL macro, which will prefer programs
2577         using the canonical host prefix in their name.  You can use this fact
2578         to provide a cross-compiler support utility tic, otherwise you can
2579         override the configure script's choice using --with-tic-path
2580
2581
2582 BUG REPORTS:
2583 -----------
2584         Send any feedback to the ncurses mailing list at
2585         bug-ncurses@gnu.org. To subscribe send mail to
2586         bug-ncurses-request@gnu.org with body that reads:
2587         subscribe ncurses <your-email-address-here>
2588
2589         The Hacker's Guide in the doc directory includes some guidelines
2590         on how to report bugs in ways that will get them fixed most quickly.
2591
2592 -- vile:txtmode fc=78