INSTALL revision 62449
1-- $Id: INSTALL,v 1.36 2000/05/06 17:30:14 tom Exp $
2---------------------------------------------------------------------
3             How to install Ncurses/Terminfo on your system
4---------------------------------------------------------------------
5
6    ************************************************************
7    * READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. *
8    ************************************************************
9
10You should be reading the file INSTALL in a directory called ncurses-d.d, where
11d.d is the current version number.  There should be several subdirectories,
12including `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs',
13and `test'.  See the README file for a roadmap to the package.
14
15If you are a Linux or FreeBSD or NetBSD distribution integrator or packager,
16please read and act on the section titled IF YOU ARE A SYSTEM INTEGRATOR
17below.
18
19If you are converting from BSD curses and do not have root access, be sure
20to read the BSD CONVERSION NOTES section below.
21
22If you are using a version of XFree86 xterm older than 3.1.2F, see the section
23on RECENT XTERM VERSIONS below.
24
25If you are trying to build GNU Emacs using ncurses for terminal support,
26read the USING NCURSES WITH EMACS section below.
27
28If you are trying to build applications using gpm with ncurses,
29read the USING NCURSES WITH GPM section below.
30
31If you are trying to build Elvis using ncurses for terminal support,
32read the USING NCURSES WITH ELVIS section below.
33
34If you are running over the Andrew File System see the note below on
35USING NCURSES WITH AFS.
36
37If you want to build the Ada95 binding, go to the Ada95 directory and
38follow the instructions there.  The Ada95 binding is not covered below.
39
40If you are using anything but (a) Linux, or (b) one of the 4.4BSD-based
41i386 Unixes, go read the Portability section in the TO-DO file before you
42do anything else.
43
44
45REQUIREMENTS:
46------------
47
48You will need the following in order to build and install ncurses under UNIX:
49
50	* ANSI C compiler  (gcc is recommended)
51	* sh               (bash will do)
52	* awk              (mawk or gawk will do)
53	* sed
54	* BSD or System V style install (a script is enclosed)
55
56Ncurses has been also built in the OS/2 EMX environment.
57
58
59INSTALLATION PROCEDURE:
60----------------------
61
621.  First, decide whether you want ncurses to replace your existing library (in
63    which case you'll need super-user privileges) or be installed in parallel
64    with it.
65
66    The --prefix option to configure changes the root directory for installing
67    ncurses.  The default is in subdirectories of /usr/local.  Use
68    --prefix=/usr to replace your default curses distribution.  This is the
69    default for Linux and BSD/OS users.
70
71    The package gets installed beneath the --prefix directory as follows:
72
73    In $(prefix)/bin:          tic, infocmp, captoinfo, tset,
74    				reset, clear, tput, toe
75    In $(prefix)/lib:          libncurses*.* libcurses.a
76    In $(prefix)/share/terminfo: compiled terminal descriptions
77    In $(prefix)/include:      C header files
78    Under $(prefix)/man:       the manual pages
79
80    Note however that the configure script attempts to locate previous
81    installation of ncurses, and will set the default prefix according to where
82    it finds the ncurses headers.
83
842.  Type `./configure' in the top-level directory of the distribution to
85    configure ncurses for your operating system and create the Makefiles.
86    Besides --prefix, various configuration options are available to customize
87    the installation; use `./configure --help' to list the available options.
88
89    If your operating system is not supported, read the PORTABILITY section in
90    the file ncurses/README for information on how to create a configuration
91    file for your system.
92
93    The `configure' script generates makefile rules for one or more object
94    models and their associated libraries:
95
96	libncurses.a (normal)
97
98	libcurses.a (normal, a link to libncurses.a)
99		This gets left out if you configure with --disable-overwrite.
100
101	libncurses.so (shared)
102
103	libncurses_g.a (debug)
104
105	libncurses_p.a (profile)
106
107    If you do not specify any models, the normal and debug libraries will be
108    configured.  Typing `configure' with no arguments is equivalent to:
109
110    	./configure --with-normal --with-debug --enable-overwrite
111
112    Typing
113
114    	./configure --with-shared
115
116    makes the shared libraries the default, resulting in
117
118    	./configure --with-shared --with-normal --with-debug --enable-overwrite
119
120    If you want only shared libraries, type
121
122    	./configure --with-shared --without-normal --without-debug
123
124    Rules for generating shared libraries are highly dependent upon the choice
125    of host system and compiler.  We've been testing shared libraries on Linux
126    and SunOS with gcc, but more work needs to be done to make shared libraries
127    work on other systems.
128
129    You can make curses and terminfo fall back to an existing file of termcap
130    definitions by configuring with --enable-termcap.  If you do this, the
131    library will search /etc/termcap before the terminfo database, and will
132    also interpret the contents of the TERM environment variable.  See the
133    section BSD CONVERSION NOTES below.
134
1353.  Type `make'.  Ignore any warnings, no error messages should be produced.
136    This should compile the ncurses library, the terminfo compiler tic(1),
137    captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1)
138    programs (see the man pages for explanation of what they do), some test
139    programs, and the panels, menus, and forms libraries.
140
1414.  Run ncurses and several other test programs in the test directory to
142    verify that ncurses functions correctly before doing an install that
143    may overwrite system files.  Read the file test/README for details on
144    the test programs.
145
146    NOTE: You must have installed the terminfo database, or set the
147    environment variable $TERMINFO to point to a SVr4-compatible terminfo
148    database before running the test programs.  Not all vendors' terminfo
149    databases are SVr4-compatible, but most seem to be.  Exceptions include
150    DEC's Digital Unix (formerly known as OSF/1).
151
152    The ncurses program is designed specifically to test the ncurses library.
153    You can use it to verify that the screen highlights work correctly, that
154    cursor addressing and window scrolling works OK, etc.
155
1565.  Once you've tested, you can type `make install' to install libraries,
157    the programs, the terminfo database and the man pages.  Alternately, you
158    can type `make install' in each directory you want to install.  In the
159    top-level directory, you can do a partial install using these commands:
160
161	'make install.progs'    installs tic, infocmp, etc...
162  	'make install.includes' installs the headers.
163  	'make install.libs'     installs the libraries (and the headers).
164  	'make install.data'     installs the terminfo data. (Note: `tic' must
165	                        be installed before the terminfo data can be
166			        compiled).
167	'make install.man'      installs the man pages.
168
169  ############################################################################
170  #     CAVEAT EMPTOR: `install.data' run as root will NUKE any existing     #
171  #  terminfo database. If you have any custom or unusual entries SAVE them  #
172  #  before you install ncurses.  I have a file called terminfo.custom for   #
173  #  this purpose.  Don't forget to run tic on the file once you're done.    #
174  ############################################################################
175
176    The terminfo(5) manual page wants to be preprocessed with tbl(1) before
177    being formatted by nroff(1).  Modern man(1) implementations tend to do
178    this by default, but you may want to look at your version's man page
179    to be sure.
180
181    If the system already has a curses library that you need to keep using
182    for some bizarre binary-compatibility reason, you'll need to distinguish
183    between it and ncurses. If ncurses is installed outside the standard
184    directories (/usr/include and /usr/lib) then all your users will need
185    to use the -I option to compile programs and -L to link them.
186
187    If you have BSD curses installed in your system and you accidentally
188    compile using its curses.h you'll end up with a large number of
189    undefined symbols at link time. _waddbytes is one of them.
190
191    IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory
192    and run the `capconvert' script.  This script will deduce various things
193    about your environment and use them to build you a private terminfo tree,
194    so you can use ncurses applications.
195
196    If more than one user at your site does this, the space for the duplicate
197    trees is wasted.  Try to get your site administrators to install a system-
198    wide terminfo tree instead.
199
200    See the BSD CONVERSION NOTES section below for a few more details.
201
2026.  The c++ directory has C++ classes that are built on top of ncurses and
203    panels.  You must have c++ (and its libraries) installed before you can
204    compile and run the demo.
205
206    Use --without-cxx-binding to tell configure to not build the C++ bindings
207    and demo.
208
209    If you do not have C++, you must use the --without-cxx option to tell
210    the configure script to not attempt to determine the type of 'bool'
211    which may be supported by C++.  IF YOU USE THIS OPTION, BE ADVISED THAT
212    YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++.
213
2147.  If you're running an older Linux, you must either (a) tell Linux that the
215    console terminal type is `linux' or (b) make a link to or copy of the
216    linux entry in the appropriate place under your terminfo directory, named
217    `console'.  All 1.3 and many 1.2 distributions (including Yggdrasil and
218    Red Hat) already have the console type set to `linux'.
219
220    The way to change the wired-in console type depends on the configuration
221    of your system. This may involve editing /etc/inittab, /etc/ttytype,
222    /etc/profile and other such files.
223
224    Warning: this is not for the fainthearted, if you mess up your console
225    getty entries you can make your system unusable!  However, if you are
226    a distribution maker, this is the right thing to do (see the note for
227    integrators near the end of this file).
228
229    The easier way is to link or copy l/linux to c/console under your terminfo
230    directory.  Note: this will go away next time you do `make install.data'
231    and you'll have to redo it. There is no need to have entries for all
232    possible screen sizes, ncurses will figure out the size automatically.
233
234
235COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
236--------------------------------------------
237
238    Because ncurses implements the X/Open Curses Specification, its interface
239    is fairly stable.  That does not mean the interface does not change.
240    Changes are made to the documented interfaces when we find differences
241    between ncurses and X/Open or implementations which they certify (such as
242    Solaris).  We add extensions to those interfaces to solve problems not
243    addressed by the original curses design, but those must not conflict with
244    the X/Open documentation.
245
246    Here are some of the major interface changes, and related problems which
247    you may encounter when building a system with different versions of
248    ncurses:
249
250    5.0
251    	Interface changes:
252
253	+ implemented the wcolor_set() and slk_color() functions.
254
255	+ move macro winch to a function, to hide details of struct ldat
256
257	+ corrected prototypes for slk_* functions, using chtype rather than
258	  attr_t.
259
260	+ the slk_attr_{set,off,on} functions need an additional void*
261	  parameter according to XSI.
262
263	+ modified several prototypes to correspond with 1997 version of X/Open
264	  Curses:  [w]attr_get(), [w]attr_set(), border_set() have different
265	  parameters.  Some functions were renamed or misspelled: 
266	  erase_wchar(), in_wchntr(), mvin_wchntr().  Some developers have used
267	  attr_get().
268
269	Added extensions:  keybound(), curses_version().
270
271	Terminfo database changes:
272
273	+ change translation for termcap 'rs' to terminfo 'rs2', which is
274	  the documented equivalent, rather than 'rs1'.
275
276	The problems are subtler in recent releases.
277
278	a) This release provides users with the ability to define their own
279	   terminal capability extensions, like termcap.  To accomplish this,
280	   we redesigned the TERMTYPE struct (in term.h).  Very few
281	   applications use this struct.  They must be recompiled to work with
282	   the 5.0 library.
283
284	a) If you use the extended terminfo names (i.e., you used configure
285	   --enable-tcap-names), the resulting terminfo database can have some
286	   entries which are not readable by older versions of ncurses.  This
287	   is a bug in the older versions:
288
289	   + the terminfo database stores booleans, numbers and strings in
290	     arrays.  The capabilities that are listed in the arrays are
291	     specified by X/Open.  ncurses recognizes a number of obsolete and
292	     extended names which are stored past the end of the specified
293	     entries.
294
295	   + a change to read_entry.c in 951001 made the library do an lseek()
296	     call incorrectly skipping data which is already read from the
297	     string array.  This happens when the number of strings in the
298	     terminfo data file is greater than STRCOUNT, the number of
299	     specified and obsolete or extended strings.
300
301	   + as part of alignment with the X/Open final specification, in the
302	     990109 patch we added two new terminfo capabilities:
303	     set_a_attributes and set_pglen_inch).  This makes the indices for
304	     the obsolete and extended capabilities shift up by 2.
305
306	   + the last two capabilities in the obsolete/extended list are memu
307	     and meml, which are found in most terminfo descriptions for xterm.
308
309	     When trying to read this terminfo entry, the spurious lseek()
310	     causes the library to attempt to read the final portion of the
311	     terminfo data (the text of the string capabilities) 4 characters
312	     past its starting point, and reads 4 characters too few.  The
313	     library rejects the data, and applications are unable to
314	     initialize that terminal type.
315
316	   FIX: remove memu and meml from the xterm description.  They are
317	   obsolete, not used by ncurses.  (It appears that the feature was
318	   added to xterm to make it more like hpterm).
319
320	   This is not a problem if you do not use the -x option of tic to
321	   create a terminfo database with extended names.  Note that the
322	   user-defined terminal capabilities are not affected by this bug,
323	   since they are stored in a table after the older terminfo data ends,
324	   and are invisible to the older libraries.
325
326	c) Some developers did not wish to use the C++ binding, and used the
327	   configure --without-cxx option.  This causes problems if someone
328	   uses the ncurses library from C++ because that configure test
329	   determines the type for C++'s bool and makes ncurses match it, since
330	   both C++ and curses are specified to declare bool.  Calling ncurses
331	   functions with the incorrect type for bool will cause execution
332	   errors.  In 5.0 we added a configure option "--without-cxx-binding"
333	   which controls whether the binding itself is built and installed.
334
335    4.2
336    	Interface changes:
337
338	+ correct prototype for termattrs() as per XPG4 version 2.
339
340	+ add placeholder prototypes for color_set(), erasewchar(),
341	  term_attrs(), wcolor_set() as per XPG4 version 2.
342
343	+ add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in
344	  SVr4 headers.
345
346	New extensions: keyok() and define_key().
347
348	Terminfo database changes:
349
350	+ corrected definition in curses.h for ACS_LANTERN, which was 'I'
351	  rather than 'i'.
352
353    4.1 (May 15, 1997)
354
355	We added these extensions:  use_default_colors().  Also added
356	configure option --enable-const, to support the use of const where
357	X/Open should have, but did not, specify.
358
359	The terminfo database content changed the representation of color for
360	most entries that use ANSI colors.  SVr4 curses treats the setaf/setab
361	and setf/setb capabilities differently, interchanging the red/blue
362	colors in the latter.
363
364    4.0 (December 24, 1996)
365
366	We bumped to version 4.0 because the newly released dynamic loader
367	(ld.so.1.8.5) on Linux did not load shared libraries whose ABI and REL
368	versions were inconsistent.  At that point, ncurses ABI was 3.4 and the
369	REL was 1.9.9g, so we made them consistent.
370
371    1.9.9g (December 1, 1996)
372
373    	This fixed most of the problems with 1.9.9e, and made these interface
374	changes:
375
376	+ remove tparam(), which had been provided for compatibility with
377	  some termcap.  tparm() is standard, and does not conflict with
378	  application's fallback for missing tparam().
379
380	+ turn off hardware echo in initscr().  This changes the sense of the
381	  echo() function, which was initialized to echoing rather than
382	  nonechoing (the latter is specified).  There were several other
383	  corrections to the terminal I/O settings which cause applications to
384	  behave differently.
385
386	+ implemented several functions (such as attr_on()) which were
387	  available only as macros.
388
389	+ corrected several typos in curses.h.in (i.e., the mvXXXX macros).
390
391	+ corrected prototypes for delay_output(),
392	  has_color, immedok() and idcok().
393
394	+ corrected misspelled getbkgd().  Some applications used the
395	  misspelled name.
396
397	+ added _yoffset to WINDOW.  The size of WINDOW does not impact
398	  applications, since they use only pointers to WINDOW structs.
399
400	These changes were made to the terminfo database:
401
402	+ removed boolean 'getm' which was available as an extended name.
403
404	We added these extensions: wresize(), resizeterm(), has_key() and
405	mcprint().
406
407    1.9.9e (March 24, 1996)
408
409	not recommended (a last-minute/untested change left the forms and
410    	menus libraries unusable since they do not repaint the screen).
411	Foreground/background colors are combined incorrectly, working properly
412	only on a black background.  When this was released, the X/Open
413	specification was available only in draft form.
414
415	Some applications (such as lxdialog) were "fixed" to work with the
416	incorrect color scheme.
417
418
419IF YOU ARE A SYSTEM INTEGRATOR:
420------------------------------
421
422    Beginning with 1.9.9, the ncurses distribution includes both a tset
423    utility and /usr/share/tabset directory.  If you are installing ncurses,
424    it is no longer either necessary or desirable to install tset-jv.
425
426    Configuration and Installation:
427
428	Configure with --prefix=/usr to make the install productions put
429	libraries and headers in the correct locations (overwriting any
430	previous curses libraries and headers).  This will put the terminfo
431	hierarchy under /usr/share/terminfo; you may want to override this with
432	--datadir=/usr/share/misc; terminfo and tabset are installed under the
433	data directory.
434
435	Please configure the ncurses library in a pure-terminfo mode; that
436	is, with the --disable-termcap option.   This will make the ncurses
437	library smaller and faster. The ncurses library includes a termcap
438	emulation that queries the terminfo database, so even applications
439	that use raw termcap to query terminal characteristics will win
440	(providing you recompile and relink them!).
441
442	If you must configure with termcap fallback enabled, you may also
443	wish to use the --enable-getcap option.  This option speeds up
444	termcap-based startups, at the expense of not allowing personal
445	termcap entries to reference the terminfo tree.  See the code in
446	ncurses/tinfo/read_termcap.c for details.
447
448	Note that if you have $TERMCAP set, ncurses will use that value
449	to locate termcap data.  In particular, running from xterm will
450	set $TERMCAP to the contents of the xterm's termcap entry.
451	If ncurses sees that, it will not examine /etc/termcap.
452
453    Keyboard Mapping:
454
455	The terminfo file assumes that Shift-Tab generates \E[Z (the ECMA-48
456	reverse-tabulation sequence) rather than ^I.  Here are the loadkeys -d
457	mappings that will set this up:
458
459		keycode  15 = Tab             Tab
460			alt     keycode  15 = Meta_Tab
461			shift	keycode  15 = F26
462		string F26 ="\033[Z"
463
464    Naming the Console Terminal
465
466	In various Linuxes (and possibly elsewhere) there has been a practice
467	of designating the system console driver type as `console'.  Please
468	do not do this any more!  It complicates peoples' lives, because it
469	can mean that several different terminfo entries from different
470	operating systems all logically want to be called `console'.
471
472	Please pick a name unique to your console driver and set that up
473	in the /etc/inittab table or local equivalent.  Send the entry to the
474	terminfo maintainer (listed in the misc/terminfo file) to be included
475	in the terminfo file, if it's not already there.  See the
476	term(7) manual page included with this distribution for more on
477	conventions for choosing type names.
478
479	Here are some recommended primary console names:
480
481		linux	-- Linux console driver
482		freebsd	-- FreeBSD
483		netbsd	-- NetBSD
484		bsdos	-- BSD/OS
485
486	If you are responsible for integrating ncurses for one of these
487	distribution, please either use the recommended name or get back
488	to us explaining why you don't want to, so we can work out nomenclature
489	that will make users' lives easier rather than harder.
490
491
492RECENT XTERM VERSIONS:
493---------------------
494
495	The terminfo database file included with this distribution assumes you
496	are running an XFree86 xterm based on X11R6 (i.e., xterm-r6).  The
497	earlier X11R5 entry (xterm-r5) is provided as well.
498
499	If you are running XFree86 version 3.2 (actually 3.1.2F and up), you
500	should consider using the xterm-xf86-v32 (or later, the most recent
501	version is always named "xterm-xfree86") entry, which adds ANSI color
502	and the VT220 capabilities which have been added in XFree86.  If you
503	are running a mixed network, however, where this terminal description
504	may be used on an older xterm, you may have problems, since
505	applications that assume these capabilities will produce incorrect
506	output on the older xterm (e.g., highlighting is not cleared).
507
508
509CONFIGURING FALLBACK ENTRIES:
510----------------------------
511
512	In order to support operation of ncurses programs before the terminfo
513	tree is accessible (that is, in single-user mode or at OS installation
514	time) the ncurses library can be compiled to include an array of
515	pre-fetched fallback entries.
516
517	These entries are checked by setupterm() only when the conventional
518	fetches from the terminfo tree and the termcap fallback (if configured)
519	have been tried and failed.  Thus, the presence of a fallback will not
520	shadow modifications to the on-disk entry for the same type, when that
521	entry is accessible.
522
523	By default, there are no entries on the fallback list.  After you
524	have built the ncurses suite for the first time, you can change
525	the list (the process needs infocmp(1)).  To do so, use the script
526	MKfallback.sh.  A configure script option --with-fallbacks does this
527	(it accepts a comma-separated list of the names you wish, and does
528	not require a rebuild).
529
530	If you wanted (say) to have linux, vt100, and xterm fallbacks, you
531	would use the commands
532
533		cd ncurses;
534		MKfallback.sh linux vt100 xterm >fallback.c
535
536	Then just rebuild and reinstall the library as you would normally.
537	You can restore the default empty fallback list with
538
539		MKfallback.sh >fallback.c
540
541	The overhead for an empty fallback list is one trivial stub function.
542	Any non-empty fallback list is const-ed and therefore lives in sharable
543	text space.  You can look at the comment trailing each initializer in
544	the generated ncurses/fallback.c file to see the core cost of the
545	fallbacks.  A good rule of thumb for modern vt100-like entries is that
546	each one will cost about 2.5K of text space.
547
548
549BSD CONVERSION NOTES:
550--------------------
551
552	If you need to support really ancient BSD programs, you probably
553	want to configure with the --enable-bsdpad option.  What this does
554	is enable code in tputs() that recognizes a numeric prefix on a
555	capability as a request for that much trailing padding in milliseconds.
556	There are old BSD programs that do things like tputs("50").
557
558	(If you are distributing ncurses as a support-library component of
559	an application you probably want to put the remainder of this section
560	in the package README file.)
561
562        The following note applies only if you have configured ncurses with
563	--enable-termcap.
564
565------------------------------- CUT HERE --------------------------------
566
567If you are installing this application privately (either because you
568have no root access or want to experiment with it before doing a root
569installation), there are a couple of details you need to be aware of.
570They have to do with the ncurses library, which uses terminfo rather
571than termcap for describing terminal characteristics.
572
573Though the ncurses library is terminfo-based, it will interpret your
574TERMCAP variable (if present), any local termcap files you reference
575through it, and the system termcap file.  However, in order to avoid
576slowing down your application startup, it will only do this once per
577terminal type!
578
579The first time you load a given terminal type from your termcap
580database, the library initialization code will automatically write it
581in terminfo format to a subdirectory under $HOME/.terminfo.  After
582that, the initialization code will find it there and do a (much
583faster) terminfo fetch.
584
585Usually, all this means is that your home directory will silently grow
586an invisible .terminfo subdirectory which will get filled in with
587terminfo descriptions of terminal types as you invoke them.  If anyone
588ever installs a global terminfo tree on your system, this will quietly
589stop happening and your $HOME/.terminfo will become redundant.
590
591The objective of all this logic is to make converting from BSD termcap
592as painless as possible without slowing down your application (termcap
593compilation is expensive).
594
595If you don't have a TERMCAP variable or custom personal termcap file,
596you can skip the rest of this dissertation.
597
598If you *do* have a TERMCAP variable and/or a custom personal termcap file
599that defines a terminal type, that definition will stop being visible
600to this application after the first time you run it, because it will
601instead see the terminfo entry that it wrote to $HOME/terminfo the
602first time around.
603
604Subsequently, editing the TERMCAP variable or personal TERMCAP file
605will have no effect unless you explicitly remove the terminfo entry
606under $HOME/terminfo.  If you do that, the entry will be recompiled
607from your termcap resources the next time it is invoked.
608
609To avoid these complications, use infocmp(1) and tic(1) to edit the
610terminfo directory directly.
611
612------------------------------- CUT HERE --------------------------------
613
614USING NCURSES WITH AFS:
615	AFS treats each directory as a separate logical filesystem, you
616	can't hard-link across them.  The --enable-symlinks option copes
617	with this by making tic use symbolic links.
618
619USING NCURSES WITH EMACS:
620	GNU Emacs has its own termcap support.  By default, it uses a mixture
621	of those functions and code linked from the host system's libraries.
622	You need to foil this and shut out the GNU termcap library entirely.
623
624	In order to do this, hack the Linux config file (s/linux.h) to contain
625	a #define TERMINFO and set the symbol LIBS_TERMCAP to "-lncurses".
626
627	We have submitted such a change for the 19.30 release, so it may
628	already be applied in your sources -- check for the #define TERMINFO.
629
630USING NCURSES WITH GPM:
631	Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
632	which is used on Linux console.  Be aware that GPM is commonly
633	installed as a shared library which contains a wrapper for the curses
634	wgetch() function (libcurses.o).  Some integrators have simplified
635	linking applications by combining all of libcurses.so (the BSD curses)
636	into the libgpm.so file, producing symbol conflicts with ncurses.  You
637	may be able to work around this problem by linking as follows:
638
639		cc -o foo foo.o -lncurses -lgpm -lncurses
640
641	but the linker may not cooperate, producing mysterious errors.
642	A patched version of gpm is available:
643
644		dickey.his.com:/ncurses/gpm-1.10-970125.tar.gz
645
646	This patch is incorporated in gpm 1.12; however some integrators
647	are slow to update this library.
648
649USING NCURSES WITH ELVIS:
650	To use ncurses as the screen-painting library for Elvis, apply the
651	following patch to the Elvis curses
652
653*** curses.c.orig       Sun Jun 26 05:48:23 1994
654--- curses.c    Sun Feb 11 16:50:41 1996
655***************
656*** 986,992 ****
657  {
658        if (has_IM)
659                do_IM();
660!       do_IC();
661        qaddch(ch);
662        if (has_EI)
663                do_EI();
664--- 986,995 ----
665  {
666        if (has_IM)
667                do_IM();
668!#ifdef NCURSES_VERSION
669!       else	/* ncurses does insertion in a slightly nonstandard way */
670!#endif
671!               do_IC();
672        qaddch(ch);
673        if (has_EI)
674                do_EI();
675
676This patch is for elvis-1.8pl4 but it can even be used for elvis-1.8pl3 with
677an offset of -11 lines.
678
679BUGS:
680	Send any feedback to the ncurses mailing list at
681	bug-ncurses@gnu.org. To subscribe send mail to
682	bug-ncurses-request@gnu.org with body that reads:
683	subscribe ncurses <your-email-address-here>
684
685	The Hacker's Guide in the misc directory includes some guidelines
686	on how to report bugs in ways that will get them fixed most quickly.
687