OSSP CVS Repository

ossp - Check-in [3759]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 3759
Date: 2000-Jul-01 16:07:10 (local)
2000-Jul-01 14:07:10 (UTC)
User:rse
Branch:PTH_1_3
Comment: *** empty log message ***
Tickets:
Inspections:
Files:
ossp-pkg/pth/config.sub      added-> 1.2.6.1
ossp-pkg/pth/shtool      added-> 1.43.2.3

ossp-pkg/pth/config.sub -> 1.2.6.1

*** /dev/null    Sat Nov 23 01:03:29 2024
--- -    Sat Nov 23 01:03:46 2024
***************
*** 0 ****
--- 1,1222 ----
+ #! /bin/sh
+ # Configuration validation subroutine script, version 1.1.
+ #   Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+ # can handle that machine.  It does not imply ALL GNU software can.
+ #
+ # This file is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330,
+ # Boston, MA 02111-1307, USA.
+ 
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+ 
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+ # If it is invalid, we print an error message on stderr and exit with code 1.
+ # Otherwise, we print the canonical config type on stdout and succeed.
+ 
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+ # that are meaningful with *any* GNU software.
+ # Each package is responsible for reporting which valid configurations
+ # it does not support.  The user should be able to distinguish
+ # a failure to support a valid configuration from a meaningless
+ # configuration.
+ 
+ # The goal of this file is to map all the various variations of a given
+ # machine specification into a single specification in the form:
+ #      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+ # or in some cases, the newer four-part form:
+ #      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+ 
+ if [ x$1 = x ]
+ then
+        echo Configuration name missing. 1>&2
+        echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
+        echo "or     $0 ALIAS" 1>&2
+        echo where ALIAS is a recognized configuration type. 1>&2
+        exit 1
+ fi
+ 
+ # First pass through any local machine types.
+ case $1 in
+        *local*)
+                echo $1
+                exit 0
+                ;;
+        *)
+        ;;
+ esac
+ 
+ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+   linux-gnu*)
+     os=-$maybe_os
+     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+     ;;
+   *)
+     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+     if [ $basic_machine != $1 ]
+     then os=`echo $1 | sed 's/.*-/-/'`
+     else os=; fi
+     ;;
+ esac
+ 
+ ### Let's recognize common machines as not being operating systems so
+ ### that things like config.sub decstation-3100 work.  We also
+ ### recognize some manufacturers as not being operating systems, so we
+ ### can provide default operating systems below.
+ case $os in
+        -sun*os*)
+                # Prevent following clause from handling this invalid input.
+                ;;
+        -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+        -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+        -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+        -apple)
+                os=
+                basic_machine=$1
+                ;;
+        -sim | -cisco | -oki | -wec | -winbond)
+                os=
+                basic_machine=$1
+                ;;
+        -scout)
+                ;;
+        -wrs)
+                os=vxworks
+                basic_machine=$1
+                ;;
+        -hiux*)
+                os=-hiuxwe2
+                ;;
+        -sco5)
+                os=-sco3.2v5
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -sco4)
+                os=-sco3.2v4
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -sco3.2.[4-9]*)
+                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -sco3.2v[4-9]*)
+                # Don't forget version if it is 3.2v4 or newer.
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -sco*)
+                os=-sco3.2v2
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -udk*)
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -isc)
+                os=-isc2.2
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -clix*)
+                basic_machine=clipper-intergraph
+                ;;
+        -isc*)
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+                ;;
+        -lynx*)
+                os=-lynxos
+                ;;
+        -ptx*)
+                basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+                ;;
+        -windowsnt*)
+                os=`echo $os | sed -e 's/windowsnt/winnt/'`
+                ;;
+        -psos*)
+                os=-psos
+                ;;
+ esac
+ 
+ # Decode aliases for certain CPU-COMPANY combinations.
+ case $basic_machine in
+        # Recognize the basic CPU types without company name.
+        # Some are omitted here because they have special meanings below.
+        tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+                | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
+                | 580 | i960 | h8300 \
+                | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
+                | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
+                | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
+                | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
+                | mips64orion | mips64orionel | mipstx39 | mipstx39el \
+                | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
+                | mips64vr5000 | miprs64vr5000el | mcore \
+                | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
+                | thumb | d10v)
+                basic_machine=$basic_machine-unknown
+                ;;
+        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65)
+                ;;
+ 
+        # We use `pc' rather than `unknown'
+        # because (1) that's what they normally are, and
+        # (2) the word "unknown" tends to confuse beginning users.
+        i[34567]86)
+          basic_machine=$basic_machine-pc
+          ;;
+        # Object if more than one company name word.
+        *-*-*)
+                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+                exit 1
+                ;;
+        # Recognize the basic CPU types with company name.
+        # FIXME: clean up the formatting here.
+        vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
+              | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
+              | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+              | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
+              | xmp-* | ymp-* \
+              | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
+              | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
+              | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
+              | clipper-* | orion-* \
+              | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+              | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
+              | mips64el-* | mips64orion-* | mips64orionel-* \
+              | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
+              | mipstx39-* | mipstx39el-* | mcore-* \
+              | f301-* | armv*-* | t3e-* \
+              | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
+              | thumb-* | v850-* | d30v-* | tic30-* | c30-* )
+                ;;
+        # Recognize the various machine names and aliases which stand
+        # for a CPU type and a company and sometimes even an OS.
+        386bsd)
+                basic_machine=i386-unknown
+                os=-bsd
+                ;;
+        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+                basic_machine=m68000-att
+                ;;
+        3b*)
+                basic_machine=we32k-att
+                ;;
+        a29khif)
+                basic_machine=a29k-amd
+                os=-udi
+                ;;
+        adobe68k)
+                basic_machine=m68010-adobe
+                os=-scout
+                ;;
+        alliant | fx80)
+                basic_machine=fx80-alliant
+                ;;
+        altos | altos3068)
+                basic_machine=m68k-altos
+                ;;
+        am29k)
+                basic_machine=a29k-none
+                os=-bsd
+                ;;
+        amdahl)
+                basic_machine=580-amdahl
+                os=-sysv
+                ;;
+        amiga | amiga-*)
+                basic_machine=m68k-cbm
+                ;;
+        amigaos | amigados)
+                basic_machine=m68k-cbm
+                os=-amigaos
+                ;;
+        amigaunix | amix)
+                basic_machine=m68k-cbm
+                os=-sysv4
+                ;;
+        apollo68)
+                basic_machine=m68k-apollo
+                os=-sysv
+                ;;
+        apollo68bsd)
+                basic_machine=m68k-apollo
+                os=-bsd
+                ;;
+        aux)
+                basic_machine=m68k-apple
+                os=-aux
+                ;;
+        balance)
+                basic_machine=ns32k-sequent
+                os=-dynix
+                ;;
+        convex-c1)
+                basic_machine=c1-convex
+                os=-bsd
+                ;;
+        convex-c2)
+                basic_machine=c2-convex
+                os=-bsd
+                ;;
+        convex-c32)
+                basic_machine=c32-convex
+                os=-bsd
+                ;;
+        convex-c34)
+                basic_machine=c34-convex
+                os=-bsd
+                ;;
+        convex-c38)
+                basic_machine=c38-convex
+                os=-bsd
+                ;;
+        cray | ymp)
+                basic_machine=ymp-cray
+                os=-unicos
+                ;;
+        cray2)
+                basic_machine=cray2-cray
+                os=-unicos
+                ;;
+        [ctj]90-cray)
+                basic_machine=c90-cray
+                os=-unicos
+                ;;
+        crds | unos)
+                basic_machine=m68k-crds
+                ;;
+        da30 | da30-*)
+                basic_machine=m68k-da30
+                ;;
+        decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+                basic_machine=mips-dec
+                ;;
+        delta | 3300 | motorola-3300 | motorola-delta \
+              | 3300-motorola | delta-motorola)
+                basic_machine=m68k-motorola
+                ;;
+        delta88)
+                basic_machine=m88k-motorola
+                os=-sysv3
+                ;;
+        dpx20 | dpx20-*)
+                basic_machine=rs6000-bull
+                os=-bosx
+                ;;
+        dpx2* | dpx2*-bull)
+                basic_machine=m68k-bull
+                os=-sysv3
+                ;;
+        ebmon29k)
+                basic_machine=a29k-amd
+                os=-ebmon
+                ;;
+        elxsi)
+                basic_machine=elxsi-elxsi
+                os=-bsd
+                ;;
+        encore | umax | mmax)
+                basic_machine=ns32k-encore
+                ;;
+        es1800 | OSE68k | ose68k | ose | OSE)
+                basic_machine=m68k-ericsson
+                os=-ose
+                ;;
+        fx2800)
+                basic_machine=i860-alliant
+                ;;
+        genix)
+                basic_machine=ns32k-ns
+                ;;
+        gmicro)
+                basic_machine=tron-gmicro
+                os=-sysv
+                ;;
+        h3050r* | hiux*)
+                basic_machine=hppa1.1-hitachi
+                os=-hiuxwe2
+                ;;
+        h8300hms)
+                basic_machine=h8300-hitachi
+                os=-hms
+                ;;
+        h8300xray)
+                basic_machine=h8300-hitachi
+                os=-xray
+                ;;
+        h8500hms)
+                basic_machine=h8500-hitachi
+                os=-hms
+                ;;
+        harris)
+                basic_machine=m88k-harris
+                os=-sysv3
+                ;;
+        hp300-*)
+                basic_machine=m68k-hp
+                ;;
+        hp300bsd)
+                basic_machine=m68k-hp
+                os=-bsd
+                ;;
+        hp300hpux)
+                basic_machine=m68k-hp
+                os=-hpux
+                ;;
+        hp3k9[0-9][0-9] | hp9[0-9][0-9])
+                basic_machine=hppa1.0-hp
+                ;;
+        hp9k2[0-9][0-9] | hp9k31[0-9])
+                basic_machine=m68000-hp
+                ;;
+        hp9k3[2-9][0-9])
+                basic_machine=m68k-hp
+                ;;
+        hp9k6[0-9][0-9] | hp6[0-9][0-9])
+                basic_machine=hppa1.0-hp
+                ;;
+        hp9k7[0-79][0-9] | hp7[0-79][0-9])
+                basic_machine=hppa1.1-hp
+                ;;
+        hp9k78[0-9] | hp78[0-9])
+                # FIXME: really hppa2.0-hp
+                basic_machine=hppa1.1-hp
+                ;;
+        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+                # FIXME: really hppa2.0-hp
+                basic_machine=hppa1.1-hp
+                ;;
+        hp9k8[0-9][13679] | hp8[0-9][13679])
+                basic_machine=hppa1.1-hp
+                ;;
+        hp9k8[0-9][0-9] | hp8[0-9][0-9])
+                basic_machine=hppa1.0-hp
+                ;;
+        hppa-next)
+                os=-nextstep3
+                ;;
+        hppaosf)
+                basic_machine=hppa1.1-hp
+                os=-osf
+                ;;
+        hppro)
+                basic_machine=hppa1.1-hp
+                os=-proelf
+                ;;
+        i370-ibm* | ibm*)
+                basic_machine=i370-ibm
+                os=-mvs
+                ;;
+ # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+        i[34567]86v32)
+                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+                os=-sysv32
+                ;;
+        i[34567]86v4*)
+                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+                os=-sysv4
+                ;;
+        i[34567]86v)
+                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+                os=-sysv
+                ;;
+        i[34567]86sol2)
+                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+                os=-solaris2
+                ;;
+        i386mach)
+                basic_machine=i386-mach
+                os=-mach
+                ;;
+        i386-vsta | vsta)
+                basic_machine=i386-unknown
+                os=-vsta
+                ;;
+        i386-go32 | go32)
+                basic_machine=i386-unknown
+                os=-go32
+                ;;
+        i386-mingw32 | mingw32)
+                basic_machine=i386-unknown
+                os=-mingw32
+                ;;
+        iris | iris4d)
+                basic_machine=mips-sgi
+                case $os in
+                    -irix*)
+                        ;;
+                    *)
+                        os=-irix4
+                        ;;
+                esac
+                ;;
+        isi68 | isi)
+                basic_machine=m68k-isi
+                os=-sysv
+                ;;
+        m88k-omron*)
+                basic_machine=m88k-omron
+                ;;
+        magnum | m3230)
+                basic_machine=mips-mips
+                os=-sysv
+                ;;
+        merlin)
+                basic_machine=ns32k-utek
+                os=-sysv
+                ;;
+        miniframe)
+                basic_machine=m68000-convergent
+                ;;
+        *mint | *MiNT)
+                basic_machine=m68k-atari
+                os=-mint
+                ;;
+        mipsel*-linux*)
+                basic_machine=mipsel-unknown
+                os=-linux-gnu
+                ;;
+        mips*-linux*)
+                basic_machine=mips-unknown
+                os=-linux-gnu
+                ;;
+        mips3*-*)
+                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+                ;;
+        mips3*)
+                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+                ;;
+        monitor)
+                basic_machine=m68k-rom68k
+                os=-coff
+                ;;
+        msdos)
+                basic_machine=i386-unknown
+                os=-msdos
+                ;;
+        ncr3000)
+                basic_machine=i486-ncr
+                os=-sysv4
+                ;;
+        netbsd386)
+                basic_machine=i386-unknown
+                os=-netbsd
+                ;;
+        netwinder)
+                basic_machine=armv4l-corel
+                os=-linux
+                ;;
+        news | news700 | news800 | news900)
+                basic_machine=m68k-sony
+                os=-newsos
+                ;;
+        news1000)
+                basic_machine=m68030-sony
+                os=-newsos
+                ;;
+        news-3600 | risc-news)
+                basic_machine=mips-sony
+                os=-newsos
+                ;;
+        necv70)
+                basic_machine=v70-nec
+                os=-sysv
+                ;;
+        next | m*-next )
+                basic_machine=m68k-next
+                case $os in
+                    -nextstep* )
+                        ;;
+                    -ns2*)
+                      os=-nextstep2
+                        ;;
+                    *)
+                      os=-nextstep3
+                        ;;
+                esac
+                ;;
+        nh3000)
+                basic_machine=m68k-harris
+                os=-cxux
+                ;;
+        nh[45]000)
+                basic_machine=m88k-harris
+                os=-cxux
+                ;;
+        nindy960)
+                basic_machine=i960-intel
+                os=-nindy
+                ;;
+        mon960)
+                basic_machine=i960-intel
+                os=-mon960
+                ;;
+        np1)
+                basic_machine=np1-gould
+                ;;
+        op50n-* | op60c-*)
+                basic_machine=hppa1.1-oki
+                os=-proelf
+                ;;
+        OSE68000 | ose68000)
+                basic_machine=m68000-ericsson
+                os=-ose
+                ;;
+        os68k)
+                basic_machine=m68k-none
+                os=-os68k
+                ;;
+        pa-hitachi)
+                basic_machine=hppa1.1-hitachi
+                os=-hiuxwe2
+                ;;
+        paragon)
+                basic_machine=i860-intel
+                os=-osf
+                ;;
+        pbd)
+                basic_machine=sparc-tti
+                ;;
+        pbb)
+                basic_machine=m68k-tti
+                ;;
+         pc532 | pc532-*)
+                basic_machine=ns32k-pc532
+                ;;
+        pentium | p5 | k5 | k6 | nexen)
+                basic_machine=i586-pc
+                ;;
+        pentiumpro | p6 | 6x86)
+                basic_machine=i686-pc
+                ;;
+        pentiumii | pentium2)
+                basic_machine=i786-pc
+                ;;
+        pentium-* | p5-* | k5-* | k6-* | nexen-*)
+                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+                ;;
+        pentiumpro-* | p6-* | 6x86-*)
+                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+                ;;
+        pentiumii-* | pentium2-*)
+                basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+                ;;
+        pn)
+                basic_machine=pn-gould
+                ;;
+        power)  basic_machine=rs6000-ibm
+                ;;
+        ppc)    basic_machine=powerpc-unknown
+                ;;
+        ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+                ;;
+        ppcle | powerpclittle | ppc-le | powerpc-little)
+                basic_machine=powerpcle-unknown
+                ;;
+        ppcle-* | powerpclittle-*)
+                basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+                ;;
+        ps2)
+                basic_machine=i386-ibm
+                ;;
+        rom68k)
+                basic_machine=m68k-rom68k
+                os=-coff
+                ;;
+        rm[46]00)
+                basic_machine=mips-siemens
+                ;;
+        rtpc | rtpc-*)
+                basic_machine=romp-ibm
+                ;;
+        sa29200)
+                basic_machine=a29k-amd
+                os=-udi
+                ;;
+        sequent)
+                basic_machine=i386-sequent
+                ;;
+        sh)
+                basic_machine=sh-hitachi
+                os=-hms
+                ;;
+        sparclite-wrs)
+                basic_machine=sparclite-wrs
+                os=-vxworks
+                ;;
+        sps7)
+                basic_machine=m68k-bull
+                os=-sysv2
+                ;;
+        spur)
+                basic_machine=spur-unknown
+                ;;
+        st2000)
+                basic_machine=m68k-tandem
+                ;;
+        stratus)
+                basic_machine=i860-stratus
+                os=-sysv4
+                ;;
+        sun2)
+                basic_machine=m68000-sun
+                ;;
+        sun2os3)
+                basic_machine=m68000-sun
+                os=-sunos3
+                ;;
+        sun2os4)
+                basic_machine=m68000-sun
+                os=-sunos4
+                ;;
+        sun3os3)
+                basic_machine=m68k-sun
+                os=-sunos3
+                ;;
+        sun3os4)
+                basic_machine=m68k-sun
+                os=-sunos4
+                ;;
+        sun4os3)
+                basic_machine=sparc-sun
+                os=-sunos3
+                ;;
+        sun4os4)
+                basic_machine=sparc-sun
+                os=-sunos4
+                ;;
+        sun4sol2)
+                basic_machine=sparc-sun
+                os=-solaris2
+                ;;
+        sun3 | sun3-*)
+                basic_machine=m68k-sun
+                ;;
+        sun4)
+                basic_machine=sparc-sun
+                ;;
+        sun386 | sun386i | roadrunner)
+                basic_machine=i386-sun
+                ;;
+        symmetry)
+                basic_machine=i386-sequent
+                os=-dynix
+                ;;
+        s390*)
+                basic_machine=s390-ibm
+                ;;
+        t3e)
+                basic_machine=t3e-cray
+                os=-unicos
+                ;;
+        tx39)
+                basic_machine=mipstx39-unknown
+                ;;
+        tx39el)
+                basic_machine=mipstx39el-unknown
+                ;;
+        tower | tower-32)
+                basic_machine=m68k-ncr
+                ;;
+        udi29k)
+                basic_machine=a29k-amd
+                os=-udi
+                ;;
+        ultra3)
+                basic_machine=a29k-nyu
+                os=-sym1
+                ;;
+        v810 | necv810)
+                basic_machine=v810-nec
+                os=-none
+                ;;
+        vaxv)
+                basic_machine=vax-dec
+                os=-sysv
+                ;;
+        vms)
+                basic_machine=vax-dec
+                os=-vms
+                ;;
+        vpp*|vx|vx-*)
+                basic_machine=f301-fujitsu
+                ;;
+        vxworks960)
+                basic_machine=i960-wrs
+                os=-vxworks
+                ;;
+        vxworks68)
+                basic_machine=m68k-wrs
+                os=-vxworks
+                ;;
+        vxworks29k)
+                basic_machine=a29k-wrs
+                os=-vxworks
+                ;;
+        w65*)
+                basic_machine=w65-wdc
+                os=-none
+                ;;
+        w89k-*)
+                basic_machine=hppa1.1-winbond
+                os=-proelf
+                ;;
+        xmp)
+                basic_machine=xmp-cray
+                os=-unicos
+                ;;
+         xps | xps100)
+                basic_machine=xps100-honeywell
+                ;;
+        z8k-*-coff)
+                basic_machine=z8k-unknown
+                os=-sim
+                ;;
+        none)
+                basic_machine=none-none
+                os=-none
+                ;;
+ 
+ # Here we handle the default manufacturer of certain CPU types.  It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+        w89k)
+                basic_machine=hppa1.1-winbond
+                ;;
+        op50n)
+                basic_machine=hppa1.1-oki
+                ;;
+        op60c)
+                basic_machine=hppa1.1-oki
+                ;;
+        mips)
+                if [ x$os = x-linux-gnu ]; then
+                        basic_machine=mips-unknown
+                else
+                        basic_machine=mips-mips
+                fi
+                ;;
+        romp)
+                basic_machine=romp-ibm
+                ;;
+        rs6000)
+                basic_machine=rs6000-ibm
+                ;;
+        vax)
+                basic_machine=vax-dec
+                ;;
+        pdp11)
+                basic_machine=pdp11-dec
+                ;;
+        we32k)
+                basic_machine=we32k-att
+                ;;
+        sparc | sparcv9)
+                basic_machine=sparc-sun
+                ;;
+         cydra)
+                basic_machine=cydra-cydrome
+                ;;
+        orion)
+                basic_machine=orion-highlevel
+                ;;
+        orion105)
+                basic_machine=clipper-highlevel
+                ;;
+        mac | mpw | mac-mpw)
+                basic_machine=m68k-apple
+                ;;
+        pmac | pmac-mpw)
+                basic_machine=powerpc-apple
+                ;;
+        c4x*)
+                basic_machine=c4x-none
+                os=-coff
+                ;;
+        BS2000-siemens)
+                ;;
+        *)
+                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+                exit 1
+                ;;
+ esac
+ 
+ # Here we canonicalize certain aliases for manufacturers.
+ case $basic_machine in
+        *-digital*)
+                basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+                ;;
+        *-commodore*)
+                basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+                ;;
+        *)
+                ;;
+ esac
+ 
+ # Decode manufacturer-specific aliases for certain operating systems.
+ 
+ if [ x"$os" != x"" ]
+ then
+ case $os in
+         # First match some system type aliases
+         # that might get confused with valid system types.
+        # -solaris* is a basic system type, with this one exception.
+        -solaris1 | -solaris1.*)
+                os=`echo $os | sed -e 's|solaris1|sunos4|'`
+                ;;
+        -solaris)
+                os=-solaris2
+                ;;
+        -svr4*)
+                os=-sysv4
+                ;;
+        -unixware*)
+                os=-sysv4.2uw
+                ;;
+        -gnu/linux*)
+                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+                ;;
+        # First accept the basic system types.
+        # The portable systems comes first.
+        # Each alternative MUST END IN A *, to match a version number.
+        # -sysv* is not here because it comes later, after sysvr4.
+        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+              | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+              | -aos* \
+              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+              | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+              | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+              | -interix* | -uwin* | -rhapsody* | -openstep* | -oskit*)
+        # Remember, each alternative MUST END IN *, to match a version number.
+                ;;
+        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+              | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+              | -macos* | -mpw* | -magic* | -mon960* | -lnews*)
+                ;;
+        -mac*)
+                os=`echo $os | sed -e 's|mac|macos|'`
+                ;;
+        -linux*)
+                os=`echo $os | sed -e 's|linux|linux-gnu|'`
+                ;;
+        -sunos5*)
+                os=`echo $os | sed -e 's|sunos5|solaris2|'`
+                ;;
+        -sunos6*)
+                os=`echo $os | sed -e 's|sunos6|solaris3|'`
+                ;;
+        -osfrose*)
+                os=-osfrose
+                ;;
+        -osf*)
+                os=-osf
+                ;;
+        -utek*)
+                os=-bsd
+                ;;
+        -dynix*)
+                os=-bsd
+                ;;
+        -acis*)
+                os=-aos
+                ;;
+        -386bsd)
+                os=-bsd
+                ;;
+        -ctix* | -uts*)
+                os=-sysv
+                ;;
+        -ns2 )
+                os=-nextstep2
+                ;;
+        # Preserve the version number of sinix5.
+        -sinix5.*)
+                os=`echo $os | sed -e 's|sinix|sysv|'`
+                ;;
+        -sinix*)
+                os=-sysv4
+                ;;
+        -triton*)
+                os=-sysv3
+                ;;
+        -oss*)
+                os=-sysv3
+                ;;
+        -svr4)
+                os=-sysv4
+                ;;
+        -svr3)
+                os=-sysv3
+                ;;
+        -sysvr4)
+                os=-sysv4
+                ;;
+        # This must come after -sysvr4.
+        -sysv*)
+                ;;
+        -ose*)
+                os=-ose
+                ;;
+        -es1800*)
+                os=-ose
+                ;;
+        -xenix)
+                os=-xenix
+                ;;
+         -*mint | -*MiNT)
+                os=-mint
+                ;;
+        -none)
+                ;;
+        *)
+                # Get rid of the `-' at the beginning of $os.
+                os=`echo $os | sed 's/[^-]*-//'`
+                echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+                exit 1
+                ;;
+ esac
+ else
+ 
+ # Here we handle the default operating systems that come with various machines.
+ # The value should be what the vendor currently ships out the door with their
+ # machine or put another way, the most popular os provided with the machine.
+ 
+ # Note that if you're going to try to match "-MANUFACTURER" here (say,
+ # "-sun"), then you have to tell the case statement up towards the top
+ # that MANUFACTURER isn't an operating system.  Otherwise, code above
+ # will signal an error saying that MANUFACTURER isn't an operating
+ # system, and we'll never get to this point.
+ 
+ case $basic_machine in
+        *-acorn)
+                os=-riscix1.2
+                ;;
+        arm*-corel)
+                os=-linux
+                ;;
+        arm*-semi)
+                os=-aout
+                ;;
+         pdp11-*)
+                os=-none
+                ;;
+        *-dec | vax-*)
+                os=-ultrix4.2
+                ;;
+        m68*-apollo)
+                os=-domain
+                ;;
+        i386-sun)
+                os=-sunos4.0.2
+                ;;
+        m68000-sun)
+                os=-sunos3
+                # This also exists in the configure program, but was not the
+                # default.
+                # os=-sunos4
+                ;;
+        m68*-cisco)
+                os=-aout
+                ;;
+        mips*-cisco)
+                os=-elf
+                ;;
+        mips*-*)
+                os=-elf
+                ;;
+        *-tti)  # must be before sparc entry or we get the wrong os.
+                os=-sysv3
+                ;;
+        sparc-* | *-sun)
+                os=-sunos4.1.1
+                ;;
+        *-be)
+                os=-beos
+                ;;
+        *-ibm)
+                os=-aix
+                ;;
+        *-wec)
+                os=-proelf
+                ;;
+        *-winbond)
+                os=-proelf
+                ;;
+        *-oki)
+                os=-proelf
+                ;;
+        *-hp)
+                os=-hpux
+                ;;
+        *-hitachi)
+                os=-hiux
+                ;;
+        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+                os=-sysv
+                ;;
+        *-cbm)
+                os=-amigaos
+                ;;
+        *-dg)
+                os=-dgux
+                ;;
+        *-dolphin)
+                os=-sysv3
+                ;;
+        m68k-ccur)
+                os=-rtu
+                ;;
+        m88k-omron*)
+                os=-luna
+                ;;
+        *-next )
+                os=-nextstep
+                ;;
+        *-sequent)
+                os=-ptx
+                ;;
+        *-crds)
+                os=-unos
+                ;;
+        *-ns)
+                os=-genix
+                ;;
+        i370-*)
+                os=-mvs
+                ;;
+        *-next)
+                os=-nextstep3
+                ;;
+         *-gould)
+                os=-sysv
+                ;;
+         *-highlevel)
+                os=-bsd
+                ;;
+        *-encore)
+                os=-bsd
+                ;;
+         *-sgi)
+                os=-irix
+                ;;
+         *-siemens)
+                os=-sysv4
+                ;;
+        *-masscomp)
+                os=-rtu
+                ;;
+        f301-fujitsu)
+                os=-uxpv
+                ;;
+        *-rom68k)
+                os=-coff
+                ;;
+        *-*bug)
+                os=-coff
+                ;;
+        *-apple)
+                os=-macos
+                ;;
+        *-atari*)
+                os=-mint
+                ;;
+        *)
+                os=-none
+                ;;
+ esac
+ fi
+ 
+ # Here we handle the case where we know the os, and the CPU type, but not the
+ # manufacturer.  We pick the logical manufacturer.
+ vendor=unknown
+ case $basic_machine in
+        *-unknown)
+                case $os in
+                        -riscix*)
+                                vendor=acorn
+                                ;;
+                        -sunos*)
+                                vendor=sun
+                                ;;
+                        -aix*)
+                                vendor=ibm
+                                ;;
+                        -beos*)
+                                vendor=be
+                                ;;
+                        -hpux*)
+                                vendor=hp
+                                ;;
+                        -mpeix*)
+                                vendor=hp
+                                ;;
+                        -hiux*)
+                                vendor=hitachi
+                                ;;
+                        -unos*)
+                                vendor=crds
+                                ;;
+                        -dgux*)
+                                vendor=dg
+                                ;;
+                        -luna*)
+                                vendor=omron
+                                ;;
+                        -genix*)
+                                vendor=ns
+                                ;;
+                        -mvs*)
+                                vendor=ibm
+                                ;;
+                        -ptx*)
+                                vendor=sequent
+                                ;;
+                        -vxsim* | -vxworks*)
+                                vendor=wrs
+                                ;;
+                        -aux*)
+                                vendor=apple
+                                ;;
+                        -hms*)
+                                vendor=hitachi
+                                ;;
+                        -mpw* | -macos*)
+                                vendor=apple
+                                ;;
+                        -*mint | -*MiNT)
+                                vendor=atari
+                                ;;
+                esac
+                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+                ;;
+ esac
+ 
+ echo $basic_machine$os
+ exit 0


