-y support
[platform/upstream/binutils.git] / solaris-inst.texinfo
1 \input texinfo
2 @c
3 @c search for "UPDATE!" for items that will need examination on future
4 @c releases
5 @c
6 @c This file may require a nonstandard texinfo.tex to format; if you
7 @c need it, please contact Cygnus Support (email editor-in-chief@cygnus.com)
8 @setfilename README.info
9 @c
10 @c This file describes how to install a Cygnus Progressive Release.
11 @c
12 @c Copyright (C) 1991, 1992 Cygnus Support
13 @c This text may be freely distributed under the terms of the GNU
14 @c General Public License.
15 @c
16 @c $Id$
17 @set CDROMinst
18 @clear CUSTOMER
19 @clear FIXMES
20 @c
21 @iftex
22 @c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
23 @c implements Cygnus modifications to the texinfo manual style.
24 @input texiplus
25 @c The include file "smpklug.texi" is a kluge to deal with local
26 @c document production issues at Cygnus; it's safe to comment out this
27 @c line if you don't have (or don't want) the file.
28 @input smpklug.texi
29 @smallbook
30 @cropmarks
31 @setchapternewpage on
32 @finalout
33 @end iftex
34 @settitle Solaris--||RELNO|| Installation
35 @tex
36 % override-override: the following \font lines are redundant if you're
37 % using an unmodified FSF texinfo.  
38 \globaldefs=1
39 \font\texttt=cmtt10 scaled \magstephalf\let\tentt=\texttt
40 \font\textsl=cmsl10 scaled \magstephalf\let\tensl=\textsl
41 \font\textsf=cmss10 scaled \magstephalf\let\tensf=\textsf
42 \globaldefs=0
43 %end override-override
44 % WARNING: NONSTANDARD USAGE we need \tensf for print, without
45 % upsetting info.  We weren't using @b in this note, so I redefine it:
46 %
47 \global\def\b#1{{\tensf #1}}
48 \global\parindent=0pt
49 @end tex
50 @titlepage
51 @title Installation Notes
52 @sp 3
53 @table @strong
54 @item Cygnus Support Developer's Kit
55 @item Progressive Release ||RELNO|| for Solaris
56 @item {}
57 @item Contents
58 @end table
59 @c TOGGLE XREF DISPLAY TO AVOID SQUARE BRACKETS OR QUOTES:
60 @c (Cygnus "texiplus.tex" hack.  If you want standard texinfo remove
61 @c or comment-out instances of @altref).
62 @altref
63 @format
64 @ref{Brief,,Installing in Brief}
65 @ref{Contents,,Release Contents}.
66 @ref{Platforms,,Supported Platforms}.
67
68 @ref{Installing,,Installing the Developer's Kit}.
69 @ref{local-install,,Installing with local ||MEDIUM|| drive}.
70 @ref{cross-install,,Installing with another machine's ||MEDIUM|| drive}.
71 @ref{Examples,,Installation Examples}.
72
73 @ref{Paths,,Changing the Paths}
74 @ref{Trouble,,Some Things that Might go Wrong}
75 @ref{Rebuilding,,Rebuilding From Source}.
76 @ref{Removing,,Removing the Developer's Kit}.
77
78 @ref{Cygnus-FSF,,Cygnus Progressive Releases and the FSF}.
79 @ref{Cygnus-Support,,About Cygnus Support}.
80 @end format
81 @c TOGGLE XREF DISPLAY BACK, TO RESTORE MARKERS AROUND SECNAMES:
82
83 @altref
84 @author Cygnus Support @hfill hotline: +1 415 322 7836
85 @page
86
87 @tex
88 \def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
89 \xdef\Rmanvers{{\it Installation Notes (Solaris Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
90 {\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
91 \TeX{}info \texinfoversion\par }
92 \global\def\manvers{Progressive ||RELNO|| for Solaris}
93 @end tex
94
95 @vskip 0pt plus 1filll
96 Copyright @copyright{} 1991, 1992 Cygnus Support
97
98 Permission is granted to make and distribute verbatim copies of
99 this manual provided the copyright notice and this permission notice
100 are preserved on all copies.
101
102 Permission is granted to copy and distribute modified versions of this
103 manual under the conditions for verbatim copying, provided also that
104 the entire resulting derived work is distributed under the terms of a
105 permission notice identical to this one.
106
107 Permission is granted to copy and distribute translations of this manual
108 into another language, under the above conditions for modified versions.
109
110 @end titlepage
111
112 @ifinfo
113 @node Top, Brief, (dir), (dir)
114 @top Overview
115
116 This file is about the Cygnus Developer's Kit for Solaris: what's in it,
117 how to install it, and how to reconfigure it.
118
119 @menu
120 * Brief::                       Installing in Brief
121 * Contents::                    Release Contents
122 * Requirements::                System Requirements
123 * Installing::                  Installing the Developer's Kit
124 * Running::                     Running the Programs
125 * Paths::                       Changing the Paths
126 * Trouble::                     Some Things that Might go Wrong
127 * Rebuilding::                  Rebuilding From Source
128 * Removing::                    Removing Parts of the Developer's Kit
129 * Cygnus-FSF::                  Cygnus Releases and the FSF
130 * Cygnus-Support::              About Cygnus Support
131
132 @end menu
133
134 @end ifinfo
135
136 @node Brief, Contents, Top, Top
137 @unnumbered Installing in Brief
138 @strong{You can run the brief installation procedure if:}
139 @itemize @bullet
140 @item
141 Your Solaris computer has its own ||MEDIUM|| drive 
142 @item
143 You use the default installation directory @file{/opt/gnu}, and
144 @item
145 You have at least ||DF|| MB available in @code{/opt} (try @samp{df /opt})
146 @end itemize
147 Otherwise, see @ref{Installing,,Installing the Developer's Kit}.
148
149 @strong{Steps for Brief Install:}
150
151 The whole procedure takes between ?? minutes and ???.
152
153 @enumerate
154 @item 
155 Make sure you have root access to the computer.
156
157 @cartouche
158 @example
159 eg$ @b{su} @b{root}
160 password:                   @i{(enter root password)}
161 @end example
162 @end cartouche
163
164 @item
165 Load the Progressive--||RELNO|| ||MEDIUM|| into your ||MEDIUM|| drive.
166
167 @ifset CDROMinst
168 @item
169 Mount the @sc{cd-rom}:
170
171 @cartouche
172 @example
173 eg# @b{mkdir} @b{/cdrom}             @i{(ignore any errors)}
174 eg# @b{mount} @b{-F} @b{hsfs} @b{-o} @b{ro} @b{/dev/dsk/c0t6d0s0} @b{/cdrom}
175 @end example
176 @end cartouche
177 @end ifset
178
179 @item
180 Run the @code{pkgadd} command like this:
181
182 @cartouche
183 @example
184 eg# @b{/usr/sbin/pkgadd} @b{-n} @b{-d} @b{||MEDstr||} @b{GNUDEVTkit} @b{GNUDEVTsrc}
185 @end example
186 @end cartouche
187
188 You will see messages about installation activity, ending with
189
190 @cartouche
191 @example
192 Cygnus Support software distribution installed!
193 @end example
194 @end cartouche
195
196 @item
197 Build a symbolic link to make execution paths easy:
198
199 @cartouche
200 @example
201 eg# @b{cd} @b{/opt/gnu}
202 eg# @b{ln} @b{-s} @b{progressive-||RELNO||} @b{progressive}
203 @end example
204 @end cartouche
205
206 @ifset CUSTOMER
207 @item
208 Use your Cygnus customer-ID (see cover letter) to tag your copy of our
209 problem-report form:
210
211 @cartouche
212 @example
213 eg# @b{/opt/progressive/bin/install@t{_}cid} @var{customerID}
214 @end example
215 @end cartouche
216 @end ifset
217
218 @end enumerate
219
220 You're done!  Anyone who puts @samp{/opt/progressive/bin} in her or his
221 @code{PATH} can use the Developer's Kit.
222
223 @node Contents, Requirements, Brief, Top
224 @unnumbered Release Contents
225
226 This Developer's Kit is a Cygnus Support @dfn{Progressive Release}: the
227 programs in it are recent versions, which have been tested and certified
228 both individually and as a coordinated suite of tools.
229 The kit includes both source and binaries for:  
230
231 @c UPDATE! Anything new shoveled in?
232 @table @r
233 @item @sc{gcc}
234 C compiler
235
236 @item @sc{gdb}
237 debugger
238
239 @item @sc{make}
240 compilation control program
241
242 @item Documentation Tools
243 @code{info}, @code{makeinfo}
244
245 @item Support Utilities
246 @code{patch}, the source-code update utility; @sc{gnu} @code{diff}; and
247 @code{send_pr}, the Cygnus problem-reporting utility
248 @end table
249
250 @menu
251 * Platforms::                   Supported Platforms
252 @end menu
253
254 @node Platforms,  , Contents, Contents
255 @unnumberedsec Supported Platforms
256
257 @table @strong
258 @item ||HOST||s
259 All programs in your Developer's Kit are for ||HOST||s running
260 Solaris; we ship binaries (configured to install and run under
261 @file{/opt/gnu}) as well as all source code.
262
263 @item Other Platforms
264 For information on other platforms or other programs
265 that we may support, please contact Cygnus Support at:
266
267 @table @strong
268 @item voice
269 +1 415 322 3811
270 @item hotline
271 +1 415 322 7836
272 @item fax
273 +1 415 322 3270
274 @item email
275 @code{info@@cygnus.com}
276 @end table
277 @end table
278
279 @menu
280 * Requirements::                System Requirements
281 @end menu
282
283 @node Requirements, Installing, Contents, Top
284 @unnumbered System Requirements
285
286 @table @strong
287 @item OS Level
288 Progressive Release ||RELNO|| for ||HOST||s requires Solaris 2.0 or
289 later. 
290
291 @item A ||MEDIUM|| Drive
292 You need access to a ||MEDIUM|| drive.  The ||MEDIUM|| drive need not be
293 on the computer where you want to run the software; but it is best if
294 the machine with a ||MEDIUM|| drive and your computer can mount a common
295 file system.  At the very least, you need some sort of file transfer
296 capability between the machine with a ||MEDIUM|| drive and your
297 computer.
298
299 @item Disk Space
300 The total space required to extract and install
301 binaries and source for all programs is
302 ||DF|| megabytes.
303
304 The software is configured to go into @file{/opt/gnu}.  If you have
305 space available, but not in the same file system as @file{/opt}, you can
306 use @samp{ln -s} to create @file{/opt/gnu} as a symbolic link to the
307 file system where you do have the space available.
308
309 If you don't have enough space, you may be able to install binaries only;
310 see @ref{Limited Space,,Not Enough Space}.  The space required for
311 installing the binaries is ||BD|| megabytes.
312
313 @item Root Access
314 The standard Solaris installation procedures for optional packages
315 require you to run the installation with root privileges.  We deplore
316 this requirement, but consider it valuable nevertheless to conform to
317 the standard Solaris installation procedure.
318 @end table
319
320 @node Installing, Running, Requirements, Top
321 @unnumbered Installing the Developer's Kit
322
323 @iftex
324 This note shows the different parts of examples like this:
325 @table @asis
326 @item Computer output is shown in @code{typewriter font.}
327 @item Your input is indicated by @b{a sans-serif font.}
328 @item Text to replace, rather than typing verbatim, is in @var{this font}.
329 @item Comments appear in @i{italic font}.
330 @end table
331 @end iftex
332 In examples, we show the system prompt as @samp{eg#}.
333
334 The Cygnus Progressive--||RELNO|| ||MEDIUM|| is designed to work with
335 the Solaris administration command @code{pkgadd}.  
336
337 Two checklists follow.  The first checklist shows what to do if you have
338 a ||MEDIUM|| drive on the computer where you want to install the
339 Developer's Kit; the second shows how to use another networked machine
340 to read the ||MEDIUM||, then finish the installation on your computer.
341
342 Both checklists suggest installing the Developer's Kit binaries under
343 @file{/opt/gnu} (which can be a symbolic link from somewhere else, if
344 you like).  We recommend you use this location for the software, because
345 the precompiled, ready-to-run versions of the tools are configured this
346 way.  If you want to install elsewhere, see @ref{Paths,,Changing
347 the Paths}.)
348
349 Both checklists are very similar to @ref{Brief,,Installing in Brief},
350 but provide more discussion of each step, and offer alternatives for
351 systems whose available disk space is not in @code{/opt} and for
352 installing only portions of the Developer's Kit.
353
354 @menu
355 * local-install::               Installing with a local ||MEDIUM|| drive
356 * cross-install::               Installing with another machine's ||MEDIUM|| drive
357 * Examples::                    Installation Examples
358 * Why-fixincludes::             Why Convert System Header Files?
359 * Link::                        Easy Access and Updating
360 @end menu
361
362 @node local-install, cross-install, Installing, Installing
363 @unnumberedsubsec Installing with a local ||MEDIUM|| drive
364
365 This procedure is for a ||HOST|| that has its own ||MEDIUM|| drive.  The
366 complete procedure takes at least ?? minutes on a fast, unloaded
367 machine; it may take up to ??? in other situations.
368
369 @enumerate
370 @item 
371 Make sure you have root access to the computer.  The standard Solaris
372 installation procedures for optional packages require @code{root} to run
373 the complete installation.
374
375 @cartouche
376 @example
377 eg$ @b{su root}
378 password:                   @i{Enter root password.}
379 @end example
380 @end cartouche
381
382 @item
383 Check that you have enough space available in @file{/opt}
384 (@pxref{Requirements,,System Requirements}).  You can use @samp{df /opt}
385 to check.
386 @ifset FIXMES
387 @quotation
388 @emph{FIXME!} Does @code{pkgadd} check for this and issue an error?  If
389 so, recast in those terms?
390 @end quotation
391 @end ifset
392
393 @ifset CDROMinst
394 @item
395 Load the Catalyst CDWARE disk into a disk caddy, and put the caddy in
396 your CD-ROM drive.
397
398 @item
399 Mount the @sc{cd-rom}.  This note assumes your mount point for a
400 @code{cd-rom} is a directory called @file{/cdrom}; substitute to match
401 your site's conventions if necessary.
402
403 @c makeinfo seems unable to cope with nested ifset's when outer is off,
404 @c inner  is on.
405 @c @ifset FIXMES
406 @quotation
407 @emph{FIXME!} @file{/dev/dsk/c0t6d0s0} for @sc{cd-rom} cribbed from
408 Sun's generic optional-package install notes.  Is it really this cut and
409 dried?  What about systems with more than one @sc{cd-rom} drive?
410 @end quotation
411 @c @end ifset
412
413 @cartouche
414 @example
415 eg# @b{mkdir} @b{/cdrom}             @i{(ignore any errors)}
416 eg# @b{mount} @b{-F} @b{hsfs} @b{-o} @b{ro} @b{/dev/dsk/c0t6d0s0} @b{/cdrom}
417 @end example
418 @end cartouche
419 @end ifset
420
421 @ifclear CDROMinst
422 @item
423 Load the Cygnus Support release tape (labelled
424 ``Progressive--||RELNO||'') into your system's tape drive.
425
426 @item
427 find out the name of the tape device on your machine that can read the
428 release tape.  Cygnus release tapes are labelled to identify the kind of
429 tape used.  You should use one of the following devices:
430
431 @ifset FIXMES
432 @quotation
433 @emph{FIXME!}  Does SVr4 specify device names enough that we can be more
434 explicit here?
435 @end quotation
436
437 @quotation
438 @emph{FIXME!}  For our own @code{Install}, we asked for
439 @emph{non-rewinding} tape device.  @code{pkgadd} doesn't say what kind
440 of tape devices it wants.  Does it matter?
441 @end quotation
442 @end ifset
443
444 @table @emph
445 @item ||TAPdflt|| tape
446 Use @file{||DEVdflt||} where the examples show @code{||MEDstr||}.
447
448 @item Exabyte ||MEDIUM||
449 The device name depends on how your Exabyte tape drive was installed;
450 ask your system administrator.  You will probably use something like
451 @file{/dev/???/a0b1c2d3} where we show @code{||MEDstr||}.
452 @end table
453 @end ifclear
454
455 @item
456 Now you can install ready-to-run binaries; or source; or both.
457
458 @itemize @bullet
459 @item
460 Choose source or binaries by running @code{pkgadd} with either or
461 both of the arguments @samp{GNUDEVTkit} (to install binaries) or
462 @code{GNUDEVTsrc} (for the source).  
463
464 @item
465 Run @code{pkgadd} interactively (that is, @emph{without} the @w{@samp{-n}}
466 option) to choose the installation directory.
467
468 @item
469 Use the @w{@samp{-d}} option to identify your ||MEDIUM||.
470 @end itemize
471
472 For instance, typing this command line starts installation of both
473 the source package and the binary package:
474
475 @cartouche
476 @example
477 eg# @b{/usr/sbin/pkgadd} @b{-d} @b{||MEDstr||} @b{GNUDEVTkit} @b{GNUDEVTsrc}
478 @end example
479 @end cartouche
480
481 @item
482 For each of the packages, @code{pkgadd} will ask for confirmation of the
483 install directory @file{/opt/gnu}, or an alternative.  
484
485 For the source package @code{GNUDEVTsrc}, place the package wherever
486 it's convenient; the only advantage of using the default location
487 @file{/opt/gnu} is to keep the source near the binaries.
488
489 For the @code{GNUDEVTkit} binaries, we recommend using the default location
490 @file{/opt/gnu}, since this location is configured and compiled into all
491 the tools.  
492
493 @quotation
494 @emph{Warning!} If you choose an alternate location for
495 @code{GNUDEVTkit} binaries, you will need to override the compiled-in
496 paths to run the programs.  @xref{Paths,,Changing the Paths}.
497 @end quotation
498
499 This example shows the interaction to accept @file{/opt/gnu} for the
500 binaries:
501
502 @cartouche
503 @example
504 Extracting Solaris GNU Developer's Kit binaries.
505  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
506 @end example
507 @end cartouche
508
509 This example shows the interaction to place the source in
510 @file{/usr/local/src} instead of the default location.  After you type
511 the location, the installation script asks you to confirm.  You can use
512 this opportunity to avoid typographical errors in the install directory
513 name.
514
515 @cartouche
516 @example
517 Extracting Solaris GNU Developer's Kit source.
518  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{n}
519  >>Where do you want to install?  > @b{/usr/local/src}
520  >>Installing in "/usr/local/src".  OK? [y/n]> @b{y}
521 @end example
522 @end cartouche
523
524 @item
525 Installing the Developer's Kit binaries is a time-consuming step
526 (between ?? minutes and ???, depending on the speed of your machine).
527 @code{pkgadd} will display informative messages about its progress.
528 After the initial extraction step, it prepares copies of your system
529 header files, converted to comply better with @sc{ansi} C
530 (@pxref{Why-fixincludes,,Why Convert System Header Files?}).  A log for
531 this step goes in @file{/opt/gnu/progressive-||RELNO||/fixincludes.log}.
532 @emph{Your system's original header files are not changed;}
533 @code{pkgadd} writes the converted copies in a separate,
534 @sc{gcc}-specific directory.
535
536 When installation is complete, @code{pkgadd} displays the message
537
538 @cartouche
539 @example
540 Cygnus Support software distribution installed!
541 @end example
542 @end cartouche
543
544 @item
545 Now that the software is on your system, you should arrange for users
546 to run it conveniently.  We recommend the following symbolic link; see
547 @ref{Link,,Easy Access and Updating}, for a discussion.
548
549 @cartouche
550 @example
551 eg# @b{cd} @b{/opt/gnu}
552 eg# @b{ln} @b{-s} @b{progressive-||RELNO||} @b{progressive}
553 @end example
554 @end cartouche
555
556 @ifset CUSTOMER
557 @item
558 Finally, in case you need to send problem reports to Cygnus, we've
559 included a script @code{send_pr} (and a supporting online template) to
560 structure and transmit your reports.  Please use the small utility
561 script @code{install_cid} to record your Cygnus customer ID in your copy
562 of the problem report form.  (You can find your customer ID in the cover
563 letter that came with this release; or call the Cygnus hotline, 
564 @w{+1 415 322 7836}.)  This will enable us to respond as quickly as
565 possible to any problem reports you send.
566
567 @cartouche
568 @example
569 eg# @b{/opt/progressive/bin/install@t{_}cid @var{customerID}}
570 install_cid: `@var{customerID}' is now the default customer ID
571  for send_pr
572 @end example
573 @end cartouche
574 @end ifset
575
576 @end enumerate
577
578 You're done!  Anyone who puts @samp{/opt/progressive/bin} in her or his
579 @code{PATH} can use the Developer's Kit.
580
581 @node cross-install, Examples, local-install, Installing
582 @unnumberedsubsec Installing with another machine's ||MEDIUM|| drive 
583 This checklist is for a ||HOST|| that does not have its own ||MEDIUM|| drive,
584 but can share a file system with another machine that does have a ||MEDIUM||
585 drive.  The other machine need not be a ||HOST||, @emph{but it must be
586 running some version of UNIX System V release 4}.  The complete
587 procedure takes between ?? and ???, depending on the speed of
588 each machine.
589
590 We show the other computer's prompt as @samp{other#}, and your
591 computer's prompt as @samp{eg#}.
592
593 @ifset FIXMES
594 @quotation
595 @emph{FIXME!} SVr4 required simply for presence of @code{pkgadd}
596 command.  If we care enough to relax this, we simply need to provide an
597 alternative extraction command-line.  @code{dd}?  @code{tar}?
598 @end quotation
599 @end ifset
600
601 @enumerate
602 @item
603 find a machine with a suitable ||MEDIUM|| drive on the same network as your
604 ||HOST||, and sign on to it.  If the only machine with a ||MEDIUM||
605 drive isn't on the network, @pxref{No Drive,,No Local ||MEDIUM|| Drive}.
606
607 @item 
608 Make sure you have root access to @emph{both} computers.  The standard
609 Solaris installation procedures for optional packages require
610 @code{root} to run all installation steps.
611
612 @cartouche
613 @example
614 other$ @b{su} @b{root}
615 password:                   @i{(enter root password)}
616 @end example
617 @end cartouche
618
619 @item
620 Choose a directory where you will extract the Developer's Kit.  The
621 directory must be accessible from both machines (the one with the
622 ||MEDIUM|| drive, and the ||HOST|| where you want to use the software).
623 If possible, use @file{/var/spool/pkg}; this is the default package
624 spooling directory for Solaris (and System V release 4 in general).
625
626 @ifset FIXMES
627 @quotation
628 @emph{FIXME!} Do SVr4 systems expect to export things like
629 @file{/var/spool/pkg}, or is this a nonsensical suggestion for
630 cross-install?
631 @end quotation
632 @end ifset
633
634 Wherever this note uses @var{shr}, substitute the name of the
635 directory you chose.
636
637 @item
638 Check that you have enough space available (@pxref{Requirements,,System
639 Requirements}) in @var{shr}.  You can use @samp{df @var{shr}} to check.
640 @ifset FIXMES
641 @quotation
642 @emph{FIXME!} Does @code{pkgadd} check for this and issue an error?  If
643 so, recast in those terms?
644 @end quotation
645 @end ifset
646
647 @ifset CDROMinst
648 @item
649 Load the Catalyst CDWARE disk into a disk caddy, and put the caddy in
650 your CD-ROM drive.
651
652 @item
653 Mount the @sc{cd-rom}.  This note assumes your mount point for a
654 @code{cd-rom} is a directory called @file{/cdrom}; substitute to match
655 your site's conventions if necessary.
656
657 @c makeinfo seems unable to cope with nested ifsets when outer is off,
658 @c inner is on.
659 @c @ifset FIXMES
660 @quotation
661 @emph{FIXME!} @file{/dev/dsk/c0t6d0s0} for @sc{cd-rom} cribbed from
662 Sun's generic optional-package install notes.  Is it really this
663 definite on @emph{all} SVr4 systems?  What about systems with more than
664 one @sc{cd-rom} drive?
665 @end quotation
666 @c @end ifset
667
668 @cartouche
669 @example
670 other# @b{mkdir} @b{/cdrom}             @i{(ignore any errors)}
671 other# @b{mount} @b{-F} @b{hsfs} @b{-o} @b{ro} @b{/dev/dsk/c0t6d0s0} @b{/cdrom}
672 @end example
673 @end cartouche
674 @end ifset
675
676 @ifclear CDROMinst
677 @item
678 Load the Cygnus Support release ||MEDIUM|| (labelled
679 ``Progressive--||RELNO||'') into the tape drive.  In these examples,
680 @var{||MEDstr||} stands for the device name for the appropriate
681 tape drive on your system.
682
683 @item
684 find out the name of the tape device on the machine
685 that can read the release tape.  Cygnus release tapes are labelled to
686 identify the kind of tape used.  You should use one of the following
687 devices:
688 @ifset FIXMES
689 @quotation
690 @emph{FIXME!}  Does SVr4 specify device names enough that we can be more
691 explicit here?
692 @end quotation
693
694 @quotation
695 @emph{FIXME!}  For our own @code{Install}, we asked for
696 @emph{non-rewinding} tape device.  @code{pkgadd} doesn't say what kind
697 of tape devices it wants.  Does it matter?
698 @end quotation
699 @end ifset
700
701 @table @emph
702 @item ||TAPdflt|| ||MEDIUM||
703 Use @file{||DEVdflt||} where the examples show @code{||MEDstr||}.
704
705 @item Exabyte ||MEDIUM||
706 The device name depends on how your Exabyte ||MEDIUM|| drive was installed;
707 check with your system administrator.  You will probably use something like
708 @file{/dev/???/a0b1c2d3} where the example shows @code{||MEDstr||}.
709 @end table
710 @end ifclear
711
712 @item
713 Now you can extract either the ready-to-run binary package, the source
714 package, or both.  
715
716 @itemize @bullet
717 @item
718 Choose source or binaries by running @code{pkgadd} with either or
719 both of the arguments @samp{GNUDEVTkit} (to install binaries) or
720 @code{GNUDEVTsrc} (for the source).  
721
722 @emph{Warning:} later, when installing on your ||HOST||, only the
723 packages you extract now will be available.  We recommend you extract
724 both packages at this point.
725
726 @item
727 Use @samp{-s @var{shr}} to copy the packages to @var{shr}, where you
728 will be able to install them from your ||HOST||.
729
730 @item
731 Use the @w{@samp{-d}} option to identify your ||MEDIUM||.
732 @end itemize
733
734 This is the command line to extract both packages into @var{shr}:
735
736 @cartouche
737 @example
738 other# @b{/usr/sbin/pkgadd} @b{-s} @var{shr} @b{-d} @b{||MEDstr||} \
739   @b{GNUDEVTkit} @b{GNUDEVTsrc}
740 @end example
741 @end cartouche
742
743 @item
744 Log off the computer with the ||MEDIUM|| drive, and log on to the
745 ||HOST|| where you want to use the software.
746
747 @item 
748 Make sure you have root access to this computer, too.  The standard
749 Solaris installation procedures for optional packages require
750 @code{root} to run the complete installation.
751
752 @cartouche
753 @example
754 eg$ @b{su root}
755 password:                   @i{(enter root password)}
756 @end example
757 @end cartouche
758
759 @item
760 Check that you have enough space available in @file{/opt}
761 (@pxref{Requirements,,System Requirements}).  You can use @samp{df /opt}
762 to check.
763 @ifset FIXMES
764 @quotation
765 @emph{FIXME!} Does @code{pkgadd} check for this and issue an error?  If
766 so, recast in those terms?
767 @end quotation
768 @end ifset
769
770 @item
771 Now you can install ready-to-run binaries; or source; or both.
772
773 @itemize @bullet
774 @item
775 Choose source or binaries by running @code{pkgadd} with either or
776 both of the arguments @samp{GNUDEVTkit} (to install binaries) or
777 @code{GNUDEVTsrc} (for the source).  
778
779 @emph{Warning:} if you extracted only one of these packages when reading
780 the ||MEDIUM|| from another machine, you no longer have a choice---you
781 can only specify that package name to complete the installation.
782
783 @item
784 Run @code{pkgadd} interactively (that is, @emph{without} the @w{@samp{-n}}
785 option) to choose the installation directory.
786
787 @item
788 Use the @w{@samp{-d} @var{shr}} option to identify the shared directory
789 where you extracted the packages earlier.  (If you used
790 @file{/var/spool/pkg} as @var{shr}, you can leave off this option;
791 @code{pkgadd} uses that directory as the default location for packages
792 to install.)
793 @end itemize
794
795 For instance, typing this command line starts installation of both
796 the source package and the binary package:
797
798 @cartouche
799 @example
800 eg# @b{/usr/sbin/pkgadd} @b{-d} @var{shr} @b{GNUDEVTkit} @b{GNUDEVTsrc}
801 @end example
802 @end cartouche
803
804 @item
805 For each of the packages, @code{pkgadd} will ask for confirmation of the
806 install directory @file{/opt/gnu}, or an alternative.  
807
808 For the source package @code{GNUDEVTsrc}, place the package wherever
809 it's convenient; the only advantage of using the default location
810 @file{/opt/gnu} is to keep the source near the binaries.
811
812 For the @code{GNUDEVTkit} binaries, we recommend using the default location
813 @file{/opt/gnu}, since this location is configured and compiled into all
814 the tools.  
815
816 @quotation
817 @emph{Warning!} If you choose an alternate location for
818 @code{GNUDEVTkit} binaries, you will need to override the compiled-in
819 paths to run the programs.  @xref{Paths,,Changing the Paths}.
820 @end quotation
821
822 This example shows the interaction to accept @file{/opt/gnu} for the
823 binaries:
824
825 @cartouche
826 @example
827 Extracting Solaris GNU Developer's Kit binaries.
828  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
829 @end example
830 @end cartouche
831
832 This example shows the interaction to place the source in
833 @file{/usr/local/src} instead of the default location.  After you type
834 the location, the installation script asks you to confirm.  You can use
835 this opportunity to avoid typographical errors in the install directory
836 name.
837
838 @cartouche
839 @example
840 Extracting Solaris GNU Developer's Kit source.
841  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{n}
842  >>Where do you want to install?  > @b{/usr/local/src}
843  >>Installing in "/usr/local/src".  OK? [y/n]> @b{y}
844 @end example
845 @end cartouche
846
847 @item
848 Installing the Developer's Kit binaries is a time-consuming step (at
849 least ?? minutes on a fast, unloaded machine; it may take as much as ???
850 under other circumstances).  @code{pkgadd} will display informative
851 messages about its progress.  After copying the binaries into their
852 installed locations, @code{pkgadd} prepares copies of your system header
853 files, converted to comply better with @sc{ansi} C
854 (@pxref{Why-fixincludes,,Why Convert System Header Files?}).  A log for
855 this step goes in @file{/opt/gnu/progressive-||RELNO||/fixincludes.log}.
856 @emph{Your system's original header files are not changed;}
857 @code{Install} writes the converted copies in a separate,
858 @sc{gcc}-specific directory.
859
860 When installation is complete, @code{pkgadd} displays the message
861
862 @cartouche
863 @example
864 Cygnus Support software distribution installed!
865 @end example
866 @end cartouche
867
868 @item
869 Now that the software is on your system, you need to arrange for users
870 to run it conveniently.  We recommend the following link; see
871 @ref{Link,,Easy Access and Updating}, for a discussion.
872
873 @cartouche
874 @example
875 eg# @b{cd} @b{/opt/gnu}
876 eg# @b{ln} @b{-s} @b{progressive-||RELNO||} @b{progressive}
877 @end example
878 @end cartouche
879
880 @ifset CUSTOMER
881 @item
882 Finally, in case you need to send problem reports to Cygnus, we've
883 included a script @code{send_pr} (and a supporting online form) to
884 structure and transmit your reports.  Please use the small utility
885 script @code{install_cid} to record your Cygnus customer ID in your copy
886 of the problem report form.  (You can find your customer ID in the cover
887 letter that came with this release; or call the Cygnus hotline, 
888 @w{+1 415 322 7836}.)  This will enable us to respond as quickly as
889 possible to any problem reports you send.
890
891 @cartouche
892 @example
893 eg# @b{/opt/progressive/bin/install@t{_}cid @var{customerID}}
894 install_cid: `@var{customerID}' is now the default customer ID
895  for send_pr
896 @end example
897 @end cartouche
898 @end ifset
899
900 @end enumerate
901
902 You're done!  Anyone who puts @samp{/opt/progressive/bin} in her or his
903 @code{PATH} can use the Developer's Kit.
904
905 @node Examples, Why-fixincludes, cross-install, Installing
906 @unnumbered Installation Examples
907
908 Here are some examples covering common situations.
909
910 @menu
911 * binaries::                    Installing binaries only
912 * ||HOSTstr||-remote::          Reading ||MEDIUM|| on any machine, finishing on ||HOST||
913 * source-remove::               Removing Source
914 @end menu
915
916 @node binaries, ||HOSTstr||-remote, Examples, Examples
917 @unnumberedsubsec Installing binaries only
918
919 @c FIXME for texinfo??  The "ifsets" were originally only around the
920 @c portions of this example that depend on cdrom, but texinfo kept
921 @c not-finding the end-ifsets.  Does ifset break inside example?
922 @ifset CDROMinst
923 @cartouche
924 @example
925 eg$ @b{su} @b{root}
926 password:
927
928 @i{Insert ||MEDIUM|| into drive.}
929
930 eg# @b{mkdir} @b{/cdrom}
931 eg# @b{mount} @b{-F} @b{hsfs} @b{-o} @b{ro} @b{/dev/dsk/c0t6d0s0} @b{/cdrom}
932 eg# @b{/usr/sbin/pkgadd} @b{-n} @b{-d} @b{||MEDstr||} @b{GNUDEVTkit}
933
934 Extracting Solaris GNU Developer's Kit binaries.
935  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
936
937 @i{Installation progress messages, ending with:}
938
939 Cygnus Support software distribution installed!
940
941 eg# @b{cd} @b{/opt/gnu}
942 eg# @b{ln} @b{-s} @b{progressive-||RELNO||} @b{progressive}
943 @end example
944 @end cartouche
945 @end ifset
946
947 @ifclear CDROMINST
948 @cartouche
949 @example
950 eg$ @b{su} @b{root}
951 password:
952
953 @i{Insert ||MEDIUM|| into drive.}
954
955 eg# @b{/usr/sbin/pkgadd} @b{-n} @b{-d} @b{||MEDstr||} @b{GNUDEVTkit}
956
957 Extracting Solaris GNU Developer's Kit binaries.
958  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
959
960 @i{Installation progress messages, ending with:}
961
962 Cygnus Support software distribution installed!
963
964 eg# @b{cd} @b{/opt/gnu}
965 eg# @b{ln} @b{-s} @b{progressive-||RELNO||} @b{progressive}
966 @end example
967 @end cartouche
968 @end ifclear
969
970 If you don't want the source---for instance, to save space---you can use
971 the argument @samp{GNUDEVTbin} and omit @samp{GNUDEVTsrc}.
972
973 @node ||HOSTstr||-remote, source-remove, binaries, Examples
974 @unnumberedsubsec Reading ||MEDIUM|| on other machine, finishing on ||HOST||
975
976 @ifset CDROMinst
977 @cartouche
978 @example
979 @emph{On another SVr4 machine on your network with a ||MEDIUM|| drive:}
980 other$ @b{su} @b{root}
981 password:
982
983 @i{Insert ||MEDIUM|| into drive.}
984
985 other# @b{mkdir} @b{/cdrom}             @i{(ignore any errors)}
986 other# @b{mount} @b{-F} @b{hsfs} @b{-o} @b{ro} @b{/dev/dsk/c0t6d0s0} @b{/cdrom}
987 other# @b{/usr/sbin/pkgadd} @b{-s} @var{/var/spool/pkg} @b{-d} @b{||MEDstr||} \
988   @b{GNUDEVTkit} @b{GNUDEVTsrc}
989 other# exit
990
991 @emph{On your ||HOST||}
992 eg$ @b{su} @b{root}
993 password:
994 eg# @b{/usr/sbin/pkgadd} @b{GNUDEVTkit} @b{GNUDEVTsrc}
995
996 Extracting Solaris GNU Developer's Kit binaries.
997  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
998
999 Extracting Solaris GNU Developer's Kit source.
1000  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
1001
1002 @i{Installation progress messages, ending with:}
1003
1004 Cygnus Support software distribution installed!
1005
1006 eg# @b{cd} @b{/opt/gnu}
1007 eg# @b{ln} @b{-s} @b{progressive-||RELNO||} @b{progressive}
1008 @end example
1009 @end cartouche
1010 @end ifset
1011
1012 @ifclear CDROMinst
1013 @cartouche
1014 @example
1015 @emph{On another SVr4 machine on your network with a ||MEDIUM|| drive:}
1016 other$ @b{su} @b{root}
1017 password:
1018
1019 @i{Insert ||MEDIUM|| into drive.}
1020
1021 other# @b{/usr/sbin/pkgadd} @b{-s} @var{/var/spool/pkg} @b{-d} @b{||MEDstr||} \
1022   @b{GNUDEVTkit} @b{GNUDEVTsrc}
1023 other# exit
1024
1025 @emph{On your ||HOST||}
1026 eg$ @b{su} @b{root}
1027 password:
1028 eg# @b{/usr/sbin/pkgadd} @b{GNUDEVTkit} @b{GNUDEVTsrc}
1029
1030 Extracting Solaris GNU Developer's Kit binaries.
1031  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
1032
1033 Extracting Solaris GNU Developer's Kit source.
1034  >>Installing in "/opt/gnu".  OK?  [y/n]> @b{y}
1035
1036 @i{Installation progress messages, ending with:}
1037
1038 Cygnus Support software distribution installed!
1039
1040 eg# @b{cd} @b{/opt/gnu}
1041 eg# @b{ln} @b{-s} @b{progressive-||RELNO||} @b{progressive}
1042 @end example
1043 @end cartouche
1044 @end ifclear
1045
1046 @noindent
1047 If your ||HOST|| doesn't have a ||MEDIUM|| drive, but another SVr4
1048 machine that can mount a shared directory (here the default
1049 package-spooling directory, @samp{/var/spool/pkg}) does have one, you
1050 can carry out the first step of the installation from the machine with a
1051 ||MEDIUM|| drive, as shown.  Note that you have to use @samp{-s} on
1052 the @code{pkgadd} command line.  This alerts @code{pkgadd} to stop the
1053 install procedure after it reads the ||MEDIUM||.  You still have to
1054 finish the installation, but the last two steps have to run on your
1055 ||HOST||.  
1056
1057 @node source-remove,  , ||HOSTstr||-remote, Examples
1058 @unnumberedsubsec Removing Source
1059 The @code{pkgrm} command can remove any package installed by
1060 @code{pkgadd}.  For example, if after installing the complete
1061 Developer's Kit on your machine you decide to remove the source files:
1062
1063 @cartouche
1064 @example
1065 eg$ @b{su} @b{root}
1066 password:
1067 eg# @b{/usr/sbin/pkgrm GNUDEVTsrc}
1068 @end example
1069 @end cartouche
1070
1071 @node Why-fixincludes, Link, Examples, Installing
1072 @unnumberedsec Why Convert System Header Files?
1073
1074 @ifset FIXMES
1075 @quotation
1076 @emph{FIXME!} This is pretty much the standard progressive blurb about
1077 fixincludes.  Surely it's bogus here, since Solaris is a nice modern
1078 system?  Doesn't it have ANSI header files?
1079
1080 Someone, please confirm or deny!  I seem to recall there's at least some
1081 bullshit about how @code{__ANSIC__} or some such thing is defined.
1082 Specifics, anyone?
1083 @end quotation
1084 @end ifset
1085
1086 You may notice messages about running @samp{fixincludes} during your
1087 Developer's Kit installation.  When the @sc{ansi x3j11} committee
1088 finished developing a standard for the C language, a few things that had
1089 worked one way in many traditional C compilers ended up working
1090 differently in @sc{ansi} C.  Most of these changes are improvements.
1091 But some Unix header files still rely on the old C meanings, in cases
1092 where the Unix vendor has not yet converted to using an @sc{ansi} C
1093 compiler for the operating system itself.  The @samp{fixincludes}
1094 portion of installation is a mechanical translation that writes
1095 @sc{ansi} C versions of some system header files into a new,
1096 @sc{gcc}-specific include directory---@emph{your system's original
1097 header files are not affected.}
1098
1099 The particular problems fixed include:
1100 @itemize @bullet
1101 @item
1102 @code{_IOR}, @code{_IOW}, and @code{_IORW} macros use obsolete
1103 preprocessor facilities
1104 @item
1105 @code{#endif} no longer ignores its argument
1106 @end itemize
1107
1108 If you don't run @code{fixincludes}, the GNU C compiler can only use the
1109 original system header files when you compile new C programs.  @emph{In
1110 some cases, the resulting programs will fail at run-time}.
1111
1112 @node Link, , Why-fixincludes, Installing
1113 @unnumbered Easy Access and Updating
1114 Once you've extracted them from the ||MEDIUM||, the Developer's Kit
1115 tools are installed under a directory named
1116 @file{progressive-||RELNO||}.  We put the release number in the
1117 directory name so that you can keep several releases installed at the
1118 same time, if you wish.  In order to simplify administrative procedures
1119 (such as upgrades to future Cygnus Progressive releases), we recommend
1120 that you establish a symbolic link @file{/opt/gnu/progressive} to this
1121 directory.  For example, assuming you've used the default installation
1122 path:
1123
1124 @cartouche
1125 @example
1126 eg# @b{cd /opt/gnu}
1127 eg# @b{ln -s progressive-||RELNO|| progressive}
1128 @end example
1129 @end cartouche
1130
1131 We recommend building this link as the very last step in the
1132 installation process.  That way, users at your site will only see
1133 software in @file{/opt/gnu/progressive} when you're satisfied that the
1134 installation is complete and successful.
1135
1136 @node Running, Paths, Installing, Top
1137 @unnumbered Running the Programs
1138 Any users who wish to run the Cygnus development tools will need to make
1139 sure the @code{PATH} environment variable will find them.  If you create
1140 the symbolic link we recommend above, users who want to run the
1141 Developer's Kit---regardless of whether they need binaries for a ||HOST||,
1142 or for some other platform---can use settings like one of the following
1143 in their initialization files.
1144
1145 @example
1146 @exdent For shells compatible with Bourne shell (e.g. @code{/bin/sh}, @code{bash}, or Korn shell):
1147 @cartouche
1148 @b{PATH=/opt/gnu/progressive/bin:$PATH}
1149 @b{export PATH}
1150 @end cartouche
1151 @end example
1152
1153 @example
1154 @exdent For C shell:
1155 @cartouche
1156 @b{set path=(/opt/gnu/progressive/bin $path)}
1157 @end cartouche
1158 @end example
1159
1160 @noindent
1161 You should also ensure that your @code{man} command can pick up the
1162 manual pages for these tools.  Some @code{man} programs recognize a
1163 @code{MANPATH} environment variable.  If your @code{man} program is one
1164 of these, users at your site can also include in their initialization
1165 file lines like 
1166
1167 @example
1168 @exdent For Bourne-compatible shells:
1169 @cartouche
1170 @b{MANPATH=/opt/gnu/progressive/man:$MANPATH:/opt/man}
1171 @b{export MANPATH}
1172 @end cartouche
1173 @end example
1174
1175 @example
1176 @exdent For C shell:
1177 @cartouche
1178 @b{setenv MANPATH /opt/gnu/progressive/man:$MANPATH:/opt/man}
1179 @end cartouche
1180 @end example
1181
1182 If your @code{man} program doesn't recognize @samp{MANPATH}, you may
1183 want to copy or link the files from
1184 @file{progressive/man/man1} into your system's
1185 @file{man/man1}. @refill
1186
1187 @node Paths, Trouble, Running, Top
1188 @unnumbered Changing the Paths
1189 The binaries shipped by Cygnus are configured for installation under the
1190 directory @file{/opt/gnu}.  If you wish to run the tools in another
1191 location, the best solution---and, to date, the only complete one---is
1192 to rebuild them from source.  @xref{Rebuilding,,Rebuilding from Source}.
1193
1194 In particular, @code{gcc} and the documentation browser @code{info} need
1195 to know the location of the distribution.
1196
1197 @subheading GCC Paths
1198 @ifset FIXMES
1199 @quotation
1200 @emph{FIXME!} Add something about specs file?
1201 @end quotation
1202 @end ifset
1203 You can run the compiler @sc{gcc} without recompiling, even if you
1204 install the distribution in an alternate location, by first setting the
1205 environment variable @samp{GCC_EXEC_PREFIX}.  This variable specifies
1206 where to find the executables, libraries, and data files used by the
1207 compiler.  Its value will be different depending on which set of
1208 binaries you need to run.  For example, if you install the Developer's Kit
1209 binaries under @file{/local} (instead of the default
1210 @file{/opt/gnu}), and you wish to run @sc{gcc} from there, 
1211 you could set @samp{GCC_EXEC_PREFIX} as follows.  (You can
1212 type the first two lines as a single line, if you like; the example
1213 is split using the line continuation character @samp{\} only
1214 to make it fit on the printed page.)
1215
1216 @cartouche
1217 @example
1218 @b{GCC@t{_}EXEC@t{_}PREFIX=/local/progressive-||RELNO||/@t{\}
1219 lib/gcc/||TARGET||/||GCCvn||/}
1220 @b{export GCC@t{_}EXEC@t{_}PREFIX}
1221 @end example
1222 @end cartouche
1223
1224 @noindent
1225 The example assumes you use a shell compatible with the Bourne shell; if
1226 you run the C shell, use the following instead.  (Again, the line
1227 continuation character @samp{\} is only used for convenience in the
1228 example; feel free to use a single line.)
1229
1230 @cartouche
1231 @example
1232 @b{setenv GCC@t{_}EXEC@t{_}PREFIX /local/progressive-||RELNO||/@t{\}
1233 lib/gcc/||TARGET||/||GCCvn||/}
1234 @end example
1235 @end cartouche
1236
1237 @quotation
1238 @emph{Warning: The trailing slash @samp{/} is important}.  The @code{gcc}
1239 program uses @samp{GCC_EXEC_PREFIX} simply as a prefix.  If you omit the
1240 slash (or make any other mistakes in specifying the prefix), @code{gcc}
1241 will fail with a message beginning @samp{installation problem, cannot
1242 exec@dots{}}.
1243 @end quotation
1244
1245 @subheading @code{info} Paths
1246 You can use the @w{@samp{--directory}} option, each time you run @code{info},
1247 to specify a non-default location for the documentation files.  For
1248 example, if you read the distribution ||MEDIUM||s into @file{/local},
1249 you could run @code{info} as follows:
1250
1251 @cartouche
1252 @example
1253 @b{info --directory /local/progressive-||RELNO||/info}
1254 @end example
1255 @end cartouche
1256
1257 @quotation
1258 @emph{Warning:} the directory you specify with @code{--directory}
1259 @emph{must} contain at least the structured file called @code{dir},
1260 which specifies the menu structure that leads to the other documentation
1261 files.
1262 @end quotation
1263
1264 You can also run @code{info} on a specific documentation file,
1265 regardless of its location, by giving the option @code{-file} followed
1266 by a pathname to the desired file; or you can use the command
1267 @code{g(@var{filename})} to the same effect, after entering the
1268 @code{info} program.
1269
1270 @node Trouble, Rebuilding, Paths, Top
1271 @unnumbered Some Things that Might go Wrong
1272
1273 We've tried to make the installation of your Developer's Kit as painless
1274 as possible.  Still, some complications may arise.  Here are suggestions
1275 for dealing with some of them.
1276
1277 @menu
1278 * No Drive::                    No Local ||MEDIUM|| Drive
1279 * Limited Space::               Not Enough Space
1280 * Install errors::              Error Messages from @code{Install}
1281 @end menu
1282
1283 @node No Drive, Limited Space, Trouble, Trouble
1284 @unnumberedsec No Local ||MEDIUM|| Drive
1285 If your ||HOST|| doesn't have an appropriate ||MEDIUM|| drive, you may
1286 still be able to install your software.  Check with your system
1287 administrator to see if another machine that runs Unix SVr4 at your site
1288 has a ||MEDIUM|| drive you can use.  If so:
1289
1290 @emph{If a shared filesystem is available} between the two machines, and
1291 it has enough space, see @ref{cross-install,,Installing with another
1292 machine's ||MEDIUM|| drive}.
1293
1294 @node Limited Space, Install errors, No Drive, Trouble
1295 @unnumberedsec Not Enough Space
1296 If you don't have enough space to install all of the ||MEDIUM||
1297 distribution, you can instead extract only the compiled code, or only
1298 the source.
1299
1300 The following table summarizes the approximate space (rounded up to the
1301 next megabyte) needed for source and binaries.
1302 There is a little overlap between the partial installations: the
1303 documentation, and documentation tools, are always installed.
1304
1305 @table @r
1306 @item ||BD|| MB
1307 ||HOST|| binaries
1308
1309 @item ||SD|| MB
1310 source code for all programs
1311
1312 @item ||DF|| MB
1313 total
1314 @end table
1315
1316 You can easily extract these components independently of one another, by
1317 using the @samp{GNUDEVTsrc} or @samp{GNUDEVTbin} arguments to @code{pkgadd}.
1318
1319 @node Install errors,  , Limited Space, Trouble
1320 @unnumberedsec Error Messages from @code{Install}
1321 The @code{Install} script checks for many errors and inconsistencies in
1322 the way its arguments are used.  The messages are meant to be
1323 self-explanatory.  Here is a list of a few messages where further
1324 information might be useful:
1325
1326 @ifset FIXMES
1327 @quotation
1328 @emph{FIXME!} These are probably bogus, they're basically from Cygnus
1329 @code{Install}.
1330 @end quotation
1331 @end ifset
1332 @table @code
1333 @item Cannot read from device @var{||MEDstr||}
1334 The error message ends with the ||MEDIUM|| device or directory that
1335 @code{pkgadd} was trying to use.  Please check that it is the device you
1336 intended; possible causes of trouble might include leaving off the
1337 @samp{/dev/} prefix at the front of a device name.  A typo in the
1338 device name might also cause this problem.
1339
1340 If the problem is neither of these things, perhaps your ||MEDIUM||
1341 device can't read our ||MEDIUM||; @pxref{No Drive,,No Local ||MEDIUM||
1342 Drive}, for a discussion of how to use another machine's ||MEDIUM||
1343 drive.
1344
1345 @item @dots{} This is a problem.
1346 @itemx Cannot cd to @var{installdir}
1347 @itemx I do not know why I cannot create @var{installdir}
1348 @itemx hello.c fails to run
1349 @itemx test-ioctl.c fails to run
1350 @itemx I do not know how to remove an arch called @dots{}
1351 These errors (the first covers anything that ends in @samp{This is a
1352 problem}) are from paranoia checks; they are issued for situations that
1353 other checks should have covered, or for unlikely situations that
1354 require further diagnosis.  
1355
1356 If you get one of these messages, please 
1357 @itemize @bullet
1358 @item
1359 @strong{call the Cygnus hotline, +1 415 322 7836}, or 
1360 @item
1361 send electronic mail to @samp{help@@cygnus.com}. 
1362 @end itemize
1363 @end table
1364
1365 @node Rebuilding, Removing, Trouble, Top
1366 @unnumbered Rebuilding From Source
1367
1368 All Cygnus products are free software; your Developer's Kit includes
1369 complete source code for all programs.
1370
1371 Cygnus Support has implemented an automatic configuration scheme to
1372 adapt the programs to different environments.
1373
1374 Rebuilding the programs from source requires these steps:
1375 @enumerate
1376 @item
1377 configuration
1378 @item
1379 compilation
1380 @item
1381 installation
1382 @end enumerate
1383
1384 For example, executing the following commands in sequence will rebuild
1385 and install a native version of all the tools in a nonstandard
1386 directory:
1387
1388 @cartouche
1389 @example
1390 @b{cd progressive/src}
1391 @b{./configure ||HOSTstr|| -prefix=/local/gnu}
1392 @b{make clean all install}
1393 @end example
1394 @end cartouche
1395
1396 @noindent
1397 We discuss each step in detail in the following sections.
1398
1399 @menu
1400 * Configuration::               Configuration
1401 * Config Names::                Specifying Names for Hosts and Targets
1402 * configure Options::           @code{configure} Options
1403 * Compilation::                 Compilation
1404 * Installation::                Installation
1405 @end menu
1406
1407 @node Configuration, Config Names, Rebuilding, Rebuilding
1408 @unnumberedsec Configuration
1409
1410 You can configure the software in this release by using the shell
1411 script called @code{configure}.  The shell script requires one argument:
1412 the host type.  There are also several possible options, including a
1413 @w{@samp{-target=}} option to configure for cross-system development.
1414
1415 @node Config Names, configure Options, Configuration, Rebuilding
1416 @section Specifying Names for Hosts and Targets
1417
1418 The specifications used for hosts and targets in the @code{configure}
1419 script are based on a three-part naming scheme, but some short predefined
1420 aliases are also supported.  The full naming scheme encodes three pieces
1421 of information in the following pattern:
1422
1423 @example
1424 @var{architecture}-@var{vendor}-@var{os}
1425 @end example
1426
1427 @ifset FIXMES
1428 @quotation
1429 @emph{FIXME!} What is real alias for Solaris/SPARC?
1430 @end quotation
1431 @end ifset
1432 For example, you can use the alias @code{solar} as a @var{host} argument
1433 or in a @w{@samp{-target=@var{target}}} option, but the equivalent full name
1434 is @samp{sparc-sun-solaris2}.
1435
1436 @quotation
1437 @emph{Warning:} @code{configure} can represent a very large number of
1438 combinations of architecture, vendor, and OS.  There is by no means
1439 support for all possible combinations!
1440 @end quotation
1441
1442 @node configure Options, Compilation, Config Names, Rebuilding
1443 @section @code{configure} Options
1444
1445 This section summarizes the @code{configure} options and arguments.
1446 Your Developer's Kit contains full online documentation for the Cygnus
1447 configure system.  @inforef{Using Configure,,configure.info}, to read
1448 about @code{configure} in more detail, including information on how the
1449 @code{configure} options relate to @file{Makefile} variables.
1450
1451 @example
1452 configure @r{[}-prefix=@var{dest}@r{]} 
1453           @r{[}-exec-prefix=@var{bindest}@r{]} 
1454           @r{[}-srcdir=@var{path}@r{]}
1455           @r{[}-norecursion@r{]} 
1456           @r{[}-target=@var{target}@r{]}
1457           @var{host}
1458 @end example
1459
1460 @ifset FIXMES
1461 @quotation
1462 @emph{FIXME!} Show complete configure option list used for release?
1463 @end quotation
1464 @end ifset
1465 @table @code
1466 @item -prefix=@var{dest}
1467 @var{dest} is an installation directory @emph{path prefix},
1468 the root for the directories where @code{make install} will
1469 place things.  After you configure with this option, @code{make install}
1470 will install info files in @file{@var{dest}/info}, man pages in
1471 @file{@var{dest}/man}, and---unless you also use
1472 @w{@samp{-exec-prefix}}---compiled programs in @file{@var{dest}/bin},
1473 and libraries in @file{@var{dest}/lib}. 
1474 If you specify @w{@samp{-prefix=/local}}, for example, @code{make
1475 install} puts the development tools in @file{/local/bin}.
1476
1477 @emph{WARNING:} the default @var{dest} path prefix in the source is not
1478 the same as the prefix for the preconfigured binaries distributed by Cygnus.
1479
1480 @w{@samp{-prefix=/opt/gnu/progressive-||RELNO||}} was used to build this
1481 Cygnus Progressive Release.  If you do not use @w{@samp{-prefix}}, the
1482 installation directory is @file{/usr/local}.
1483
1484 @item -exec-prefix=@var{bindest}
1485 @w{@samp{-exec-prefix}} serves the same purpose as @w{@samp{-prefix}}, but
1486 affects only machine-dependent targets (compiled programs and
1487 libraries).  Specifying both @w{@samp{-prefix}} and @w{@samp{-exec-prefix}}
1488 allows you to segregate machine-dependent files, so that
1489 machine-independent files can be shared.  
1490
1491 @emph{WARNING:} the default @var{bindest} path prefix in the source is not
1492 the same as the prefix for the preconfigured binaries distributed by Cygnus.
1493
1494 @w{@samp{-exec-prefix=/opt/gnu/progressive-||RELNO||}} was
1495 used to build this Cygnus Progressive Release.
1496 If you do not use @w{@samp{-exec-prefix}}, the default directory for
1497 machine-dependent targets is whatever was specified with @file{-prefix}
1498 (by default, @file{/usr/local}).
1499
1500 @item -srcdir=@var{path}
1501 @emph{Warning: This option is only supported if you use @sc{gnu}
1502 @code{make}} (which is included in this Cygnus Progressive--||RELNO|| release).
1503 Use this option to make configurations in directories separate from the
1504 source directories. @code{configure} writes configuration specific files
1505 in the current directory, but arranges for them to use the source in the
1506 directory @var{path}.  @code{configure} will create directories under
1507 the working directory in parallel to the source directories below
1508 @var{path}.  Among other things, you can use this to build (or maintain)
1509 several configurations simultaneously, in separate directories.
1510
1511 @item -norecursion
1512 Configure only the directory level where @code{configure} is executed; do not
1513 propagate configuration to subdirectories.
1514
1515 @item -target=@var{target}
1516 Configure the development tools for cross-development (compiling,
1517 debugging, or other processing) of programs running on the specified
1518 @var{target}.  Without this option, programs are configured ``native'',
1519 that is, for managing programs that run on the same machine (@var{host})
1520 as the development tools themselves.
1521
1522 There is no convenient way to generate a list of all available targets.
1523
1524 @item @var{host} @dots{}
1525 Configure the development tools to run on the specified @var{host}.
1526
1527 There is no convenient way to generate a list of all available hosts.
1528 @end table
1529
1530 The @w{@samp{-prefix=@var{dest}}} and @w{@samp{-exec-prefix=@var{bindest}}}
1531 options are particularly important.  If you don't specify a @var{dest}
1532 or @var{bindest} directory, the @file{Makefile} installs binaries in
1533 subdirectories of @file{/usr/local}.  These options are important
1534 because the @var{dest} and @var{bindest} directories are used for
1535 several purposes:
1536
1537 @enumerate
1538 @item
1539 @var{bindest} is the directory where binaries are installed.
1540
1541 @item
1542 @var{bindest} is built into the compiler itself for the
1543 locations of @sc{gcc} specific include files, the locations of @sc{gcc}
1544 subprograms, and the location of the @sc{gcc} specific library
1545 @file{libgcc.a}.
1546
1547 @item
1548 @var{dest} is compiled into @code{info} as the default directory
1549 for the documentation.
1550
1551 @end enumerate
1552
1553 @node Compilation, Installation, configure Options, Rebuilding
1554 @unnumberedsec Compilation
1555
1556 After you've run @code{configure} (which writes the final
1557 @file{Makefile} in each directory), compilation is straightforward.
1558 To compile all the programs in the Developer's Kit, run:
1559
1560 @cartouche
1561 @example
1562 @b{make}
1563 @end example
1564 @end cartouche
1565
1566 The overall @file{Makefile} propagates the value of the @code{CC}
1567 variable explicitly, so that you can easily control the compiler used in
1568 this step.  @code{CFLAGS} is treated the same way.  For instance, to
1569 build the compiler a second time, using @sc{gcc} to compile itself
1570 (after building and installing it in the alternate directory
1571 @file{/local/gnu}), you might use
1572
1573 @cartouche
1574 @example
1575 @b{make CC=/local/gnu/H-sun4/bin/gcc CFLAGS=-O}
1576 @end example
1577 @end cartouche
1578
1579 The conventional targets @samp{all}, @samp{install}, and @samp{clean}
1580 are supported at all levels of @file{Makefile}.  Other targets are
1581 supported as well, as appropriate in each directory; please read the
1582 individual @file{Makefile} for details.  Each @file{Makefile} in the
1583 source directories includes ample comments to help you read it.  If you
1584 are not familiar with @code{make}, refer to @ref{Overview,,Overview of
1585 @code{make}, make.info, GNU Make: A Program for Directing
1586 Recompilation}.
1587
1588 @node Installation,  , Compilation, Rebuilding
1589 @unnumberedsec Installation
1590
1591 Whether you configure an alternative path using @code{-prefix}, or you
1592 use the default installation path @file{/usr/local}, you can install the
1593 software by executing:
1594
1595 @cartouche
1596 @example
1597 @b{make install}
1598 @end example
1599 @end cartouche
1600
1601 @node Removing, Cygnus-FSF, Rebuilding, Top
1602 @unnumbered Removing Parts of the Developer's Kit
1603 You can use the @code{pkgrm} command to remove either part of this
1604 release from where @code{pkgadd} installed it.
1605
1606 To do this, call @code{pkgrm} with either or both of the arguments
1607 @samp{GNUDEVTkit} (to remove binaries) or @samp{GNUDEVTsrc} (to remove
1608 source).  For example, suppose you never look at the source, and are
1609 running short of disk space; you can remove the source, while leaving
1610 the rest of the Progressive Release undisturbed, as follows:
1611
1612 @cartouche
1613 @example
1614 eg# @b{/usr/sbin/pkgrm GNUDEVTsrc}
1615 @end example
1616 @end cartouche
1617
1618 To remove the complete Progressive Release of the Developer's Kit from
1619 your system (if, eventually, you no longer want it), specify both
1620 package names as arguments to @code{pkgrm}
1621
1622 @node Cygnus-FSF, Cygnus-Support, Removing, Top
1623 @unnumbered Cygnus Releases and the FSF
1624
1625 Most of the tools in this Developer's Kit are originally from the Free
1626 Software Foundation (FSF).  You can get versions of all these tools
1627 from the FSF as well as from Cygnus.  In general, Cygnus Progressive
1628 Releases add to FSF software in the following ways:
1629 @c UPDATE! more differences bet Cygnus/FSF releases?
1630
1631 @itemize @bullet
1632 @item
1633 Commercial support is available.  Cygnus adds value to FSF releases in
1634 large measure by offering outstanding support services.
1635 @item
1636 Coordination.  The tools in your Developer's Kit are certified to work
1637 together; you need not worry about tools being out of step with each other.
1638 @item
1639 Bug fixes.  A Progressive Release includes many fixes, already integrated
1640 into the programs.  Cygnus repairs bugs discovered during testing, and
1641 also tracks and includes bug fixes developed for other Cygnus customers
1642 or distributed over the Internet.
1643 @item
1644 Bug reporting.  Cygnus releases include the tool @code{send_pr}, which
1645 you can use to make sure your problem reports receive prompt attention,
1646 and are also incorporated in our future tests.
1647 @item
1648 Documentation.  Cygnus revises and adds to available FSF
1649 documentation to give you better descriptions of all the software tools.
1650 @item
1651 Stability.  Cygnus tests (and uses) all the programs it releases.
1652 @end itemize
1653
1654 @c FIXME! If we can say something about this, remove @ignore/@end ignore
1655 @c        and fill in below:
1656 @ignore
1657 This particular Cygnus Progressive release differs from the nearest
1658 corresponding FSF distributions in these important details:
1659
1660 FILL IN HERE!
1661
1662 @end ignore
1663
1664 @node Cygnus-Support,  , Cygnus-FSF, Top
1665 @unnumbered About Cygnus Support
1666
1667 Cygnus Support was founded in 1989 to provide commercial support for
1668 free software.  Cygnus supplies products and services that benefit
1669 advanced development groups by allowing them to use state-of-the-art
1670 tools without having to maintain them.  With Cygnus Support, sites that
1671 once were forced to do their own tool support can recover that valuable
1672 staff time.  Former users of proprietary software now may choose
1673 supported free software, combining the advantages of both worlds.
1674
1675 Free software is faster, more powerful, and more portable than its
1676 proprietary counterparts.  It evolves faster because users who want to
1677 make improvements are free to do so.  Cygnus tracks these
1678 improvements and integrates them into tested, stable versions ready
1679 for commercial use, then backs this software with comprehensive
1680 support.
1681
1682 With Cygnus Support as your partner, you will have the software and
1683 the support you need to meet your business objectives.  Cygnus
1684 is intimately familiar with this software from extensive experience
1685 using, debugging, and implementing it.  You get direct access to the
1686 most qualified support people: the authors of the software.
1687
1688 We provide ``vintage'' releases---the most stable versions, which have
1689 been though even more extensive use and testing---or up-to-the minute
1690 ``progressive'' releases, for those who need the very latest version.
1691
1692 Because all our improvements are also free software, you can
1693 distribute them widely within your organization, or to your customers,
1694 without extra cost.
1695
1696 @sp 4
1697
1698 @display
1699 Cygnus Support
1700 814 University Avenue
1701 Palo Alto, CA 94301, USA
1702
1703 +1 415 322 3811
1704 hotline: +1 415 322 7836
1705 email: @code{info@@cygnus.com}
1706 fax: +1 415 322 3270
1707 @end display
1708
1709 @bye