Add some files from Progressive shich shouldn't be lost.
authorDavid Henkel-Wallace <gumby@cygnus>
Wed, 29 Jul 1992 16:21:34 +0000 (16:21 +0000)
committerDavid Henkel-Wallace <gumby@cygnus>
Wed, 29 Jul 1992 16:21:34 +0000 (16:21 +0000)
13 files changed:
Install.in [new file with mode: 0755]
Pack-A-Progressive [new file with mode: 0755]
install-texi.in [new file with mode: 0644]
intro.texi [new file with mode: 0644]
sol-Build-A-Release.mk [new file with mode: 0644]
sol-GNUmakefile [new file with mode: 0755]
sol-inst.texi [new file with mode: 0644]
sol-intro.texi [new file with mode: 0644]
sol-make-ftp [new file with mode: 0644]
sol-rel.texi [new file with mode: 0644]
sol-subst-strings [new file with mode: 0755]
sol-subst-strings-ftp [new file with mode: 0755]
tape-labels-tex.in [new file with mode: 0644]

diff --git a/Install.in b/Install.in
new file mode 100755 (executable)
index 0000000..fc3433a
--- /dev/null
@@ -0,0 +1,983 @@
+#!/bin/sh
+### Copyright (C) 1991, 1992, Cygnus Support
+### All Rights Reserved.
+
+### This really needs to nestle up snuggly to the Release notes.  If you change
+### this script, please be sure the release notes get coordinated too.
+
+set -e
+
+### this is our version number.
+VERSION=cygnus-sol2-||RELNO||
+
+### this is the default installation repository. We use this to test whether or
+### not GCC_EXEC_PREFIX should be set when doing "Install test comp-tools".
+#INSTALLDIR_DEFAULT=/giga/rich/tmp/installdir
+INSTALLDIR_REAL=/opt
+INSTALLDIR_DEFAULT=${INSTALLDIR_REAL}
+### this is where we install into.  (useful for testing).
+INSTALLDIR=${INSTALLDIR_DEFAULT}
+
+### where to write the log files
+LOGDIR=${INSTALLDIR}/${VERSION}
+
+### who to call in bad situations
+HOTLINE="the Cygnus Support Hotline at +1 415 322 7836"
+
+### what the release doc is called and a few sections thereof
+NOTES="the Installation Notes"
+CHANGING_PATHS="\"Changing the Paths\""
+NO_ACCESS="\"No Access to ${INSTALLDIR}\?\""
+MIGHT_WRONG="\"Some Things that Might go Wrong\""
+WHY_FIXINCLUDES="Why Convert System Header Files\?"
+ANOTHER_TAPE="\"Steps to install with another machine\'s tape drive\""
+
+### for debugging
+#PATH=/bin:/usr/bin ; export PATH
+
+### default the tape device
+case "${TAPE}" in
+  "") TAPE=||DEVdflt|| 
+      ;;
+  *) 
+      ;;
+esac # ${TAPE}
+
+### clear and/or initialize some variables
+ARCH=
+TOOLS=
+FTPRELEASE=no
+
+REMOVE=no
+EXTRACT=no
+FIXINCLUDES=no
+TESTINSTALLATION=no
+
+INSTALLHOST=default
+ERROR=
+
+### where the binaries are in the release
+#EXECDIR=${VERSION}/H-${INSTALLHOST}
+EXECDIR=${VERSION}
+
+### some tool defaults
+### perhaps these should be hard coded to absolute paths instead?
+TAR=tar
+TARKEYS="xvvopf -"
+SED=sed
+MT=mt
+
+### trigger words on the command line are:
+###     bin, src
+###     emacs, comp-tools
+###     -tape=/dev/device
+###     -installdir=/foo
+###     extract, fixincludes, test-installation, remove
+
+for arg in $* ; do
+        case "${arg}" in
+### options
+        -tape=* | --tape=* | --tap=* | --ta=* | --t=*)
+                TAPE=`echo ${arg} | ${SED} 's/-*t[a-z]*=//'`
+                ;;
+
+        -installdir=* | --installdir=* | --installdi=* | --installd=* | --install=* | --instal=* | --insta=* | --inst=* | --ins=* | --in=* | --i=*)
+                INSTALLDIR=`echo ${arg} | ${SED} 's/-*i[a-z]*=//'`
+               # we will make it an absolute path shortly.
+                ;;
+
+### actions
+        *remove* | rm | -rm | --rm)     ACTIONS="${ACTIONS} rm" ;;
+        *extract*)      ACTIONS="${ACTIONS} extract" ;;
+        *fix*)          ACTIONS="${ACTIONS} fix" ;;
+        *test*)         ACTIONS="${ACTIONS} test" ;;
+### hosts
+        *src* | *sour*) ARCH="${ARCH} src" ;;
+        *bin*)          ARCH="${ARCH} bin" ;;
+
+### packages
+        *emacs*)        TOOLS="${TOOLS} emacs" ;;
+        *comp*)         TOOLS="${TOOLS} comp" ;;
+        *help*) ERROR=true ;;
+        *)
+                echo '***' I do not understand the option \"${arg}\".
+                ERROR=true
+                ;;
+        esac # ${arg}
+done # arg in $*
+
+###
+###
+### check for a myriad of sins
+###
+###
+
+if [ ! -d "${INSTALLDIR}" ] ; then
+       echo '*** ' Can not cd to \"${INSTALLDIR}\" because it does not exist.
+       echo '*** ' Try creating it with \"mkdir ${INSTALLDIR}\" and then try running Install again.
+       exit 1
+else
+       if (cd "${INSTALLDIR}") ; then 
+               true
+       else
+               echo '*** ' Can not cd to \"${INSTALLDIR}\" because I do not have execute permission.
+               ls -lad ${INSTALLDIR}
+               echo '*** ' Please fix this and then try running Install again.
+               exit 1
+       fi   # ! cd ${INSTALLDIR}
+fi   # ! -d ${INSTALLDIR}
+
+# Make INSTALLDIR absolute (parts below might need it that way).
+# FIXME, do they really?
+# FIXME, handle pwd failure from upper dir permission
+INSTALLDIR=`cd ${INSTALLDIR} ; pwd`
+LOGDIR=${INSTALLDIR}/${VERSION}
+
+case "${ERROR}" in
+  "")
+### default tools
+        case "${TOOLS}" in
+          "") TOOLS="||BUNDLE||" ;;
+          *) ;;
+        esac # ${TOOLS}
+
+        INSTALLHOST=
+
+### decide where we are: try arch first.
+        if (arch) > /dev/null 2>&1 ; then
+                MAYBE=`arch`
+        else
+                true
+        fi # (arch)
+
+        case "${MAYBE}" in
+          sun3) INSTALLHOST=${MAYBE} 
+               ;;
+          *)
+### next try uname
+                if (uname > /dev/null) 2>&1 ; then
+                        UNAME=`echo \`uname -s\`\`uname -m\`\`uname -r\``
+                else
+                        UNAME="machine without a uname command (type of machine unknown)"
+                fi # (uname)
+
+### map into names we recognize
+                case "${UNAME}" in
+                  AIX*)
+                       INSTALLHOST=rs6000
+                        MT=tctl
+                        ;;
+                  ULTRIXRISC)     INSTALLHOST=decstation ;;
+                  SunOSsun4*5*)   INSTALLHOST=sparc-sun-solaris2 ;;
+                  SunOSsun4*)     INSTALLHOST=sun4 ;;
+                  SunOSsun3*)     INSTALLHOST=sun3 ;;
+                  IRIX*)          INSTALLHOST=iris4 ;;
+                  *)              INSTALLHOST=unknown ;;
+                esac # ${UNAME}
+                ;;
+        esac # ${MAYBE}
+
+### default arch
+        case "${ARCH}" in
+          "")     ARCH="bin src" ;;
+          *) ;;
+        esac # ${ARCH}
+
+### default actions
+
+        case "${ACTIONS}" in
+          "")
+                case "${FTPRELEASE}" in
+                  "yes") ACTIONS="test" ;;
+                  "no" ) ACTIONS="extract test" ;;
+                esac # ${FTPRELEASE}
+
+
+### fixincludes only if comp-tools
+                for tool in ${TOOLS} ; do
+                        case ${tool} in
+                          comp)
+                                if echo ${ARCH} | grep bin > /dev/null 2>&1 ; then
+                                        ACTIONS="${ACTIONS} fix"
+                                fi
+                                ;;
+                          *) ;;
+                        esac # ${TOOLS}
+                done # for tool in ${TOOLS}
+                ;;
+        *) ;;
+        esac # ${ACTIONS}
+        ;;
+  *) ;;
+esac  # ${ERROR}
+
+case "${ERROR}" in
+  "")
+### if binaries are not intended for this machine
+        case "${INSTALLHOST}" in
+        "||HOSTstr||") ### binaries are intended for this machine
+                for action in ${ACTIONS} ; do
+                        case ${action} in
+                        test)
+                                for tool in ${TOOLS} ; do
+                                       OURWD=`(cd ${INSTALLDIR}; pwd) 2>/dev/null`
+                                       DEFAULTWD=`(cd ${INSTALLDIR_REAL}; pwd) 2>/dev/null`
+                                        case ${tool} in
+                                        comp)
+                                                case "${OURWD}" in
+                                                  "${DEFAULTWD}") ;;
+                                                  *)
+        echo '***' If you want to use the compilation tools in an alternate
+        echo '***   ' directory, GCC_EXEC_PREFIX must be set.  You probably
+        echo '***   ' want to set it with:
+        echo GCC_EXEC_PREFIX=${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/ ; export GCC_EXEC_PREFIX
+        GCC_EXEC_PREFIX=${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/ ; export GCC_EXEC_PREFIX
+        echo '***   ' This is what I will use for the installation tests.
+                                                  # skip C++ msg on Solaris
+                                                  case "${INSTALLHOST}" in
+                                                  sparc-sun-solaris2) ;;
+                                                  *)
+        echo '***   ' And for g++ I will use the options:
+        echo '***   '   -I${INSTALLDIR}/${EXECDIR}/lib/g++-include
+        echo '***   '        -L${INSTALLDIR}/${EXECDIR}/lib
+                                                       ;;
+                                                  esac # ${INSTALLHOST}
+        echo '***   ' For further help, please refer to ${CHANGING_PATHS}
+        echo '***   ' in ${NOTES}.
+
+        GPLUSOPTIONS="-I${INSTALLDIR}/${EXECDIR}/lib/g++-include -L${INSTALLDIR}/${EXECDIR}/lib"
+                                                  ;;
+                                                esac # ${INSTALLDIR}
+                                                ;;
+                                        emacs)
+                                                case "${OURWD}" in
+                                                  "${DEFAULTWD}") ;;
+                                                  *)
+                                                        echo '***' I cannot test Emacs.
+                                                        echo '***   ' The provided Emacs binary can only run from the default
+                                                        echo '***   ' installation directory.  If you wish to run emacs, please
+                                                        echo '***   ' refer to ${CHANGING_PATHS} in ${NOTES}.
+                                                        exit 1
+                                                        ;;
+                                                esac # ${INSTALLDIR}
+                                                ;;
+                                          *) true ;;
+                                        esac # ${tool}
+                                done # for tool in ${TOOLS}
+                                ;;
+                          *) true ;;
+                        esac # ${action}
+                done # for action in ${ACTIONS}
+                ;;
+
+        *)
+                for action in ${ACTIONS} ; do
+                        case ${action} in
+                          rm | extract)   true ;;
+                          fix)
+                                if echo ${TOOLS} | grep comp > /dev/null ; then
+                                        NOTFIXED="fixincludes"
+                                        if echo ${ACTIONS} | grep test > /dev/null ; then
+                                                JOINER=" or "
+                                        else
+                                                true
+                                        fi # echo ${ACTIONS}
+                                else
+#                                       echo '***' If you only install Emacs you do not need to run fixincludes.
+#                                       ERROR=true
+                                        true
+                                fi # echo ${TOOLS}
+                                ;;
+                          test)   NOTTESTED="the installation tests" ;;
+                        esac # ${action}
+                done # for action in ${ACTIONS}
+                ;;
+        esac # ${INSTALLHOST}
+        ;;
+  *) ;;
+esac # ${ERROR}
+
+if [ -n "${NOTFIXED}" -o -n "${NOTTESTED}" ] ; then
+        case "${INSTALLHOST}" in
+          "||HOSTstr||") ;;
+          *)
+                echo '***   ' This machine appears to be a \"${INSTALLHOST}\".
+                echo '***   ' You may still run \"$0 -extract ...\" on this machine and then
+                echo '***   ' run the other steps on the machine on which you wish to install.
+                echo '***   ' You will need to do these steps separately.
+                echo '***   ' For more information, please refer to
+                echo '***   ' ${ANOTHER_TAPE} in ${NOTES}.
+                ERROR=true
+                ;;
+        esac # ${INSTALLHOST}
+fi # [ -n ${NOTFIXED -o -n ${NOTTESTED} ]
+
+### if we can't read the tape drive...
+popdir=`pwd`
+
+if [ ! -d "${LOGDIR}" ] ; then
+       if mkdir ${LOGDIR}; then
+               true
+       else
+               echo '*** ' Can not write logs to \"${LOGDIR}\" because it does not exist.
+               echo '*** ' Try creating it with \"mkdir ${LOGDIR}\" and then try running Install again.
+               exit 1
+       fi
+else
+        if [ ! -w "${LOGDIR}" ] ; then
+                echo '*** ' Can not write logs to \"${LOGDIR}\" because I do not have write permission.
+                ls -lad ${LOGDIR}
+                echo '*** ' Please fix this and then try running Install again.
+                exit 1
+        fi   # ! -r ${LOGDIR}
+fi   # ! -d ${LOGDIR}
+
+
+cd ${INSTALLDIR}
+
+### There is a window here that I don't know how to handle gracefully from
+### shell.  If the directory DID exist and WAS executable but dissappeared
+### before we could cd into it, we're kinda hosed.  If you get a call about
+### this, make sure the directory exists, is readable, is executable, is the
+### either the default installation directory or the -installdir=directory
+### given on the command line.  Then ask them to just try again.  A few times.
+### If you get the same error every time, we've got a very strange bug.  I
+### can't help you.
+
+if [ "$?" != "0" ] ; then
+        echo '***' Cannot cd to \"${INSTALLDIR}\".  This is a problem.
+        echo '***   ' For further help, please refer to
+        echo '***   ' ${NO_ACCESS} in ${NOTES} or call
+        echo '***   ' ${HOTLINE}
+        exit 1
+fi
+
+if echo ${ACTIONS} | grep extract > /dev/null ; then
+        if [ -z "${ERROR}" -a ! -r "${TAPE}" ] ; then
+        ### try checking for a relative tape path
+                if [ -r ${popdir}/${TAPE} ] ; then
+                        TAPE=${popdir}/${TAPE}
+                        echo '***' Using TAPE device \"${TAPE}\".
+                else
+                        echo '***' Can not read from TAPE device, \"${TAPE}\".
+                        cd ${popdir} ; ls -lasd ${TAPE}
+                        echo '***   ' Try using \"./Install -tape=/dev/something ...\" to name your tape
+                        echo '***   ' drive or refer to ${MIGHT_WRONG} in
+                        echo '***   ' ${NOTES}.
+                        exit 1
+                fi  # ! -r ${popdir}/${TAPE}
+        fi   # -z ${ERROR}
+fi   # extract in ${ACTIONS}
+
+cd ${popdir}
+
+### bail out
+
+case "${ERROR}" in
+"") ;;
+*)
+        cat <<EOF
+You may supply at least one format on the command line.  Recognized formats
+are:
+    binaries    for binaries
+    source      for source code
+The default is both source and binaries.
+
+You may also supply actions.  Recognized actions are:
+    extract     read the appropriate files from tape
+    fixincludes build a directory of corrected header files for comp-tools 
+    test        run a very brief verification of your installation
+Default actions are extract, fixincludes, and test, although fixincludes is not
+necessary for emacs.
+
+There are two other options:
+    -tape=DEVICE   asks Install to read the necessary files from DEVICE. The
+                   default DEVICE is ||DEVdflt||, the ||TAPdflt||, cartridge tape
+                   drive on most ||HOSTstr||s.
+    -installdir=DIRECTORY       asks Install to install files into DIRECTORY.
+                                The default DIRECTORY is ${INSTALLDIR_DEFAULT}.
+No action has been taken.
+EOF
+        exit 1
+        ;;
+esac
+
+
+###
+###
+### build a file list
+###     (easy this round because we have only one package).
+###
+
+FILE_LIST=
+TRIGGERS=
+
+for arch in ${ARCH} ; do
+        case ${arch} in
+        bin)
+                FILE_LIST="${FILE_LIST} \
+                        ${VERSION}/Install \
+                        ${VERSION}/CYGNUS \
+                        ${EXECDIR}/lib \
+                        ${EXECDIR}/bin \
+                        ${VERSION}/include \
+                        ${VERSION}/info \
+                        ${VERSION}/lib \
+                        ${VERSION}/man"
+                for tool in ${TOOLS} ; do
+                        case ${tool} in
+                        comp)   TRIGGERS="${TRIGGERS} ${EXECDIR}/bin/gcc" ;;
+                        emacs)  TRIGGERS="${TRIGGERS} ${EXECDIR}/bin/emacs" ;;
+                        *)
+                                echo '***' Oops.  Sanity failure on triggers for binaries for ${tool}.
+                                exit 1
+                                ;;
+                        esac
+                done
+                ;;
+        src)
+                FILE_LIST="${FILE_LIST} \
+                        ${VERSION}/Install \
+                        ${VERSION}/CYGNUS \
+                        ${VERSION}/src"
+                for tool in ${TOOLS} ; do
+                        case ${tool} in
+                        comp)   TRIGGERS="${TRIGGERS} ${VERSION}/src/gcc/gcc.c" ;;
+                        emacs)  TRIGGERS="${TRIGGERS} ${VERSION}/src/emacs/src/emacs.c" ;;
+                        *)
+                                echo '***' Oops.  Sanity failure on triggers for source for ${tool}.
+                                exit 1
+                                ;;
+                        esac
+                done
+                ;;
+        *)
+                echo '***' Oops.  Sanity failure on triggers for arch ${arch}.
+                ;;
+        esac
+done
+
+###
+###
+### removal
+###
+###
+
+if echo ${ACTIONS} | grep rm > /dev/null 2>&1 ; then
+        if [ ! -d "${INSTALLDIR}" ] ; then
+                echo '***' Cannot remove anything from \"${INSTALLDIR}\" because it does not exist.
+                echo '***   ' You probably do not need to remove anything.
+        else
+                popdir=`pwd`
+                if [ ! -d "${INSTALLDIR}" ] ; then
+                        echo '***' Can not cd to \"${INSTALLDIR}\" because it does not exist.
+                        echo '***   ' You probably do not need to remove anything.
+                        exit 1
+                else
+                        if [ ! -r "${INSTALLDIR}" ] ; then
+                                echo '***' Can not cd to \"${INSTALLDIR}\" because I do not have execute permission.
+                                ls -lad ${INSTALLDIR}
+                                echo '***   ' Please fix this and then try running Install again.  For
+                                echo '***   ' more information, please refer to ${NO_ACCESS}
+                                echo '***   ' in ${NOTES}.
+                                exit 1
+                        fi
+                fi
+
+                cd ${INSTALLDIR}
+
+### see also the above note about the timing window.
+
+                if [ "$?" != "0" ] ; then
+                        echo '***' Cannot cd to \"${INSTALLDIR}\".  This is a problem.
+                        echo '***   ' For further help, please refer to
+                        echo '***   ' ${NO_ACCESS} in ${NOTES} or call
+                        echo '***   ' ${HOTLINE}
+                        exit 1
+                else
+                        true
+                fi
+
+                if [ ! -d "${VERSION}" ] ; then
+                        echo '***' Cannot remove anything from \"${INSTALLDIR}/${VERSION}\" because it does not exist.
+                        echo '***   ' You probably do not need to remove anything.
+                        exit 1
+                else
+                        true
+                fi
+
+                echo Removing from \"${INSTALLDIR}\"...
+
+                if rm -rf ${FILE_LIST} ; then
+                        # if neither binaries nor source are installed, remove installdir
+                        if [ -d ${INSTALLDIR}/${EXECDIR} \
+                                -o -d ${INSTALLDIR}/${VERSION}/src ] ; then
+                                true
+                        else
+                                if rm -rf "${INSTALLDIR}/${VERSION}" ; then
+                                        true
+                                else
+                                        if [ ! -w "${INSTALLDIR}" ] ; then
+                                                echo '***' I can not remove ${INSTALLDIR}/${VERSION}
+                                                echo '***   ' because I do not have write access to \"${INSTALLDIR}\"
+                                                echo '***   ' Please fix this and try running Install again.  For more information
+                                                echo '***   ' please refer to ${NO_ACCESS} in ${NOTES}.
+                                                exit 1
+                                        else
+                                                echo '***' I do not know why I can not remove ${INSTALLDIR}/${VERSION}.  This is
+                                                echo '***   ' probably not a problem.
+                                        fi
+                                        exit 1
+                                fi
+                        fi
+
+                        echo Removed.
+                else
+                        echo '***' There appears to have been a removal error.
+                        echo '***   ' Chances are that this is not a problem, but you might try removing
+                        echo '***   ' again.
+                        exit 1
+                fi
+        fi
+        echo Cygnus Support software distribution removed!
+else
+        true
+fi # if removing
+
+###
+###
+### extraction
+###
+###
+
+if echo ${ACTIONS} | grep extract > /dev/null 2>&1 ; then
+        if [ ! -d "${INSTALLDIR}" ] ; then
+                echo Trying to create \"${INSTALLDIR}\"...
+                if mkdir ${INSTALLDIR} ; then
+                        echo Created \"${INSTALLDIR}\".
+                else
+                        echo '***' I can not make directory, \"${INSTALLDIR}\".
+
+### attempt to diagnose...
+
+                        DIR=`echo ${INSTALLDIR} | ${SED} -e 's:/[^/]*$::'`
+                        if [ ! -d "${DIR}" ] ; then
+                                echo '***   ' It looks as though \"${DIR}\" does not even exist.
+                                exit 1
+                        else
+                                if [ ! -w "${DIR}" ] ; then
+                                        echo '***   ' It looks as though you do not have write access to \"${DIR}\".
+                                        echo '***   ' Please fix this and try running Install again.  For more information
+                                        echo '***   ' please refer to ${NO_ACCESS} in ${NOTES}.
+                                        exit 1
+                                else
+                                        echo '***   ' I do not know why I can not create \"${INSTALLDIR}\".  This is a problem.
+                                        echo '***   ' Please call ${HOTLINE}
+                                        exit 1
+                                fi  # ! -w ${DIR}
+                        fi  # ! -d ${DIR}
+                fi  # mkdir ${INSTALLDIR}
+        else
+                true
+        fi  # ! -d ${INSTALLDIR}
+
+        cd ${INSTALLDIR}
+
+        if [ "$?" = "0" ] ; then
+                for trigger in ${TRIGGERS} ; do
+                        if [ -r "${trigger}" ] ; then
+                                echo '***' \"${INSTALLDIR}/${trigger}\" exists and I will not overwrite it.
+                                echo '***   ' If you really want to install it again, please remove it first.
+                                exit 1
+                        else
+                                true
+                        fi  # -r ${trigger}
+                done  # for trigger
+        else
+                echo '***' I can not cd to \"${INSTALLDIR}\".
+
+### attempt to diagnose...
+
+                if [ ! -r "${INSTALLDIR}" ] ; then
+                        echo '***   ' It looks as though you do not have execute permission to \"${INSTALLDIR}\".
+                else
+                        true
+                fi  # ! -r ${INSTALLDIR}
+
+                echo '***   ' For further help, please refer to
+                echo '***   ' ${NO_ACCESS} in ${NOTES}.
+                exit 1
+        fi  # status is zero
+
+
+### remove redundant names from the list
+        echo ${FILE_LIST} ${COMMONS} ${EMACSHIBIN} | tr ' ' '
+' | sort | uniq > ${LOGDIR}/extract_list
+
+        echo It will take some time for me to read the tape.
+        echo Verbose output will be saved in ${LOGDIR}/tar.log
+        echo Extracting into \"${INSTALLDIR}\"... 
+
+### make sure things come off the tape as they were written, but minus what could be a security hole.
+        umask 0
+
+### using the no rewind device, so rewind and fsf to be sure.
+
+        if ${MT} -f ${TAPE} rewind > /dev/null 2>&1 ; then
+                if ${MT} -f ${TAPE} fsf 1 ; then
+                        true
+                else
+                        echo '***' Could not forward space tape device \"${TAPE}\".
+                        exit 1
+                fi  
+        else
+                if test -r ${TAPE} ; then
+                        true
+                else
+                        echo '***' Could not rewind tape device \"${TAPE}\".
+                        exit 1
+                fi
+        fi  # mt ${TAPE} rewind
+
+        if dd if=${TAPE} bs=124b | compress -d | ${TAR} ${TARKEYS} `cat ${LOGDIR}/extract_list` > ${LOGDIR}/tar.log 2>&1 && test -d ${VERSION} ; then
+               if [ -d ${INSTALLDIR}/${EXECDIR}/bin ] ; then
+                       echo Extracted.
+               else
+                       echo '***' The extraction has failed.  The directory
+                       echo '***' ${INSTALLDIR}/${EXECDIR}/bin was not extracted.
+                       echo '***   ' The output from the tar command has been logged in ${LOGDIR}/tar.log
+                       echo '***   ' I do not know how to continue until this problem has been
+                       echo '***   ' corrected.  If you do not know how to fix it either, please
+                       echo '***   ' call ${HOTLINE}.
+                       exit 1
+               fi
+
+                if (${MT} -f ${TAPE} rewind > /dev/null 2>&1) ; then
+                        true
+                else
+                        true
+                fi  # mt rewind
+        else
+                echo '***' There appears to have been an extraction error.
+                echo '***   ' The output from the tar command has been logged in ${LOGDIR}/tar.log
+                echo '***   ' I do not know how to continue until this problem has been
+                echo '***   ' corrected.  If you do not know how to fix it either, please
+                echo '***   ' call ${HOTLINE}.
+                exit 1
+        fi  # dd | compress | tar ....
+
+        rm -f ${LOGDIR}/extract_list
+        echo Cygnus Support software distribution extracted!
+else
+        true
+fi   # extraction in actions
+
+###
+###
+### fixincludes
+###
+###
+
+if echo ${ACTIONS} | grep fix > /dev/null 2>&1 ; then
+        echo Running fixincludes for ${INSTALLHOST}.
+        echo Verbose output will be stored in ${LOGDIR}/fixincludes.log
+        echo This will take some time.
+        LIB=${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include ; export LIB
+
+       if mkdir ${LIB}/tmpdir && mv ${LIB}/*.h ${LIB}/tmpdir ; then
+               if ${INSTALLDIR}/${VERSION}/lib/fixincludes ${LIB} /usr/include ${INSTALLDIR}/${VERSION}/src/gcc > ${LOGDIR}/fixincludes.log ; then
+                       mv ${LIB}/tmpdir/* ${LIB} && rmdir ${LIB}/tmpdir 
+                       echo Finished with fixincludes.
+               else
+                       echo '***' There seems to have been a problem with fixincludes.
+                       echo '***   ' The verbose output from the fixincludes script has been logged in
+                       echo '***   ' ${INSTALLDIR}/${VERSION}/fixincludes.log.
+                       echo '***   ' I do not know how to continue until this problem has been
+                       echo '***   ' corrected.  If you do not know how to fix it either, please
+                       echo '***   ' call ${HOTLINE}.
+                       mv ${LIB}/tmpdir/* ${LIB} && rmdir ${LIB}/tmpdir
+                       exit 1
+               fi  # 
+       else
+                echo '***' Not able to create the temporary include dir
+                echo '***  ' Please ensure that write permissions for
+                echo '***  ' ${LIB} are allowed.
+                echo '***  ' Or call ${HOTLINE} for more information.
+                exit 1
+       fi      
+        echo Fixed include files installed!
+else
+        true
+fi  # fix in actions
+
+###
+###
+### testing the installation
+###
+###
+
+if echo ${ACTIONS} | grep test > /dev/null 2>&1 && echo ${ARCH} | grep bin > /dev/null 2>&1 ; then
+       popdir=`pwd`
+       cd ${LOGDIR}
+        for tool in ${TOOLS} ; do
+                case ${tool} in
+                  comp)
+                        if [ -f ${INSTALLDIR}/${EXECDIR}/bin/gcc ] ; then
+                        cat > ${LOGDIR}/hello.c <<'e!o!f'
+#include <stdio.h>
+
+extern int printf();
+
+int main(int argc, char **argv) {
+        (void) printf("hello: The compilation tools appear to be installed correctly on your %s.\n",
+                MACHINE);
+        return(0);
+} /* main() */
+e!o!f
+                        if ${INSTALLDIR}/${EXECDIR}/bin/gcc -Wall -O -g \
+                                -DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/hello.c -o ${LOGDIR}/hello ; then
+                                if ${LOGDIR}/hello ; then
+                                        echo This is good.
+                                else
+                                        echo '***' Hello.c fails to run.  This is a problem.
+                                        echo '***   ' Please call ${HOTLINE}
+                                        exit 1
+                                fi  # ./hello
+                        else
+                                echo '***' Hello.c fails to compile.  This is a problem.
+                                echo '***   ' Please call ${HOTLINE}
+                                exit 1
+                        fi  # run gcc
+
+### now check for fixed includes.
+                        cat > ${LOGDIR}/test-ioctl.c << 'e!o!f'
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <math.h>
+
+double atof(const char *);
+
+#ifdef __sun__
+#include <sys/filio.h>
+
+extern int ioctl();
+extern int perror();
+#endif /* __sun__ */
+
+extern int printf();
+
+int main(int argc, char **argv) {
+#ifdef __sun__
+        long l;
+        int fd;
+        int retval;
+
+        if ((fd = open("/dev/tty", O_RDONLY)) == -1) {
+                (void) perror("test-ioctl: can't open /dev/null");
+                return(1);
+        } else if ((retval = ioctl(fd, FIONREAD, &l)) != 0) {
+                (void) perror("test-ioctl: ioctl failed");
+                (void) printf("test-ioctl: Most likely, you have not run \"Install fixincludes\" on this machine.\n");
+                return(2);
+        }
+#endif /* __sun__ */
+
+        printf("test-ioctl: Ansi versions of the system header files, (the fixed includes),\n");
+        printf("test-ioctl: appear to be installed correctly.\n");
+
+/* that's right.  If closing /dev/tty fails, I don't want to know about it. */
+
+        return(0);
+}
+e!o!f
+
+                        case "||HOSTstr||" in
+                        sun3 | sun4 | decstation)
+                                if ${INSTALLDIR}/${EXECDIR}/bin/gcc -Wall -O -g \
+                                        -DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/test-ioctl.c -o ${LOGDIR}/test-ioctl ; then
+                                        if ${LOGDIR}/test-ioctl ; then
+                                                echo This is good.
+                                        else
+                                                case "$?" in
+                                                1)
+                                                        echo '***' test-ioctl.c fails to read /dev/tty.  If you were running Install
+                                                        echo '***   ' in batch or from a daemon, please try running it again interactively.
+                                                        echo '***   ' If not, please call ${HOTLINE}
+                                                        exit 1
+                                                        ;;
+                                                2)
+                                                        echo '***' test-ioctl.c fails to ioctl.
+                                                        echo '***   ' Most likely you need to run \"Install fixincludes\".
+                                                        echo '***   ' Please run \"Install fixincludes\" and
+                                                        echo '***   ' then try this test again.  For an explanation see
+                                                        echo '***   ' ${WHY_FIXINCLUDES} in ${NOTES}.
+                                                        exit 1
+                                                        ;;
+                                                *)
+                                                        echo '***' test-ioctl.c fails to run.  This is a problem.
+                                                        echo '***   ' Please call ${HOTLINE}
+                                                        exit 1
+                                                        ;;
+                                                esac  # $?
+                                                exit 1
+                                        fi  # test-ioctl
+                                else
+### this presupposes that hello.c DID compile.
+                                        echo '***' test-ioctl.c fails to compile.  This is a problem.
+                                        echo '***   ' Please call ${HOTLINE}
+                                        exit 1
+                                fi  # run gcc
+                                ;;
+                        iris4)
+                                if [ ! -f ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/sys/cfeiroute.h ]
+                                then
+                                        echo '***' You seem to be missing ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/sys/cfeiroute.h.
+                                        echo '***   ' Most likely you need to run \"Install fixincludes\".
+                                        echo '***   ' Please run \"Install fixincludes\" and
+                                        echo '***   ' then try this test again.  For an explanation see
+                                        echo '***   ' ${WHY_FIXINCLUDES} in ${NOTES}.
+                                        exit 1
+                                fi  # test fixincluded file
+                                ;;
+                       sparc-sun-solaris2)
+                                if [ ! -f ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/ieeefp.h ]
+                                then
+                                        echo '***' You seem to be missing ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/ieeefp.h.
+                                        echo '***   ' Most likely you need to run \"Install fixincludes\".
+                                        echo '***   ' Please run \"Install fixincludes\" and
+                                        echo '***   ' then try this test again.  For an explanation see
+                                        echo '***   ' ${WHY_FIXINCLUDES} in ${NOTES}.
+                                        exit 1
+                               fi
+                               ;;
+
+                        rs6000)
+                                if [ ! -f ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/piostruct.h ]
+                                then
+                                        echo '***' You seem to be missing ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/piostruct.h.
+                                        echo '***   ' Most likely you need to run \"Install fixincludes\".
+                                        echo '***   ' Please run \"Install fixincludes\" and
+                                        echo '***   ' then try this test again.  For an explanation see
+                                        echo '***   ' ${WHY_FIXINCLUDES} in ${NOTES}.
+                                        exit 1
+                                fi  # test fixincluded file
+                                ;;
+                        esac  # ||HOSTstr||
+                        else
+                                true
+                        fi  # test if gcc present
+
+### now check for g++.
+                        if [ -f ${INSTALLDIR}/${EXECDIR}/bin/g++ ] ; then
+                                cat > ${LOGDIR}/hello.C << 'e!o!f'
+#include <iostream.h>
+
+int main(int argc, char**argv)
+{
+  char *machine = MACHINE;
+  cout << "hello: g++ appears to be installed correctly on your "
+        << machine << ".\n";
+  return(0);
+}
+e!o!f
+                                if ${INSTALLDIR}/${EXECDIR}/bin/gcc ${GPLUSOPTIONS} -Wall -O -g \
+                                        -DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/hello.C -o ${LOGDIR}/Hello -lg++ ; then
+                                        if ${LOGDIR}/Hello ; then
+                                                echo This is good.
+                                        else
+                                                echo '***' hello.C fails to run.  This is a problem.
+                                                echo '***   ' Please call ${HOTLINE}
+                                                exit 1
+                                        fi  # ./Hello
+                                else
+        ### this presupposes that hello.c DID compile.
+                                        echo '***' hello.C fails to compile.  This is a problem.
+                                        echo '***   ' Please call ${HOTLINE}
+                                        exit 1
+                                fi  # run g++
+
+        ### now check for static initialization.
+                                cat > ${LOGDIR}/static-init.C << 'e!o!f'
+#include <iostream.h>
+int Three;
+
+struct Foo {
+    Foo(int i) { Three = i; }
+};
+
+Foo foo(3);
+
+int main(int argc, char**argv)
+{
+  if (Three != 3) {
+        cout << "static-init: static initialization fails.\n";
+        return(1);
+  }
+
+  cout << "static-init: static initialization appears to work.\n";
+  return(0);
+}
+e!o!f
+                                if ${INSTALLDIR}/${EXECDIR}/bin/gcc ${GPLUSOPTIONS} -Wall -O -g \
+                                        -DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/static-init.C -o ${LOGDIR}/static-init -lg++ ; then
+                                        if ${LOGDIR}/static-init ; then
+                                                echo This is good.
+                                        else
+                                                echo '***' Static initialization is not working.  This is a problem.
+                                                echo '***   ' Please call ${HOTLINE}
+                                                exit 1
+                                        fi  # run static-init
+                                else
+        ### this presupposes that it DID compile.
+                                        echo '***' static-init.c fails to compile.  This is a problem.
+                                        echo '***   ' Please call ${HOTLINE}
+                                        exit 1
+                                fi  # run g++
+                        else # no g++, so don't test it
+                                true
+                        fi  #  no g++
+                        ;;
+                emacs)
+                        cat > ${LOGDIR}/hello.el <<'e!o!f'
+(server-start)
+(message "Emacs appears to be installed correctly.")
+(kill-emacs 0)
+e!o!f
+                        if ${INSTALLDIR}/${EXECDIR}/bin/emacs -batch -l ${LOGDIR}/hello.el ; then
+                                echo This is good.
+                        else
+                                echo '***' Emacs fails to run.  This is a problem.
+                                echo '***   ' Please call ${HOTLINE}
+                                exit 1
+                        fi
+                       ;;
+               src)    # if anyone can tell me how to test the installation of source...
+                       true 
+                       ;;
+               *)
+                       echo '***' I do not know how to test for tool \"${tool}\" because I have never
+                       echo '***   ' heard of it.  This is a problem.  Please call ${HOTLINE}.
+                       exit 1
+                       ;;
+               esac
+       done
+       rm -f hello* test-ioctl* static-init* Hello*
+       cd ${popdir}
+       echo Cygnus Support software distribution tested!
+else
+       true
+fi
+
+echo Done.
+
+exit 0
+
+###
+### Local Variables:
+### comment-column: 0
+### fill-column: 131
+### End:
+###
+
+### End of Install
diff --git a/Pack-A-Progressive b/Pack-A-Progressive
new file mode 100755 (executable)
index 0000000..5b6f66a
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+CC=gcc
+
+set -x
+set -e
+
+if [ $# != 3 ] ; then
+       echo Usage: $0 release host /dev/norewindtape
+       exit 1
+fi
+
+release=$1
+host=$2
+tape=$3
+
+cd ${host}
+mt -f ${tape} ret
+mt -f ${tape} rew
+/bin/tar cf ${tape} Install
+
+cat > /tmp/blockit.c <<'e!o!f'
+#include <stdio.h>
+
+#define BLOCKSIZE (1024 * 62)
+
+main() {
+  long c;
+  long i = 0;
+  long j;
+
+  setvbuf (stdout, (char *)NULL, _IOFBF, BLOCKSIZE);
+
+  while ((c = getchar()) != EOF) {
+    if (ferror(stdin)) {
+      perror("on getchar");
+      return(1);
+    } /* on error */
+
+    putchar(c);
+
+    if (ferror(stdout)) {
+      perror("on putchar");
+      return(1);
+    } /* on error */
+
+    ++i;
+  } /* while there is input */
+
+  for (j = (BLOCKSIZE - (i % BLOCKSIZE)); j; --j) {
+    putchar(0);
+
+    if (ferror(stdout)) {
+      perror("on putchar");
+      return(1);
+    } /* on error */
+  } /* pad */
+
+  return(0);
+}
+e!o!f
+(cd /tmp; ${CC} -o blockit blockit.c) 
+/bin/tar cf - ${release} | compress -vV | /tmp/blockit > ${tape}
+mt -f ${tape} asf 0
+tar tvf ${tape}
+dd bs=62k if=${tape} | compress -d | /bin/tar tvvf -
+rm -f /tmp/blockit /tmp/blockit.c
+mt -f ${tape} rew
diff --git a/install-texi.in b/install-texi.in
new file mode 100644 (file)
index 0000000..c825820
--- /dev/null
@@ -0,0 +1,2077 @@
+\input texinfo
+@c
+@c search for "UPDATE!" for items that will need examination on future
+@c releases
+@c
+@c This file may require a nonstandard texinfo.tex to format; if you
+@c need it, please contact Cygnus Support (email editor-in-chief@cygnus.com)
+@setfilename README.info
+@c FIXME: XCOMP stuff not ready to go.  For example,
+@c FIXME: no mention of lack of -msoft-float support for XCOMP, yet.
+@c
+@c This file describes how to install a Cygnus Progressive Release.
+@c
+@c Copyright (C) 1991, 1992 Cygnus Support
+@c This text may be freely distributed under the terms of the GNU
+@c General Public License.
+@c
+@c $Id$
+@c         CONFIG: One of these hosts should be set, the others clear:
+@set HOSTsun4
+@clear HOSTsun3
+@clear HOSTdecstation
+@clear HOSTrs6000
+@clear HOSTiris
+@c         CONFIG: In addition, XCOMP should be set for discussion of
+@c                cross-compilation facilities 
+@clear XCOMP
+@c
+@c
+@iftex
+@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
+@c implements Cygnus modifications to the texinfo manual style.
+@input texiplus
+@c The include file "smpklug.texi" is a kluge to deal with local
+@c document production issues at Cygnus; it's safe to comment out this
+@c line if you don't have (or don't want) the file.
+@input smpklug.texi
+@smallbook
+@cropmarks
+@setchapternewpage on
+@finalout
+@end iftex
+@settitle Progressive--||RELNO|| Installation
+@tex
+% override-override: the following \font lines are redundant if you're
+% using an unmodified FSF texinfo.  
+\globaldefs=1
+\font\texttt=cmtt10 scaled \magstephalf\let\tentt=\texttt
+\font\textsl=cmsl10 scaled \magstephalf\let\tensl=\textsl
+\font\textsf=cmss10 scaled \magstephalf\let\tensf=\textsf
+\globaldefs=0
+%end override-override
+% WARNING: NONSTANDARD USAGE we need \tensf for print, without
+% upsetting info.  We weren't using @b in this note, so I redefine it:
+%
+\global\def\b#1{{\tensf #1}}
+\global\parindent=0pt
+@end tex
+@titlepage
+@title Installation Notes
+@sp 3
+@table @strong
+@item Cygnus Support Developer's Kit
+@item Progressive Release ||RELNO|| for ||HOST||
+@item {}
+@item Contents
+@end table
+@c TOGGLE XREF DISPLAY TO AVOID SQUARE BRACKETS OR QUOTES:
+@c (Cygnus "texiplus.tex" hack.  If you want standard texinfo remove
+@c or comment-out instances of @altref).
+@altref
+@format
+@ref{Brief,,Installing in Brief}
+@ref{Contents,,Release Contents}.
+@ref{Platforms,,Supported Platforms}.
+
+@ref{Installing,,Installing the Developer's Kit}.
+@ref{local-install,,Installing in @file{/usr/cygnus} with a local tape drive}.
+@ref{cross-install,,Installing in @file{/usr/cygnus} with another machine's tape drive}.
+@ref{Examples,,Installation Examples}.
+@ref{Install-Options,,Installation Options}
+
+@ref{Why-fixincludes,,Why Convert System Header Files?}
+@ref{Links,,Links for Easy Access and Updating}
+@ref{Paths,,Changing the Paths}
+@ref{Trouble,,Some Things that Might go Wrong}
+@ref{Rebuilding,,Rebuilding From Source}.
+@ref{Removing,,Removing the Developer's Kit}.
+
+@ref{Cygnus-FSF,,Cygnus Progressive Releases and the FSF}.
+@ref{Cygnus-Support,,About Cygnus Support}.
+@end format
+@c TOGGLE XREF DISPLAY BACK, TO RESTORE MARKERS AROUND SECNAMES:
+
+@altref
+@author Cygnus Support @hfill hotline: +1 415 322 7836
+@page
+
+@tex
+\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
+\xdef\Rmanvers{{\it Installation Notes (Progressive Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
+{\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
+\TeX{}info \texinfoversion\par }
+\global\def\manvers{Progressive ||RELNO|| for ||HOST||}
+@end tex
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1991, 1992 Cygnus Support
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+
+@end titlepage
+
+@ifinfo
+@node Top, Brief, (dir), (dir)
+
+This file is about the Cygnus Developer's Kit: what's in it, how to
+install it, and how to reconfigure it.
+
+@menu
+* Brief::                       Installing in Brief
+* Contents::                    Release Contents
+* Requirements::                System Requirements
+* Installing::                  Installing the Developer's Kit
+* Examples::                    Installation Examples
+* Install-Options::             Installation Options
+* Links::                       Links for Easy Access and Updating
+* Running::                     Running the Programs
+* Paths::                       Changing the Paths
+* Trouble::                     Some Things that Might go Wrong
+* Rebuilding::                  Rebuilding From Source
+* Removing::                    Removing Parts of the Developer's Kit
+* Cygnus-FSF::                  Cygnus Releases and the FSF
+* Cygnus-Support::              About Cygnus Support
+
+ --- The Detailed Node Listing ---
+
+Release Contents
+
+* Platforms::                   Supported Platforms
+
+Supported Platforms
+
+* Requirements::                System Requirements
+
+Installing the Developer's Kit
+
+* local-install::               Installing with a local tape drive
+* cross-install::               Installing with another machine's tape drive
+
+Installation Examples
+
+* binaries::                    Installing binaries only
+* ||HOSTstr||-remote::          Reading tape on any machine, finishing on ||HOST||
+* source-remove::               Removing Source
+
+Installation Options
+
+* Why-fixincludes::             Why Convert System Header Files?
+
+Links for Easy Access and Updating
+
+* Running::                     Running the Programs
+
+Some Things that Might go Wrong
+
+* No Drive::                    No Local Tape Drive
+* Limited Space::               Not Enough Space
+* No access::                   No Access to @file{/usr/cygnus}
+* Install errors::              Error Messages from @code{Install}
+
+Rebuilding From Source
+
+* Configuration::               Configuration
+* Config Names::                Specifying Names for Hosts and Targets
+* configure Options::           @code{configure} Options
+* Compilation::                 Compilation
+* Installation::                Installation
+@end menu
+
+@end ifinfo
+
+@node Brief, Contents, Top, Top
+@unnumberedsubsubsec Installing in Brief
+@strong{You can run the brief installation procedure if:}
+@itemize @bullet
+@item 
+You have a ||TAPdflt|| release tape (see tape label), and
+@item
+Your ||HOST|| has its own ||TAPdflt|| tape drive (@code{||DEVdflt||}), and
+@item
+You're willing to use the installation directory @file{/usr/cygnus}, and
+@item
+You have at least ||DF|| MB available in @code{/usr} (try @samp{df /usr})
+@end itemize
+Otherwise, see @ref{Installing,,Installing the
+Developer's Kit}.
+
+@strong{Steps for Brief Install:}
+
+@enumerate
+@item 
+Make sure you can write in @samp{/usr/cygnus}, by typing:
+
+@example
+eg$ @b{su root}
+password:           @i{(enter root password)}
+# @b{mkdir /usr/cygnus}        @i{(ignore ``File exists'' error if any)}
+# @b{chmod 777 /usr/cygnus}
+# @b{exit}              @i{(root access not needed beyond this)}
+@end example
+
+@item
+Load the Progressive--||RELNO|| tape into your tape drive.
+
+@item
+Get the @code{Install} script from the tape:
+
+@example
+eg$ @b{cd /tmp}
+eg$ @b{tar xfv ||DEVdflt|| Install}
+@end example
+
+@item
+Run the @code{Install} script:
+
+@example
+eg$ @b{./Install}
+@end example
+
+@code{Install} displays messages about its activity, ending with
+
+@example
+Done.
+@end example
+
+@item
+Build symbolic links to make execution paths easy:
+
+@example
+eg$ @b{cd /usr/cygnus}
+eg$ @b{ln -s progressive-||RELNO|| progressive}
+eg$ @b{su root}       @i{(may need root access to put link in /usr)}
+password:
+# @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
+# @b{exit}            @i{(give up root access as soon as possible)}
+@end example
+
+@item
+Use your Cygnus customer-ID (see cover letter) to tag your copy of our
+problem-report form:
+
+@example
+eg$ @b{/usr/progressive/bin/install@t{_}cid @var{ID}}
+@end example
+
+@item
+Remove public write access from @file{/usr/cygnus}.  See your System
+Administrator for the correct permissions at your site.
+@end enumerate
+
+You're done!  Anyone who puts @samp{/usr/progressive/bin} in her or his
+@code{PATH} can use the Developer's Kit.
+
+@node Contents, Requirements, Brief, Top
+@unnumbered Release Contents
+
+This Developer's Kit is a Cygnus Support @dfn{Progressive Release}: the
+programs in it are recent versions, which have been tested and certified
+both individually and as a coordinated suite of tools.
+The kit includes both source and binaries for:  
+
+@c UPDATE! Anything new shoveled in?
+
+@c ifclear doesn't seem to nest well.  For that reason, and due to lack
+@c of "else" to ifclear, and due to lack of expressions in ifset/ifclear
+@c arguments, "DoFullTable" used in this contorted fashion:
+
+@set DoFullTable
+
+@ifset HOSTrs6000
+@clear DoFullTable
+@end ifset
+
+@ifset HOSTdecstation
+@clear DoFullTable
+@end ifset
+
+@ifset HOSTiris
+@clear DoFullTable
+@end ifset
+
+@table @t
+@item gcc
+C compiler
+
+@item g++
+C++ compiler
+
+@ifset DoFullTable
+@item gas
+assembler
+@end ifset
+
+@item gdb
+debugger
+
+@item gprof
+Performance analyzer
+
+@item byacc
+Parser generator
+
+@item flex
+Fast lexical analyzer generator
+
+@ifset DoFullTable
+@item ld
+linker
+@end ifset
+
+@item make
+compilation control program
+
+@item libg++.a
+C++ class library
+
+@ifset DoFullTable
+@item ar
+Manages object code archives
+
+@item nm
+Lists object file symbol tables
+
+@item objdump
+Displays object file information
+
+@item ranlib
+Generates archive index
+
+@item size
+Lists section and total sizes
+
+@item strip
+Discards symbols
+@end ifset
+
+@item makeinfo
+@itemx info
+Documentation tools
+
+@item texinfo.tex
+@itemx texindex
+Documentation printing tools
+
+@item send_pr
+Script to send structured problem reports to Cygnus
+
+@item diff
+Compares source files
+
+@item patch
+Installs source fixes
+@end table
+
+@menu
+* Platforms::                   Supported Platforms
+@end menu
+
+@node Platforms,  , Contents, Contents
+@unnumberedsec Supported Platforms
+
+@table @strong
+@item ||HOST||
+All programs in your Developer's Kit run on ||HOST|| computers; we
+ship binaries (configured to install and run under @file{/usr/cygnus})
+as well as all source code.
+
+@ignore
+@ifset HOSTsun4
+@item @sc{sparc} clones
+Whenever this note refers to ``Sun-4'' computers, you can also use a
+@sc{sparc} clone---that is, any computer system based on the @sc{sparc}
+architecture, regardless of its manufacturer.
+@end ifset
+@end ignore
+
+@ifset XCOMP
+@item Cross-Compiling
+@sc{gcc}, @sc{gas}, @sc{gdb}, and the binary
+utilities are preconfigured to generate and manage code for ||TARGET||
+architectures.
+@end ifset
+
+@item Other Platforms
+For information on other platforms or other programs
+that we may support, please contact Cygnus Support at:
+
+@table @strong
+@item voice
++1 415 322 3811
+@item hotline
++1 415 322 7836
+@item fax
++1 415 322 3270
+@item email
+@code{info@@cygnus.com}
+@end table
+@end table
+
+@menu
+* Requirements::                System Requirements
+@end menu
+
+@node Requirements, Installing, Contents, Top
+@unnumbered System Requirements
+
+@table @strong
+@item OS Level
+Progressive Release ||RELNO|| for ||HOST|| hosts requires
+@ifset HOSTsun4
+SunOS 4.1.1 (or later).
+@end ifset
+@ifset HOSTsun3
+SunOS 4.1 (or later).
+@end ifset
+@ifset HOSTdecstation
+ULTRIX 4.0.  For Ultrix 4.2, some workarounds are required even to run
+the installation script; if you would like to try these workarounds,
+please call the Cygnus hotline @w{+1 415 322 7836}.
+@end ifset
+@ifset HOSTrs6000
+AIX 3.1.5 (or later).
+
+@item IBM Software Patches
+Debugging code compiled with @sc{gcc} on the RS/6000 requires that you
+upgrade the AIX assembler @code{/bin/as} with a replacement that is available
+from IBM.  Without the upgrade, you can still compile your code, but
+@samp{gcc -g @dots{}} will not work.
+
+Any IBM RS/6000 customer can order and get the replacement assembler,
+and install it on one or more machines.  It is distributed both on
+diskette and via VNET, for downloading via ftp.  VNET distribution may
+be desirable if you have a friendly IBM representative nearby with a
+networked VM machine.
+
+In either case, to order the replacement assembler from IBM, first
+execute @samp{lslpp -h bos.obj} to determine your release level.  (Look
+on the @samp{ACTIVE} line for something like @samp{03.01.0005.0012}.)
+Then (in North America) call IBM Support at 800--237--5511.  Ask for
+emergency shipment of the RS/6000 AIX fix for APAR IX22829.  They may
+ask you to verify that it's a fix for ``@code{.extern foo} conflicts
+with defining @code{foo}''; say yes.  They may also ask you for your
+customer number.  If you do not know it, you will still be able to get
+the fix, but you will have to be persistent.
+
+You will receive a tar or tar.Z file containing an assembler plus
+installation instructions.
+
+If you tell them you're running AIX version 3.2, you may be told that
+no fix is available yet.  In fact the 3.1.5 fix works fine on version
+3.2.  Request it anyway.
+
+IBM is working on a second upgrade to replace IX22829 and fix two
+more problems with debug information.  There's no scheduled availability
+yet, but it's probably summer 1992.  Ask for the fix for APAR IX26107,
+``Don't allow @code{.csect name[BS]} or @code{[UC]}''.  (Without the
+second upgrade, debugging works, but there may be occasional
+aberrations.)
+
+IBM has corresponding support organizations outside of North America.
+If you are not in North America, call your IBM branch office and ask
+them to put you in touch with the department that handles emergency
+fixes for AIX on the RS/6000.  If that doesn't work, ask for the
+department that handles software defect support for AIX on the RS/6000.
+Then ask for the emergency APAR fix.
+@end ifset
+@ifset HOSTiris
+IRIX 4.0.1 (or later).
+@end ifset
+@c UPDATE! fill in OS for all supported platforms.
+
+@item Tape Drive
+You need access to a tape drive that can read the distribution tape.
+The tape drive need not be on the ||HOST|| where you want to run
+the software; but it is best if the machine with a tape drive and your ||HOST||
+can mount a common file system.  At the very least, you need some sort
+of file transfer capability between the machine with a tape drive and
+your ||HOST||.
+
+Cygnus release tapes are labelled to identify the kind of
+tape used; either ||TAPdflt|| tapes, or Exabyte tapes.
+
+@item Disk Space
+The total space required to extract and install
+binaries and source for all programs is
+||DF|| megabytes.
+
+The software is configured to go into @file{/usr/cygnus}.  If you have
+space available, but not in the same file system as @file{/usr}, you can
+use @samp{ln -s} to create @file{/usr/cygnus} as a symbolic link to the
+file system where you do have the space available.
+
+If you don't have enough space, you may be able to install binaries only;
+see @ref{Limited Space,,Not Enough Space}.  The space required for
+installing the binaries on ||HOST|| systems is ||BD|| megabytes.
+
+@item Write Access
+You need to to sign on to an account with write access to @file{/usr},
+or at least to an existing @file{/usr/cygnus} directory.  If you can't
+write in @file{/usr} or @file{/usr/cygnus}, see @ref{No access,,No
+Access to @file{/usr/cygnus}}.
+
+Root access is @emph{not} necessary to run the installation itself;
+but you might need it briefly to arrange for a writable
+@file{/usr/cygnus} directory, and to build a symbolic link in @file{/usr} after
+the installation is complete.  The detailed installation instructions show
+when this may be necessary.  We recommend you avoid @samp{su root} whenever
+possible.
+@end table
+
+@node Installing, Examples, Requirements, Top
+@unnumbered Installing the Developer's Kit
+
+@iftex
+This note shows the different parts of examples like this:
+@table @asis
+@item @code{Computer output is shown in typewriter font.}
+@item @b{Your input is indicated by a sans-serif font.}
+@item @i{Comments appear in italic font}.
+@end table
+@end iftex
+In examples, we show the system prompt as @samp{eg$}.
+
+The Cygnus Progressive--||RELNO|| tape contains two separate @code{tar}
+files.  The first file contains a script called @code{Install};
+the second file contains the Progressive software.  To get
+the software onto your system, you need to make sure you have the space
+you'll need for it, and get the @code{Install} script off the tape.
+Then you can use the @code{Install} script to choose what else to
+install.
+
+Here is more detail about what to do.  Two checklists follow.  The first
+checklist shows what to do if you have a tape drive on the same system
+(a ||HOST||) where you want to install the Developer's Kit; the
+second shows how to use another networked machine to read the tape, then
+finish the installation on your ||HOST||.  
+
+Both checklists give the procedure for installing the Developer's Kit
+under @file{/usr/cygnus} (which can be a symbolic link from somewhere
+else, if you like).  We recommend you use this location for the
+software, because the precompiled, ready-to-run versions of the tools
+are configured this way.  (If you want to use a different location, and
+cannot establish a symbolic link from it to @file{/usr/cygnus}, please
+see @ref{Install-Options,,Installation Options}.  To use the software
+conveniently after installing elsewhere, you should reconfigure and
+recompile from source; see @ref{Paths,,Changing the Paths}.)
+
+Both checklists are very similar to @ref{Brief,,Installing in Brief},
+but provide more discussion of each step, and offer alternatives for
+tape drives, for systems whose available disk space is not in
+@code{/usr}, and for installing only portions of the Developer's Kit.
+
+@menu
+* local-install::               Installing with a local tape drive
+* cross-install::               Installing with another machine's tape drive
+@end menu
+
+@node local-install, cross-install, Installing, Installing
+@unnumberedsubsec Installing in @file{/usr/cygnus}, with a local tape drive
+
+This procedure is for a ||HOST|| that has its own tape drive.  
+
+Installing this way will install all the source code, plus the binaries for
+the ||HOST||.  If you don't want both source and binaries, stop after
+extracting @code{Install} from the tape, and read about what options you
+can use with @code{Install} in @ref{Install-Options,,Installation
+Options}.  For examples of variations on what to install,
+@xref{Examples,,Installation Examples}.
+
+@enumerate
+@item
+find out the name of the @emph{non-rewinding} tape device on your
+machine that can read the release tape.  Cygnus release tapes are
+labelled to identify the kind of tape used---either ||TAPdflt|| or Exabyte.
+@ifset HOSTiris
+You must also be certain to use a @emph{non-byte-swapping} tape device.
+See @samp{man tps} for details.
+@end ifset
+@ifset HOSTrs6000
+On RS/6000 systems, you can find details on tape drives in
+@samp{man rmt}.
+@end ifset
+
+
+You should use one of the following devices:
+@table @emph
+@item ||TAPdflt|| tapes
+Use @file{||DEVdflt||} where the examples show @code{/dev/@var{tape}}.
+
+@item Exabyte tapes
+The device name depends on how your Exabyte tape drive was installed;
+ask your system administrator.  
+@ifset HOSTsun4
+You will probably use one of
+@file{/dev/nrst0} or @file{/dev/nrst1} where we show
+@code{/dev/@var{tape}}.
+@end ifset
+@ifset HOSTsun3
+You will probably use one of
+@file{/dev/nrst0} or @file{/dev/nrst1} where we show
+@code{/dev/@var{tape}}.
+@end ifset
+@end table
+
+@item
+Check that you have enough space available (@pxref{Requirements,,System
+Requirements}) in @file{/usr}.  You can use @samp{df /usr} to check.
+
+@item
+Check whether there's already a @file{/usr/cygnus} directory, and
+whether you can write in it.  Typing the following line checks both:
+
+@cartouche
+@example
+eg$ @b{touch /usr/cygnus/test; rm /usr/cygnus/test}
+@end example
+@end cartouche
+
+@noindent
+@emph{If you get no errors from this line, skip the next step.}
+
+@item
+If you got ``No such file or directory'' or ``Permission denied''
+errors, you need to sign on (or @code{su}) to an account that has
+permission to write in @file{/usr} or in an existing @file{/usr/cygnus}
+directory.  If only @code{root} has access, the best procedure is to
+@code{su root} @emph{briefly}, to create a writable
+@file{/usr/cygnus}---then return to your usual sign-on.  For instance:
+
+@cartouche
+@example
+eg$ @b{su root}
+password:           @i{enter root password}
+# @b{mkdir /usr/cygnus}        @i{ignore ``File exists'' error if any}
+# @b{chmod 777 /usr/cygnus}
+# @b{exit}              @i{root access not needed beyond this}
+eg$
+@end example
+@end cartouche
+
+If you don't have access to @code{root} or to any account with
+permission to write in @file{/usr} or @file{/usr/cygnus}, see @ref{No
+access,,No Access to @file{/usr/cygnus}}.
+
+@item
+Load the Cygnus Support release tape (labelled ``Progressive--||RELNO||'') into
+your system's tape drive.
+
+@item
+Extract the @code{Install} script (remember, @var{tape} stands for the
+device name for the appropriate tape drive on your system):
+
+@cartouche
+@example
+eg$ @b{cd /tmp}
+eg$ @b{tar xfv /dev/@var{tape} Install}
+@end example
+@end cartouche
+
+@c UPDATE! Check error messages from tar on non-Suns when supported
+If you get any error messages beginning ``tar: can't open'', check that
+the tape is correctly placed in your tape drive, and that you typed the
+right name for @var{tape}.
+
+It doesn't really matter where you put @code{Install}, though these
+examples assume @file{/tmp}.  Don't worry about losing the script after
+you've done the install; when you extract anything from the tape,
+another copy of @code{Install} is saved (for future reference) in
+@file{/usr/cygnus/progressive-||RELNO||}.
+
+@quotation
+@emph{If you don't want both source and binaries, stop now,} and read about
+what options you can use with @code{Install} in
+@ref{Install-Options,,Installation Options}.  For examples of variations
+on what to install, @xref{Examples,,Installation Examples}.
+@end quotation
+
+@item
+Now you can extract all the software by running @code{Install}.  Use
+the @samp{-tape=} option to identify your tape drive:
+
+@cartouche
+@example
+eg$ @b{/tmp/Install -tape=/dev/@var{tape}}
+@end example
+@end cartouche
+
+This is a time-consuming step.  @code{Install} will begin by using
+@code{tar} to extract software for your system, leaving a log in
+@file{/usr/cygnus/tar.log}.  Then it prepares copies of your system
+header files, converted to comply with @sc{ansi} C
+(@pxref{Why-fixincludes,,Why Convert System Header Files?}); a log for
+this step goes in
+@file{/usr/cygnus/progressive-||RELNO||/fixincludes.log}.  @emph{Your
+system's original header files are not changed;} @code{Install} writes
+the converted copies in a separate, @sc{gcc}-specific directory.
+
+As it executes, @code{Install} displays occasional messages to keep you
+informed about which of these steps it's executing.  Among them, these
+messages mark completion of the major stages of installation:
+
+@cartouche
+@example
+Cygnus Support software distribution extracted!
+
+Fixed include files installed!
+
+Cygnus Support software distribution tested!
+
+Done.
+@end example
+@end cartouche
+
+@ifset HOSTrs6000
+If the test step fails on a @samp{.s} file, you may not have the
+correct assembler from IBM installed.  @xref{Requirements,,System
+Requirements}.
+@end ifset
+
+@item
+Now that the software is on your system, you need to arrange for users
+to run it conveniently.  We recommend the following links; see
+@ref{Links,,Links for Easy Access and Updating}, for a discussion.
+
+@cartouche
+@example
+eg$ @b{cd /usr/cygnus}
+eg$ @b{ln -s progressive-||RELNO|| progressive}
+
+eg$ @b{su root}            @i{root privileges may be needed}
+password:               @i{to put link in /usr}
+# @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
+# exit                  @i{give up root privileges as soon as possible}
+@end example
+@end cartouche
+
+@item
+Finally, in case you need to send problem reports to Cygnus, we've
+included a script @code{send_pr} (and a supporting online template) to
+structure and transmit your reports.  Please use the
+script @code{install_cid} to record your Cygnus customer ID in your copy
+of the problem report form.  (You can find your customer ID in the cover
+letter that came with this release; or call the Cygnus hotline, 
+@w{+1 415 322 7836}.)  This will enable us to respond as quickly as
+possible to any problem reports you send.
+
+@cartouche
+@example
+eg$ @b{/usr/cygnus/progressive-||RELNO||/H-||HOSTstr||/bin/install@t{_}cid @var{ID}}
+install_cid: `@var{ID}' is now the default customer ID
+ for send_pr
+@end example
+@end cartouche
+
+@item
+We recommended permissions @code{777} for the @file{/usr/cygnus}
+directory, to be sure you could run this procedure.  However, for the
+long term, it is usually not a good idea to leave directories
+world-writable (especially directories where executables come from).
+
+For better security, remove public write access from @file{/usr/cygnus}.
+See your System Administrator for the correct permissions at your site.
+@end enumerate
+
+You're done!  Anyone who puts @samp{/usr/progressive/bin} in her or his
+@code{PATH} can use the Developer's Kit.
+
+@node cross-install,  , local-install, Installing
+@unnumberedsubsec Installing in @file{/usr/cygnus}, with another machine's tape drive 
+This checklist is for a ||HOST|| that does not have its own tape drive,
+but can share a file system with another machine that does have a tape
+drive.  The other machine need not be a ||HOST||.  
+
+Installing this way will install all the source, plus the binaries for
+the ||HOST||.  If you don't want both source and binaries, stop after
+extracting @code{Install} from the tape, and read about what options you
+can use with @code{Install} in @ref{Install-Options,,Installation
+Options}.  For examples of variations on what to install,
+@xref{Examples,,Installation Examples}.
+
+@enumerate
+@item
+find a machine with a suitable tape drive on the same network as your
+||HOST||, and sign on to it.  If the only machine with a tape
+drive isn't on the network, @pxref{No Drive,,No Local Tape Drive}.
+
+@item
+find out the name of the @emph{non-rewinding} tape device on the machine
+that can read the release tape.  Cygnus release tapes are labelled to
+identify the kind of tape used---either ||TAPdflt||, or Exabyte.
+
+You should use one of the following devices on ||HOST|| (or
+compatible) systems:
+@table @emph
+@item ||TAPdflt|| tapes
+Use @file{||DEVdflt||} where the examples show @code{/dev/@var{tape}}.
+
+@item Exabyte tapes
+The device name depends on how your Exabyte tape drive was installed;
+check with your system administrator.  
+@ifset HOSTsun4
+You will probably use one of
+@file{/dev/nrst0} or @file{/dev/nrst1} where the example shows
+@code{/dev/@var{tape}}.
+@end ifset
+@ifset HOSTsun3
+You will probably use one of
+@file{/dev/nrst0} or @file{/dev/nrst1} where the example shows
+@code{/dev/@var{tape}}.
+@end ifset
+@end table
+
+@item
+Choose a directory where you will install the Developer's Kit.  The
+directory must be accessible from both machines (the one with the tape
+drive, and the ||HOST|| where you want to use the software)---for
+example, over NFS.  Wherever this note uses @var{shr}, substitute the
+name of the directory you chose.
+
+The shared directory need not have the same name on both machines,
+though we show it as @var{shr} on both, for simplicity.
+
+@item
+Check that you have enough space available (@pxref{Requirements,,System
+Requirements}) in @var{shr}.  You can use @samp{df @var{shr}} to check.
+
+@item
+Check whether there's already a @file{@var{shr}/cygnus} directory,
+and whether you can write in it.  Typing the following line checks both:
+
+@cartouche
+@example
+eg$ @b{touch @var{shr}/cygnus/test; rm @var{shr}/cygnus/test}
+@end example
+@end cartouche
+
+@noindent
+@emph{If you get no errors from this line, skip the next step.}
+
+@item
+If you got ``No such file or directory'' or ``Permission denied''
+errors, you need to sign on (or @code{su}) to an account that has
+permission to write in @var{shr} or in an existing
+@file{@var{shr}/cygnus} directory.  If only @code{root} has access,
+the best procedure is to @code{su root} @emph{briefly}, and create a writable
+@file{@var{shr}/cygnus}---then return to your usual sign-on.  For
+instance:
+
+@cartouche
+@example
+eg$ @b{su root}
+password:           @i{(enter root password)}
+# @b{mkdir @var{shr}/cygnus}      @i{(ignore ``File exists'' error if any)}
+# @b{chmod 777 @var{shr}/cygnus}
+# @b{exit}              @i{root access not needed beyond this}
+eg$
+@end example
+@end cartouche
+
+@item
+Load the Cygnus Support release tape (labelled ``Progressive--||RELNO||'') into
+the tape drive.  In these examples, @var{tape} stands for the
+device name for the appropriate tape drive on your system.
+
+@item
+The first file on the tape is a script called @code{Install}.
+That script automates most of the installation procedure---but first you
+need to bootstrap the installation by getting @code{Install} itself from
+the tape.  It doesn't really matter where you put this initial
+copy of @code{Install}; it is only used to get things started---these
+examples assume you put it in @file{/tmp}.  When you use this copy of
+@code{Install} to extract software from the tape, another copy of
+@code{Install} will be saved in
+@file{@var{shr}/cygnus/progressive-||RELNO||}.  Later, you will use that
+second copy to finish the installation on your ||HOST||.
+
+These commands will get @code{Install} into the @file{/tmp} directory
+(remember, @var{tape} stands for the device name for the appropriate
+tape drive on your system):
+
+@cartouche
+@example
+eg$ @b{cd /tmp}
+eg$ @b{tar xfv /dev/@var{tape} Install}
+@end example
+@end cartouche
+
+@noindent
+@c UPDATE! tar error messages on other hosts?
+If you get any error messages beginning with something like ``tar: can't
+open'', check that the tape is correctly placed in your tape drive, and
+that you typed the right name for @var{tape}.
+
+@quotation
+@emph{If you don't want both source and binaries, stop now,} and read about
+what options you can use with @code{Install} in
+@ref{Install-Options,,Installation Options}.  For examples of variations
+on what to install, @xref{Examples,,Installation Examples}.
+@end quotation
+
+@item
+Now you can extract all the software by running @samp{Install extract}.
+Use the @samp{-tape=} option to identify your tape drive, and the
+@w{@samp{-installdir=}} option to point to the @var{shr} directory.
+
+@cartouche
+@example
+eg$ @b{cd /tmp}
+eg$ @b{./Install extract -tape=/dev/@var{tape} -installdir=@var{shr}/cygnus}
+@end example
+@end cartouche
+
+This is a time-consuming step.  @code{Install} will use @code{tar} to
+extract software for your system, leaving a log in the file
+@file{@var{shr}/cygnus/tar.log}.
+
+When @code{Install} is done extracting the tape contents, it
+displays the messages
+
+@cartouche
+@example
+Cygnus Support software distribution extracted!
+Done.
+@end example
+@end cartouche
+
+@item
+Log on to the ||HOST|| where you want to use the software.
+
+@item
+Create a symbolic link from @file{@var{shr}/cygnus/progressive-||RELNO||}
+to @file{/usr/cygnus/progressive-||RELNO||} on your ||HOST||.  You may
+need to become @code{root} @emph{briefly}, as in this example:
+
+@iftex
+@widen{1pc}
+@end iftex
+@cartouche
+@example
+eg-||HOSTstr||$ @b{su root}
+password:
+# @b{mkdir /usr/cygnus}        @i{(ignore ``File exists'' error if any)}
+# @b{chmod 777 /usr/cygnus}
+# @b{ln -s @var{shr}/cygnus/progressive-||RELNO|| /usr/cygnus/progressive-||RELNO||}
+# exit              @i{root access not needed beyond this}
+@end example
+@end cartouche
+@iftex
+@widen{-1pc}
+@end iftex
+
+@noindent
+If you don't have access to any account with permission to write in
+@file{/usr}, @pxref{No access,,No Access to @file{/usr/cygnus}}.
+
+@item
+Fix up system header files on your ||HOST||, and test the installation, with
+the copy of @code{Install} that was placed in
+@file{@var{shr}/cygnus/progressive-||RELNO||}:
+
+@cartouche
+@example
+eg-||HOSTstr||$ @b{cd /usr/cygnus/progressive-||RELNO||}
+eg-||HOSTstr||$ @b{./Install @b{f}ixincludes test}
+@end example
+@end cartouche
+
+@noindent
+A log for the @code{fixincludes} step goes in
+@file{/usr/cygnus/progressive-||RELNO||/fixincludes.log}.  @emph{Your
+system's original header files are not changed;} @code{Install} writes
+the converted copies in a separate, @sc{gcc}-specific directory.
+
+When each stage of this work is complete, @code{Install} displays these
+messages (the last, @samp{Done.}, simply indicates that @code{Install}
+has finished executing).
+
+@cartouche
+@example
+Fixed include files installed!
+
+Cygnus Support software distribution tested!
+
+Done.
+@end example
+@end cartouche
+
+@ifset HOSTrs6000
+If the test step fails on a @samp{.s} file, you may not have the
+correct assembler from IBM installed.  @xref{Requirements,,System
+Requirements}.
+@end ifset
+
+@item
+Now that the software is on your system, you need to arrange for users
+to run it conveniently.  We recommend the following links; see
+@ref{Links,,Links for Easy Access and Updating}, for a discussion.
+
+@cartouche
+@example
+eg-||HOSTstr||$ @b{cd /usr/cygnus}
+eg-||HOSTstr||$ @b{ln -s progressive-||RELNO|| progressive}
+
+eg-||HOSTstr||$ @b{su root}      @i{root privileges may be needed}
+password:               @i{to put link in /usr}
+# @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
+# exit                  @i{give up root privileges as soon as possible}
+@end example
+@end cartouche
+
+@item
+Finally, in case you need to send problem reports to Cygnus, we've
+included a script @code{send_pr} (and a supporting online form) to
+structure and transmit your reports.  Please use the
+script @code{install_cid} to record your Cygnus customer ID in your copy
+of the problem report form.  (You can find your customer ID in the cover
+letter that came with this release; or call the Cygnus hotline, 
+@w{+1 415 322 7836}.)  This will enable us to respond as quickly as
+possible to any problem reports you send.
+
+@cartouche
+@example
+eg$ @b{/usr/cygnus/progressive-||RELNO||/H-||HOSTstr||/bin/install@t{_}cid @var{ID}}
+install_cid: `@var{ID}' is now the default customer ID
+ for send_pr
+@end example
+@end cartouche
+
+@item
+We recommended permissions @code{777} for the @file{/usr/cygnus} and
+@file{@var{shr}/cygnus} directories, to make sure you could run this
+procedure.  However, for the long term, it is usually not a good idea to
+leave directories world-writable (especially directories where
+executables come from).
+
+For better security, remove public write access from @file{/usr/cygnus}
+and @file{@var{shr}/cygnus}.  See your System Administrator for the
+correct permissions at your site.
+@end enumerate
+
+You're done!  Anyone who puts @samp{/usr/progressive/bin} in her or his
+@code{PATH} can use the Developer's Kit.
+
+@node Examples, Install-Options, Installing, Top
+@unnumbered Installation Examples
+
+Once you've extracted @code{Install} from your tape,
+you can tell @code{Install} what software to install, what form of the
+programs you need, and what installation steps to do.  Here are some
+examples covering common situations.  For a full explanation of each
+possible @code{Install} argument, @pxref{Install-Options,,Installation
+Options}.
+
+@code{Install}'s default tape drive is @code{||DEVdflt||}, which is
+right for the most common cases (||TAPdflt|| tapes, read on ||HOST||
+systems).  If your tape drive is different, you need to use the
+@samp{-tape=/dev/@var{tape}} option; the examples show this option
+for completeness.  Remember to specify a @emph{non-rewinding} tape
+device.
+
+@menu
+* binaries::                    Installing binaries only
+* ||HOSTstr||-remote::          Reading tape on any machine, finishing on ||HOST||
+* source-remove::               Removing Source
+@end menu
+
+@node binaries, ||HOSTstr||-remote, Examples, Examples
+@unnumberedsubsec Installing binaries only
+@ignore
+@c ignore til UPDATE fulfilled for all hosts.
+For this example, we assume you've got the release on an Exabyte tape,
+and that your ||HOST|| reads Exabytes with 
+@samp{/dev/nrst1}.
+@c UPDATE! exabyes on non-Sun hosts?
+@end ignore
+
+@cartouche
+@example
+@c eg$ @b{./Install -tape=/dev/nrst1 bin}
+eg$ @b{./Install -tape=/dev/@var{tape} bin}
+@end example
+@end cartouche
+
+If you don't want the source---for instance, to save space---you can use
+the argument @samp{bin}.
+
+@node ||HOSTstr||-remote, source-remove, binaries, Examples
+@unnumberedsubsec Reading tape on any machine, finishing on ||HOST||
+
+@cartouche
+@example
+@emph{On a machine on your network with a tape drive:}
+eg-tp$ @b{./Install -tape=/dev/@var{tape} -installdir=@var{shr}/cygnus extract}
+
+@emph{On your ||HOST||}
+eg$ @b{ln -s @var{shr}/cygnus /usr/cygnus}
+eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
+eg$ @b{./Install @b{f}ixincludes test}
+@end example
+@end cartouche
+
+@noindent
+If your ||HOST|| doesn't have a tape drive, but another machine that can
+mount some shared directory @var{shr} does have one, you can carry out
+the first step of the installation from the machine with a tape drive,
+as shown.  Note that you have to say @samp{extract} on the
+@code{Install} command line.  This alerts @code{Install} to stop the
+install procedure after it reads the tape.  You still have to finish the
+installation, but the last two steps have to run on your ||HOST||.  (If
+you forget, there's no great harm done: @code{Install} will notice that
+it can't carry out a full installation on the wrong machine, and will
+stop with an error message---then you can go back and try again.  When
+@code{Install} notices a problem like this, it doesn't carry out
+@emph{any} action other than giving a helpful error message).
+
+The @samp{fixincludes} part of the installation is essential.  Please
+see the full explanation (@pxref{Why-fixincludes,,Why Convert System
+Header Files?}), if you're curious.
+
+@node source-remove,  , ||HOSTstr||-remote, Examples
+@unnumberedsubsec Removing Source
+The @code{Install} script can remove anything it can install.  For
+example, if after installing the complete Developer's Kit on your
+machine you decide to remove the source files:
+
+@cartouche
+@example
+eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
+eg$ @b{./Install remove source}
+@end example
+@end cartouche
+
+@noindent
+In general, to remove a part of the Developer's Kit, use the same
+@code{Install} command line that would extract that part, but add the
+keyword @code{remove}.  The @code{-tape} option is not necessary for
+removing.
+
+@node Install-Options, Links, Examples, Top
+@unnumbered Installation Options
+
+There are two kinds of command-line arguments to @code{Install}, which
+you can use to direct its operation:
+@itemize @bullet
+@item
+@emph{What form of the programs} to install.  You can choose among ||HOST||
+binaries (argument @code{bin}) and source code (@code{source}).
+If you don't specify either of these, @code{Install} assumes you want
+both source, and binaries for ||HOST||.
+
+@item
+@emph{What installation actions} to carry out.  A full installation
+involves up to three steps, and @code{Install} has options to let you
+choose them explicitly.  The steps are
+@enumerate
+@item
+extracting source from the tape (option
+@code{extract})
+@item
+writing @sc{ansi}-C conforming copies of your system include files (needed
+for the compilation tools; option @code{fixincludes})
+@item
+running a simple test of the installed programs
+(option @code{test})
+@end enumerate
+
+The last two of these actions (@code{fixincludes} and
+@code{test}) can only run on your ||HOST||.  If you read the
+tape on another machine, you must specify the @code{extract} option
+explicitly, to indicate that you don't expect the other two actions to
+run (and are aware of the need to run further installation steps on your
+||HOST||).
+@end itemize
+
+@code{Install} also has two command line options: @samp{-tape}
+and @w{@samp{-installdir}}.  You can use these to adapt the
+installation to your system.
+
+Here is a summary of all of @code{Install}'s command-line options,
+followed by a more detailed explanation of each:
+
+@example
+Install @r{[} -tape=/dev/@var{tape} @r{]}
+       @r{[} -installdir=@var{directory} @r{]}
+       @r{[} bin @r{]} @r{[} source @r{]}
+       @r{[} extract @r{]} @r{[} fixincludes @r{]} @r{[} test @r{]}
+       @r{[} remove @r{]}
+@end example
+
+@table @code
+@item -tape=/dev/@var{tape}
+@itemx -tape=@var{tarfile}
+Specify the @emph{non-rewinding} device name for your tape drive as
+@var{tape}.
+
+If you extract the installation script and tarfile on some other system,
+and transfer them to your ||HOST|| for installation, use use the name of
+the tarfile instead of a device name with @samp{-tape}.  @xref{No
+Drive,,No Local Tape Drive}, for more discussion.
+
+@item -installdir=@var{directory}
+If you have no write access to @samp{/usr/cygnus} or @samp{/usr}, use
+this option to specify an alternate @var{directory} for placing your
+software---but beware: the software is configured to go in
+@samp{/usr/cygnus}, and you'll have to override or change that too.
+@xref{Paths,,Changing the Paths}.
+
+@item bin
+@itemx source
+By default, @code{Install} extracts both source, and binaries for your
+||HOST||.  Instead of relying on the default, you 
+can use these options to say exactly what forms you
+want.  You need to do this if
+@itemize @bullet
+@item 
+you want only binaries, or
+@item
+you want only source.
+@end itemize
+
+@noindent
+@code{Install} is designed to share files, wherever
+possible, between installations for different hosts (of the same
+release).  If you get Cygnus release tapes configured for different
+hosts, there is no need to do a binary-only install of some of the
+tapes to save space on a shared file system; @code{Install} arranges the
+files so that all hosts will share the same source
+files.  Documentation files are shared as well.
+See @ref{Links,,Links for Easy Access and Updating}, for a
+discussion of how to manage the directory structure used for this
+purpose. 
+
+@item extract
+@item fixincludes
+@item test
+A full installation includes up to three things: (1) extracting
+software from the tape; (2) creating @sc{ansi}-C conforming copies of your
+system's standard header files; and (3) testing the installation.
+You can execute these steps separately by specifying
+@samp{extract}, @samp{fixincludes}, or @samp{test} on the
+@code{Install} command line.  
+
+After you run @samp{extract}, @samp{fixincludes} is essential if you're
+using the compiler.  @samp{fixincludes} @emph{does not change your
+system's original header files;} @code{Install} writes the converted
+copies in a separate, @sc{gcc}-specific directory.
+@xref{Why-fixincludes,,Why Convert System Header Files?}, for more
+discussion of the @samp{fixincludes} step.  @code{Install} will only
+attempt these last two steps if you run it on the ||HOST||.
+
+@samp{test} is a confidence-building step, and doesn't
+actually change the state of the installed software.  The
+@samp{test} step may not make sense, depending on what
+other options you've specified---if you install only source, there's
+nothing to test.
+
+If you specify a step that doesn't make sense, or if you run @code{Install}
+on a different machine but try to run @code{fixincludes} or
+@code{test}, @code{Install} will notice the error, and exit
+(before doing anything at all) with an error message, so you can try
+again.
+
+When you run @samp{extract}, @code{Install} leaves a log file
+@file{tar.log} in the installation directory---by default, in @file{/usr/cygnus}.  When you run @samp{fixincludes},
+@code{Install} leaves a log file @file{fixincludes.log} in the
+@file{progressive-||RELNO||} subdirectory.
+
+@item remove
+You can also use @code{Install} to remove parts of the release after
+you've installed them.  Identify what to remove with either of the
+command-line options @samp{source} or @samp{bin}; if you specify
+@samp{remove} as well, @code{Install} will try to erase parts of the
+installation from your system.  @xref{Removing,,Removing Parts of the Developer's
+Kit}, for an example.
+@end table
+
+@menu
+* Why-fixincludes::             Why Convert System Header Files?
+@end menu
+
+@node Why-fixincludes,  , Install-Options, Install-Options
+@unnumberedsec Why Convert System Header Files?
+
+@c UPDATE! Is this really needed on @emph{all} hosts?
+It is very important to run @samp{Install fixincludes} (on @emph{each
+host} where you install the compiler binaries).  
+
+When the @sc{ansi x3j11} committee finished developing a standard for
+the C language, a few things that had worked one way in many traditional
+C compilers ended up working differently in @sc{ansi} C.  Most of these
+changes are improvements.  But some Unix header files still rely on the
+old C meanings, in cases where the Unix vendor has not yet converted to
+using an @sc{ansi} C compiler for the operating system itself.
+@samp{Install fixincludes} does a mechanical translation that writes
+@sc{ansi} C versions of some system header files into a new,
+@sc{gcc}-specific include directory---@emph{your system's original
+header files are not affected.}
+
+If you don't run @code{fixincludes}, the GNU C compiler can only use the
+original system header files when you compile new C programs.  @emph{In
+some cases, the resulting programs will fail at run-time}.
+
+@node Links, Running, Install-Options, Top
+@unnumbered Links for Easy Access and Updating
+Once you've extracted them from the tape, the tools are installed under
+a directory named @file{progressive-||RELNO||}.  We put the release
+number in the directory name so that you can
+keep several releases installed at the same time, if you wish.  In order
+to simplify administrative procedures (such as upgrades to future Cygnus
+Progressive releases), we recommend that you establish a symbolic link
+@file{/usr/cygnus/progressive} to this directory.  For example, assuming
+you've used the default installation path:
+
+@cartouche
+@example
+eg$ @b{cd /usr/cygnus}
+eg$ @b{ln -s progressive-||RELNO|| progressive}
+@end example
+@end cartouche
+
+Directories of host-independent files (source and documentation) are
+installed directly under @file{progressive-||RELNO||}.  However, to
+accomodate binaries for multiple hosts in a single directory structure,
+the binary files for your ||HOST|| are in a subdirectory
+@file{H-||HOSTstr||}. 
+
+This means that one more level of symbolic links is helpful, to allow
+your users to keep the same execution path defined even if they
+sometimes use ||HOST|| binaries and sometimes binaries for another
+machine.  Even if this doesn't apply now, you might want it in the
+future; establishing these links now can save your users the trouble of
+changing all their paths later.  The idea is to build
+@samp{/usr/progressive/bin} on each machine so that it points to the
+appropriate binary subdirectory for each machine---for instance,
+@samp{/usr/cygnus/progressive/H-||HOSTstr||}.
+
+You may need to use @code{su} again briefly to establish these links:
+
+@cartouche
+@example
+eg$ @b{ln -s /usr/cygnus/progressive/H-||HOSTstr|| /usr/progressive}
+@end example
+@end cartouche
+
+We recommend building these links as the very last step in the
+installation process.  That way, users at your site will only see
+software in @file{/usr/progressive} when you're satisfied that the
+installation is complete and successful.
+
+@menu
+* Running::                     Running the Programs
+@end menu
+
+@node Running, Paths, Links, Top
+@unnumbered Running the Programs
+Any users who wish to run the Cygnus development tools will need to make
+sure the @code{PATH} environment variable will find them.  If you create
+the symbolic links we recommend above, users who want to run the
+Developer's Kit---regardless of whether they need binaries for ||HOST||,
+or for some other platform---can use settings like one of the following
+in their initialization files.
+
+@example
+@exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
+@cartouche
+@b{PATH=/usr/progressive/bin:$PATH}
+@b{export PATH}
+@end cartouche
+@end example
+
+@example
+@exdent For C shell:
+@cartouche
+@b{set path=(/usr/progressive/bin $path)}
+@end cartouche
+@end example
+
+@noindent
+You should also ensure that your @code{man} command can pick up the
+manual pages for these tools.  Some @code{man} programs recognize a
+@code{MANPATH} environment variable.  If your @code{man} program is one
+of these, users at your site can also include in their initialization
+file lines like 
+
+@example
+@exdent For Bourne-compatible shells:
+@cartouche
+@b{MANPATH=/usr/cygnus/progressive/man:$MANPATH:/usr/man}
+@b{export MANPATH}
+@end cartouche
+@end example
+
+@example
+@exdent For C shell:
+@cartouche
+@b{setenv MANPATH /usr/cygnus/progressive/man:$MANPATH:/usr/man}
+@end cartouche
+@end example
+
+If your @code{man} program doesn't recognize @samp{MANPATH}, you may
+want to copy or link the files from
+@file{progressive/man/man1} into your system's
+@file{man/man1}. @refill
+
+@node Paths, Trouble, Running, Top
+@unnumbered Changing the Paths
+The binaries shipped by Cygnus are configured for installation under the
+directory @file{/usr/cygnus}.  In particular, @code{gcc}, @code{g++},
+and the documentation browser @code{info} need to know the location of
+the distribution.  
+
+If you wish to run the tools after installing them in another location,
+you can either:
+@itemize @bullet
+@item
+use environment variables (and, for @code{g++}, command-line options)
+to tell the tools where to find pieces of the installation; or
+
+@item
+rebuild the tools from source, with your preferred paths built in.
+@xref{Rebuilding,,Rebuilding from Source}, if you want to take this
+approach.
+@end itemize
+
+In rare circumstances, the auxiliary installation script
+@code{install_cid} will also require a workaround if you do not install
+in @file{/usr/cygnus}.
+
+@subheading GCC Paths
+@c FIXME! Add something about specs file?
+You can run the compiler @sc{gcc} without recompiling, even if you
+install the distribution in an alternate location, by first setting the
+environment variable @samp{GCC_EXEC_PREFIX}.  This variable specifies
+where to find the executables, libraries, and data files used by the
+compiler.  Its value will be different depending on which set of
+binaries you need to run.  For example, if you install the tape
+distribution under @file{/local} (instead of the default
+@file{/usr/cygnus}), and you wish to run @sc{gcc} as a native ||HOST||
+compiler, you could set @samp{GCC_EXEC_PREFIX} as follows.  (You can
+type the first two lines as a single line, if you like; the example
+is split using the line continuation character @samp{\} only
+to make it fit on the printed page.)
+
+@cartouche
+@example
+@b{GCC@t{_}EXEC@t{_}PREFIX=/local/progressive-||RELNO||/H-||HOSTstr||/@t{\}
+lib/gcc-lib/||TARGET||/||GCCvn||/}
+@b{export GCC@t{_}EXEC@t{_}PREFIX}
+@end example
+@end cartouche
+
+@noindent
+The example assumes you use a shell compatible with the Bourne shell; if
+you run the C shell, use the following instead.  (Again, the line
+continuation character @samp{\} is only used for convenience in the
+example; feel free to use a single line.)
+
+@cartouche
+@example
+@b{setenv GCC@t{_}EXEC@t{_}PREFIX /local/progressive-||RELNO||/H-||HOSTstr||/@t{\}
+lib/gcc-lib/||TARGET||/||GCCvn||/}
+@end example
+@end cartouche
+
+@quotation
+@emph{Warning: The trailing slash @samp{/} is important}.  The @code{gcc}
+program uses @samp{GCC_EXEC_PREFIX} simply as a prefix.  If you omit the
+slash (or make any other mistakes in specifying the prefix), @code{gcc}
+will fail with a message beginning @samp{installation problem, cannot
+exec@dots{}}.
+@end quotation
+
+@subheading G++ Paths
+To compile C++ programs (when you've installed the binaries for the
+compiler somewhere other than @file{/usr/cygnus}), you need to set
+@code{GCC_EXEC_PREFIX} as for C programs.  You @emph{also} need to include
+a @samp{-L} option and a @samp{-I} option on the @code{g++} command
+line, to locate the @sc{g++} specific header files and library.  For example,
+assuming you installed the ||HOST|| binaries under @file{/local}, and
+want to compile a C++ program @samp{program.cc}:
+
+@enumerate
+@item
+Set @code{GCC_EXEC_PREFIX} in one of the ways shown above;
+
+@item
+Invoke the @code{g++} compiler with at least the following options:
+@end enumerate
+@cartouche
+@example
+eg$ @b{g++ -L/local/progressive-||RELNO||/H-||HOSTstr||/lib@t{\}
+-I/local/progressive-||RELNO||/H-||HOSTstr||/lib/g++-include program.cc}
+@end example
+@end cartouche
+
+@subheading @code{info} Paths
+The standalone documentation browser @code{info} also needs to know the
+location of its documentation files in the distribution.   The default
+location, @file{/usr/cygnus/progressive-||RELNO||/info}, is compiled in.
+If you install elsewhere, set the environment variable @code{INFOPATH}
+to indicate the alternate location.
+
+For example, again assuming you installed under @file{/local}:
+
+@example
+@exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
+@cartouche
+@b{INFOPATH=/local/progressive-||RELNO||/info}
+@b{export INFOPATH}
+@end cartouche
+@end example
+
+@example
+@exdent For C shell:
+@cartouche
+@b{setenv INFOPATH /local/progressive-||RELNO||/info}
+@end cartouche
+@end example
+
+@noindent
+If you built @file{progressive} as a symbolic link to
+@file{progressive-||RELNO||}, as recommended in @ref{Links,,Links for
+Easy Access and Updating}, then you could simply use
+@file{/local/progressive/info} as the value of @code{INFOPATH} in the
+examples above.
+
+@subheading @code{install_cid} Paths
+The auxiliary script @code{install_cid} is provided as a convenience, to
+fill in your site's customer ID as the default for your local version of
+the Cygnus @code{send_pr} problem-reporting script.
+
+If you don't install in @file{/usr/cygnus}, @samp{install_cid
+@var{ID}} will still work correctly in most cases.  However,
+there is one situation where @code{install_cid} fails:
+
+@itemize @bullet
+@item
+@emph{if} your site already has a release tree for
+@samp{/usr/cygnus/progressive-||RELNO||}, 
+@item
+@emph{and} you run @code{Install} with an alternative installation
+directory.
+@end itemize
+
+@noindent
+In this case, you must manually edit your customer ID into your site's
+copy of @code{send_pr}.  Please call the Cygnus hotline, 
+@w{+1 415 322 7836}, if you have any trouble with this.
+
+@node Trouble, Rebuilding, Paths, Top
+@unnumbered Some Things that Might go Wrong
+
+We've tried to make the installation of your Developer's Kit as painless
+as possible.  Still, some complications may arise.  Here are suggestions
+for dealing with some of them.
+
+@menu
+* No Drive::                    No Local Tape Drive
+* Limited Space::               Not Enough Space
+* No access::                   No Access to @file{/usr/cygnus}
+* Install errors::              Error Messages from @code{Install}
+@end menu
+
+@node No Drive, Limited Space, Trouble, Trouble
+@unnumberedsec No Local Tape Drive
+If your ||HOST|| doesn't have an appropriate tape drive, you may
+still be able to install your software.  Check with your system
+administrator to see if another machine at your site has a tape drive
+you can use.  If so:
+@table @emph
+@item If a shared filesystem is available
+between the two machines, and it has enough space, create
+@samp{/usr/cygnus} on your ||HOST|| (the one where you want to install
+this Progressive Release) as a symbolic link to a directory where the
+other machine (the one with a tape drive) can write.  Then go ahead and
+run @code{Install} from the machine with a tape drive.  You'll have to
+run @samp{Install fixincludes} and @samp{Install test} from your
+||HOST|| afterwards; @pxref{cross-install,,Installing with another
+machine's tape drive}.
+
+@item If some form of filetransfer is available 
+(such as @code{uucp}), read the tape using a system utility (for
+instance, @code{dd} on Unix systems; see the system documentation for
+the machine with a tape drive).  There are two files on the
+distribution tape; the first contains just the @code{Install} script,
+and the second is a compressed @code{tar} format file containing the
+rest of the release.  Read both of these files, and transfer them to
+your own machine.  Then run @code{Install} as shown in
+@ref{local-install,,Installing with a local tape drive}, but use
+@samp{-tape=@var{tarfile}} to specify the name of the installation
+file, instead of @samp{-tape=/dev/@var{tape}} as shown in the
+examples.  In the simplest case, for example (starting after you've
+transferred @code{Install} and the tar file to your system):
+
+@cartouche
+@example
+eg$ @b{./Install -tape=@var{tarfile}}
+@end example
+@end cartouche
+
+@end table
+
+@node Limited Space, No access, No Drive, Trouble
+@unnumberedsec Not Enough Space
+If you don't have enough space to install all of the tape
+distribution, you can instead extract only the compiled code, or only
+the source.
+
+The following table summarizes the approximate space (rounded up to the
+next megabyte) needed for source and binaries.
+There is a little overlap between the partial installations: the
+documentation, and documentation tools, are always installed.
+
+@table @r
+@item ||BD|| MB
+||HOST|| binaries
+
+@item ||SD|| MB
+source code for all programs
+
+@item ||DF|| MB
+||HOST|| total
+@end table
+
+You can easily extract these components independently of one another, by
+using the @samp{source} or @samp{bin} arguments to the @code{Install}
+script provided on your release tape.
+@xref{Install-Options,,Installation Options}.
+
+@node No access, Install errors, Limited Space, Trouble
+@unnumberedsec No Access to @file{/usr/cygnus}
+
+If you can't sign on to an account with access to write in @file{/usr}
+or @file{/usr/cygnus}, use the @samp{-installdir=@var{directory}} option
+to @code{Install} to specify a different installation directory, where
+you @emph{can} write.  For example, if all the other installation
+defaults are right, you can execute something like @samp{./Install
+-tape=/dev/@var{tape} -installdir=@var{mydir}}.  You'll need to either
+override default paths for the pre-compiled tools, or else recompile the
+software.
+
+@quotation
+@emph{WARNING:} If you can't install in @file{/usr/cygnus} (or link your
+installation directory to that name), some of the defaults configured
+into the Progressive--||RELNO|| distribution won't work.
+@xref{Paths,,Changing the Paths}, for information on overriding or
+reconfiguring these defaults.
+@end quotation
+
+@node Install errors,  , No access, Trouble
+@unnumberedsec Error Messages from @code{Install}
+The @code{Install} script checks for many errors and inconsistencies in
+the way its arguments are used.  The messages are meant to be
+self-explanatory.  Here is a list of a few messages where further
+information might be useful:
+@table @code
+@item Cannot read from TAPE device, @var{tape}
+The error message ends with the tape device @code{Install} was trying to
+use.  Please check that it is the device you intended; possible causes of
+trouble might include leaving off the @samp{/dev/} prefix at the front
+of the device name.  A typo in the device name might also cause this
+problem.  
+
+If the problem is neither of these things, perhaps your tape device can't
+read our tape; @pxref{No Drive,,No Local Tape Drive}, for a discussion
+of how to use another machine's tape drive.
+
+@item @dots{} This is a problem.
+@itemx Cannot cd to @var{installdir}
+@itemx I do not know why I cannot create @var{installdir}
+@itemx hello.c fails to run
+@itemx test-ioctl.c fails to run
+@itemx I do not know how to remove an arch called @dots{}
+These errors (the first covers anything that ends in @samp{This is a
+problem}) are from paranoia checks; they are issued for situations that
+other checks should have covered, or for unlikely situations that
+require further diagnosis.  
+
+If you get one of these messages, please 
+@itemize @bullet
+@item
+@strong{call the Cygnus hotline, +1 415 322 7836}, or 
+@item
+send electronic mail to @samp{help@@cygnus.com}. 
+@end itemize
+@end table
+
+@node Rebuilding, Removing, Trouble, Top
+@unnumbered Rebuilding From Source
+
+All Cygnus products are free software; your Developer's Kit includes
+complete source code for all programs.
+
+Cygnus Support has implemented an automatic configuration scheme to
+adapt the programs to different environments.
+
+Rebuilding the programs from source requires these steps:
+@enumerate
+@item
+configuration
+@item
+compilation
+@item
+installation
+@end enumerate
+
+For example, executing the following commands in sequence will rebuild
+and install a ||HOST|| native version of all the tools in a nonstandard
+directory:
+
+@cartouche
+@example
+eg$ @b{cd progressive-||RELNO||/src}
+
+eg$ @b{./configure ||HOSTstr|| -prefix=/local/gnu}
+Created "Makefile" in @var{installdir}/progressive-||RELNO||/src
+
+eg$ @b{make clean all info install install-info >make.log}
+@dots{} @i{output for @code{make} steps follows}
+@end example
+@end cartouche
+
+@noindent
+We discuss each step in detail in the following sections.
+
+@menu
+* Configuration::               Configuration
+* Config Names::                Specifying Names for Hosts and Targets
+* configure Options::           @code{configure} Options
+* Compilation::                 Compilation
+* Installation::                Installation
+@end menu
+
+@node Configuration, Config Names, Rebuilding, Rebuilding
+@unnumberedsec Configuration
+
+You can configure the software in this release by using the shell
+script called @code{configure}.  The shell script requires one argument:
+the host type.  There are also several possible options, including a
+@samp{-target=} option to configure for cross-system development.
+
+@node Config Names, configure Options, Configuration, Rebuilding
+@section Specifying Names for Hosts and Targets
+
+The specifications used for hosts and targets in the @code{configure}
+script are based on a three-part naming scheme, but some short predefined
+aliases are also supported.  The full naming scheme encodes three pieces
+of information in the following pattern:
+
+@example
+@var{architecture}-@var{vendor}-@var{os}
+@end example
+
+For example, you can use the alias @code{sun4} as a @var{host} argument
+or in a @samp{-target=@var{target}} option, but the equivalent full name
+is @samp{sparc-sun-sunos4}.
+
+@quotation
+@emph{Warning:} @code{configure} can represent a very large number of
+combinations of architecture, vendor, and OS.  There is by no means
+support for all possible combinations!
+@end quotation
+
+@node configure Options, Compilation, Config Names, Rebuilding
+@section @code{configure} Options
+
+This section summarizes the @code{configure} options and arguments.
+Your Developer's Kit contains full online documentation for the Cygnus
+configure system.  @inforef{Using Configure,,configure.info}, to read
+about @code{configure} in more detail, including information on how the
+@code{configure} options relate to @file{Makefile} variables.
+
+@example
+configure @r{[}-prefix=@var{dest}@r{]} 
+          @r{[}-exec-prefix=@var{bindest}@r{]} 
+          @r{[}-srcdir=@var{path}@r{]}
+          @r{[}-norecursion@r{]} 
+          @r{[}-target=@var{target}@r{]}
+          @var{host}
+@end example
+
+@noindent
+The binaries on your tape were configured using
+
+@cartouche
+@example
+configure -prefix /usr/cygnus/progressive-||RELNO|| \
+  -exec-prefix /usr/cygnus/progressive-||RELNO||/H-||HOSTstr|| \
+  ||HOSTstr||
+@end example
+@end cartouche
+
+@table @code
+@item -prefix=@var{dest}
+@var{dest} is an installation directory @emph{path prefix}, the root for
+the directories where @code{make install} will place things.  After you
+configure with this option, @samp{make install install-info} will
+install info files in @file{@var{dest}/info}, man pages in
+@file{@var{dest}/man}, and---unless you also use
+@samp{-exec-prefix}---compiled programs in @file{@var{dest}/bin}, and
+libraries in @file{@var{dest}/lib}.  If you specify
+@samp{-prefix=/local}, for example, @code{make install} puts the
+development tools in @file{/local/bin}.
+
+@emph{WARNING:} the default @var{dest} path prefix in the source is not
+the same as the prefix for the preconfigured binaries distributed by Cygnus.
+
+@samp{-prefix=/usr/cygnus/progressive-||RELNO||} was used to build this
+Cygnus Progressive Release.  If you do not use @code{-prefix}, the
+installation directory is @file{/usr/local}.
+
+@item -exec-prefix=@var{bindest}
+@samp{-exec-prefix} serves the same purpose as @samp{-prefix}, but
+affects only machine-dependent targets (compiled programs and
+libraries).  Specifying both @samp{-prefix} and @samp{-exec-prefix}
+allows you to segregate machine-dependent files, so that
+machine-independent files can be shared.  
+
+@emph{WARNING:} the default @var{bindest} path prefix in the source is not
+the same as the prefix for the preconfigured binaries distributed by Cygnus.
+
+@samp{-exec-prefix=/usr/cygnus/progressive-||RELNO||/H-||HOSTstr||} was
+used to build this Cygnus Progressive Release.
+If you do not use @samp{-exec-prefix}, the default directory for
+machine-dependent targets is whatever was specified with @file{-prefix}
+(by default, @file{/usr/local}).
+
+@item -srcdir=@var{path}
+@emph{Warning: This option is only supported if you use @sc{gnu}
+@code{make}} (which is included in the Cygnus Progressive--||RELNO|| release).
+Use this option to make configurations in directories separate from the
+source directories. @code{configure} writes configuration specific files
+in the current directory, but arranges for them to use the source in the
+directory @var{path}.  @code{configure} will create directories under
+the working directory in parallel to the source directories below
+@var{path}.  Among other things, you can use this to build (or maintain)
+several configurations simultaneously, in separate directories.
+
+@item -norecursion
+Configure only the directory level where @code{configure} is executed; do not
+propagate configuration to subdirectories.
+
+@item -target=@var{target}
+Configure the development tools for cross-development (compiling,
+debugging, or other processing) of programs running on the specified
+@var{target}.  Without this option, programs are configured ``native'',
+that is, for managing programs that run on the same machine (@var{host})
+as the development tools themselves.
+
+There is no convenient way to generate a list of all available targets.
+
+@item @var{host} @dots{}
+Configure the development tools to run on the specified @var{host}.
+
+There is no convenient way to generate a list of all available hosts.
+@end table
+
+The @samp{-prefix=@var{dest}} and @samp{-exec-prefix=@var{bindest}}
+options are particularly important.  If you don't specify a @var{dest}
+or @var{bindest} directory, the @file{Makefile} installs binaries in
+subdirectories of @file{/usr/local}.  These options are important
+because the @var{dest} and @var{bindest} directories are used for
+several purposes:
+
+@enumerate
+@item
+@var{bindest} is the directory where binaries are installed.
+
+@item
+@var{bindest} is built into the compiler itself for the
+locations of @sc{gcc} specific include files, the locations of @sc{gcc}
+subprograms, and the location of the @sc{gcc} specific library
+@file{libgcc.a}.
+
+@item
+@var{dest} is compiled into @code{info} as the default directory
+for the documentation.
+
+@end enumerate
+
+@node Compilation, Installation, configure Options, Rebuilding
+@unnumberedsec Compilation
+
+After you've run @code{configure} (which writes the final
+@file{Makefile} in each directory), compilation is straightforward.
+To compile all the programs in the Developer's Kit, run:
+
+@cartouche
+@example
+@b{make all info >make.log}
+@end example
+@end cartouche
+
+The examples suggest capturing the @code{make} output in a
+@file{make.log} file, because the output is lengthy.  
+
+The overall @file{Makefile} propagates the value of the @code{CC}
+variable explicitly, so that you can easily control the compiler used in
+this step.  @code{CFLAGS} is treated the same way.  For instance, to
+build the compiler a second time, using @sc{gcc} to compile itself
+(after building and installing it in the alternate directory
+@file{/local/gnu}), you might use
+
+@cartouche
+@example
+@b{make CC=/local/gnu/H-sun4/bin/gcc CFLAGS=-O all info  >make.log}
+@end example
+@end cartouche
+
+The conventional targets @samp{all}, @samp{install}, and @samp{clean}
+are supported at all levels of @file{Makefile}.  Other targets are
+supported as well, as appropriate in each directory; please read the
+individual @file{Makefile} for details.  Each @file{Makefile} in the
+source directories includes ample comments to help you read it.  If you
+are not familiar with @code{make}, refer to @ref{Overview,,Overview of
+@code{make}, make.info, GNU Make: A Program for Directing
+Recompilation}.
+
+@node Installation,  , Compilation, Rebuilding
+@unnumberedsec Installation
+
+Whether you configure an alternative path using @code{-prefix}, or you
+use the default installation path @file{/usr/local}, you can install the
+software by executing:
+
+@cartouche
+@example
+@b{make install install-info}
+@end example
+@end cartouche
+
+@node Removing, Cygnus-FSF, Rebuilding, Top
+@unnumbered Removing Parts of the Developer's Kit
+You can use the same @code{Install} script that was used to install the
+Developer's Kit on your system, to remove parts of the release.
+(Remember that the @code{Install} script was automatically saved for you
+as @file{/usr/cygnus/progressive-||RELNO||/Install}.)
+
+To do this, decide what you want to remove; then call @code{Install}
+with the option @samp{remove} on the command line, as well as all the
+options that you would use to install that portion of the release
+(@pxref{Install-Options,,Installation Options}).  For example, suppose
+you never look at the source, and are running short of disk
+space; you can remove the source, while leaving the rest of
+the Progressive Release undisturbed, as follows:
+
+@cartouche
+@example
+eg$ @b{cd /usr/cygnus/progressive-||RELNO||}
+eg$ @b{./Install remove source}
+@end example
+@end cartouche
+
+@noindent
+You should see the following messages confirming the software was
+removed:
+
+@cartouche
+@example
+Cygnus Support software distribution removed!
+Done.
+@end example
+@end cartouche
+
+To remove the complete Progressive Release of the Developer's Kit from your system
+(if, eventually, you no longer want it), delete the directory
+@file{/usr/cygnus/progressive-||RELNO||} and all its contents.  
+
+@node Cygnus-FSF, Cygnus-Support, Removing, Top
+@unnumbered Cygnus Releases and the FSF
+
+Most of the tools in this Developer's Kit are originally from the Free
+Software Foundation (FSF).  You can get versions of all these tools
+from the FSF as well as from Cygnus.  In general, Cygnus Progressive
+Releases add to FSF software in the following ways:
+@c UPDATE! more differences bet Cygnus/FSF releases?
+
+@itemize @bullet
+@item
+Commercial support is available.  Cygnus adds value to FSF releases in
+large measure by offering outstanding support services.
+@item
+Coordination.  The tools in your Developer's Kit are certified to work
+together; you need not worry about tools being out of step with each other.
+@item
+Bug fixes.  A Progressive Release includes many fixes, already integrated
+into the programs.  Cygnus repairs bugs discovered during testing, and
+also tracks and includes bug fixes developed for other Cygnus customers
+or distributed over the Internet.
+@item
+Bug reporting.  Cygnus releases include the tool @code{send_pr}, which
+you can use to make sure your problem reports receive prompt attention,
+and are also incorporated in our future tests.
+@item
+Documentation.  Cygnus revises and adds to available FSF
+documentation to give you better descriptions of all the software tools.
+@item
+Stability.  Cygnus tests (and uses) all the programs it releases.
+@end itemize
+
+@c FIXME! If we can say something about this, remove @ignore/@end ignore
+@c        and fill in below:
+@ignore
+This particular Cygnus Progressive release differs from the nearest
+corresponding FSF distributions in these important details:
+
+FILL IN HERE!
+
+@end ignore
+
+@node Cygnus-Support,  , Cygnus-FSF, Top
+@unnumbered About Cygnus Support
+
+Cygnus Support was founded in 1989 to provide commercial support for
+free software.  Cygnus supplies products and services that benefit
+advanced development groups by allowing them to use state-of-the-art
+tools without having to maintain them.  With Cygnus Support, sites that
+once were forced to do their own tool support can recover that valuable
+staff time.  Former users of proprietary software now may choose
+supported free software, combining the advantages of both worlds.
+
+Free software is faster, more powerful, and more portable than its
+proprietary counterparts.  It evolves faster because users who want to
+make improvements are free to do so.  Cygnus tracks these
+improvements and integrates them into tested, stable versions ready
+for commercial use, then backs this software with comprehensive
+support.
+
+With Cygnus Support as your partner, you will have the software and
+the support you need to meet your business objectives.  Cygnus
+is intimately familiar with this software from extensive experience
+using, debugging, and implementing it.  You get direct access to the
+most qualified support people: the authors of the software.
+
+We provide ``vintage'' releases---the most stable versions, which have
+been though even more extensive use and testing---or up-to-the minute
+``progressive'' releases, for those who need the very latest version.
+
+Because all our improvements are also free software, you can
+distribute them widely within your organization, or to your customers,
+without extra cost.
+
+@sp 4
+
+@display
+Cygnus Support
+814 University Avenue
+Palo Alto, CA 94301, USA
+
++1 415 322 3811
+hotline: +1 415 322 7836
+email: @code{info@@cygnus.com}
+fax: +1 415 322 3270
+@end display
+
+@bye
diff --git a/intro.texi b/intro.texi
new file mode 100644 (file)
index 0000000..bc00f3d
--- /dev/null
@@ -0,0 +1,453 @@
+\input texinfo
+@c $Id$
+@setfilename intro.info
+@settitle Introduction
+@iftex
+@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
+@c implements Cygnus modifications to the texinfo manual style.
+@input texiplus
+@c The include file "smpklug.texi" is a kluge to deal with local
+@c document production issues at Cygnus; it's safe to comment out this
+@c line if you don't have (or don't want) the file.
+@input smpklug.texi
+@smallbook
+@cropmarks
+@finalout
+@c We don't actually want a titlepage; HEADINGSon is usually called by
+@c @end titlepage to turn on footers and headers.
+@setchapternewpage odd
+@HEADINGSon
+@end iftex
+
+@node Top,,,
+@unnumbered Introduction
+
+This Developer's Kit puts at your disposal, in a single coordinated
+and tested release, some of the best software development tools
+available:
+
+@table @t
+@item gcc
+C compiler
+
+@item g++
+C++ compiler
+
+@item gdb
+Debugger
+
+@item make
+Automates building and installing your programs
+
+@item gprof
+Performance analyzer
+
+@item byacc
+Parser generator
+
+@item flex
+Fast lexical analyzer generator
+
+@item libg++.a
+Class library for C++
+
+@item send_pr
+Script to send structured problem reports to Cygnus
+
+@item diff
+Compares source files
+
+@item patch
+Installs source fixes
+
+@item info
+@itemx makeinfo
+Online documentation tools
+
+@item texinfo.tex
+@itemx texindex
+Documentation printing tools
+@end table
+
+On most host systems, the following are also included (to see if
+they are available on your host, @pxref{Contents, Release Contents,
+Release Contents, README.info, Installation Notes}).
+
+@table @t
+@item gas
+Assembler
+
+@item ld
+Linker
+
+@item ar
+Manages object code archives
+
+@item nm
+Lists object file symbol tables
+
+@item objdump
+Displays object file information
+
+@item ranlib
+Generates archive index
+
+@item size
+Lists section and total sizes
+
+@item strip
+Discards symbols
+@end table
+
+These tools are free software; most of them are from the GNU project,
+produced by the Free Software Foundation (FSF).  ``GNU'' is the name of
+the FSF's evolving system (in speech, the `G' is sounded).  Cygnus
+Support collaborates with the FSF in developing these tools.  In this,
+our @dfn{Progressive} product, we've assembled the most recent forms of
+the development tools, tested them, made sure they work well together,
+made them easy to install---the installation tape comes with binaries
+already compiled for your system---and made them easy to reconfigure and
+recompile from source.
+
+Cygnus Support exists to help our clients exploit their freedom in
+using, adapting, or enhancing this software.  @xref{Cygnus,,About Cygnus
+Support}, for more information.
+
+@page
+@node Copying,,,
+@section Free Software
+If you find our Developer's Kit useful, please feel free to give or sell
+copies of the software and documentation to anyone you like.
+
+Cygnus products are @dfn{free software}, protected by the @sc{gnu} General
+Public License (GPL).  The GPL gives you the freedom to copy or adapt any
+program it licenses---but every person getting a copy also gets with it the
+freedom to modify that copy (which means that they must get access to
+the source code), and the freedom to distribute further copies.  Typical
+software companies use copyrights to limit your freedoms; the GPL is
+designed to preserve your freedoms.
+
+Fundamentally, the General Public License is a license which grants you
+these freedoms, and only imposes restrictions to ensure that no one can
+take these freedoms away from anyone else.
+
+For full details, see the @strong{LICENSE} section in this manual
+set.
+
+@page
+@node Manuals,,,
+@section Manuals
+@noindent
+These printed manuals are included in your Cygnus Progressive Release:
+@display
+
+@cite{Using the @sc{gnu} C Compiler}
+
+@cite{The C Preprocessor}
+
+@cite{GDB: The @sc{gnu} Source-Level Debugger}
+
+@cite{Using @code{as}: The @sc{gnu} Assembler}
+
+@cite{The @sc{gnu} Binary Utilities}
+
+@cite{@code{gld}, the @sc{gnu} Linker}
+
+@cite{@sc{gnu} Make: A Program for Directing Recompilation}
+
+@cite{User's Guide to the @sc{GNU} C++ Class Library}
+
+@end display
+
+The manuals are designed for easy online browsing (@pxref{Info,,Online
+Documentation}).  For online use, the accompanying software distribution
+tape includes all the printed manuals, and also the following documents:
+
+@table @emph
+@item FLEX: A Fast Lexical Analyzer Generator
+Generates lexical analyzers suitable for GCC and other compilers.
+
+@item Info: Documentation Browsing System
+Full details on the @code{info} browser.
+
+@item Texinfo: The @sc{gnu} Documentation Format
+How you can use @TeX{} to print these manuals, and how to write your own
+manuals in this style.
+
+@item Using and Porting @sc{gnu cc}
+Detailed information about what's needed to put @sc{gnu cc} on different
+platforms, or to modify @sc{gnu cc}.  Also includes all the
+information in the printed manual @cite{Using the @sc{gnu} C Compiler}.
+@end table
+
+@noindent
+Finally, @code{man} pages are included for all the programs in the release.
+
+You have the freedom to copy the manuals, like the software they cover;
+each manual's copyright statement includes the necessary permissions.
+The manuals themselves are also free software, and the source for them
+is also available on the tape.
+
+@node Info,,,
+@section Using Online Documentation
+
+You can browse through the online documentation using either @sc{gnu} Emacs,
+or the program @code{info} included on the accompanying tape.
+Online, the manuals are organized into @dfn{nodes}, which correspond to
+the chapters and sections of a printed book.  You can follow them in
+sequence, if you wish, just like in the printed book---but there are
+also other choices.  The documents have menus that let you go quickly to
+the node that has the information you need.  @code{info} has ``hot''
+references; if one section refers to another, you can tell @code{info}
+to take you immediately to that other section---and you can get back
+again easily to take up your reading where you left off.  Naturally, you
+can also search for particular words or phrases.
+
+The best way to get started with the online documentation system is to
+run the browser @code{info}.  After the Progressive Release is installed on
+your system, you can get into @code{info} by just typing its name---no
+options or arguments are necessary---at your shell's prompt (shown as
+@samp{eg%} here):
+@example
+eg% info
+@end example
+
+@noindent
+@code{info} will display its first screen, a menu of the documentation
+available, and will await your input.  Typing the single letter
+@example
+h
+@end example
+@noindent
+requests a tutorial, designed to teach you how to use @code{info}.
+
+If you already use Emacs, you may want to get into the documentation
+browsing mode, instead, by typing @kbd{C-h i} inside Emacs.
+
+You can get out of @code{info} at any time by typing the single letter
+@kbd{q}.  
+
+@page
+Here is a summary of all the @code{info} commands; @code{info} itself
+can display a summary like this at any time, when you type the single
+character @kbd{?}.
+
+@smallexample
+@cartouche
+h       @r{Invoke the Info tutorial.}
+q       @r{Quit Info}
+
+@i{Selecting other nodes:}
+n       @r{Move to the ``next'' node of this node.}
+p       @r{Move to the ``previous'' node of this node.}
+u       @r{Move ``up'' from this node.}
+m       @r{Pick menu item specified by name (or abbreviation).}
+        @r{Picking a menu item moves to the corresponding node.}
+f       @r{Follow a cross reference.  Reads name of reference.}
+l       @r{Move to the last node you were looking at.}
+
+@i{Moving within a node:}
+Space   @r{scroll forward a page.}
+DEL     @r{scroll backward a page.}
+b       @r{Go to beginning of this node.}
+
+@i{Advanced commands:}
+1       @r{Pick first item in node's menu.}
+2 - 5   @r{Pick second ... fifth item in node's menu.}
+g       @r{Move to node specified by name.}
+        @r{You may include a filename as well, as @code{(@var{FILENAME})@var{NODENAME}}.}
+s       @r{Search through this Info file for a specified string,}
+        @r{and select the node in which the next occurrence is found.}
+Ctl-p   @r{Print the contents of this node using @samp{lpr}.}
+@end cartouche
+@end smallexample
+
+@page
+@node Bugs,,,
+@section Reporting Trouble
+We've tried to make the programs in your Progressive Release as
+trouble-free as possible.  If you do encounter trouble, however, we'd
+like to be able to diagnose and fix the problem as quickly as possible.
+You can help us do that by using the script @code{send_pr} to send us your
+problem reports.
+
+@code{send_pr} invokes an editor on a problem report form (after
+trying to fill in some fields with reasonable default values). After
+you exit the editor, @code{send_pr} sends the filled out form to the
+problem report management system (PRMS) at Cygnus Support.  You can
+use the environment variable @code{EDITOR} to specify what editor to
+use (the default is @code{vi}).
+
+@code{send_pr} attempts to send your problem report to Cygnus via
+electronic mail.  If your site cannot support this, you can still use
+the problem report form: use @samp{send_pr -p} to capture a copy of the
+blank problem-report form and fill it in.  (You can also photocopy the
+blank form at the end of this section to fill in.)  In either case you
+can FAX the problem report to Cygnus at @w{+1 415 322 3270}.
+
+At Cygnus Support, the problem report is assigned a unique number and is
+stored in the PRMS database according to its category and your
+customer-id.  PRMS automatically replies with an acknowledgement, citing
+the category and the PR number.  As the next step, Cygnus staff inspects
+the bugreport (if you've marked your report as high priority, we respond
+with an analysis of the problem in less than one business day).  We'll
+offer a solution as soon as possible, and await your feedback.  As a
+matter of policy, we do not consider your problem report closed until
+you've agreed with a solution we offer.
+
+To ensure that a problem report is handled promptly, it must contain
+your (unique) customer-id and one of the available categories, shown as
+comments in the problem report form, to identify the problem area. As a
+Cygnus Support customer, you can obtain your customer-id by invoking
+@code{send_pr} with the @samp{-request-id} option.
+
+@page
+@subsection Filling out a problem report
+Problem reports are structured so that a program can manage them. When
+filling out the form, please remember the following guidelines:
+
+@itemize @bullet
+@item
+Each PR needs a valid customer-id and category.
+
+@item
+Describe only one problem with one PR.
+
+@item
+For follow-up mail, use the same subject line as the one in the
+automatic acknowledgent. It shows the category, the PR number and the
+original synopsis line.  This allows Cygnus Support to make sure mail on
+the same problem report stays together.
+
+@item 
+Please try to make the subject or synopsis line as informative
+as possible.  For misbehaving software, you might use a sentence of
+the form ``with input foo, component xyz produces bar''.
+
+@item
+You don't need to delete the comment lines while editing the PR form;
+this is done by @code{send_pr}.  Put your information before or
+after the comment.
+@end itemize
+
+@page
+For full details on @code{send_pr} and the supporting form, see the man
+page @code{send_pr}(1).  Here is a sample blank problem-report form; if
+electronic mail from your site does not reach Cygnus, you can send us
+problem reports by photocopying this sample, filling it out, and sending
+it by FAX to @w{+1 415 322 3270}.
+
+@iftex
+@widen{28pt}
+@end iftex
+
+@smallexample
+SEND_PR: Choose from the following categories:
+SEND_PR:
+SEND_PR: bfd       binutils  bison     clib      config    cvs
+SEND_PR: diff      doc       emacs     g++       gas       gcc       
+SEND_PR: gdb       grep      ispell    ld        libg++    libiberty
+SEND_PR: libiberty make      rcs       readline  send_pr   texinfo
+SEND_PR: other
+SEND_PR:
+
+To: cygnus-bugs@@cygnus.com 
+
+Subject: 
+
+From: 
+
+Reply-To: 
+
+X-send-pr-version: send_pr: 1.15
+
+
+>Customer-Id:
+
+>Originator:    <name of the PR author (one line)>
+
+>Organization:  <organization of PR author (multiple lines)>
+
+
+
+>Confidential:  <[ yes | no ] (one line)>
+
+>Synopsis:     <synopsis of the problem (one line)>
+
+>Severity:     <[ non-critical | serious | critical ] (one line)>
+
+>Priority:     <[ low | medium | high ] (one line)>
+
+>Category:     <name of the product (one line)>
+
+>Class:                <[ sw-bug | doc-bug | change-request | support ] (one line)>
+
+>Release:      <release number or tag (one line)>
+
+>Environment:
+        <machine, os, target, libraries (multiple lines)>
+
+
+
+>Description:   
+        <precise description of the problem (multiple lines)>
+
+
+
+
+
+
+>How-To-Repeat:         
+        <code/input/activities to reproduce the problem (multiple lines)>
+@end smallexample
+
+@iftex
+@widen{-28pt}
+@end iftex
+
+@page
+@node Cygnus,,,
+@section About Cygnus Support
+Cygnus Support was founded in 1989 to provide commercial support for
+free software.  Cygnus supplies products and services that benefit
+advanced development groups by allowing them to use state-of-the-art
+tools without having to maintain them.  With Cygnus Support, sites that
+once were forced to do their own tool support can recover that valuable
+staff time.  Former users of proprietary software now may choose
+supported free software, combining the advantages of both worlds.
+
+Free software is faster, more powerful, and more portable than its
+proprietary counterparts.  It evolves faster because users who want to
+make improvements are free to do so.  Cygnus tracks these
+improvements and integrates them into tested, stable versions ready
+for commercial use, then backs this software with comprehensive
+support.
+
+With Cygnus Support as your partner, you will have the software and
+the support you need to meet your business objectives.  Cygnus
+is intimately familiar with this software from extensive experience
+using, debugging, and implementing it.  You get direct access to the
+most qualified support people: the authors of that software.
+
+We provide up-to-the minute ``progressive'' releases, for those who need
+the very latest version---or ``vintage'' releases: stable versions which
+have been through extensive use and testing.
+
+Because all our improvements are also free software, you can
+distribute them widely within your organization, or to your customers,
+without extra cost.
+
+@sp 4
+
+@display
+Cygnus Support
+814 University Avenue
+Palo Alto, CA 94301, USA
+
++1 415 322 3811
+
+email: @code{info@@cygnus.com}
+fax: +1 415 322 3270
+@end display
+
+@bye
diff --git a/sol-Build-A-Release.mk b/sol-Build-A-Release.mk
new file mode 100644 (file)
index 0000000..45ee872
--- /dev/null
@@ -0,0 +1,315 @@
+### Makefile for preparing a progressive release.
+###
+### This makefile is distinct from the makefile for three-staging for
+### several reasons.  First, this version builds a "stage4" using src
+### directories that have no CVS directories.  Second, the binaries
+### are build from independent copies of the source.  That is, each
+### host release will have it's own copy of the src directory.
+###
+### This file was written and is maintained by K. Richard Pixley
+###
+
+RELNO          = 1.0
+
+PWD            = $(shell pwd)
+CVS            = $(PWD)/cirdancvs
+tree           = progressive
+rooting                = /opt/cygnus-sol2-$(RELNO)
+cvs_module     = progressive-solaris
+gccflags       = "-O"
+release_tag    = solaris-1-0
+release_dir    = cygnus-sol2-1.0
+
+
+
+host_release   = ${host}/cygnus-sol2-$(RELNO)
+objdir         = ${host_release}/objdir
+
+
+# prefixes are passed as arguments to configure, they have to start with -
+prefixes       = -prefix=$(rooting)
+
+# inst_prefixes are passed as arguments to make, without the -
+inst_prefixes  = prefix=$(PWD)/$(host_release)
+
+### What are these for?
+create         =
+restart                =
+usage          =
+
+## which C compiler to use
+#CC            = $(rooting)/bin/gcc
+CC             = /opt/cygnus-sol2-1.0/bin/gcc
+C_COMPILER     = "CC=$(CC) ${gccflags}"
+
+all: .${host}-done fluff
+       chmod -R a-w $(host)
+       chmod -R go=u $(host)
+       find $(host) -type d -print | xargs chmod u+w
+
+testfile: all blockit ${host}+.Z
+${host}+.Z:
+       (cd ${host} ; tar cf - ${release_dir} \
+               | compress -vV \
+               | ../blockit \
+               > ../$@)
+
+.${host}-done: .${host}-install .${host}-install-info
+       rm -rf ${objdir}
+       touch $@
+
+.${host}-install: .${host}-all
+       ${MAKE} -C ${objdir} -w install-no-fixedincludes \
+               $(inst_prefixes) $(C_COMPILER)
+       touch $@
+
+.${host}-install-info: .${host}-info
+       ${MAKE} -C ${objdir} -w install-info $(inst_prefixes) $(C_COMPILER)
+       touch $@
+
+.${host}-all:  .${host}-config
+       ${MAKE} -C ${objdir} -w all $(C_COMPILER)
+       touch $@
+
+.${host}-info: .${host}-config
+       ${MAKE} -C ${objdir} -w info $(C_COMPILER)
+       touch $@
+
+.${host}-config:       .${host}-src
+       cd ${objdir} ; \
+               ../src/configure ${host} $(prefixes) 
+       touch $@
+
+.${host}-src:   .${release_tag}-co .${host}-dirs
+       rm -rf ${host_release}/src
+       (tar cf - ${release_dir} | (cd ${host_release} ; tar xvf -) ; true)
+       (cd ${host_release}/${release_dir} ; find . \( -name CVS -o -name CVS.adm \) -depth -exec rm -rf {} \; )
+       mv ${host_release}/${release_dir} ${host_release}/src
+       touch $@
+
+.${host}-dirs:
+       [ -d ${host} ] || mkdir ${host}
+       [ -d ${host_release} ] || mkdir ${host_release}
+       [ -d ${objdir} ] || mkdir ${objdir}
+       touch $@
+
+.${release_tag}-co: .${release_tag}-tagged
+       ${CVS} co -r ${release_tag} ${cvs_module}
+       mv ${tree} ${release_dir}
+       touch $@
+
+.${release_tag}-tagged:
+       ${CVS} rtag ${release_tag} ${cvs_module}
+       touch $@
+
+fluff: ${host_release}/src/Build-A-Release.mk \
+       ${host_release}/src/Pack-A-Progressive \
+       ${host_release}/lib/fixincludes \
+       ${host_release}/src/INSTALL \
+       ${host_release}/README \
+       ${host}/Install \
+       ${host}/install.dvi \
+       ${host_release}/CYGNUS
+
+${host}/install.dvi: ${host_release}/src/install.texinfo
+       cp $< ${host}/install.texinfo
+       (cd ${host} ; tex install.texinfo)
+       (cd ${host} ; tex install.texinfo)
+       (cd ${host} ; tex install.texinfo)
+       rm ${host}/install.texinfo
+
+install-notes: ${host}/install.dvi
+       lpr $^
+
+clean-fluff:
+       rm -f ${host_release}/src/Build-A-Release.mk \
+               ${host_release}/src/Pack-A-Progressive \
+               ${host_release}/lib/fixincludes \
+               ${host_release}/Install \
+               ${host_release}/src/install-texi.in \
+               ${host_release}/src/install.texinfo \
+               ${host_release}/src/Install.in \
+               
+${host_release}/src/Build-A-Release.mk: ${release_dir}/Build-A-Release.mk
+       rm -f $@; cp $< $@
+
+${host_release}/src/Pack-A-Progressive: ${release_dir}/Pack-A-Progressive
+       rm -f $@; cp $< $@
+
+${host_release}/src/Install.in: ${release_dir}/Install.in
+       rm -f $@; cp $< $@
+
+${host_release}/src/CYGNUS: ${release_dir}/CYGNUS
+       rm -f $@; cp $< $@
+
+${host_release}/CYGNUS: ${host_release}/src/CYGNUS
+       rm -f $@; cp $< $@
+
+${host_release}/src/install-texi.in: ${release_dir}/sol-inst.texi
+       rm -f $@; cp $< $@
+
+${host_release}/lib/fixincludes:       ${host_release}/src/gcc/fixincludes
+       rm -f $@; cp $< $@
+       chmod a+x $@
+
+${host}/Install: ${host_release}/Install
+       rm -f $@; cp $< $@
+       chmod a+x $@
+
+${host_release}/Install: ${host_release}/src/Install
+       rm -f $@; cp $< $@
+       chmod a+x $@
+
+${host_release}/src/install.texinfo: ${host_release}/src/install-texi.in
+       $(MAKE) process -f Build-A-Release.mk IN=$< OUT=$@ relno=`echo ${release_dir} | sed "/${tree}-/s///"`
+
+${host_release}/README: ${host_release}/src/README-bin
+       rm -f $@; cp $< $@
+
+${host_release}/src/INSTALL: ${host_release}/src/install.texinfo
+       -makeinfo +no-headers +no-split $< -o $@
+### remove tags table
+       sed -e '/^Tag Table/,$$d' $@ | sed -e '$$d' > $@.new
+       mv -f $@.new $@
+
+${host_release}/src/Install: ${host_release}/src/Install.in
+       $(MAKE) process -f Build-A-Release.mk IN=$< OUT=$@ relno=`echo ${release_dir} | sed "/${tree}-/s///"`
+       chmod a+x $@
+
+process: process-${host}
+       @if grep '||' ${OUT}.new ; then \
+               echo $0 missed at least one of the triggers. 1>&2 ; \
+               exit 1 ; \
+       else \
+               true ; \
+       fi
+       mv -f ${OUT}.new ${OUT}
+
+process-sun4:
+       sed -e "/^@clear HOSTsun4/s::@set HOSTsun4:" \
+               -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
+               -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
+               -e "/^@set HOSTiris/s::@clear HOSTiris:" \
+               -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
+               -e "/^@set FIXMES/s::@clear FIXMES:" \
+               -e "/\|\|RELNO\|\|/s::${relno}:g" \
+               -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
+               -e "/\|\|DEVdflt\|\|/s::/dev/nrst8:g" \
+               -e "/\|\|BD\|\|/s::35:g" \
+               -e "/\|\|SD\|\|/s::34:g" \
+               -e "/\|\|DF\|\|/s::69:g" \
+               -e "/\|\|HOST\|\|/s::Sun-4:g" \
+               -e "/\|\|HOSTstr\|\|/s::sun4:g" \
+               -e "/\|\|TARGET\|\|/s::sun4:g" \
+               -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
+               < ${IN} > ${OUT}.new
+
+
+process-sparc-sun-solaris2:
+       sed \
+               -e "/^@set FIXMES/s::@clear FIXMES:" \
+               -e "/^@clear CUSTOMER/s::@set CUSTOMER:" \
+               -e "/^@set CDROMinst/s::@clear CDROMinst:" \
+               -e "/^@clear TAPEinst/s::@set TAPEinst:" \
+               -e "/^@set FTPsingle/s::@clear FTPsingle:" \
+               -e "/^@set FTPsplit/s::@clear FTPsplit:" \
+               -e "/\|\|MEDIUM\|\|/s::tape:g" \
+               -e "/\|\|MEDstr\|\|/s::/dev/rmt/0ln:g" \
+               -e "/\|\|DEVdflt\|\|/s::/dev/rmt/0ln:g" \
+               -e "/\|\|MEDvar\|\|/s::/dev/@var{tape}:g" \
+               -e "/\|\|TAPdflt\|\|/s::/dev/@var{tape}:g" \
+               -e "/\|\|RELNO\|\|/s::1.0:g" \
+               -e "/\|\|BD\|\|/s::20:g" \
+               -e "/\|\|SD\|\|/s::28:g" \
+               -e "/\|\|DF\|\|/s::48:g" \
+               -e "/\|\|BUNDLE\|\|/s::comp:g" \
+               -e "/\|\|HOST\|\|/s::SPARC computer:g" \
+               -e "/\|\|HOSTstr\|\|/s::sparc-sun-solaris2:g" \
+               -e "/\|\|TARGET\|\|/s::sparc-sun-solaris2:g" \
+               -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g"  \
+               < $(IN) > $(OUT).new
+
+process-sun3:
+       sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
+               -e "/^@clear HOSTsun3/s::@set HOSTsun3:" \
+               -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
+               -e "/^@set HOSTiris/s::@clear HOSTiris:" \
+               -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
+               -e "/^@set FIXMES/s::@clear FIXMES:" \
+               -e "/\|\|RELNO\|\|/s::${relno}:g" \
+               -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
+               -e "/\|\|DEVdflt\|\|/s::/dev/nrst8:g" \
+               -e "/\|\|BD\|\|/s::32:g" \
+               -e "/\|\|SD\|\|/s::34:g" \
+               -e "/\|\|DF\|\|/s::65:g" \
+               -e "/\|\|HOST\|\|/s::Sun-3:g" \
+               -e "/\|\|HOSTstr\|\|/s::sun3:g" \
+               -e "/\|\|TARGET\|\|/s::sun3:g" \
+               -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
+               < ${IN} > ${OUT}.new
+
+process-decstation:
+       sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
+               -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
+               -e "/^@clear HOSTdecstation/s::@set HOSTdecstation:" \
+               -e "/^@set HOSTiris/s::@clear HOSTiris:" \
+               -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
+               -e "/^@set FIXMES/s::@clear FIXMES:" \
+               -e "/\|\|RELNO\|\|/s::${relno}:g" \
+               -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
+               -e "/\|\|DEVdflt\|\|/s::/dev/nrmt0:g" \
+               -e "/\|\|BD\|\|/s::27:g" \
+               -e "/\|\|SD\|\|/s::34:g" \
+               -e "/\|\|DF\|\|/s::61:g" \
+               -e "/\|\|HOST\|\|/s::Decstation:g" \
+               -e "/\|\|HOSTstr\|\|/s::decstation:g" \
+               -e "/\|\|TARGET\|\|/s::decstation:g" \
+               -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
+               < ${IN} > ${OUT}.new
+       true
+
+process-iris4:
+       sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
+               -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
+               -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
+               -e "/^@clear HOSTiris/s::@set HOSTiris:" \
+               -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
+               -e "/^@set FIXMES/s::@clear FIXMES:" \
+               -e "/\|\|RELNO\|\|/s::${relno}:g" \
+               -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
+               -e "/\|\|DEVdflt\|\|/s::/dev/mt/tps0d0nrns:g" \
+               -e "/\|\|BD\|\|/s::25:g" \
+               -e "/\|\|SD\|\|/s::34:g" \
+               -e "/\|\|DF\|\|/s::59:g" \
+               -e "/\|\|HOST\|\|/s::Iris:g" \
+               -e "/\|\|HOSTstr\|\|/s::iris4:g" \
+               -e "/\|\|TARGET\|\|/s::iris4:g" \
+               -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
+               < ${IN} > ${OUT}.new
+
+process-rs6000:
+       sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
+               -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
+               -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
+               -e "/^@set HOSTiris/s::@clear HOSTiris:" \
+               -e "/^@clear HOSTrs6000/s::@set HOSTrs6000:" \
+               -e "/^@set FIXMES/s::@clear FIXMES:" \
+               -e "/\|\|RELNO\|\|/s::${relno}:g" \
+               -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
+               -e "/\|\|DEVdflt\|\|/s::/dev/rmt0.1:g" \
+               -e "/\|\|BD\|\|/s::36:g" \
+               -e "/\|\|SD\|\|/s::34:g" \
+               -e "/\|\|DF\|\|/s::70:g" \
+               -e "/\|\|HOST\|\|/s::RS/6000:g" \
+               -e "/\|\|HOSTstr\|\|/s::rs6000:g" \
+               -e "/\|\|TARGET\|\|/s::rs6000:g" \
+               -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
+               < ${IN} > ${OUT}.new
+
+pclean:
+       rm -rf ${host}
+
+blockit: blockit.c
+
+
+
diff --git a/sol-GNUmakefile b/sol-GNUmakefile
new file mode 100755 (executable)
index 0000000..d359c1b
--- /dev/null
@@ -0,0 +1,222 @@
+#!/usr/latest/bin/make -f
+#
+# Makefile used to three-stage build a tree of source code, usually devo.  
+#
+
+# Every invocation of this Makefile needs to have a variable set (host), 
+# which is the named used for ./configure, and also the prefix for the
+# various files and directories used in a three stage.
+#
+
+ifndef host
+error: 
+       @echo
+       @echo
+       @echo You must set the variable \"host\" to use this Makefile
+       @echo
+       @echo
+       @exit 1
+else
+
+# 
+# from here to very near the end of the file is the real guts of this 
+# Makefile, and it is not seen if the variable 'host' is not set 
+# 
+
+TREE           := progressive
+ROOTING        := /opt/cygnus-sol2-1.0
+CVS_MODULE     := progressive-solaris
+TAG_DATE       := 920615
+RELEASE_TAG    := $(CVS_MODULE)-$(TAG_DATE)
+release_root   := $(ROOTING)
+
+TIME   := time
+NICE   := nice -17
+MF     := -w
+GNUC   := gcc -g
+
+SHELL  := /bin/sh
+
+INSTDIR  := $(shell pwd)/$(host)
+PREFIXES := prefix=$(ROOTING)
+
+ifdef target
+arch=$(host)=$(target)
+endif
+
+.PHONY: all
+all:   do1 do2 do3
+
+.PHONY: configuration
+configuration: $(TREE) $(host)-stamp-stage1-configured
+
+.PHONY: comparison
+comparison:
+       for i in `cd $(host)-objdir.3 ; find . -name \*.o -print` ; do \
+               cmp $(host)-objdir.2/$$i $(host)-objdir.3/$$i ; \
+       done
+
+.PHONY: clean
+clean:
+       rm -rf $(host)-$(TREE)-holes $(host)-objdir $(host)-objdir.[123] $(host)-stamp-stage[123]* $(host)-stamp-holes *~
+
+.PHONY: very
+very:
+       rm -rf $(TREE)
+
+$(TREE):
+       $(TIME) cvs co $(CVS_TAG) $(CVS_MODULE)
+
+.PHONY: do1
+do1:   $(host)-$(TREE)-holes $(host)-stamp-stage1
+
+$(host)-stamp-stage1: $(host)-objdir.1
+       touch $(host)-stamp-stage1
+
+$(host)-objdir.1: $(TREE) $(host)-stamp-stage1-configured
+       (cd $(host)-objdir ; $(TIME) make $(MF) all info host=$(host))
+       @echo CONFIGURE: make all completed for $(host)
+       (cd $(host)-objdir ; $(TIME) make $(MF) install install-info host=$(host))
+       @echo CONFIGURE: make install-all completed for $(host)
+       mv $(host)-objdir $(host)-objdir.1
+
+$(host)-stamp-stage1-configured:
+       [ -d $(host)-objdir ] || mkdir $(host)-objdir
+       (cd $(host)-objdir ; \
+               $(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \
+                       -prefix=$(ROOTING))
+       touch $@
+
+.PHONY: do2
+do2:   $(host)-$(TREE)-holes $(host)-stamp-stage2
+
+$(host)-stamp-stage2: $(host)-objdir.2
+       PATH=$(release_root)/bin:`pwd`/$(host)-$(TREE)-holes ; \
+               export PATH ; \
+               echo $$PATH ; \
+               SHELL=sh ; export SHELL ; \
+               $(TIME) make $(host)-objdir.2 host=$(host)
+       touch $(host)-stamp-stage2
+
+$(host)-objdir.2: $(TREE) $(host)-stamp-stage2-configured
+       [ -d $(host)-objdir ] || mkdir $(host)-objdir
+       (cd $(host)-objdir ; $(TIME) make $(MF) all info  "CC=$(GNUC)" host=$(host))
+       (cd $(host)-objdir ; $(TIME) make $(MF) $(PREFIXES) install install-info "CC=$(GNUC)" host=$(host))
+       mv $(host)-objdir $(host)-objdir.2
+
+$(host)-stamp-stage2-configured:
+       [ -d $(host)-objdir ] || mkdir $(host)-objdir
+       (cd $(host)-objdir ; \
+               $(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \
+                       -prefix=$(ROOTING))
+       touch $@
+
+.PHONY: do3
+do3:   $(host)-$(TREE)-holes $(host)-stamp-stage3
+
+$(host)-stamp-stage3: $(host)-objdir.3
+       PATH=$(release_root)/bin:`pwd`/$(host)-$(TREE)-holes ; \
+               export PATH ; \
+               SHELL=sh ; export SHELL ; \
+               $(TIME) make $(host)-objdir.3 host=$(host)
+       touch $(host)-stamp-stage3
+
+$(host)-objdir.3: $(TREE) $(host)-stamp-stage3-configured
+       [ -d $(host)-objdir ] || mkdir $(host)-objdir
+       (cd $(host)-objdir ; $(TIME) make $(MF) all info "CC=$(GNUC)" host=$(host))
+       (cd $(host)-objdir ; $(TIME) make $(MF) install-no-fixedincludes install-info "CC=$(GNUC)"  host=$(host))
+       mv $(host)-objdir $(host)-objdir.3
+
+$(host)-stamp-stage3-configured:
+       [ -d $(host)-objdir ] || mkdir $(host)-objdir
+       (cd $(host)-objdir ; \
+               $(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \
+                       -prefix=$(ROOTING))
+       touch $@
+
+HOLES := [ \
+       ar \
+       as \
+       awk \
+       basename \
+       cat \
+       cc \
+       chmod \
+       cmp \
+       cp \
+       date \
+       echo \
+       egrep \
+       ex \
+       expr \
+       find \
+       grep \
+       hostname \
+       install \
+       ld \
+       lex \
+       ln \
+       ls \
+       mkdir \
+       mv \
+       pwd \
+       ranlib \
+       rm \
+       rmdir \
+       sed \
+       sh \
+       sort \
+       time \
+       touch \
+       tr \
+       true \
+       whoami
+
+PARTIAL_HOLES := \
+       gcc \
+       make
+
+
+$(host)-$(TREE)-holes: $(host)-stamp-holes
+
+$(host)-stamp-holes:
+       -rm -rf $(host)-$(TREE)-holes
+       -mkdir $(host)-$(TREE)-holes
+       for i in $(HOLES) ; do \
+               if [ -x $(host)-$(TREE)-holes/$$i ] ; then \
+                       echo "$$i already present" ; \
+                else if [ -x /bin/$$i ] ; then \
+                       cp /bin/$$i $(host)-$(TREE)-holes ; \
+                        echo $$i from /bin ; \
+               else if [ -x /usr/bin/$$i ] ; then \
+                       cp /usr/bin/$$i $(host)-$(TREE)-holes ; \
+                        echo $$i from /usr/bin ; \
+               else if [ -x /usr/ccs/bin/$$i ] ; then \
+                       cp /usr/ccs/bin/$$i $(host)-$(TREE)-holes ; \
+                        echo $$i from /usr/ccs/bin ; \
+               else if [ -x /usr/unsupported/bin/$$i ] ; then \
+                       cp /usr/unsupported/bin/$$i $(host)-$(TREE)-holes ; \
+                        echo $$i from /usr/unsupported/bin ; \
+               else \
+                       echo $$i is NOT found ; \
+               fi; fi ; fi ; fi ; fi ; true ; \
+       done
+       for i in $(PARTIAL_HOLES) ; do \
+               if [ -x /usr/latest/bin/$$i ] ; then \
+                     cp /usr/latest/bin/$$i $(host)-$(TREE)-holes ; \
+                       echo $$i from /usr/latest/bin ; \
+                else if [ -x /usr/unsupported/bin/$$i ] ; then \
+                     cp /usr/unsupported/bin/$$i $(host)-$(TREE)-holes ; \
+                       echo $$i from /usr/unsupported/bin ; \
+               fi; fi; \
+       done
+       touch $(host)-stamp-holes
+
+force:
+
+endif # host
+
+### Local Variables:
+### fill-column: 131
+### End:
+
diff --git a/sol-inst.texi b/sol-inst.texi
new file mode 100644 (file)
index 0000000..78697a2
--- /dev/null
@@ -0,0 +1,2238 @@
+\input texinfo
+@c
+@c search for "UPDATE!" for items that will need examination on future
+@c releases
+@c
+@c This file may require a nonstandard texinfo.tex to format; if you
+@c need it, please contact Cygnus Support (email editor-in-chief@cygnus.com)
+@setfilename INSTALL-NOTES
+@c FIXME: XCOMP stuff not ready to go.  For example,
+@c FIXME: no mention of lack of -msoft-float support for XCOMP, yet.
+@c
+@c This file describes how to install a Cygnus Solaris-2 Release.
+@c
+@c Copyright (C) 1991, 1992 Cygnus Support
+@c This text may be freely distributed under the terms of the GNU
+@c General Public License.
+@c
+@c $Id$
+@c
+@c set exactly ONE of the following to select what kind of install to doc:
+@clear CDROMinst
+@clear TAPEinst
+@set FTPsingle
+@clear FTPsplit
+@c
+@c shared properties:
+@clear FTP
+@clear FTPorCD
+@ifset FTPsingle
+@set FTP
+@set FTPorCD
+@end ifset
+@ifset FTPsplit
+@set FTP
+@set FTPorCD
+@end ifset
+@ifset CDROMinst
+@set FTPorCD
+@end ifset
+@c
+@c set CUSTOMER to indicate install instructions are for a Cygnus customer
+@c (clear for general public)
+@set CUSTOMER
+@c
+@iftex
+@c The include file "texiplus.tex" is in the src/texinfo/cygnus dir, and
+@c implements Cygnus modifications to the texinfo manual style.
+@input texiplus
+@c The include file "smpklug.texi" is a kluge to deal with local
+@c document production issues at Cygnus; it's safe to comment out this
+@c line if you don't have (or don't want) the file.
+@input smpklug.texi
+@smallbook
+@cropmarks
+@setchapternewpage on
+@finalout
+@end iftex
+@settitle Release ||RELNO|| for Solaris 2
+@tex
+% override-override: the following \font lines are redundant if you're
+% using an unmodified FSF texinfo.  
+% FIXME! check whether these are still needed, or whether Courier OK now
+%       w/shorter paths
+\globaldefs=1
+\font\texttt=cmtt10 scaled \magstephalf\let\tentt=\texttt
+\font\textsl=cmsl10 scaled \magstephalf\let\tensl=\textsl
+\font\textsf=cmss10 scaled \magstephalf\let\tensf=\textsf
+\font\user=pcrb at 10pt
+\globaldefs=0
+%end override-override
+% WARNING: NONSTANDARD USAGE we need \tensf for print, without
+% upsetting info.  We weren't using @b in this note, so I redefine it:
+%
+\global\def\b#1{{\user #1}}
+\global\parindent=0pt
+@end tex
+@titlepage
+@ifset CDROMinst
+@title CD-ROM Installation Notes
+@end ifset
+@ifset TAPEinst
+@title Tape Installation Notes
+@end ifset
+@ifset FTP
+@title FTP Installation Notes
+@end ifset
+@sp 3
+@subtitle Cygnus Support Developer's Kit
+@subtitle Release ||RELNO|| for Solaris 2.0
+@author Cygnus Support @hfill hotline: +1 415 322 7836
+@page
+
+@tex
+\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
+\xdef\Rmanvers{{\it Installation Notes (Solaris 2 Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
+{\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
+\TeX{}info \texinfoversion\par }
+\global\def\manvers{Release ||RELNO|| for Solaris 2}
+@end tex
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1991, 1992 Cygnus Support
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+
+@end titlepage
+
+@ifinfo
+@node Top
+@top Cygnus Support Solaris-2 Developer's Kit, version ||RELNO||
+
+This file is about the Cygnus Developer's Kit: what's in it, how to
+install it, and how to reconfigure it.
+
+@ifclear FTPorCD
+@menu
+* Brief::                       Installing in Brief
+* Contents::                    Release Contents
+* Installing::                  Installing the Developer's Kit
+* Examples::                    Installation Examples
+* Install-Options::             Installation Options
+* Why-fixincludes::             Why Convert System Header Files?
+* Running::                     Running the Programs
+* Paths::                       Changing the Paths
+* Trouble::                     Some Things that Might go Wrong
+* Rebuilding::                  Rebuilding From Source
+* Removing::                    Removing Parts of the Developer's Kit
+* Cygnus-FSF::                  Cygnus Releases and the FSF
+* Cygnus-Support::              About Cygnus Support
+@end menu
+@end ifclear
+@ifset FTPorCD
+@menu
+* Brief::                       Installation Procedure
+* Contents::                    Release Contents
+* Install-Options::             Installation Options
+* Why-fixincludes::             Why Convert System Header Files?
+* Running::                     Running the Programs
+* Paths::                       Changing the Paths
+* Trouble::                     Some Things that Might go Wrong
+* Rebuilding::                  Rebuilding From Source
+* Cygnus-FSF::                  Cygnus Releases and the FSF
+* Cygnus-Support::              About Cygnus Support
+@end menu
+@end ifset
+
+@end ifinfo
+
+@ifclear FTPorCD
+@node Brief
+@chapter Installing in Brief
+@end ifclear
+
+@ifset FTPorCD
+@node Brief
+@chapter Installation Procedure
+@end ifset
+
+@ifset TAPEinst
+@strong{You can run the brief installation procedure if:}
+@itemize @bullet
+@item
+Your ||HOST|| has its own tape drive (@code{/dev/rmt/0ln}---those
+last three characters are zero, el, en; see @samp{man st}), and
+@item
+You're willing to install in the directory @file{/opt}, and
+@item
+You have at least ||DF|| MB available (try @samp{df /opt}; @pxref{Disk space})
+@item
+The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
+@code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} are installed (try
+@samp{pkginfo @var{name}}; @pxref{Optional OS packages}).
+@end itemize
+Otherwise, see @ref{Installing,,Installing the Developer's Kit}.
+@end ifset
+@ifset FTPorCD
+@strong{To install the Cygnus Solaris-2 Developer's Kit, you need:}
+
+@end ifset
+@ifset FTPsingle
+@itemize @bullet
+@item
+the distribution file, @file{cygnus-sol2-||RELNO||.tar.Z}, in some directory
+@var{dist} on your system
+@item
+The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
+@code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
+system (try @samp{pkginfo @var{name}}).  See @ref{Optional OS packages}.
+@item
+at least ||DF|| MB of disk space available.  See @ref{Disk space}.
+@end itemize
+@end ifset
+@ifset FTPsplit
+@itemize @bullet
+@item
+the distribution files, @file{cygnus-sol2-||RELNO||.bin.tar.Z} (if you
+want precompiled binaries) and @file{cygnus-sol2-||RELNO||.src.tar.Z}
+(if you want the source code), in some directory @var{dist} on your
+system
+@item
+The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
+@code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
+system (try @samp{pkginfo @var{name}}).  See @ref{Optional OS packages}.
+@item
+at least ||BD|| MB of disk space available for the binaries.  See @ref{Disk space}.
+@item
+at least ||SD|| MB of disk space available for the source.  See @ref{Disk space}.
+@end itemize
+@end ifset
+@ifset CDROMinst
+@itemize @bullet
+@item
+A copy of the SunSoft Catalyst CDware disc.
+@item
+The Solaris-2 OS packages @code{SUNWesu}, @code{SUNWhea},
+@code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo} installed on your
+system (try @samp{pkginfo @var{name}}).  See @ref{Optional OS packages}.
+@item
+at least ||BD|| MB of disk space available for the binaries. See @ref{Disk space}.
+@item
+at least ||SD|| MB of disk space available for the source.  See @ref{Disk space}).
+@end itemize
+@end ifset
+
+@ifset FTPorCD
+We suggest installing the Developer's Kit under @file{/opt} (at least
+via a symbolic link).  The precompiled tools are configured for this
+location.  If you install elsewhere, and cannot establish a symbolic
+link to @file{/opt/cygnus-sol2-||RELNO||}, see @ref{Paths,,Changing the
+Paths}.
+@end ifset
+
+@enumerate
+@ifclear FTPorCD
+@item 
+Make sure you can write in @file{/opt/cygnus-sol2-||RELNO||}, by typing:
+
+@example
+eg$ @b{su root}
+password:           @i{(enter root password)}
+# @b{mkdir /opt/cygnus-sol2-||RELNO||}    @i{(ignore error if any)}
+# @b{chmod 777 /opt/cygnus-sol2-||RELNO||}
+# @b{exit}              @i{(give up root access)}
+@end example
+@end ifclear
+
+@ifset FTPorCD
+@item
+Make sure you can write in @file{/opt}, by typing:
+
+@example
+eg$ @b{touch /opt/cygnus-test; rm /opt/cygnus-test}
+@end example
+
+If you get an error, talk to your System Administrator about access to
+@samp{/opt}.  If you can't get permission to write in @file{/opt}, see
+@ref{No access,,No Access to @file{/opt}}.
+@end ifset
+
+@ifset FTPsingle
+@item
+Extract the Developer's Kit from the distribution file.
+
+@example
+@exdent @emph{If you can install directly in @file{/opt}:}
+eg$ @b{cd /opt}
+eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.tar.Z | tar xfov -}
+@end example
+
+@example
+@exdent @emph{If you install in another directory @var{other}:}
+eg$ @b{cd} @var{other}
+eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.tar.Z | tar xfov -}
+eg$ @b{ln -s cygnus-sol2-||RELNO|| /opt}
+@end example
+@end ifset
+
+@ifset FTPsplit
+@item
+Extract the Developer's Kit binaries from the distribution file.
+
+@example
+@exdent @emph{If you can install directly in @file{/opt}:}
+eg$ @b{cd /opt}
+eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.bin.tar.Z | tar xfov -}
+@end example
+
+@example
+@exdent @emph{If you install in another directory @var{other}:}
+eg$ @b{cd} @var{other}
+eg$ @b{zcat @var{dist}/cygnus-sol2-||RELNO||.bin.tar.Z | tar xfov -}
+eg$ @b{ln -s cygnus-sol2-||RELNO|| /opt}
+@end example
+
+@item
+If you also want the source, repeat the previous step, but with the file
+@file{@var{dist}/cygnus-sol2-||RELNO||.src.tar.Z}.
+@end ifset
+
+@ifset CDROMinst
+@item
+Mount the @sc{cdware cd-rom}.  You may need to briefly become super-user:
+
+@example
+eg$ @b{su root}
+password:           @i{(enter root password)}
+# @b{mkdir} @b{/cdrom}             @i{(ignore any errors)}
+# @b{mount} @b{-F} @b{hsfs} @b{-o} @b{ro} @b{/dev/dsk/c0t6d0s0} @b{/cdrom}
+# @b{exit}              @i{(give up root access)}
+@end example
+
+@item
+Start the @sc{cd-rom}'s presentation program (see the instructions
+that came with your @sc{cd-rom}).
+
+@item
+Look for an icon showing the Cygnus logo, with the label ``GNU C''.  If
+you can't find this icon, you may have the wrong category selected; in
+the Category menu, select either ``All'' or ``Software Engineering''.
+
+@item
+Select the Cygnus icon by clicking once on it with the left mouse
+button.
+
+@item
+Select ``Install'' from the Options menu.  A submenu appears, showing
+these options:
+
+@display
+Install Everything
+Install Binaries
+Install Source Code
+@end display
+
+Select one of these options.  (Selecting ``Install Everything'' is
+equivalent to selecting each of the other two options, to get both
+binaries and source code for the Developer's Kit.) 
+An interaction window appears.
+
+@item
+Answer the prompt @samp{Installation directory} with the name of the
+directory where you want the Developer's Kit installed.  We recommend
+@file{/opt} (which is the default), because the compiler and other tools
+are configured for this location.  (If you use another directory,
+see @ref{Paths,,Changing the Paths}.)
+
+@item
+Inspect the messages that appear in the interaction window.  The
+installation script @code{Install} displays occasional messages to keep
+you informed about the steps it executes.  Among them, these messages
+mark completion of the major stages of installation:
+
+@example
+Cygnus Support software distribution extracted!
+
+Fixed include files installed!
+
+Cygnus Support software distribution tested!
+
+@end example
+
+@strong{If all these messages have appeared}, skip the next step.
+
+@strong{If you see messages about missing parts of Solaris 2}, make sure
+you have all the optional packages described in
+@ref{Optional OS packages}.  Then proceed with the next
+step.
+@end ifset
+
+@ifset TAPEinst
+@item
+Load the cygnus-sol2-||RELNO|| ||MEDIUM|| into your ||MEDIUM|| drive.
+
+@item
+Get the @code{Install} script from the tape:
+
+@example
+eg$ @b{cd /tmp}
+eg$ @b{tar xfov /dev/rmt/0ln Install}
+@i{Ignore ``WARNING: @dots{} Sense Key: Unit Attention'' message.}
+@i{For other errors, try reinserting the tape and rerunning.}
+@end example
+
+@item
+Run the @code{Install} script:
+
+@example
+eg$ @b{./Install}
+@i{@dots{} @code{Install} displays messages about its activity, ending with}
+Done.
+@end example
+@end ifset
+
+@ifset FTPorCD
+@item
+Fix up copies of the system header files for your ||HOST||, and test the
+installation, with the @code{Install} script that was extracted from the
+distribution.  @emph{@code{Install} makes its own copies of the header
+files; your system's original header files are not changed.}  
+
+@example
+eg$ @b{cd cygnus-sol2-||RELNO||}
+eg$ @b{./Install}
+@exdent @code{Install} displays messages about its activity, ending with
+Done.
+@end example
+
+For background information on this step, see @ref{Why-fixincludes,,Why
+Convert System Header Files?}.
+@end ifset
+
+@ifset CUSTOMER
+@item
+Record your Cygnus customer-ID (see cover letter):
+
+@example
+eg$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
+@end example
+@end ifset
+
+@item
+Make a symbolic link to simplify pathnames:
+@example
+eg$ @b{cd} @b{/opt}
+eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
+@end example
+
+@ifclear FTPorCD
+@c Assume *WE* don't distribute cygnus-sol2-||RELNO|| w/permissions 777
+@item
+Remove public write access from @file{/opt/cygnus-sol2-||RELNO||}.  See your System
+Administrator for the correct permissions at your site.
+@end ifclear
+
+@end enumerate
+
+You're done!  Anyone who puts @samp{/opt/cygnus/bin} in her or his
+@code{PATH} can use the Developer's Kit.
+
+@node Contents
+@chapter Release Contents
+
+This Developer's Kit is a Cygnus Support release: the
+programs in it are recent versions, which have been tested and certified
+both individually and as a coordinated suite of tools.
+The kit includes both source and binaries for:  
+
+@c UPDATE! Anything new shoveled in?
+
+@table @t
+@item gcc
+C compiler
+
+@item libm.a
+Mathematical subroutine library
+
+@item gdb
+Debugger
+
+@item gprof
+Performance analyzer
+
+@item byacc
+Parser generator
+
+@item flex
+Fast lexical analyzer generator
+
+@item makeinfo
+@itemx info
+Online documentation tools
+
+@item texinfo.tex
+@itemx texindex
+Documentation printing tools
+
+@item send_pr
+The Cygnus problem-reporting utility
+
+@item patch
+Source-code update utility
+@end table
+
+@menu
+* Platforms::                   Supported Platforms
+* Requirements::                System Requirements
+@end menu
+
+@node Platforms
+@section Supported Platforms
+
+@table @strong
+@item ||HOST||s
+All programs in your Developer's Kit are for ||HOST||s running
+Solaris 2.0; we ship binaries (configured to install and run under
+@file{/opt/cygnus-sol2-||RELNO||}) as well as all source code.
+
+@item Other Platforms
+For information on other platforms or other programs
+that we may support, please contact Cygnus Support at:
+
+@table @strong
+@item voice
++1 415 322 3811
+@item hotline
++1 415 322 7836
+@item fax
++1 415 322 3270
+@item email
+@code{info@@cygnus.com}
+@end table
+@end table
+
+@page
+@node Requirements
+@section System Requirements
+
+@ifset FTPorCD
+@menu
+* OS level::
+* Optional OS packages::
+* Disk space::
+* Write access::
+@end menu
+@end ifset
+
+@ifset TAPEinst
+@menu
+* OS level::
+* Optional OS packages::
+* A tape drive::
+* Disk space::
+* Write access::
+@end menu
+@end ifset
+
+@node OS level
+@subsection OS level
+Solaris 2.0 Beta or later.
+
+@node Optional OS packages
+@subsection Optional OS packages
+Many components of Solaris 2.0 are part of the standard operating system
+distribution, but are not installed by default.  To install the Cygnus
+Solaris 2.0 Developer's Kit, you will need to make sure two of these
+optional components (called @dfn{packages}) are installed on your system:
+@samp{SUNWesu} and @samp{SUNWhea}.  Three more packages are needed to
+run the Developer's Kit software after you've installed it:
+@samp{SUNWbtool}, @samp{SUNWtoo}, and @samp{SUNWarc}.
+
+To check whether an optional package is installed, you can run
+@samp{pkginfo @var{name}}.  @code{pkginfo} is in @file{/usr/bin/}.  If
+@var{name} is not installed, you will get an error, like this:
+
+@example
+eg$ @b{/usr/bin/pkginfo} @b{SUNWlibm}
+ERROR: information for "SUNWlibm" was not found
+@end example
+
+@noindent
+If @var{name} is installed, you will see a one-line summary of the
+package, like this:
+
+@example
+eg$ @b{/usr/bin/pkginfo} @b{SUNWhea}
+system      SUNWhea        Header Files
+@end example
+
+To install one of these optional parts of Solaris 2 (@var{name} in the
+example), put the Solaris 2.0 distribution CD in the drive, mount it
+(for example, as @file{/cdrom}), then do:
+
+@example
+/usr/sbin/pkgadd -d /cdrom/Solaris_2.0 @var{name} @dots{}
+@end example
+
+@noindent
+You can specify several package names at once.
+
+These are the Solaris 2 optional packages you'll need to run the
+Developer's Kit:
+
+@table @code
+@item SUNWarc
+@emph{Needed to link your programs:} Archive libraries for system
+interfaces.
+
+@item SUNWbtool
+@emph{Needed to build your programs:} ``SPARCCompilers
+2.0 Bundled tools''.  Most of the contents of @file{/usr/ccs/bin}
+(most notably, the assembler) come from this package.
+
+@item SUNWesu
+@emph{Needed to install the Developer's Kit:} ``Extended System
+Utilities''.  The decompression program (@code{compress},
+@code{uncompress}, @code{zcat}) is in this package; it is used to
+extract the contents of the Developer's Kit.
+
+@item SUNWhea
+@emph{Needed to complete installation and compile your programs:} Header
+files (@file{/usr/include}).
+
+@item SUNWtoo
+@emph{Needed to link your programs:} ``Programming Tools'', notably the
+linker, @code{/usr/ccs/bin/ld}.
+@end table
+
+@noindent
+One additional optional package may be of interest:
+
+@table @code
+@item SUNWlibm
+Sun's math subroutine library.  This is not required, however, as a free
+@samp{libm.a} is part of the Developer's Kit.
+@end table
+
+@ifset TAPEinst
+@node A tape drive
+@subsection A tape drive
+You need access to a tape drive that can read the distribution.
+The drive need not be on the ||HOST|| where you want to run the
+software; but it is best if the machine with a tape drive and your
+||HOST|| can mount a common file system.  At the very least, you need
+some sort of file transfer capability between the machine with a
+tape drive and your ||HOST||.
+@end ifset
+
+@node Disk space
+@subsection Disk space
+The total space required to extract and install
+binaries and source for all programs is
+||DF|| megabytes.
+
+The software is configured to go into @file{/opt/cygnus-sol2-||RELNO||}.  If you have
+space available, but not in the same file system as @file{/opt}, you can
+use @samp{ln -s} to create @file{/opt/cygnus-sol2-||RELNO||} as a symbolic link to the
+file system where you do have the space available.
+
+@ifclear FTPorCD
+If you don't have enough space, you may be able to install binaries only;
+see @ref{Limited Space,,Not Enough Space}.  The space required for
+installing the binaries on ||HOST|| systems is ||BD|| megabytes.
+@end ifclear
+
+@node Write access
+@subsection Write access
+You need write access to @file{/opt}, or at least to an existing
+@file{/opt/cygnus-sol2-||RELNO||} directory.  If you can't write in
+@file{/opt} or @file{/opt/cygnus-sol2-||RELNO||}, see @ref{No access,,No
+Access to @file{/opt}}.
+
+@ifclear FTPorCD
+Root access is @emph{not} necessary to run the installation itself;
+but you might need it briefly 
+@ifset CDROMinst
+to mount the @sc{cd-rom} drive, and
+@end ifset
+to arrange for a writable @file{/opt/cygnus-sol2-||RELNO||} directory.  The detailed
+installation instructions show when this may be necessary.  We recommend
+you avoid @samp{su root} whenever possible.
+@end ifclear
+
+@ifclear FTPorCD
+@node Installing
+@chapter Installing the Developer's Kit
+
+@iftex
+This note shows the different parts of examples like this:
+@table @asis
+@item Computer output is shown in @code{typewriter font.}
+@item Your input is indicated by @b{a bold typewriter font.}
+@item Text to be replaced, rather than typed verbatim, is in @var{this font.}
+@item Comments appear in @i{italic font}.
+@end table
+@end iftex
+In examples, we show the system prompt as @samp{eg$}.
+
+The Cygnus cygnus-sol2-||RELNO|| ||MEDIUM|| contains two separate
+files.  The first file is a script called @code{Install};
+the second file contains the Developer's Kit software.  To get
+the software onto your system, you need to make sure you have the space
+you'll need for it, and get the @code{Install} script off the ||MEDIUM||.
+Then you can use the @code{Install} script to choose what else to
+install.
+
+Two checklists follow.  The first checklist shows what to do if you have
+a ||MEDIUM|| drive on the ||HOST|| where you want to install the
+Developer's Kit; the second shows how to use another networked machine
+to read the ||MEDIUM||, then finish the installation on your ||HOST||.
+
+Both checklists suggest installing the Developer's Kit under
+@file{/opt} (if you like, via a symbolic link from another location).
+We recommend you use this location for the software, because the
+precompiled, ready-to-run versions of the tools are configured this
+way.  (If you want to use a different location, and cannot establish a
+symbolic link from it to @file{/opt/cygnus-sol2-||RELNO||}, please see
+@ref{Install-Options,,Installation Options}.  To use the software
+conveniently after installing elsewhere, see @ref{Paths,,Changing the
+Paths}.)
+
+Both checklists are very similar to @ref{Brief,,Installing in Brief},
+but provide more discussion of each step, and offer alternatives for
+||MEDIUM|| drives, for systems whose available disk space is not in
+@code{/opt}, and for installing only portions of the Developer's Kit.
+
+@menu
+* local-install::               Installing with a local ||MEDIUM|| drive
+* cross-install::               Installing with another machine's ||MEDIUM|| drive
+@end menu
+
+@node local-install
+@section Installing in @file{/opt}, with a local ||MEDIUM|| drive
+
+This procedure is for a ||HOST|| that has its own ||MEDIUM|| drive.  
+
+Installing this way will install all the source code, plus the binaries for
+the ||HOST||.  If you don't want both source and binaries, stop after
+extracting @code{Install} from the ||MEDIUM||, and read about what options you
+can use with @code{Install} in @ref{Install-Options,,Installation
+Options}.  For examples of variations on what to install,
+see @ref{Examples,,Installation Examples}.
+
+@enumerate
+@item
+Make sure that you have all the required Solaris 2 OS packages:
+@code{SUNWesu}, @code{SUNWhea}, @code{SUNWbtool}, @code{SUNWarc}, and
+@code{SUNWtoo}.  You can use @code{pkginfo} to check; see
+@ref{Optional OS packages}.
+
+@item
+Check that you have enough space available (@pxref{Disk space}) in
+@file{/opt}.  You can use @samp{df /opt} to check.
+
+@item
+Check whether you can write in @file{/opt}:
+
+@cartouche
+@example
+eg$ @b{touch /opt/cygnus-test; rm /opt/cygnus-test}
+@end example
+@end cartouche
+
+@noindent
+@emph{If you get no errors from this line, skip the next step.}
+
+@item
+If you got ``No such file or directory'' or ``Permission denied''
+errors, you may need to use another group, or an account that has
+permission to write in @file{/opt} or in an existing
+@file{/opt/cygnus-sol2-||RELNO||} directory.  See @ref{No access,,No Access
+to @file{/opt}}.  If only @code{root} has access, the simplest procedure
+is to @code{su root} @emph{briefly}, to create a writable
+@file{/opt/cygnus-sol2-||RELNO||}.  For instance:
+
+@cartouche
+@example
+eg$ @b{su root}
+password:           @i{enter root password}
+# @b{mkdir /opt/cygnus-sol2-||RELNO||}        @i{ignore error if any}
+# @b{chmod 777 /opt/cygnus-sol2-||RELNO||}
+# @b{exit}              @i{give up root access}
+eg$
+@end example
+@end cartouche
+
+@ifset TAPEinst
+@item
+Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
+your system's tape drive.
+
+@item
+find out the name of the @emph{non-rewinding} tape device that can read
+the release tape, on your machine.  Cygnus release tapes are labelled to
+identify the kind of tape used---either QIC-24 or Exabyte.
+
+You will most likely use @file{/dev/rmt/0ln} (the last three characters
+are zero, el, en) as the tape device, regardless of which of the two
+kinds of tape you have; see @samp{man st} for details on how tape
+devices are named on Solaris 2.
+
+However, the correct device name depends on how your system's tape
+drives were installed; ask your system administrator.  If the tape drive
+you plan to use is your system's only tape drive, @file{/dev/rmt/0ln} is
+very likely.  Otherwise it may be something like @file{/dev/rmt/1ln}.
+
+Our examples show @file{/dev/rmt/0ln} for the tape device, as this is
+the most common case.
+
+@item
+The first file on the tape is a script called @code{Install}.  That
+script automates most of the installation procedure---but first you need
+to bootstrap the installation by getting @code{Install} itself from the
+tape.  It doesn't really matter where you put this initial copy of
+@code{Install}; it is only used to get things started---these examples
+assume you put it in @file{/tmp}.  When you use this copy of
+@code{Install} to extract software from the tape, another copy of
+@code{Install} will be saved in @file{/opt/cygnus-sol2-||RELNO||}.
+
+These commands will get @code{Install} into the @file{/tmp} directory
+(remember, you may need something slightly different from
+@file{/dev/rmt/0ln} as the device name for the appropriate tape drive on
+your system):
+
+@cartouche
+@example
+eg$ @b{cd /tmp}
+eg$ @b{tar xfov /dev/rmt/0ln Install}
+@end example
+@end cartouche
+
+A frightening five-line message beginning ``@code{WARNING}'' and ending
+with ``@code{Sense Key: Unit Attention}'' is very common at this point.
+It does not indicate anything is wrong; on the contrary, it's the
+operating system's way of letting you know that it noticed you put in a
+tape.
+
+If you get any error messages beginning ``tar: can't open'', check that
+the tape is correctly placed in your tape drive, and that you typed the
+right name where we show @file{/dev/rmt/0ln}.  Some errors can be
+corrected by reseating the tape in the tape drive and trying again.
+@end ifset
+
+@quotation
+@emph{If you don't want both source and binaries, stop now,} and read about
+what options you can use with @code{Install} in
+@ref{Install-Options,,Installation Options}.  For examples of variations
+on what to install, see @ref{Examples,,Installation Examples}.
+@end quotation
+
+@item
+Now you can extract your Developer's Kit software by running
+@code{Install}.  Use the @samp{-tape=} option to specify where
+the software comes from:
+
+@cartouche
+@example
+eg$ @b{/tmp/Install -tape=/dev/rmt/0ln}
+@end example
+@end cartouche
+
+This is a time-consuming step.  @code{Install} will begin by using
+@code{tar} to extract software for your system, leaving a log in
+@file{/opt/cygnus-sol2-||RELNO||/tar.log}.  Then it prepares copies of your system
+header files, converted to comply with @sc{ansi} C
+(@pxref{Why-fixincludes,,Why Convert System Header Files?}); a log for
+this step goes in @file{/opt/cygnus-sol2-||RELNO||/fixincludes.log}.  @emph{Your
+system's original header files are not changed;} @code{Install} writes
+the converted copies in a separate, @sc{gcc}-specific directory.
+
+As it executes, @code{Install} displays occasional messages to keep you
+informed about which of these steps it's executing.  Among them, these
+messages mark completion of the major stages of installation:
+
+@cartouche
+@example
+Cygnus Support software distribution extracted!
+
+Fixed include files installed!
+
+Cygnus Support software distribution tested!
+
+Done.
+@end example
+@end cartouche
+
+@ifset CUSTOMER
+@item
+In case you need to send problem reports to Cygnus, we've
+included a script @code{send_pr} (and a supporting online template) to
+structure and transmit your reports.  Please use the
+script @code{install_cid} to record your Cygnus customer ID in your copy
+of the problem report form.  (You can find your customer ID in the cover
+letter that came with this release; or call the Cygnus hotline, 
+@w{+1 415 322 7836}.)  This will enable us to respond as quickly as
+possible to any problem reports you send.
+
+@cartouche
+@example
+eg$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
+install_cid:`@var{ID}' is now the default customer ID for send_pr
+@end example
+@end cartouche
+@end ifset
+
+@item
+Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
+Programs}):
+
+@cartouche
+@example
+eg$ @b{cd} @b{/opt}
+eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
+@end example
+@end cartouche
+
+@item
+We recommended permissions @code{777} for the @file{/opt/cygnus-sol2-||RELNO||}
+directory, to be sure you could run this procedure.  However, for the
+long term, it is usually not a good idea to leave directories
+world-writable (especially directories where executables are found).
+
+For better security, remove public write access from @file{/opt/cygnus-sol2-||RELNO||}.
+See your System Administrator for the correct permissions at your site.
+@end enumerate
+
+You're done!  Anyone who puts @samp{/opt/cygnus/bin} in her or his
+@code{PATH} can use the Developer's Kit.
+
+@page
+@node cross-install
+@section Installing in @file{/opt}, with another machine's ||MEDIUM|| drive 
+This checklist is for a ||HOST|| that does not have its own ||MEDIUM|| drive,
+but can share a file system with another machine that does have a ||MEDIUM||
+drive.  The other machine need not be a ||HOST||.  
+
+Installing this way will install all the source code, plus the binaries for
+the ||HOST||.  If you don't want both source and binaries, stop after
+extracting @code{Install} from the ||MEDIUM||, and read about what options you
+can use with @code{Install} in @ref{Install-Options,,Installation
+Options}.  For examples of variations on what to install,
+see @ref{Examples,,Installation Examples}.
+
+@enumerate
+@item
+Find a machine with a suitable ||MEDIUM|| drive on the same network as your
+||HOST||, and sign on to it.  If the only machine with a ||MEDIUM||
+drive isn't on the network, see @ref{No Drive,,No Local ||MEDIUM|| Drive}.
+
+@item
+Make sure a decompression program is available.  The installation
+procedure requires @code{compress} (used with the @samp{-d} option, in
+the Cygnus @code{Install} script).  @code{compress} is present on most
+Unix systems.  On Solaris 2 systems, it is part of the optionally
+installed @code{SUNWesu} package.
+
+@item
+Choose a directory where you will install the Developer's Kit.  The
+directory must be accessible from both machines (the one with the ||MEDIUM||
+drive, and the ||HOST|| where you want to use the software)---for
+example, over NFS.  Wherever this note uses @var{shr}, substitute the
+name of the directory you chose.
+
+The shared directory need not have the same name on both machines,
+though we show it as @var{shr} on both, for simplicity.
+
+@item
+Check that you have enough space available (@pxref{Disk space}) in
+@var{shr}.  You can use @samp{df @var{shr}} to check.
+
+@item
+Check whether you can write in @var{shr}:
+
+@cartouche
+@example
+eg$ @b{touch @var{shr}/cygnus-test; rm @var{shr}/cygnus-test}
+@end example
+@end cartouche
+
+@noindent
+@emph{If you get no errors from this line, skip the next step.}
+
+@item
+If you got ``No such file or directory'' or ``Permission denied''
+errors, you may need to use another group, or an account that has
+permission to write in @var{shr} or in an existing
+@file{/@var{shr}/cygnus-sol2-||RELNO||} directory.  See @ref{No access,,No
+Access to @file{/opt}}.  If only @code{root} has access, the simplest
+procedure is to @code{su root} @emph{briefly}, to create a writable
+@file{/@var{shr}/cygnus-sol2-||RELNO||}.  For instance:
+
+@cartouche
+@example
+eg$ @b{su root}
+password:           @i{(enter root password)}
+# @b{mkdir @var{shr}/cygnus-sol2-||RELNO||}      @i{(ignore error if any)}
+# @b{chmod 777 @var{shr}/cygnus-sol2-||RELNO||}
+# @b{exit}              @i{root access not needed beyond this}
+eg$
+@end example
+@end cartouche
+
+@ifset TAPEinst
+@item
+Load the Cygnus Support release tape (labelled ``cygnus-sol2-||RELNO||'') into
+the system's tape drive.
+
+@item
+find out the name of the @emph{non-rewinding} tape device on the machine
+that can read the release tape.  Cygnus release tapes are labelled to
+identify the kind of tape used---either QIC-24 or Exabyte.
+
+On ||HOST|| (or compatible) systems running Solaris 2, you will most
+likely use @file{/dev/rmt/0ln} (the last three characters are zero, el,
+en) as the tape device, regardless of which of the two kinds of tape you
+have; see @samp{man st} for details on how tape devices are named on
+Solaris 2.
+
+However, the correct device name depends on the kind of system, and on
+how the system's tape drives were installed; ask your system
+administrator.  On systems running Solaris or other Unix SVr4 variants,
+if the tape drive you plan to use is your system's only tape drive,
+@file{/dev/rmt/0ln} is very likely.  Otherwise it may be something like
+@file{/dev/rmt/1ln}.
+
+These examples show @file{/dev/@var{tape}} for the tape device; remember
+to substitute the appropriate name.
+
+@item
+The first file on the tape is a script called @code{Install}.  That
+script automates most of the installation procedure---but first you need
+to bootstrap the installation by getting @code{Install} itself from the
+tape.  It doesn't really matter where you put this initial copy of
+@code{Install}; it is only used to get things started---these examples
+assume you put it in @file{/tmp}.  When you use this copy of
+@code{Install} to extract software from the tape, another copy of
+@code{Install} will be saved in @file{@var{shr}/cygnus-sol2-||RELNO||}.  Later, you
+will use that second copy to finish the installation on your ||HOST||.
+
+These commands will get @code{Install} into the @file{/tmp} directory
+(remember to fill in the appropriate device for @file{/dev/@var{tape}}:
+
+@cartouche
+@example
+eg$ @b{cd /tmp}
+eg$ @b{tar xfov /dev/@var{tape} Install}
+@end example
+@end cartouche
+
+On Solaris-2 systems, a frightening five-line message beginning
+``@code{WARNING}'' and ending with ``@code{Sense Key: Unit Attention}''
+is very common at this point.  It does not indicate anything is wrong;
+on the contrary, it's the operating system's way of letting you know
+that it noticed you put in a tape.  Other systems may provide similar
+amenities.
+
+If you get any error messages beginning with something like ``tar: can't
+open'', check that the tape is correctly placed in your tape drive, and
+that you typed the right name for @var{tape}.  Some errors can be
+corrected by reseating the tape in the tape drive and trying again.
+@end ifset
+
+@quotation
+@emph{If you don't want both source and binaries, stop now,} and read about
+what options you can use with @code{Install} in
+@ref{Install-Options,,Installation Options}.  For examples of variations
+on what to install, see @ref{Examples,,Installation Examples}.
+@end quotation
+
+@item
+Now you can extract all the software by running @samp{Install extract}.
+Use the @samp{-tape=} option to specify where the software comes from, and the
+@w{@samp{-installdir=}} option to point to the @var{shr} directory.
+
+@cartouche
+@example
+eg$ @b{cd} @b{/tmp}
+eg$ @b{./Install} @b{extract} @b{-tape=||MEDvar||} @b{-installdir=@var{shr}}
+@end example
+@end cartouche
+
+This is a time-consuming step.  @code{Install} will use @code{tar} to
+extract software for your system, leaving a log in the file
+@file{@var{shr}/cygnus-sol2-||RELNO||/tar.log}.
+
+When @code{Install} is done extracting the software, it
+displays the messages
+
+@cartouche
+@example
+Cygnus Support software distribution extracted!
+Done.
+@end example
+@end cartouche
+
+@item
+Log on to the ||HOST|| where you want to use the software.
+
+@item
+Make sure that your ||HOST|| has the required Solaris 2 OS packages:
+@code{SUNWhea}, @code{SUNWbtool}, @code{SUNWarc}, and @code{SUNWtoo}
+(@pxref{Optional OS packages}).  You can use @code{pkginfo}
+to check.
+
+@item
+Create a symbolic link from @file{@var{shr}/cygnus-sol2-||RELNO||}
+to @file{/opt/cygnus-sol2-||RELNO||} on your ||HOST||.  You may
+need to become @code{root} @emph{briefly}, as in this example:
+
+@cartouche
+@example
+eg-sol2$ @b{su root}
+password:
+# @b{ln -s @var{shr}/cygnus-sol2-||RELNO|| /opt/cygnus-sol2-||RELNO||}
+# exit              @i{root access not needed beyond this}
+@end example
+@end cartouche
+
+@noindent
+If you don't have access to any account with permission to write in
+@file{/opt}, see @ref{No access,,No Access to @file{/opt}}.
+
+@item
+Fix up system header files on your ||HOST||, and test the installation,
+with the copy of @code{Install} that was placed in
+@file{@var{shr}/cygnus-sol2-||RELNO||} (now accessible as @file{/opt/cygnus-sol2-||RELNO||} on your
+machine):
+
+@cartouche
+@example
+eg-sol2$ @b{cd} @b{/opt/cygnus-sol2-||RELNO||}
+eg-sol2$ @b{./Install} @b{f}@b{ixincludes} @b{test}
+@end example
+@end cartouche
+
+@noindent
+A log for the @code{fixincludes} step goes in
+@file{/opt/cygnus-sol2-||RELNO||/fixincludes.log}.  @emph{Your
+system's original header files are not changed;} @code{Install} writes
+the converted copies in a separate, @sc{gcc}-specific directory.
+
+When each stage of this work is complete, @code{Install} displays these
+messages (the last, @samp{Done.}, simply indicates that @code{Install}
+has finished executing).
+
+@cartouche
+@example
+Fixed include files installed!
+
+Cygnus Support software distribution tested!
+
+Done.
+@end example
+@end cartouche
+
+@ifset CUSTOMER
+@item
+In case you need to send problem reports to Cygnus, we've
+included a script @code{send_pr} (and a supporting online form) to
+structure and transmit your reports.  Please use the
+script @code{install_cid} to record your Cygnus customer ID in your copy
+of the problem report form.  (You can find your customer ID in the cover
+letter that came with this release; or call the Cygnus hotline, 
+@w{+1 415 322 7836}.)  This will enable us to respond as quickly as
+possible to any problem reports you send.
+
+@cartouche
+@example
+eg-sol2$ @b{/opt/cygnus-sol2-||RELNO||/bin/install_cid @var{ID}}
+install_cid:`@var{ID}' is now the default customer ID for send_pr
+@end example
+@end cartouche
+@end ifset
+
+@item
+Make a symbolic link to simplify pathnames (@pxref{Running,,Running the
+Programs}):
+
+@cartouche
+@example
+eg$ @b{cd} @b{/opt}
+eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
+@end example
+@end cartouche
+
+@item
+We recommended permissions @code{777} for the @file{/opt/cygnus-sol2-||RELNO||} and
+@file{@var{shr}/cygnus-sol2-||RELNO||} directories, to make sure you could run this
+procedure.  However, for the long term, it is usually not a good idea to
+leave directories world-writable (especially directories where
+executables are found).
+
+For better security, remove public write access from @file{/opt/cygnus-sol2-||RELNO||}
+and @file{@var{shr}/cygnus-sol2-||RELNO||}.  See your System Administrator for the
+correct permissions at your site.
+@end enumerate
+
+You're done!  Anyone who puts @samp{/opt/cygnus/bin} in her or his
+@code{PATH} can use the Developer's Kit.
+
+@node Examples
+@chapter Installation Examples
+
+Once you've got the @code{Install} script from your ||MEDIUM||,
+you can tell @code{Install} what software to install, what form of the
+programs you need, and what installation steps to do.  Here are some
+examples covering common situations.  For a full explanation of each
+possible @code{Install} argument, see @ref{Install-Options,,Installation
+Options}.
+
+The default ||MEDIUM|| drive for @code{Install} is @code{/dev/rmt/0ln}, which is
+right for the most common cases on Solaris 2 systems.  If your
+||MEDIUM|| drive is different, you need to use the
+@samp{-tape=||MEDvar||} option; the examples show this option for
+completeness.  
+@ifset TAPEinst
+Remember to specify a @emph{non-rewinding} tape device.
+@end ifset
+
+@menu
+* binaries::                    Installing binaries only
+* ||HOSTstr||-remote::          Reading tape on any machine, finishing on ||HOST||
+* source-remove::               Removing Source
+@end menu
+
+@node binaries
+@section Installing binaries only
+
+@cartouche
+@example
+eg$ @b{./Install -tape=||MEDvar|| bin}
+@end example
+@end cartouche
+
+If you don't want the source---for instance, to save space---you can use
+the argument @samp{bin}.
+
+@node ||HOSTstr||-remote
+@section Reading ||MEDIUM|| on any SVr4 machine, finishing on ||HOST||
+
+@cartouche
+@example
+@emph{On an SVr4 machine on your network with a ||MEDIUM|| drive:}
+eg-tp$ @b{./Install -tape=/dev/rmt/0ln -installdir=@var{shr} extract}
+@end example
+@end cartouche
+
+@cartouche
+@example
+@emph{On your ||HOST||}
+eg$ @b{ln -s @var{shr}/cygnus-sol2-||RELNO|| /opt/cygnus-sol2-||RELNO||}
+eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
+eg$ @b{./Install @b{f}ixincludes test}
+@end example
+@end cartouche
+
+@noindent
+If your ||HOST|| doesn't have a ||MEDIUM|| drive, but another machine that can
+mount some shared directory @var{shr} does have one, you can carry out
+the first step of the installation from the machine with a ||MEDIUM|| drive,
+as shown.  Note that you have to say @samp{extract} on the
+@code{Install} command line.  This alerts @code{Install} to stop the
+install procedure after it reads the software.  You still have to finish the
+installation, but the last two steps have to run on your ||HOST||.  (If
+you forget, there's no great harm done: @code{Install} will notice that
+it can't carry out a full installation on the wrong machine, and will
+stop with an error message---then you can go back and try again.  When
+@code{Install} notices a problem like this, it doesn't carry out
+@emph{any} action other than giving a helpful error message).
+
+The @samp{fixincludes} part of the installation is essential.  Please
+see @ref{Why-fixincludes,,Why Convert System Header Files?}, if you're
+curious.
+
+@node source-remove
+@section Removing Source
+The @code{Install} script can remove anything it can install.  For
+example, if after installing the complete Developer's Kit on your
+machine you decide to remove the source files:
+
+@cartouche
+@example
+eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
+eg$ @b{./Install remove source}
+@end example
+@end cartouche
+
+@noindent
+In general, to remove a part of the Developer's Kit, use the same
+@code{Install} command line that would extract that part, but add the
+keyword @code{remove}.  The @code{-tape} option is not necessary for
+removing.
+@c following "end" matches ifclear FTPorCD several nodes back!
+@end ifclear
+
+@node Install-Options
+@chapter Installation Options
+
+The command-line arguments and options to @code{Install} allow you to
+direct its operation in these ways:
+
+@ifclear FTPorCD
+@itemize @bullet
+@item
+@emph{What form of the programs} to install.  You can choose among ||HOST||
+binaries (argument @code{bin}) and source code (@code{source}).
+If you don't specify either of these, @code{Install} assumes you want
+both source, and binaries for a ||HOST|| running Solaris 2.
+@end itemize
+@end ifclear
+
+@itemize @bullet
+@item
+@emph{What installation actions} to carry out:
+@enumerate
+@ifclear FTPorCD
+@item
+extracting source from the ||MEDIUM|| (option
+@code{extract})
+@end ifclear
+@item
+writing @sc{ansi}-C conforming copies of your system include files (needed
+for the compilation tools; option @code{fixincludes})
+@item
+running a simple test of the installed programs
+(option @code{test})
+@end enumerate
+
+@ifclear FTPorCD
+The last two of these actions (@code{fixincludes} and
+@code{test}) can only run on your ||HOST||.  If you read the
+||MEDIUM|| on another machine, you must specify the @code{extract} option
+explicitly, to indicate that you don't expect the other two actions to
+run (and are aware of the need to run further installation steps on your
+||HOST||).
+
+@item
+@emph{Removing some of the release} after it's installed.
+
+@item
+@emph{Where to find the software distribution}, with the @samp{-tape} option.
+@end ifclear
+
+@item
+@emph{Where you want to install}, with the @samp{-installdir} option.
+@end itemize
+
+Here is a summary of the @code{Install} command-line options,
+followed by more detailed explanations:
+
+@ifclear FTPorCD
+@example
+Install @r{[} -tape=||MEDvar|| @r{]}
+       @r{[} -installdir=@var{directory} @r{]}
+       @r{[} bin @r{]} @r{[} source @r{]}
+       @r{[} extract @r{]} @r{[} fixincludes @r{]} @r{[} test @r{]}
+       @r{[} remove @r{]}
+@end example
+@end ifclear
+@ifset FTPorCD
+@example
+Install @r{[} fixincludes @r{]} @r{[} test @r{]}
+@end example
+@end ifset
+
+@ifset TAPEinst
+@table @code
+@item -tape=||MEDvar||
+@itemx -tape=@var{tarfile}
+Specify the @emph{non-rewinding} device name for your tape drive as
+@file{rmt/0ln} (the last three characters are zero, el, en).
+
+If you extract the installation script and compressed tarfile on some
+other system, and transfer them to your ||HOST|| for installation, use
+the name of the tarfile instead of a device name with @samp{-tape}.
+See @ref{No Drive,,No Local ||MEDIUM|| Drive}, for more discussion.
+
+@item -installdir=@var{directory}
+If you have no write access to @samp{/opt}, use this option to specify
+an alternate @var{directory} for your software---but beware: the
+software is configured to go in @samp{/opt/cygnus-sol2-||RELNO||}, and
+you'll have to override or change that too.  See @ref{Paths,,Changing the
+Paths}.
+
+@item bin
+@itemx source
+By default, @code{Install} extracts both source, and binaries for your
+||HOST||.  Instead of relying on the default, you 
+can use these options to say exactly what forms you
+want.  You need to do this if
+@itemize @bullet
+@item 
+you want only binaries, or
+@item
+you want only source.
+@end itemize
+
+@item extract
+@itemx fixincludes
+@itemx test
+A full installation includes up to three things: (1) extracting
+software; (2) creating @sc{ansi}-C conforming copies of your
+system's standard header files; and (3) testing the installation.
+You can execute these steps separately by specifying
+@samp{extract}, @samp{fixincludes}, or @samp{test} on the
+@code{Install} command line.  
+
+After you extract the software, @samp{fixincludes} is essential if you're
+using the compiler.  @samp{fixincludes} @emph{does not change your
+system's original header files;} @code{Install} writes the converted
+copies in a separate, @sc{gcc}-specific directory.
+See @ref{Why-fixincludes,,Why Convert System Header Files?}, for more
+discussion of the @samp{fixincludes} step.  @code{Install} will only
+attempt these two steps if you run it on the ||HOST||.
+
+@samp{test} is a confidence-building step, and doesn't
+actually change the state of the installed software.  
+The @samp{test} step may not make sense, depending on what
+other options you've specified---if you install only source, there's
+nothing to test.
+
+If you specify a step that doesn't make sense, or if you run @code{Install}
+on a different machine but try to run @code{fixincludes} or
+@code{test}, @code{Install} will notice the error, and exit
+(before doing anything at all) with an error message, so you can try
+again.
+
+When you run @samp{extract}, @code{Install} leaves a log file
+@file{tar.log} in the installation directory---by default, in
+@file{/opt/cygnus-sol2-||RELNO||}.  
+
+When you run @samp{fixincludes}, @code{Install}
+leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
+subdirectory.
+
+@item remove
+You can also use @code{Install} to remove parts of the release after
+you've installed them.  Identify what to remove with either of the
+command-line options @samp{source} or @samp{bin}, together with
+@samp{remove}.  @code{Install} will erase these parts of the
+installation from your system.  See @ref{Removing,,Removing Parts of the
+Developer's Kit}, for an example.
+@end table
+@end ifset
+
+@ifset FTPorCD
+@table @code
+@item fixincludes
+@itemx test
+These steps are performed when you run @code{Install} without
+arguments, but if you like you can select either of them explicitly.
+
+After you extract the software, @samp{fixincludes} is essential if you're
+using the compiler.  @samp{fixincludes} @emph{does not change your
+system's original header files;} @code{Install} writes the converted
+copies in a separate, @sc{gcc}-specific directory.
+See @ref{Why-fixincludes,,Why Convert System Header Files?}, for more
+discussion of the @samp{fixincludes} step.  @code{Install} will only
+attempt these two steps if you run it on the ||HOST||.
+
+@samp{test} is a confidence-building step, and doesn't
+actually change the state of the installed software.  
+
+When you run @samp{fixincludes}, @code{Install}
+leaves a log file @file{fixincludes.log} in the @file{cygnus-sol2-||RELNO||}
+subdirectory.
+@end table
+@end ifset
+
+
+@node Why-fixincludes
+@chapter Why Convert System Header Files?
+
+It is very important to run the @samp{fixincludes} step of installation
+(either explicitly, as @samp{Install fixincludes}, or by default when
+you run @code{Install} with no arguments).  You must do this on
+@emph{each installation}: if many ||HOST||s share the same binaries on a
+shared filesystem, you need only do it once---but if you install
+separate copies, you must run @code{Install fixincludes} on each.
+
+The C header files supplied with SVr4 versions of Unix depend on a
+questionable interpretation of the @sc{ansi} C standard: they test for a
+non-@sc{ansi} environment by checking whether @code{__STDC__} is defined
+as zero.  The @sc{ansi} standard actually only specifies that
+@code{__STDC__} will be defined to 1; if it is defined to any other
+value, the environment is not @sc{ansi} C compatible, and @sc{ansi} C
+says nothing about what that value might be.
+
+@sc{gcc} defines @code{__STDC__} to 1 when running with @samp{-ansi},
+when it functions as an ``@sc{ansi} C superset'' compiler.  (It also sets
+@code{__STRICT_ANSI__} when it runs with the @samp{-pedantic} option.)
+However, @sc{gcc} leaves @code{__STDC__} undefined when it is not
+running as an @sc{ansi} C compiler.
+
+Unfortunately, the Solaris 2 header files follow the SVr4 choice.  Since
+@sc{gcc} never defines @code{__STDC__} as 0, the distributed header
+files can leave out some declarations.  (Look in @file{/usr/include/time.h},
+for example.)
+
+@samp{Install fixincludes} makes copies of the system include files,
+which have these nonstandard features removed so that @sc{gcc} can
+process them.  These copies are placed in a new, @sc{gcc}-specific
+include directory---@emph{your system's original header files are not
+affected.} Once these fixed header files are created, @sc{gcc} finds and
+uses them automatically.
+
+If you don't run @code{fixincludes}, the GNU C compiler can only use the
+original system header files when you compile new C programs.  @emph{In
+some cases, the resulting programs will fail at run-time}.
+
+@node Running
+@chapter Running the Programs
+Anyone who wishes to run the Cygnus development tools will need to make
+sure the @code{PATH} environment variable will find them.  The simplest
+thing is to include @samp{/opt/cygnus-sol2-||RELNO||/bin} in the
+@code{PATH} variable.  Since the directory name contains the release
+number @samp{||RELNO||}, however, this approach will require changing
+the paths explicitly for all users when you install a new release.
+
+Our installation procedures recommended creating a symbolic link like
+this, to plan ahead for future releases:
+
+@example
+@cartouche
+eg$ @b{cd} @b{/opt}
+eg$ @b{ln} @b{-s} @b{cygnus-sol2-||RELNO||} @b{cygnus}
+@end cartouche
+@end example
+
+Then people can use settings like these in initialization files:
+
+@example
+@exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
+@cartouche
+@b{PATH=/opt/cygnus/bin:$PATH}
+@b{export PATH}
+@end cartouche
+@end example
+
+@example
+@exdent For C shell:
+@cartouche
+@b{set path=(/opt/cygnus/bin $path)}
+@end cartouche
+@end example
+
+@noindent
+You can also ensure that the @code{man} command can pick up the
+manual pages, using the @code{MANPATH} environment variable.
+
+@example
+@exdent For Bourne-compatible shells:
+@cartouche
+@b{MANPATH=/opt/cygnus/man:$MANPATH}
+@b{export MANPATH}
+@end cartouche
+@end example
+
+@example
+@group
+@exdent For C shell:
+@cartouche
+@b{setenv MANPATH /opt/cygnus/man:$MANPATH}
+@end cartouche
+@end group
+@end example
+
+@node Paths
+@chapter Changing the Paths
+The binaries shipped by Cygnus are configured for installation under the
+directory @file{/opt/cygnus-sol2-||RELNO||}.  In particular, @code{gcc}
+and the documentation browser @code{info} need to know the location of
+the distribution.  
+
+If you wish to run the tools after installing them in another location,
+you can either:
+@itemize @bullet
+@item
+use environment variables
+to tell the tools where to find pieces of the installation; or
+
+@item
+rebuild the tools from source, with your preferred paths built in.
+See @ref{Rebuilding,,Rebuilding from Source}, if you want to take this
+approach.
+@end itemize
+
+In rare circumstances, the auxiliary installation script
+@code{install_cid} will also require a workaround if you do not install
+in @file{/opt/cygnus-sol2-||RELNO||}.
+
+@subheading GCC Paths
+@c FIXME! Add something about specs file?
+You can run the compiler @sc{gcc} without recompiling, even if you
+install the distribution in an alternate location, by first setting the
+environment variable @samp{GCC_EXEC_PREFIX}.  This variable specifies
+where to find the executables, libraries, and data files used by the
+compiler.  Its value will be different depending on which set of
+binaries you need to run.  For example, if you install the distribution
+under @file{/local} (instead of the default @file{/opt}), you could set
+@samp{GCC_EXEC_PREFIX} as follows.  (You can type the first two lines as
+a single line, if you like; the example is split using the line
+continuation character @samp{\} only to make it fit in the space
+available.)
+
+@cartouche
+@example
+@b{GCC_EXEC_PREFIX=/local/cygnus-sol2-||RELNO||/lib/gcc-lib/}\
+@b{||HOSTstr||/||GCCvn||/}
+@b{export GCC_EXEC_PREFIX}
+@end example
+@end cartouche
+
+@noindent
+The example assumes you use a shell compatible with the Bourne shell; if
+you run the C shell, use the following instead.  (Again, the line
+continuation character @samp{\} is only used for convenience in the
+example; feel free to use a single line.)
+
+@cartouche
+@example
+@b{setenv GCC_EXEC_PREFIX /local/cygnus-sol2-||RELNO||/lib/gcc-lib/}\
+@b{||HOSTstr||/||GCCvn||/}
+@end example
+@end cartouche
+
+@quotation
+@emph{Warning: The trailing slash @samp{/} is important}.  The @code{gcc}
+program uses @samp{GCC_EXEC_PREFIX} simply as a prefix.  If you omit the
+slash (or make any other mistakes in specifying the prefix), @code{gcc}
+will fail with a message beginning @samp{installation problem, cannot
+exec@dots{}}.
+@end quotation
+
+@subheading @code{info} Paths
+The standalone documentation browser @code{info} also needs to know the
+location of its documentation files in the distribution.   The default
+location, @file{/opt/cygnus-sol2-||RELNO||/info}, is compiled in.
+If you install elsewhere, set the environment variable @code{INFOPATH}
+to indicate the alternate location.
+
+For example, again assuming you installed under @file{/local}:
+
+@example
+@exdent For shells compatible with Bourne shell (@code{/bin/sh}, @code{bash}, or Korn shell):
+@cartouche
+@b{INFOPATH=/local/cygnus-sol2-||RELNO||/info}
+@b{export INFOPATH}
+@end cartouche
+@end example
+
+@example
+@exdent For C shell:
+@cartouche
+@b{setenv INFOPATH /local/cygnus-sol2-||RELNO||/info}
+@end cartouche
+@end example
+
+@subheading @code{install_cid} Paths
+The auxiliary script @code{install_cid} is provided as a convenience, to
+fill in your site's customer ID as the default for your local version of
+the Cygnus @code{send_pr} problem-reporting script.
+
+If you don't install in @file{/opt/cygnus-sol2-||RELNO||}, @samp{install_cid
+@var{ID}} will still work correctly in most cases.  However,
+there is one situation where @code{install_cid} fails:
+
+@itemize @bullet
+@item
+@emph{if} your site already has a release tree for
+@samp{/opt/cygnus-sol2-||RELNO||}, 
+@item
+@emph{and} you run @code{Install} with an alternative installation
+directory.
+@end itemize
+
+@noindent
+In this case, you must manually edit your customer ID into your site's
+copy of @code{send_pr}.  Please call the Cygnus hotline, 
+@w{+1 415 322 7836}, if you have any trouble with this.
+
+@node Trouble
+@chapter Some Things that Might go Wrong
+
+We've tried to make the installation of your Developer's Kit as painless
+as possible.  Still, some complications may arise.  Here are suggestions
+for dealing with some of them.
+
+@ifclear FTPorCD
+@menu
+* No Drive::                    No local ||MEDIUM|| drive
+* Limited Space::               Not Enough Space
+* No access::                   No Access to @file{/opt}
+* Install errors::              Error Messages from @code{Install}
+@end menu
+@end ifclear
+@ifset FTPorCD
+@menu
+* No access::                   No Access to @file{/opt}
+* Install errors::              Error Messages from @code{Install}
+@end menu
+@end ifset
+
+
+@ifclear FTPorCD
+@node No Drive
+@section No local ||MEDIUM|| drive
+If your ||HOST|| doesn't have an appropriate ||MEDIUM|| drive, you may
+still be able to install your software.  Check with your system
+administrator to see if another machine at your site has a drive
+you can use.  If so:
+@table @emph
+@item If a shared filesystem is available
+between the two machines, and it has enough space, go ahead and run
+@samp{Install extract -installdir=@var{shr}} from the machine with a
+||MEDIUM|| drive, where @var{shr} is a directory visible to both
+machines.  Then create @samp{/opt/cygnus-sol2-||RELNO||} on your
+||HOST|| (the one where you want to install this Solaris 2 Developer's
+Kit) as a symbolic link to @file{@var{shr}/cygnus-sol2-||RELNO||}.
+You'll have to run @samp{Install fixincludes} and @samp{Install test}
+from your ||HOST|| afterwards; see @ref{cross-install,,Installing with
+another machine's ||MEDIUM|| drive}.
+
+@item If some form of filetransfer is available
+(such as @code{uucp}), read the ||MEDIUM|| using a system utility 
+(for instance, @code{dd} on Unix systems; see the system documentation for
+the machine with a tape drive).  
+
+There are two files on the distribution ||MEDIUM||; the first is
+just the @code{Install} script, and the second is a compressed
+@code{tar} format file containing the rest of the release.  Read both of
+these files, and transfer them to your own machine.  Then run
+@code{Install} as shown in @ref{local-install,,Installing with a local
+||MEDIUM|| drive}, but use @samp{-tape=@var{tarfile}} to specify the name of
+the installation file, instead of @samp{-tape=/dev/rmt/0ln} as shown in
+the examples.  In the simplest case, for example (starting after you've
+transferred @code{Install} and the tar file to your system):
+
+@cartouche
+@example
+eg$ @b{./Install -tape=@var{tarfile}}
+@end example
+@end cartouche
+
+@end table
+
+@node Limited Space
+@section Not Enough Space
+If you don't have enough space to install all of the distribution, you
+can instead extract only the compiled code, or only the source.
+
+The following table summarizes the approximate space (rounded up to the
+next megabyte) needed for source and binaries.
+There is a little overlap between the partial installations: the
+documentation, and documentation tools, are always installed.
+
+@table @r
+@item ||BD|| MB
+||HOST|| binaries
+
+@item ||SD|| MB
+source code for all programs
+
+@item ||DF|| MB
+||HOST|| total
+@end table
+
+You can easily extract these components independently of one another, by
+using the @samp{source} or @samp{bin} arguments to the @code{Install}
+script provided with your release.
+See @ref{Install-Options,,Installation Options}.
+@end ifclear
+
+@node No access
+@section No Access to @file{/opt}
+
+If you don't have write access to @file{/opt}, first check whether
+you're in the right group.  The command @samp{ls -lLdg /opt} will show
+you whether any group has write access to @file{/opt}, and the command
+@code{groups} will show you what groups you're authorized to use.  If
+you're authorized to use a group with the right access, use @samp{newgrp
+@var{groupname}} to switch to that group.
+
+Otherwise, you may be able to use @code{root} (if you have the password)
+to give yourself temporary write access.  There's no need to run the whole
+installation procedure as @code{root}; just use @code{root} access
+briefly like this---
+
+@cartouche
+@example
+eg$ @b{su root}
+password:           @i{(enter root password)}
+# @b{mkdir @var{shr}/cygnus-sol2-||RELNO||}      @i{(ignore error if any)}
+# @b{chmod 777 @var{shr}/cygnus-sol2-||RELNO||}
+# @b{exit}              @i{root access not needed beyond this}
+@end example
+@end cartouche
+
+@noindent
+If you do set write permissions to @code{777} to run the installation
+procedure, remember to remove public write access when you're done, to
+avoid potential security problems.
+
+If none of these things help, and you can't get write access to
+@file{/opt} or @file{/opt/cygnus-sol2-||RELNO||},
+@ifset TAPEinst
+use the @samp{-installdir=@var{directory}} option to @code{Install} to
+specify a different installation directory, where you @emph{can} write.
+For example, if all the other installation defaults are right, you can
+execute something like @samp{./Install -installdir=@var{mydir}}.
+@end ifset
+@ifset FTPorCD
+use a different installation directory, where you @emph{can} write.
+@end ifset
+You will also have to either override default paths for the pre-compiled
+tools, or else recompile the software.
+
+@quotation
+@emph{WARNING:} If you can't install in
+@file{/opt/cygnus-sol2-||RELNO||} (or link your installation directory
+to that name), some of the defaults configured into the
+cygnus-sol2-||RELNO|| distribution won't work.  See @ref{Paths,,Changing
+the Paths}, for information on overriding or reconfiguring these
+defaults.
+@end quotation
+
+@node Install errors
+@section Error Messages from @code{Install}
+The @code{Install} script checks for many errors and inconsistencies in
+the way its arguments are used.  The messages are meant to be
+self-explanatory.  
+
+@ifclear FTPorCD
+Here is a list of a few messages where further information might be
+useful:
+@table @code
+@item Cannot read from TAPE device @dots{}
+The error message ends with the device or file @code{Install} was trying
+to use.  Please check that it is the device or file you intended;
+possible causes of trouble might include leaving off the @samp{/dev/}
+prefix at the front of a device name.  A typo in the name might also
+cause this problem.
+
+@ifset TAPEinst
+If the problem is neither of these things, perhaps your tape device can't
+read our tape; see @ref{No Drive,,No Local Tape Drive}, for a discussion
+of how to use another machine's tape drive.
+@end ifset
+
+@item @dots{} This is a problem.
+@itemx Cannot cd to @var{installdir}
+@itemx I do not know why I cannot create @var{installdir}
+@itemx hello.c fails to run
+@itemx test-ioctl.c fails to run
+@itemx I do not know how to remove an arch called @dots{}
+These errors (the first covers anything that ends in @samp{This is a
+problem}) are from paranoia checks; they are issued for situations that
+other checks should have covered, or for unlikely situations that
+require further diagnosis.  
+@end table
+@end ifclear
+
+If you get one of these messages, please 
+@itemize @bullet
+@ifset CUSTOMER
+@item
+@strong{call the Cygnus hotline, +1 415 322 7836}, or 
+@end ifset
+@item
+send electronic mail to @samp{help@@cygnus.com}. 
+@end itemize
+
+@node Rebuilding
+@chapter Rebuilding From Source
+
+@ifclear FTPsplit
+All Cygnus products are free software; your Developer's Kit includes
+complete source code for all programs.
+@end ifclear
+@ifset FTPsplit
+All Cygnus products are free software.  The source code for all programs
+in your Developer's Kit is available from the same place as the precompiled
+programs, in the file @file{@var{dist}/cygnus-sol2-||RELNO||.src.tar.Z}.
+@end ifset
+
+Cygnus Support has implemented an automatic configuration scheme to
+adapt the programs to different environments.
+
+Rebuilding the programs from source requires these steps:
+@enumerate
+@item
+configuration
+@item
+compilation
+@item
+installation
+@end enumerate
+
+For example, executing the following commands in sequence will rebuild
+and install a ||HOST|| native version of all the tools in a nonstandard
+directory:
+
+@cartouche
+@example
+eg$ @b{cd @var{installdir}/src}
+
+eg$ @b{./configure ||HOSTstr|| -prefix=/local/gnu}
+Created "Makefile" in @var{installdir}/src
+
+eg$ @b{make clean all info install install-info}
+@end example
+@end cartouche
+
+@noindent
+We discuss each step in detail in the following sections.
+
+@menu
+* Configuration::               Configuration
+* Config Names::                Specifying Names for Hosts and Targets
+* configure Options::           @code{configure} Options
+* Compilation::                 Compilation
+* Installation::                Installation
+@end menu
+
+@node Configuration
+@section Configuration
+
+You can configure the software in this release by using the shell
+script called @code{configure}.  The shell script requires one argument:
+the host type.  There are also several possible options, including a
+@samp{-target=} option to configure for cross-system development.
+
+@node Config Names
+@section Specifying Names for Hosts and Targets
+
+The specifications used for hosts and targets in the @code{configure}
+script are based on a three-part naming scheme, but some short predefined
+aliases are also supported.  The full naming scheme encodes three pieces
+of information in the following pattern:
+
+@example
+@var{architecture}-@var{vendor}-@var{os}
+@end example
+
+For example, you can use the alias @code{sun4sol2} as a @var{host} argument
+or in a @samp{-target=@var{target}} option, but the equivalent full name
+is @samp{sparc-sun-solaris2}.
+
+@quotation
+@emph{Warning:} @code{configure} can represent a very large number of
+combinations of architecture, vendor, and OS.  There is by no means
+support for all possible combinations!
+@end quotation
+
+@node configure Options
+@section @code{configure} Options
+
+This section summarizes the @code{configure} options and arguments.
+Your Developer's Kit contains full online documentation for the Cygnus
+configure system.  @inforef{Using Configure,,configure.info}, to read
+about @code{configure} in more detail, including information on how the
+@code{configure} options relate to @file{Makefile} variables.
+
+@example
+configure @r{[}-prefix=@var{dest}@r{]} 
+          @r{[}-exec-prefix=@var{bindest}@r{]} 
+          @r{[}-srcdir=@var{path}@r{]}
+          @r{[}-norecursion@r{]} 
+          @r{[}-target=@var{target}@r{]}
+          @var{host}
+@end example
+
+@noindent
+The binaries in this release were configured using
+
+@cartouche
+@example
+configure -prefix /opt/cygnus-sol2-||RELNO|| ||HOSTstr||
+@end example
+@end cartouche
+
+@table @code
+@item -prefix=@var{dest}
+@var{dest} is an installation directory @emph{path prefix}, the root for
+the directories where @code{make install} will place things.  After you
+configure with this option, @samp{make install install-info} will
+install info files in @file{@var{dest}/info}, man pages in
+@file{@var{dest}/man}, and---unless you also use
+@samp{-exec-prefix}---compiled programs in @file{@var{dest}/bin}, and
+libraries in @file{@var{dest}/lib}.  If you specify
+@samp{-prefix=/local}, for example, @code{make install} puts the
+development tools in @file{/local/bin}.
+
+@emph{WARNING:} the default @var{dest} path prefix in the source is not
+the same as the prefix for the preconfigured binaries distributed by Cygnus.
+
+@samp{-prefix=/opt/cygnus-sol2-||RELNO||} was used to build the binaries in this
+release.  If you do not use @code{-prefix}, the installation directory
+is @file{/usr/local}.
+
+@item -exec-prefix=@var{bindest}
+@samp{-exec-prefix} serves the same purpose as @samp{-prefix}, but
+affects only machine-dependent targets (compiled programs and
+libraries).  Specifying both @samp{-prefix} and @samp{-exec-prefix}
+allows you to segregate machine-dependent files, so that
+machine-independent files can be shared.  
+
+@emph{WARNING:} the default @var{bindest} path prefix in the source is not
+the same as the prefix for the preconfigured binaries distributed by Cygnus.
+
+No @samp{-exec-prefix} was used to build the binaries in this release.
+If you do not use @samp{-exec-prefix}, the default directory for
+machine-dependent targets is whatever was specified with @file{-prefix}
+(by default, @file{/usr/local}; for the binaries in this release,
+@file{/opt/cygnus-sol2-||RELNO||}).
+
+@item -srcdir=@var{path}
+Use this option to make configurations in directories separate from the
+source directories. @code{configure} writes configuration specific files
+in the current directory, but arranges for them to use the source in the
+directory @var{path}.  @code{configure} will create directories under
+the working directory in parallel to the source directories below
+@var{path}.  Among other things, you can use this to build (or maintain)
+several configurations simultaneously, in separate directories.  (This
+option requires a @code{make} program with the @samp{VPATH} feature,
+such as the one included with Solaris 2.)
+
+@item -norecursion
+Configure only the directory level where @code{configure} is executed; do not
+propagate configuration to subdirectories.
+
+@item -target=@var{target}
+Configure the development tools for cross-development (compiling,
+debugging, or other processing) of programs running on the specified
+@var{target}.  Without this option, programs are configured ``native'',
+that is, for managing programs that run on the same machine (@var{host})
+as the development tools themselves.
+
+There is no convenient way to generate a list of all available targets.
+
+@item @var{host} @dots{}
+Configure the development tools to run on the specified @var{host}.
+
+There is no convenient way to generate a list of all available hosts.
+@end table
+
+The @samp{-prefix=@var{dest}} and @samp{-exec-prefix=@var{bindest}}
+options are particularly important.  If you don't specify a @var{dest}
+or @var{bindest} directory, the @file{Makefile} installs binaries in
+subdirectories of @file{/usr/local}.  These options are important
+because the @var{dest} and @var{bindest} directories are used for
+several purposes:
+
+@enumerate
+@item
+@var{bindest} is the directory where binaries are installed.
+
+@item
+@var{bindest} is built into the compiler itself for the
+locations of @sc{gcc} specific include files, the locations of @sc{gcc}
+subprograms, and the location of the @sc{gcc} specific library
+@file{libgcc.a}.
+
+@item
+@var{dest} is compiled into @code{info} as the default directory
+for the documentation.
+
+@end enumerate
+
+@node Compilation
+@section Compilation
+
+After you've run @code{configure} (which writes the final
+@file{Makefile} in each directory), compilation is straightforward.
+To compile all the programs in the Developer's Kit, run:
+
+@cartouche
+@example
+@b{make all info}
+@end example
+@end cartouche
+
+The @code{make} output is lengthy; consider redirecting it to a file.
+
+The overall @file{Makefile} propagates the value of the @code{CC}
+variable explicitly, so that you can easily control the compiler used in
+this step.  @code{CFLAGS} is treated the same way.  For instance, to
+build the compiler a second time, using @sc{gcc} to compile itself
+(after building and installing it in the alternate directory
+@file{/local/gnu}), you might use
+
+@cartouche
+@example
+@b{make CC=/local/gnu/H-sun4/bin/gcc CFLAGS=-O all info}
+@end example
+@end cartouche
+
+The conventional targets @samp{all}, @samp{install}, and @samp{clean}
+are supported at all levels of @file{Makefile}.  Other targets are
+supported as well, as appropriate in each directory; please read the
+individual @file{Makefile} for details.  Each @file{Makefile} in the
+source directories includes ample comments to help you read it.  If you
+are not familiar with @code{make}, refer to @ref{Overview,,Overview of
+@code{make}, make.info, GNU Make: A Program for Directing
+Recompilation}.
+
+@node Installation
+@section Installation
+
+Whether you configure an alternative path using @code{-prefix}, or you
+use the default installation path @file{/usr/local}, you can install the
+software by executing:
+
+@cartouche
+@example
+@b{make install install-info}
+@end example
+@end cartouche
+
+@ifclear FTPorCD
+@node Removing
+@chapter Removing Parts of the Developer's Kit
+You can use the same @code{Install} script that was used to install the
+Developer's Kit on your system, to remove parts of the release.
+(Remember that the @code{Install} script was automatically saved for you
+as @file{/opt/cygnus-sol2-||RELNO||/Install}.)
+
+To do this, decide what you want to remove; then call @code{Install}
+with the option @samp{remove} on the command line, as well as all the
+options that you would use to install that portion of the release
+(@pxref{Install-Options,,Installation Options}).  For example, suppose
+you never look at the source, and are running short of disk
+space; you can remove the source, while leaving the rest of
+the release undisturbed, as follows:
+
+@cartouche
+@example
+eg$ @b{cd /opt/cygnus-sol2-||RELNO||}
+eg$ @b{./Install remove source}
+@end example
+@end cartouche
+
+@noindent
+You should see the following messages confirming the software was
+removed:
+
+@cartouche
+@example
+Cygnus Support software distribution removed!
+Done.
+@end example
+@end cartouche
+
+To remove the complete Solaris 2 Release of the Developer's Kit from
+your system (if, eventually, you no longer want it), delete the
+directory @file{/opt/cygnus-sol2-||RELNO||} and all its contents.
+@end ifclear
+
+@node Cygnus-FSF
+@chapter Cygnus Releases and the FSF
+
+Most of the tools in this Developer's Kit are originally from the Free
+Software Foundation (FSF).  You can get versions of all these tools from
+the FSF as well as from Cygnus.  In general, Cygnus releases add to FSF
+software in the following ways:
+@c UPDATE! more differences bet Cygnus/FSF releases?
+
+@itemize @bullet
+@item
+All programs are ready to run.  We supply preconfigured and precompiled
+binaries as well as the source code; you can start using the programs
+right away.
+@item
+Commercial support is available.  Cygnus adds value to FSF releases in
+large measure by offering outstanding support services.
+@item
+Coordination.  The tools in your Developer's Kit are certified to work
+together; you need not worry about tools being out of step with each other.
+@item
+Bug fixes.  A Cygnus release includes many fixes, already integrated
+into the programs.  Cygnus repairs bugs discovered during testing, and
+also tracks and includes bug fixes developed for other Cygnus customers
+or distributed over the Internet.
+@item
+Bug reporting.  Cygnus releases include the tool @code{send_pr}, which
+you can use to make sure your problem reports receive prompt attention,
+and are also incorporated in our future tests.
+@item
+Documentation.  Cygnus revises and adds to available FSF
+documentation to give you better descriptions of all the software tools.
+@item
+Stability.  Cygnus tests (and uses) all the programs it releases.
+@end itemize
+
+This particular Cygnus Progressive release differs from the nearest
+corresponding FSF distributions in one important detail: Solaris 2 is
+supported.  The FSF distributions will eventually include Solaris 2
+support, as the Cygnus changes are merged into the FSF source, and the
+FSF makes new releases.
+
+
+@node Cygnus-Support
+@chapter About Cygnus Support
+
+Cygnus Support was founded in 1989 to provide commercial support for
+free software.  Cygnus supplies products and services that benefit
+advanced development groups by allowing them to use state-of-the-art
+tools without having to maintain them.  With Cygnus Support, sites that
+once were forced to do their own tool support can recover that valuable
+staff time.  Former users of proprietary software now may choose
+supported free software, combining the advantages of both worlds.
+
+Free software is faster, more powerful, and more portable than its
+proprietary counterparts.  It evolves faster because users who want to
+make improvements are free to do so.  Cygnus tracks these
+improvements and integrates them into tested, stable versions ready
+for commercial use, then backs this software with comprehensive
+support.
+
+With Cygnus Support as your partner, you will have the software and
+the support you need to meet your business objectives.  Cygnus
+is intimately familiar with this software from extensive experience
+using, debugging, and implementing it.  You get direct access to the
+most qualified support people: the authors of the software.
+
+We provide ``vintage'' releases---the most stable versions, which have
+been though even more extensive use and testing---or up-to-the minute
+``progressive'' releases, for those who need the very latest version.
+
+Because all our improvements are also free software, you can
+distribute them widely within your organization, or to your customers,
+without extra cost.
+
+@sp 4
+
+@display
+Cygnus Support
+814 University Avenue
+Palo Alto, CA 94301, USA
+
++1 415 322 3811
+hotline: +1 415 322 7836
+email: @code{info@@cygnus.com}
+fax: +1 415 322 3270
+@end display
+
+@contents
+
+@bye
diff --git a/sol-intro.texi b/sol-intro.texi
new file mode 100644 (file)
index 0000000..9b646fd
--- /dev/null
@@ -0,0 +1,436 @@
+\input texinfo
+@c $Id$
+@setfilename intro.info
+@settitle Introduction
+@iftex
+@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
+@c implements Cygnus modifications to the texinfo manual style.
+@input texiplus
+@c The include file "smpklug.texi" is a kluge to deal with local
+@c document production issues at Cygnus; it's safe to comment out this
+@c line if you don't have (or don't want) the file.
+@input smpklug.texi
+@smallbook
+@cropmarks
+@finalout
+@end iftex
+@titlepage
+@title Introduction
+@sp 3
+@subtitle Cygnus Support Developer's Kit for Solaris 2.0
+@author Cygnus Support
+@page
+
+@tex
+\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
+\xdef\manvers{\$Revision$} % for use in headers, footers
+{\parskip=0pt \hfill Cygnus Support\par \hfill {\it Introduction (Solaris-2)}, \manvers\par \hfill
+\TeX{}info \texinfoversion\par }
+@end tex
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1991, 1992 Cygnus Support
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+
+@end titlepage
+
+@node Top
+@unnumbered Introduction
+
+This Developer's Kit puts at your disposal, in a single coordinated
+and tested release, some of the best software development tools
+available:
+
+@table @t
+@item gcc
+C compiler (and its supporting programs and libraries)
+
+@item gdb
+Debugger
+
+@item gprof
+Performance analyzer
+
+@item byacc
+Parser generator
+
+@item flex
+Fast lexical analyzer generator
+
+@item send_pr
+Cygnus problem-reporting utillity
+
+@item patch
+Source-code update utility
+
+@item info
+@itemx makeinfo
+Online documentation tools
+
+@item texinfo.tex
+@itemx texindex
+Documentation printing tools
+@end table
+
+These tools are free software; many of them are from the Free Software
+Foundation (FSF) GNU project (in speech, the `G' in GNU is sounded).
+Others were developed by the University of California, Berkeley and its
+contributors.
+
+Cygnus Support collaborates with the FSF in developing these tools.  In
+this product, we've ported recent forms of the development tools to
+Solaris 2, tested them, made sure they work well together, and made them
+easy to install---the installation package comes with binaries already
+compiled for your system.
+
+Cygnus Support exists to help our clients exploit their freedom in
+using, adapting, or enhancing this software.  @xref{Cygnus,,About Cygnus
+Support}, for more information.
+
+@menu
+* Copying::     Free Software
+* Manuals::     Printed and Online Manuals
+* Info::        Using Online Documentation
+* Bugs::        Reporting Trouble
+* Cygnus::      About Cygnus Support
+@end menu
+
+@page
+@node Copying
+@section Free Software
+If you find our Developer's Kit useful, please feel free to give or sell
+copies of the software and documentation to anyone you like.
+
+Cygnus products are @dfn{free software}, protected by the @sc{gnu} General
+Public License (GPL).  The GPL gives you the freedom to copy or adapt any
+program it licenses---but every person getting a copy also gets with it the
+freedom to modify that copy (which means that they must get access to
+the source code), and the freedom to distribute further copies.  Typical
+software companies use copyrights to limit your freedoms; the GPL is
+designed to preserve your freedoms.
+
+Fundamentally, the General Public License is a license which grants you
+these freedoms, and only imposes restrictions to ensure that no one can
+take these freedoms away from anyone else.
+
+For full details, see the @strong{LICENSE} section in this manual
+set.
+
+@page
+@node Manuals
+@section Manuals
+@noindent
+These printed manuals are included in your Cygnus Progressive Release:
+@display
+
+@cite{Using the @sc{gnu} C Compiler}
+
+@cite{The C Preprocessor}
+
+@cite{GDB: The @sc{gnu} Source-Level Debugger}
+
+@end display
+
+The manuals are also designed for easy online browsing (@pxref{Info,,Online
+Documentation}).  For online use, the accompanying software distribution
+includes all the printed manuals, and also the following documents:
+
+@table @emph
+@item FLEX: A Fast Lexical Analyzer Generator
+Generates lexical analyzers suitable for GCC and other compilers.
+
+@item Info: Documentation Browsing System
+Full details on the @code{info} browser.
+
+@item Texinfo: The @sc{gnu} Documentation Format
+How you can use @TeX{} to print these manuals, and how to write your own
+manuals in this style.
+
+@item Using and Porting @sc{gnu cc}
+Detailed information about what's needed to put @sc{gnu cc} on different
+platforms, or to modify @sc{gnu cc}.  Also includes all the
+information in the printed manual @cite{Using the @sc{gnu} C Compiler}.
+@end table
+
+@noindent
+Finally, @code{man} pages are included for all the programs in the release.
+
+You have the freedom to copy the manuals, like the software they cover;
+each manual's copyright statement includes the necessary permissions.
+The manuals themselves are also free software, and the source for them
+is also available in the installation package.
+
+@node Info
+@section Using Online Documentation
+
+You can browse through the online documentation using either @sc{gnu} Emacs,
+or the (included) program @code{info}.
+Online, the manuals are organized into @dfn{nodes}, which correspond to
+the chapters and sections of a printed book.  You can follow them in
+sequence, if you wish, just like in the printed book---but there are
+also other choices.  The documents have menus that let you go quickly to
+the node that has the information you need.  @code{info} has ``hot''
+references; if one section refers to another, you can tell @code{info}
+to take you immediately to that other section---and you can get back
+again easily to take up your reading where you left off.  Naturally, you
+can also search for particular words or phrases.
+
+The best way to get started with the online documentation system is to
+run the browser @code{info}.  After the Progressive Release is installed on
+your system, you can get into @code{info} by just typing its name---no
+options or arguments are necessary---at your shell's prompt (shown as
+@samp{eg%} here):
+@example
+eg% info
+@end example
+
+@noindent
+@code{info} will display its first screen, a menu of the documentation
+available, and will await your input.  Typing the single letter
+@example
+h
+@end example
+@noindent
+requests a tutorial, designed to teach you how to use @code{info}.
+
+If you already use Emacs, you may want to get into the documentation
+browsing mode, instead, by typing @kbd{C-h i} inside Emacs.
+
+You can get out of @code{info} at any time by typing the single letter
+@kbd{q}.  
+
+@page
+Here is a summary of all the @code{info} commands; @code{info} itself
+can display a summary like this at any time, when you type the single
+character @kbd{?}.
+
+@smallexample
+@cartouche
+h       @r{Invoke the Info tutorial.}
+q       @r{Quit Info}
+
+@i{Selecting other nodes:}
+n       @r{Move to the ``next'' node of this node.}
+p       @r{Move to the ``previous'' node of this node.}
+u       @r{Move ``up'' from this node.}
+m       @r{Pick menu item specified by name (or abbreviation).}
+        @r{Picking a menu item moves to the corresponding node.}
+f       @r{Follow a cross reference.  Reads name of reference.}
+l       @r{Move to the last node you were looking at.}
+
+@i{Moving within a node:}
+Space   @r{scroll forward a page.}
+DEL     @r{scroll backward a page.}
+b       @r{Go to beginning of this node.}
+
+@i{Advanced commands:}
+1       @r{Pick first item in node's menu.}
+2 - 5   @r{Pick second ... fifth item in node's menu.}
+g       @r{Move to node specified by name.}
+        @r{You may include a filename as well, as @code{(@var{FILENAME})@var{NODENAME}}.}
+s       @r{Search through this Info file for a specified string,}
+        @r{and select the node in which the next occurrence is found.}
+Ctl-p   @r{Print the contents of this node using @samp{lpr}.}
+@end cartouche
+@end smallexample
+
+@page
+@node Bugs
+@section Reporting Trouble
+We've tried to make the programs in your Progressive Release as
+trouble-free as possible.  If you do encounter trouble, however, we'd
+like to be able to diagnose and fix the problem as quickly as possible.
+You can help us do that by using the script @code{send_pr} to send us your
+problem reports.
+
+@code{send_pr} invokes an editor on a problem report form (after
+trying to fill in some fields with reasonable default values). After
+you exit the editor, @code{send_pr} sends the filled out form to the
+problem report management system (PRMS) at Cygnus Support.  You can
+use the environment variable @code{EDITOR} to specify what editor to
+use (the default is @code{vi}).
+
+@code{send_pr} attempts to send your problem report to Cygnus via
+electronic mail.  If your site cannot support this, you can still use
+the problem report form: use @samp{send_pr -p} to capture a copy of the
+blank problem-report form and fill it in.  (You can also photocopy the
+blank form at the end of this section to fill in.)  In either case you
+can FAX the problem report to Cygnus at @w{+1 415 322 3270}.
+
+At Cygnus Support, the problem report is assigned a unique number and is
+stored in the PRMS database according to its category and your
+customer ID.  PRMS automatically replies with an acknowledgement, citing
+the category and the PR number.  As the next step, Cygnus staff inspects
+the bug report (if you've marked your report as high priority, we respond
+with an analysis of the problem in less than five business days).  We'll
+offer a solution as soon as possible, and await your feedback.  As a
+matter of policy, we do not consider your problem report closed until
+you've agreed with a solution we offer.
+
+To ensure that a problem report is handled promptly, it must contain
+your (unique) customer ID and one of the available categories, shown as
+comments in the problem report form, to identify the problem area. As a
+Cygnus Support customer, you can obtain your customer ID by invoking
+@code{send_pr} with the @samp{-request-id} option.
+
+@page
+@subsection Filling out a problem report
+Problem reports are structured so that a program can manage them. When
+filling out the form, please remember the following guidelines:
+
+@itemize @bullet
+@item
+Each PR needs a valid customer ID and category.
+
+@item
+Describe only one problem with one PR.
+
+@item
+For follow-up mail, use the same subject line as the one in the
+automatic acknowledgent. It shows the category, the PR number and the
+original synopsis line.  This allows Cygnus Support to make sure mail on
+the same problem report stays together.
+
+@item 
+Please try to make the subject or synopsis line as informative
+as possible.  For misbehaving software, you might use a sentence of
+the form ``with input foo, component xyz produces bar''.
+
+@item
+You don't need to delete the comment lines while editing the PR form;
+this is done by @code{send_pr}.  Put your information before or
+after the comment.
+@end itemize
+
+@page
+For full details on @code{send_pr} and the supporting form, see the man
+page @code{send_pr}(1).  Here is a sample blank problem-report form; if
+electronic mail from your site cannot reach Cygnus, you can send us
+problem reports by photocopying this sample, filling it out, and sending
+it by FAX to @w{+1 415 322 3270}.
+
+@iftex
+@widen{28pt}
+@end iftex
+
+@smallexample
+SEND_PR: Choose from the following categories:
+SEND_PR:
+SEND_PR: bfd       binutils  bison     clib      config    cvs
+SEND_PR: diff      doc       emacs     g++       gas       gcc       
+SEND_PR: gdb       grep      ispell    ld        libg++    libiberty
+SEND_PR: libiberty make      rcs       readline  send_pr   texinfo
+SEND_PR: other
+SEND_PR:
+
+To: cygnus-bugs@@cygnus.com 
+
+Subject: 
+
+From: 
+
+Reply-To: 
+
+X-send-pr-version: send_pr: 1.15
+
+
+>Customer-Id:
+
+>Originator:    <name of the PR author (one line)>
+
+>Organization:  <organization of PR author (multiple lines)>
+
+
+
+>Confidential:  <[ yes | no ] (one line)>
+
+>Synopsis:     <synopsis of the problem (one line)>
+
+>Severity:     <[ non-critical | serious | critical ] (one line)>
+
+>Priority:     <[ low | medium | high ] (one line)>
+
+>Category:     <name of the product (one line)>
+
+>Class:                <[ sw-bug | doc-bug | change-request | support ] (one line)>
+
+>Release:      <release number or tag (one line)>
+
+>Environment:
+        <machine, os, target, libraries (multiple lines)>
+
+
+
+>Description:   
+        <precise description of the problem (multiple lines)>
+
+
+
+
+
+
+>How-To-Repeat:         
+        <code/input/activities to reproduce the problem (multiple lines)>
+@end smallexample
+
+@iftex
+@widen{-28pt}
+@end iftex
+
+@page
+@node Cygnus
+@section About Cygnus Support
+Cygnus Support was founded in 1989 to provide commercial support for
+free software.  Cygnus supplies products and services that benefit
+advanced development groups by allowing them to use state-of-the-art
+tools without having to maintain them.  With Cygnus Support, sites that
+once were forced to do their own tool support can recover that valuable
+staff time.  Former users of proprietary software now may choose
+supported free software, combining the advantages of both worlds.
+
+Free software is faster, more powerful, and more portable than its
+proprietary counterparts.  It evolves faster because users who want to
+make improvements are free to do so.  Cygnus tracks these
+improvements and integrates them into tested, stable versions ready
+for commercial use, then backs this software with comprehensive
+support.
+
+With Cygnus Support as your partner, you will have the software and
+the support you need to meet your business objectives.  Cygnus
+is intimately familiar with this software from extensive experience
+using, debugging, and implementing it.  You get direct access to the
+most qualified support people: the authors of that software.
+
+We provide up-to-the minute ``progressive'' releases, for those who need
+the very latest version---or ``vintage'' releases: stable versions which
+have been through extensive use and testing.
+
+Because all our improvements are also free software, you can
+distribute them widely within your organization, or to your customers,
+without extra cost.
+
+@sp 4
+
+@display
+Cygnus Support
+814 University Avenue
+Palo Alto, CA 94301, USA
+
++1 415 322 3811
+
+email: @code{info@@cygnus.com}
+fax: +1 415 322 3270
+@end display
+
+@bye
diff --git a/sol-make-ftp b/sol-make-ftp
new file mode 100644 (file)
index 0000000..1953b9c
--- /dev/null
@@ -0,0 +1,8 @@
+BINFILES=cygnus-sol2-1.0/{Install,README,bin,lib,info,include,man}
+SRCFILES=cygnus-sol2-1.0/{README,src}
+
+cd sparc-sun-solaris2
+tar cf cygnus-sol2-1.0.bin.tar ${BINFILES}
+tar cf cygnus-sol2-1.0.src.tar ${SRCFILES}
+tar cf cygnus-sol2-1.0.tar ${BINFILES} ${SRCFILES}
+
diff --git a/sol-rel.texi b/sol-rel.texi
new file mode 100644 (file)
index 0000000..c73015a
--- /dev/null
@@ -0,0 +1,503 @@
+\input texinfo
+@c
+@c This file may require a nonstandard texinfo.tex to format; if you
+@c need it, please contact Cygnus Support (email editor-in-chief@cygnus.com)
+@setfilename SOLARIS2.info
+@c
+@c This file describes a Cygnus Solaris Release (Developer's Kit).
+@c
+@c Copyright (C) 1991, 1992 Cygnus Support
+@c This text may be freely distributed under the terms of the GNU
+@c General Public License.
+@c
+@c $Id$
+@c
+@iftex
+@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
+@c implements Cygnus modifications to the texinfo manual style.
+@input texiplus
+@c The include file "smpklug.texi" is a kluge to deal with local
+@c document production issues at Cygnus; it's safe to comment out this
+@c line if you don't have (or don't want) the file.
+@input smpklug.texi
+@smallbook
+@cropmarks
+@finalout
+@settitle Release Notes
+@setchapternewpage on
+@c
+@end iftex
+
+@titlepage
+@title Release Notes
+@sp 3
+@table @strong
+@item Cygnus Support Developer's Kit
+@item Release 1.0 for Solaris-2
+@end table
+@author Cygnus Support
+@page
+
+@tex
+\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
+\xdef\Rmanvers{{\it Release Notes (Solaris-2 Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
+{\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
+\TeX{}info \texinfoversion\par }
+\global\def\manvers{Solaris-2 Rel 1.0}
+@end tex
+
+@vskip 0pt plus 1filll
+This product includes software developed by the University of
+California, Berkeley and its contributors.
+
+This note is copyright @copyright{} 1992 Cygnus Support
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+
+@end titlepage
+
+@c         PROOFREADING: set FIXMES to include FIXME text in formatted
+@c         output
+@clear FIXMES
+
+@ifinfo
+@node Top
+@top Solaris-2 Developer's Kit release 1.0
+
+@menu
+* Introduction::                Overview
+* Contributors::               GCC for Solaris-2 exists thanks to these people
+* Versions::                    Closest FSF Versions
+* New::                         New in This Release
+* Limits::                      Limitations and Warnings
+@end menu
+
+This product includes software developed by the University of
+California, Berkeley and its contributors.
+
+This file is copyright @copyright{} 1992 Cygnus Support
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions
+@end ifinfo
+
+@node Introduction
+@chapter Overview
+
+@table @strong
+@item Cygnus Support Developer's Kit
+@item Solaris-2 Release 1.0
+@end table
+
+Sun has unbunded its compilers---selling them separately from the
+Solaris 2.0 operating system.  Many Sun users were unhappy that their
+next upgrade might take away their C compiler.
+
+In response, Cygnus Support ported the GNU C compiler and supporting
+tools to Solaris 2.0.  The result is a full set of development
+tools---ANSI and traditional C compiler (with supporting libraries),
+debugger, parser generator, and lexical analyzer generator---freely
+available to everyone.
+
+The GNU C compiler can be used to compile any kind of program: public
+domain, copyleft, or proprietary.  Your binaries have the same
+copyright status as your sources and libraries.  The only provision of
+the GNU General Public License that applies to users of the compiler
+(as opposed to people who make copies of the compiler, or modify it)
+is the lack of warranty (section 11 and 12).  FSF does not provide a
+warranty to anyone, but Cygnus gives a 1-year limited warranty (a year
+of support) to customers.  
+
+@node Contributors
+@chapter Contributors to GNU C for Solaris-2
+
+Cygnus Support and the FSF are grateful to the forward-looking individuals and
+organizations that sponsored this project.
+
+@noindent
+We are glad to be able to thank publicly:
+
+@itemize @bullet
+@item
+Amoco Production Company (Houston, Texas)
+
+@item
+BBN Communications (Cambridge, Massachusetts)
+
+@item
+Boston Technology (Wakefield, Massachusetts)
+
+@item
+Cirrus Logic (Fremont, California)
+
+@item
+Compaq Computer Corporation (Houston, Texas)
+
+@item
+Deere & Company (Moline, Illinois)
+
+@item
+ELF Commnuications (San Francisco, California)
+
+@item
+European Computer-Industry Research Centre GMBH (Munich)
+
+@item
+Fidelity Investments (Boston, Massachusetts)
+
+@item
+FTP Software, Inc. (Wakefield, Massachusetts)
+
+@item
+Gallagher & Robertson (Oslo, Norway)
+
+@item
+GTE Laboratories (Waltham, Massachusetts)
+
+@item
+Ingres Corporation (Alameda, California)
+
+@item
+Inland Sea (Dexter, Michigan)
+
+@item
+Los Alamos National Laboratory (Los Alamos, New Mexico)
+
+@item
+Miller/Howard Investures (Cobleskill, New York)
+
+@item
+MIT Lincoln Laboratory (Lexington, Massachusetts)
+
+@item
+NASA Lewis Research Center (Cleveland, Ohio)
+
+@item
+Optimation Software (Melbourne, Australia)
+
+@item
+PFU Limited (Tokyo)
+
+@item
+Philips Laboratories (Briarcliff Manor, New York)
+
+@item
+Pure Software (Los Altos, California)
+
+@item
+Qualix Group, Inc. (San Mateo, California)
+
+@item
+Schlumberger-Doll Research (Ridgefield, Connecticut)
+
+@item
+Kevin Sheehan (Melbourne, Australia and elsewhere)
+
+@item
+State University of New York (SUNY) at Buffalo
+
+@item
+SunSoft, Inc. (Mountain View, California)
+
+@item
+@tex
+Technische Universit\"at M\"unchen (Munich)
+@end tex
+@ifinfo
+Technische Universitaet Muenchen (Munich)
+@end ifinfo
+
+@item
+Telecom Finland (Helsinki)
+
+@item
+Telecom Research Labs (Victoria, Australia)
+
+@item
+Union Bank of Switzerland (Zurich)
+
+@item University of Pennsylvania (Philadelphia)
+
+@item
+University of Washington (Seattle)
+
+@item
+UUNET Technologies, Inc. (Falls Church, Virginia)
+
+@item
+Warwick University (Coventry, England)
+
+@item
+Xerox Palo Alto Research Center (Palo Alto, California)
+@end itemize
+
+We are also grateful to six other organizations and individuals who
+contributed to this project, but prefer to remain anonymous.
+
+@node Versions
+@chapter Closest FSF Versions
+
+Cygnus Support devotes much of its effort to integrating and improving
+free software.  In fact, Cygnus employees are the primary developers
+of several important components of the GNU tool-chain (on behalf of
+the Free Software Foundation).  However, especially for programs whose
+FSF releases are issued elsewhere, our releases are often slightly
+ahead of the nearest corresponding FSF version (and sometimes slightly
+behind it).  We reintegrate our sources with the FSF as frequently as
+possible without compromising the stability of the integrated
+toolchain.
+
+These are the nearest corresponding FSF releases of the GNU development
+tools:
+
+@table @sc
+@item @emph{Program}
+@emph{Last merged with FSF version}
+@item gcc
+2.0 (but many improvements from 2.1 and 2.2 incorporated)
+
+@item gdb
+4.6 (maintained at Cygnus)
+
+@end table
+
+@node New
+@chapter New in This Release
+
+@table @strong
+@item GCC
+Near command-line compatibility with the SVID specification for
+@code{cc}, and with the SVr4 @code{cc}.  ELF output (with embedded
+@code{stabs} format debugging information; this is compatible with Sun's
+compilers).  Many bug-fixes (from the base FSF level, and from our
+Progressive--920318 release for SunOS).
+
+@item CPP
+New directive @code{#assert}; you can use this directive, together with 
+enhancements to @code{#if}, to declare and test for particular system
+properties.  
+
+@item GDB
+GDB understands the debugging format used by Solaris-2 compilers (both
+ours and Sun's): @code{stabs} debugging information embedded in ELF
+object files.  
+
+Since our Progressive--920318 release for SunOS, we have also made these
+improvements to GDB:
+
+Many bug fixes.
+
+GDB now uses a new memory manager called @code{mmalloc}, an enhancement
+of @sc{GNU} @code{malloc}.  It can greatly speed up the startup of GDB
+by using a pre-parsed symbol table in a @code{mmalloc}-managed heap.  
+Since memory-mapped files are available on Solaris-2 through the @code{mmap}
+system call, you can have GDB write the symbols from your program into a
+reusable file.
+
+@item FLEX and BYACC
+Release 1.0 for Solaris 2 includes @code{flex}, the fast lexical analyzer
+generator, and @code{byacc}, the parser generator---both from UC
+Berkeley.  There are no restrictions on what use you can make of lexical
+analyzers generated by @code{flex}, or parser generators built by
+@code{byacc}.
+
+Since @code{flex} and @code{byacc} are of interest only to a specialized
+audience, we ship only on-line documentation for them.
+@inforef{Top,,flex.info}, or the @code{man} pages @samp{flex.1} and
+@samp{byacc.1}.
+
+@item Problem Reports
+The script @code{install_cid} is now available to record your Cygnus
+customer ID for the problem-reporting utility, @code{send_pr}, on your
+system.  
+
+A blank Problem Report form is now included in the @cite{Introduction}
+to your Developer's Kit manuals, in case FAX is more convenient than
+electronic mail to send us problem reports.
+
+Since these programs are free software, many people who receive them
+will not get them directly from Cygnus Support.  We will be glad to
+support you no matter where you got the software.  If you have not yet
+bought support from Cygnus for this set of tools, you can call us at
+@w{+1 415 322 3811} for a support contract, and start reporting problems
+and getting fixes.
+@end table
+
+@node Limits
+@chapter Limitations and Warnings
+
+Our major goals in this release was compatibility: with the System V
+Interface Definition (@sc{svid}), with other Solaris-2 tools, and with
+the @sc{sparc} Application Binary Interface (@sc{abi}).
+
+We have been largely successful: our toolchain complies with the
+@sc{svid} specifications for compilation tools, most of the tools are
+also command-line compatible with the Sun offerings (even in cases where
+these go beyond the @sc{svid}), and we know of only one violation of the
+@sc{abi}.  
+
+The following sections give details on the few remaining compatibility
+issues.
+
+@menu
+* gcc-options::                 Some Solaris-2 cc options not accepted
+* cc-gdb::                      Using gdb on Sun compiler output
+* long double::                 The long double datatype violates the ABI
+* ABI::                         No independent verification of ABI compliance
+@end menu
+
+@node gcc-options
+@section Some Solaris-2 @code{cc} options are not accepted
+
+In porting the @sc{gnu} C compiler to Solaris-2, we wanted to have
+command-line compatibility with several compilers:
+
+@itemize @bullet
+@item
+@sc{svid} specification for @code{cc}
+
+@item
+Other @sc{gcc} configurations
+
+@item
+Unix SVr4 implementation of @code{cc}
+
+@item
+Sun compiler for Solaris-2
+
+@end itemize
+
+@noindent
+Unfortunately, these specifications are not altogether compatible; we
+have compromised in some areas, giving the most weight to the @sc{svid}
+specification and to @sc{gcc} on other platforms.
+
+Here is a list of command line options @emph{not} accepted by
+@code{gcc}, but meaningful in one of the other command-line
+specifications listed:
+
+@table @code
+@item -Bstatic
+@itemx -Bdynamic
+Use @samp{-static} or @samp{-symbolic} instead.  (@samp{-Bstatic} and
+@samp{-Bdynamic} are supported by Sun compilers, but are not in the
+@sc{svid}.)
+
+@item -dy
+@itemx -dn
+These Solaris-2 linker options conflict with @sc{gcc} debugging options.
+Again, use @samp{-symbolic} or @samp{-static} instead; or pass the
+linker options directly to the linker using @samp{-Xlinker} or
+@samp{-W}.
+
+@item -f
+@sc{gcc} has a large family of options that begin with @samp{-f}.  All
+of these options are supported as in other versions of @sc{gcc}.  The
+SVr4 specification describes this option as accepted, but ignored; in
+the @sc{svid}, it is used to specify floating-point emulation.
+
+@item -J sfm
+This SVr4 option appears to specify linking against a special-purpose
+subroutine library.  It is not in the @sc{svid}, and @sc{gcc} does not
+support it.
+
+@item -K
+@sc{gcc} does not support @samp{-K}.  To specify position-independent
+code output, use @samp{-pic}.
+
+@item -P
+This preprocessor option retains its usual @sc{gcc} meaning, which is
+slightly different from the @sc{svid} and SVr4 descriptions (which are
+not quite identical with one another).  It is used to generate
+preprocessor output---similar to @samp{-E}, but without embedding
+@code{#line} directives.  However, for @sc{gcc}, the output still goes
+to @file{stdout} rather than to a @samp{.i} file.  To place output in a
+@samp{.i} file, use command-line output redirection.
+
+@item -q
+This option is defined as implementation-specific by the @sc{svid}.
+This implementation does not include it.
+
+@item -V
+Displays version information for @emph{only} the assembler and linker.
+
+@item -v
+Displays the full invocation of each compiler pass, as usual for
+@sc{gcc}.  This option is not defined in the @sc{svid}, but the SVr4
+documentation describes it as similar to the @sc{gcc} options
+@samp{-pedantic} or @samp{-pedantic-errors}.  We recommend using those
+options instead.
+
+@item -W
+@itemx -Y
+In this implementation, @samp{-W} and @samp{Y} are restricted to
+controlling the assembler and linker (the other compiler passes used by
+@sc{gcc} do not exactly correspond to those in the @sc{svid}).
+
+@item -X
+This option is not in the @sc{svid}, but is used in SVr4 to give a
+little control over the dialect of C.  For this purpose, you can use the
+standard @sc{gcc} options @samp{-traditional}, @samp{-ansi}, or the
+other options described in @ref{Dialect Options,,Options Controlling
+Dialect, usegcc.info, Using gcc}.
+@end table
+
+For full descriptions of the @sc{gcc} command line options in this
+release, see the manual @cite{Using gcc}, or the man page @code{gcc.1}.
+
+@node cc-gdb
+@section Using @code{gdb} on Sun Compiler Output
+
+By default, the Sun compiler @code{cc} and the system assembler
+@code{as} omit debugging information from the final linked output file,
+assuming the debugger will look in the @samp{.o} files for this
+information.  @code{gdb} will not do this.  If you have the Sun compiler
+@code{cc} and want to debug its output with @code{gdb}, you must include
+the command-line flag @samp{-xs} when you run @code{cc}, to instruct it
+to place debugging information where it will be copied to the linked
+output file.  Similarly, if you call the system assembler @code{as}
+directly, use its command-line option @samp{-s} for the same purpose.
+
+@node long double
+@section The @code{long double} datatype violates SPARC ABI
+
+The @sc{sparc} Application Binary Interface (@sc{abi}) specifies that
+numbers of type @code{long double} take up 16 bytes.  In this release,
+@code{gcc} only emits 8-byte numbers for @code{long double}.
+
+This is the only known violation of the @sc{abi}.  We will fix this
+problem in a future release.
+
+@node ABI
+@section No independent verification of ABI compliance
+
+We have made every effort to comply with the @sc{sparc} @sc{abi}, and we
+are aware of only one violation (noted above).  However, there is as yet
+no independent verification of our compiler's compliance.
+
+@sc{sparc} International is preparing an ABI compliance test suite, but
+it won't be available until sometime in the autumn of 1992.  We will
+seek verification of our compiler's compliance as soon as @sc{sparc}
+International is ready.
+
+@contents
+@bye
diff --git a/sol-subst-strings b/sol-subst-strings
new file mode 100755 (executable)
index 0000000..672ba3d
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+sed     -e "/^@set FIXMES/s::@clear FIXMES:" \
+       -e "/^@clear CUSTOMER/s::@set CUSTOMER:" \
+       -e "/^@set CDROMinst/s::@clear CDROMinst:" \
+       -e "/^@clear TAPEinst/s::@set TAPEinst:" \
+       -e "/^@set FTPsingle/s::@clear FTPsingle:" \
+       -e "/^@set FTPsplit/s::@clear FTPsplit:" \
+       -e "/\|\|MEDIUM\|\|/s::tape:g" \
+       -e "/\|\|MEDstr\|\|/s::/dev/rmt/0ln:g" \
+       -e "/\|\|DEVdflt\|\|/s::/dev/rmt/0ln:g" \
+       -e "/\|\|MEDvar\|\|/s::/dev/@var{tape}:g" \
+       -e "/\|\|TAPdflt\|\|/s::/dev/@var{tape}:g" \
+        -e "/\|\|RELNO\|\|/s::1.0:g" \
+        -e "/\|\|BD\|\|/s::20:g" \
+        -e "/\|\|SD\|\|/s::28:g" \
+        -e "/\|\|DF\|\|/s::48:g" \
+        -e "/\|\|BUNDLE\|\|/s::comp:g" \
+        -e "/\|\|HOST\|\|/s::SPARC computer:g" \
+        -e "/\|\|HOSTstr\|\|/s::sparc-sun-solaris2:g" \
+        -e "/\|\|TARGET\|\|/s::sparc-sun-solaris2:g" \
+        -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g"  \
+       < $1 > $2
diff --git a/sol-subst-strings-ftp b/sol-subst-strings-ftp
new file mode 100755 (executable)
index 0000000..33830b8
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+sed     -e "/^@set FIXMES/s::@clear FIXMES:" \
+       -e "/^@set CUSTOMER/s::@clear CUSTOMER:" \
+       -e "/^@set CDROMinst/s::@clear CDROMinst:" \
+       -e "/^@set TAPEinst/s::@clear TAPEinst:" \
+       -e "/^@set FTPsingle/s::@clear FTPsingle:" \
+       -e "/^@clear FTPsplit/s::@set FTPsplit:" \
+       -e "/\|\|DEVdflt\|\|/s::/dev/rmt/0ln:g" \
+       -e "/\|\|TAPdflt\|\|/s::/dev/@var{tape}:g" \
+       -e "/\|\|MEDIUM\|\|/s::tape:g" \
+       -e "/\|\|MEDstr\|\|/s::/dev/rmt/0ln:g" \
+       -e "/\|\|MEDvar\|\|/s::/dev/@var{tape}:g" \
+        -e "/\|\|RELNO\|\|/s::1.0:g" \
+        -e "/\|\|BD\|\|/s::20:g" \
+        -e "/\|\|SD\|\|/s::28:g" \
+        -e "/\|\|DF\|\|/s::48:g" \
+        -e "/\|\|BUNDLE\|\|/s::comp:g" \
+        -e "/\|\|HOST\|\|/s::SPARC computer:g" \
+        -e "/\|\|HOSTstr\|\|/s::sparc-sun-solaris2:g" \
+        -e "/\|\|TARGET\|\|/s::sparc-sun-solaris2:g" \
+        -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g"  \
+       -e "s/^INSTALLDIR_DEFAULT=.*$/INSTALLDIR_DEFAULT=../" \
+       -e "s/^FTPRELEASE=.*/FTPRELEASE=yes/" \
+       < $1 > $2
diff --git a/tape-labels-tex.in b/tape-labels-tex.in
new file mode 100644 (file)
index 0000000..194c34c
--- /dev/null
@@ -0,0 +1,30 @@
+\input tapelab
+\label 0
+Emacs
+progressive-||RELNO||\_||TAPdflt||
+||HOSTstr||
+\elab
+\label 1
+Emacs
+progressive-||RELNO||\_||TAPdflt||
+||HOSTstr||
+\elab
+\label 2
+Emacs
+progressive-||RELNO||\_||TAPdflt||
+||HOSTstr||
+\elab
+\label 3
+Emacs
+progressive-||RELNO||\_||TAPdflt||
+||HOSTstr||
+\elab
+\label 4
+Emacs
+progressive-||RELNO||\_||TAPdflt||
+||HOSTstr||
+\elab
+\bye
+
+
+