xref: /netbsd-src/external/bsd/nvi/dist/build.unix/README (revision dbd550ed1a6686d6600f748306f9cc03d8cd4c94)
1#	Id: README,v 8.29 2001/05/13 20:52:36 skimo Exp  (Berkeley) Date: 2001/05/13 20:52:36
2
3Nvi uses the GNU autoconf program for configuration and compilation.  You
4should enter:
5
6	../dist/configure
7	make
8
9and nvi will configure the system and build one or two binaries:  nvi and
10tknvi.  You can use any path to the configure script, e.g., to build for
11an x86 architecture, I suggest that you do:
12
13	mkdir build.x86
14	cd build.x86
15	../dist/configure
16	make
17
18There are options that you can specify to the configure command.  See
19the next section for a description of these options.
20
21If you want to rebuild or reconfigure nvi, for example, because you change
22your mind as to the curses library that you want to use, create a new
23directory and reconfigure it using "configure" and whatever options you
24choose, don't try to selectively edit the files.
25
26By default, nvi is installed as "vi", with hard links to "ex" and "view".
27To install them using different names, use the configure program options.
28For example, to install them as "nvi", "nex" and "nview", use:
29
30	configure --program-prefix=n
31
32See the section below on installation for details.
33
34Note, if you're building nvi on a LynxOS system, you should read the
35README.LynxOS file in this directory for additional build instructions
36that are specific to that operating system.
37
38If you have trouble with this procedure, send email to the addresses
39listed in ../README.  In that email, please provide a complete script
40of the output for all of the above commands that you entered.
41
42=-=-=-=-=-=-=
43NVI'S OPTIONS TO THE CONFIGURE PROGRAM
44=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
45
46There are many options that you can enter to the configuration program.
47To see a complete list of the options, enter "configure --help".  Only
48a few of them are nvi specific.  These options are as follows:
49
50  --disable-re            DON'T use the nvi-provided RE routines.
51  --enable-debug          Build a debugging version.
52  --enable-perlinterp     Include a Perl interpreter in vi.
53  --enable-tclinterp      Include a Tk/Tcl interpreter in vi.
54  --enable-gtk		  Build a gtk front-end.
55  --enable-motif	  Build a motif front-end.
56  --enable-threads	  Turn on thread support.
57  --enable-widechar	  Build a wide character aware vi (experimental).
58  --with-curses=DIR       Path to curses installation.
59  --with-db3=db3prefix    Path to db3 installation.
60  --enable-dynamic-loading Load DB 3 dynamically.
61
62disable-re:
63	By default, nvi loads its own versions of the POSIX 1003.2 Regular
64	Expression routines (which are Henry Spencer's implementation).
65	If your C library contains an implementation of the POSIX 1003.2
66	RE routines (note, this is NOT the same as the historic UNIX RE
67	routines), and you want to use them instead, enter:
68
69	--disable-re
70
71	as an argument to configure, and the RE routines will be taken
72	from whatever libraries you load.  Please ensure that your RE
73	routines implement Henry Spencer's extensions for doing vi-style
74	"word" searches.
75
76enable-debug:
77	If you want to build nvi with no optimization (i.e. without -O
78	as a compiler flag), with -g as a compiler flag, and with DEBUG
79	defined during compilation, enter:
80
81	--enable-debug
82
83	as an argument to configure.
84
85enable-perlinterp:
86	If you have the Perl 5 libraries and you want to compile in the
87	Perl interpreter, enter:
88
89	--enable-perlinterp
90
91	as an argument to configure.  (Note: this is NOT possible with
92	Perl 4, or even with Perl 5 versions earlier than 5.002.)
93
94enable-tclinterp:
95	If you have the Tk/Tcl libraries and you want to compile in the
96	Tcl/Tk interpreter, enter:
97
98	--enable-tclinterp
99
100	as an argument to configure.  If your Tk/Tcl include files and
101	libraries aren't in the standard library and include locations,
102	see the next section of this README file for more information.
103
104enable-gtk:
105	If you have the Gtk libraries and you want to build the Gtk
106	nvi front-end, enter:
107
108	--enable-gtk
109
110	as an argument to configure.  If your Gtk include files and
111	libraries aren't in the standard library and include locations,
112	see the next section of this README file for more information.
113	See also the enable-threads option.
114
115enable-motif:
116	If you have the Motif libraries and you want to build the Motif
117	nvi front-end, enter:
118
119	--enable-motif
120
121	as an argument to configure.  If your Motif include files and
122	libraries aren't in the standard library and include locations,
123	see the next section of this README file for more information.
124
125enable-threads:
126	If you want to be able to use multiple windows in the Gtk
127	front-end, you should specify this option.
128
129with-curses:
130	Specifies the path where curses is installed.
131
132with-db3:
133	Specifies the path where DB3 is installed.
134	See README.DB3 for more information about DB3.
135
136enable-dynamic-loading:
137	Dynamically load DB3 library.
138	See README.DB3 for more information about DB3.
139
140enable-widechar:
141	Enables support for wide characters.
142	Note that this is still rather experimental.
143
144	If you try this out on Solaris, you will want to point nvi
145	to the curses in /usr/xpg4/ which is CSI compliant.
146
147=-=-=-=-=-=-=
148ADDING OR CHANGING COMPILERS, OR COMPILE OR LOAD LINE FLAGS
149=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
150
151If you want to use a specific compiler, specify the CC environment
152variable before running configure.  For example:
153
154	env CC=gcc configure
155
156Using anything other than the native compiler will almost certainly
157mean that you'll want to check the compile and load line flags, too.
158
159If you want to specify additional load line flags, specify the ADDLDFLAGS
160environment variable before running configure.  For example:
161
162	env ADDLDFLAGS="-Q" configure
163
164would specify the -Q flag in the load line when the nvi programs are
165loaded.
166
167If you don't want configure to use the default load line flags for the
168system, specify the LDFLAGS environment variable before running configure.
169For example:
170
171	env LDFLAGS="-32" configure
172
173will cause configure to set the load line flags to "-32", and not set
174them based on the current system.
175
176If you want to specify additional compile line flags, specify the
177ADDCPPFLAGS environment variable before running configure.  For example:
178
179	env ADDCPPFLAGS="-I../foo" configure
180
181would cause the compiler to be passed the -I../foo flag when compiling
182test programs during configuration as well as when building nvi object
183files.
184
185If you don't want configure to use the default compile line flags for the
186system, specify the CPPFLAGS environment variable before running configure.
187For example:
188
189	env CPPFLAGS="-I.." configure
190
191will cause configure to use "-I.." as the compile line flags instead of
192the default values.
193
194=-=-=-=-=-=-=
195ADDING LIBRARIES AND INCLUDE FILES
196=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
197
198If the Tk/Tcl or any other include files or libraries are in non-standard
199places on your system, you will need to specify the directory path where
200they can be found.
201
202If you want to specify additional library paths, set the ADDLIBS environment
203variable before running configure.  For example:
204
205	env ADDLIBS="-L/a/b -L/e/f -ldb" configure
206
207would specify two additional directories to search for libraries, /a/b
208and /e/f, and one additional library to load, "db".
209
210If you want to specify additional include paths, specify the ADDCPPFLAGS
211environment variable before running configure.  For example:
212
213	env ADDCPPFLAGS="-I/usr/local/include" LIBS="-ldb" configure
214
215would search /usr/local/include for include files, as well as load the db
216library as described above.
217
218As a final example, let's say that you've downloaded ncurses from the net
219and you've built it in a directory named ncurses which is at the same
220level in the filesystem hierarchy as nvi.  You would enter something like:
221
222	env ADDCPPFLAGS="-I../../ncurses/include" \
223	    ADDLIBS="-L../../ncurses/libraries" configure
224
225to cause nvi to look for the curses include files and the curses library
226in the ncurses environment.
227
228Notes:
229	Make sure that you prepend -L to any library directory names, and
230	that you prepend -I to any include file directory names!  Also,
231	make sure that you quote the paths as shown above, i.e. with
232	single or double quotes around the values you're specifying for
233	ADDCPPFLAGS and ADDLIBS.
234
235	=-=-=-=-=-=
236	You should NOT need to add any libraries or include files to load
237	the Perl5 interpreter.  The configure script will obtain that
238	information directly from the Perl5 program.  This means that the
239	configure script must be able to find perl in its path.  It looks
240	for "perl5" first, and then "perl".  If you're building a Perl
241	interpreter and neither is found, it's a fatal error.
242
243	=-=-=-=-=-=
244	You do not need to specify additional libraries to load Tk/Tcl,
245	Perl or curses, as the nvi configuration script adds the
246	appropriate libraries to the load line whenever you specify
247	--enable-tknvi or other Perl or Tk/Tcl related option, or build
248	the Tk/Tcl or curses version of nvi.  The library names that are
249	automatically loaded are as follows:
250
251	for Perl:	-lperl
252	for Tk/Tcl:	-ltk -ltcl -lm
253	for curses:	-lcurses
254
255	In addition, the configure script loads:
256
257		... the X libraries when loading the Tk/Tcl libraries,
258		    if they exist.
259
260		... the -ltermcap or -ltermlib libraries when loading
261		    any curses library, if they exist.
262
263	=-=-=-=-=-=
264	The env command is available on most systems, and simply sets one
265	or more environment variables before running a command.  If the
266	env command is not available to you, you can set the environment
267	variables in your shell before running configure.  For example,
268	in sh or ksh, you could do:
269
270		ADDLIBS="-L/a/b -L/e/f -ldb" configure
271
272	and in csh or tcsh, you could do:
273
274		setenv ADDLIBS "-L/a/b -L/e/f -ldb"
275		configure
276
277	See your shell manual page for further information.
278
279=-=-=-=-=-=-=
280INSTALLING NVI
281=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
282
283Nvi installs the following files into the following locations, with
284the following default values:
285
286Variables:		Default value:
287prefix			/usr/local
288exec_prefix		$(prefix)
289bindir			$(prefix)/bin
290datadir			$(prefix)/share
291mandir			$(prefix)/man
292
293File(s):		Default location
294----------------------------------------
295vi			$(bindir)/vi
296vi.1			$(mandir)/man1/vi.1
297vi.0			$(mandir)/cat1/vi.0
298Perl scripts		$(datadir)/vi/perl/
299Tcl scripts		$(datadir)/vi/tcl/
300Message Catalogs	$(datadir)/vi/catalog/
301
302Notes:
303	There are two hard links to the vi program, named ex and view.
304	Similarly, there are two hard links to the unformatted vi manual
305	page, named ex.1 and view.1, and two hard links to the formatted
306	manual page, named ex.0 and view.0.  These links are created when
307	the program and man pages are installed.
308
309	If you want to install vi, ex, view and the man pages as nvi, nex,
310	nview, use the configure option --program-prefix=n.  Other, more
311	complex transformations are possible -- use configure --help to
312	see more options.
313
314	To move the entire installation tree somewhere besides /usr/local,
315	change the value of both "exec_prefix" and "prefix".  To move the
316	binaries to a different place, change the value of "bindir".
317	Similarly, to put the datafiles (the message catalogs, Perl and
318	Tcl scripts) or the man pages in a different place, change the
319	value of "datadir" or "mandir".  These values can be changed as
320	part of configuration:
321
322		configure --exec_prefix=/usr/contrib --prefix=/usr/share
323
324	or when doing the install itself:
325
326		make exec_prefix=/usr/contrib prefix=/usr/contrib install
327
328	The datafile directory (e.g., /usr/local/share/vi by default) is
329	completely removed and then recreated as part of the installation
330	process.
331
332=-=-=-=-=-=-=
333NVI AND THE CURSES LIBRARY
334=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
335
336The major portability problem for nvi is selecting a curses library.
337Unfortunately, it is common to find broken versions of curses -- the
338original System V curses was broken, resulting in all vendors whose
339implementations are derived from System V having broken implementations
340in turn.
341
342If you use the vendor's or other curses library, and you see any of the
343following symptoms:
344
345	+ Core dumps in curses routines.
346	+ Missing routines when compiling.
347	+ Repainting the wrong characters on the screen.
348	+ Displaying inverse video in the wrong places.
349	+ Failure to reset your terminal to the correct modes on exit.
350
351you have a broken curses implementation, and you should reconfigure nvi
352to use another curses library.
353
354An alternative for your vendor's curses is ncurses, available from
355ftp://ftp.gnu.org/pub/gnu/ncurses/
356
357One final note.  If you see the following symptoms:
358
359	+ Line-by-line screen repainting instead of scrolling.
360
361it usually means that your termcap or terminfo information is insufficient
362for the terminal.
363