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 INSTALL-NOTES
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 Solaris-2 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.
20 @c set exactly ONE of the following to select what kind of install to doc:
41 @c set CUSTOMER to indicate install instructions are for a Cygnus customer
42 @c (clear for general public)
46 @c The include file "texiplus.tex" is in the src/texinfo/cygnus dir, and
47 @c implements Cygnus modifications to the texinfo manual style.
49 @c The include file "smpklug.texi" is a kluge to deal with local
50 @c document production issues at Cygnus; it's safe to comment out this
51 @c line if you don't have (or don't want) the file.
58 @settitle Release ||RELNO|| for Solaris 2
60 % override-override: the following \font lines are redundant if you're
61 % using an unmodified FSF texinfo.
62 % FIXME! check whether these are still needed, or whether Courier OK now
65 \font\texttt=cmtt10 scaled \magstephalf\let\tentt=\texttt
66 \font\textsl=cmsl10 scaled \magstephalf\let\tensl=\textsl
67 \font\textsf=cmss10 scaled \magstephalf\let\tensf=\textsf
68 \font\user=pcrb at 10pt
70 %end override-override
71 % WARNING: NONSTANDARD USAGE we need \tensf for print, without
72 % upsetting info. We weren't using @b in this note, so I redefine it:
74 \global\def\b#1{{\user #1}}
79 @title CD-ROM Installation Notes
82 @title Tape Installation Notes
85 @title FTP Installation Notes
88 @subtitle Cygnus Support Developer's Kit
89 @subtitle Release ||RELNO|| for Solaris 2.0
90 @author Cygnus Support @hfill hotline: +1 415 322 7836
94 \def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
95 \xdef\Rmanvers{{\it Installation Notes (Solaris 2 Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
96 {\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
97 \TeX{}info \texinfoversion\par }
98 \global\def\manvers{Release ||RELNO|| for Solaris 2}
101 @vskip 0pt plus 1filll
102 Copyright @copyright{} 1991, 1992 Cygnus Support
104 Permission is granted to make and distribute verbatim copies of
105 this manual provided the copyright notice and this permission notice
106 are preserved on all copies.
108 Permission is granted to copy and distribute modified versions of this
109 manual under the conditions for verbatim copying, provided also that
110 the entire resulting derived work is distributed under the terms of a
111 permission notice identical to this one.
113 Permission is granted to copy and distribute translations of this manual
114 into another language, under the above conditions for modified versions.
120 @top Cygnus Support Solaris-2 Developer's Kit, version ||RELNO||
122 This file is about the Cygnus Developer's Kit: what's in it, how to
123 install it, and how to reconfigure it.
127 * Brief:: Installing in Brief
128 * Contents:: Release Contents
129 * Installing:: Installing the Developer's Kit
130 * Examples:: Installation Examples
131 * Install-Options:: Installation Options
132 * Why-fixincludes:: Why Convert System Header Files?
133 * Running:: Running the Programs
134 * Paths:: Changing the Paths
135 * Trouble:: Some Things that Might go Wrong
136 * Rebuilding:: Rebuilding From Source
137 * Removing:: Removing Parts of the Developer's Kit
138 * Cygnus-FSF:: Cygnus Releases and the FSF
139 * Cygnus-Support:: About Cygnus Support
144 * Brief:: Installation Procedure
145 * Contents:: Release Contents
146 * Install-Options:: Installation Options
147 * Why-fixincludes:: Why Convert System Header Files?
148 * Running:: Running the Programs
149 * Paths:: Changing the Paths
150 * Trouble:: Some Things that Might go Wrong
151 * Rebuilding:: Rebuilding From Source
152 * Cygnus-FSF:: Cygnus Releases and the FSF
153 * Cygnus-Support:: About Cygnus Support
161 @chapter Installing in Brief
166 @chapter Installation Procedure
170 @strong{You can run the brief installation procedure if:}
173 Your ||HOST|| has its own tape drive (@code{/dev/rmt/0ln}---those
174 last three characters are zero, el, en; see @samp{man st}), and
176 You're willing to install in the directory @file{/opt}, and
178 You have at least ||DF|| MB available (try @samp{df /opt}; @pxref{Disk space})
180 The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
181 @code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} are installed (try
182 @samp{pkginfo @var{name}}; @pxref{Optional OS packages}).
184 Otherwise, see @ref{Installing,,Installing the Developer's Kit}.
187 @strong{To install the Cygnus Solaris-2 Developer's Kit, you need:}
193 the distribution file, @file{cygnus-sol2-||RELNO||.tar.Z}, in some directory
194 @var{dist} on your system
196 The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
197 @code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
198 system (try @samp{pkginfo @var{name}}). See @ref{Optional OS packages}.
200 at least ||DF|| MB of disk space available. See @ref{Disk space}.
206 the distribution files, @file{cygnus-sol2-||RELNO||.bin.tar.Z} (if you
207 want precompiled binaries) and @file{cygnus-sol2-||RELNO||.src.tar.Z}
208 (if you want the source code), in some directory @var{dist} on your
211 The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
212 @code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
213 system (try @samp{pkginfo @var{name}}). See @ref{Optional OS packages}.
215 at least ||BD|| MB of disk space available for the binaries. See @ref{Disk space}.
217 at least ||SD|| MB of disk space available for the source. See @ref{Disk space}.
223 A copy of the SunSoft Catalyst CDware disc.
225 The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
226 @code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
227 system (try @samp{pkginfo @var{name}}). See @ref{Optional OS packages}.
229 at least ||BD|| MB of disk space available for the binaries. See @ref{Disk space}.
231 at least ||SD|| MB of disk space available for the source. See @ref{Disk space}).
236 We suggest installing the Developer's Kit under @file{/opt} (at least
237 via a symbolic link). The precompiled tools are configured for this
238 location. If you install elsewhere, and cannot establish a symbolic
239 link to @file{/opt/cygnus-sol2-||RELNO||}, see @ref{Paths,,Changing the
246 Make sure you can write in @file{/opt/cygnus-sol2-||RELNO||}, by typing:
250 password: @i{(enter root password)}
251 # @b{mkdir /opt/cygnus-sol2-||RELNO||} @i{(ignore error if any)}
252 # @b{chmod 777 /opt/cygnus-sol2-||RELNO||}
253 # @b{exit} @i{(give up root access)}
259 Make sure you can write in @file{/opt}, by typing:
262 eg$ @b{touch /opt/cygnus-test; rm /opt/cygnus-test}
265 If you get an error, talk to your System Administrator about access to
266 @samp{/opt}. If you can't get permission to write in @file{/opt}, see
267 @ref{No access,,No Access to @file{/opt}}.
272 Extract the Developer's Kit from the distribution file.
275 @exdent @emph{If you can install directly in @file{/opt}:}
277 eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.tar.Z | tar xfov -}
281 @exdent @emph{If you install in another directory @var{other}:}
282 eg$ @b{cd} @var{other}
283 eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.tar.Z | tar xfov -}
284 eg$ @b{ln -s cygnus-sol2-||RELNO|| /opt}
290 Extract the Developer's Kit binaries from the distribution file.
293 @exdent @emph{If you can install directly in @file{/opt}:}
295 eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.bin.tar.Z | tar xfov -}
299 @exdent @emph{If you install in another directory @var{other}:}
300 eg$ @b{cd} @var{other}
301 eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.bin.tar.Z | tar xfov -}
302 eg$ @b{ln -s cygnus-sol2-||RELNO|| /opt}
306 If you also want the source, repeat the previous step, but with the file
307 @file{@var{dist}/cygnus-sol2-||RELNO||.src.tar.Z}.
312 Mount the @sc{cdware cd-rom}. You may need to briefly become super-user:
316 password: @i{(enter root password)}
317 # @b{mkdir} @b{/cdrom} @i{(ignore any errors)}
318 # @b{mount} @b{-F} @b{hsfs} @b{-o} @b{ro} @b{/dev/dsk/c0t6d0s0} @b{/cdrom}
319 # @b{exit} @i{(give up root access)}
323 Start the @sc{cd-rom}'s presentation program (see the instructions
324 that came with your @sc{cd-rom}).
327 Look for an icon showing the Cygnus logo, with the label ``GNU C''. If
328 you can't find this icon, you may have the wrong category selected; in
329 the Category menu, select either ``All'' or ``Software Engineering''.
332 Select the Cygnus icon by clicking once on it with the left mouse
336 Select ``Install'' from the Options menu. A submenu appears, showing
345 Select one of these options. (Selecting ``Install Everything'' is
346 equivalent to selecting each of the other two options, to get both
347 binaries and source code for the Developer's Kit.)
348 An interaction window appears.
351 Answer the prompt @samp{Installation directory} with the name of the
352 directory where you want the Developer's Kit installed. We recommend
353 @file{/opt} (which is the default), because the compiler and other tools
354 are configured for this location. (If you use another directory,
355 see @ref{Paths,,Changing the Paths}.)
358 Inspect the messages that appear in the interaction window. The
359 installation script @code{Install} displays occasional messages to keep
360 you informed about the steps it executes. Among them, these messages
361 mark completion of the major stages of installation:
364 Cygnus Support software distribution extracted!
366 Fixed include files installed!
368 Cygnus Support software distribution tested!
372 @strong{If all these messages have appeared}, skip the next step.
374 @strong{If you see messages about missing parts of Solaris 2}, make sure
375 you have all the optional packages described in
376 @ref{Optional OS packages}. Then proceed with the next
382 Load the cygnus-sol2-||RELNO|| ||MEDIUM|| into your ||MEDIUM|| drive.
385 Get the @code{Install} script from the tape:
389 eg$ @b{tar xfov /dev/rmt/0ln Install}
390 @i{Ignore ``WARNING: @dots{} Sense Key: Unit Attention'' message.}
391 @i{For other errors, try reinserting the tape and rerunning.}
395 Run the @code{Install} script:
399 @i{@dots{} @code{Install} displays messages about its activity, ending with}
406 Fix up copies of the system header files for your ||HOST||, and test the
407 installation, with the @code{Install} script that was extracted from the
408 distribution. @emph{@code{Install} makes its own copies of the header
409 files; your system's original header files are not changed.}
412 eg$ @b{cd cygnus-sol2-||RELNO||}
414 @exdent @code{Install} displays messages about its activity, ending with
418 For background information on this step, see @ref{Why-fixincludes,,Why
419 Convert System Header Files?}.
424 Record your Cygnus customer-ID (see cover letter):
427 eg$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
432 Make a symbolic link to simplify pathnames:
435 eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
439 @c Assume *WE* don't distribute cygnus-sol2-||RELNO|| w/permissions 777
441 Remove public write access from @file{/opt/cygnus-sol2-||RELNO||}. See your System
442 Administrator for the correct permissions at your site.
447 You're done! Anyone who puts @samp{/opt/cygnus/bin} in her or his
448 @code{PATH} can use the Developer's Kit.
451 @chapter Release Contents
453 This Developer's Kit is a Cygnus Support release: the
454 programs in it are recent versions, which have been tested and certified
455 both individually and as a coordinated suite of tools.
456 The kit includes both source and binaries for:
458 @c UPDATE! Anything new shoveled in?
465 Mathematical subroutine library
477 Fast lexical analyzer generator
481 Online documentation tools
485 Documentation printing tools
488 The Cygnus problem-reporting utility
491 Source-code update utility
495 * Platforms:: Supported Platforms
496 * Requirements:: System Requirements
500 @section Supported Platforms
504 All programs in your Developer's Kit are for ||HOST||s running
505 Solaris 2.0; we ship binaries (configured to install and run under
506 @file{/opt/cygnus-sol2-||RELNO||}) as well as all source code.
508 @item Other Platforms
509 For information on other platforms or other programs
510 that we may support, please contact Cygnus Support at:
520 @code{info@@cygnus.com}
526 @section System Requirements
531 * Optional OS packages::
540 * Optional OS packages::
549 Solaris 2.0 Beta or later.
551 @node Optional OS packages
552 @subsection Optional OS packages
553 Many components of Solaris 2.0 are part of the standard operating system
554 distribution, but are not installed by default. To install the Cygnus
555 Solaris 2.0 Developer's Kit, you will need to make sure two of these
556 optional components (called @dfn{packages}) are installed on your system:
557 @samp{SUNWesu} and @samp{SUNWhea}. Three more packages are needed to
558 run the Developer's Kit software after you've installed it:
559 @samp{SUNWbtool}, @samp{SUNWtoo}, and @samp{SUNWarc}.
561 To check whether an optional package is installed, you can run
562 @samp{pkginfo @var{name}}. @code{pkginfo} is in @file{/usr/bin/}. If
563 @var{name} is not installed, you will get an error, like this:
566 eg$ @b{/usr/bin/pkginfo} @b{SUNWlibm}
567 ERROR: information for "SUNWlibm" was not found
571 If @var{name} is installed, you will see a one-line summary of the
575 eg$ @b{/usr/bin/pkginfo} @b{SUNWhea}
576 system SUNWhea Header Files
579 To install one of these optional parts of Solaris 2 (@var{name} in the
580 example), put the Solaris 2.0 distribution CD in the drive, mount it
581 (for example, as @file{/cdrom}), then do:
584 /usr/sbin/pkgadd -d /cdrom/Solaris_2.0 @var{name} @dots{}
588 You can specify several package names at once.
590 These are the Solaris 2 optional packages you'll need to run the
595 @emph{Needed to link your programs:} Archive libraries for system
599 @emph{Needed to build your programs:} ``SPARCCompilers
600 2.0 Bundled tools''. Most of the contents of @file{/usr/ccs/bin}
601 (most notably, the assembler) come from this package.
604 @emph{Needed to install the Developer's Kit:} ``Extended System
605 Utilities''. The decompression program (@code{compress},
606 @code{uncompress}, @code{zcat}) is in this package; it is used to
607 extract the contents of the Developer's Kit.
610 @emph{Needed to complete installation and compile your programs:} Header
611 files (@file{/usr/include}).
614 @emph{Needed to link your programs:} ``Programming Tools'', notably the
615 linker, @code{/usr/ccs/bin/ld}.
619 One additional optional package may be of interest:
623 Sun's math subroutine library. This is not required, however, as a free
624 @samp{libm.a} is part of the Developer's Kit.
629 @subsection A tape drive
630 You need access to a tape drive that can read the distribution.
631 The drive need not be on the ||HOST|| where you want to run the
632 software; but it is best if the machine with a tape drive and your
633 ||HOST|| can mount a common file system. At the very least, you need
634 some sort of file transfer capability between the machine with a
635 tape drive and your ||HOST||.
639 @subsection Disk space
640 The total space required to extract and install
641 binaries and source for all programs is
644 The software is configured to go into @file{/opt/cygnus-sol2-||RELNO||}. If you have
645 space available, but not in the same file system as @file{/opt}, you can
646 use @samp{ln -s} to create @file{/opt/cygnus-sol2-||RELNO||} as a symbolic link to the
647 file system where you do have the space available.
650 If you don't have enough space, you may be able to install binaries only;
651 see @ref{Limited Space,,Not Enough Space}. The space required for
652 installing the binaries on ||HOST|| systems is ||BD|| megabytes.
656 @subsection Write access
657 You need write access to @file{/opt}, or at least to an existing
658 @file{/opt/cygnus-sol2-||RELNO||} directory. If you can't write in
659 @file{/opt} or @file{/opt/cygnus-sol2-||RELNO||}, see @ref{No access,,No
660 Access to @file{/opt}}.
663 Root access is @emph{not} necessary to run the installation itself;
664 but you might need it briefly
666 to mount the @sc{cd-rom} drive, and
668 to arrange for a writable @file{/opt/cygnus-sol2-||RELNO||} directory. The detailed
669 installation instructions show when this may be necessary. We recommend
670 you avoid @samp{su root} whenever possible.
675 @chapter Installing the Developer's Kit
678 This note shows the different parts of examples like this:
680 @item Computer output is shown in @code{typewriter font.}
681 @item Your input is indicated by @b{a bold typewriter font.}
682 @item Text to be replaced, rather than typed verbatim, is in @var{this font.}
683 @item Comments appear in @i{italic font}.
686 In examples, we show the system prompt as @samp{eg$}.
688 The Cygnus cygnus-sol2-||RELNO|| ||MEDIUM|| contains two separate
689 files. The first file is a script called @code{Install};
690 the second file contains the Developer's Kit software. To get
691 the software onto your system, you need to make sure you have the space
692 you'll need for it, and get the @code{Install} script off the ||MEDIUM||.
693 Then you can use the @code{Install} script to choose what else to
696 Two checklists follow. The first checklist shows what to do if you have
697 a ||MEDIUM|| drive on the ||HOST|| where you want to install the
698 Developer's Kit; the second shows how to use another networked machine
699 to read the ||MEDIUM||, then finish the installation on your ||HOST||.
701 Both checklists suggest installing the Developer's Kit under
702 @file{/opt} (if you like, via a symbolic link from another location).
703 We recommend you use this location for the software, because the
704 precompiled, ready-to-run versions of the tools are configured this
705 way. (If you want to use a different location, and cannot establish a
706 symbolic link from it to @file{/opt/cygnus-sol2-||RELNO||}, please see
707 @ref{Install-Options,,Installation Options}. To use the software
708 conveniently after installing elsewhere, see @ref{Paths,,Changing the
711 Both checklists are very similar to @ref{Brief,,Installing in Brief},
712 but provide more discussion of each step, and offer alternatives for
713 ||MEDIUM|| drives, for systems whose available disk space is not in
714 @code{/opt}, and for installing only portions of the Developer's Kit.
717 * local-install:: Installing with a local ||MEDIUM|| drive
718 * cross-install:: Installing with another machine's ||MEDIUM|| drive
722 @section Installing in @file{/opt}, with a local ||MEDIUM|| drive
724 This procedure is for a ||HOST|| that has its own ||MEDIUM|| drive.
726 Installing this way will install all the source code, plus the binaries for
727 the ||HOST||. If you don't want both source and binaries, stop after
728 extracting @code{Install} from the ||MEDIUM||, and read about what options you
729 can use with @code{Install} in @ref{Install-Options,,Installation
730 Options}. For examples of variations on what to install,
731 see @ref{Examples,,Installation Examples}.
735 Make sure that you have all the required Solaris 2 OS packages:
736 @code{SUNWesu}, @code{SUNWhea}, @code{SUNWbtool}, @code{SUNWarc}, and
737 @code{SUNWtoo}. You can use @code{pkginfo} to check; see
738 @ref{Optional OS packages}.
741 Check that you have enough space available (@pxref{Disk space}) in
742 @file{/opt}. You can use @samp{df /opt} to check.
745 Check whether you can write in @file{/opt}:
749 eg$ @b{touch /opt/cygnus-test; rm /opt/cygnus-test}
754 @emph{If you get no errors from this line, skip the next step.}
757 If you got ``No such file or directory'' or ``Permission denied''
758 errors, you may need to use another group, or an account that has
759 permission to write in @file{/opt} or in an existing
760 @file{/opt/cygnus-sol2-||RELNO||} directory. See @ref{No access,,No Access
761 to @file{/opt}}. If only @code{root} has access, the simplest procedure
762 is to @code{su root} @emph{briefly}, to create a writable
763 @file{/opt/cygnus-sol2-||RELNO||}. For instance:
768 password: @i{enter root password}
769 # @b{mkdir /opt/cygnus-sol2-||RELNO||} @i{ignore error if any}
770 # @b{chmod 777 /opt/cygnus-sol2-||RELNO||}
771 # @b{exit} @i{give up root access}
778 Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
779 your system's tape drive.
782 find out the name of the @emph{non-rewinding} tape device that can read
783 the release tape, on your machine. Cygnus release tapes are labelled to
784 identify the kind of tape used---either QIC-24 or Exabyte.
786 You will most likely use @file{/dev/rmt/0ln} (the last three characters
787 are zero, el, en) as the tape device, regardless of which of the two
788 kinds of tape you have; see @samp{man st} for details on how tape
789 devices are named on Solaris 2.
791 However, the correct device name depends on how your system's tape
792 drives were installed; ask your system administrator. If the tape drive
793 you plan to use is your system's only tape drive, @file{/dev/rmt/0ln} is
794 very likely. Otherwise it may be something like @file{/dev/rmt/1ln}.
796 Our examples show @file{/dev/rmt/0ln} for the tape device, as this is
797 the most common case.
800 The first file on the tape is a script called @code{Install}. That
801 script automates most of the installation procedure---but first you need
802 to bootstrap the installation by getting @code{Install} itself from the
803 tape. It doesn't really matter where you put this initial copy of
804 @code{Install}; it is only used to get things started---these examples
805 assume you put it in @file{/tmp}. When you use this copy of
806 @code{Install} to extract software from the tape, another copy of
807 @code{Install} will be saved in @file{/opt/cygnus-sol2-||RELNO||}.
809 These commands will get @code{Install} into the @file{/tmp} directory
810 (remember, you may need something slightly different from
811 @file{/dev/rmt/0ln} as the device name for the appropriate tape drive on
817 eg$ @b{tar xfov /dev/rmt/0ln Install}
821 A frightening five-line message beginning ``@code{WARNING}'' and ending
822 with ``@code{Sense Key: Unit Attention}'' is very common at this point.
823 It does not indicate anything is wrong; on the contrary, it's the
824 operating system's way of letting you know that it noticed you put in a
827 If you get any error messages beginning ``tar: can't open'', check that
828 the tape is correctly placed in your tape drive, and that you typed the
829 right name where we show @file{/dev/rmt/0ln}. Some errors can be
830 corrected by reseating the tape in the tape drive and trying again.
834 @emph{If you don't want both source and binaries, stop now,} and read about
835 what options you can use with @code{Install} in
836 @ref{Install-Options,,Installation Options}. For examples of variations
837 on what to install, see @ref{Examples,,Installation Examples}.
841 Now you can extract your Developer's Kit software by running
842 @code{Install}. Use the @samp{-tape=} option to specify where
843 the software comes from:
847 eg$ @b{/tmp/Install -tape=/dev/rmt/0ln}
851 This is a time-consuming step. @code{Install} will begin by using
852 @code{tar} to extract software for your system, leaving a log in
853 @file{/opt/cygnus-sol2-||RELNO||/tar.log}. Then it prepares copies of your system
854 header files, converted to comply with @sc{ansi} C
855 (@pxref{Why-fixincludes,,Why Convert System Header Files?}); a log for
856 this step goes in @file{/opt/cygnus-sol2-||RELNO||/fixincludes.log}. @emph{Your
857 system's original header files are not changed;} @code{Install} writes
858 the converted copies in a separate, @sc{gcc}-specific directory.
860 As it executes, @code{Install} displays occasional messages to keep you
861 informed about which of these steps it's executing. Among them, these
862 messages mark completion of the major stages of installation:
866 Cygnus Support software distribution extracted!
868 Fixed include files installed!
870 Cygnus Support software distribution tested!
878 In case you need to send problem reports to Cygnus, we've
879 included a script @code{send_pr} (and a supporting online template) to
880 structure and transmit your reports. Please use the
881 script @code{install_cid} to record your Cygnus customer ID in your copy
882 of the problem report form. (You can find your customer ID in the cover
883 letter that came with this release; or call the Cygnus hotline,
884 @w{+1 415 322 7836}.) This will enable us to respond as quickly as
885 possible to any problem reports you send.
889 eg$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
890 install_cid:`@var{ID}' is now the default customer ID for send_pr
896 Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
902 eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
907 We recommended permissions @code{777} for the @file{/opt/cygnus-sol2-||RELNO||}
908 directory, to be sure you could run this procedure. However, for the
909 long term, it is usually not a good idea to leave directories
910 world-writable (especially directories where executables are found).
912 For better security, remove public write access from @file{/opt/cygnus-sol2-||RELNO||}.
913 See your System Administrator for the correct permissions at your site.
916 You're done! Anyone who puts @samp{/opt/cygnus/bin} in her or his
917 @code{PATH} can use the Developer's Kit.
921 @section Installing in @file{/opt}, with another machine's ||MEDIUM|| drive
922 This checklist is for a ||HOST|| that does not have its own ||MEDIUM|| drive,
923 but can share a file system with another machine that does have a ||MEDIUM||
924 drive. The other machine need not be a ||HOST||.
926 Installing this way will install all the source code, plus the binaries for
927 the ||HOST||. If you don't want both source and binaries, stop after
928 extracting @code{Install} from the ||MEDIUM||, and read about what options you
929 can use with @code{Install} in @ref{Install-Options,,Installation
930 Options}. For examples of variations on what to install,
931 see @ref{Examples,,Installation Examples}.
935 Find a machine with a suitable ||MEDIUM|| drive on the same network as your
936 ||HOST||, and sign on to it. If the only machine with a ||MEDIUM||
937 drive isn't on the network, see @ref{No Drive,,No Local ||MEDIUM|| Drive}.
940 Make sure a decompression program is available. The installation
941 procedure requires @code{compress} (used with the @samp{-d} option, in
942 the Cygnus @code{Install} script). @code{compress} is present on most
943 Unix systems. On Solaris 2 systems, it is part of the optionally
944 installed @code{SUNWesu} package.
947 Choose a directory where you will install the Developer's Kit. The
948 directory must be accessible from both machines (the one with the ||MEDIUM||
949 drive, and the ||HOST|| where you want to use the software)---for
950 example, over NFS. Wherever this note uses @var{shr}, substitute the
951 name of the directory you chose.
953 The shared directory need not have the same name on both machines,
954 though we show it as @var{shr} on both, for simplicity.
957 Check that you have enough space available (@pxref{Disk space}) in
958 @var{shr}. You can use @samp{df @var{shr}} to check.
961 Check whether you can write in @var{shr}:
965 eg$ @b{touch @var{shr}/cygnus-test; rm @var{shr}/cygnus-test}
970 @emph{If you get no errors from this line, skip the next step.}
973 If you got ``No such file or directory'' or ``Permission denied''
974 errors, you may need to use another group, or an account that has
975 permission to write in @var{shr} or in an existing
976 @file{/@var{shr}/cygnus-sol2-||RELNO||} directory. See @ref{No access,,No
977 Access to @file{/opt}}. If only @code{root} has access, the simplest
978 procedure is to @code{su root} @emph{briefly}, to create a writable
979 @file{/@var{shr}/cygnus-sol2-||RELNO||}. For instance:
984 password: @i{(enter root password)}
985 # @b{mkdir @var{shr}/cygnus-sol2-||RELNO||} @i{(ignore error if any)}
986 # @b{chmod 777 @var{shr}/cygnus-sol2-||RELNO||}
987 # @b{exit} @i{root access not needed beyond this}
994 Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
995 the system's tape drive.
998 find out the name of the @emph{non-rewinding} tape device on the machine
999 that can read the release tape. Cygnus release tapes are labelled to
1000 identify the kind of tape used---either QIC-24 or Exabyte.
1002 On ||HOST|| (or compatible) systems running Solaris 2, you will most
1003 likely use @file{/dev/rmt/0ln} (the last three characters are zero, el,
1004 en) as the tape device, regardless of which of the two kinds of tape you
1005 have; see @samp{man st} for details on how tape devices are named on
1008 However, the correct device name depends on the kind of system, and on
1009 how the system's tape drives were installed; ask your system
1010 administrator. On systems running Solaris or other Unix SVr4 variants,
1011 if the tape drive you plan to use is your system's only tape drive,
1012 @file{/dev/rmt/0ln} is very likely. Otherwise it may be something like
1013 @file{/dev/rmt/1ln}.
1015 These examples show @file{/dev/@var{tape}} for the tape device; remember
1016 to substitute the appropriate name.
1019 The first file on the tape is a script called @code{Install}. That
1020 script automates most of the installation procedure---but first you need
1021 to bootstrap the installation by getting @code{Install} itself from the
1022 tape. It doesn't really matter where you put this initial copy of
1023 @code{Install}; it is only used to get things started---these examples
1024 assume you put it in @file{/tmp}. When you use this copy of
1025 @code{Install} to extract software from the tape, another copy of
1026 @code{Install} will be saved in @file{@var{shr}/cygnus-sol2-||RELNO||}. Later, you
1027 will use that second copy to finish the installation on your ||HOST||.
1029 These commands will get @code{Install} into the @file{/tmp} directory
1030 (remember to fill in the appropriate device for @file{/dev/@var{tape}}:
1035 eg$ @b{tar xfov /dev/@var{tape} Install}
1039 On Solaris-2 systems, a frightening five-line message beginning
1040 ``@code{WARNING}'' and ending with ``@code{Sense Key: Unit Attention}''
1041 is very common at this point. It does not indicate anything is wrong;
1042 on the contrary, it's the operating system's way of letting you know
1043 that it noticed you put in a tape. Other systems may provide similar
1046 If you get any error messages beginning with something like ``tar: can't
1047 open'', check that the tape is correctly placed in your tape drive, and
1048 that you typed the right name for @var{tape}. Some errors can be
1049 corrected by reseating the tape in the tape drive and trying again.
1053 @emph{If you don't want both source and binaries, stop now,} and read about
1054 what options you can use with @code{Install} in
1055 @ref{Install-Options,,Installation Options}. For examples of variations
1056 on what to install, see @ref{Examples,,Installation Examples}.
1060 Now you can extract all the software by running @samp{Install extract}.
1061 Use the @samp{-tape=} option to specify where the software comes from, and the
1062 @w{@samp{-installdir=}} option to point to the @var{shr} directory.
1067 eg$ @b{./Install} @b{extract} @b{-tape=||MEDvar||} @b{-installdir=@var{shr}}
1071 This is a time-consuming step. @code{Install} will use @code{tar} to
1072 extract software for your system, leaving a log in the file
1073 @file{@var{shr}/cygnus-sol2-||RELNO||/tar.log}.
1075 When @code{Install} is done extracting the software, it
1076 displays the messages
1080 Cygnus Support software distribution extracted!
1086 Log on to the ||HOST|| where you want to use the software.
1089 Make sure that your ||HOST|| has the required Solaris 2 OS packages:
1090 @code{SUNWhea}, @code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo}
1091 (@pxref{Optional OS packages}). You can use @code{pkginfo}
1095 Create a symbolic link from @file{@var{shr}/cygnus-sol2-||RELNO||}
1096 to @file{/opt/cygnus-sol2-||RELNO||} on your ||HOST||. You may
1097 need to become @code{root} @emph{briefly}, as in this example:
1101 eg-sol2$ @b{su root}
1103 # @b{ln -s @var{shr}/cygnus-sol2-||RELNO|| /opt/cygnus-sol2-||RELNO||}
1104 # exit @i{root access not needed beyond this}
1109 If you don't have access to any account with permission to write in
1110 @file{/opt}, see @ref{No access,,No Access to @file{/opt}}.
1113 Fix up system header files on your ||HOST||, and test the installation,
1114 with the copy of @code{Install} that was placed in
1115 @file{@var{shr}/cygnus-sol2-||RELNO||} (now accessible as @file{/opt/cygnus-sol2-||RELNO||} on your
1120 eg-sol2$ @b{cd} @b{/opt/cygnus-sol2-||RELNO||}
1121 eg-sol2$ @b{./Install} @b{f}@b{ixincludes} @b{test}
1126 A log for the @code{fixincludes} step goes in
1127 @file{/opt/cygnus-sol2-||RELNO||/fixincludes.log}. @emph{Your
1128 system's original header files are not changed;} @code{Install} writes
1129 the converted copies in a separate, @sc{gcc}-specific directory.
1131 When each stage of this work is complete, @code{Install} displays these
1132 messages (the last, @samp{Done.}, simply indicates that @code{Install}
1133 has finished executing).
1137 Fixed include files installed!
1139 Cygnus Support software distribution tested!
1147 In case you need to send problem reports to Cygnus, we've
1148 included a script @code{send_pr} (and a supporting online form) to
1149 structure and transmit your reports. Please use the
1150 script @code{install_cid} to record your Cygnus customer ID in your copy
1151 of the problem report form. (You can find your customer ID in the cover
1152 letter that came with this release; or call the Cygnus hotline,
1153 @w{+1 415 322 7836}.) This will enable us to respond as quickly as
1154 possible to any problem reports you send.
1158 eg-sol2$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
1159 install_cid:`@var{ID}' is now the default customer ID for send_pr
1165 Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
1171 eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
1176 We recommended permissions @code{777} for the @file{/opt/cygnus-sol2-||RELNO||} and
1177 @file{@var{shr}/cygnus-sol2-||RELNO||} directories, to make sure you could run this
1178 procedure. However, for the long term, it is usually not a good idea to
1179 leave directories world-writable (especially directories where
1180 executables are found).
1182 For better security, remove public write access from @file{/opt/cygnus-sol2-||RELNO||}
1183 and @file{@var{shr}/cygnus-sol2-||RELNO||}. See your System Administrator for the
1184 correct permissions at your site.
1187 You're done! Anyone who puts @samp{/opt/cygnus/bin} in her or his
1188 @code{PATH} can use the Developer's Kit.
1191 @chapter Installation Examples
1193 Once you've got the @code{Install} script from your ||MEDIUM||,
1194 you can tell @code{Install} what software to install, what form of the
1195 programs you need, and what installation steps to do. Here are some
1196 examples covering common situations. For a full explanation of each
1197 possible @code{Install} argument, see @ref{Install-Options,,Installation
1200 The default ||MEDIUM|| drive for @code{Install} is @code{/dev/rmt/0ln}, which is
1201 right for the most common cases on Solaris 2 systems. If your
1202 ||MEDIUM|| drive is different, you need to use the
1203 @samp{-tape=||MEDvar||} option; the examples show this option for
1206 Remember to specify a @emph{non-rewinding} tape device.
1210 * binaries:: Installing binaries only
1211 * ||HOSTstr||-remote:: Reading tape on any machine, finishing on ||HOST||
1212 * source-remove:: Removing Source
1216 @section Installing binaries only
1220 eg$ @b{./Install -tape=||MEDvar|| bin}
1224 If you don't want the source---for instance, to save space---you can use
1225 the argument @samp{bin}.
1227 @node ||HOSTstr||-remote
1228 @section Reading ||MEDIUM|| on any SVr4 machine, finishing on ||HOST||
1232 @emph{On an SVr4 machine on your network with a ||MEDIUM|| drive:}
1233 eg-tp$ @b{./Install -tape=/dev/rmt/0ln -installdir=@var{shr} extract}
1239 @emph{On your ||HOST||}
1240 eg$ @b{ln -s @var{shr}/cygnus-sol2-||RELNO|| /opt/cygnus-sol2-||RELNO||}
1241 eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
1242 eg$ @b{./Install @b{f}ixincludes test}
1247 If your ||HOST|| doesn't have a ||MEDIUM|| drive, but another machine that can
1248 mount some shared directory @var{shr} does have one, you can carry out
1249 the first step of the installation from the machine with a ||MEDIUM|| drive,
1250 as shown. Note that you have to say @samp{extract} on the
1251 @code{Install} command line. This alerts @code{Install} to stop the
1252 install procedure after it reads the software. You still have to finish the
1253 installation, but the last two steps have to run on your ||HOST||. (If
1254 you forget, there's no great harm done: @code{Install} will notice that
1255 it can't carry out a full installation on the wrong machine, and will
1256 stop with an error message---then you can go back and try again. When
1257 @code{Install} notices a problem like this, it doesn't carry out
1258 @emph{any} action other than giving a helpful error message).
1260 The @samp{fixincludes} part of the installation is essential. Please
1261 see @ref{Why-fixincludes,,Why Convert System Header Files?}, if you're
1265 @section Removing Source
1266 The @code{Install} script can remove anything it can install. For
1267 example, if after installing the complete Developer's Kit on your
1268 machine you decide to remove the source files:
1272 eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
1273 eg$ @b{./Install remove source}
1278 In general, to remove a part of the Developer's Kit, use the same
1279 @code{Install} command line that would extract that part, but add the
1280 keyword @code{remove}. The @code{-tape} option is not necessary for
1282 @c following "end" matches ifclear FTPorCD several nodes back!
1285 @node Install-Options
1286 @chapter Installation Options
1288 The command-line arguments and options to @code{Install} allow you to
1289 direct its operation in these ways:
1294 @emph{What form of the programs} to install. You can choose among ||HOST||
1295 binaries (argument @code{bin}) and source code (@code{source}).
1296 If you don't specify either of these, @code{Install} assumes you want
1297 both source, and binaries for a ||HOST|| running Solaris 2.
1303 @emph{What installation actions} to carry out:
1307 extracting source from the ||MEDIUM|| (option
1311 writing @sc{ansi}-C conforming copies of your system include files (needed
1312 for the compilation tools; option @code{fixincludes})
1314 running a simple test of the installed programs
1315 (option @code{test})
1319 The last two of these actions (@code{fixincludes} and
1320 @code{test}) can only run on your ||HOST||. If you read the
1321 ||MEDIUM|| on another machine, you must specify the @code{extract} option
1322 explicitly, to indicate that you don't expect the other two actions to
1323 run (and are aware of the need to run further installation steps on your
1327 @emph{Removing some of the release} after it's installed.
1330 @emph{Where to find the software distribution}, with the @samp{-tape} option.
1334 @emph{Where you want to install}, with the @samp{-installdir} option.
1337 Here is a summary of the @code{Install} command-line options,
1338 followed by more detailed explanations:
1342 Install @r{[} -tape=||MEDvar|| @r{]}
1343 @r{[} -installdir=@var{directory} @r{]}
1344 @r{[} bin @r{]} @r{[} source @r{]}
1345 @r{[} extract @r{]} @r{[} fixincludes @r{]} @r{[} test @r{]}
1351 Install @r{[} fixincludes @r{]} @r{[} test @r{]}
1357 @item -tape=||MEDvar||
1358 @itemx -tape=@var{tarfile}
1359 Specify the @emph{non-rewinding} device name for your tape drive as
1360 @file{rmt/0ln} (the last three characters are zero, el, en).
1362 If you extract the installation script and compressed tarfile on some
1363 other system, and transfer them to your ||HOST|| for installation, use
1364 the name of the tarfile instead of a device name with @samp{-tape}.
1365 See @ref{No Drive,,No Local ||MEDIUM|| Drive}, for more discussion.
1367 @item -installdir=@var{directory}
1368 If you have no write access to @samp{/opt}, use this option to specify
1369 an alternate @var{directory} for your software---but beware: the
1370 software is configured to go in @samp{/opt/cygnus-sol2-||RELNO||}, and
1371 you'll have to override or change that too. See @ref{Paths,,Changing the
1376 By default, @code{Install} extracts both source, and binaries for your
1377 ||HOST||. Instead of relying on the default, you
1378 can use these options to say exactly what forms you
1379 want. You need to do this if
1382 you want only binaries, or
1384 you want only source.
1390 A full installation includes up to three things: (1) extracting
1391 software; (2) creating @sc{ansi}-C conforming copies of your
1392 system's standard header files; and (3) testing the installation.
1393 You can execute these steps separately by specifying
1394 @samp{extract}, @samp{fixincludes}, or @samp{test} on the
1395 @code{Install} command line.
1397 After you extract the software, @samp{fixincludes} is essential if you're
1398 using the compiler. @samp{fixincludes} @emph{does not change your
1399 system's original header files;} @code{Install} writes the converted
1400 copies in a separate, @sc{gcc}-specific directory.
1401 See @ref{Why-fixincludes,,Why Convert System Header Files?}, for more
1402 discussion of the @samp{fixincludes} step. @code{Install} will only
1403 attempt these two steps if you run it on the ||HOST||.
1405 @samp{test} is a confidence-building step, and doesn't
1406 actually change the state of the installed software.
1407 The @samp{test} step may not make sense, depending on what
1408 other options you've specified---if you install only source, there's
1411 If you specify a step that doesn't make sense, or if you run @code{Install}
1412 on a different machine but try to run @code{fixincludes} or
1413 @code{test}, @code{Install} will notice the error, and exit
1414 (before doing anything at all) with an error message, so you can try
1417 When you run @samp{extract}, @code{Install} leaves a log file
1418 @file{tar.log} in the installation directory---by default, in
1419 @file{/opt/cygnus-sol2-||RELNO||}.
1421 When you run @samp{fixincludes}, @code{Install}
1422 leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
1426 You can also use @code{Install} to remove parts of the release after
1427 you've installed them. Identify what to remove with either of the
1428 command-line options @samp{source} or @samp{bin}, together with
1429 @samp{remove}. @code{Install} will erase these parts of the
1430 installation from your system. See @ref{Removing,,Removing Parts of the
1431 Developer's Kit}, for an example.
1439 These steps are performed when you run @code{Install} without
1440 arguments, but if you like you can select either of them explicitly.
1442 After you extract the software, @samp{fixincludes} is essential if you're
1443 using the compiler. @samp{fixincludes} @emph{does not change your
1444 system's original header files;} @code{Install} writes the converted
1445 copies in a separate, @sc{gcc}-specific directory.
1446 See @ref{Why-fixincludes,,Why Convert System Header Files?}, for more
1447 discussion of the @samp{fixincludes} step. @code{Install} will only
1448 attempt these two steps if you run it on the ||HOST||.
1450 @samp{test} is a confidence-building step, and doesn't
1451 actually change the state of the installed software.
1453 When you run @samp{fixincludes}, @code{Install}
1454 leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
1460 @node Why-fixincludes
1461 @chapter Why Convert System Header Files?
1463 It is very important to run the @samp{fixincludes} step of installation
1464 (either explicitly, as @samp{Install fixincludes}, or by default when
1465 you run @code{Install} with no arguments). You must do this on
1466 @emph{each installation}: if many ||HOST||s share the same binaries on a
1467 shared filesystem, you need only do it once---but if you install
1468 separate copies, you must run @code{Install fixincludes} on each.
1470 The C header files supplied with SVr4 versions of Unix depend on a
1471 questionable interpretation of the @sc{ansi} C standard: they test for a
1472 non-@sc{ansi} environment by checking whether @code{__STDC__} is defined
1473 as zero. The @sc{ansi} standard actually only specifies that
1474 @code{__STDC__} will be defined to 1; if it is defined to any other
1475 value, the environment is not @sc{ansi} C compatible, and @sc{ansi} C
1476 says nothing about what that value might be.
1478 @sc{gcc} defines @code{__STDC__} to 1 when running with @samp{-ansi},
1479 when it functions as an ``@sc{ansi} C superset'' compiler. (It also sets
1480 @code{__STRICT_ANSI__} when it runs with the @samp{-pedantic} option.)
1481 However, @sc{gcc} leaves @code{__STDC__} undefined when it is not
1482 running as an @sc{ansi} C compiler.
1484 Unfortunately, the Solaris 2 header files follow the SVr4 choice. Since
1485 @sc{gcc} never defines @code{__STDC__} as 0, the distributed header
1486 files can leave out some declarations. (Look in @file{/usr/include/time.h},
1489 @samp{Install fixincludes} makes copies of the system include files,
1490 which have these nonstandard features removed so that @sc{gcc} can
1491 process them. These copies are placed in a new, @sc{gcc}-specific
1492 include directory---@emph{your system's original header files are not
1493 affected.} Once these fixed header files are created, @sc{gcc} finds and
1494 uses them automatically.
1496 If you don't run @code{fixincludes}, the GNU C compiler can only use the
1497 original system header files when you compile new C programs. @emph{In
1498 some cases, the resulting programs will fail at run-time}.
1501 @chapter Running the Programs
1502 Anyone who wishes to run the Cygnus development tools will need to make
1503 sure the @code{PATH} environment variable will find them. The simplest
1504 thing is to include @samp{/opt/cygnus-sol2-||RELNO||/bin} in the
1505 @code{PATH} variable. Since the directory name contains the release
1506 number @samp{||RELNO||}, however, this approach will require changing
1507 the paths explicitly for all users when you install a new release.
1509 Our installation procedures recommended creating a symbolic link like
1510 this, to plan ahead for future releases:
1515 eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
1519 Then people can use settings like these in initialization files:
1522 @exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1524 @b{PATH=/opt/cygnus/bin:$PATH}
1530 @exdent For C shell:
1532 @b{set path=(/opt/cygnus/bin $path)}
1537 You can also ensure that the @code{man} command can pick up the
1538 manual pages, using the @code{MANPATH} environment variable.
1541 @exdent For Bourne-compatible shells:
1543 @b{MANPATH=/opt/cygnus/man:$MANPATH}
1550 @exdent For C shell:
1552 @b{setenv MANPATH /opt/cygnus/man:$MANPATH}
1558 @chapter Changing the Paths
1559 The binaries shipped by Cygnus are configured for installation under the
1560 directory @file{/opt/cygnus-sol2-||RELNO||}. In particular, @code{gcc}
1561 and the documentation browser @code{info} need to know the location of
1564 If you wish to run the tools after installing them in another location,
1568 use environment variables
1569 to tell the tools where to find pieces of the installation; or
1572 rebuild the tools from source, with your preferred paths built in.
1573 See @ref{Rebuilding,,Rebuilding from Source}, if you want to take this
1577 In rare circumstances, the auxiliary installation script
1578 @code{install_cid} will also require a workaround if you do not install
1579 in @file{/opt/cygnus-sol2-||RELNO||}.
1581 @subheading GCC Paths
1582 @c FIXME! Add something about specs file?
1583 You can run the compiler @sc{gcc} without recompiling, even if you
1584 install the distribution in an alternate location, by first setting the
1585 environment variable @samp{GCC_EXEC_PREFIX}. This variable specifies
1586 where to find the executables, libraries, and data files used by the
1587 compiler. Its value will be different depending on which set of
1588 binaries you need to run. For example, if you install the distribution
1589 under @file{/local} (instead of the default @file{/opt}), you could set
1590 @samp{GCC_EXEC_PREFIX} as follows. (You can type the first two lines as
1591 a single line, if you like; the example is split using the line
1592 continuation character @samp{\} only to make it fit in the space
1597 @b{GCC_EXEC_PREFIX=/local/cygnus-sol2-||RELNO||/lib/gcc-lib/}\
1598 @b{||HOSTstr||/||GCCvn||/}
1599 @b{export GCC_EXEC_PREFIX}
1604 The example assumes you use a shell compatible with the Bourne shell; if
1605 you run the C shell, use the following instead. (Again, the line
1606 continuation character @samp{\} is only used for convenience in the
1607 example; feel free to use a single line.)
1611 @b{setenv GCC_EXEC_PREFIX /local/cygnus-sol2-||RELNO||/lib/gcc-lib/}\
1612 @b{||HOSTstr||/||GCCvn||/}
1617 @emph{Warning: The trailing slash @samp{/} is important}. The @code{gcc}
1618 program uses @samp{GCC_EXEC_PREFIX} simply as a prefix. If you omit the
1619 slash (or make any other mistakes in specifying the prefix), @code{gcc}
1620 will fail with a message beginning @samp{installation problem, cannot
1624 @subheading @code{info} Paths
1625 The standalone documentation browser @code{info} also needs to know the
1626 location of its documentation files in the distribution. The default
1627 location, @file{/opt/cygnus-sol2-||RELNO||/info}, is compiled in.
1628 If you install elsewhere, set the environment variable @code{INFOPATH}
1629 to indicate the alternate location.
1631 For example, again assuming you installed under @file{/local}:
1634 @exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1636 @b{INFOPATH=/local/cygnus-sol2-||RELNO||/info}
1642 @exdent For C shell:
1644 @b{setenv INFOPATH /local/cygnus-sol2-||RELNO||/info}
1648 @subheading @code{install_cid} Paths
1649 The auxiliary script @code{install_cid} is provided as a convenience, to
1650 fill in your site's customer ID as the default for your local version of
1651 the Cygnus @code{send_pr} problem-reporting script.
1653 If you don't install in @file{/opt/cygnus-sol2-||RELNO||}, @samp{install_cid
1654 @var{ID}} will still work correctly in most cases. However,
1655 there is one situation where @code{install_cid} fails:
1659 @emph{if} your site already has a release tree for
1660 @samp{/opt/cygnus-sol2-||RELNO||},
1662 @emph{and} you run @code{Install} with an alternative installation
1667 In this case, you must manually edit your customer ID into your site's
1668 copy of @code{send_pr}. Please call the Cygnus hotline,
1669 @w{+1 415 322 7836}, if you have any trouble with this.
1672 @chapter Some Things that Might go Wrong
1674 We've tried to make the installation of your Developer's Kit as painless
1675 as possible. Still, some complications may arise. Here are suggestions
1676 for dealing with some of them.
1680 * No Drive:: No local ||MEDIUM|| drive
1681 * Limited Space:: Not Enough Space
1682 * No access:: No Access to @file{/opt}
1683 * Install errors:: Error Messages from @code{Install}
1688 * No access:: No Access to @file{/opt}
1689 * Install errors:: Error Messages from @code{Install}
1696 @section No local ||MEDIUM|| drive
1697 If your ||HOST|| doesn't have an appropriate ||MEDIUM|| drive, you may
1698 still be able to install your software. Check with your system
1699 administrator to see if another machine at your site has a drive
1702 @item If a shared filesystem is available
1703 between the two machines, and it has enough space, go ahead and run
1704 @samp{Install extract -installdir=@var{shr}} from the machine with a
1705 ||MEDIUM|| drive, where @var{shr} is a directory visible to both
1706 machines. Then create @samp{/opt/cygnus-sol2-||RELNO||} on your
1707 ||HOST|| (the one where you want to install this Solaris 2 Developer's
1708 Kit) as a symbolic link to @file{@var{shr}/cygnus-sol2-||RELNO||}.
1709 You'll have to run @samp{Install fixincludes} and @samp{Install test}
1710 from your ||HOST|| afterwards; see @ref{cross-install,,Installing with
1711 another machine's ||MEDIUM|| drive}.
1713 @item If some form of filetransfer is available
1714 (such as @code{uucp}), read the ||MEDIUM|| using a system utility
1715 (for instance, @code{dd} on Unix systems; see the system documentation for
1716 the machine with a tape drive).
1718 There are two files on the distribution ||MEDIUM||; the first is
1719 just the @code{Install} script, and the second is a compressed
1720 @code{tar} format file containing the rest of the release. Read both of
1721 these files, and transfer them to your own machine. Then run
1722 @code{Install} as shown in @ref{local-install,,Installing with a local
1723 ||MEDIUM|| drive}, but use @samp{-tape=@var{tarfile}} to specify the name of
1724 the installation file, instead of @samp{-tape=/dev/rmt/0ln} as shown in
1725 the examples. In the simplest case, for example (starting after you've
1726 transferred @code{Install} and the tar file to your system):
1730 eg$ @b{./Install -tape=@var{tarfile}}
1737 @section Not Enough Space
1738 If you don't have enough space to install all of the distribution, you
1739 can instead extract only the compiled code, or only the source.
1741 The following table summarizes the approximate space (rounded up to the
1742 next megabyte) needed for source and binaries.
1743 There is a little overlap between the partial installations: the
1744 documentation, and documentation tools, are always installed.
1751 source code for all programs
1757 You can easily extract these components independently of one another, by
1758 using the @samp{source} or @samp{bin} arguments to the @code{Install}
1759 script provided with your release.
1760 See @ref{Install-Options,,Installation Options}.
1764 @section No Access to @file{/opt}
1766 If you don't have write access to @file{/opt}, first check whether
1767 you're in the right group. The command @samp{ls -lLdg /opt} will show
1768 you whether any group has write access to @file{/opt}, and the command
1769 @code{groups} will show you what groups you're authorized to use. If
1770 you're authorized to use a group with the right access, use @samp{newgrp
1771 @var{groupname}} to switch to that group.
1773 Otherwise, you may be able to use @code{root} (if you have the password)
1774 to give yourself temporary write access. There's no need to run the whole
1775 installation procedure as @code{root}; just use @code{root} access
1776 briefly like this---
1781 password: @i{(enter root password)}
1782 # @b{mkdir @var{shr}/cygnus-sol2-||RELNO||} @i{(ignore error if any)}
1783 # @b{chmod 777 @var{shr}/cygnus-sol2-||RELNO||}
1784 # @b{exit} @i{root access not needed beyond this}
1789 If you do set write permissions to @code{777} to run the installation
1790 procedure, remember to remove public write access when you're done, to
1791 avoid potential security problems.
1793 If none of these things help, and you can't get write access to
1794 @file{/opt} or @file{/opt/cygnus-sol2-||RELNO||},
1796 use the @samp{-installdir=@var{directory}} option to @code{Install} to
1797 specify a different installation directory, where you @emph{can} write.
1798 For example, if all the other installation defaults are right, you can
1799 execute something like @samp{./Install -installdir=@var{mydir}}.
1802 use a different installation directory, where you @emph{can} write.
1804 You will also have to either override default paths for the pre-compiled
1805 tools, or else recompile the software.
1808 @emph{WARNING:} If you can't install in
1809 @file{/opt/cygnus-sol2-||RELNO||} (or link your installation directory
1810 to that name), some of the defaults configured into the
1811 cygnus-sol2-||RELNO|| distribution won't work. See @ref{Paths,,Changing
1812 the Paths}, for information on overriding or reconfiguring these
1816 @node Install errors
1817 @section Error Messages from @code{Install}
1818 The @code{Install} script checks for many errors and inconsistencies in
1819 the way its arguments are used. The messages are meant to be
1823 Here is a list of a few messages where further information might be
1826 @item Cannot read from TAPE device @dots{}
1827 The error message ends with the device or file @code{Install} was trying
1828 to use. Please check that it is the device or file you intended;
1829 possible causes of trouble might include leaving off the @samp{/dev/}
1830 prefix at the front of a device name. A typo in the name might also
1834 If the problem is neither of these things, perhaps your tape device can't
1835 read our tape; see @ref{No Drive,,No Local Tape Drive}, for a discussion
1836 of how to use another machine's tape drive.
1839 @item @dots{} This is a problem.
1840 @itemx Cannot cd to @var{installdir}
1841 @itemx I do not know why I cannot create @var{installdir}
1842 @itemx hello.c fails to run
1843 @itemx test-ioctl.c fails to run
1844 @itemx I do not know how to remove an arch called @dots{}
1845 These errors (the first covers anything that ends in @samp{This is a
1846 problem}) are from paranoia checks; they are issued for situations that
1847 other checks should have covered, or for unlikely situations that
1848 require further diagnosis.
1852 If you get one of these messages, please
1856 @strong{call the Cygnus hotline, +1 415 322 7836}, or
1859 send electronic mail to @samp{help@@cygnus.com}.
1863 @chapter Rebuilding From Source
1866 All Cygnus products are free software; your Developer's Kit includes
1867 complete source code for all programs.
1870 All Cygnus products are free software. The source code for all programs
1871 in your Developer's Kit is available from the same place as the precompiled
1872 programs, in the file @file{@var{dist}/cygnus-sol2-||RELNO||.src.tar.Z}.
1875 Cygnus Support has implemented an automatic configuration scheme to
1876 adapt the programs to different environments.
1878 Rebuilding the programs from source requires these steps:
1888 For example, executing the following commands in sequence will rebuild
1889 and install a ||HOST|| native version of all the tools in a nonstandard
1894 eg$ @b{cd @var{installdir}/src}
1896 eg$ @b{./configure ||HOSTstr|| -prefix=/local/gnu}
1897 Created "Makefile" in @var{installdir}/src
1899 eg$ @b{make clean all info install install-info}
1904 We discuss each step in detail in the following sections.
1907 * Configuration:: Configuration
1908 * Config Names:: Specifying Names for Hosts and Targets
1909 * configure Options:: @code{configure} Options
1910 * Compilation:: Compilation
1911 * Installation:: Installation
1915 @section Configuration
1917 You can configure the software in this release by using the shell
1918 script called @code{configure}. The shell script requires one argument:
1919 the host type. There are also several possible options, including a
1920 @samp{-target=} option to configure for cross-system development.
1923 @section Specifying Names for Hosts and Targets
1925 The specifications used for hosts and targets in the @code{configure}
1926 script are based on a three-part naming scheme, but some short predefined
1927 aliases are also supported. The full naming scheme encodes three pieces
1928 of information in the following pattern:
1931 @var{architecture}-@var{vendor}-@var{os}
1934 For example, you can use the alias @code{sun4sol2} as a @var{host} argument
1935 or in a @samp{-target=@var{target}} option, but the equivalent full name
1936 is @samp{sparc-sun-solaris2}.
1939 @emph{Warning:} @code{configure} can represent a very large number of
1940 combinations of architecture, vendor, and OS. There is by no means
1941 support for all possible combinations!
1944 @node configure Options
1945 @section @code{configure} Options
1947 This section summarizes the @code{configure} options and arguments.
1948 Your Developer's Kit contains full online documentation for the Cygnus
1949 configure system. @inforef{Using Configure,,configure.info}, to read
1950 about @code{configure} in more detail, including information on how the
1951 @code{configure} options relate to @file{Makefile} variables.
1954 configure @r{[}-prefix=@var{dest}@r{]}
1955 @r{[}-exec-prefix=@var{bindest}@r{]}
1956 @r{[}-srcdir=@var{path}@r{]}
1957 @r{[}-norecursion@r{]}
1958 @r{[}-target=@var{target}@r{]}
1963 The binaries in this release were configured using
1967 configure -prefix /opt/cygnus-sol2-||RELNO|| ||HOSTstr||
1972 @item -prefix=@var{dest}
1973 @var{dest} is an installation directory @emph{path prefix}, the root for
1974 the directories where @code{make install} will place things. After you
1975 configure with this option, @samp{make install install-info} will
1976 install info files in @file{@var{dest}/info}, man pages in
1977 @file{@var{dest}/man}, and---unless you also use
1978 @samp{-exec-prefix}---compiled programs in @file{@var{dest}/bin}, and
1979 libraries in @file{@var{dest}/lib}. If you specify
1980 @samp{-prefix=/local}, for example, @code{make install} puts the
1981 development tools in @file{/local/bin}.
1983 @emph{WARNING:} the default @var{dest} path prefix in the source is not
1984 the same as the prefix for the preconfigured binaries distributed by Cygnus.
1986 @samp{-prefix=/opt/cygnus-sol2-||RELNO||} was used to build the binaries in this
1987 release. If you do not use @code{-prefix}, the installation directory
1988 is @file{/usr/local}.
1990 @item -exec-prefix=@var{bindest}
1991 @samp{-exec-prefix} serves the same purpose as @samp{-prefix}, but
1992 affects only machine-dependent targets (compiled programs and
1993 libraries). Specifying both @samp{-prefix} and @samp{-exec-prefix}
1994 allows you to segregate machine-dependent files, so that
1995 machine-independent files can be shared.
1997 @emph{WARNING:} the default @var{bindest} path prefix in the source is not
1998 the same as the prefix for the preconfigured binaries distributed by Cygnus.
2000 No @samp{-exec-prefix} was used to build the binaries in this release.
2001 If you do not use @samp{-exec-prefix}, the default directory for
2002 machine-dependent targets is whatever was specified with @file{-prefix}
2003 (by default, @file{/usr/local}; for the binaries in this release,
2004 @file{/opt/cygnus-sol2-||RELNO||}).
2006 @item -srcdir=@var{path}
2007 Use this option to make configurations in directories separate from the
2008 source directories. @code{configure} writes configuration specific files
2009 in the current directory, but arranges for them to use the source in the
2010 directory @var{path}. @code{configure} will create directories under
2011 the working directory in parallel to the source directories below
2012 @var{path}. Among other things, you can use this to build (or maintain)
2013 several configurations simultaneously, in separate directories. (This
2014 option requires a @code{make} program with the @samp{VPATH} feature,
2015 such as the one included with Solaris 2.)
2018 Configure only the directory level where @code{configure} is executed; do not
2019 propagate configuration to subdirectories.
2021 @item -target=@var{target}
2022 Configure the development tools for cross-development (compiling,
2023 debugging, or other processing) of programs running on the specified
2024 @var{target}. Without this option, programs are configured ``native'',
2025 that is, for managing programs that run on the same machine (@var{host})
2026 as the development tools themselves.
2028 There is no convenient way to generate a list of all available targets.
2030 @item @var{host} @dots{}
2031 Configure the development tools to run on the specified @var{host}.
2033 There is no convenient way to generate a list of all available hosts.
2036 The @samp{-prefix=@var{dest}} and @samp{-exec-prefix=@var{bindest}}
2037 options are particularly important. If you don't specify a @var{dest}
2038 or @var{bindest} directory, the @file{Makefile} installs binaries in
2039 subdirectories of @file{/usr/local}. These options are important
2040 because the @var{dest} and @var{bindest} directories are used for
2045 @var{bindest} is the directory where binaries are installed.
2048 @var{bindest} is built into the compiler itself for the
2049 locations of @sc{gcc} specific include files, the locations of @sc{gcc}
2050 subprograms, and the location of the @sc{gcc} specific library
2054 @var{dest} is compiled into @code{info} as the default directory
2055 for the documentation.
2060 @section Compilation
2062 After you've run @code{configure} (which writes the final
2063 @file{Makefile} in each directory), compilation is straightforward.
2064 To compile all the programs in the Developer's Kit, run:
2072 The @code{make} output is lengthy; consider redirecting it to a file.
2074 The overall @file{Makefile} propagates the value of the @code{CC}
2075 variable explicitly, so that you can easily control the compiler used in
2076 this step. @code{CFLAGS} is treated the same way. For instance, to
2077 build the compiler a second time, using @sc{gcc} to compile itself
2078 (after building and installing it in the alternate directory
2079 @file{/local/gnu}), you might use
2083 @b{make CC=/local/gnu/H-sun4/bin/gcc CFLAGS=-O all info}
2087 The conventional targets @samp{all}, @samp{install}, and @samp{clean}
2088 are supported at all levels of @file{Makefile}. Other targets are
2089 supported as well, as appropriate in each directory; please read the
2090 individual @file{Makefile} for details. Each @file{Makefile} in the
2091 source directories includes ample comments to help you read it. If you
2092 are not familiar with @code{make}, refer to @ref{Overview,,Overview of
2093 @code{make}, make.info, GNU Make: A Program for Directing
2097 @section Installation
2099 Whether you configure an alternative path using @code{-prefix}, or you
2100 use the default installation path @file{/usr/local}, you can install the
2101 software by executing:
2105 @b{make install install-info}
2111 @chapter Removing Parts of the Developer's Kit
2112 You can use the same @code{Install} script that was used to install the
2113 Developer's Kit on your system, to remove parts of the release.
2114 (Remember that the @code{Install} script was automatically saved for you
2115 as @file{/opt/cygnus-sol2-||RELNO||/Install}.)
2117 To do this, decide what you want to remove; then call @code{Install}
2118 with the option @samp{remove} on the command line, as well as all the
2119 options that you would use to install that portion of the release
2120 (@pxref{Install-Options,,Installation Options}). For example, suppose
2121 you never look at the source, and are running short of disk
2122 space; you can remove the source, while leaving the rest of
2123 the release undisturbed, as follows:
2127 eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
2128 eg$ @b{./Install remove source}
2133 You should see the following messages confirming the software was
2138 Cygnus Support software distribution removed!
2143 To remove the complete Solaris 2 Release of the Developer's Kit from
2144 your system (if, eventually, you no longer want it), delete the
2145 directory @file{/opt/cygnus-sol2-||RELNO||} and all its contents.
2149 @chapter Cygnus Releases and the FSF
2151 Most of the tools in this Developer's Kit are originally from the Free
2152 Software Foundation (FSF). You can get versions of all these tools from
2153 the FSF as well as from Cygnus. In general, Cygnus releases add to FSF
2154 software in the following ways:
2155 @c UPDATE! more differences bet Cygnus/FSF releases?
2159 All programs are ready to run. We supply preconfigured and precompiled
2160 binaries as well as the source code; you can start using the programs
2163 Commercial support is available. Cygnus adds value to FSF releases in
2164 large measure by offering outstanding support services.
2166 Coordination. The tools in your Developer's Kit are certified to work
2167 together; you need not worry about tools being out of step with each other.
2169 Bug fixes. A Cygnus release includes many fixes, already integrated
2170 into the programs. Cygnus repairs bugs discovered during testing, and
2171 also tracks and includes bug fixes developed for other Cygnus customers
2172 or distributed over the Internet.
2174 Bug reporting. Cygnus releases include the tool @code{send_pr}, which
2175 you can use to make sure your problem reports receive prompt attention,
2176 and are also incorporated in our future tests.
2178 Documentation. Cygnus revises and adds to available FSF
2179 documentation to give you better descriptions of all the software tools.
2181 Stability. Cygnus tests (and uses) all the programs it releases.
2184 This particular Cygnus Progressive release differs from the nearest
2185 corresponding FSF distributions in one important detail: Solaris 2 is
2186 supported. The FSF distributions will eventually include Solaris 2
2187 support, as the Cygnus changes are merged into the FSF source, and the
2188 FSF makes new releases.
2191 @node Cygnus-Support
2192 @chapter About Cygnus Support
2194 Cygnus Support was founded in 1989 to provide commercial support for
2195 free software. Cygnus supplies products and services that benefit
2196 advanced development groups by allowing them to use state-of-the-art
2197 tools without having to maintain them. With Cygnus Support, sites that
2198 once were forced to do their own tool support can recover that valuable
2199 staff time. Former users of proprietary software now may choose
2200 supported free software, combining the advantages of both worlds.
2202 Free software is faster, more powerful, and more portable than its
2203 proprietary counterparts. It evolves faster because users who want to
2204 make improvements are free to do so. Cygnus tracks these
2205 improvements and integrates them into tested, stable versions ready
2206 for commercial use, then backs this software with comprehensive
2209 With Cygnus Support as your partner, you will have the software and
2210 the support you need to meet your business objectives. Cygnus
2211 is intimately familiar with this software from extensive experience
2212 using, debugging, and implementing it. You get direct access to the
2213 most qualified support people: the authors of the software.
2215 We provide ``vintage'' releases---the most stable versions, which have
2216 been though even more extensive use and testing---or up-to-the minute
2217 ``progressive'' releases, for those who need the very latest version.
2219 Because all our improvements are also free software, you can
2220 distribute them widely within your organization, or to your customers,
2227 814 University Avenue
2228 Palo Alto, CA 94301, USA
2231 hotline: +1 415 322 7836
2232 email: @code{info@@cygnus.com}
2233 fax: +1 415 322 3270