3 @c search for "UPDATE!" for items that will need examination on future
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.
12 @c This file describes how to install a Cygnus Progressive Release.
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.
19 @c CONFIG: One of these hosts should be set, the others clear:
25 @c CONFIG: In addition, XCOMP should be set for discussion of
26 @c cross-compilation facilities
31 @c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
32 @c implements Cygnus modifications to the texinfo manual style.
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.
43 @settitle Progressive--||RELNO|| Installation
45 % override-override: the following \font lines are redundant if you're
46 % using an unmodified FSF texinfo.
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
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:
56 \global\def\b#1{{\tensf #1}}
60 @title Installation Notes
63 @item Cygnus Support Developer's Kit
64 @item Progressive Release ||RELNO|| for ||HOST||
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).
73 @ref{Brief,,Installing in Brief}
74 @ref{Contents,,Release Contents}.
75 @ref{Platforms,,Supported Platforms}.
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}
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}.
90 @ref{Cygnus-FSF,,Cygnus Progressive Releases and the FSF}.
91 @ref{Cygnus-Support,,About Cygnus Support}.
93 @c TOGGLE XREF DISPLAY BACK, TO RESTORE MARKERS AROUND SECNAMES:
96 @author Cygnus Support @hfill hotline: +1 415 322 7836
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||}
107 @vskip 0pt plus 1filll
108 Copyright @copyright{} 1991, 1992 Cygnus Support
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.
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.
119 Permission is granted to copy and distribute translations of this manual
120 into another language, under the above conditions for modified versions.
125 @node Top, Brief, (dir), (dir)
127 This file is about the Cygnus Developer's Kit: what's in it, how to
128 install it, and how to reconfigure it.
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
146 --- The Detailed Node Listing ---
150 * Platforms:: Supported Platforms
154 * Requirements:: System Requirements
156 Installing the Developer's Kit
158 * local-install:: Installing with a local tape drive
159 * cross-install:: Installing with another machine's tape drive
161 Installation Examples
163 * binaries:: Installing binaries only
164 * ||HOSTstr||-remote:: Reading tape on any machine, finishing on ||HOST||
165 * source-remove:: Removing Source
169 * Why-fixincludes:: Why Convert System Header Files?
171 Links for Easy Access and Updating
173 * Running:: Running the Programs
175 Some Things that Might go Wrong
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}
182 Rebuilding From Source
184 * Configuration:: Configuration
185 * Config Names:: Specifying Names for Hosts and Targets
186 * configure Options:: @code{configure} Options
187 * Compilation:: Compilation
188 * Installation:: Installation
193 @node Brief, Contents, Top, Top
194 @unnumberedsubsubsec Installing in Brief
195 @strong{You can run the brief installation procedure if:}
198 You have a ||TAPdflt|| release tape (see tape label), and
200 Your ||HOST|| has its own ||TAPdflt|| tape drive (@code{||DEVdflt||}), and
202 You're willing to use the installation directory @file{/usr/cygnus}, and
204 You have at least ||DF|| MB available in @code{/usr} (try @samp{df /usr})
206 Otherwise, see @ref{Installing,,Installing the
209 @strong{Steps for Brief Install:}
213 Make sure you can write in @samp{/usr/cygnus}, by typing:
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)}
224 Load the Progressive--||RELNO|| tape into your tape drive.
227 Get the @code{Install} script from the tape:
231 eg$ @b{tar xfv ||DEVdflt|| Install}
235 Run the @code{Install} script:
241 @code{Install} displays messages about its activity, ending with
248 Build symbolic links to make execution paths easy:
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)}
255 # @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
256 # @b{exit} @i{(give up root access as soon as possible)}
260 Use your Cygnus customer-ID (see cover letter) to tag your copy of our
264 eg$ @b{/usr/progressive/bin/install@t{_}cid @var{ID}}
268 Remove public write access from @file{/usr/cygnus}. See your System
269 Administrator for the correct permissions at your site.
272 You're done! Anyone who puts @samp{/usr/progressive/bin} in her or his
273 @code{PATH} can use the Developer's Kit.
275 @node Contents, Requirements, Brief, Top
276 @unnumbered Release Contents
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:
283 @c UPDATE! Anything new shoveled in?
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:
295 @ifset HOSTdecstation
325 Fast lexical analyzer generator
333 compilation control program
340 Manages object code archives
343 Lists object file symbol tables
346 Displays object file information
349 Generates archive index
352 Lists section and total sizes
364 Documentation printing tools
367 Script to send structured problem reports to Cygnus
370 Compares source files
373 Installs source fixes
377 * Platforms:: Supported Platforms
380 @node Platforms, , Contents, Contents
381 @unnumberedsec Supported Platforms
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.
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.
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||
405 @item Other Platforms
406 For information on other platforms or other programs
407 that we may support, please contact Cygnus Support at:
417 @code{info@@cygnus.com}
422 * Requirements:: System Requirements
425 @node Requirements, Installing, Contents, Top
426 @unnumbered System Requirements
430 Progressive Release ||RELNO|| for ||HOST|| hosts requires
432 SunOS 4.1.1 (or later).
435 SunOS 4.1 (or later).
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}.
443 AIX 3.1.5 (or later).
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.
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.
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.
467 You will receive a tar or tar.Z file containing an assembler plus
468 installation instructions.
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.
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
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.
489 IRIX 4.0.1 (or later).
491 @c UPDATE! fill in OS for all supported platforms.
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
501 Cygnus release tapes are labelled to identify the kind of
502 tape used; either ||TAPdflt|| tapes, or Exabyte tapes.
505 The total space required to extract and install
506 binaries and source for all programs is
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.
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.
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}}.
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
532 @node Installing, Examples, Requirements, Top
533 @unnumbered Installing the Developer's Kit
536 This note shows the different parts of examples like this:
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}.
543 In examples, we show the system prompt as @samp{eg$}.
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
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||.
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}.)
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.
575 * local-install:: Installing with a local tape drive
576 * cross-install:: Installing with another machine's tape drive
579 @node local-install, cross-install, Installing, Installing
580 @unnumberedsubsec Installing in @file{/usr/cygnus}, with a local tape drive
582 This procedure is for a ||HOST|| that has its own tape drive.
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}.
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.
597 You must also be certain to use a @emph{non-byte-swapping} tape device.
598 See @samp{man tps} for details.
601 On RS/6000 systems, you can find details on tape drives in
606 You should use one of the following devices:
608 @item ||TAPdflt|| tapes
609 Use @file{||DEVdflt||} where the examples show @code{/dev/@var{tape}}.
612 The device name depends on how your Exabyte tape drive was installed;
613 ask your system administrator.
615 You will probably use one of
616 @file{/dev/nrst0} or @file{/dev/nrst1} where we show
617 @code{/dev/@var{tape}}.
620 You will probably use one of
621 @file{/dev/nrst0} or @file{/dev/nrst1} where we show
622 @code{/dev/@var{tape}}.
627 Check that you have enough space available (@pxref{Requirements,,System
628 Requirements}) in @file{/usr}. You can use @samp{df /usr} to check.
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:
636 eg$ @b{touch /usr/cygnus/test; rm /usr/cygnus/test}
641 @emph{If you get no errors from this line, skip the next step.}
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:
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}
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}}.
667 Load the Cygnus Support release tape (labelled ``Progressive--||RELNO||'') into
668 your system's tape drive.
671 Extract the @code{Install} script (remember, @var{tape} stands for the
672 device name for the appropriate tape drive on your system):
677 eg$ @b{tar xfv /dev/@var{tape} Install}
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}.
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||}.
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}.
700 Now you can extract all the software by running @code{Install}. Use
701 the @samp{-tape=} option to identify your tape drive:
705 eg$ @b{/tmp/Install -tape=/dev/@var{tape}}
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
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.
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:
725 Cygnus Support software distribution extracted!
727 Fixed include files installed!
729 Cygnus Support software distribution tested!
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
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.
748 eg$ @b{cd /usr/cygnus}
749 eg$ @b{ln -s progressive-||RELNO|| progressive}
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}
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.
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
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).
782 For better security, remove public write access from @file{/usr/cygnus}.
783 See your System Administrator for the correct permissions at your site.
786 You're done! Anyone who puts @samp{/usr/progressive/bin} in her or his
787 @code{PATH} can use the Developer's Kit.
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||.
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}.
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}.
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.
813 You should use one of the following devices on ||HOST|| (or
816 @item ||TAPdflt|| tapes
817 Use @file{||DEVdflt||} where the examples show @code{/dev/@var{tape}}.
820 The device name depends on how your Exabyte tape drive was installed;
821 check with your system administrator.
823 You will probably use one of
824 @file{/dev/nrst0} or @file{/dev/nrst1} where the example shows
825 @code{/dev/@var{tape}}.
828 You will probably use one of
829 @file{/dev/nrst0} or @file{/dev/nrst1} where the example shows
830 @code{/dev/@var{tape}}.
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.
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.
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.
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:
854 eg$ @b{touch @var{shr}/cygnus/test; rm @var{shr}/cygnus/test}
859 @emph{If you get no errors from this line, skip the next step.}
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
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}
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.
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||.
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):
905 eg$ @b{tar xfv /dev/@var{tape} Install}
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}.
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}.
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.
930 eg$ @b{./Install extract -tape=/dev/@var{tape} -installdir=@var{shr}/cygnus}
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}.
938 When @code{Install} is done extracting the tape contents, it
939 displays the messages
943 Cygnus Support software distribution extracted!
949 Log on to the ||HOST|| where you want to use the software.
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:
961 eg-||HOSTstr||$ @b{su root}
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}
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}}.
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||}:
984 eg-||HOSTstr||$ @b{cd /usr/cygnus/progressive-||RELNO||}
985 eg-||HOSTstr||$ @b{./Install @b{f}ixincludes test}
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.
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).
1001 Fixed include files installed!
1003 Cygnus Support software distribution tested!
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
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.
1022 eg-||HOSTstr||$ @b{cd /usr/cygnus}
1023 eg-||HOSTstr||$ @b{ln -s progressive-||RELNO|| progressive}
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}
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.
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
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).
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.
1062 You're done! Anyone who puts @samp{/usr/progressive/bin} in her or his
1063 @code{PATH} can use the Developer's Kit.
1065 @node Examples, Install-Options, Installing, Top
1066 @unnumbered Installation Examples
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
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
1083 * binaries:: Installing binaries only
1084 * ||HOSTstr||-remote:: Reading tape on any machine, finishing on ||HOST||
1085 * source-remove:: Removing Source
1088 @node binaries, ||HOSTstr||-remote, Examples, Examples
1089 @unnumberedsubsec Installing binaries only
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
1095 @c UPDATE! exabyes on non-Sun hosts?
1100 @c eg$ @b{./Install -tape=/dev/nrst1 bin}
1101 eg$ @b{./Install -tape=/dev/@var{tape} bin}
1105 If you don't want the source---for instance, to save space---you can use
1106 the argument @samp{bin}.
1108 @node ||HOSTstr||-remote, source-remove, binaries, Examples
1109 @unnumberedsubsec Reading tape on any machine, finishing on ||HOST||
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}
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}
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).
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.
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:
1149 eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
1150 eg$ @b{./Install remove source}
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
1160 @node Install-Options, Links, Examples, Top
1161 @unnumbered Installation Options
1163 There are two kinds of command-line arguments to @code{Install}, which
1164 you can use to direct its operation:
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||.
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
1178 extracting source from the tape (option
1181 writing @sc{ansi}-C conforming copies of your system include files (needed
1182 for the compilation tools; option @code{fixincludes})
1184 running a simple test of the installed programs
1185 (option @code{test})
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
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.
1200 Here is a summary of all of @code{Install}'s command-line options,
1201 followed by a more detailed explanation of each:
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{]}
1212 @item -tape=/dev/@var{tape}
1213 @itemx -tape=@var{tarfile}
1214 Specify the @emph{non-rewinding} device name for your tape drive as
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.
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}.
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
1237 you want only binaries, or
1239 you want only source.
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
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.
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||.
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
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
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.
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.
1299 * Why-fixincludes:: Why Convert System Header Files?
1302 @node Why-fixincludes, , Install-Options, Install-Options
1303 @unnumberedsec Why Convert System Header Files?
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).
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.}
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}.
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:
1337 eg$ @b{cd /usr/cygnus}
1338 eg$ @b{ln -s progressive-||RELNO|| progressive}
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||}.
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||}.
1358 You may need to use @code{su} again briefly to establish these links:
1362 eg$ @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
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.
1372 * Running:: Running the Programs
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.
1385 @exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1387 @b{PATH=/usr/progressive/bin:$PATH}
1393 @exdent For C shell:
1395 @b{set path=(/usr/progressive/bin $path)}
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
1407 @exdent For Bourne-compatible shells:
1409 @b{MANPATH=/usr/cygnus/progressive/man:$MANPATH:/usr/man}
1415 @exdent For C shell:
1417 @b{setenv MANPATH /usr/cygnus/progressive/man:$MANPATH:/usr/man}
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
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
1433 If you wish to run the tools after installing them in another location,
1437 use environment variables (and, for @code{g++}, command-line options)
1438 to tell the tools where to find pieces of the installation; or
1441 rebuild the tools from source, with your preferred paths built in.
1442 @xref{Rebuilding,,Rebuilding from Source}, if you want to take this
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}.
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.)
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}
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.)
1481 @b{setenv GCC@t{_}EXEC@t{_}PREFIX /local/progressive-||RELNO||/H-||HOSTstr||/@t{\}
1482 lib/gcc-lib/||TARGET||/||GCCvn||/}
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
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}:
1505 Set @code{GCC_EXEC_PREFIX} in one of the ways shown above;
1508 Invoke the @code{g++} compiler with at least the following options:
1512 eg$ @b{g++ -L/local/progressive-||RELNO||/H-||HOSTstr||/lib@t{\}
1513 -I/local/progressive-||RELNO||/H-||HOSTstr||/lib/g++-include program.cc}
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.
1524 For example, again assuming you installed under @file{/local}:
1527 @exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1529 @b{INFOPATH=/local/progressive-||RELNO||/info}
1535 @exdent For C shell:
1537 @b{setenv INFOPATH /local/progressive-||RELNO||/info}
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
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.
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:
1559 @emph{if} your site already has a release tree for
1560 @samp{/usr/cygnus/progressive-||RELNO||},
1562 @emph{and} you run @code{Install} with an alternative installation
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.
1571 @node Trouble, Rebuilding, Paths, Top
1572 @unnumbered Some Things that Might go Wrong
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.
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}
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
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}.
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):
1618 eg$ @b{./Install -tape=@var{tarfile}}
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
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.
1640 source code for all programs
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}.
1651 @node No access, Install errors, Limited Space, Trouble
1652 @unnumberedsec No Access to @file{/usr/cygnus}
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
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.
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:
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
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.
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.
1700 If you get one of these messages, please
1703 @strong{call the Cygnus hotline, +1 415 322 7836}, or
1705 send electronic mail to @samp{help@@cygnus.com}.
1709 @node Rebuilding, Removing, Trouble, Top
1710 @unnumbered Rebuilding From Source
1712 All Cygnus products are free software; your Developer's Kit includes
1713 complete source code for all programs.
1715 Cygnus Support has implemented an automatic configuration scheme to
1716 adapt the programs to different environments.
1718 Rebuilding the programs from source requires these steps:
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
1734 eg$ @b{cd progressive-||RELNO||/src}
1736 eg$ @b{./configure ||HOSTstr|| -prefix=/local/gnu}
1737 Created "Makefile" in @var{installdir}/progressive-||RELNO||/src
1739 eg$ @b{make clean all info install install-info >make.log}
1740 @dots{} @i{output for @code{make} steps follows}
1745 We discuss each step in detail in the following sections.
1748 * Configuration:: Configuration
1749 * Config Names:: Specifying Names for Hosts and Targets
1750 * configure Options:: @code{configure} Options
1751 * Compilation:: Compilation
1752 * Installation:: Installation
1755 @node Configuration, Config Names, Rebuilding, Rebuilding
1756 @unnumberedsec Configuration
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.
1763 @node Config Names, configure Options, Configuration, Rebuilding
1764 @section Specifying Names for Hosts and Targets
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:
1772 @var{architecture}-@var{vendor}-@var{os}
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}.
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!
1785 @node configure Options, Compilation, Config Names, Rebuilding
1786 @section @code{configure} Options
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.
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{]}
1804 The binaries on your tape were configured using
1808 configure -prefix /usr/cygnus/progressive-||RELNO|| \
1809 -exec-prefix /usr/cygnus/progressive-||RELNO||/H-||HOSTstr|| \
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}.
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.
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}.
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.
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.
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}).
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.
1861 Configure only the directory level where @code{configure} is executed; do not
1862 propagate configuration to subdirectories.
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.
1871 There is no convenient way to generate a list of all available targets.
1873 @item @var{host} @dots{}
1874 Configure the development tools to run on the specified @var{host}.
1876 There is no convenient way to generate a list of all available hosts.
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
1888 @var{bindest} is the directory where binaries are installed.
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
1897 @var{dest} is compiled into @code{info} as the default directory
1898 for the documentation.
1902 @node Compilation, Installation, configure Options, Rebuilding
1903 @unnumberedsec Compilation
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:
1911 @b{make all info >make.log}
1915 The examples suggest capturing the @code{make} output in a
1916 @file{make.log} file, because the output is lengthy.
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
1927 @b{make CC=/local/gnu/H-sun4/bin/gcc CFLAGS=-O all info >make.log}
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
1940 @node Installation, , Compilation, Rebuilding
1941 @unnumberedsec Installation
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:
1949 @b{make install install-info}
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}.)
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:
1970 eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
1971 eg$ @b{./Install remove source}
1976 You should see the following messages confirming the software was
1981 Cygnus Support software distribution removed!
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.
1990 @node Cygnus-FSF, Cygnus-Support, Removing, Top
1991 @unnumbered Cygnus Releases and the FSF
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?
2001 Commercial support is available. Cygnus adds value to FSF releases in
2002 large measure by offering outstanding support services.
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.
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.
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.
2016 Documentation. Cygnus revises and adds to available FSF
2017 documentation to give you better descriptions of all the software tools.
2019 Stability. Cygnus tests (and uses) all the programs it releases.
2022 @c FIXME! If we can say something about this, remove @ignore/@end ignore
2023 @c and fill in below:
2025 This particular Cygnus Progressive release differs from the nearest
2026 corresponding FSF distributions in these important details:
2032 @node Cygnus-Support, , Cygnus-FSF, Top
2033 @unnumbered About Cygnus Support
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.
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
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.
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.
2060 Because all our improvements are also free software, you can
2061 distribute them widely within your organization, or to your customers,
2068 814 University Avenue
2069 Palo Alto, CA 94301, USA
2072 hotline: +1 415 322 7836
2073 email: @code{info@@cygnus.com}
2074 fax: +1 415 322 3270