summaryrefslogtreecommitdiff
path: root/doc/install.texi
blob: bf4e2193f114f64a000397be68a9316d58ecacb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
@c Copyright (C) 1992, 93 Free Software Foundation.
@c This is part of the GNU font utilities manual.
@c For copying conditions, see the file fontutil.texi.

@node Installation
@chapter Installation

@cindex installation
@cindex configuration

@xref{Prereqs}, for what you need to have installed before you can
compile these programs.

After that, here's what to do:

@enumerate

@item
Run @code{sh configure} in the top-level directory.  This tries to figure
out system dependencies and the installation prefix.
@xref{configure, , The @code{configure} script, kpathsea, Kpathsearch
library}, for options and other information about @code{configure}.

@flindex GNUmakefile@r{, editing}
@flindex include/c-auto.h@r{, editing}
@cindex search paths, defining default
@item
If necessary, edit the paths or other definitions in the top-level
@file{GNUmakefile} and in @file{include/c-auto.h}.

@item
Run GNU make.  For example, if it's installed as @file{make}, just type
@samp{make} in the top-level directory.  If all goes well, this will
compile all the programs.

@item
Install the programs and supporting data files with @code{make install}.

@end enumerate

If you encounter problems anywhere along the line, let us know.  Known
problems are listed below (@pxref{Problems}).
@xref{Bugs}, for details on how to submit a useful bug report.

@menu
* Prereqs::                     What's needed before installation.
* Problems::                    Known trouble.
@end menu


@node Prereqs
@section Prerequisites

@cindex prerequisites to compilation

To compile and use these programs, the following are necessary:

@itemize @bullet

@pindex gcc
@cindex GNU C compiler
@item
The GNU C compiler, version 1.40 or newer.

@cindex GNU make
@pindex make
@item
GNU Make; probably any version newer than 3.50 or so will do.

@cindex X11 libraries
@cindex libraries, X11
@item
X11R4 or R5 unshared libraries and headers.  These are only necessary to
run XBfe (@pxref{XBfe}) or for Limn (@pxref{Limn}) to display its
results online.  (You also need an X11 server, naturally.)  You might be
able to compile using the X11 shared libraries, but we haven't tried
that.

@pindex gftopk
@pindex pltotf
@cindex Metafont
@cindex @TeX{}
@item
To make any substantial use of the fonts you create, you will probably
need @TeX{}, Metafont, and their friends, especially @code{PLtoTF} and
@code{GFtoPK}.

@cindex Ghostscript
@pindex gs
@item
Ghostscript, version 2.4 or newer.
You only need this if you want to use GSrenderfont or BZRedit.

@pindex gawk @r{prerequisite to GSrenderfont}
@item
The GNU Awk program, @code{gawk}.  This is only needed if you want to
use GSrenderfont.

@end itemize

See the section below for information on how to get all these programs.

@menu
* Archives::                    Where to find programs.
@end menu


@node Archives
@subsection Archives

@cindex software archives
@cindex ftp archives
@cindex archives, software

@cindex GNU software, obtaining
@flindex prep.ai.mit.edu
The canonical source for all GNU software, including the GNU C compiler,
GNU make, and Ghostscript, is @file{prep.ai.mit.edu:pub/gnu}.  That
directory is replicated at many other sites around the world, including:

@table @asis

@item United States:
@example
wuarchive.wustl.edu, ftp.cs.widener.edu,
  uxc.cso.uiuc.edu, col.hp.com:/mirrors/gnu,
  gatekeeper.dec.com:/pub/GNU, ftp.uu.net:/systems/gnu
@end example

@item Europe:
@example
src.doc.ic.ac.uk:/gnu, ftp.informatik.tu-muenchen.de,
  ftp.informatik.rwth-aachen.de:/pub/gnu, nic.funet.fi:/pub/gnu,
  ugle.unit.no, isy.liu.se, ftp.stacken.kth.se, ftp.win.tue.nl,
  ftp.denet.dk, ftp.eunet.ch, nic.switch.ch:/mirror/gnu,
  archive.eu.net, irisa.irisa.fr:/pub/gnu
@end example

@item Australia:
@example
archie.oz.au:/gnu @r{(@samp{archie.oz} or @samp{archie.oz.au} for ACSnet)}
@end example

@item Asia
@example
ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep,
  cair.kaist.ac.kr:/pub/gnu
@end example

@end table

@flindex DISTRIB
@cindex prices for GNU software
@cindex ordering GNU software
You can also order tapes with GNU software from the Free Software
Foundation (thereby supporting the development of the font utilities and
the rest of the GNU project); send mail to @samp{gnu@@prep.ai.mit.edu}
for the latest prices and ordering information, or retrieve the file
@file{DISTRIB} from a GNU archive.

@cindex X window system, obtaining
@flindex export.lcs.mit.edu
@flindex gatekeeper.dec.com
The canonical source for the X window system is
@file{export.lcs.mit.edu:pub/R5}.  That directory is also shadowed at
many other sites, including @samp{gatekeeper.dec.com}.  The FSF also
sells X distribution tapes.

