| 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 |