ossp-pkg/pth/shtool -> 1.43.2.3

*** /dev/null    Sat Nov 23 01:03:29 2024
--- -    Sat Nov 23 01:03:46 2024
***************
*** 0 ****
--- 1,1492 ----
+ #!/bin/sh
+ ##
+ ##  GNU shtool -- The GNU Portable Shell Tool
+ ##  Copyright (c) 1994-2000 Ralf S. Engelschall <rse@engelschall.com>
+ ##
+ ##  See http://www.gnu.org/software/shtool/ for more information.
+ ##  See ftp://ftp.gnu.org/gnu/shtool/ for latest version.
+ ##
+ ##  Version:  1.5.0 (01-Jul-2000)
+ ##  Contents: 7/17 available modules
+ ##
+ 
+ ##
+ ##  This program is free software; you can redistribute it and/or modify
+ ##  it under the terms of the GNU General Public License as published by
+ ##  the Free Software Foundation; either version 2 of the License, or
+ ##  (at your option) any later version.
+ ##
+ ##  This program is distributed in the hope that it will be useful,
+ ##  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ ##  General Public License for more details.
+ ##
+ ##  You should have received a copy of the GNU General Public License
+ ##  along with this program; if not, write to the Free Software
+ ##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ ##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
+ ##
+ ##  Notice: Given that you include this file verbatim into your own
+ ##  source tree, you are justified in saying that it remains separate
+ ##  from your package, and that this way you are simply just using GNU
+ ##  shtool. So, in this situation, there is no requirement that your
+ ##  package itself is licensed under the GNU General Public License in
+ ##  order to take advantage of GNU shtool.
+ ##
+ 
+ ##
+ ##  Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]
+ ##
+ ##  Available commands:
+ ##    echo       Print string with optional construct expansion
+ ##    install    Install a program, script or datafile
+ ##    mkdir      Make one or more directories
+ ##    fixperm    Fix file permissions inside a source tree
+ ##    tarball    Roll distribution tarballs
+ ##    scpp       Sharing C Pre-Processor
+ ##    version    Maintain a version information file
+ ##
+ ##  Not available commands (because module was not built-in):
+ ##    mdate      Pretty-print modification time of a file or dir
+ ##    table      Pretty-print a field-separated list as a table
+ ##    prop       Display progress with a running propeller
+ ##    move       Move files with simultaneous substitution
+ ##    mkln       Make link with calculation of relative paths
+ ##    mkshadow   Make a shadow tree through symbolic links
+ ##    guessos    Simple operating system guesser
+ ##    arx        Extended archive command
+ ##    slo        Separate linker options by library class
+ ##    path       Deal with program paths
+ ##
+ 
+ if [ $# -eq 0 ]; then
+     echo "$0:Error: invalid command line" 1>&2
+     echo "$0:Hint:  run \`$0 -h' for usage" 1>&2
+     exit 1
+ fi
+ if [ ".$1" = ".-h" -o ".$1" = ".--help" ]; then
+     echo "This is GNU shtool, version 1.5.0 (01-Jul-2000)"
+     echo "Copyright (c) 1994-2000 Ralf S. Engelschall <rse@engelschall.com>"
+     echo "Report bugs to <bug-shtool@gnu.org>"
+     echo ''
+     echo "Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]" 
+     echo ''
+     echo 'Available global <options>:'
+     echo '  -v, --version   display shtool version information'
+     echo '  -h, --help      display shtool usage help page (this one)'
+     echo '  -d, --debug     display shell trace information'
+     echo '  -r, --recreate  recreate this shtool script via shtoolize'
+     echo ''
+     echo 'Available <cmd-name> [<cmd-options>] [<cmd-args>]:'
+     echo '  echo     [-n] [-e] [<str> ...]'
+     echo '  install  [-v] [-t] [-c] [-C] [-s] [-m<mode>] [-o<owner>] [-g<group>]'
+     echo '           [-e<ext>] <file> [<file> ...] <path>'
+     echo '  mkdir    [-t] [-f] [-p] [-m<mode>] <dir> [<dir> ...]'
+     echo '  fixperm  [-v] [-t] <path> [<path> ...]'
+     echo '  tarball  [-t] [-v] [-o <tarball>] [-c <prog>] [-d <dir>] [-u'
+     echo '           <user>] [-g <group>] [-e <pattern>] <path> [<path> ...]'
+     echo '  scpp     [-v] [-p] [-f<filter>] [-o<ofile>] [-t<tfile>] [-M<mark>]'
+     echo '           [-D<dname>] [-C<cname>] <file> [<file> ...]'
+     echo '  version  [-l<lang>] [-n<name>] [-p<prefix>] [-s<version>] [-e]'
+     echo '           [-i<knob>] [-d<type>] <file>'
+     echo ''
+     echo 'Not available <cmd-name> (because module was not built-in):'
+     echo '  mdate    [-n] [-z] [-s] [-d] [-f<str>] [-o<spec>] <path>'
+     echo '  table    [-F<sep>] [-w<width>] [-c<cols>] [-s<strip>] <str><sep><str>...'
+     echo '  prop     [-p<str>]'
+     echo '  move     [-v] [-t] [-e] [-p] <src-file> <dst-file>'
+     echo '  mkln     [-t] [-f] [-s] <src-path> [<src-path> ...] <dst-path>'
+     echo '  mkshadow [-v] [-t] [-a] <src-dir> <dst-dir>'
+     echo '  guessos  '
+     echo '  arx      [-t] [-C<cmd>] <op> <archive> [<file> ...]'
+     echo '  slo      [-p<str>] -- -L<dir> -l<lib> [-L<dir> -l<lib> ...]'
+     echo '  path     [-s] [-r] [-d] [-b] [-m] [-p<path>] <str> [<str> ...]'
+     echo ''
+     exit 0
+ fi
+ if [ ".$1" = ".-v" -o ".$1" = ."--version" ]; then
+     echo "GNU shtool 1.5.0 (01-Jul-2000)"
+     exit 0
+ fi
+ if [ ".$1" = ".-r" -o ".$1" = ."--recreate" ]; then
+     shtoolize -oshtool echo install mkdir fixperm tarball scpp version
+     exit 0
+ fi
+ if [ ".$1" = ".-d" -o ".$1" = ."--debug" ]; then
+     shift
+     set -x
+ fi
+ name=`echo "$0" | sed -e 's;.*/\([^/]*\)$;\1;' -e 's;-sh$;;' -e 's;\.sh$;;'`
+ case "$name" in
+     echo|install|mkdir|fixperm|tarball|scpp|version )
+         #   implicit tool command selection
+         tool="$name"
+         ;;
+     * )
+         #   explicit tool command selection
+         tool="$1"
+         shift
+         ;;
+ esac
+ arg_spec=""
+ opt_spec=""
+ gen_tmpfile=no
+ 
+ ##
+ ##  DISPATCH INTO SCRIPT PROLOG
+ ##
+ 
+ case $tool in
+     echo )
+         str_tool="echo"
+         str_usage="[-n] [-e] [<str> ...]"
+         arg_spec="0+"
+         opt_spec="n.e."
+         opt_n=no
+         opt_e=no
+         ;;
+     install )
+         str_tool="install"
+         str_usage="[-v] [-t] [-c] [-C] [-s] [-m<mode>] [-o<owner>] [-g<group>] [-e<ext>] <file> [<file> ...] <path>"
+         arg_spec="2+"
+         opt_spec="v.t.c.C.s.m:o:g:e:"
+         opt_v=no
+         opt_t=no
+         opt_c=no
+         opt_C=no
+         opt_s=no
+         opt_m=""
+         opt_o=""
+         opt_g=""
+         opt_e=""
+         ;;
+     mkdir )
+         str_tool="mkdir"
+         str_usage="[-t] [-f] [-p] [-m<mode>] <dir> [<dir> ...]"
+         arg_spec="1+"
+         opt_spec="t.f.p.m:"
+         opt_t=no
+         opt_f=no
+         opt_p=no
+         opt_m=""
+         ;;
+     fixperm )
+         str_tool="fixperm"
+         str_usage="[-v] [-t] <path> [<path> ...]"
+         arg_spec="1+"
+         opt_spec="v.t."
+         opt_v=no
+         opt_t=no
+         ;;
+     tarball )
+         str_tool="tarball"
+         str_usage="[-t] [-v] [-o <tarball>] [-c <prog>] [-d <dir>] [-u <user>] [-g <group>] [-e <pattern>] <path> [<path> ...]"
+         gen_tmpfile=yes
+         arg_spec="1+"
+         opt_spec="t.v.o:c:d:u:g:e:"
+         opt_t=no
+         opt_v=no
+         opt_o=""
+         opt_c=""
+         opt_d=""
+         opt_u=""
+         opt_g=""
+         opt_e="CVS,\\.cvsignore,\\.[oa]\$"
+         ;;
+     scpp )
+         str_tool="scpp"
+         str_usage="[-v] [-p] [-f<filter>] [-o<ofile>] [-t<tfile>] [-M<mark>] [-D<dname>] [-C<cname>] <file> [<file> ...]"
+         gen_tmpfile=yes
+         arg_spec="1+"
+         opt_spec="v.p.f+o:t:M:D:C:"
+         opt_v=no
+         opt_p=no
+         opt_f=""
+         opt_o="lib.h"
+         opt_t="lib.h.in"
+         opt_M="%%MARK%%"
+         opt_D="cpp"
+         opt_C="intern"
+         ;;
+     version )
+         str_tool="version"
+         str_usage="[-l<lang>] [-n<name>] [-p<prefix>] [-s<version>] [-e] [-i<knob>] [-d<type>] <file>"
+         arg_spec="1="
+         opt_spec="l:n:p:s:i:e.d:"
+         opt_l="txt"
+         opt_n="unknown"
+         opt_p=""
+         opt_s=""
+         opt_e="no"
+         opt_i=""
+         opt_d="short"
+         ;;
+     -* )
+         echo "$0:Error: unknown option \`$tool'" 2>&1
+         echo "$0:Hint:  run \`$0 -h' for usage" 2>&1
+         exit 1
+         ;;
+     * )
+         echo "$0:Error: unknown command \`$tool'" 2>&1
+         echo "$0:Hint:  run \`$0 -h' for usage" 2>&1
+         exit 1
+         ;;
+ esac
+ 
+ ##
+ ##  COMMON UTILITY CODE
+ ##
+ 
+ #   determine name of tool
+ if [ ".$tool" != . ]; then
+     #   used inside shtool script
+     toolcmd="$0 $tool"
+     toolcmdhelp="shtool $tool"
+     msgprefix="shtool:$tool"
+ else
+     #   used as standalone script
+     toolcmd="$0"
+     toolcmdhelp="sh $0"
+     msgprefix="$str_tool"
+ fi
+ 
+ #   parse argument specification string
+ eval `echo $arg_spec |\
+       sed -e 's/^\([0-9]*\)\([+=]\)/arg_NUMS=\1; arg_MODE=\2/'`
+ 
+ #   parse option specification string
+ eval `echo h.$opt_spec |\
+       sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'`
+ 
+ #   interate over argument line
+ opt_PREV=''
+ while [ $# -gt 0 ]; do
+     #   special option stops processing
+     if [ ".$1" = ".--" ]; then
+         shift
+         break
+     fi
+ 
+     #   determine option and argument
+     opt_ARG_OK=no
+     if [ ".$opt_PREV" != . ]; then
+         #   merge previous seen option with argument
+         opt_OPT="$opt_PREV"
+         opt_ARG="$1"
+         opt_ARG_OK=yes
+         opt_PREV=''
+     else
+         #   split argument into option and argument
+         case "$1" in
+             -[a-zA-Z0-9]*)
+                 eval `echo "x$1" |\
+                       sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \
+                           -e 's/";\(.*\)$/"; opt_ARG="\1"/'`
+                 ;;
+             -[a-zA-Z0-9])
+                 opt_OPT=`echo "x$1" | cut -c3-`
+                 opt_ARG=''
+                 ;;
+             *)
+                 break
+                 ;;
+         esac
+     fi
+ 
+     #   eat up option
+     shift
+ 
+     #   determine whether option needs an argument
+     eval "opt_MODE=\$opt_MODE_${opt_OPT}"
+     if [ ".$opt_ARG" = . -a ".$opt_ARG_OK" != .yes ]; then
+         if [ ".$opt_MODE" = ".:" -o ".$opt_MODE" = ".+" ]; then
+             opt_PREV="$opt_OPT"
+             continue
+         fi
+     fi
+ 
+     #   process option
+     case $opt_MODE in
+         '.' )
+             #   boolean option
+             eval "opt_${opt_OPT}=yes"
+             ;;
+         ':' )
+             #   option with argument (multiple occurances override)
+             eval "opt_${opt_OPT}=\"\$opt_ARG\""
+             ;;
+         '+' )
+             #   option with argument (multiple occurances append)
+             eval "opt_${opt_OPT}=\"\$opt_${opt_OPT} \$opt_ARG\""
+             ;;
+         * )
+             echo "$msgprefix:Error: unknown option: \`-$opt_OPT'" 1>&2
+             echo "$msgprefix:Hint:  run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2
+             exit 1
+             ;;
+     esac
+ done
+ if [ ".$opt_PREV" != . ]; then
+     echo "$msgprefix:Error: missing argument to option \`-$opt_PREV'" 1>&2
+     echo "$msgprefix:Hint:  run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2
+     exit 1
+ fi
+ 
+ #   process help option
+ if [ ".$opt_h" = .yes ]; then
+     echo "Usage: $toolcmdhelp $str_usage"
+     exit 0
+ fi
+ 
+ #   complain about incorrect number of arguments
+ case $arg_MODE in
+     '=' )
+         if [ $# -ne $arg_NUMS ]; then
+             echo "$msgprefix:Error: invalid number of arguments (exactly $arg_NUMS expected)" 1>&2
+             echo "$msgprefix:Hint:  run \`$toolcmd -h' or \`man shtool' for details" 1>&2
+             exit 1
+         fi
+         ;;
+     '+' )
+         if [ $# -lt $arg_NUMS ]; then
+             echo "$msgprefix:Error: invalid number of arguments (at least $arg_NUMS expected)" 1>&2
+             echo "$msgprefix:Hint:  run \`$toolcmd -h' or \`man shtool' for details" 1>&2
+             exit 1
+         fi
+         ;;
+ esac
+ 
+ #   establish a temporary file on request
+ if [ ".$gen_tmpfile" = .yes ]; then
+     if [ ".$TMPDIR" != . ]; then
+         tmpdir="$TMPDIR"
+     elif [ ".$TEMPDIR" != . ]; then
+         tmpdir="$TEMPDIR"
+     else
+         tmpdir="/tmp"
+     fi
+     tmpfile="$tmpdir/.shtool.$$"
+     rm -f $tmpfile >/dev/null 2>&1
+     touch $tmpfile
+ fi
+ 
+ ##
+ ##  DISPATCH INTO SCRIPT BODY
+ ##
+ 
+ case $tool in
+ 
+ echo )
+     ##
+     ##  echo -- Print string with optional construct expansion
+     ##  Copyright (c) 1998-2000 Ralf S. Engelschall <rse@engelschall.com>
+     ##  Originally written for WML as buildinfo
+     ##
+     
+     text="$*"
+     
+     #   check for broken escape sequence expansion
+     seo=''
+     bytes=`echo '\1' | wc -c | awk '{ printf("%s", $1); }'`
+     if [ ".$bytes" != .3 ]; then
+         bytes=`echo -E '\1' | wc -c | awk '{ printf("%s", $1); }'`
+         if [ ".$bytes" = .3 ]; then
+             seo='-E'
+         fi
+     fi
+     
+     #   check for existing -n option (to suppress newline)
+     minusn=''
+     bytes=`echo -n 123 2>/dev/null | wc -c | awk '{ printf("%s", $1); }'`
+     if [ ".$bytes" = .3 ]; then
+         minusn='-n'
+     fi
+     
+     #   determine terminal bold sequence
+     term_bold='' 
+     term_norm=''
+     if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[Bb]'`" != . ]; then
+         case $TERM in
+             #   for the most important terminal types we directly know the sequences
+             xterm|xterm*|vt220|vt220*)
+                 term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
+                 term_norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
+                 ;;
+             vt100|vt100*)
+                 term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
+                 term_norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
+                 ;;
+             #   for all others, we try to use a possibly existing `tput' or `tcout' utility
+             * )
+                 paths=`echo $PATH | sed -e 's/:/ /g'`
+                 for tool in tput tcout; do
+                     for dir in $paths; do
+                         if [ -r "$dir/$tool" ]; then
+                             for seq in bold md smso; do # 'smso' is last
+                                 bold="`$dir/$tool $seq 2>/dev/null`"
+                                 if [ ".$bold" != . ]; then
+                                     term_bold="$bold"
+                                     break
+                                 fi
+                             done
+                             if [ ".$term_bold" != . ]; then
+                                 for seq in sgr0 me rmso reset; do # 'reset' is last
+                                     norm="`$dir/$tool $seq 2>/dev/null`"
+                                     if [ ".$norm" != . ]; then
+                                         term_norm="$norm"
+                                         break
+                                     fi
+                                 done
+                             fi
+                             break
+                         fi
+                     done
+                     if [ ".$term_bold" != . -a ".$term_norm" != . ]; then
+                         break;
+                     fi
+                 done
+                 ;;
+         esac
+         if [ ".$term_bold" = . -o ".$term_norm" = . ]; then
+             echo "$msgprefix:Warning: unable to determine terminal sequence for bold mode" 1>&2
+         fi
+     fi
+     
+     #   determine user name
+     username=''
+     if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[uU]'`" != . ]; then
+         username="$LOGNAME"
+         if [ ".$username" = . ]; then
+             username="$USER"
+             if [ ".$username" = . ]; then
+                 username="`(whoami) 2>/dev/null |\
+                            awk '{ printf("%s", $1); }'`"
+                 if [ ".$username" = . ]; then
+                     username="`(who am i) 2>/dev/null |\
+                                awk '{ printf("%s", $1); }'`"
+                     if [ ".$username" = . ]; then
+                         username='unknown'
+                     fi
+                 fi
+             fi
+         fi
+     fi
+     
+     #   determine user id
+     userid=''
+     if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%U'`" != . ]; then
+         userid="`(id -u) 2>/dev/null`"
+         if [ ".$userid" = . ]; then
+             str="`(id) 2>/dev/null`"
+             if [ ".`echo $str | grep '^uid[    ]*=[    ]*[0-9]*('`" != . ]; then
+                 userid=`echo $str | sed -e 's/^uid[    ]*=[    ]*//' -e 's/(.*//'`
+             fi
+             if [ ".$userid" = . ]; then
+                 userid=`egrep "^${username}:" /etc/passwd 2>/dev/null | \
+                         sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
+                 if [ ".$userid" = . ]; then
+                     userid=`(ypcat passwd) 2>/dev/null |
+                             egrep "^${username}:" | \
+                             sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
+                     if [ ".$userid" = . ]; then
+                         userid='?'
+                     fi
+                 fi
+             fi
+         fi
+     fi
+     
+     #   determine host name
+     hostname=''
+     if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%h'`" != . ]; then
+         hostname="`(uname -n) 2>/dev/null |\
+                    awk '{ printf("%s", $1); }'`"
+         if [ ".$hostname" = . ]; then
+             hostname="`(hostname) 2>/dev/null |\
+                        awk '{ printf("%s", $1); }'`"
+             if [ ".$hostname" = . ]; then
+                 hostname='unknown'
+             fi
+         fi
+         case $hostname in
+             *.* )
+                 domainname=".`echo $hostname | cut -d. -f2-`"
+                 hostname="`echo $hostname | cut -d. -f1`"
+                 ;;
+         esac
+     fi
+     
+     #   determine domain name
+     domainname=''
+     if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%d'`" != . ]; then
+         if [ ".$domainname" = . ]; then
+             if [ -f /etc/resolv.conf ]; then
+                 domainname="`egrep '^[         ]*domain' /etc/resolv.conf | head -1 |\
+                              sed -e 's/.*domain//' \
+                                  -e 's/^[      ]*//' -e 's/^ *//' -e 's/^      *//' \
+                                  -e 's/^\.//' -e 's/^/./' |\
+                              awk '{ printf("%s", $1); }'`"
+                 if [ ".$domainname" = . ]; then
+                     domainname="`egrep '^[     ]*search' /etc/resolv.conf | head -1 |\
+                                  sed -e 's/.*search//' \
+                                      -e 's/^[  ]*//' -e 's/^ *//' -e 's/^      *//' \
+                                      -e 's/ .*//' -e 's/       .*//' \
+                                      -e 's/^\.//' -e 's/^/./' |\
+                                  awk '{ printf("%s", $1); }'`"
+                 fi
+             fi
+         fi
+     fi
+     
+     #   determine current time
+     time_day=''
+     time_month=''
+     time_year=''
+     time_monthname=''
+     if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[DMYm]'`" != . ]; then
+         time_day=`date '+%d'`
+         time_month=`date '+%m'`
+         time_year=`date '+%Y' 2>/dev/null`
+         if [ ".$time_year" = . ]; then
+             time_year=`date '+%y'`
+             case $time_year in
+                 [5-9][0-9]) time_year="19$time_year" ;;
+                 [0-4][0-9]) time_year="20$time_year" ;;
+             esac
+         fi
+         case $time_month in
+             1|01) time_monthname='Jan' ;;
+             2|02) time_monthname='Feb' ;;
+             3|03) time_monthname='Mar' ;;
+             4|04) time_monthname='Apr' ;;
+             5|05) time_monthname='May' ;;
+             6|06) time_monthname='Jun' ;;
+             7|07) time_monthname='Jul' ;;
+             8|08) time_monthname='Aug' ;;
+             9|09) time_monthname='Sep' ;;
+               10) time_monthname='Oct' ;;
+               11) time_monthname='Nov' ;;
+               12) time_monthname='Dec' ;;
+         esac
+     fi
+     
+     #   expand special ``%x'' constructs
+     if [ ".$opt_e" = .yes ]; then
+         text=`echo $seo "$text" |\
+               sed -e "s/%B/${term_bold}/g" \
+                   -e "s/%b/${term_norm}/g" \
+                   -e "s/%u/${username}/g" \
+                   -e "s/%U/${userid}/g" \
+                   -e "s/%h/${hostname}/g" \
+                   -e "s/%d/${domainname}/g" \
+                   -e "s/%D/${time_day}/g" \
+                   -e "s/%M/${time_month}/g" \
+                   -e "s/%Y/${time_year}/g" \
+                   -e "s/%m/${time_monthname}/g" 2>/dev/null`
+     fi
+     
+     #   create output
+     if [ .$opt_n = .no ]; then
+         echo $seo "$text"
+     else
+         #   the harder part: echo -n is best, because
+         #   awk may complain about some \xx sequences.
+         if [ ".$minusn" != . ]; then
+             echo $seo $minusn "$text"
+         else
+             echo dummy | awk '{ printf("%s", TEXT); }' TEXT="$text"
+         fi
+     fi
+     ;;
+ 
+ install )
+     ##
+     ##  install -- Install a program, script or datafile
+     ##  Copyright (c) 1997-2000 Ralf S. Engelschall <rse@engelschall.com>
+     ##  Originally written for shtool
+     ##
+     
+     #   determine source(s) and destination 
+     argc=$#
+     srcs=""
+     while [ $# -gt 1 ]; do
+         srcs="$srcs $1"
+         shift
+     done
+     dstpath="$1"
+     
+     #   type check for destination
+     dstisdir=0
+     if [ -d $dstpath ]; then
+         dstpath=`echo "$dstpath" | sed -e 's:/$::'`
+         dstisdir=1
+     fi
+     
+     #   consistency check for destination
+     if [ $argc -gt 2 -a $dstisdir = 0 ]; then
+         echo "$msgprefix:Error: multiple sources require destination to be directory" 1>&2
+         exit 1
+     fi
+     
+     #   iterate over all source(s)
+     for src in $srcs; do
+         dst=$dstpath
+     
+         #  If destination is a directory, append the input filename
+         if [ $dstisdir = 1 ]; then
+             dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'`
+             dst="$dst/$dstfile"
+         fi
+     
+         #  Add a possible extension to src and dst
+         if [ ".$opt_e" != . ]; then
+             src="$src$opt_e"
+             dst="$dst$opt_e"
+         fi
+     
+         #  Check for correct arguments
+         if [ ".$src" = ".$dst" ]; then
+             echo "$msgprefix:Warning: source and destination are the same - skipped" 1>&2
+             continue
+         fi
+         if [ -d "$src" ]; then
+             echo "$msgprefix:Warning: source \`$src' is a directory - skipped" 1>&2
+             continue
+         fi
+     
+         #  Make a temp file name in the destination directory
+         dsttmp=`echo $dst |\
+                 sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;' \
+                     -e "s;\$;/#INST@$$#;"`
+     
+         #  Verbosity
+         if [ ".$opt_v" = .yes ]; then
+             echo "$src -> $dst" 1>&2
+         fi
+     
+         #  Copy or move the file name to the temp name
+         #  (because we might be not allowed to change the source)
+         if [ ".$opt_C" = .yes ]; then
+             opt_c=yes
+         fi
+         if [ ".$opt_c" = .yes ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "cp $src $dsttmp" 1>&2
+             fi
+             cp $src $dsttmp || exit $?
+         else
+             if [ ".$opt_t" = .yes ]; then
+                 echo "mv $src $dsttmp" 1>&2
+             fi
+             mv $src $dsttmp || exit $?
+         fi
+     
+         #  Adjust the target file
+         #  (we do chmod last to preserve setuid bits)
+         if [ ".$opt_s" = .yes ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "strip $dsttmp" 1>&2
+             fi
+             strip $dsttmp || exit $?
+         fi
+         if [ ".$opt_o" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chown $opt_o $dsttmp" 1>&2
+             fi
+             chown $opt_o $dsttmp || exit $?
+         fi
+         if [ ".$opt_g" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chgrp $opt_g $dsttmp" 1>&2
+             fi
+             chgrp $opt_g $dsttmp || exit $?
+         fi
+         if [ ".$opt_m" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chmod $opt_m $dsttmp" 1>&2
+             fi
+             chmod $opt_m $dsttmp || exit $?
+         fi
+     
+         #   Determine whether to do a quick install
+         #   (has to be done _after_ the strip was already done)
+         quick=no
+         if [ ".$opt_C" = .yes ]; then
+             if [ -r $dst ]; then
+                 if cmp -s $src $dst; then
+                     quick=yes
+                 fi
+             fi
+         fi
+     
+         #   Finally install the file to the real destination
+         if [ $quick = yes ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "rm -f $dsttmp" 1>&2
+             fi
+             rm -f $dsttmp
+         else
+             if [ ".$opt_t" = .yes ]; then
+                 echo "rm -f $dst && mv $dsttmp $dst" 1>&2
+             fi
+             rm -f $dst && mv $dsttmp $dst
+         fi
+     done
+     ;;
+ 
+ mkdir )
+     ##
+     ##  mkdir -- Make one or more directories
+     ##  Copyright (c) 1996-2000 Ralf S. Engelschall <rse@engelschall.com>
+     ##  Originally written for public domain by Noah Friedman <friedman@prep.ai.mit.edu>
+     ##  Cleaned up and enhanced for shtool
+     ##
+     
+     errstatus=0
+     for p in ${1+"$@"}; do
+         #   if the directory already exists...
+         if [ -d "$p" ]; then
+             if [ ".$opt_f" = .no ] && [ ".$opt_p" = .no ]; then
+                 echo "$msgprefix:Error: directory already exists: $p" 1>&2
+                 errstatus=1
+                 break
+             else
+                 continue
+             fi
+         fi
+         #   if the directory has to be created...
+         if [ ".$opt_p" = .no ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "mkdir $p" 1>&2
+             fi
+             mkdir $p || errstatus=$?
+         else
+             #   the smart situation
+             set fnord `echo ":$p" |\
+                        sed -e 's/^:\//%/' \
+                            -e 's/^://' \
+                            -e 's/\// /g' \
+                            -e 's/^%/\//'`
+             shift
+             pathcomp=''
+             for d in ${1+"$@"}; do
+                 pathcomp="$pathcomp$d"
+                 case "$pathcomp" in
+                     -* ) pathcomp="./$pathcomp" ;;
+                 esac
+                 if [ ! -d "$pathcomp" ]; then
+                     if [ ".$opt_t" = .yes ]; then
+                         echo "mkdir $pathcomp" 1>&2
+                     fi
+                     mkdir $pathcomp || errstatus=$?
+                     if [ ".$opt_m" != . ]; then
+                         if [ ".$opt_t" = .yes ]; then
+                             echo "chmod $opt_m $pathcomp" 1>&2
+                         fi
+                         chmod $opt_m $pathcomp || errstatus=$?
+                     fi
+                 fi
+                 pathcomp="$pathcomp/"
+             done
+         fi
+     done
+     exit $errstatus
+     ;;
+ 
+ fixperm )
+     ##
+     ##  fixperm -- Fix file permissions inside a source tree
+     ##  Copyright (c) 1996-2000 Ralf S. Engelschall <rse@engelschall.com>
+     ##  Originally written for ePerl
+     ##
+     
+     paths="$*"
+     
+     #   check whether the test command supports the -x option
+     if [ -x /bin/sh ] 2>/dev/null; then
+         minusx="-x"
+     else
+         minusx="-r"
+     fi
+     
+     #   iterate over paths
+     for p in $paths; do
+         for file in `find $p -depth -print`; do
+             if [ -f $file ]; then
+                 if [ $minusx $file ]; then
+                     if [ ".$opt_v" = .yes ]; then
+                         echo "-rwxrwxr-x $file" 2>&1
+                     fi
+                     if [ ".$opt_t" = .yes ]; then
+                         echo "chmod 775 $file" 2>&1
+                     fi
+                     chmod 775 $file
+                 else
+                     if [ ".$opt_v" = .yes ]; then
+                         echo "-rw-rw-r-- $file" 2>&1
+                     fi
+                     if [ ".$opt_t" = .yes ]; then
+                         echo "chmod 664 $file" 2>&1
+                     fi
+                     chmod 664 $file
+                 fi
+                 continue
+             fi
+             if [ -d $file ]; then
+                 if [ ".$opt_v" = .yes ]; then
+                     echo "drwxrwxr-x $file" 2>&1
+                 fi
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "chmod 775 $file" 2>&1
+                 fi
+                 chmod 775 $file
+                 continue
+             fi
+             if [ ".$opt_v" = .yes ]; then
+                 echo "?????????? $file" 2>&1
+             fi
+         done
+     done
+     ;;
+ 
+ tarball )
+     ##
+     ##  tarball -- Roll distribution tarballs
+     ##  Copyright (c) 1999-2000 Ralf S. Engelschall <rse@engelschall.com>
+     ##  Originally written for shtool
+     ##
+     
+     srcs="$*"
+     
+     #   check whether the test command supports the -x option
+     if [ -x /bin/sh ] 2>/dev/null; then
+         minusx="-x"
+     else
+         minusx="-r"
+     fi
+     
+     #   find the tools
+     paths="`echo $PATH |\
+             sed -e 's%/*:%:%g' -e 's%/*$%%' \
+                 -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \
+                 -e 's/:/ /g'`"
+     for spec in find:gfind,find tar:gtar,tar tardy:tardy,tarcust; do
+         prg=`echo $spec | sed -e 's/:.*$//'`
+         tools=`echo $spec | sed -e 's/^.*://'`
+         eval "prg_${prg}=''"
+         #   iterate over tools
+         for tool in `echo $tools | sed -e 's/,/ /g'`; do
+             #   iterate over paths
+             for path in $paths; do
+                 if [ $minusx "$path/$tool" ] && [ ! -d "$path/$tool" ]; then
+                     eval "prg_${prg}=\"$path/$tool\""
+                     break
+                 fi
+             done
+             eval "val=\$prg_${prg}"
+             if [ ".$val" != . ]; then
+                 break
+             fi
+         done
+     done
+     
+     #   expand source paths
+     exclude=''
+     for pat in `echo $opt_e | sed 's/,/ /g'`; do
+         exclude="$exclude | grep -v '$pat'"
+     done
+     if [ ".$opt_t" = .yes ]; then
+         echo "cp /dev/null $tmpfile.lst" 1>&2
+     fi
+     cp /dev/null $tmpfile.lst
+     for src in $srcs; do
+         if [ -d $src ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "(cd $src && $prg_find . -type f -depth -print) | sed -e 's:^\\.\$::' -e 's:^\\./::' | cat $exclude >>$tmpfile.lst" 1>&2
+             fi
+             (cd $src && find . -type f -depth -print) |\
+             sed -e 's:^\.$::' -e 's:^\./::' | eval cat $exclude >>$tmpfile.lst
+         else
+             if [ ".$opt_t" = .yes ]; then
+                 echo "echo $src >>$tmpfile.lst" 1>&2
+             fi
+             echo $src >>$tmpfile.lst
+         fi
+     done
+     sort <$tmpfile.lst >$tmpfile.lst.n
+     mv $tmpfile.lst.n $tmpfile.lst
+     if [ ".$opt_v" = .yes ]; then
+         cat $tmpfile.lst | sed -e 's/^/  /' 1>&2
+     fi
+     
+     #   determine tarball file and directory name
+     if [ ".$opt_o" != . ]; then
+         tarfile="$opt_o"
+         if [ ".$opt_d" != . ]; then
+             tarname="$opt_d"
+         else
+             tarname=`echo $tarfile | sed -e 's/\.tar.*$//' -e 's;.*/\([^/]*\)$;\1;'`
+         fi
+     else
+         if [ ".$opt_d" != . ]; then
+             tarname="$opt_d"
+         elif [ -d "$from" ]; then
+             tarname=`echo $from | sed -e 's;.*/\([^/]*\)$;\1;'`
+         else
+             tarname="out"
+         fi
+         tarfile="$tarname.tar"
+     fi
+     
+     #   roll the tarball
+     compress=''
+     if [ ".$opt_c" != . ]; then
+         compress="| $opt_c"
+     fi
+     if [ ".$prg_tardy" != . ]; then
+         #   the elegant hackers way
+         tardy_opt="--prefix=$tarname"
+         tardy_opt="$tardy_opt --user_number=0 --group_number=0" # security!
+         if [ ".$opt_u" != . ]; then
+             tardy_opt="$tardy_opt --user_name=$opt_u"
+         fi
+         if [ ".$opt_g" != . ]; then
+             tardy_opt="$tardy_opt --group_name=$opt_g"
+         fi
+         if [ ".$opt_t" = .yes ]; then
+             echo "cat $tmpfile.lst | xargs $prg_tar cf - | $prg_tardy $tardy_opt | cat $compress >$tmpfile.out" 1>&2
+         fi
+         cat $tmpfile.lst |\
+         xargs $prg_tar cf - |\
+         $prg_tardy $tardy_opt |\
+         eval cat $compress >$tmpfile.out
+         if [ ".$opt_t" = .yes ]; then
+             echo "cp $tmpfile.out $tarfile" 1>&2
+         fi
+         cp $tmpfile.out $tarfile
+     else
+         #  the portable standard way
+         if [ ".$opt_t" = .yes ]; then
+             echo "mkdir $tmpdir/$tarname" 1>&2
+         fi
+         mkdir $tmpdir/$tarname || exit 1
+         if [ ".$opt_t" = .yes ]; then
+             echo "cat $tmpfile.lst | xargs $prg_tar cf - | (cd $tmpdir/$tarname && $prg_tar xf -)" 1>&2
+         fi
+         cat $tmpfile.lst |\
+         xargs $prg_tar cf - |\
+         (cd $tmpdir/$tarname && $prg_tar xf -)
+         if [ ".$opt_u" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1" 2>&1
+             fi
+             chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1 ||\
+             echo "$msgprefix:Warning: cannot set user name \`$opt_u' (would require root priviledges)"
+         fi
+         if [ ".$opt_g" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1" 2>&1
+             fi
+             chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1 ||\
+             echo "$msgprefix:Warning: cannot set group name \`$opt_g' (would require root priviledges)"
+         fi
+         if [ ".$opt_t" = .yes ]; then
+             echo "(cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) | cat $compress >$tmpfile.out" 1>&2
+         fi
+         (cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) |\
+         eval cat $compress >$tmpfile.out
+         if [ ".$opt_t" = .yes ]; then
+             echo "cp $tmpfile.out $tarfile" 1>&2
+         fi
+         cp $tmpfile.out $tarfile
+         if [ ".$opt_t" = .yes ]; then
+             echo "rm -rf $tmpdir/$tarname" 1>&2
+         fi
+         rm -rf $tmpdir/$tarname
+     fi
+     
+     #   cleanup
+     if [ ".$opt_t" = .yes ]; then
+         echo "rm -f $tmpfile.lst $tmpfile.out" 1>&2
+     fi
+     rm -f $tmpfile.lst $tmpfile.out
+     ;;
+ 
+ scpp )
+     ##
+     ##  scpp -- Sharing C Pre-Processor
+     ##  Copyright (c) 1999-2000 Ralf S. Engelschall <rse@engelschall.com>
+     ##  Originally written for GNU Pth
+     ##
+     
+     srcs="$*"
+     output="${opt_o}.n"
+     
+     #   find a reasonable Awk
+     awk=''
+     paths=`echo $PATH |\
+            sed -e 's%/*:%:%g' -e 's%/$%%' \
+                -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \
+                -e 's/:/ /g'`
+     for name in gawk nawk awk; do
+         for path in $paths; do
+             if [ -r "$path/$name" ]; then
+                 awk="$path/$name"
+                 break
+             fi
+         done
+         if [ ".$awk" != . ]; then
+             break
+         fi
+     done
+     if [ ".$awk" = . ]; then
+         echo "$msgprefix:Error: cannot find a reasonable Awk" 1>&2
+         exit 1
+     fi
+     
+     #   parse source file(s)
+     if [ ".$opt_v" = .yes ]; then
+         echo "Parsing:" | $awk '{ printf("%s", $0); }' 1>&2
+     fi
+     for src in $srcs; do
+         if [ ".$opt_v" = .yes ]; then
+             echo $src | $awk '{ printf(" %s", $0); }' 1>&2
+         fi
+         if [ ".$opt_f" = . ]; then
+             inputcmd="cat $src"
+         else
+             inputcmd="sed $opt_f $src"
+         fi
+         $inputcmd |\
+         $awk '
+            BEGIN {
+                ln    = 0;
+                fln   = 0;
+                level = 0;
+                mode  = "";
+                store = "";
+            }
+            {
+                ln++;
+            }
+            /^#if.*/ {
+                level++;
+            }
+            /^#if [a-zA-Z_][a-zA-Z0-9_]* *$/ {
+                if ($2 == define) {
+                    mode = "D";
+                    printf("D:#line %d \"%s\"\n", ln, src);
+                    next;
+                }
+            }
+            /^#endif.*/ {
+                level--;
+                if (mode == "D" && level == 0) {
+                    mode = "";
+                    next;
+                }
+            }
+            /^[a-zA-Z_][a-zA-Z0-9_].*;.*/ {
+                if ($1 == class) {
+                    printf("V:#line %d \"%s\"\n", ln, src);
+                    printf("V:%s\n", $0);
+                    printf("J:%s\n", $0);
+                    next;
+                }
+            }
+            /^[a-zA-Z_][a-zA-Z0-9_].*=.*/ {
+                if ($1 == class) {
+                    printf("V:#line %d \"%s\"\n", ln, src);
+                    printf("V:%s\n", $0);
+                    printf("J:%s\n", $0);
+                    next;
+                }
+            }
+            /^[a-zA-Z_][a-zA-Z0-9_]*/ {
+                if ($1 == class) {
+                    fln = ln;
+                    store = $0;
+                    mode = "F";
+                    next;
+                }
+            }
+            /^\{ *$/ {
+                if (mode == "F") {
+                    printf("F:#line %d \"%s\"\n", fln, src);
+                    printf("F:%s;\n", store);
+                    printf("I:%s;\n", store);
+                    store = "";
+                    mode = "";
+                    next;
+                }
+            }
+            {
+                if (mode == "D")
+                    printf("D:%s\n", $0);
+                else if (mode == "F")
+                    store = store " " $0;
+            }
+         ' "src=$src" "define=$opt_D" "class=$opt_C" >>$tmpfile
+     done
+     if [ ".$opt_v" = .yes ]; then
+         echo "" 1>&2
+     fi
+     
+     #   start generating output header
+     echo "/* $opt_o -- autogenerated from $opt_t, DO NOT EDIT! */" >$output
+     echo "#line 1 \"$opt_t\"" >>$output
+     sed <$opt_t -e "1,/^${opt_M} *\$/p" -e 'd' |\
+     sed -e "/^${opt_M} *\$/d" >>$output
+     
+     #   merge in the define blocks
+     grep '^D:' $tmpfile | sed -e 's/^D://' >>$output
+     
+     #   generate standard prolog
+     echo "#line 1 \"_ON_THE_FLY_\"" >>$output
+     echo "" >>$output
+     echo "/* make sure the scpp source extensions are skipped */" >>$output
+     echo "#define $opt_D 0" >>$output
+     echo "#define $opt_C /**/" >>$output
+     
+     #   generate namespace hiding for variables
+     echo "" >>$output
+     echo "/* move intern variables to hidden namespace */" >>$output
+     grep '^J:' $tmpfile | sed >>$output \
+         -e 's/^J://' \
+         -e 's/  */ /g' \
+         -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\];.*$/#define \1 __\1/' \
+         -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\] =.*$/#define \1 __\1/' \
+         -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\);.*$/#define \1 __\1/' \
+         -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\) =.*$/#define \1 __\1/'
+     
+     #   generate namespace hiding for functions
+     echo "" >>$output
+     echo "/* move intern functions to hidden namespace */" >>$output
+     grep '^I:' $tmpfile | sed >>$output \
+         -e 's/^I://' \
+         -e 's/\([ (]\) */\1/g' \
+         -e 's/ *\([),]\)/\1/g' \
+         -e 's/^[^(]*[ *]\([a-zA-Z0-9_]*\)(.*$/#define \1 __\1/'
+     
+     #   generate prototypes for variables
+     echo "" >>$output
+     echo "/* prototypes for intern variables */" >>$output
+     grep '^V:' $tmpfile | sed >>$output \
+         -e 's/^V://' \
+         -e 's/  */ /g' \
+         -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\);.*$/\1;/' \
+         -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\) =.*$/\1;/' \
+         -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\);.*$/\1;/' \
+         -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\) =.*$/\1;/' \
+         -e 's/ ;/;/g' \
+         -e "s/^$opt_C /extern /"
+     
+     #   generate prototypes for functions
+     echo "" >>$output
+     echo "/* prototypes for intern functions */" >>$output
+     grep '^F:' $tmpfile | sed >>$output \
+         -e 's/^F://' \
+         -e 's/\([ (]\) */\1/g' \
+         -e 's/ *\([),]\)/\1/g' \
+         -e 's/\([* ]\)[a-zA-Z0-9_]*,/\1,/g' \
+         -e 's/\([* ]\)[a-zA-Z0-9_]*);/\1);/g' \
+         -e 's/(\*[a-zA-Z0-9_]*)(/(*)(/g' \
+         -e 's/\([ (]\) */\1/g' \
+         -e 's/ *\([),]\)/\1/g' \
+         -e "s/^$opt_C /extern /"
+     
+     #   finish generating output header
+     n=`(echo ''; sed <$opt_t -e "1,/^${opt_M} *\$/p" -e 'd') |\
+        wc -l | sed -e 's;^ *\([0-9]*\) *$;\1;'`
+     echo "#line $n \"$opt_t\"" >>$output
+     sed <$opt_t -e "/^${opt_M} *\$/,\$p" -e 'd' |\
+     sed -e "/^${opt_M} *\$/d" >>$output
+     
+     #   create final output file
+     if [ -f $opt_o ]; then
+         if [ ".$opt_p" = .yes ]; then
+             grep -v '^#line' $opt_o  >$tmpfile.o
+             grep -v '^#line' $output >$tmpfile.n
+             out_old="$tmpfile.o"
+             out_new="$tmpfile.n"
+         else
+             out_old="$opt_o"
+             out_new="$output"
+         fi
+         if cmp -s $out_old $out_new; then
+             :
+         else
+             cp $output $opt_o
+         fi
+     else
+         cp $output $opt_o
+     fi
+     rm -f $output
+     rm -f $tmpfile $tmpfile.* >/dev/null 2>&1
+     ;;
+ 
+ version )
+     ##
+     ##  version -- Maintain a version information file
+     ##  Copyright (c) 1994-2000 Ralf S. Engelschall <rse@engelschall.com>
+     ##  Originally written for ePerl, rewritten from scratch for shtool
+     ##
+     
+     file="$1"
+     
+     #   determine prefix and name
+     name="$opt_n"
+     prefix="$opt_p"
+     
+     #   determine current version
+     triple="$opt_s"
+     if [ ".$triple" != . ]; then
+         #   use given triple
+         if [ ".`echo $triple | grep '[0-9]*.[0-9]*[sabp.][0-9]*'`" = . ]; then
+             echo "$msgprefix:Error: invalid argument to option \`-s': \`$opt_s'" 1>&2
+             exit 1
+         fi
+         eval `echo $triple |\
+               sed -e 's%\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\).*%\
+               ver="\1";rev="\2";typ="\3";lev="\4"%'`
+         tim=calc
+     elif [ -r $file ]; then
+         #   determine triple from given file
+         eval `grep 'Version [0-9]*.[0-9]*[sabp.][0-9]* ([0-9]*-[a-zA-Z]*-[0-9]*)' $file |\
+               head -1 | sed -e 's%.*Version \([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\) (\([0-9]*-[a-zA-Z]*-[0-9]*\)).*%\
+               ver="\1";rev="\2";typ="\3";lev="\4";tim="\5"%'`
+     else
+         #   intialise to first version
+         ver=0
+         rev=1
+         typ=.
+         lev=0
+         tim=calc
+     fi
+     
+     #   determine new version in batch
+     if [ ".$opt_i" != . ]; then
+         case $opt_i in
+             v ) ver=`expr $ver + 1`
+                 rev=0
+                 lev=0
+                 ;;
+             r ) rev=`expr $rev + 1`
+                 lev=0
+                 ;;
+             l ) lev=`expr $lev + 1`
+                 ;;
+             * ) echo "$msgprefix:Error: invalid argument to option \`-i': \`$opt_i'" 1>&2
+                 exit 1
+                 ;;
+         esac
+         tim=calc
+     fi
+     
+     #   determine new version interactively
+     if [ ".$opt_e" = .yes ]; then
+         echo "old version: ${ver}.${rev}${typ}${lev}"
+         while [ 1 ]; do
+             echo dummy | awk '{ printf("new version: "); }'
+             read triple
+             case $triple in
+                 [0-9]*.[0-9]*[sabp.][0-9]* ) 
+                     ;;
+                 * ) echo "$msgprefix:Error: invalid version string entered: \`$triple'" 1>&2
+                     continue
+                     ;;
+             esac
+             break
+         done
+         eval `echo $triple |\
+               sed -e 's%^\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\)$%\
+               ver="\1";rev="\2";typ="\3";lev="\4"%'`
+         tim=calc
+     fi
+     
+     #   determine hexadecimal and libtool value of version
+     case $typ in
+         a     ) typnum=0;  levnum=$lev ;;
+         b     ) typnum=1;  levnum=$lev ;;
+         p | . ) typnum=2;  levnum=$lev ;;
+         s     ) typnum=15; levnum=255  ;; # snapshots are special
+     esac
+     hex=`echo "$ver:$rev:$typnum:$levnum" |\
+          awk -F: '{ printf("0x%X%02X%1X%02X", $1, $2, $3, $4); }'`
+     ltv=`echo "$ver:$rev:$typnum:$levnum" |\
+          awk -F: '{ printf("%d:%d", $1*10 + $2, $3*10 + $4); }'`
+     
+     #   determine date
+     if [ ".$tim" = .calc ]; then
+         day=`date '+%d'`
+         month=`date '+%m'`
+         year=`date '+%Y' 2>/dev/null`
+         if [ ".$time_year" = . ]; then
+             year=`date '+%y'`
+             case $year in
+                 [5-9][0-9]) year="19$year" ;;
+                 [0-4][0-9]) year="20$year" ;;
+             esac
+         fi
+         case $month in
+             1|01) month='Jan' ;;
+             2|02) month='Feb' ;;
+             3|03) month='Mar' ;;
+             4|04) month='Apr' ;;
+             5|05) month='May' ;;
+             6|06) month='Jun' ;;
+             7|07) month='Jul' ;;
+             8|08) month='Aug' ;;
+             9|09) month='Sep' ;;
+               10) month='Oct' ;;
+               11) month='Nov' ;;
+               12) month='Dec' ;;
+         esac
+         tim="${day}-${month}-${year}"
+     fi
+     
+     #   perform result actions
+     mode=show
+     if [ ".$opt_i" != . ]; then
+         mode=edit
+     elif [ ".$opt_e" = .yes ]; then
+         mode=edit
+     elif [ ".$opt_s" != . ]; then
+         mode=edit
+     fi
+     if [ ".$mode" = .show ]; then
+         #   just display the current version
+         case $opt_d in
+             short )
+                 echo "${ver}.${rev}${typ}${lev}"
+                 ;;
+             long )
+                 echo "${ver}.${rev}${typ}${lev} ($tim)"
+                 ;;
+             libtool )
+                 echo "${ltv}"
+                 ;;
+             hex )
+                 echo "${hex}"
+                 ;;
+             * ) echo "$msgprefix:Error: invalid argument to option \`-d': \`$opt_d'" 1>&2
+                 exit 1
+                 ;;
+         esac
+     else 
+         #   update the version file
+     
+         #   pre-generate various strings
+         triple="${ver}.${rev}${typ}${lev}"
+         vHex="$hex"
+         vShort="${triple}"
+         vLong="${triple} (${tim})"
+         vTeX="This is ${name}, Version ${triple} (${tim})"
+         vGNU="${name} ${triple} (${tim})"
+         vWeb="${name}/${triple}"
+         vSCCS="@(#)${name} ${triple} (${tim})"
+         vRCS="\$Id: ${name} ${triple} (${tim}) \$"
+     
+         #   determine string out of filename
+         #   (do NOT try to optimize this in any way because of portability)
+         filestr=`echo $file |\
+                  tr 'abcdefghijklmnopqrstuvwxyz./%+' \
+                     'ABCDEFGHIJKLMNOPQRSTUVWXYZ____' | sed -e 's/-/_/g'`
+     
+         #   generate uppercase prefix
+         prefixupper=`echo $prefix |\
+                      tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+         
+         #   create the version file according the the selected language
+         echo "new version: ${vLong}"
+     
+         cp /dev/null $file
+         case $opt_l in
+             txt )
+                 echo >>$file ""
+                 echo >>$file "  ${file} -- Version Information for ${name} (syntax: Text)"
+                 echo >>$file "  [automatically generated and maintained by GNU shtool]"
+                 echo >>$file ""
+                 echo >>$file "  $vTeX"
+                 echo >>$file ""
+                 ;;
+             c )
+                 echo >>$file "/*"
+                 echo >>$file "**  ${file} -- Version Information for ${name} (syntax: C/C++)"
+                 echo >>$file "**  [automatically generated and maintained by GNU shtool]"
+                 echo >>$file "*/"
+                 echo >>$file ""
+                 echo >>$file "#ifdef _${filestr}_AS_HEADER_"
+                 echo >>$file ""
+                 echo >>$file "#ifndef _${filestr}_"
+                 echo >>$file "#define _${filestr}_"
+                 echo >>$file ""
+                 echo >>$file "#define ${prefixupper}VERSION ${vHex}"
+                 echo >>$file ""
+                 echo >>$file "typedef struct {"
+                 echo >>$file "    const int   v_hex;"
+                 echo >>$file "    const char *v_short;"
+                 echo >>$file "    const char *v_long;"
+                 echo >>$file "    const char *v_tex;"
+                 echo >>$file "    const char *v_gnu;"
+                 echo >>$file "    const char *v_web;"
+                 echo >>$file "    const char *v_sccs;"
+                 echo >>$file "    const char *v_rcs;"
+                 echo >>$file "} ${prefix}version_t;"
+                 echo >>$file ""
+                 echo >>$file "extern ${prefix}version_t ${prefix}version;"
+                 echo >>$file ""
+                 echo >>$file "#endif /* _${filestr}_ */"
+                 echo >>$file ""
+                 echo >>$file "#else /* _${filestr}_AS_HEADER_ */"
+                 echo >>$file ""
+                 echo >>$file "#define _${filestr}_AS_HEADER_"
+                 echo >>$file "#include \"${file}\""
+                 echo >>$file "#undef  _${filestr}_AS_HEADER_"
+                 echo >>$file ""
+                 echo >>$file "${prefix}version_t ${prefix}version = {"
+                 echo >>$file "    ${vHex},"
+                 echo >>$file "    \"${vShort}\","
+                 echo >>$file "    \"${vLong}\","
+                 echo >>$file "    \"${vTeX}\","
+                 echo >>$file "    \"${vGNU}\","
+                 echo >>$file "    \"${vWeb}\","
+                 echo >>$file "    \"${vSCCS}\","
+                 echo >>$file "    \"${vRCS}\""
+                 echo >>$file "};"
+                 echo >>$file ""
+                 echo >>$file "#endif /* _${filestr}_AS_HEADER_ */"
+                 echo >>$file ""
+                 ;;
+             perl )
+                 echo >>$file "##"
+                 echo >>$file "##  ${file} -- Version Information for ${name} (syntax: Perl)"
+                 echo >>$file "##  [automatically generated and maintained by GNU shtool]"
+                 echo >>$file "##"
+                 echo >>$file ""
+                 echo >>$file "my \$${prefix}version = {"
+                 echo >>$file "    'v_hex'   => ${vHex},"
+                 echo >>$file "    'v_short' => \"${vShort}\","
+                 echo >>$file "    'v_long'  => \"${vLong}\","
+                 echo >>$file "    'v_tex'   => \"${vTeX}\","
+                 echo >>$file "    'v_gnu'   => \"${vGNU}\","
+                 echo >>$file "    'v_web'   => \"${vWeb}\","
+                 echo >>$file "    'v_sccs'  => \"${vSCCS}\","
+                 echo >>$file "    'v_rcs'   => \"\\${vRCS}/\""
+                 echo >>$file "};"
+                 echo >>$file ""
+                 echo >>$file "1;"
+                 echo >>$file ""
+                 ;;
+             * ) echo "$msgprefix:Error: invalid argument to option \`-l': \`$opt_l'" 1>&2
+                 exit 1
+                 ;;
+         esac
+     fi
+     ;;
+ 
+ esac
+ 
+ exit 0
+ 
+ ##EOF##

CVSTrac 2.0.1