* coffread.c (coff_symtab_read): Handle C_LABEL symbols like
[platform/upstream/binutils.git] / install-texi.in
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 FIXME: XCOMP stuff not ready to go.  For example,
10 @c FIXME: no mention of lack of -msoft-float support for XCOMP, yet.
11 @c
12 @c This file describes how to install a Cygnus Progressive Release.
13 @c
14 @c Copyright (C) 1991, 1992 Cygnus Support
15 @c This text may be freely distributed under the terms of the GNU
16 @c General Public License.
17 @c
18 @c $Id$
19 @c         CONFIG: One of these hosts should be set, the others clear:
20 @set HOSTsun4
21 @clear HOSTsun3
22 @clear HOSTdecstation
23 @clear HOSTrs6000
24 @clear HOSTiris
25 @c         CONFIG: In addition, XCOMP should be set for discussion of
26 @c                cross-compilation facilities 
27 @clear XCOMP
28 @c
29 @c
30 @iftex
31 @c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
32 @c implements Cygnus modifications to the texinfo manual style.
33 @input texiplus
34 @c The include file "smpklug.texi" is a kluge to deal with local
35 @c document production issues at Cygnus; it's safe to comment out this
36 @c line if you don't have (or don't want) the file.
37 @input smpklug.texi
38 @smallbook
39 @cropmarks
40 @setchapternewpage on
41 @finalout
42 @end iftex
43 @settitle Progressive--||RELNO|| Installation
44 @tex
45 % override-override: the following \font lines are redundant if you're
46 % using an unmodified FSF texinfo.  
47 \globaldefs=1
48 \font\texttt=cmtt10 scaled \magstephalf\let\tentt=\texttt
49 \font\textsl=cmsl10 scaled \magstephalf\let\tensl=\textsl
50 \font\textsf=cmss10 scaled \magstephalf\let\tensf=\textsf
51 \globaldefs=0
52 %end override-override
53 % WARNING: NONSTANDARD USAGE we need \tensf for print, without
54 % upsetting info.  We weren't using @b in this note, so I redefine it:
55 %
56 \global\def\b#1{{\tensf #1}}
57 \global\parindent=0pt
58 @end tex
59 @titlepage
60 @title Installation Notes
61 @sp 3
62 @table @strong
63 @item Cygnus Support Developer's Kit
64 @item Progressive Release ||RELNO|| for ||HOST||
65 @item {}
66 @item Contents
67 @end table
68 @c TOGGLE XREF DISPLAY TO AVOID SQUARE BRACKETS OR QUOTES:
69 @c (Cygnus "texiplus.tex" hack.  If you want standard texinfo remove
70 @c or comment-out instances of @altref).
71 @altref
72 @format
73 @ref{Brief,,Installing in Brief}
74 @ref{Contents,,Release Contents}.
75 @ref{Platforms,,Supported Platforms}.
76
77 @ref{Installing,,Installing the Developer's Kit}.
78 @ref{local-install,,Installing in @file{/usr/cygnus} with a local tape drive}.
79 @ref{cross-install,,Installing in @file{/usr/cygnus} with another machine's tape drive}.
80 @ref{Examples,,Installation Examples}.
81 @ref{Install-Options,,Installation Options}
82
83 @ref{Why-fixincludes,,Why Convert System Header Files?}
84 @ref{Links,,Links for Easy Access and Updating}
85 @ref{Paths,,Changing the Paths}
86 @ref{Trouble,,Some Things that Might go Wrong}
87 @ref{Rebuilding,,Rebuilding From Source}.
88 @ref{Removing,,Removing the Developer's Kit}.
89
90 @ref{Cygnus-FSF,,Cygnus Progressive Releases and the FSF}.
91 @ref{Cygnus-Support,,About Cygnus Support}.
92 @end format
93 @c TOGGLE XREF DISPLAY BACK, TO RESTORE MARKERS AROUND SECNAMES:
94
95 @altref
96 @author Cygnus Support @hfill hotline: +1 415 322 7836
97 @page
98
99 @tex
100 \def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
101 \xdef\Rmanvers{{\it Installation Notes (Progressive Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
102 {\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
103 \TeX{}info \texinfoversion\par }
104 \global\def\manvers{Progressive ||RELNO|| for ||HOST||}
105 @end tex
106
107 @vskip 0pt plus 1filll
108 Copyright @copyright{} 1991, 1992 Cygnus Support
109
110 Permission is granted to make and distribute verbatim copies of
111 this manual provided the copyright notice and this permission notice
112 are preserved on all copies.
113
114 Permission is granted to copy and distribute modified versions of this
115 manual under the conditions for verbatim copying, provided also that
116 the entire resulting derived work is distributed under the terms of a
117 permission notice identical to this one.
118
119 Permission is granted to copy and distribute translations of this manual
120 into another language, under the above conditions for modified versions.
121
122 @end titlepage
123
124 @ifinfo
125 @node Top, Brief, (dir), (dir)
126
127 This file is about the Cygnus Developer's Kit: what's in it, how to
128 install it, and how to reconfigure it.
129
130 @menu
131 * Brief::                       Installing in Brief
132 * Contents::                    Release Contents
133 * Requirements::                System Requirements
134 * Installing::                  Installing the Developer's Kit
135 * Examples::                    Installation Examples
136 * Install-Options::             Installation Options
137 * Links::                       Links for Easy Access and Updating
138 * Running::                     Running the Programs
139 * Paths::                       Changing the Paths
140 * Trouble::                     Some Things that Might go Wrong
141 * Rebuilding::                  Rebuilding From Source
142 * Removing::                    Removing Parts of the Developer's Kit
143 * Cygnus-FSF::                  Cygnus Releases and the FSF
144 * Cygnus-Support::              About Cygnus Support
145
146  --- The Detailed Node Listing ---
147
148 Release Contents
149
150 * Platforms::                   Supported Platforms
151
152 Supported Platforms
153
154 * Requirements::                System Requirements
155
156 Installing the Developer's Kit
157
158 * local-install::               Installing with a local tape drive
159 * cross-install::               Installing with another machine's tape drive
160
161 Installation Examples
162
163 * binaries::                    Installing binaries only
164 * ||HOSTstr||-remote::          Reading tape on any machine, finishing on ||HOST||
165 * source-remove::               Removing Source
166
167 Installation Options
168
169 * Why-fixincludes::             Why Convert System Header Files?
170
171 Links for Easy Access and Updating
172
173 * Running::                     Running the Programs
174
175 Some Things that Might go Wrong
176
177 * No Drive::                    No Local Tape Drive
178 * Limited Space::               Not Enough Space
179 * No access::                   No Access to @file{/usr/cygnus}
180 * Install errors::              Error Messages from @code{Install}
181
182 Rebuilding From Source
183
184 * Configuration::               Configuration
185 * Config Names::                Specifying Names for Hosts and Targets
186 * configure Options::           @code{configure} Options
187 * Compilation::                 Compilation
188 * Installation::                Installation
189 @end menu
190
191 @end ifinfo
192
193 @node Brief, Contents, Top, Top
194 @unnumberedsubsubsec Installing in Brief
195 @strong{You can run the brief installation procedure if:}
196 @itemize @bullet
197 @item 
198 You have a ||TAPdflt|| release tape (see tape label), and
199 @item
200 Your ||HOST|| has its own ||TAPdflt|| tape drive (@code{||DEVdflt||}), and
201 @item
202 You're willing to use the installation directory @file{/usr/cygnus}, and
203 @item
204 You have at least ||DF|| MB available in @code{/usr} (try @samp{df /usr})
205 @end itemize
206 Otherwise, see @ref{Installing,,Installing the
207 Developer's Kit}.
208
209 @strong{Steps for Brief Install:}
210
211 @enumerate
212 @item 
213 Make sure you can write in @samp{/usr/cygnus}, by typing:
214
215 @example
216 eg$ @b{su root}
217 password:           @i{(enter root password)}
218 # @b{mkdir /usr/cygnus}        @i{(ignore ``File exists'' error if any)}
219 # @b{chmod 777 /usr/cygnus}
220 # @b{exit}              @i{(root access not needed beyond this)}
221 @end example
222
223 @item
224 Load the Progressive--||RELNO|| tape into your tape drive.
225
226 @item
227 Get the @code{Install} script from the tape:
228
229 @example
230 eg$ @b{cd /tmp}
231 eg$ @b{tar xfv ||DEVdflt|| Install}
232 @end example
233
234 @item
235 Run the @code{Install} script:
236
237 @example
238 eg$ @b{./Install}
239 @end example
240
241 @code{Install} displays messages about its activity, ending with
242
243 @example
244 Done.
245 @end example
246
247 @item
248 Build symbolic links to make execution paths easy:
249
250 @example
251 eg$ @b{cd /usr/cygnus}
252 eg$ @b{ln -s progressive-||RELNO|| progressive}
253 eg$ @b{su root}       @i{(may need root access to put link in /usr)}
254 password:
255 # @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
256 # @b{exit}            @i{(give up root access as soon as possible)}
257 @end example
258
259 @item
260 Use your Cygnus customer-ID (see cover letter) to tag your copy of our
261 problem-report form:
262
263 @example
264 eg$ @b{/usr/progressive/bin/install@t{_}cid @var{ID}}
265 @end example
266
267 @item
268 Remove public write access from @file{/usr/cygnus}.  See your System
269 Administrator for the correct permissions at your site.
270 @end enumerate
271
272 You're done!  Anyone who puts @samp{/usr/progressive/bin} in her or his
273 @code{PATH} can use the Developer's Kit.
274
275 @node Contents, Requirements, Brief, Top
276 @unnumbered Release Contents
277
278 This Developer's Kit is a Cygnus Support @dfn{Progressive Release}: the
279 programs in it are recent versions, which have been tested and certified
280 both individually and as a coordinated suite of tools.
281 The kit includes both source and binaries for:  
282
283 @c UPDATE! Anything new shoveled in?
284
285 @c ifclear doesn't seem to nest well.  For that reason, and due to lack
286 @c of "else" to ifclear, and due to lack of expressions in ifset/ifclear
287 @c arguments, "DoFullTable" used in this contorted fashion:
288
289 @set DoFullTable
290
291 @ifset HOSTrs6000
292 @clear DoFullTable
293 @end ifset
294
295 @ifset HOSTdecstation
296 @clear DoFullTable
297 @end ifset
298
299 @ifset HOSTiris
300 @clear DoFullTable
301 @end ifset
302
303 @table @t
304 @item gcc
305 C compiler
306
307 @item g++
308 C++ compiler
309
310 @ifset DoFullTable
311 @item gas
312 assembler
313 @end ifset
314
315 @item gdb
316 debugger
317
318 @item gprof
319 Performance analyzer
320
321 @item byacc
322 Parser generator
323
324 @item flex
325 Fast lexical analyzer generator
326
327 @ifset DoFullTable
328 @item ld
329 linker
330 @end ifset
331
332 @item make
333 compilation control program
334
335 @item libg++.a
336 C++ class library
337
338 @ifset DoFullTable
339 @item ar
340 Manages object code archives
341
342 @item nm
343 Lists object file symbol tables
344
345 @item objdump
346 Displays object file information
347
348 @item ranlib
349 Generates archive index
350
351 @item size
352 Lists section and total sizes
353
354 @item strip
355 Discards symbols
356 @end ifset
357
358 @item makeinfo
359 @itemx info
360 Documentation tools
361
362 @item texinfo.tex
363 @itemx texindex
364 Documentation printing tools
365
366 @item send_pr
367 Script to send structured problem reports to Cygnus
368
369 @item diff
370 Compares source files
371
372 @item patch
373 Installs source fixes
374 @end table
375
376 @menu
377 * Platforms::                   Supported Platforms
378 @end menu
379
380 @node Platforms,  , Contents, Contents
381 @unnumberedsec Supported Platforms
382
383 @table @strong
384 @item ||HOST||
385 All programs in your Developer's Kit run on ||HOST|| computers; we
386 ship binaries (configured to install and run under @file{/usr/cygnus})
387 as well as all source code.
388
389 @ignore
390 @ifset HOSTsun4
391 @item @sc{sparc} clones
392 Whenever this note refers to ``Sun-4'' computers, you can also use a
393 @sc{sparc} clone---that is, any computer system based on the @sc{sparc}
394 architecture, regardless of its manufacturer.
395 @end ifset
396 @end ignore
397
398 @ifset XCOMP
399 @item Cross-Compiling
400 @sc{gcc}, @sc{gas}, @sc{gdb}, and the binary
401 utilities are preconfigured to generate and manage code for ||TARGET||
402 architectures.
403 @end ifset
404
405 @item Other Platforms
406 For information on other platforms or other programs
407 that we may support, please contact Cygnus Support at:
408
409 @table @strong
410 @item voice
411 +1 415 322 3811
412 @item hotline
413 +1 415 322 7836
414 @item fax
415 +1 415 322 3270
416 @item email
417 @code{info@@cygnus.com}
418 @end table
419 @end table
420
421 @menu
422 * Requirements::                System Requirements
423 @end menu
424
425 @node Requirements, Installing, Contents, Top
426 @unnumbered System Requirements
427
428 @table @strong
429 @item OS Level
430 Progressive Release ||RELNO|| for ||HOST|| hosts requires
431 @ifset HOSTsun4
432 SunOS 4.1.1 (or later).
433 @end ifset
434 @ifset HOSTsun3
435 SunOS 4.1 (or later).
436 @end ifset
437 @ifset HOSTdecstation
438 ULTRIX 4.0.  For Ultrix 4.2, some workarounds are required even to run
439 the installation script; if you would like to try these workarounds,
440 please call the Cygnus hotline @w{+1 415 322 7836}.
441 @end ifset
442 @ifset HOSTrs6000
443 AIX 3.1.5 (or later).
444
445 @item IBM Software Patches
446 Debugging code compiled with @sc{gcc} on the RS/6000 requires that you
447 upgrade the AIX assembler @code{/bin/as} with a replacement that is available
448 from IBM.  Without the upgrade, you can still compile your code, but
449 @samp{gcc -g @dots{}} will not work.
450
451 Any IBM RS/6000 customer can order and get the replacement assembler,
452 and install it on one or more machines.  It is distributed both on
453 diskette and via VNET, for downloading via ftp.  VNET distribution may
454 be desirable if you have a friendly IBM representative nearby with a
455 networked VM machine.
456
457 In either case, to order the replacement assembler from IBM, first
458 execute @samp{lslpp -h bos.obj} to determine your release level.  (Look
459 on the @samp{ACTIVE} line for something like @samp{03.01.0005.0012}.)
460 Then (in North America) call IBM Support at 800--237--5511.  Ask for
461 emergency shipment of the RS/6000 AIX fix for APAR IX22829.  They may
462 ask you to verify that it's a fix for ``@code{.extern foo} conflicts
463 with defining @code{foo}''; say yes.  They may also ask you for your
464 customer number.  If you do not know it, you will still be able to get
465 the fix, but you will have to be persistent.
466
467 You will receive a tar or tar.Z file containing an assembler plus
468 installation instructions.
469
470 If you tell them you're running AIX version 3.2, you may be told that
471 no fix is available yet.  In fact the 3.1.5 fix works fine on version
472 3.2.  Request it anyway.
473
474 IBM is working on a second upgrade to replace IX22829 and fix two
475 more problems with debug information.  There's no scheduled availability
476 yet, but it's probably summer 1992.  Ask for the fix for APAR IX26107,
477 ``Don't allow @code{.csect name[BS]} or @code{[UC]}''.  (Without the
478 second upgrade, debugging works, but there may be occasional
479 aberrations.)
480
481 IBM has corresponding support organizations outside of North America.
482 If you are not in North America, call your IBM branch office and ask
483 them to put you in touch with the department that handles emergency
484 fixes for AIX on the RS/6000.  If that doesn't work, ask for the
485 department that handles software defect support for AIX on the RS/6000.
486 Then ask for the emergency APAR fix.
487 @end ifset
488 @ifset HOSTiris
489 IRIX 4.0.1 (or later).
490 @end ifset
491 @c UPDATE! fill in OS for all supported platforms.
492
493 @item Tape Drive
494 You need access to a tape drive that can read the distribution tape.
495 The tape drive need not be on the ||HOST|| where you want to run
496 the software; but it is best if the machine with a tape drive and your ||HOST||
497 can mount a common file system.  At the very least, you need some sort
498 of file transfer capability between the machine with a tape drive and
499 your ||HOST||.
500
501 Cygnus release tapes are labelled to identify the kind of
502 tape used; either ||TAPdflt|| tapes, or Exabyte tapes.
503
504 @item Disk Space
505 The total space required to extract and install
506 binaries and source for all programs is
507 ||DF|| megabytes.
508
509 The software is configured to go into @file{/usr/cygnus}.  If you have
510 space available, but not in the same file system as @file{/usr}, you can
511 use @samp{ln -s} to create @file{/usr/cygnus} as a symbolic link to the
512 file system where you do have the space available.
513
514 If you don't have enough space, you may be able to install binaries only;
515 see @ref{Limited Space,,Not Enough Space}.  The space required for
516 installing the binaries on ||HOST|| systems is ||BD|| megabytes.
517
518 @item Write Access
519 You need to to sign on to an account with write access to @file{/usr},
520 or at least to an existing @file{/usr/cygnus} directory.  If you can't
521 write in @file{/usr} or @file{/usr/cygnus}, see @ref{No access,,No
522 Access to @file{/usr/cygnus}}.
523
524 Root access is @emph{not} necessary to run the installation itself;
525 but you might need it briefly to arrange for a writable
526 @file{/usr/cygnus} directory, and to build a symbolic link in @file{/usr} after
527 the installation is complete.  The detailed installation instructions show
528 when this may be necessary.  We recommend you avoid @samp{su root} whenever
529 possible.
530 @end table
531
532 @node Installing, Examples, Requirements, Top
533 @unnumbered Installing the Developer's Kit
534
535 @iftex
536 This note shows the different parts of examples like this:
537 @table @asis
538 @item @code{Computer output is shown in typewriter font.}
539 @item @b{Your input is indicated by a sans-serif font.}
540 @item @i{Comments appear in italic font}.
541 @end table
542 @end iftex
543 In examples, we show the system prompt as @samp{eg$}.
544
545 The Cygnus Progressive--||RELNO|| tape contains two separate @code{tar}
546 files.  The first file contains a script called @code{Install};
547 the second file contains the Progressive software.  To get
548 the software onto your system, you need to make sure you have the space
549 you'll need for it, and get the @code{Install} script off the tape.
550 Then you can use the @code{Install} script to choose what else to
551 install.
552
553 Here is more detail about what to do.  Two checklists follow.  The first
554 checklist shows what to do if you have a tape drive on the same system
555 (a ||HOST||) where you want to install the Developer's Kit; the
556 second shows how to use another networked machine to read the tape, then
557 finish the installation on your ||HOST||.  
558
559 Both checklists give the procedure for installing the Developer's Kit
560 under @file{/usr/cygnus} (which can be a symbolic link from somewhere
561 else, if you like).  We recommend you use this location for the
562 software, because the precompiled, ready-to-run versions of the tools
563 are configured this way.  (If you want to use a different location, and
564 cannot establish a symbolic link from it to @file{/usr/cygnus}, please
565 see @ref{Install-Options,,Installation Options}.  To use the software
566 conveniently after installing elsewhere, you should reconfigure and
567 recompile from source; see @ref{Paths,,Changing the Paths}.)
568
569 Both checklists are very similar to @ref{Brief,,Installing in Brief},
570 but provide more discussion of each step, and offer alternatives for
571 tape drives, for systems whose available disk space is not in
572 @code{/usr}, and for installing only portions of the Developer's Kit.
573
574 @menu
575 * local-install::               Installing with a local tape drive
576 * cross-install::               Installing with another machine's tape drive
577 @end menu
578
579 @node local-install, cross-install, Installing, Installing
580 @unnumberedsubsec Installing in @file{/usr/cygnus}, with a local tape drive
581
582 This procedure is for a ||HOST|| that has its own tape drive.  
583
584 Installing this way will install all the source code, plus the binaries for
585 the ||HOST||.  If you don't want both source and binaries, stop after
586 extracting @code{Install} from the tape, and read about what options you
587 can use with @code{Install} in @ref{Install-Options,,Installation
588 Options}.  For examples of variations on what to install,
589 @xref{Examples,,Installation Examples}.
590
591 @enumerate
592 @item
593 find out the name of the @emph{non-rewinding} tape device on your
594 machine that can read the release tape.  Cygnus release tapes are
595 labelled to identify the kind of tape used---either ||TAPdflt|| or Exabyte.
596 @ifset HOSTiris
597 You must also be certain to use a @emph{non-byte-swapping} tape device.
598 See @samp{man tps} for details.
599 @end ifset
600 @ifset HOSTrs6000
601 On RS/6000 systems, you can find details on tape drives in
602 @samp{man rmt}.
603 @end ifset
604
605
606 You should use one of the following devices:
607 @table @emph
608 @item ||TAPdflt|| tapes
609 Use @file{||DEVdflt||} where the examples show @code{/dev/@var{tape}}.
610
611 @item Exabyte tapes
612 The device name depends on how your Exabyte tape drive was installed;
613 ask your system administrator.  
614 @ifset HOSTsun4
615 You will probably use one of
616 @file{/dev/nrst0} or @file{/dev/nrst1} where we show
617 @code{/dev/@var{tape}}.
618 @end ifset
619 @ifset HOSTsun3
620 You will probably use one of
621 @file{/dev/nrst0} or @file{/dev/nrst1} where we show
622 @code{/dev/@var{tape}}.
623 @end ifset
624 @end table
625
626 @item
627 Check that you have enough space available (@pxref{Requirements,,System
628 Requirements}) in @file{/usr}.  You can use @samp{df /usr} to check.
629
630 @item
631 Check whether there's already a @file{/usr/cygnus} directory, and
632 whether you can write in it.  Typing the following line checks both:
633
634 @cartouche
635 @example
636 eg$ @b{touch /usr/cygnus/test; rm /usr/cygnus/test}
637 @end example
638 @end cartouche
639
640 @noindent
641 @emph{If you get no errors from this line, skip the next step.}
642
643 @item
644 If you got ``No such file or directory'' or ``Permission denied''
645 errors, you need to sign on (or @code{su}) to an account that has
646 permission to write in @file{/usr} or in an existing @file{/usr/cygnus}
647 directory.  If only @code{root} has access, the best procedure is to
648 @code{su root} @emph{briefly}, to create a writable
649 @file{/usr/cygnus}---then return to your usual sign-on.  For instance:
650
651 @cartouche
652 @example
653 eg$ @b{su root}
654 password:           @i{enter root password}
655 # @b{mkdir /usr/cygnus}        @i{ignore ``File exists'' error if any}
656 # @b{chmod 777 /usr/cygnus}
657 # @b{exit}              @i{root access not needed beyond this}
658 eg$
659 @end example
660 @end cartouche
661
662 If you don't have access to @code{root} or to any account with
663 permission to write in @file{/usr} or @file{/usr/cygnus}, see @ref{No
664 access,,No Access to @file{/usr/cygnus}}.
665
666 @item
667 Load the Cygnus Support release tape (labelled ``Progressive--||RELNO||'') into
668 your system's tape drive.
669
670 @item
671 Extract the @code{Install} script (remember, @var{tape} stands for the
672 device name for the appropriate tape drive on your system):
673
674 @cartouche
675 @example
676 eg$ @b{cd /tmp}
677 eg$ @b{tar xfv /dev/@var{tape} Install}
678 @end example
679 @end cartouche
680
681 @c UPDATE! Check error messages from tar on non-Suns when supported
682 If you get any error messages beginning ``tar: can't open'', check that
683 the tape is correctly placed in your tape drive, and that you typed the
684 right name for @var{tape}.
685
686 It doesn't really matter where you put @code{Install}, though these
687 examples assume @file{/tmp}.  Don't worry about losing the script after
688 you've done the install; when you extract anything from the tape,
689 another copy of @code{Install} is saved (for future reference) in
690 @file{/usr/cygnus/progressive-||RELNO||}.
691
692 @quotation
693 @emph{If you don't want both source and binaries, stop now,} and read about
694 what options you can use with @code{Install} in
695 @ref{Install-Options,,Installation Options}.  For examples of variations
696 on what to install, @xref{Examples,,Installation Examples}.
697 @end quotation
698
699 @item
700 Now you can extract all the software by running @code{Install}.  Use
701 the @samp{-tape=} option to identify your tape drive:
702
703 @cartouche
704 @example
705 eg$ @b{/tmp/Install -tape=/dev/@var{tape}}
706 @end example
707 @end cartouche
708
709 This is a time-consuming step.  @code{Install} will begin by using
710 @code{tar} to extract software for your system, leaving a log in
711 @file{/usr/cygnus/tar.log}.  Then it prepares copies of your system
712 header files, converted to comply with @sc{ansi} C
713 (@pxref{Why-fixincludes,,Why Convert System Header Files?}); a log for
714 this step goes in
715 @file{/usr/cygnus/progressive-||RELNO||/fixincludes.log}.  @emph{Your
716 system's original header files are not changed;} @code{Install} writes
717 the converted copies in a separate, @sc{gcc}-specific directory.
718
719 As it executes, @code{Install} displays occasional messages to keep you
720 informed about which of these steps it's executing.  Among them, these
721 messages mark completion of the major stages of installation:
722
723 @cartouche
724 @example
725 Cygnus Support software distribution extracted!
726
727 Fixed include files installed!
728
729 Cygnus Support software distribution tested!
730
731 Done.
732 @end example
733 @end cartouche
734
735 @ifset HOSTrs6000
736 If the test step fails on a @samp{.s} file, you may not have the
737 correct assembler from IBM installed.  @xref{Requirements,,System
738 Requirements}.
739 @end ifset
740
741 @item
742 Now that the software is on your system, you need to arrange for users
743 to run it conveniently.  We recommend the following links; see
744 @ref{Links,,Links for Easy Access and Updating}, for a discussion.
745
746 @cartouche
747 @example
748 eg$ @b{cd /usr/cygnus}
749 eg$ @b{ln -s progressive-||RELNO|| progressive}
750
751 eg$ @b{su root}            @i{root privileges may be needed}
752 password:               @i{to put link in /usr}
753 # @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
754 # exit                  @i{give up root privileges as soon as possible}
755 @end example
756 @end cartouche
757
758 @item
759 Finally, in case you need to send problem reports to Cygnus, we've
760 included a script @code{send_pr} (and a supporting online template) to
761 structure and transmit your reports.  Please use the
762 script @code{install_cid} to record your Cygnus customer ID in your copy
763 of the problem report form.  (You can find your customer ID in the cover
764 letter that came with this release; or call the Cygnus hotline, 
765 @w{+1 415 322 7836}.)  This will enable us to respond as quickly as
766 possible to any problem reports you send.
767
768 @cartouche
769 @example
770 eg$ @b{/usr/cygnus/progressive-||RELNO||/H-||HOSTstr||/bin/install@t{_}cid @var{ID}}
771 install_cid: `@var{ID}' is now the default customer ID
772  for send_pr
773 @end example
774 @end cartouche
775
776 @item
777 We recommended permissions @code{777} for the @file{/usr/cygnus}
778 directory, to be sure you could run this procedure.  However, for the
779 long term, it is usually not a good idea to leave directories
780 world-writable (especially directories where executables come from).
781
782 For better security, remove public write access from @file{/usr/cygnus}.
783 See your System Administrator for the correct permissions at your site.
784 @end enumerate
785
786 You're done!  Anyone who puts @samp{/usr/progressive/bin} in her or his
787 @code{PATH} can use the Developer's Kit.
788
789 @node cross-install,  , local-install, Installing
790 @unnumberedsubsec Installing in @file{/usr/cygnus}, with another machine's tape drive 
791 This checklist is for a ||HOST|| that does not have its own tape drive,
792 but can share a file system with another machine that does have a tape
793 drive.  The other machine need not be a ||HOST||.  
794
795 Installing this way will install all the source, plus the binaries for
796 the ||HOST||.  If you don't want both source and binaries, stop after
797 extracting @code{Install} from the tape, and read about what options you
798 can use with @code{Install} in @ref{Install-Options,,Installation
799 Options}.  For examples of variations on what to install,
800 @xref{Examples,,Installation Examples}.
801
802 @enumerate
803 @item
804 find a machine with a suitable tape drive on the same network as your
805 ||HOST||, and sign on to it.  If the only machine with a tape
806 drive isn't on the network, @pxref{No Drive,,No Local Tape Drive}.
807
808 @item
809 find out the name of the @emph{non-rewinding} tape device on the machine
810 that can read the release tape.  Cygnus release tapes are labelled to
811 identify the kind of tape used---either ||TAPdflt||, or Exabyte.
812
813 You should use one of the following devices on ||HOST|| (or
814 compatible) systems:
815 @table @emph
816 @item ||TAPdflt|| tapes
817 Use @file{||DEVdflt||} where the examples show @code{/dev/@var{tape}}.
818
819 @item Exabyte tapes
820 The device name depends on how your Exabyte tape drive was installed;
821 check with your system administrator.  
822 @ifset HOSTsun4
823 You will probably use one of
824 @file{/dev/nrst0} or @file{/dev/nrst1} where the example shows
825 @code{/dev/@var{tape}}.
826 @end ifset
827 @ifset HOSTsun3
828 You will probably use one of
829 @file{/dev/nrst0} or @file{/dev/nrst1} where the example shows
830 @code{/dev/@var{tape}}.
831 @end ifset
832 @end table
833
834 @item
835 Choose a directory where you will install the Developer's Kit.  The
836 directory must be accessible from both machines (the one with the tape
837 drive, and the ||HOST|| where you want to use the software)---for
838 example, over NFS.  Wherever this note uses @var{shr}, substitute the
839 name of the directory you chose.
840
841 The shared directory need not have the same name on both machines,
842 though we show it as @var{shr} on both, for simplicity.
843
844 @item
845 Check that you have enough space available (@pxref{Requirements,,System
846 Requirements}) in @var{shr}.  You can use @samp{df @var{shr}} to check.
847
848 @item
849 Check whether there's already a @file{@var{shr}/cygnus} directory,
850 and whether you can write in it.  Typing the following line checks both:
851
852 @cartouche
853 @example
854 eg$ @b{touch @var{shr}/cygnus/test; rm @var{shr}/cygnus/test}
855 @end example
856 @end cartouche
857
858 @noindent
859 @emph{If you get no errors from this line, skip the next step.}
860
861 @item
862 If you got ``No such file or directory'' or ``Permission denied''
863 errors, you need to sign on (or @code{su}) to an account that has
864 permission to write in @var{shr} or in an existing
865 @file{@var{shr}/cygnus} directory.  If only @code{root} has access,
866 the best procedure is to @code{su root} @emph{briefly}, and create a writable
867 @file{@var{shr}/cygnus}---then return to your usual sign-on.  For
868 instance:
869
870 @cartouche
871 @example
872 eg$ @b{su root}
873 password:           @i{(enter root password)}
874 # @b{mkdir @var{shr}/cygnus}      @i{(ignore ``File exists'' error if any)}
875 # @b{chmod 777 @var{shr}/cygnus}
876 # @b{exit}              @i{root access not needed beyond this}
877 eg$
878 @end example
879 @end cartouche
880
881 @item
882 Load the Cygnus Support release tape (labelled ``Progressive--||RELNO||'') into
883 the tape drive.  In these examples, @var{tape} stands for the
884 device name for the appropriate tape drive on your system.
885
886 @item
887 The first file on the tape is a script called @code{Install}.
888 That script automates most of the installation procedure---but first you
889 need to bootstrap the installation by getting @code{Install} itself from
890 the tape.  It doesn't really matter where you put this initial
891 copy of @code{Install}; it is only used to get things started---these
892 examples assume you put it in @file{/tmp}.  When you use this copy of
893 @code{Install} to extract software from the tape, another copy of
894 @code{Install} will be saved in
895 @file{@var{shr}/cygnus/progressive-||RELNO||}.  Later, you will use that
896 second copy to finish the installation on your ||HOST||.
897
898 These commands will get @code{Install} into the @file{/tmp} directory
899 (remember, @var{tape} stands for the device name for the appropriate
900 tape drive on your system):
901
902 @cartouche
903 @example
904 eg$ @b{cd /tmp}
905 eg$ @b{tar xfv /dev/@var{tape} Install}
906 @end example
907 @end cartouche
908
909 @noindent
910 @c UPDATE! tar error messages on other hosts?
911 If you get any error messages beginning with something like ``tar: can't
912 open'', check that the tape is correctly placed in your tape drive, and
913 that you typed the right name for @var{tape}.
914
915 @quotation
916 @emph{If you don't want both source and binaries, stop now,} and read about
917 what options you can use with @code{Install} in
918 @ref{Install-Options,,Installation Options}.  For examples of variations
919 on what to install, @xref{Examples,,Installation Examples}.
920 @end quotation
921
922 @item
923 Now you can extract all the software by running @samp{Install extract}.
924 Use the @samp{-tape=} option to identify your tape drive, and the
925 @w{@samp{-installdir=}} option to point to the @var{shr} directory.
926
927 @cartouche
928 @example
929 eg$ @b{cd /tmp}
930 eg$ @b{./Install extract -tape=/dev/@var{tape} -installdir=@var{shr}/cygnus}
931 @end example
932 @end cartouche
933
934 This is a time-consuming step.  @code{Install} will use @code{tar} to
935 extract software for your system, leaving a log in the file
936 @file{@var{shr}/cygnus/tar.log}.
937
938 When @code{Install} is done extracting the tape contents, it
939 displays the messages
940
941 @cartouche
942 @example
943 Cygnus Support software distribution extracted!
944 Done.
945 @end example
946 @end cartouche
947
948 @item
949 Log on to the ||HOST|| where you want to use the software.
950
951 @item
952 Create a symbolic link from @file{@var{shr}/cygnus/progressive-||RELNO||}
953 to @file{/usr/cygnus/progressive-||RELNO||} on your ||HOST||.  You may
954 need to become @code{root} @emph{briefly}, as in this example:
955
956 @iftex
957 @widen{1pc}
958 @end iftex
959 @cartouche
960 @example
961 eg-||HOSTstr||$ @b{su root}
962 password:
963 # @b{mkdir /usr/cygnus}        @i{(ignore ``File exists'' error if any)}
964 # @b{chmod 777 /usr/cygnus}
965 # @b{ln -s @var{shr}/cygnus/progressive-||RELNO|| /usr/cygnus/progressive-||RELNO||}
966 # exit              @i{root access not needed beyond this}
967 @end example
968 @end cartouche
969 @iftex
970 @widen{-1pc}
971 @end iftex
972
973 @noindent
974 If you don't have access to any account with permission to write in
975 @file{/usr}, @pxref{No access,,No Access to @file{/usr/cygnus}}.
976
977 @item
978 Fix up system header files on your ||HOST||, and test the installation, with
979 the copy of @code{Install} that was placed in
980 @file{@var{shr}/cygnus/progressive-||RELNO||}:
981
982 @cartouche
983 @example
984 eg-||HOSTstr||$ @b{cd /usr/cygnus/progressive-||RELNO||}
985 eg-||HOSTstr||$ @b{./Install @b{f}ixincludes test}
986 @end example
987 @end cartouche
988
989 @noindent
990 A log for the @code{fixincludes} step goes in
991 @file{/usr/cygnus/progressive-||RELNO||/fixincludes.log}.  @emph{Your
992 system's original header files are not changed;} @code{Install} writes
993 the converted copies in a separate, @sc{gcc}-specific directory.
994
995 When each stage of this work is complete, @code{Install} displays these
996 messages (the last, @samp{Done.}, simply indicates that @code{Install}
997 has finished executing).
998
999 @cartouche
1000 @example
1001 Fixed include files installed!
1002
1003 Cygnus Support software distribution tested!
1004
1005 Done.
1006 @end example
1007 @end cartouche
1008
1009 @ifset HOSTrs6000
1010 If the test step fails on a @samp{.s} file, you may not have the
1011 correct assembler from IBM installed.  @xref{Requirements,,System
1012 Requirements}.
1013 @end ifset
1014
1015 @item
1016 Now that the software is on your system, you need to arrange for users
1017 to run it conveniently.  We recommend the following links; see
1018 @ref{Links,,Links for Easy Access and Updating}, for a discussion.
1019
1020 @cartouche
1021 @example
1022 eg-||HOSTstr||$ @b{cd /usr/cygnus}
1023 eg-||HOSTstr||$ @b{ln -s progressive-||RELNO|| progressive}
1024
1025 eg-||HOSTstr||$ @b{su root}      @i{root privileges may be needed}
1026 password:               @i{to put link in /usr}
1027 # @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
1028 # exit                  @i{give up root privileges as soon as possible}
1029 @end example
1030 @end cartouche
1031
1032 @item
1033 Finally, in case you need to send problem reports to Cygnus, we've
1034 included a script @code{send_pr} (and a supporting online form) to
1035 structure and transmit your reports.  Please use the
1036 script @code{install_cid} to record your Cygnus customer ID in your copy
1037 of the problem report form.  (You can find your customer ID in the cover
1038 letter that came with this release; or call the Cygnus hotline, 
1039 @w{+1 415 322 7836}.)  This will enable us to respond as quickly as
1040 possible to any problem reports you send.
1041
1042 @cartouche
1043 @example
1044 eg$ @b{/usr/cygnus/progressive-||RELNO||/H-||HOSTstr||/bin/install@t{_}cid @var{ID}}
1045 install_cid: `@var{ID}' is now the default customer ID
1046  for send_pr
1047 @end example
1048 @end cartouche
1049
1050 @item
1051 We recommended permissions @code{777} for the @file{/usr/cygnus} and
1052 @file{@var{shr}/cygnus} directories, to make sure you could run this
1053 procedure.  However, for the long term, it is usually not a good idea to
1054 leave directories world-writable (especially directories where
1055 executables come from).
1056
1057 For better security, remove public write access from @file{/usr/cygnus}
1058 and @file{@var{shr}/cygnus}.  See your System Administrator for the
1059 correct permissions at your site.
1060 @end enumerate
1061
1062 You're done!  Anyone who puts @samp{/usr/progressive/bin} in her or his
1063 @code{PATH} can use the Developer's Kit.
1064
1065 @node Examples, Install-Options, Installing, Top
1066 @unnumbered Installation Examples
1067
1068 Once you've extracted @code{Install} from your tape,
1069 you can tell @code{Install} what software to install, what form of the
1070 programs you need, and what installation steps to do.  Here are some
1071 examples covering common situations.  For a full explanation of each
1072 possible @code{Install} argument, @pxref{Install-Options,,Installation
1073 Options}.
1074
1075 @code{Install}'s default tape drive is @code{||DEVdflt||}, which is
1076 right for the most common cases (||TAPdflt|| tapes, read on ||HOST||
1077 systems).  If your tape drive is different, you need to use the
1078 @samp{-tape=/dev/@var{tape}} option; the examples show this option
1079 for completeness.  Remember to specify a @emph{non-rewinding} tape
1080 device.
1081
1082 @menu
1083 * binaries::                    Installing binaries only
1084 * ||HOSTstr||-remote::          Reading tape on any machine, finishing on ||HOST||
1085 * source-remove::               Removing Source
1086 @end menu
1087
1088 @node binaries, ||HOSTstr||-remote, Examples, Examples
1089 @unnumberedsubsec Installing binaries only
1090 @ignore
1091 @c ignore til UPDATE fulfilled for all hosts.
1092 For this example, we assume you've got the release on an Exabyte tape,
1093 and that your ||HOST|| reads Exabytes with 
1094 @samp{/dev/nrst1}.
1095 @c UPDATE! exabyes on non-Sun hosts?
1096 @end ignore
1097
1098 @cartouche
1099 @example
1100 @c eg$ @b{./Install -tape=/dev/nrst1 bin}
1101 eg$ @b{./Install -tape=/dev/@var{tape} bin}
1102 @end example
1103 @end cartouche
1104
1105 If you don't want the source---for instance, to save space---you can use
1106 the argument @samp{bin}.
1107
1108 @node ||HOSTstr||-remote, source-remove, binaries, Examples
1109 @unnumberedsubsec Reading tape on any machine, finishing on ||HOST||
1110
1111 @cartouche
1112 @example
1113 @emph{On a machine on your network with a tape drive:}
1114 eg-tp$ @b{./Install -tape=/dev/@var{tape} -installdir=@var{shr}/cygnus extract}
1115
1116 @emph{On your ||HOST||}
1117 eg$ @b{ln -s @var{shr}/cygnus /usr/cygnus}
1118 eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
1119 eg$ @b{./Install @b{f}ixincludes test}
1120 @end example
1121 @end cartouche
1122
1123 @noindent
1124 If your ||HOST|| doesn't have a tape drive, but another machine that can
1125 mount some shared directory @var{shr} does have one, you can carry out
1126 the first step of the installation from the machine with a tape drive,
1127 as shown.  Note that you have to say @samp{extract} on the
1128 @code{Install} command line.  This alerts @code{Install} to stop the
1129 install procedure after it reads the tape.  You still have to finish the
1130 installation, but the last two steps have to run on your ||HOST||.  (If
1131 you forget, there's no great harm done: @code{Install} will notice that
1132 it can't carry out a full installation on the wrong machine, and will
1133 stop with an error message---then you can go back and try again.  When
1134 @code{Install} notices a problem like this, it doesn't carry out
1135 @emph{any} action other than giving a helpful error message).
1136
1137 The @samp{fixincludes} part of the installation is essential.  Please
1138 see the full explanation (@pxref{Why-fixincludes,,Why Convert System
1139 Header Files?}), if you're curious.
1140
1141 @node source-remove,  , ||HOSTstr||-remote, Examples
1142 @unnumberedsubsec Removing Source
1143 The @code{Install} script can remove anything it can install.  For
1144 example, if after installing the complete Developer's Kit on your
1145 machine you decide to remove the source files:
1146
1147 @cartouche
1148 @example
1149 eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
1150 eg$ @b{./Install remove source}
1151 @end example
1152 @end cartouche
1153
1154 @noindent
1155 In general, to remove a part of the Developer's Kit, use the same
1156 @code{Install} command line that would extract that part, but add the
1157 keyword @code{remove}.  The @code{-tape} option is not necessary for
1158 removing.
1159
1160 @node Install-Options, Links, Examples, Top
1161 @unnumbered Installation Options
1162
1163 There are two kinds of command-line arguments to @code{Install}, which
1164 you can use to direct its operation:
1165 @itemize @bullet
1166 @item
1167 @emph{What form of the programs} to install.  You can choose among ||HOST||
1168 binaries (argument @code{bin}) and source code (@code{source}).
1169 If you don't specify either of these, @code{Install} assumes you want
1170 both source, and binaries for ||HOST||.
1171
1172 @item
1173 @emph{What installation actions} to carry out.  A full installation
1174 involves up to three steps, and @code{Install} has options to let you
1175 choose them explicitly.  The steps are
1176 @enumerate
1177 @item
1178 extracting source from the tape (option
1179 @code{extract})
1180 @item
1181 writing @sc{ansi}-C conforming copies of your system include files (needed
1182 for the compilation tools; option @code{fixincludes})
1183 @item
1184 running a simple test of the installed programs
1185 (option @code{test})
1186 @end enumerate
1187
1188 The last two of these actions (@code{fixincludes} and
1189 @code{test}) can only run on your ||HOST||.  If you read the
1190 tape on another machine, you must specify the @code{extract} option
1191 explicitly, to indicate that you don't expect the other two actions to
1192 run (and are aware of the need to run further installation steps on your
1193 ||HOST||).
1194 @end itemize
1195
1196 @code{Install} also has two command line options: @samp{-tape}
1197 and @w{@samp{-installdir}}.  You can use these to adapt the
1198 installation to your system.
1199
1200 Here is a summary of all of @code{Install}'s command-line options,
1201 followed by a more detailed explanation of each:
1202
1203 @example
1204 Install @r{[} -tape=/dev/@var{tape} @r{]}
1205        @r{[} -installdir=@var{directory} @r{]}
1206        @r{[} bin @r{]} @r{[} source @r{]}
1207        @r{[} extract @r{]} @r{[} fixincludes @r{]} @r{[} test @r{]}
1208        @r{[} remove @r{]}
1209 @end example
1210
1211 @table @code
1212 @item -tape=/dev/@var{tape}
1213 @itemx -tape=@var{tarfile}
1214 Specify the @emph{non-rewinding} device name for your tape drive as
1215 @var{tape}.
1216
1217 If you extract the installation script and tarfile on some other system,
1218 and transfer them to your ||HOST|| for installation, use use the name of
1219 the tarfile instead of a device name with @samp{-tape}.  @xref{No
1220 Drive,,No Local Tape Drive}, for more discussion.
1221
1222 @item -installdir=@var{directory}
1223 If you have no write access to @samp{/usr/cygnus} or @samp{/usr}, use
1224 this option to specify an alternate @var{directory} for placing your
1225 software---but beware: the software is configured to go in
1226 @samp{/usr/cygnus}, and you'll have to override or change that too.
1227 @xref{Paths,,Changing the Paths}.
1228
1229 @item bin
1230 @itemx source
1231 By default, @code{Install} extracts both source, and binaries for your
1232 ||HOST||.  Instead of relying on the default, you 
1233 can use these options to say exactly what forms you
1234 want.  You need to do this if
1235 @itemize @bullet
1236 @item 
1237 you want only binaries, or
1238 @item
1239 you want only source.
1240 @end itemize
1241
1242 @noindent
1243 @code{Install} is designed to share files, wherever
1244 possible, between installations for different hosts (of the same
1245 release).  If you get Cygnus release tapes configured for different
1246 hosts, there is no need to do a binary-only install of some of the
1247 tapes to save space on a shared file system; @code{Install} arranges the
1248 files so that all hosts will share the same source
1249 files.  Documentation files are shared as well.
1250 See @ref{Links,,Links for Easy Access and Updating}, for a
1251 discussion of how to manage the directory structure used for this
1252 purpose. 
1253
1254 @item extract
1255 @item fixincludes
1256 @item test
1257 A full installation includes up to three things: (1) extracting
1258 software from the tape; (2) creating @sc{ansi}-C conforming copies of your
1259 system's standard header files; and (3) testing the installation.
1260 You can execute these steps separately by specifying
1261 @samp{extract}, @samp{fixincludes}, or @samp{test} on the
1262 @code{Install} command line.  
1263
1264 After you run @samp{extract}, @samp{fixincludes} is essential if you're
1265 using the compiler.  @samp{fixincludes} @emph{does not change your
1266 system's original header files;} @code{Install} writes the converted
1267 copies in a separate, @sc{gcc}-specific directory.
1268 @xref{Why-fixincludes,,Why Convert System Header Files?}, for more
1269 discussion of the @samp{fixincludes} step.  @code{Install} will only
1270 attempt these last two steps if you run it on the ||HOST||.
1271
1272 @samp{test} is a confidence-building step, and doesn't
1273 actually change the state of the installed software.  The
1274 @samp{test} step may not make sense, depending on what
1275 other options you've specified---if you install only source, there's
1276 nothing to test.
1277
1278 If you specify a step that doesn't make sense, or if you run @code{Install}
1279 on a different machine but try to run @code{fixincludes} or
1280 @code{test}, @code{Install} will notice the error, and exit
1281 (before doing anything at all) with an error message, so you can try
1282 again.
1283
1284 When you run @samp{extract}, @code{Install} leaves a log file
1285 @file{tar.log} in the installation directory---by default, in @file{/usr/cygnus}.  When you run @samp{fixincludes},
1286 @code{Install} leaves a log file @file{fixincludes.log} in the
1287 @file{progressive-||RELNO||} subdirectory.
1288
1289 @item remove
1290 You can also use @code{Install} to remove parts of the release after
1291 you've installed them.  Identify what to remove with either of the
1292 command-line options @samp{source} or @samp{bin}; if you specify
1293 @samp{remove} as well, @code{Install} will try to erase parts of the
1294 installation from your system.  @xref{Removing,,Removing Parts of the Developer's
1295 Kit}, for an example.
1296 @end table
1297
1298 @menu
1299 * Why-fixincludes::             Why Convert System Header Files?
1300 @end menu
1301
1302 @node Why-fixincludes,  , Install-Options, Install-Options
1303 @unnumberedsec Why Convert System Header Files?
1304
1305 @c UPDATE! Is this really needed on @emph{all} hosts?
1306 It is very important to run @samp{Install fixincludes} (on @emph{each
1307 host} where you install the compiler binaries).  
1308
1309 When the @sc{ansi x3j11} committee finished developing a standard for
1310 the C language, a few things that had worked one way in many traditional
1311 C compilers ended up working differently in @sc{ansi} C.  Most of these
1312 changes are improvements.  But some Unix header files still rely on the
1313 old C meanings, in cases where the Unix vendor has not yet converted to
1314 using an @sc{ansi} C compiler for the operating system itself.
1315 @samp{Install fixincludes} does a mechanical translation that writes
1316 @sc{ansi} C versions of some system header files into a new,
1317 @sc{gcc}-specific include directory---@emph{your system's original
1318 header files are not affected.}
1319
1320 If you don't run @code{fixincludes}, the GNU C compiler can only use the
1321 original system header files when you compile new C programs.  @emph{In
1322 some cases, the resulting programs will fail at run-time}.
1323
1324 @node Links, Running, Install-Options, Top
1325 @unnumbered Links for Easy Access and Updating
1326 Once you've extracted them from the tape, the tools are installed under
1327 a directory named @file{progressive-||RELNO||}.  We put the release
1328 number in the directory name so that you can
1329 keep several releases installed at the same time, if you wish.  In order
1330 to simplify administrative procedures (such as upgrades to future Cygnus
1331 Progressive releases), we recommend that you establish a symbolic link
1332 @file{/usr/cygnus/progressive} to this directory.  For example, assuming
1333 you've used the default installation path:
1334
1335 @cartouche
1336 @example
1337 eg$ @b{cd /usr/cygnus}
1338 eg$ @b{ln -s progressive-||RELNO|| progressive}
1339 @end example
1340 @end cartouche
1341
1342 Directories of host-independent files (source and documentation) are
1343 installed directly under @file{progressive-||RELNO||}.  However, to
1344 accomodate binaries for multiple hosts in a single directory structure,
1345 the binary files for your ||HOST|| are in a subdirectory
1346 @file{H-||HOSTstr||}. 
1347
1348 This means that one more level of symbolic links is helpful, to allow
1349 your users to keep the same execution path defined even if they
1350 sometimes use ||HOST|| binaries and sometimes binaries for another
1351 machine.  Even if this doesn't apply now, you might want it in the
1352 future; establishing these links now can save your users the trouble of
1353 changing all their paths later.  The idea is to build
1354 @samp{/usr/progressive/bin} on each machine so that it points to the
1355 appropriate binary subdirectory for each machine---for instance,
1356 @samp{/usr/cygnus/progressive/H-||HOSTstr||}.
1357
1358 You may need to use @code{su} again briefly to establish these links:
1359
1360 @cartouche
1361 @example
1362 eg$ @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
1363 @end example
1364 @end cartouche
1365
1366 We recommend building these links as the very last step in the
1367 installation process.  That way, users at your site will only see
1368 software in @file{/usr/progressive} when you're satisfied that the
1369 installation is complete and successful.
1370
1371 @menu
1372 * Running::                     Running the Programs
1373 @end menu
1374
1375 @node Running, Paths, Links, Top
1376 @unnumbered Running the Programs
1377 Any users who wish to run the Cygnus development tools will need to make
1378 sure the @code{PATH} environment variable will find them.  If you create
1379 the symbolic links we recommend above, users who want to run the
1380 Developer's Kit---regardless of whether they need binaries for ||HOST||,
1381 or for some other platform---can use settings like one of the following
1382 in their initialization files.
1383
1384 @example
1385 @exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1386 @cartouche
1387 @b{PATH=/usr/progressive/bin:$PATH}
1388 @b{export PATH}
1389 @end cartouche
1390 @end example
1391
1392 @example
1393 @exdent For C shell:
1394 @cartouche
1395 @b{set path=(/usr/progressive/bin $path)}
1396 @end cartouche
1397 @end example
1398
1399 @noindent
1400 You should also ensure that your @code{man} command can pick up the
1401 manual pages for these tools.  Some @code{man} programs recognize a
1402 @code{MANPATH} environment variable.  If your @code{man} program is one
1403 of these, users at your site can also include in their initialization
1404 file lines like 
1405
1406 @example
1407 @exdent For Bourne-compatible shells:
1408 @cartouche
1409 @b{MANPATH=/usr/cygnus/progressive/man:$MANPATH:/usr/man}
1410 @b{export MANPATH}
1411 @end cartouche
1412 @end example
1413
1414 @example
1415 @exdent For C shell:
1416 @cartouche
1417 @b{setenv MANPATH /usr/cygnus/progressive/man:$MANPATH:/usr/man}
1418 @end cartouche
1419 @end example
1420
1421 If your @code{man} program doesn't recognize @samp{MANPATH}, you may
1422 want to copy or link the files from
1423 @file{progressive/man/man1} into your system's
1424 @file{man/man1}. @refill
1425
1426 @node Paths, Trouble, Running, Top
1427 @unnumbered Changing the Paths
1428 The binaries shipped by Cygnus are configured for installation under the
1429 directory @file{/usr/cygnus}.  In particular, @code{gcc}, @code{g++},
1430 and the documentation browser @code{info} need to know the location of
1431 the distribution.  
1432
1433 If you wish to run the tools after installing them in another location,
1434 you can either:
1435 @itemize @bullet
1436 @item
1437 use environment variables (and, for @code{g++}, command-line options)
1438 to tell the tools where to find pieces of the installation; or
1439
1440 @item
1441 rebuild the tools from source, with your preferred paths built in.
1442 @xref{Rebuilding,,Rebuilding from Source}, if you want to take this
1443 approach.
1444 @end itemize
1445
1446 In rare circumstances, the auxiliary installation script
1447 @code{install_cid} will also require a workaround if you do not install
1448 in @file{/usr/cygnus}.
1449
1450 @subheading GCC Paths
1451 @c FIXME! Add something about specs file?
1452 You can run the compiler @sc{gcc} without recompiling, even if you
1453 install the distribution in an alternate location, by first setting the
1454 environment variable @samp{GCC_EXEC_PREFIX}.  This variable specifies
1455 where to find the executables, libraries, and data files used by the
1456 compiler.  Its value will be different depending on which set of
1457 binaries you need to run.  For example, if you install the tape
1458 distribution under @file{/local} (instead of the default
1459 @file{/usr/cygnus}), and you wish to run @sc{gcc} as a native ||HOST||
1460 compiler, you could set @samp{GCC_EXEC_PREFIX} as follows.  (You can
1461 type the first two lines as a single line, if you like; the example
1462 is split using the line continuation character @samp{\} only
1463 to make it fit on the printed page.)
1464
1465 @cartouche
1466 @example
1467 @b{GCC@t{_}EXEC@t{_}PREFIX=/local/progressive-||RELNO||/H-||HOSTstr||/@t{\}
1468 lib/gcc-lib/||TARGET||/||GCCvn||/}
1469 @b{export GCC@t{_}EXEC@t{_}PREFIX}
1470 @end example
1471 @end cartouche
1472
1473 @noindent
1474 The example assumes you use a shell compatible with the Bourne shell; if
1475 you run the C shell, use the following instead.  (Again, the line
1476 continuation character @samp{\} is only used for convenience in the
1477 example; feel free to use a single line.)
1478
1479 @cartouche
1480 @example
1481 @b{setenv GCC@t{_}EXEC@t{_}PREFIX /local/progressive-||RELNO||/H-||HOSTstr||/@t{\}
1482 lib/gcc-lib/||TARGET||/||GCCvn||/}
1483 @end example
1484 @end cartouche
1485
1486 @quotation
1487 @emph{Warning: The trailing slash @samp{/} is important}.  The @code{gcc}
1488 program uses @samp{GCC_EXEC_PREFIX} simply as a prefix.  If you omit the
1489 slash (or make any other mistakes in specifying the prefix), @code{gcc}
1490 will fail with a message beginning @samp{installation problem, cannot
1491 exec@dots{}}.
1492 @end quotation
1493
1494 @subheading G++ Paths
1495 To compile C++ programs (when you've installed the binaries for the
1496 compiler somewhere other than @file{/usr/cygnus}), you need to set
1497 @code{GCC_EXEC_PREFIX} as for C programs.  You @emph{also} need to include
1498 a @samp{-L} option and a @samp{-I} option on the @code{g++} command
1499 line, to locate the @sc{g++} specific header files and library.  For example,
1500 assuming you installed the ||HOST|| binaries under @file{/local}, and
1501 want to compile a C++ program @samp{program.cc}:
1502
1503 @enumerate
1504 @item
1505 Set @code{GCC_EXEC_PREFIX} in one of the ways shown above;
1506
1507 @item
1508 Invoke the @code{g++} compiler with at least the following options:
1509 @end enumerate
1510 @cartouche
1511 @example
1512 eg$ @b{g++ -L/local/progressive-||RELNO||/H-||HOSTstr||/lib@t{\}
1513 -I/local/progressive-||RELNO||/H-||HOSTstr||/lib/g++-include program.cc}
1514 @end example
1515 @end cartouche
1516
1517 @subheading @code{info} Paths
1518 The standalone documentation browser @code{info} also needs to know the
1519 location of its documentation files in the distribution.   The default
1520 location, @file{/usr/cygnus/progressive-||RELNO||/info}, is compiled in.
1521 If you install elsewhere, set the environment variable @code{INFOPATH}
1522 to indicate the alternate location.
1523
1524 For example, again assuming you installed under @file{/local}:
1525
1526 @example
1527 @exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1528 @cartouche
1529 @b{INFOPATH=/local/progressive-||RELNO||/info}
1530 @b{export INFOPATH}
1531 @end cartouche
1532 @end example
1533
1534 @example
1535 @exdent For C shell:
1536 @cartouche
1537 @b{setenv INFOPATH /local/progressive-||RELNO||/info}
1538 @end cartouche
1539 @end example
1540
1541 @noindent
1542 If you built @file{progressive} as a symbolic link to
1543 @file{progressive-||RELNO||}, as recommended in @ref{Links,,Links for
1544 Easy Access and Updating}, then you could simply use
1545 @file{/local/progressive/info} as the value of @code{INFOPATH} in the
1546 examples above.
1547
1548 @subheading @code{install_cid} Paths
1549 The auxiliary script @code{install_cid} is provided as a convenience, to
1550 fill in your site's customer ID as the default for your local version of
1551 the Cygnus @code{send_pr} problem-reporting script.
1552
1553 If you don't install in @file{/usr/cygnus}, @samp{install_cid
1554 @var{ID}} will still work correctly in most cases.  However,
1555 there is one situation where @code{install_cid} fails:
1556
1557 @itemize @bullet
1558 @item
1559 @emph{if} your site already has a release tree for
1560 @samp{/usr/cygnus/progressive-||RELNO||}, 
1561 @item
1562 @emph{and} you run @code{Install} with an alternative installation
1563 directory.
1564 @end itemize
1565
1566 @noindent
1567 In this case, you must manually edit your customer ID into your site's
1568 copy of @code{send_pr}.  Please call the Cygnus hotline, 
1569 @w{+1 415 322 7836}, if you have any trouble with this.
1570
1571 @node Trouble, Rebuilding, Paths, Top
1572 @unnumbered Some Things that Might go Wrong
1573
1574 We've tried to make the installation of your Developer's Kit as painless
1575 as possible.  Still, some complications may arise.  Here are suggestions
1576 for dealing with some of them.
1577
1578 @menu
1579 * No Drive::                    No Local Tape Drive
1580 * Limited Space::               Not Enough Space
1581 * No access::                   No Access to @file{/usr/cygnus}
1582 * Install errors::              Error Messages from @code{Install}
1583 @end menu
1584
1585 @node No Drive, Limited Space, Trouble, Trouble
1586 @unnumberedsec No Local Tape Drive
1587 If your ||HOST|| doesn't have an appropriate tape drive, you may
1588 still be able to install your software.  Check with your system
1589 administrator to see if another machine at your site has a tape drive
1590 you can use.  If so:
1591 @table @emph
1592 @item If a shared filesystem is available
1593 between the two machines, and it has enough space, create
1594 @samp{/usr/cygnus} on your ||HOST|| (the one where you want to install
1595 this Progressive Release) as a symbolic link to a directory where the
1596 other machine (the one with a tape drive) can write.  Then go ahead and
1597 run @code{Install} from the machine with a tape drive.  You'll have to
1598 run @samp{Install fixincludes} and @samp{Install test} from your
1599 ||HOST|| afterwards; @pxref{cross-install,,Installing with another
1600 machine's tape drive}.
1601
1602 @item If some form of filetransfer is available 
1603 (such as @code{uucp}), read the tape using a system utility (for
1604 instance, @code{dd} on Unix systems; see the system documentation for
1605 the machine with a tape drive).  There are two files on the
1606 distribution tape; the first contains just the @code{Install} script,
1607 and the second is a compressed @code{tar} format file containing the
1608 rest of the release.  Read both of these files, and transfer them to
1609 your own machine.  Then run @code{Install} as shown in
1610 @ref{local-install,,Installing with a local tape drive}, but use
1611 @samp{-tape=@var{tarfile}} to specify the name of the installation
1612 file, instead of @samp{-tape=/dev/@var{tape}} as shown in the
1613 examples.  In the simplest case, for example (starting after you've
1614 transferred @code{Install} and the tar file to your system):
1615
1616 @cartouche
1617 @example
1618 eg$ @b{./Install -tape=@var{tarfile}}
1619 @end example
1620 @end cartouche
1621
1622 @end table
1623
1624 @node Limited Space, No access, No Drive, Trouble
1625 @unnumberedsec Not Enough Space
1626 If you don't have enough space to install all of the tape
1627 distribution, you can instead extract only the compiled code, or only
1628 the source.
1629
1630 The following table summarizes the approximate space (rounded up to the
1631 next megabyte) needed for source and binaries.
1632 There is a little overlap between the partial installations: the
1633 documentation, and documentation tools, are always installed.
1634
1635 @table @r
1636 @item ||BD|| MB
1637 ||HOST|| binaries
1638
1639 @item ||SD|| MB
1640 source code for all programs
1641
1642 @item ||DF|| MB
1643 ||HOST|| total
1644 @end table
1645
1646 You can easily extract these components independently of one another, by
1647 using the @samp{source} or @samp{bin} arguments to the @code{Install}
1648 script provided on your release tape.
1649 @xref{Install-Options,,Installation Options}.
1650
1651 @node No access, Install errors, Limited Space, Trouble
1652 @unnumberedsec No Access to @file{/usr/cygnus}
1653
1654 If you can't sign on to an account with access to write in @file{/usr}
1655 or @file{/usr/cygnus}, use the @samp{-installdir=@var{directory}} option
1656 to @code{Install} to specify a different installation directory, where
1657 you @emph{can} write.  For example, if all the other installation
1658 defaults are right, you can execute something like @samp{./Install
1659 -tape=/dev/@var{tape} -installdir=@var{mydir}}.  You'll need to either
1660 override default paths for the pre-compiled tools, or else recompile the
1661 software.
1662
1663 @quotation
1664 @emph{WARNING:} If you can't install in @file{/usr/cygnus} (or link your
1665 installation directory to that name), some of the defaults configured
1666 into the Progressive--||RELNO|| distribution won't work.
1667 @xref{Paths,,Changing the Paths}, for information on overriding or
1668 reconfiguring these defaults.
1669 @end quotation
1670
1671 @node Install errors,  , No access, Trouble
1672 @unnumberedsec Error Messages from @code{Install}
1673 The @code{Install} script checks for many errors and inconsistencies in
1674 the way its arguments are used.  The messages are meant to be
1675 self-explanatory.  Here is a list of a few messages where further
1676 information might be useful:
1677 @table @code
1678 @item Cannot read from TAPE device, @var{tape}
1679 The error message ends with the tape device @code{Install} was trying to
1680 use.  Please check that it is the device you intended; possible causes of
1681 trouble might include leaving off the @samp{/dev/} prefix at the front
1682 of the device name.  A typo in the device name might also cause this
1683 problem.  
1684
1685 If the problem is neither of these things, perhaps your tape device can't
1686 read our tape; @pxref{No Drive,,No Local Tape Drive}, for a discussion
1687 of how to use another machine's tape drive.
1688
1689 @item @dots{} This is a problem.
1690 @itemx Cannot cd to @var{installdir}
1691 @itemx I do not know why I cannot create @var{installdir}
1692 @itemx hello.c fails to run
1693 @itemx test-ioctl.c fails to run
1694 @itemx I do not know how to remove an arch called @dots{}
1695 These errors (the first covers anything that ends in @samp{This is a
1696 problem}) are from paranoia checks; they are issued for situations that
1697 other checks should have covered, or for unlikely situations that
1698 require further diagnosis.  
1699
1700 If you get one of these messages, please 
1701 @itemize @bullet
1702 @item
1703 @strong{call the Cygnus hotline, +1 415 322 7836}, or 
1704 @item
1705 send electronic mail to @samp{help@@cygnus.com}. 
1706 @end itemize
1707 @end table
1708
1709 @node Rebuilding, Removing, Trouble, Top
1710 @unnumbered Rebuilding From Source
1711
1712 All Cygnus products are free software; your Developer's Kit includes
1713 complete source code for all programs.
1714
1715 Cygnus Support has implemented an automatic configuration scheme to
1716 adapt the programs to different environments.
1717
1718 Rebuilding the programs from source requires these steps:
1719 @enumerate
1720 @item
1721 configuration
1722 @item
1723 compilation
1724 @item
1725 installation
1726 @end enumerate
1727
1728 For example, executing the following commands in sequence will rebuild
1729 and install a ||HOST|| native version of all the tools in a nonstandard
1730 directory:
1731
1732 @cartouche
1733 @example
1734 eg$ @b{cd progressive-||RELNO||/src}
1735
1736 eg$ @b{./configure ||HOSTstr|| -prefix=/local/gnu}
1737 Created "Makefile" in @var{installdir}/progressive-||RELNO||/src
1738
1739 eg$ @b{make clean all info install install-info >make.log}
1740 @dots{} @i{output for @code{make} steps follows}
1741 @end example
1742 @end cartouche
1743
1744 @noindent
1745 We discuss each step in detail in the following sections.
1746
1747 @menu
1748 * Configuration::               Configuration
1749 * Config Names::                Specifying Names for Hosts and Targets
1750 * configure Options::           @code{configure} Options
1751 * Compilation::                 Compilation
1752 * Installation::                Installation
1753 @end menu
1754
1755 @node Configuration, Config Names, Rebuilding, Rebuilding
1756 @unnumberedsec Configuration
1757
1758 You can configure the software in this release by using the shell
1759 script called @code{configure}.  The shell script requires one argument:
1760 the host type.  There are also several possible options, including a
1761 @samp{-target=} option to configure for cross-system development.
1762
1763 @node Config Names, configure Options, Configuration, Rebuilding
1764 @section Specifying Names for Hosts and Targets
1765
1766 The specifications used for hosts and targets in the @code{configure}
1767 script are based on a three-part naming scheme, but some short predefined
1768 aliases are also supported.  The full naming scheme encodes three pieces
1769 of information in the following pattern:
1770
1771 @example
1772 @var{architecture}-@var{vendor}-@var{os}
1773 @end example
1774
1775 For example, you can use the alias @code{sun4} as a @var{host} argument
1776 or in a @samp{-target=@var{target}} option, but the equivalent full name
1777 is @samp{sparc-sun-sunos4}.
1778
1779 @quotation
1780 @emph{Warning:} @code{configure} can represent a very large number of
1781 combinations of architecture, vendor, and OS.  There is by no means
1782 support for all possible combinations!
1783 @end quotation
1784
1785 @node configure Options, Compilation, Config Names, Rebuilding
1786 @section @code{configure} Options
1787
1788 This section summarizes the @code{configure} options and arguments.
1789 Your Developer's Kit contains full online documentation for the Cygnus
1790 configure system.  @inforef{Using Configure,,configure.info}, to read
1791 about @code{configure} in more detail, including information on how the
1792 @code{configure} options relate to @file{Makefile} variables.
1793
1794 @example
1795 configure @r{[}-prefix=@var{dest}@r{]} 
1796           @r{[}-exec-prefix=@var{bindest}@r{]} 
1797           @r{[}-srcdir=@var{path}@r{]}
1798           @r{[}-norecursion@r{]} 
1799           @r{[}-target=@var{target}@r{]}
1800           @var{host}
1801 @end example
1802
1803 @noindent
1804 The binaries on your tape were configured using
1805
1806 @cartouche
1807 @example
1808 configure -prefix /usr/cygnus/progressive-||RELNO|| \
1809   -exec-prefix /usr/cygnus/progressive-||RELNO||/H-||HOSTstr|| \
1810   ||HOSTstr||
1811 @end example
1812 @end cartouche
1813
1814 @table @code
1815 @item -prefix=@var{dest}
1816 @var{dest} is an installation directory @emph{path prefix}, the root for
1817 the directories where @code{make install} will place things.  After you
1818 configure with this option, @samp{make install install-info} will
1819 install info files in @file{@var{dest}/info}, man pages in
1820 @file{@var{dest}/man}, and---unless you also use
1821 @samp{-exec-prefix}---compiled programs in @file{@var{dest}/bin}, and
1822 libraries in @file{@var{dest}/lib}.  If you specify
1823 @samp{-prefix=/local}, for example, @code{make install} puts the
1824 development tools in @file{/local/bin}.
1825
1826 @emph{WARNING:} the default @var{dest} path prefix in the source is not
1827 the same as the prefix for the preconfigured binaries distributed by Cygnus.
1828
1829 @samp{-prefix=/usr/cygnus/progressive-||RELNO||} was used to build this
1830 Cygnus Progressive Release.  If you do not use @code{-prefix}, the
1831 installation directory is @file{/usr/local}.
1832
1833 @item -exec-prefix=@var{bindest}
1834 @samp{-exec-prefix} serves the same purpose as @samp{-prefix}, but
1835 affects only machine-dependent targets (compiled programs and
1836 libraries).  Specifying both @samp{-prefix} and @samp{-exec-prefix}
1837 allows you to segregate machine-dependent files, so that
1838 machine-independent files can be shared.  
1839
1840 @emph{WARNING:} the default @var{bindest} path prefix in the source is not
1841 the same as the prefix for the preconfigured binaries distributed by Cygnus.
1842
1843 @samp{-exec-prefix=/usr/cygnus/progressive-||RELNO||/H-||HOSTstr||} was
1844 used to build this Cygnus Progressive Release.
1845 If you do not use @samp{-exec-prefix}, the default directory for
1846 machine-dependent targets is whatever was specified with @file{-prefix}
1847 (by default, @file{/usr/local}).
1848
1849 @item -srcdir=@var{path}
1850 @emph{Warning: This option is only supported if you use @sc{gnu}
1851 @code{make}} (which is included in the Cygnus Progressive--||RELNO|| release).
1852 Use this option to make configurations in directories separate from the
1853 source directories. @code{configure} writes configuration specific files
1854 in the current directory, but arranges for them to use the source in the
1855 directory @var{path}.  @code{configure} will create directories under
1856 the working directory in parallel to the source directories below
1857 @var{path}.  Among other things, you can use this to build (or maintain)
1858 several configurations simultaneously, in separate directories.
1859
1860 @item -norecursion
1861 Configure only the directory level where @code{configure} is executed; do not
1862 propagate configuration to subdirectories.
1863
1864 @item -target=@var{target}
1865 Configure the development tools for cross-development (compiling,
1866 debugging, or other processing) of programs running on the specified
1867 @var{target}.  Without this option, programs are configured ``native'',
1868 that is, for managing programs that run on the same machine (@var{host})
1869 as the development tools themselves.
1870
1871 There is no convenient way to generate a list of all available targets.
1872
1873 @item @var{host} @dots{}
1874 Configure the development tools to run on the specified @var{host}.
1875
1876 There is no convenient way to generate a list of all available hosts.
1877 @end table
1878
1879 The @samp{-prefix=@var{dest}} and @samp{-exec-prefix=@var{bindest}}
1880 options are particularly important.  If you don't specify a @var{dest}
1881 or @var{bindest} directory, the @file{Makefile} installs binaries in
1882 subdirectories of @file{/usr/local}.  These options are important
1883 because the @var{dest} and @var{bindest} directories are used for
1884 several purposes:
1885
1886 @enumerate
1887 @item
1888 @var{bindest} is the directory where binaries are installed.
1889
1890 @item
1891 @var{bindest} is built into the compiler itself for the
1892 locations of @sc{gcc} specific include files, the locations of @sc{gcc}
1893 subprograms, and the location of the @sc{gcc} specific library
1894 @file{libgcc.a}.
1895
1896 @item
1897 @var{dest} is compiled into @code{info} as the default directory
1898 for the documentation.
1899
1900 @end enumerate
1901
1902 @node Compilation, Installation, configure Options, Rebuilding
1903 @unnumberedsec Compilation
1904
1905 After you've run @code{configure} (which writes the final
1906 @file{Makefile} in each directory), compilation is straightforward.
1907 To compile all the programs in the Developer's Kit, run:
1908
1909 @cartouche
1910 @example
1911 @b{make all info >make.log}
1912 @end example
1913 @end cartouche
1914
1915 The examples suggest capturing the @code{make} output in a
1916 @file{make.log} file, because the output is lengthy.  
1917
1918 The overall @file{Makefile} propagates the value of the @code{CC}
1919 variable explicitly, so that you can easily control the compiler used in
1920 this step.  @code{CFLAGS} is treated the same way.  For instance, to
1921 build the compiler a second time, using @sc{gcc} to compile itself
1922 (after building and installing it in the alternate directory
1923 @file{/local/gnu}), you might use
1924
1925 @cartouche
1926 @example
1927 @b{make CC=/local/gnu/H-sun4/bin/gcc CFLAGS=-O all info  >make.log}
1928 @end example
1929 @end cartouche
1930
1931 The conventional targets @samp{all}, @samp{install}, and @samp{clean}
1932 are supported at all levels of @file{Makefile}.  Other targets are
1933 supported as well, as appropriate in each directory; please read the
1934 individual @file{Makefile} for details.  Each @file{Makefile} in the
1935 source directories includes ample comments to help you read it.  If you
1936 are not familiar with @code{make}, refer to @ref{Overview,,Overview of
1937 @code{make}, make.info, GNU Make: A Program for Directing
1938 Recompilation}.
1939
1940 @node Installation,  , Compilation, Rebuilding
1941 @unnumberedsec Installation
1942
1943 Whether you configure an alternative path using @code{-prefix}, or you
1944 use the default installation path @file{/usr/local}, you can install the
1945 software by executing:
1946
1947 @cartouche
1948 @example
1949 @b{make install install-info}
1950 @end example
1951 @end cartouche
1952
1953 @node Removing, Cygnus-FSF, Rebuilding, Top
1954 @unnumbered Removing Parts of the Developer's Kit
1955 You can use the same @code{Install} script that was used to install the
1956 Developer's Kit on your system, to remove parts of the release.
1957 (Remember that the @code{Install} script was automatically saved for you
1958 as @file{/usr/cygnus/progressive-||RELNO||/Install}.)
1959
1960 To do this, decide what you want to remove; then call @code{Install}
1961 with the option @samp{remove} on the command line, as well as all the
1962 options that you would use to install that portion of the release
1963 (@pxref{Install-Options,,Installation Options}).  For example, suppose
1964 you never look at the source, and are running short of disk
1965 space; you can remove the source, while leaving the rest of
1966 the Progressive Release undisturbed, as follows:
1967
1968 @cartouche
1969 @example
1970 eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
1971 eg$ @b{./Install remove source}
1972 @end example
1973 @end cartouche
1974
1975 @noindent
1976 You should see the following messages confirming the software was
1977 removed:
1978
1979 @cartouche
1980 @example
1981 Cygnus Support software distribution removed!
1982 Done.
1983 @end example
1984 @end cartouche
1985
1986 To remove the complete Progressive Release of the Developer's Kit from your system
1987 (if, eventually, you no longer want it), delete the directory
1988 @file{/usr/cygnus/progressive-||RELNO||} and all its contents.  
1989
1990 @node Cygnus-FSF, Cygnus-Support, Removing, Top
1991 @unnumbered Cygnus Releases and the FSF
1992
1993 Most of the tools in this Developer's Kit are originally from the Free
1994 Software Foundation (FSF).  You can get versions of all these tools
1995 from the FSF as well as from Cygnus.  In general, Cygnus Progressive
1996 Releases add to FSF software in the following ways:
1997 @c UPDATE! more differences bet Cygnus/FSF releases?
1998
1999 @itemize @bullet
2000 @item
2001 Commercial support is available.  Cygnus adds value to FSF releases in
2002 large measure by offering outstanding support services.
2003 @item
2004 Coordination.  The tools in your Developer's Kit are certified to work
2005 together; you need not worry about tools being out of step with each other.
2006 @item
2007 Bug fixes.  A Progressive Release includes many fixes, already integrated
2008 into the programs.  Cygnus repairs bugs discovered during testing, and
2009 also tracks and includes bug fixes developed for other Cygnus customers
2010 or distributed over the Internet.
2011 @item
2012 Bug reporting.  Cygnus releases include the tool @code{send_pr}, which
2013 you can use to make sure your problem reports receive prompt attention,
2014 and are also incorporated in our future tests.
2015 @item
2016 Documentation.  Cygnus revises and adds to available FSF
2017 documentation to give you better descriptions of all the software tools.
2018 @item
2019 Stability.  Cygnus tests (and uses) all the programs it releases.
2020 @end itemize
2021
2022 @c FIXME! If we can say something about this, remove @ignore/@end ignore
2023 @c        and fill in below:
2024 @ignore
2025 This particular Cygnus Progressive release differs from the nearest
2026 corresponding FSF distributions in these important details:
2027
2028 FILL IN HERE!
2029
2030 @end ignore
2031
2032 @node Cygnus-Support,  , Cygnus-FSF, Top
2033 @unnumbered About Cygnus Support
2034
2035 Cygnus Support was founded in 1989 to provide commercial support for
2036 free software.  Cygnus supplies products and services that benefit
2037 advanced development groups by allowing them to use state-of-the-art
2038 tools without having to maintain them.  With Cygnus Support, sites that
2039 once were forced to do their own tool support can recover that valuable
2040 staff time.  Former users of proprietary software now may choose
2041 supported free software, combining the advantages of both worlds.
2042
2043 Free software is faster, more powerful, and more portable than its
2044 proprietary counterparts.  It evolves faster because users who want to
2045 make improvements are free to do so.  Cygnus tracks these
2046 improvements and integrates them into tested, stable versions ready
2047 for commercial use, then backs this software with comprehensive
2048 support.
2049
2050 With Cygnus Support as your partner, you will have the software and
2051 the support you need to meet your business objectives.  Cygnus
2052 is intimately familiar with this software from extensive experience
2053 using, debugging, and implementing it.  You get direct access to the
2054 most qualified support people: the authors of the software.
2055
2056 We provide ``vintage'' releases---the most stable versions, which have
2057 been though even more extensive use and testing---or up-to-the minute
2058 ``progressive'' releases, for those who need the very latest version.
2059
2060 Because all our improvements are also free software, you can
2061 distribute them widely within your organization, or to your customers,
2062 without extra cost.
2063
2064 @sp 4
2065
2066 @display
2067 Cygnus Support
2068 814 University Avenue
2069 Palo Alto, CA 94301, USA
2070
2071 +1 415 322 3811
2072 hotline: +1 415 322 7836
2073 email: @code{info@@cygnus.com}
2074 fax: +1 415 322 3270
2075 @end display
2076
2077 @bye