regularize formatting
[deliverable/binutils-gdb.git] / sol-inst.texi
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
102 Copyright @copyright{} 1991, 1992 Cygnus Support
103
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.
107
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.
112
113 Permission is granted to copy and distribute translations of this manual
114 into 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
122 This file is about the Cygnus Developer's Kit: what's in it, how to
123 install 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
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
175 @item
176 You're willing to install in the directory @file{/opt}, and
177 @item
178 You have at least ||DF|| MB available (try @samp{df /opt}; @pxref{Disk space})
179 @item
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}).
183 @end itemize
184 Otherwise, 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
193 the distribution file, @file{cygnus-sol2-||RELNO||.tar.Z}, in some directory
194 @var{dist} on your system
195 @item
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}.
199 @item
200 at 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
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
209 system
210 @item
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}.
214 @item
215 at least ||BD|| MB of disk space available for the binaries. See @ref{Disk space}.
216 @item
217 at 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
223 A copy of the SunSoft Catalyst CDware disc.
224 @item
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}.
228 @item
229 at least ||BD|| MB of disk space available for the binaries. See @ref{Disk space}.
230 @item
231 at least ||SD|| MB of disk space available for the source. See @ref{Disk space}).
232 @end itemize
233 @end ifset
234
235 @ifset FTPorCD
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
240 Paths}.
241 @end ifset
242
243 @enumerate
244 @ifclear FTPorCD
245 @item
246 Make sure you can write in @file{/opt/cygnus-sol2-||RELNO||}, by typing:
247
248 @example
249 eg$ @b{su root}
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)}
254 @end example
255 @end ifclear
256
257 @ifset FTPorCD
258 @item
259 Make sure you can write in @file{/opt}, by typing:
260
261 @example
262 eg$ @b{touch /opt/cygnus-test; rm /opt/cygnus-test}
263 @end example
264
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}}.
268 @end ifset
269
270 @ifset FTPsingle
271 @item
272 Extract the Developer's Kit from the distribution file.
273
274 @example
275 @exdent @emph{If you can install directly in @file{/opt}:}
276 eg$ @b{cd /opt}
277 eg$ @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}:}
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}
285 @end example
286 @end ifset
287
288 @ifset FTPsplit
289 @item
290 Extract the Developer's Kit binaries from the distribution file.
291
292 @example
293 @exdent @emph{If you can install directly in @file{/opt}:}
294 eg$ @b{cd /opt}
295 eg$ @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}:}
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}
303 @end example
304
305 @item
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}.
308 @end ifset
309
310 @ifset CDROMinst
311 @item
312 Mount the @sc{cdware cd-rom}. You may need to briefly become super-user:
313
314 @example
315 eg$ @b{su root}
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)}
320 @end example
321
322 @item
323 Start the @sc{cd-rom}'s presentation program (see the instructions
324 that came with your @sc{cd-rom}).
325
326 @item
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''.
330
331 @item
332 Select the Cygnus icon by clicking once on it with the left mouse
333 button.
334
335 @item
336 Select ``Install'' from the Options menu. A submenu appears, showing
337 these options:
338
339 @display
340 Install Everything
341 Install Binaries
342 Install Source Code
343 @end display
344
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.
349
350 @item
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}.)
356
357 @item
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:
362
363 @example
364 Cygnus Support software distribution extracted!
365
366 Fixed include files installed!
367
368 Cygnus 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
375 you have all the optional packages described in
376 @ref{Optional OS packages}. Then proceed with the next
377 step.
378 @end ifset
379
380 @ifset TAPEinst
381 @item
382 Load the cygnus-sol2-||RELNO|| ||MEDIUM|| into your ||MEDIUM|| drive.
383
384 @item
385 Get the @code{Install} script from the tape:
386
387 @example
388 eg$ @b{cd /tmp}
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.}
392 @end example
393
394 @item
395 Run the @code{Install} script:
396
397 @example
398 eg$ @b{./Install}
399 @i{@dots{} @code{Install} displays messages about its activity, ending with}
400 Done.
401 @end example
402 @end ifset
403
404 @ifset FTPorCD
405 @item
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.}
410
411 @example
412 eg$ @b{cd cygnus-sol2-||RELNO||}
413 eg$ @b{./Install}
414 @exdent @code{Install} displays messages about its activity, ending with
415 Done.
416 @end example
417
418 For background information on this step, see @ref{Why-fixincludes,,Why
419 Convert System Header Files?}.
420 @end ifset
421
422 @ifset CUSTOMER
423 @item
424 Record your Cygnus customer-ID (see cover letter):
425
426 @example
427 eg$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
428 @end example
429 @end ifset
430
431 @item
432 Make a symbolic link to simplify pathnames:
433 @example
434 eg$ @b{cd} @b{/opt}
435 eg$ @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
441 Remove public write access from @file{/opt/cygnus-sol2-||RELNO||}. See your System
442 Administrator for the correct permissions at your site.
443 @end ifclear
444
445 @end enumerate
446
447 You'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
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:
457
458 @c UPDATE! Anything new shoveled in?
459
460 @table @t
461 @item gcc
462 C compiler
463
464 @item libm.a
465 Mathematical subroutine library
466
467 @item gdb
468 Debugger
469
470 @item gprof
471 Performance analyzer
472
473 @item byacc
474 Parser generator
475
476 @item flex
477 Fast lexical analyzer generator
478
479 @item makeinfo
480 @itemx info
481 Online documentation tools
482
483 @item texinfo.tex
484 @itemx texindex
485 Documentation printing tools
486
487 @item send_pr
488 The Cygnus problem-reporting utility
489
490 @item patch
491 Source-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
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.
507
508 @item Other Platforms
509 For information on other platforms or other programs
510 that 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
549 Solaris 2.0 Beta or later.
550
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}.
560
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:
564
565 @example
566 eg$ @b{/usr/bin/pkginfo} @b{SUNWlibm}
567 ERROR: information for "SUNWlibm" was not found
568 @end example
569
570 @noindent
571 If @var{name} is installed, you will see a one-line summary of the
572 package, like this:
573
574 @example
575 eg$ @b{/usr/bin/pkginfo} @b{SUNWhea}
576 system SUNWhea Header Files
577 @end example
578
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:
582
583 @example
584 /usr/sbin/pkgadd -d /cdrom/Solaris_2.0 @var{name} @dots{}
585 @end example
586
587 @noindent
588 You can specify several package names at once.
589
590 These are the Solaris 2 optional packages you'll need to run the
591 Developer's Kit:
592
593 @table @code
594 @item SUNWarc
595 @emph{Needed to link your programs:} Archive libraries for system
596 interfaces.
597
598 @item SUNWbtool
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.
602
603 @item SUNWesu
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.
608
609 @item SUNWhea
610 @emph{Needed to complete installation and compile your programs:} Header
611 files (@file{/usr/include}).
612
613 @item SUNWtoo
614 @emph{Needed to link your programs:} ``Programming Tools'', notably the
615 linker, @code{/usr/ccs/bin/ld}.
616 @end table
617
618 @noindent
619 One additional optional package may be of interest:
620
621 @table @code
622 @item SUNWlibm
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.
625 @end table
626
627 @ifset TAPEinst
628 @node A tape drive
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||.
636 @end ifset
637
638 @node Disk space
639 @subsection Disk space
640 The total space required to extract and install
641 binaries and source for all programs is
642 ||DF|| megabytes.
643
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.
648
649 @ifclear FTPorCD
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.
653 @end ifclear
654
655 @node Write access
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}}.
661
662 @ifclear FTPorCD
663 Root access is @emph{not} necessary to run the installation itself;
664 but you might need it briefly
665 @ifset CDROMinst
666 to mount the @sc{cd-rom} drive, and
667 @end ifset
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.
671 @end ifclear
672
673 @ifclear FTPorCD
674 @node Installing
675 @chapter Installing the Developer's Kit
676
677 @iftex
678 This 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
686 In examples, we show the system prompt as @samp{eg$}.
687
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
694 install.
695
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||.
700
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
709 Paths}.)
710
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.
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
724 This procedure is for a ||HOST|| that has its own ||MEDIUM|| drive.
725
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}.
732
733 @enumerate
734 @item
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}.
739
740 @item
741 Check that you have enough space available (@pxref{Disk space}) in
742 @file{/opt}. You can use @samp{df /opt} to check.
743
744 @item
745 Check whether you can write in @file{/opt}:
746
747 @cartouche
748 @example
749 eg$ @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
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:
764
765 @cartouche
766 @example
767 eg$ @b{su root}
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}
772 eg$
773 @end example
774 @end cartouche
775
776 @ifset TAPEinst
777 @item
778 Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
779 your system's tape drive.
780
781 @item
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.
785
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.
790
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}.
795
796 Our examples show @file{/dev/rmt/0ln} for the tape device, as this is
797 the most common case.
798
799 @item
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||}.
808
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
812 your system):
813
814 @cartouche
815 @example
816 eg$ @b{cd /tmp}
817 eg$ @b{tar xfov /dev/rmt/0ln Install}
818 @end example
819 @end cartouche
820
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
825 tape.
826
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.
831 @end ifset
832
833 @quotation
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}.
838 @end quotation
839
840 @item
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:
844
845 @cartouche
846 @example
847 eg$ @b{/tmp/Install -tape=/dev/rmt/0ln}
848 @end example
849 @end cartouche
850
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.
859
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:
863
864 @cartouche
865 @example
866 Cygnus Support software distribution extracted!
867
868 Fixed include files installed!
869
870 Cygnus Support software distribution tested!
871
872 Done.
873 @end example
874 @end cartouche
875
876 @ifset CUSTOMER
877 @item
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.
886
887 @cartouche
888 @example
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
891 @end example
892 @end cartouche
893 @end ifset
894
895 @item
896 Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
897 Programs}):
898
899 @cartouche
900 @example
901 eg$ @b{cd} @b{/opt}
902 eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
903 @end example
904 @end cartouche
905
906 @item
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).
911
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.
914 @end enumerate
915
916 You'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
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||.
925
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}.
932
933 @enumerate
934 @item
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}.
938
939 @item
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.
945
946 @item
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.
952
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.
955
956 @item
957 Check 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
961 Check whether you can write in @var{shr}:
962
963 @cartouche
964 @example
965 eg$ @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
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:
980
981 @cartouche
982 @example
983 eg$ @b{su root}
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}
988 eg$
989 @end example
990 @end cartouche
991
992 @ifset TAPEinst
993 @item
994 Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
995 the system's tape drive.
996
997 @item
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.
1001
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
1006 Solaris 2.
1007
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}.
1014
1015 These examples show @file{/dev/@var{tape}} for the tape device; remember
1016 to substitute the appropriate name.
1017
1018 @item
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||.
1028
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}}:
1031
1032 @cartouche
1033 @example
1034 eg$ @b{cd /tmp}
1035 eg$ @b{tar xfov /dev/@var{tape} Install}
1036 @end example
1037 @end cartouche
1038
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
1044 amenities.
1045
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.
1050 @end ifset
1051
1052 @quotation
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}.
1057 @end quotation
1058
1059 @item
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.
1063
1064 @cartouche
1065 @example
1066 eg$ @b{cd} @b{/tmp}
1067 eg$ @b{./Install} @b{extract} @b{-tape=||MEDvar||} @b{-installdir=@var{shr}}
1068 @end example
1069 @end cartouche
1070
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}.
1074
1075 When @code{Install} is done extracting the software, it
1076 displays the messages
1077
1078 @cartouche
1079 @example
1080 Cygnus Support software distribution extracted!
1081 Done.
1082 @end example
1083 @end cartouche
1084
1085 @item
1086 Log on to the ||HOST|| where you want to use the software.
1087
1088 @item
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}
1092 to check.
1093
1094 @item
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:
1098
1099 @cartouche
1100 @example
1101 eg-sol2$ @b{su root}
1102 password:
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
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}}.
1111
1112 @item
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
1116 machine):
1117
1118 @cartouche
1119 @example
1120 eg-sol2$ @b{cd} @b{/opt/cygnus-sol2-||RELNO||}
1121 eg-sol2$ @b{./Install} @b{f}@b{ixincludes} @b{test}
1122 @end example
1123 @end cartouche
1124
1125 @noindent
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.
1130
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).
1134
1135 @cartouche
1136 @example
1137 Fixed include files installed!
1138
1139 Cygnus Support software distribution tested!
1140
1141 Done.
1142 @end example
1143 @end cartouche
1144
1145 @ifset CUSTOMER
1146 @item
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.
1155
1156 @cartouche
1157 @example
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
1160 @end example
1161 @end cartouche
1162 @end ifset
1163
1164 @item
1165 Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
1166 Programs}):
1167
1168 @cartouche
1169 @example
1170 eg$ @b{cd} @b{/opt}
1171 eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
1172 @end example
1173 @end cartouche
1174
1175 @item
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).
1181
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.
1185 @end enumerate
1186
1187 You'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
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
1198 Options}.
1199
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
1204 completeness.
1205 @ifset TAPEinst
1206 Remember 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
1220 eg$ @b{./Install -tape=||MEDvar|| bin}
1221 @end example
1222 @end cartouche
1223
1224 If you don't want the source---for instance, to save space---you can use
1225 the 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:}
1233 eg-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||}
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}
1243 @end example
1244 @end cartouche
1245
1246 @noindent
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).
1259
1260 The @samp{fixincludes} part of the installation is essential. Please
1261 see @ref{Why-fixincludes,,Why Convert System Header Files?}, if you're
1262 curious.
1263
1264 @node source-remove
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:
1269
1270 @cartouche
1271 @example
1272 eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
1273 eg$ @b{./Install remove source}
1274 @end example
1275 @end cartouche
1276
1277 @noindent
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
1281 removing.
1282 @c following "end" matches ifclear FTPorCD several nodes back!
1283 @end ifclear
1284
1285 @node Install-Options
1286 @chapter Installation Options
1287
1288 The command-line arguments and options to @code{Install} allow you to
1289 direct 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||
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.
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
1307 extracting source from the ||MEDIUM|| (option
1308 @code{extract})
1309 @end ifclear
1310 @item
1311 writing @sc{ansi}-C conforming copies of your system include files (needed
1312 for the compilation tools; option @code{fixincludes})
1313 @item
1314 running a simple test of the installed programs
1315 (option @code{test})
1316 @end enumerate
1317
1318 @ifclear FTPorCD
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
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
1337 Here is a summary of the @code{Install} command-line options,
1338 followed by more detailed explanations:
1339
1340 @ifclear FTPorCD
1341 @example
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{]}
1346 @r{[} remove @r{]}
1347 @end example
1348 @end ifclear
1349 @ifset FTPorCD
1350 @example
1351 Install @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}
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).
1361
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.
1366
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
1372 Paths}.
1373
1374 @item bin
1375 @itemx source
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
1380 @itemize @bullet
1381 @item
1382 you want only binaries, or
1383 @item
1384 you want only source.
1385 @end itemize
1386
1387 @item extract
1388 @itemx fixincludes
1389 @itemx test
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.
1396
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||.
1404
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
1409 nothing to test.
1410
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
1415 again.
1416
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||}.
1420
1421 When you run @samp{fixincludes}, @code{Install}
1422 leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
1423 subdirectory.
1424
1425 @item remove
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.
1432 @end table
1433 @end ifset
1434
1435 @ifset FTPorCD
1436 @table @code
1437 @item fixincludes
1438 @itemx test
1439 These steps are performed when you run @code{Install} without
1440 arguments, but if you like you can select either of them explicitly.
1441
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||.
1449
1450 @samp{test} is a confidence-building step, and doesn't
1451 actually change the state of the installed software.
1452
1453 When you run @samp{fixincludes}, @code{Install}
1454 leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
1455 subdirectory.
1456 @end table
1457 @end ifset
1458
1459
1460 @node Why-fixincludes
1461 @chapter Why Convert System Header Files?
1462
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.
1469
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.
1477
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.
1483
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},
1487 for example.)
1488
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.
1495
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}.
1499
1500 @node Running
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.
1508
1509 Our installation procedures recommended creating a symbolic link like
1510 this, to plan ahead for future releases:
1511
1512 @example
1513 @cartouche
1514 eg$ @b{cd} @b{/opt}
1515 eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
1516 @end cartouche
1517 @end example
1518
1519 Then 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
1537 You can also ensure that the @code{man} command can pick up the
1538 manual 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
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
1562 the distribution.
1563
1564 If you wish to run the tools after installing them in another location,
1565 you can either:
1566 @itemize @bullet
1567 @item
1568 use environment variables
1569 to tell the tools where to find pieces of the installation; or
1570
1571 @item
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
1574 approach.
1575 @end itemize
1576
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||}.
1580
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
1593 available.)
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
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.)
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}
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
1621 exec@dots{}}.
1622 @end quotation
1623
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.
1630
1631 For 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
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.
1652
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:
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
1663 directory.
1664 @end itemize
1665
1666 @noindent
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.
1670
1671 @node Trouble
1672 @chapter Some Things that Might go Wrong
1673
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.
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
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
1700 you can use. If so:
1701 @table @emph
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}.
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
1716 the machine with a tape drive).
1717
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):
1727
1728 @cartouche
1729 @example
1730 eg$ @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
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.
1740
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.
1745
1746 @table @r
1747 @item ||BD|| MB
1748 ||HOST|| binaries
1749
1750 @item ||SD|| MB
1751 source code for all programs
1752
1753 @item ||DF|| MB
1754 ||HOST|| total
1755 @end table
1756
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}.
1761 @end ifclear
1762
1763 @node No access
1764 @section No Access to @file{/opt}
1765
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.
1772
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---
1777
1778 @cartouche
1779 @example
1780 eg$ @b{su root}
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}
1785 @end example
1786 @end cartouche
1787
1788 @noindent
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.
1792
1793 If 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
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}}.
1800 @end ifset
1801 @ifset FTPorCD
1802 use a different installation directory, where you @emph{can} write.
1803 @end ifset
1804 You will also have to either override default paths for the pre-compiled
1805 tools, 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
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
1813 defaults.
1814 @end quotation
1815
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
1820 self-explanatory.
1821
1822 @ifclear FTPorCD
1823 Here is a list of a few messages where further information might be
1824 useful:
1825 @table @code
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
1831 cause this problem.
1832
1833 @ifset TAPEinst
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.
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{}
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.
1849 @end table
1850 @end ifclear
1851
1852 If 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
1859 send electronic mail to @samp{help@@cygnus.com}.
1860 @end itemize
1861
1862 @node Rebuilding
1863 @chapter Rebuilding From Source
1864
1865 @ifclear FTPsplit
1866 All Cygnus products are free software; your Developer's Kit includes
1867 complete source code for all programs.
1868 @end ifclear
1869 @ifset FTPsplit
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}.
1873 @end ifset
1874
1875 Cygnus Support has implemented an automatic configuration scheme to
1876 adapt the programs to different environments.
1877
1878 Rebuilding the programs from source requires these steps:
1879 @enumerate
1880 @item
1881 configuration
1882 @item
1883 compilation
1884 @item
1885 installation
1886 @end enumerate
1887
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
1890 directory:
1891
1892 @cartouche
1893 @example
1894 eg$ @b{cd @var{installdir}/src}
1895
1896 eg$ @b{./configure ||HOSTstr|| -prefix=/local/gnu}
1897 Created "Makefile" in @var{installdir}/src
1898
1899 eg$ @b{make clean all info install install-info}
1900 @end example
1901 @end cartouche
1902
1903 @noindent
1904 We 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
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.
1921
1922 @node Config Names
1923 @section Specifying Names for Hosts and Targets
1924
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:
1929
1930 @example
1931 @var{architecture}-@var{vendor}-@var{os}
1932 @end example
1933
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}.
1937
1938 @quotation
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!
1942 @end quotation
1943
1944 @node configure Options
1945 @section @code{configure} Options
1946
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.
1952
1953 @example
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{]}
1959 @var{host}
1960 @end example
1961
1962 @noindent
1963 The binaries in this release were configured using
1964
1965 @cartouche
1966 @example
1967 configure -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
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}.
1982
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.
1985
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}.
1989
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.
1996
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.
1999
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||}).
2005
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.)
2016
2017 @item -norecursion
2018 Configure only the directory level where @code{configure} is executed; do not
2019 propagate configuration to subdirectories.
2020
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.
2027
2028 There is no convenient way to generate a list of all available targets.
2029
2030 @item @var{host} @dots{}
2031 Configure the development tools to run on the specified @var{host}.
2032
2033 There is no convenient way to generate a list of all available hosts.
2034 @end table
2035
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
2041 several 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
2049 locations of @sc{gcc} specific include files, the locations of @sc{gcc}
2050 subprograms, 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
2055 for the documentation.
2056
2057 @end enumerate
2058
2059 @node Compilation
2060 @section Compilation
2061
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:
2065
2066 @cartouche
2067 @example
2068 @b{make all info}
2069 @end example
2070 @end cartouche
2071
2072 The @code{make} output is lengthy; consider redirecting it to a file.
2073
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
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
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
2094 Recompilation}.
2095
2096 @node Installation
2097 @section Installation
2098
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:
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
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}.)
2116
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:
2124
2125 @cartouche
2126 @example
2127 eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
2128 eg$ @b{./Install remove source}
2129 @end example
2130 @end cartouche
2131
2132 @noindent
2133 You should see the following messages confirming the software was
2134 removed:
2135
2136 @cartouche
2137 @example
2138 Cygnus Support software distribution removed!
2139 Done.
2140 @end example
2141 @end cartouche
2142
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.
2146 @end ifclear
2147
2148 @node Cygnus-FSF
2149 @chapter Cygnus Releases and the FSF
2150
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?
2156
2157 @itemize @bullet
2158 @item
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
2161 right away.
2162 @item
2163 Commercial support is available. Cygnus adds value to FSF releases in
2164 large measure by offering outstanding support services.
2165 @item
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.
2168 @item
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.
2173 @item
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.
2177 @item
2178 Documentation. Cygnus revises and adds to available FSF
2179 documentation to give you better descriptions of all the software tools.
2180 @item
2181 Stability. Cygnus tests (and uses) all the programs it releases.
2182 @end itemize
2183
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.
2189
2190
2191 @node Cygnus-Support
2192 @chapter About Cygnus Support
2193
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.
2201
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
2207 support.
2208
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.
2214
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.
2218
2219 Because all our improvements are also free software, you can
2220 distribute them widely within your organization, or to your customers,
2221 without extra cost.
2222
2223 @sp 4
2224
2225 @display
2226 Cygnus Support
2227 814 University Avenue
2228 Palo Alto, CA 94301, USA
2229
2230 +1 415 322 3811
2231 hotline: +1 415 322 7836
2232 email: @code{info@@cygnus.com}
2233 fax: +1 415 322 3270
2234 @end display
2235
2236 @contents
2237
2238 @bye
This page took 0.077602 seconds and 4 git commands to generate.