@cindex @TeX{}, obtaining
@flindex byron.u.washington.edu
@TeX{} is more scattered.  A complete Unix @TeX{} distribution is
available by ordering a tape from the University of Washington (send
email to @samp{elisabet@@u.washington.edu}.  Three archives with
complete (and identical) @TeX{} collections:

@example
ftp.uni-stuttgart.de:/soft/tex
ftp.tex.ac.uk:/pub/archive
pip.shsu.edu:/tex-archive
@end example

@pindex web2c
@flindex ftp.cs.umb.edu
@flindex ics.uci.edu
@flindex ftp.th-darmstadt.de
The canonical sources for just Web2C---the port of just @TeX{},
Metafont, and friends to Unix, without DVI processors, fonts, macro
packages, etc.---are:

@example
ftp.cs.umb.edu:pub/tex/                  @r{(Boston)}
ics.uci.edu:TeX/                         @r{(California)}
ftp.th-darmstadt.de:pub/tex/src/web2c/   @r{(Germany)}
@end example

@flindex web.tar.Z
@flindex web2c.tar.Z
At all these sites, the files to retrieve are @file{web.tar.Z} and
@file{web2c.tar.Z}.

@pindex dvips
@pindex xdvi
@cindex Rokicki, Tom
@cindex Vojta, Paul
@flindex labrea.stanford.edu
The DVI-to-PostScript driver we recommend is Tom Rokicki's Dvips, and
the X window system driver we recommend is Paul Vojta's XDvi.  These
programs are available from, respectively,
@example
labrea.stanford.edu:pub/dvips*
export.lcs.mit.edu:contrib/xdvi.tar.Z
@end example

@cindex path searching
We have modified XDvi and Dvips to use the same path searching code as
the current distribution of @TeX{} and these font utilities; the
modified versions are available from @file{ftp.cs.umb.edu:pub/tex}.

@flindex modes.mf
@cindex Metafont modes
To use Metafont, you must have a file defining output devices.
(@xref{Metafont and BZRto}.)  We recommend you obtain @file{modes.mf}
from
@example
ftp.cs.umb.edu:pub/tex/modes.mf
@end example

@flindex fontname.texi
@cindex naming scheme for @TeX{} fonts
@cindex filenames for fonts
You can retrieve the document describing all the details of the naming
scheme for @TeX{} fonts from

@example
ftp.cs.umb.edu:pub/tex/fontname.tar.Z
@end example


@node Problems
@section Problems

@cindex problems in installation
@cindex trouble in installation
@cindex installation problems

This section lists some things which have caused trouble during
installation.  If you encounter other problems, please send a bug
report.  @xref{Bugs}, for how to submit a useful bug report.

@itemize @bullet

@opindex -static
@cindex static linking, warning about
@item
You may get a warning from the compiler about @samp{-static} being an
unrecognized option.  Ignore it.  (This has already been reported to
@samp{bug-gcc}.)

@cindex dynamic linking
@cindex static linking vs.@: dynamic linking
@cindex linking, dynamic
@cindex SunOS linking
@pindex /bin/ld
@item
Under SunOS 4.x, the programs which use X (XBfe and Limn) cannot be
dynamically linked, because (apparently) @file{/bin/ld} pulls in the
entire @file{.sa} file, and the Form, Label, and Viewport widgets are
multiply defined.  (To us, this seems to defeat the whole purpose of
having libraries.  It also seems bizarre to us that X was written so
that these multibyte functions are always needed (via
@code{__Xsi@dots{}}), and furthermore that the multibyte functions need
to specifically call the dynamic linking functions.)

@findex dlsym
@findex dlclose
@findex dlopen
The file @file{lib/dlsym.c} (from the MIT X distribution) defines the
@code{dlsym}, @code{dlclose}, and @code{dlopen} symbols, so static
linking should work now.

@cindex Xaw library, linking with
If the current setup fails, it might work to change @samp{-lXaw} in
the definition of @code{X_libraries} in @file{lib/defs.make} to
the full pathname of the Xaw library.

@cindex GCC crash
@cindex compiler crash
@flindex imageto/main.c
@item
On many machines (Sun 3 or Sun 4 running SunOS 4.1, Sun386i running
4.0.2, 386 running ISC 2.2), GCC 1.40 gets a fatal error compiling
@file{imageto/main.c} with @samp{-O}.  Just use @samp{-g} for that file,
or use a newer version of GCC.

@flindex math.h@r{, wrong}
@findex fmod@r{, wrong prototype for}
@cindex Interactive Unix
@item
On a 386 running Interactive UNIX 2.2, @file{<math.h>} declares the
wrong prototype for @code{fmod}: the routine takes two doubles, not one.
We simply corrected our system include file.

@findex XtIsRealized
@findex XtWindowOfObject
@vindex NULL
@cindex warnings in @file{Bitmap.c}
@cindex compiler warnings in @file{Bitmap.c}
@flindex Bitmap.c
@flindex widgets/Bitmap.c
@flindex IntrinsicP.h
@flindex X11/IntrinsicP.h
You may get compiler warnings for the file @file{widgets/Bitmap.c} at
the lines which use the Xt function @code{XtIsRealized} on systems which
define @code{NULL} as @code{(void *) 0}.  The reason is that macro
definition of @code{XtIsRealized} in @file{<X11/IntrinsicP.h>}
incorrectly compares the result of @code{XtWindowOfObject} to
@code{NULL}, instead of @code{0}.  If the warnings bother you, fix
@file{IntrinsicP.h}.

@flindex XBfe @r{resource file}
@cindex XBfe failing
@cindex Limn online display failing
@flindex Limn @r{resource file}
@cindex X programs failing
@cindex X resources unrecognized
@cindex application resources, under X
@vindex XAPPLRESDIR
@item
The application resource files @file{limn/Limn} and @file{xbfe/XBfe}
must be installed in a directory where your X server can find them.
This directory varies according to how X was installed; in the default X
distribution, it is @file{/usr/lib/X11/app-defaults}.  If you cannot (or
do not want to) write in the default directory, you can install them
elsewhere and set the @code{XAPPLRESDIR} environment variable to that
directory.  See the tutorial on resources that comes with the MIT X
distribution (@file{mit/doc/tutorial/resources.txt}) for more
information.

@end itemize

Good luck.