only set PWD if it is already set (and likely wrong). from p3.
[deliverable/binutils-gdb.git] / sol-inst.texi
CommitLineData
5898af2c
DHW
1\input texinfo
2@c
3@c search for "UPDATE!" for items that will need examination on future
4@c releases
5@c
6@c This file may require a nonstandard texinfo.tex to format; if you
7@c need it, please contact Cygnus Support (email editor-in-chief@cygnus.com)
8@setfilename 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.
11@c
12@c This file describes how to install a Cygnus Solaris-2 Release.
13@c
14@c Copyright (C) 1991, 1992 Cygnus Support
15@c This text may be freely distributed under the terms of the GNU
16@c General Public License.
17@c
18@c $Id$
19@c
20@c set exactly ONE of the following to select what kind of install to doc:
21@clear CDROMinst
22@clear TAPEinst
23@set FTPsingle
24@clear FTPsplit
25@c
26@c shared properties:
27@clear FTP
28@clear FTPorCD
29@ifset FTPsingle
30@set FTP
31@set FTPorCD
32@end ifset
33@ifset FTPsplit
34@set FTP
35@set FTPorCD
36@end ifset
37@ifset CDROMinst
38@set FTPorCD
39@end ifset
40@c
41@c set CUSTOMER to indicate install instructions are for a Cygnus customer
42@c (clear for general public)
43@set CUSTOMER
44@c
45@iftex
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.
48@input texiplus
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.
52@input smpklug.texi
53@smallbook
54@cropmarks
55@setchapternewpage on
56@finalout
57@end iftex
58@settitle Release ||RELNO|| for Solaris 2
59@tex
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
63% w/shorter paths
64\globaldefs=1
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
69\globaldefs=0
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:
73%
74\global\def\b#1{{\user #1}}
75\global\parindent=0pt
76@end tex
77@titlepage
78@ifset CDROMinst
79@title CD-ROM Installation Notes
80@end ifset
81@ifset TAPEinst
82@title Tape Installation Notes
83@end ifset
84@ifset FTP
85@title FTP Installation Notes
86@end ifset
87@sp 3
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
91@page
92
93@tex
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}
99@end tex
100
101@vskip 0pt plus 1filll
102Copyright @copyright{} 1991, 1992 Cygnus Support
103
104Permission is granted to make and distribute verbatim copies of
105this manual provided the copyright notice and this permission notice
106are preserved on all copies.
107
108Permission is granted to copy and distribute modified versions of this
109manual under the conditions for verbatim copying, provided also that
110the entire resulting derived work is distributed under the terms of a
111permission notice identical to this one.
112
113Permission is granted to copy and distribute translations of this manual
114into another language, under the above conditions for modified versions.
115
116@end titlepage
117
118@ifinfo
119@node Top
120@top Cygnus Support Solaris-2 Developer's Kit, version ||RELNO||
121
122This file is about the Cygnus Developer's Kit: what's in it, how to
123install it, and how to reconfigure it.
124
125@ifclear FTPorCD
126@menu
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
140@end menu
141@end ifclear
142@ifset FTPorCD
143@menu
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
154@end menu
155@end ifset
156
157@end ifinfo
158
159@ifclear FTPorCD
160@node Brief
161@chapter Installing in Brief
162@end ifclear
163
164@ifset FTPorCD
165@node Brief
166@chapter Installation Procedure
167@end ifset
168
169@ifset TAPEinst
170@strong{You can run the brief installation procedure if:}
171@itemize @bullet
172@item
173Your ||HOST|| has its own tape drive (@code{/dev/rmt/0ln}---those
174last three characters are zero, el, en; see @samp{man st}), and
175@item
176You're willing to install in the directory @file{/opt}, and
177@item
178You have at least ||DF|| MB available (try @samp{df /opt}; @pxref{Disk space})
179@item
180The 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}).
183@end itemize
184Otherwise, see @ref{Installing,,Installing the Developer's Kit}.
185@end ifset
186@ifset FTPorCD
187@strong{To install the Cygnus Solaris-2 Developer's Kit, you need:}
188
189@end ifset
190@ifset FTPsingle
191@itemize @bullet
192@item
193the distribution file, @file{cygnus-sol2-||RELNO||.tar.Z}, in some directory
194@var{dist} on your system
195@item
196The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
197@code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
198system (try @samp{pkginfo @var{name}}). See @ref{Optional OS packages}.
199@item
200at least ||DF|| MB of disk space available. See @ref{Disk space}.
201@end itemize
202@end ifset
203@ifset FTPsplit
204@itemize @bullet
205@item
206the distribution files, @file{cygnus-sol2-||RELNO||.bin.tar.Z} (if you
207want precompiled binaries) and @file{cygnus-sol2-||RELNO||.src.tar.Z}
208(if you want the source code), in some directory @var{dist} on your
209system
210@item
211The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
212@code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
213system (try @samp{pkginfo @var{name}}). See @ref{Optional OS packages}.
214@item
215at least ||BD|| MB of disk space available for the binaries. See @ref{Disk space}.
216@item
217at least ||SD|| MB of disk space available for the source. See @ref{Disk space}.
218@end itemize
219@end ifset
220@ifset CDROMinst
221@itemize @bullet
222@item
223A copy of the SunSoft Catalyst CDware disc.
224@item
225The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
226@code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
227system (try @samp{pkginfo @var{name}}). See @ref{Optional OS packages}.
228@item
229at least ||BD|| MB of disk space available for the binaries. See @ref{Disk space}.
230@item
231at least ||SD|| MB of disk space available for the source. See @ref{Disk space}).
232@end itemize
233@end ifset
234
235@ifset FTPorCD
236We suggest installing the Developer's Kit under @file{/opt} (at least
237via a symbolic link). The precompiled tools are configured for this
238location. If you install elsewhere, and cannot establish a symbolic
239link to @file{/opt/cygnus-sol2-||RELNO||}, see @ref{Paths,,Changing the
240Paths}.
241@end ifset
242
243@enumerate
244@ifclear FTPorCD
245@item
246Make sure you can write in @file{/opt/cygnus-sol2-||RELNO||}, by typing:
247
248@example
249eg$ @b{su root}
250password: @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)}
254@end example
255@end ifclear
256
257@ifset FTPorCD
258@item
259Make sure you can write in @file{/opt}, by typing:
260
261@example
262eg$ @b{touch /opt/cygnus-test; rm /opt/cygnus-test}
263@end example
264
265If 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}}.
268@end ifset
269
270@ifset FTPsingle
271@item
272Extract the Developer's Kit from the distribution file.
273
274@example
275@exdent @emph{If you can install directly in @file{/opt}:}
276eg$ @b{cd /opt}
277eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.tar.Z | tar xfov -}
278@end example
279
280@example
281@exdent @emph{If you install in another directory @var{other}:}
282eg$ @b{cd} @var{other}
283eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.tar.Z | tar xfov -}
284eg$ @b{ln -s cygnus-sol2-||RELNO|| /opt}
285@end example
286@end ifset
287
288@ifset FTPsplit
289@item
290Extract the Developer's Kit binaries from the distribution file.
291
292@example
293@exdent @emph{If you can install directly in @file{/opt}:}
294eg$ @b{cd /opt}
295eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.bin.tar.Z | tar xfov -}
296@end example
297
298@example
299@exdent @emph{If you install in another directory @var{other}:}
300eg$ @b{cd} @var{other}
301eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.bin.tar.Z | tar xfov -}
302eg$ @b{ln -s cygnus-sol2-||RELNO|| /opt}
303@end example
304
305@item
306If you also want the source, repeat the previous step, but with the file
307@file{@var{dist}/cygnus-sol2-||RELNO||.src.tar.Z}.
308@end ifset
309
310@ifset CDROMinst
311@item
312Mount the @sc{cdware cd-rom}. You may need to briefly become super-user:
313
314@example
315eg$ @b{su root}
316password: @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)}
320@end example
321
322@item
323Start the @sc{cd-rom}'s presentation program (see the instructions
324that came with your @sc{cd-rom}).
325
326@item
327Look for an icon showing the Cygnus logo, with the label ``GNU C''. If
328you can't find this icon, you may have the wrong category selected; in
329the Category menu, select either ``All'' or ``Software Engineering''.
330
331@item
332Select the Cygnus icon by clicking once on it with the left mouse
333button.
334
335@item
336Select ``Install'' from the Options menu. A submenu appears, showing
337these options:
338
339@display
340Install Everything
341Install Binaries
342Install Source Code
343@end display
344
345Select one of these options. (Selecting ``Install Everything'' is
346equivalent to selecting each of the other two options, to get both
347binaries and source code for the Developer's Kit.)
348An interaction window appears.
349
350@item
351Answer the prompt @samp{Installation directory} with the name of the
352directory where you want the Developer's Kit installed. We recommend
353@file{/opt} (which is the default), because the compiler and other tools
354are configured for this location. (If you use another directory,
355see @ref{Paths,,Changing the Paths}.)
356
357@item
358Inspect the messages that appear in the interaction window. The
359installation script @code{Install} displays occasional messages to keep
360you informed about the steps it executes. Among them, these messages
361mark completion of the major stages of installation:
362
363@example
364Cygnus Support software distribution extracted!
365
366Fixed include files installed!
367
368Cygnus Support software distribution tested!
369
370@end example
371
372@strong{If all these messages have appeared}, skip the next step.
373
374@strong{If you see messages about missing parts of Solaris 2}, make sure
375you have all the optional packages described in
376@ref{Optional OS packages}. Then proceed with the next
377step.
378@end ifset
379
380@ifset TAPEinst
381@item
382Load the cygnus-sol2-||RELNO|| ||MEDIUM|| into your ||MEDIUM|| drive.
383
384@item
385Get the @code{Install} script from the tape:
386
387@example
388eg$ @b{cd /tmp}
389eg$ @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.}
392@end example
393
394@item
395Run the @code{Install} script:
396
397@example
398eg$ @b{./Install}
399@i{@dots{} @code{Install} displays messages about its activity, ending with}
400Done.
401@end example
402@end ifset
403
404@ifset FTPorCD
405@item
406Fix up copies of the system header files for your ||HOST||, and test the
407installation, with the @code{Install} script that was extracted from the
408distribution. @emph{@code{Install} makes its own copies of the header
409files; your system's original header files are not changed.}
410
411@example
412eg$ @b{cd cygnus-sol2-||RELNO||}
413eg$ @b{./Install}
414@exdent @code{Install} displays messages about its activity, ending with
415Done.
416@end example
417
418For background information on this step, see @ref{Why-fixincludes,,Why
419Convert System Header Files?}.
420@end ifset
421
422@ifset CUSTOMER
423@item
424Record your Cygnus customer-ID (see cover letter):
425
426@example
427eg$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
428@end example
429@end ifset
430
431@item
432Make a symbolic link to simplify pathnames:
433@example
434eg$ @b{cd} @b{/opt}
435eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
436@end example
437
438@ifclear FTPorCD
439@c Assume *WE* don't distribute cygnus-sol2-||RELNO|| w/permissions 777
440@item
441Remove public write access from @file{/opt/cygnus-sol2-||RELNO||}. See your System
442Administrator for the correct permissions at your site.
443@end ifclear
444
445@end enumerate
446
447You're done! Anyone who puts @samp{/opt/cygnus/bin} in her or his
448@code{PATH} can use the Developer's Kit.
449
450@node Contents
451@chapter Release Contents
452
453This Developer's Kit is a Cygnus Support release: the
454programs in it are recent versions, which have been tested and certified
455both individually and as a coordinated suite of tools.
456The kit includes both source and binaries for:
457
458@c UPDATE! Anything new shoveled in?
459
460@table @t
461@item gcc
462C compiler
463
464@item libm.a
465Mathematical subroutine library
466
467@item gdb
468Debugger
469
470@item gprof
471Performance analyzer
472
473@item byacc
474Parser generator
475
476@item flex
477Fast lexical analyzer generator
478
479@item makeinfo
480@itemx info
481Online documentation tools
482
483@item texinfo.tex
484@itemx texindex
485Documentation printing tools
486
487@item send_pr
488The Cygnus problem-reporting utility
489
490@item patch
491Source-code update utility
492@end table
493
494@menu
495* Platforms:: Supported Platforms
496* Requirements:: System Requirements
497@end menu
498
499@node Platforms
500@section Supported Platforms
501
502@table @strong
503@item ||HOST||s
504All programs in your Developer's Kit are for ||HOST||s running
505Solaris 2.0; we ship binaries (configured to install and run under
506@file{/opt/cygnus-sol2-||RELNO||}) as well as all source code.
507
508@item Other Platforms
509For information on other platforms or other programs
510that we may support, please contact Cygnus Support at:
511
512@table @strong
513@item voice
514+1 415 322 3811
515@item hotline
516+1 415 322 7836
517@item fax
518+1 415 322 3270
519@item email
520@code{info@@cygnus.com}
521@end table
522@end table
523
524@page
525@node Requirements
526@section System Requirements
527
528@ifset FTPorCD
529@menu
530* OS level::
531* Optional OS packages::
532* Disk space::
533* Write access::
534@end menu
535@end ifset
536
537@ifset TAPEinst
538@menu
539* OS level::
540* Optional OS packages::
541* A tape drive::
542* Disk space::
543* Write access::
544@end menu
545@end ifset
546
547@node OS level
548@subsection OS level
549Solaris 2.0 Beta or later.
550
551@node Optional OS packages
552@subsection Optional OS packages
553Many components of Solaris 2.0 are part of the standard operating system
554distribution, but are not installed by default. To install the Cygnus
555Solaris 2.0 Developer's Kit, you will need to make sure two of these
556optional components (called @dfn{packages}) are installed on your system:
557@samp{SUNWesu} and @samp{SUNWhea}. Three more packages are needed to
558run the Developer's Kit software after you've installed it:
559@samp{SUNWbtool}, @samp{SUNWtoo}, and @samp{SUNWarc}.
560
561To 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:
564
565@example
566eg$ @b{/usr/bin/pkginfo} @b{SUNWlibm}
567ERROR: information for "SUNWlibm" was not found
568@end example
569
570@noindent
571If @var{name} is installed, you will see a one-line summary of the
572package, like this:
573
574@example
575eg$ @b{/usr/bin/pkginfo} @b{SUNWhea}
576system SUNWhea Header Files
577@end example
578
579To install one of these optional parts of Solaris 2 (@var{name} in the
580example), put the Solaris 2.0 distribution CD in the drive, mount it
581(for example, as @file{/cdrom}), then do:
582
583@example
584/usr/sbin/pkgadd -d /cdrom/Solaris_2.0 @var{name} @dots{}
585@end example
586
587@noindent
588You can specify several package names at once.
589
590These are the Solaris 2 optional packages you'll need to run the
591Developer's Kit:
592
593@table @code
594@item SUNWarc
595@emph{Needed to link your programs:} Archive libraries for system
596interfaces.
597
598@item SUNWbtool
599@emph{Needed to build your programs:} ``SPARCCompilers
6002.0 Bundled tools''. Most of the contents of @file{/usr/ccs/bin}
601(most notably, the assembler) come from this package.
602
603@item SUNWesu
604@emph{Needed to install the Developer's Kit:} ``Extended System
605Utilities''. The decompression program (@code{compress},
606@code{uncompress}, @code{zcat}) is in this package; it is used to
607extract the contents of the Developer's Kit.
608
609@item SUNWhea
610@emph{Needed to complete installation and compile your programs:} Header
611files (@file{/usr/include}).
612
613@item SUNWtoo
614@emph{Needed to link your programs:} ``Programming Tools'', notably the
615linker, @code{/usr/ccs/bin/ld}.
616@end table
617
618@noindent
619One additional optional package may be of interest:
620
621@table @code
622@item SUNWlibm
623Sun's math subroutine library. This is not required, however, as a free
624@samp{libm.a} is part of the Developer's Kit.
625@end table
626
627@ifset TAPEinst
628@node A tape drive
629@subsection A tape drive
630You need access to a tape drive that can read the distribution.
631The drive need not be on the ||HOST|| where you want to run the
632software; 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
634some sort of file transfer capability between the machine with a
635tape drive and your ||HOST||.
636@end ifset
637
638@node Disk space
639@subsection Disk space
640The total space required to extract and install
641binaries and source for all programs is
642||DF|| megabytes.
643
644The software is configured to go into @file{/opt/cygnus-sol2-||RELNO||}. If you have
645space available, but not in the same file system as @file{/opt}, you can
646use @samp{ln -s} to create @file{/opt/cygnus-sol2-||RELNO||} as a symbolic link to the
647file system where you do have the space available.
648
649@ifclear FTPorCD
650If you don't have enough space, you may be able to install binaries only;
651see @ref{Limited Space,,Not Enough Space}. The space required for
652installing the binaries on ||HOST|| systems is ||BD|| megabytes.
653@end ifclear
654
655@node Write access
656@subsection Write access
657You 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
660Access to @file{/opt}}.
661
662@ifclear FTPorCD
663Root access is @emph{not} necessary to run the installation itself;
664but you might need it briefly
665@ifset CDROMinst
666to mount the @sc{cd-rom} drive, and
667@end ifset
668to arrange for a writable @file{/opt/cygnus-sol2-||RELNO||} directory. The detailed
669installation instructions show when this may be necessary. We recommend
670you avoid @samp{su root} whenever possible.
671@end ifclear
672
673@ifclear FTPorCD
674@node Installing
675@chapter Installing the Developer's Kit
676
677@iftex
678This note shows the different parts of examples like this:
679@table @asis
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}.
684@end table
685@end iftex
686In examples, we show the system prompt as @samp{eg$}.
687
688The Cygnus cygnus-sol2-||RELNO|| ||MEDIUM|| contains two separate
689files. The first file is a script called @code{Install};
690the second file contains the Developer's Kit software. To get
691the software onto your system, you need to make sure you have the space
692you'll need for it, and get the @code{Install} script off the ||MEDIUM||.
693Then you can use the @code{Install} script to choose what else to
694install.
695
696Two checklists follow. The first checklist shows what to do if you have
697a ||MEDIUM|| drive on the ||HOST|| where you want to install the
698Developer's Kit; the second shows how to use another networked machine
699to read the ||MEDIUM||, then finish the installation on your ||HOST||.
700
701Both checklists suggest installing the Developer's Kit under
702@file{/opt} (if you like, via a symbolic link from another location).
703We recommend you use this location for the software, because the
704precompiled, ready-to-run versions of the tools are configured this
705way. (If you want to use a different location, and cannot establish a
706symbolic link from it to @file{/opt/cygnus-sol2-||RELNO||}, please see
707@ref{Install-Options,,Installation Options}. To use the software
708conveniently after installing elsewhere, see @ref{Paths,,Changing the
709Paths}.)
710
711Both checklists are very similar to @ref{Brief,,Installing in Brief},
712but 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.
715
716@menu
717* local-install:: Installing with a local ||MEDIUM|| drive
718* cross-install:: Installing with another machine's ||MEDIUM|| drive
719@end menu
720
721@node local-install
722@section Installing in @file{/opt}, with a local ||MEDIUM|| drive
723
724This procedure is for a ||HOST|| that has its own ||MEDIUM|| drive.
725
726Installing this way will install all the source code, plus the binaries for
727the ||HOST||. If you don't want both source and binaries, stop after
728extracting @code{Install} from the ||MEDIUM||, and read about what options you
729can use with @code{Install} in @ref{Install-Options,,Installation
730Options}. For examples of variations on what to install,
731see @ref{Examples,,Installation Examples}.
732
733@enumerate
734@item
735Make 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}.
739
740@item
741Check that you have enough space available (@pxref{Disk space}) in
742@file{/opt}. You can use @samp{df /opt} to check.
743
744@item
745Check whether you can write in @file{/opt}:
746
747@cartouche
748@example
749eg$ @b{touch /opt/cygnus-test; rm /opt/cygnus-test}
750@end example
751@end cartouche
752
753@noindent
754@emph{If you get no errors from this line, skip the next step.}
755
756@item
757If you got ``No such file or directory'' or ``Permission denied''
758errors, you may need to use another group, or an account that has
759permission to write in @file{/opt} or in an existing
760@file{/opt/cygnus-sol2-||RELNO||} directory. See @ref{No access,,No Access
761to @file{/opt}}. If only @code{root} has access, the simplest procedure
762is to @code{su root} @emph{briefly}, to create a writable
763@file{/opt/cygnus-sol2-||RELNO||}. For instance:
764
765@cartouche
766@example
767eg$ @b{su root}
768password: @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}
772eg$
773@end example
774@end cartouche
775
776@ifset TAPEinst
777@item
778Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
779your system's tape drive.
780
781@item
782find out the name of the @emph{non-rewinding} tape device that can read
783the release tape, on your machine. Cygnus release tapes are labelled to
784identify the kind of tape used---either QIC-24 or Exabyte.
785
786You will most likely use @file{/dev/rmt/0ln} (the last three characters
787are zero, el, en) as the tape device, regardless of which of the two
788kinds of tape you have; see @samp{man st} for details on how tape
789devices are named on Solaris 2.
790
791However, the correct device name depends on how your system's tape
792drives were installed; ask your system administrator. If the tape drive
793you plan to use is your system's only tape drive, @file{/dev/rmt/0ln} is
794very likely. Otherwise it may be something like @file{/dev/rmt/1ln}.
795
796Our examples show @file{/dev/rmt/0ln} for the tape device, as this is
797the most common case.
798
799@item
800The first file on the tape is a script called @code{Install}. That
801script automates most of the installation procedure---but first you need
802to bootstrap the installation by getting @code{Install} itself from the
803tape. 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
805assume 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||}.
808
809These 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
812your system):
813
814@cartouche
815@example
816eg$ @b{cd /tmp}
817eg$ @b{tar xfov /dev/rmt/0ln Install}
818@end example
819@end cartouche
820
821A frightening five-line message beginning ``@code{WARNING}'' and ending
822with ``@code{Sense Key: Unit Attention}'' is very common at this point.
823It does not indicate anything is wrong; on the contrary, it's the
824operating system's way of letting you know that it noticed you put in a
825tape.
826
827If you get any error messages beginning ``tar: can't open'', check that
828the tape is correctly placed in your tape drive, and that you typed the
829right name where we show @file{/dev/rmt/0ln}. Some errors can be
830corrected by reseating the tape in the tape drive and trying again.
831@end ifset
832
833@quotation
834@emph{If you don't want both source and binaries, stop now,} and read about
835what options you can use with @code{Install} in
836@ref{Install-Options,,Installation Options}. For examples of variations
837on what to install, see @ref{Examples,,Installation Examples}.
838@end quotation
839
840@item
841Now you can extract your Developer's Kit software by running
842@code{Install}. Use the @samp{-tape=} option to specify where
843the software comes from:
844
845@cartouche
846@example
847eg$ @b{/tmp/Install -tape=/dev/rmt/0ln}
848@end example
849@end cartouche
850
851This 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
854header files, converted to comply with @sc{ansi} C
855(@pxref{Why-fixincludes,,Why Convert System Header Files?}); a log for
856this step goes in @file{/opt/cygnus-sol2-||RELNO||/fixincludes.log}. @emph{Your
857system's original header files are not changed;} @code{Install} writes
858the converted copies in a separate, @sc{gcc}-specific directory.
859
860As it executes, @code{Install} displays occasional messages to keep you
861informed about which of these steps it's executing. Among them, these
862messages mark completion of the major stages of installation:
863
864@cartouche
865@example
866Cygnus Support software distribution extracted!
867
868Fixed include files installed!
869
870Cygnus Support software distribution tested!
871
872Done.
873@end example
874@end cartouche
875
876@ifset CUSTOMER
877@item
878In case you need to send problem reports to Cygnus, we've
879included a script @code{send_pr} (and a supporting online template) to
880structure and transmit your reports. Please use the
881script @code{install_cid} to record your Cygnus customer ID in your copy
882of the problem report form. (You can find your customer ID in the cover
883letter 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
885possible to any problem reports you send.
886
887@cartouche
888@example
889eg$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
890install_cid:`@var{ID}' is now the default customer ID for send_pr
891@end example
892@end cartouche
893@end ifset
894
895@item
896Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
897Programs}):
898
899@cartouche
900@example
901eg$ @b{cd} @b{/opt}
902eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
903@end example
904@end cartouche
905
906@item
907We recommended permissions @code{777} for the @file{/opt/cygnus-sol2-||RELNO||}
908directory, to be sure you could run this procedure. However, for the
909long term, it is usually not a good idea to leave directories
910world-writable (especially directories where executables are found).
911
912For better security, remove public write access from @file{/opt/cygnus-sol2-||RELNO||}.
913See your System Administrator for the correct permissions at your site.
914@end enumerate
915
916You're done! Anyone who puts @samp{/opt/cygnus/bin} in her or his
917@code{PATH} can use the Developer's Kit.
918
919@page
920@node cross-install
921@section Installing in @file{/opt}, with another machine's ||MEDIUM|| drive
922This checklist is for a ||HOST|| that does not have its own ||MEDIUM|| drive,
923but can share a file system with another machine that does have a ||MEDIUM||
924drive. The other machine need not be a ||HOST||.
925
926Installing this way will install all the source code, plus the binaries for
927the ||HOST||. If you don't want both source and binaries, stop after
928extracting @code{Install} from the ||MEDIUM||, and read about what options you
929can use with @code{Install} in @ref{Install-Options,,Installation
930Options}. For examples of variations on what to install,
931see @ref{Examples,,Installation Examples}.
932
933@enumerate
934@item
935Find 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||
937drive isn't on the network, see @ref{No Drive,,No Local ||MEDIUM|| Drive}.
938
939@item
940Make sure a decompression program is available. The installation
941procedure requires @code{compress} (used with the @samp{-d} option, in
942the Cygnus @code{Install} script). @code{compress} is present on most
943Unix systems. On Solaris 2 systems, it is part of the optionally
944installed @code{SUNWesu} package.
945
946@item
947Choose a directory where you will install the Developer's Kit. The
948directory must be accessible from both machines (the one with the ||MEDIUM||
949drive, and the ||HOST|| where you want to use the software)---for
950example, over NFS. Wherever this note uses @var{shr}, substitute the
951name of the directory you chose.
952
953The shared directory need not have the same name on both machines,
954though we show it as @var{shr} on both, for simplicity.
955
956@item
957Check that you have enough space available (@pxref{Disk space}) in
958@var{shr}. You can use @samp{df @var{shr}} to check.
959
960@item
961Check whether you can write in @var{shr}:
962
963@cartouche
964@example
965eg$ @b{touch @var{shr}/cygnus-test; rm @var{shr}/cygnus-test}
966@end example
967@end cartouche
968
969@noindent
970@emph{If you get no errors from this line, skip the next step.}
971
972@item
973If you got ``No such file or directory'' or ``Permission denied''
974errors, you may need to use another group, or an account that has
975permission to write in @var{shr} or in an existing
976@file{/@var{shr}/cygnus-sol2-||RELNO||} directory. See @ref{No access,,No
977Access to @file{/opt}}. If only @code{root} has access, the simplest
978procedure is to @code{su root} @emph{briefly}, to create a writable
979@file{/@var{shr}/cygnus-sol2-||RELNO||}. For instance:
980
981@cartouche
982@example
983eg$ @b{su root}
984password: @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}
988eg$
989@end example
990@end cartouche
991
992@ifset TAPEinst
993@item
994Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
995the system's tape drive.
996
997@item
998find out the name of the @emph{non-rewinding} tape device on the machine
999that can read the release tape. Cygnus release tapes are labelled to
1000identify the kind of tape used---either QIC-24 or Exabyte.
1001
1002On ||HOST|| (or compatible) systems running Solaris 2, you will most
1003likely use @file{/dev/rmt/0ln} (the last three characters are zero, el,
1004en) as the tape device, regardless of which of the two kinds of tape you
1005have; see @samp{man st} for details on how tape devices are named on
1006Solaris 2.
1007
1008However, the correct device name depends on the kind of system, and on
1009how the system's tape drives were installed; ask your system
1010administrator. On systems running Solaris or other Unix SVr4 variants,
1011if 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}.
1014
1015These examples show @file{/dev/@var{tape}} for the tape device; remember
1016to substitute the appropriate name.
1017
1018@item
1019The first file on the tape is a script called @code{Install}. That
1020script automates most of the installation procedure---but first you need
1021to bootstrap the installation by getting @code{Install} itself from the
1022tape. 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
1024assume 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
1027will use that second copy to finish the installation on your ||HOST||.
1028
1029These commands will get @code{Install} into the @file{/tmp} directory
1030(remember to fill in the appropriate device for @file{/dev/@var{tape}}:
1031
1032@cartouche
1033@example
1034eg$ @b{cd /tmp}
1035eg$ @b{tar xfov /dev/@var{tape} Install}
1036@end example
1037@end cartouche
1038
1039On Solaris-2 systems, a frightening five-line message beginning
1040``@code{WARNING}'' and ending with ``@code{Sense Key: Unit Attention}''
1041is very common at this point. It does not indicate anything is wrong;
1042on the contrary, it's the operating system's way of letting you know
1043that it noticed you put in a tape. Other systems may provide similar
1044amenities.
1045
1046If you get any error messages beginning with something like ``tar: can't
1047open'', check that the tape is correctly placed in your tape drive, and
1048that you typed the right name for @var{tape}. Some errors can be
1049corrected by reseating the tape in the tape drive and trying again.
1050@end ifset
1051
1052@quotation
1053@emph{If you don't want both source and binaries, stop now,} and read about
1054what options you can use with @code{Install} in
1055@ref{Install-Options,,Installation Options}. For examples of variations
1056on what to install, see @ref{Examples,,Installation Examples}.
1057@end quotation
1058
1059@item
1060Now you can extract all the software by running @samp{Install extract}.
1061Use 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.
1063
1064@cartouche
1065@example
1066eg$ @b{cd} @b{/tmp}
1067eg$ @b{./Install} @b{extract} @b{-tape=||MEDvar||} @b{-installdir=@var{shr}}
1068@end example
1069@end cartouche
1070
1071This is a time-consuming step. @code{Install} will use @code{tar} to
1072extract software for your system, leaving a log in the file
1073@file{@var{shr}/cygnus-sol2-||RELNO||/tar.log}.
1074
1075When @code{Install} is done extracting the software, it
1076displays the messages
1077
1078@cartouche
1079@example
1080Cygnus Support software distribution extracted!
1081Done.
1082@end example
1083@end cartouche
1084
1085@item
1086Log on to the ||HOST|| where you want to use the software.
1087
1088@item
1089Make 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}
1092to check.
1093
1094@item
1095Create a symbolic link from @file{@var{shr}/cygnus-sol2-||RELNO||}
1096to @file{/opt/cygnus-sol2-||RELNO||} on your ||HOST||. You may
1097need to become @code{root} @emph{briefly}, as in this example:
1098
1099@cartouche
1100@example
1101eg-sol2$ @b{su root}
1102password:
1103# @b{ln -s @var{shr}/cygnus-sol2-||RELNO|| /opt/cygnus-sol2-||RELNO||}
1104# exit @i{root access not needed beyond this}
1105@end example
1106@end cartouche
1107
1108@noindent
1109If 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}}.
1111
1112@item
1113Fix up system header files on your ||HOST||, and test the installation,
1114with 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
1116machine):
1117
1118@cartouche
1119@example
1120eg-sol2$ @b{cd} @b{/opt/cygnus-sol2-||RELNO||}
1121eg-sol2$ @b{./Install} @b{f}@b{ixincludes} @b{test}
1122@end example
1123@end cartouche
1124
1125@noindent
1126A log for the @code{fixincludes} step goes in
1127@file{/opt/cygnus-sol2-||RELNO||/fixincludes.log}. @emph{Your
1128system's original header files are not changed;} @code{Install} writes
1129the converted copies in a separate, @sc{gcc}-specific directory.
1130
1131When each stage of this work is complete, @code{Install} displays these
1132messages (the last, @samp{Done.}, simply indicates that @code{Install}
1133has finished executing).
1134
1135@cartouche
1136@example
1137Fixed include files installed!
1138
1139Cygnus Support software distribution tested!
1140
1141Done.
1142@end example
1143@end cartouche
1144
1145@ifset CUSTOMER
1146@item
1147In case you need to send problem reports to Cygnus, we've
1148included a script @code{send_pr} (and a supporting online form) to
1149structure and transmit your reports. Please use the
1150script @code{install_cid} to record your Cygnus customer ID in your copy
1151of the problem report form. (You can find your customer ID in the cover
1152letter 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
1154possible to any problem reports you send.
1155
1156@cartouche
1157@example
1158eg-sol2$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
1159install_cid:`@var{ID}' is now the default customer ID for send_pr
1160@end example
1161@end cartouche
1162@end ifset
1163
1164@item
1165Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
1166Programs}):
1167
1168@cartouche
1169@example
1170eg$ @b{cd} @b{/opt}
1171eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
1172@end example
1173@end cartouche
1174
1175@item
1176We 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
1178procedure. However, for the long term, it is usually not a good idea to
1179leave directories world-writable (especially directories where
1180executables are found).
1181
1182For better security, remove public write access from @file{/opt/cygnus-sol2-||RELNO||}
1183and @file{@var{shr}/cygnus-sol2-||RELNO||}. See your System Administrator for the
1184correct permissions at your site.
1185@end enumerate
1186
1187You're done! Anyone who puts @samp{/opt/cygnus/bin} in her or his
1188@code{PATH} can use the Developer's Kit.
1189
1190@node Examples
1191@chapter Installation Examples
1192
1193Once you've got the @code{Install} script from your ||MEDIUM||,
1194you can tell @code{Install} what software to install, what form of the
1195programs you need, and what installation steps to do. Here are some
1196examples covering common situations. For a full explanation of each
1197possible @code{Install} argument, see @ref{Install-Options,,Installation
1198Options}.
1199
1200The default ||MEDIUM|| drive for @code{Install} is @code{/dev/rmt/0ln}, which is
1201right 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
1204completeness.
1205@ifset TAPEinst
1206Remember to specify a @emph{non-rewinding} tape device.
1207@end ifset
1208
1209@menu
1210* binaries:: Installing binaries only
1211* ||HOSTstr||-remote:: Reading tape on any machine, finishing on ||HOST||
1212* source-remove:: Removing Source
1213@end menu
1214
1215@node binaries
1216@section Installing binaries only
1217
1218@cartouche
1219@example
1220eg$ @b{./Install -tape=||MEDvar|| bin}
1221@end example
1222@end cartouche
1223
1224If you don't want the source---for instance, to save space---you can use
1225the argument @samp{bin}.
1226
1227@node ||HOSTstr||-remote
1228@section Reading ||MEDIUM|| on any SVr4 machine, finishing on ||HOST||
1229
1230@cartouche
1231@example
1232@emph{On an SVr4 machine on your network with a ||MEDIUM|| drive:}
1233eg-tp$ @b{./Install -tape=/dev/rmt/0ln -installdir=@var{shr} extract}
1234@end example
1235@end cartouche
1236
1237@cartouche
1238@example
1239@emph{On your ||HOST||}
1240eg$ @b{ln -s @var{shr}/cygnus-sol2-||RELNO|| /opt/cygnus-sol2-||RELNO||}
1241eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
1242eg$ @b{./Install @b{f}ixincludes test}
1243@end example
1244@end cartouche
1245
1246@noindent
1247If your ||HOST|| doesn't have a ||MEDIUM|| drive, but another machine that can
1248mount some shared directory @var{shr} does have one, you can carry out
1249the first step of the installation from the machine with a ||MEDIUM|| drive,
1250as shown. Note that you have to say @samp{extract} on the
1251@code{Install} command line. This alerts @code{Install} to stop the
1252install procedure after it reads the software. You still have to finish the
1253installation, but the last two steps have to run on your ||HOST||. (If
1254you forget, there's no great harm done: @code{Install} will notice that
1255it can't carry out a full installation on the wrong machine, and will
1256stop 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).
1259
1260The @samp{fixincludes} part of the installation is essential. Please
1261see @ref{Why-fixincludes,,Why Convert System Header Files?}, if you're
1262curious.
1263
1264@node source-remove
1265@section Removing Source
1266The @code{Install} script can remove anything it can install. For
1267example, if after installing the complete Developer's Kit on your
1268machine you decide to remove the source files:
1269
1270@cartouche
1271@example
1272eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
1273eg$ @b{./Install remove source}
1274@end example
1275@end cartouche
1276
1277@noindent
1278In 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
1280keyword @code{remove}. The @code{-tape} option is not necessary for
1281removing.
1282@c following "end" matches ifclear FTPorCD several nodes back!
1283@end ifclear
1284
1285@node Install-Options
1286@chapter Installation Options
1287
1288The command-line arguments and options to @code{Install} allow you to
1289direct its operation in these ways:
1290
1291@ifclear FTPorCD
1292@itemize @bullet
1293@item
1294@emph{What form of the programs} to install. You can choose among ||HOST||
1295binaries (argument @code{bin}) and source code (@code{source}).
1296If you don't specify either of these, @code{Install} assumes you want
1297both source, and binaries for a ||HOST|| running Solaris 2.
1298@end itemize
1299@end ifclear
1300
1301@itemize @bullet
1302@item
1303@emph{What installation actions} to carry out:
1304@enumerate
1305@ifclear FTPorCD
1306@item
1307extracting source from the ||MEDIUM|| (option
1308@code{extract})
1309@end ifclear
1310@item
1311writing @sc{ansi}-C conforming copies of your system include files (needed
1312for the compilation tools; option @code{fixincludes})
1313@item
1314running a simple test of the installed programs
1315(option @code{test})
1316@end enumerate
1317
1318@ifclear FTPorCD
1319The 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
1322explicitly, to indicate that you don't expect the other two actions to
1323run (and are aware of the need to run further installation steps on your
1324||HOST||).
1325
1326@item
1327@emph{Removing some of the release} after it's installed.
1328
1329@item
1330@emph{Where to find the software distribution}, with the @samp{-tape} option.
1331@end ifclear
1332
1333@item
1334@emph{Where you want to install}, with the @samp{-installdir} option.
1335@end itemize
1336
1337Here is a summary of the @code{Install} command-line options,
1338followed by more detailed explanations:
1339
1340@ifclear FTPorCD
1341@example
1342Install @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{]}
1346 @r{[} remove @r{]}
1347@end example
1348@end ifclear
1349@ifset FTPorCD
1350@example
1351Install @r{[} fixincludes @r{]} @r{[} test @r{]}
1352@end example
1353@end ifset
1354
1355@ifset TAPEinst
1356@table @code
1357@item -tape=||MEDvar||
1358@itemx -tape=@var{tarfile}
1359Specify the @emph{non-rewinding} device name for your tape drive as
1360@file{rmt/0ln} (the last three characters are zero, el, en).
1361
1362If you extract the installation script and compressed tarfile on some
1363other system, and transfer them to your ||HOST|| for installation, use
1364the name of the tarfile instead of a device name with @samp{-tape}.
1365See @ref{No Drive,,No Local ||MEDIUM|| Drive}, for more discussion.
1366
1367@item -installdir=@var{directory}
1368If you have no write access to @samp{/opt}, use this option to specify
1369an alternate @var{directory} for your software---but beware: the
1370software is configured to go in @samp{/opt/cygnus-sol2-||RELNO||}, and
1371you'll have to override or change that too. See @ref{Paths,,Changing the
1372Paths}.
1373
1374@item bin
1375@itemx source
1376By default, @code{Install} extracts both source, and binaries for your
1377||HOST||. Instead of relying on the default, you
1378can use these options to say exactly what forms you
1379want. You need to do this if
1380@itemize @bullet
1381@item
1382you want only binaries, or
1383@item
1384you want only source.
1385@end itemize
1386
1387@item extract
1388@itemx fixincludes
1389@itemx test
1390A full installation includes up to three things: (1) extracting
1391software; (2) creating @sc{ansi}-C conforming copies of your
1392system's standard header files; and (3) testing the installation.
1393You can execute these steps separately by specifying
1394@samp{extract}, @samp{fixincludes}, or @samp{test} on the
1395@code{Install} command line.
1396
1397After you extract the software, @samp{fixincludes} is essential if you're
1398using the compiler. @samp{fixincludes} @emph{does not change your
1399system's original header files;} @code{Install} writes the converted
1400copies in a separate, @sc{gcc}-specific directory.
1401See @ref{Why-fixincludes,,Why Convert System Header Files?}, for more
1402discussion of the @samp{fixincludes} step. @code{Install} will only
1403attempt these two steps if you run it on the ||HOST||.
1404
1405@samp{test} is a confidence-building step, and doesn't
1406actually change the state of the installed software.
1407The @samp{test} step may not make sense, depending on what
1408other options you've specified---if you install only source, there's
1409nothing to test.
1410
1411If you specify a step that doesn't make sense, or if you run @code{Install}
1412on 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
1415again.
1416
1417When 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||}.
1420
1421When you run @samp{fixincludes}, @code{Install}
1422leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
1423subdirectory.
1424
1425@item remove
1426You can also use @code{Install} to remove parts of the release after
1427you've installed them. Identify what to remove with either of the
1428command-line options @samp{source} or @samp{bin}, together with
1429@samp{remove}. @code{Install} will erase these parts of the
1430installation from your system. See @ref{Removing,,Removing Parts of the
1431Developer's Kit}, for an example.
1432@end table
1433@end ifset
1434
1435@ifset FTPorCD
1436@table @code
1437@item fixincludes
1438@itemx test
1439These steps are performed when you run @code{Install} without
1440arguments, but if you like you can select either of them explicitly.
1441
1442After you extract the software, @samp{fixincludes} is essential if you're
1443using the compiler. @samp{fixincludes} @emph{does not change your
1444system's original header files;} @code{Install} writes the converted
1445copies in a separate, @sc{gcc}-specific directory.
1446See @ref{Why-fixincludes,,Why Convert System Header Files?}, for more
1447discussion of the @samp{fixincludes} step. @code{Install} will only
1448attempt these two steps if you run it on the ||HOST||.
1449
1450@samp{test} is a confidence-building step, and doesn't
1451actually change the state of the installed software.
1452
1453When you run @samp{fixincludes}, @code{Install}
1454leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
1455subdirectory.
1456@end table
1457@end ifset
1458
1459
1460@node Why-fixincludes
1461@chapter Why Convert System Header Files?
1462
1463It is very important to run the @samp{fixincludes} step of installation
1464(either explicitly, as @samp{Install fixincludes}, or by default when
1465you 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
1467shared filesystem, you need only do it once---but if you install
1468separate copies, you must run @code{Install fixincludes} on each.
1469
1470The C header files supplied with SVr4 versions of Unix depend on a
1471questionable interpretation of the @sc{ansi} C standard: they test for a
1472non-@sc{ansi} environment by checking whether @code{__STDC__} is defined
1473as zero. The @sc{ansi} standard actually only specifies that
1474@code{__STDC__} will be defined to 1; if it is defined to any other
1475value, the environment is not @sc{ansi} C compatible, and @sc{ansi} C
1476says nothing about what that value might be.
1477
1478@sc{gcc} defines @code{__STDC__} to 1 when running with @samp{-ansi},
1479when it functions as an ``@sc{ansi} C superset'' compiler. (It also sets
1480@code{__STRICT_ANSI__} when it runs with the @samp{-pedantic} option.)
1481However, @sc{gcc} leaves @code{__STDC__} undefined when it is not
1482running as an @sc{ansi} C compiler.
1483
1484Unfortunately, the Solaris 2 header files follow the SVr4 choice. Since
1485@sc{gcc} never defines @code{__STDC__} as 0, the distributed header
1486files can leave out some declarations. (Look in @file{/usr/include/time.h},
1487for example.)
1488
1489@samp{Install fixincludes} makes copies of the system include files,
1490which have these nonstandard features removed so that @sc{gcc} can
1491process them. These copies are placed in a new, @sc{gcc}-specific
1492include directory---@emph{your system's original header files are not
1493affected.} Once these fixed header files are created, @sc{gcc} finds and
1494uses them automatically.
1495
1496If you don't run @code{fixincludes}, the GNU C compiler can only use the
1497original system header files when you compile new C programs. @emph{In
1498some cases, the resulting programs will fail at run-time}.
1499
1500@node Running
1501@chapter Running the Programs
1502Anyone who wishes to run the Cygnus development tools will need to make
1503sure the @code{PATH} environment variable will find them. The simplest
1504thing is to include @samp{/opt/cygnus-sol2-||RELNO||/bin} in the
1505@code{PATH} variable. Since the directory name contains the release
1506number @samp{||RELNO||}, however, this approach will require changing
1507the paths explicitly for all users when you install a new release.
1508
1509Our installation procedures recommended creating a symbolic link like
1510this, to plan ahead for future releases:
1511
1512@example
1513@cartouche
1514eg$ @b{cd} @b{/opt}
1515eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
1516@end cartouche
1517@end example
1518
1519Then people can use settings like these in initialization files:
1520
1521@example
1522@exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1523@cartouche
1524@b{PATH=/opt/cygnus/bin:$PATH}
1525@b{export PATH}
1526@end cartouche
1527@end example
1528
1529@example
1530@exdent For C shell:
1531@cartouche
1532@b{set path=(/opt/cygnus/bin $path)}
1533@end cartouche
1534@end example
1535
1536@noindent
1537You can also ensure that the @code{man} command can pick up the
1538manual pages, using the @code{MANPATH} environment variable.
1539
1540@example
1541@exdent For Bourne-compatible shells:
1542@cartouche
1543@b{MANPATH=/opt/cygnus/man:$MANPATH}
1544@b{export MANPATH}
1545@end cartouche
1546@end example
1547
1548@example
1549@group
1550@exdent For C shell:
1551@cartouche
1552@b{setenv MANPATH /opt/cygnus/man:$MANPATH}
1553@end cartouche
1554@end group
1555@end example
1556
1557@node Paths
1558@chapter Changing the Paths
1559The binaries shipped by Cygnus are configured for installation under the
1560directory @file{/opt/cygnus-sol2-||RELNO||}. In particular, @code{gcc}
1561and the documentation browser @code{info} need to know the location of
1562the distribution.
1563
1564If you wish to run the tools after installing them in another location,
1565you can either:
1566@itemize @bullet
1567@item
1568use environment variables
1569to tell the tools where to find pieces of the installation; or
1570
1571@item
1572rebuild the tools from source, with your preferred paths built in.
1573See @ref{Rebuilding,,Rebuilding from Source}, if you want to take this
1574approach.
1575@end itemize
1576
1577In rare circumstances, the auxiliary installation script
1578@code{install_cid} will also require a workaround if you do not install
1579in @file{/opt/cygnus-sol2-||RELNO||}.
1580
1581@subheading GCC Paths
1582@c FIXME! Add something about specs file?
1583You can run the compiler @sc{gcc} without recompiling, even if you
1584install the distribution in an alternate location, by first setting the
1585environment variable @samp{GCC_EXEC_PREFIX}. This variable specifies
1586where to find the executables, libraries, and data files used by the
1587compiler. Its value will be different depending on which set of
1588binaries you need to run. For example, if you install the distribution
1589under @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
1591a single line, if you like; the example is split using the line
1592continuation character @samp{\} only to make it fit in the space
1593available.)
1594
1595@cartouche
1596@example
1597@b{GCC_EXEC_PREFIX=/local/cygnus-sol2-||RELNO||/lib/gcc-lib/}\
1598@b{||HOSTstr||/||GCCvn||/}
1599@b{export GCC_EXEC_PREFIX}
1600@end example
1601@end cartouche
1602
1603@noindent
1604The example assumes you use a shell compatible with the Bourne shell; if
1605you run the C shell, use the following instead. (Again, the line
1606continuation character @samp{\} is only used for convenience in the
1607example; feel free to use a single line.)
1608
1609@cartouche
1610@example
1611@b{setenv GCC_EXEC_PREFIX /local/cygnus-sol2-||RELNO||/lib/gcc-lib/}\
1612@b{||HOSTstr||/||GCCvn||/}
1613@end example
1614@end cartouche
1615
1616@quotation
1617@emph{Warning: The trailing slash @samp{/} is important}. The @code{gcc}
1618program uses @samp{GCC_EXEC_PREFIX} simply as a prefix. If you omit the
1619slash (or make any other mistakes in specifying the prefix), @code{gcc}
1620will fail with a message beginning @samp{installation problem, cannot
1621exec@dots{}}.
1622@end quotation
1623
1624@subheading @code{info} Paths
1625The standalone documentation browser @code{info} also needs to know the
1626location of its documentation files in the distribution. The default
1627location, @file{/opt/cygnus-sol2-||RELNO||/info}, is compiled in.
1628If you install elsewhere, set the environment variable @code{INFOPATH}
1629to indicate the alternate location.
1630
1631For example, again assuming you installed under @file{/local}:
1632
1633@example
1634@exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
1635@cartouche
1636@b{INFOPATH=/local/cygnus-sol2-||RELNO||/info}
1637@b{export INFOPATH}
1638@end cartouche
1639@end example
1640
1641@example
1642@exdent For C shell:
1643@cartouche
1644@b{setenv INFOPATH /local/cygnus-sol2-||RELNO||/info}
1645@end cartouche
1646@end example
1647
1648@subheading @code{install_cid} Paths
1649The auxiliary script @code{install_cid} is provided as a convenience, to
1650fill in your site's customer ID as the default for your local version of
1651the Cygnus @code{send_pr} problem-reporting script.
1652
1653If you don't install in @file{/opt/cygnus-sol2-||RELNO||}, @samp{install_cid
1654@var{ID}} will still work correctly in most cases. However,
1655there is one situation where @code{install_cid} fails:
1656
1657@itemize @bullet
1658@item
1659@emph{if} your site already has a release tree for
1660@samp{/opt/cygnus-sol2-||RELNO||},
1661@item
1662@emph{and} you run @code{Install} with an alternative installation
1663directory.
1664@end itemize
1665
1666@noindent
1667In this case, you must manually edit your customer ID into your site's
1668copy of @code{send_pr}. Please call the Cygnus hotline,
1669@w{+1 415 322 7836}, if you have any trouble with this.
1670
1671@node Trouble
1672@chapter Some Things that Might go Wrong
1673
1674We've tried to make the installation of your Developer's Kit as painless
1675as possible. Still, some complications may arise. Here are suggestions
1676for dealing with some of them.
1677
1678@ifclear FTPorCD
1679@menu
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}
1684@end menu
1685@end ifclear
1686@ifset FTPorCD
1687@menu
1688* No access:: No Access to @file{/opt}
1689* Install errors:: Error Messages from @code{Install}
1690@end menu
1691@end ifset
1692
1693
1694@ifclear FTPorCD
1695@node No Drive
1696@section No local ||MEDIUM|| drive
1697If your ||HOST|| doesn't have an appropriate ||MEDIUM|| drive, you may
1698still be able to install your software. Check with your system
1699administrator to see if another machine at your site has a drive
1700you can use. If so:
1701@table @emph
1702@item If a shared filesystem is available
1703between 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
1706machines. Then create @samp{/opt/cygnus-sol2-||RELNO||} on your
1707||HOST|| (the one where you want to install this Solaris 2 Developer's
1708Kit) as a symbolic link to @file{@var{shr}/cygnus-sol2-||RELNO||}.
1709You'll have to run @samp{Install fixincludes} and @samp{Install test}
1710from your ||HOST|| afterwards; see @ref{cross-install,,Installing with
1711another machine's ||MEDIUM|| drive}.
1712
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
1716the machine with a tape drive).
1717
1718There are two files on the distribution ||MEDIUM||; the first is
1719just the @code{Install} script, and the second is a compressed
1720@code{tar} format file containing the rest of the release. Read both of
1721these 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
1724the installation file, instead of @samp{-tape=/dev/rmt/0ln} as shown in
1725the examples. In the simplest case, for example (starting after you've
1726transferred @code{Install} and the tar file to your system):
1727
1728@cartouche
1729@example
1730eg$ @b{./Install -tape=@var{tarfile}}
1731@end example
1732@end cartouche
1733
1734@end table
1735
1736@node Limited Space
1737@section Not Enough Space
1738If you don't have enough space to install all of the distribution, you
1739can instead extract only the compiled code, or only the source.
1740
1741The following table summarizes the approximate space (rounded up to the
1742next megabyte) needed for source and binaries.
1743There is a little overlap between the partial installations: the
1744documentation, and documentation tools, are always installed.
1745
1746@table @r
1747@item ||BD|| MB
1748||HOST|| binaries
1749
1750@item ||SD|| MB
1751source code for all programs
1752
1753@item ||DF|| MB
1754||HOST|| total
1755@end table
1756
1757You can easily extract these components independently of one another, by
1758using the @samp{source} or @samp{bin} arguments to the @code{Install}
1759script provided with your release.
1760See @ref{Install-Options,,Installation Options}.
1761@end ifclear
1762
1763@node No access
1764@section No Access to @file{/opt}
1765
1766If you don't have write access to @file{/opt}, first check whether
1767you're in the right group. The command @samp{ls -lLdg /opt} will show
1768you 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
1770you're authorized to use a group with the right access, use @samp{newgrp
1771@var{groupname}} to switch to that group.
1772
1773Otherwise, you may be able to use @code{root} (if you have the password)
1774to give yourself temporary write access. There's no need to run the whole
1775installation procedure as @code{root}; just use @code{root} access
1776briefly like this---
1777
1778@cartouche
1779@example
1780eg$ @b{su root}
1781password: @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}
1785@end example
1786@end cartouche
1787
1788@noindent
1789If you do set write permissions to @code{777} to run the installation
1790procedure, remember to remove public write access when you're done, to
1791avoid potential security problems.
1792
1793If none of these things help, and you can't get write access to
1794@file{/opt} or @file{/opt/cygnus-sol2-||RELNO||},
1795@ifset TAPEinst
1796use the @samp{-installdir=@var{directory}} option to @code{Install} to
1797specify a different installation directory, where you @emph{can} write.
1798For example, if all the other installation defaults are right, you can
1799execute something like @samp{./Install -installdir=@var{mydir}}.
1800@end ifset
1801@ifset FTPorCD
1802use a different installation directory, where you @emph{can} write.
1803@end ifset
1804You will also have to either override default paths for the pre-compiled
1805tools, or else recompile the software.
1806
1807@quotation
1808@emph{WARNING:} If you can't install in
1809@file{/opt/cygnus-sol2-||RELNO||} (or link your installation directory
1810to that name), some of the defaults configured into the
1811cygnus-sol2-||RELNO|| distribution won't work. See @ref{Paths,,Changing
1812the Paths}, for information on overriding or reconfiguring these
1813defaults.
1814@end quotation
1815
1816@node Install errors
1817@section Error Messages from @code{Install}
1818The @code{Install} script checks for many errors and inconsistencies in
1819the way its arguments are used. The messages are meant to be
1820self-explanatory.
1821
1822@ifclear FTPorCD
1823Here is a list of a few messages where further information might be
1824useful:
1825@table @code
1826@item Cannot read from TAPE device @dots{}
1827The error message ends with the device or file @code{Install} was trying
1828to use. Please check that it is the device or file you intended;
1829possible causes of trouble might include leaving off the @samp{/dev/}
1830prefix at the front of a device name. A typo in the name might also
1831cause this problem.
1832
1833@ifset TAPEinst
1834If the problem is neither of these things, perhaps your tape device can't
1835read our tape; see @ref{No Drive,,No Local Tape Drive}, for a discussion
1836of how to use another machine's tape drive.
1837@end ifset
1838
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{}
1845These errors (the first covers anything that ends in @samp{This is a
1846problem}) are from paranoia checks; they are issued for situations that
1847other checks should have covered, or for unlikely situations that
1848require further diagnosis.
1849@end table
1850@end ifclear
1851
1852If you get one of these messages, please
1853@itemize @bullet
1854@ifset CUSTOMER
1855@item
1856@strong{call the Cygnus hotline, +1 415 322 7836}, or
1857@end ifset
1858@item
1859send electronic mail to @samp{help@@cygnus.com}.
1860@end itemize
1861
1862@node Rebuilding
1863@chapter Rebuilding From Source
1864
1865@ifclear FTPsplit
1866All Cygnus products are free software; your Developer's Kit includes
1867complete source code for all programs.
1868@end ifclear
1869@ifset FTPsplit
1870All Cygnus products are free software. The source code for all programs
1871in your Developer's Kit is available from the same place as the precompiled
1872programs, in the file @file{@var{dist}/cygnus-sol2-||RELNO||.src.tar.Z}.
1873@end ifset
1874
1875Cygnus Support has implemented an automatic configuration scheme to
1876adapt the programs to different environments.
1877
1878Rebuilding the programs from source requires these steps:
1879@enumerate
1880@item
1881configuration
1882@item
1883compilation
1884@item
1885installation
1886@end enumerate
1887
1888For example, executing the following commands in sequence will rebuild
1889and install a ||HOST|| native version of all the tools in a nonstandard
1890directory:
1891
1892@cartouche
1893@example
1894eg$ @b{cd @var{installdir}/src}
1895
1896eg$ @b{./configure ||HOSTstr|| -prefix=/local/gnu}
1897Created "Makefile" in @var{installdir}/src
1898
1899eg$ @b{make clean all info install install-info}
1900@end example
1901@end cartouche
1902
1903@noindent
1904We discuss each step in detail in the following sections.
1905
1906@menu
1907* Configuration:: Configuration
1908* Config Names:: Specifying Names for Hosts and Targets
1909* configure Options:: @code{configure} Options
1910* Compilation:: Compilation
1911* Installation:: Installation
1912@end menu
1913
1914@node Configuration
1915@section Configuration
1916
1917You can configure the software in this release by using the shell
1918script called @code{configure}. The shell script requires one argument:
1919the host type. There are also several possible options, including a
1920@samp{-target=} option to configure for cross-system development.
1921
1922@node Config Names
1923@section Specifying Names for Hosts and Targets
1924
1925The specifications used for hosts and targets in the @code{configure}
1926script are based on a three-part naming scheme, but some short predefined
1927aliases are also supported. The full naming scheme encodes three pieces
1928of information in the following pattern:
1929
1930@example
1931@var{architecture}-@var{vendor}-@var{os}
1932@end example
1933
1934For example, you can use the alias @code{sun4sol2} as a @var{host} argument
1935or in a @samp{-target=@var{target}} option, but the equivalent full name
1936is @samp{sparc-sun-solaris2}.
1937
1938@quotation
1939@emph{Warning:} @code{configure} can represent a very large number of
1940combinations of architecture, vendor, and OS. There is by no means
1941support for all possible combinations!
1942@end quotation
1943
1944@node configure Options
1945@section @code{configure} Options
1946
1947This section summarizes the @code{configure} options and arguments.
1948Your Developer's Kit contains full online documentation for the Cygnus
1949configure system. @inforef{Using Configure,,configure.info}, to read
1950about @code{configure} in more detail, including information on how the
1951@code{configure} options relate to @file{Makefile} variables.
1952
1953@example
1954configure @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{]}
1959 @var{host}
1960@end example
1961
1962@noindent
1963The binaries in this release were configured using
1964
1965@cartouche
1966@example
1967configure -prefix /opt/cygnus-sol2-||RELNO|| ||HOSTstr||
1968@end example
1969@end cartouche
1970
1971@table @code
1972@item -prefix=@var{dest}
1973@var{dest} is an installation directory @emph{path prefix}, the root for
1974the directories where @code{make install} will place things. After you
1975configure with this option, @samp{make install install-info} will
1976install 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
1979libraries in @file{@var{dest}/lib}. If you specify
1980@samp{-prefix=/local}, for example, @code{make install} puts the
1981development tools in @file{/local/bin}.
1982
1983@emph{WARNING:} the default @var{dest} path prefix in the source is not
1984the same as the prefix for the preconfigured binaries distributed by Cygnus.
1985
1986@samp{-prefix=/opt/cygnus-sol2-||RELNO||} was used to build the binaries in this
1987release. If you do not use @code{-prefix}, the installation directory
1988is @file{/usr/local}.
1989
1990@item -exec-prefix=@var{bindest}
1991@samp{-exec-prefix} serves the same purpose as @samp{-prefix}, but
1992affects only machine-dependent targets (compiled programs and
1993libraries). Specifying both @samp{-prefix} and @samp{-exec-prefix}
1994allows you to segregate machine-dependent files, so that
1995machine-independent files can be shared.
1996
1997@emph{WARNING:} the default @var{bindest} path prefix in the source is not
1998the same as the prefix for the preconfigured binaries distributed by Cygnus.
1999
2000No @samp{-exec-prefix} was used to build the binaries in this release.
2001If you do not use @samp{-exec-prefix}, the default directory for
2002machine-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||}).
2005
2006@item -srcdir=@var{path}
2007Use this option to make configurations in directories separate from the
2008source directories. @code{configure} writes configuration specific files
2009in the current directory, but arranges for them to use the source in the
2010directory @var{path}. @code{configure} will create directories under
2011the working directory in parallel to the source directories below
2012@var{path}. Among other things, you can use this to build (or maintain)
2013several configurations simultaneously, in separate directories. (This
2014option requires a @code{make} program with the @samp{VPATH} feature,
2015such as the one included with Solaris 2.)
2016
2017@item -norecursion
2018Configure only the directory level where @code{configure} is executed; do not
2019propagate configuration to subdirectories.
2020
2021@item -target=@var{target}
2022Configure the development tools for cross-development (compiling,
2023debugging, or other processing) of programs running on the specified
2024@var{target}. Without this option, programs are configured ``native'',
2025that is, for managing programs that run on the same machine (@var{host})
2026as the development tools themselves.
2027
2028There is no convenient way to generate a list of all available targets.
2029
2030@item @var{host} @dots{}
2031Configure the development tools to run on the specified @var{host}.
2032
2033There is no convenient way to generate a list of all available hosts.
2034@end table
2035
2036The @samp{-prefix=@var{dest}} and @samp{-exec-prefix=@var{bindest}}
2037options are particularly important. If you don't specify a @var{dest}
2038or @var{bindest} directory, the @file{Makefile} installs binaries in
2039subdirectories of @file{/usr/local}. These options are important
2040because the @var{dest} and @var{bindest} directories are used for
2041several purposes:
2042
2043@enumerate
2044@item
2045@var{bindest} is the directory where binaries are installed.
2046
2047@item
2048@var{bindest} is built into the compiler itself for the
2049locations of @sc{gcc} specific include files, the locations of @sc{gcc}
2050subprograms, and the location of the @sc{gcc} specific library
2051@file{libgcc.a}.
2052
2053@item
2054@var{dest} is compiled into @code{info} as the default directory
2055for the documentation.
2056
2057@end enumerate
2058
2059@node Compilation
2060@section Compilation
2061
2062After you've run @code{configure} (which writes the final
2063@file{Makefile} in each directory), compilation is straightforward.
2064To compile all the programs in the Developer's Kit, run:
2065
2066@cartouche
2067@example
2068@b{make all info}
2069@end example
2070@end cartouche
2071
2072The @code{make} output is lengthy; consider redirecting it to a file.
2073
2074The overall @file{Makefile} propagates the value of the @code{CC}
2075variable explicitly, so that you can easily control the compiler used in
2076this step. @code{CFLAGS} is treated the same way. For instance, to
2077build 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
2080
2081@cartouche
2082@example
2083@b{make CC=/local/gnu/H-sun4/bin/gcc CFLAGS=-O all info}
2084@end example
2085@end cartouche
2086
2087The conventional targets @samp{all}, @samp{install}, and @samp{clean}
2088are supported at all levels of @file{Makefile}. Other targets are
2089supported as well, as appropriate in each directory; please read the
2090individual @file{Makefile} for details. Each @file{Makefile} in the
2091source directories includes ample comments to help you read it. If you
2092are not familiar with @code{make}, refer to @ref{Overview,,Overview of
2093@code{make}, make.info, GNU Make: A Program for Directing
2094Recompilation}.
2095
2096@node Installation
2097@section Installation
2098
2099Whether you configure an alternative path using @code{-prefix}, or you
2100use the default installation path @file{/usr/local}, you can install the
2101software by executing:
2102
2103@cartouche
2104@example
2105@b{make install install-info}
2106@end example
2107@end cartouche
2108
2109@ifclear FTPorCD
2110@node Removing
2111@chapter Removing Parts of the Developer's Kit
2112You can use the same @code{Install} script that was used to install the
2113Developer's Kit on your system, to remove parts of the release.
2114(Remember that the @code{Install} script was automatically saved for you
2115as @file{/opt/cygnus-sol2-||RELNO||/Install}.)
2116
2117To do this, decide what you want to remove; then call @code{Install}
2118with the option @samp{remove} on the command line, as well as all the
2119options that you would use to install that portion of the release
2120(@pxref{Install-Options,,Installation Options}). For example, suppose
2121you never look at the source, and are running short of disk
2122space; you can remove the source, while leaving the rest of
2123the release undisturbed, as follows:
2124
2125@cartouche
2126@example
2127eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
2128eg$ @b{./Install remove source}
2129@end example
2130@end cartouche
2131
2132@noindent
2133You should see the following messages confirming the software was
2134removed:
2135
2136@cartouche
2137@example
2138Cygnus Support software distribution removed!
2139Done.
2140@end example
2141@end cartouche
2142
2143To remove the complete Solaris 2 Release of the Developer's Kit from
2144your system (if, eventually, you no longer want it), delete the
2145directory @file{/opt/cygnus-sol2-||RELNO||} and all its contents.
2146@end ifclear
2147
2148@node Cygnus-FSF
2149@chapter Cygnus Releases and the FSF
2150
2151Most of the tools in this Developer's Kit are originally from the Free
2152Software Foundation (FSF). You can get versions of all these tools from
2153the FSF as well as from Cygnus. In general, Cygnus releases add to FSF
2154software in the following ways:
2155@c UPDATE! more differences bet Cygnus/FSF releases?
2156
2157@itemize @bullet
2158@item
2159All programs are ready to run. We supply preconfigured and precompiled
2160binaries as well as the source code; you can start using the programs
2161right away.
2162@item
2163Commercial support is available. Cygnus adds value to FSF releases in
2164large measure by offering outstanding support services.
2165@item
2166Coordination. The tools in your Developer's Kit are certified to work
2167together; you need not worry about tools being out of step with each other.
2168@item
2169Bug fixes. A Cygnus release includes many fixes, already integrated
2170into the programs. Cygnus repairs bugs discovered during testing, and
2171also tracks and includes bug fixes developed for other Cygnus customers
2172or distributed over the Internet.
2173@item
2174Bug reporting. Cygnus releases include the tool @code{send_pr}, which
2175you can use to make sure your problem reports receive prompt attention,
2176and are also incorporated in our future tests.
2177@item
2178Documentation. Cygnus revises and adds to available FSF
2179documentation to give you better descriptions of all the software tools.
2180@item
2181Stability. Cygnus tests (and uses) all the programs it releases.
2182@end itemize
2183
2184This particular Cygnus Progressive release differs from the nearest
2185corresponding FSF distributions in one important detail: Solaris 2 is
2186supported. The FSF distributions will eventually include Solaris 2
2187support, as the Cygnus changes are merged into the FSF source, and the
2188FSF makes new releases.
2189
2190
2191@node Cygnus-Support
2192@chapter About Cygnus Support
2193
2194Cygnus Support was founded in 1989 to provide commercial support for
2195free software. Cygnus supplies products and services that benefit
2196advanced development groups by allowing them to use state-of-the-art
2197tools without having to maintain them. With Cygnus Support, sites that
2198once were forced to do their own tool support can recover that valuable
2199staff time. Former users of proprietary software now may choose
2200supported free software, combining the advantages of both worlds.
2201
2202Free software is faster, more powerful, and more portable than its
2203proprietary counterparts. It evolves faster because users who want to
2204make improvements are free to do so. Cygnus tracks these
2205improvements and integrates them into tested, stable versions ready
2206for commercial use, then backs this software with comprehensive
2207support.
2208
2209With Cygnus Support as your partner, you will have the software and
2210the support you need to meet your business objectives. Cygnus
2211is intimately familiar with this software from extensive experience
2212using, debugging, and implementing it. You get direct access to the
2213most qualified support people: the authors of the software.
2214
2215We provide ``vintage'' releases---the most stable versions, which have
2216been though even more extensive use and testing---or up-to-the minute
2217``progressive'' releases, for those who need the very latest version.
2218
2219Because all our improvements are also free software, you can
2220distribute them widely within your organization, or to your customers,
2221without extra cost.
2222
2223@sp 4
2224
2225@display
2226Cygnus Support
2227814 University Avenue
2228Palo Alto, CA 94301, USA
2229
2230+1 415 322 3811
2231hotline: +1 415 322 7836
2232email: @code{info@@cygnus.com}
2233fax: +1 415 322 3270
2234@end display
2235
2236@contents
2237
2238@bye
This page took 0.107414 seconds and 4 git commands to generate.