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