home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-12-02 | 55.7 KB | 2,469 lines |
- Newsgroups: comp.sources.misc
- From: Raphael Manfredi <ram@acri.fr>
- Subject: v41i006: mailagent - Flexible mail filtering and processing package, v3.0, Part06/26
- Message-ID: <1993Dec2.133648.18179@sparky.sterling.com>
- X-Md4-Signature: a472bb074f9cf7f347299930581b7a53
- Sender: kent@sparky.sterling.com (Kent Landfield)
- Organization: Advanced Computer Research Institute, Lyon, France.
- Date: Thu, 2 Dec 1993 13:36:48 GMT
- Approved: kent@sparky.sterling.com
-
- Submitted-by: Raphael Manfredi <ram@acri.fr>
- Posting-number: Volume 41, Issue 6
- Archive-name: mailagent/part06
- Environment: UNIX, Perl
- Supersedes: mailagent: Volume 33, Issue 93-109
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # Contents: Configure.01 agent/test/misc/compress.t
- # Wrapped by ram@soft208 on Mon Nov 29 16:49:55 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 6 (of 26)."'
- if test -f 'Configure.01' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Configure.01'\"
- else
- echo shar: Extracting \"'Configure.01'\" \(49998 characters\)
- sed "s/^X//" >'Configure.01' <<'END_OF_FILE'
- X#! /bin/sh
- X#
- X# If these # comments don't work, trim them. Don't worry about any other
- X# shell scripts, Configure will trim # comments from them for you.
- X#
- X# (If you are trying to port this package to a machine without sh,
- X# I would suggest you have a look at the prototypical config_h.SH file
- X# and edit it to reflect your system. Some packages may include samples
- X# of config.h for certain machines, so you might look for one of those.)
- X#
- X# Yes, you may rip this off to use in other distribution packages. This
- X# script belongs to the public domain and cannot be copyrighted.
- X#
- X# (Note: this Configure script was generated automatically. Rather than
- X# working with this copy of Configure, you may wish to get metaconfig.
- X# The dist-3.0 package (which contains metaconfig) was posted in
- X# comp.sources.misc so you may fetch it yourself from your nearest
- X# archive site. Check with Archie if you don't know where that can be.)
- X#
- X
- X# $Id: Configure,v 3.0 1993/11/29 13:47:32 ram Exp ram $
- X#
- X# Generated on Fri Nov 26 17:29:12 MET 1993 [metaconfig 3.0 PL14]
- X
- Xcat >/tmp/c1$$ <<EOF
- XARGGGHHHH!!!!!
- X
- XSCO csh still thinks true is false. Write to SCO today and tell them that next
- Xyear Configure ought to "rm /bin/csh" unless they fix their blasted shell. :-)
- X
- X(Actually, Configure ought to just patch csh in place. Hmm. Hmmmmm. All
- Xwe'd have to do is go in and swap the && and || tokens, wherever they are.)
- X
- X[End of diatribe. We now return you to your regularly scheduled programming...]
- XEOF
- Xcat >/tmp/c2$$ <<EOF
- X
- XOOPS! You naughty creature! You didn't run Configure with sh!
- XI will attempt to remedy the situation by running sh for you...
- XEOF
- X
- Xtrue || cat /tmp/c1$$ /tmp/c2$$
- Xtrue || exec sh $0 $argv:q
- X
- X(exit $?0) || cat /tmp/c2$$
- X(exit $?0) || exec sh $0 $argv:q
- Xrm -f /tmp/c1$$ /tmp/c2$$
- X
- X: Sanity checks
- XPATH=".:$PATH:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin"
- XPATH=$PATH:'/usr/5bin:/etc:/usr/gnu/bin:/usr/new:/usr/new/bin:/usr/nbin'
- XPATH=$PATH:'/sys5.3/bin:/sys5.3/usr/bin:/bsd4.3/bin:/bsd4.3/usr/ucb'
- XPATH=$PATH:'/bsd4.3/usr/bin:/usr/bsd:/bsd43/bin:/usr/ccs/bin'
- XPATH=$PATH:'/etc:/usr/lib:/usr/ucblib:/lib:/usr/ccs/lib'
- Xexport PATH
- X
- Xif test ! -t 0; then
- X echo "Say 'sh Configure', not 'sh <Configure'"
- X exit 1
- Xfi
- X
- X: On HP-UX, large Configure scripts may exercise a bug in /bin/sh
- Xif test -f /hp-ux -a -f /bin/ksh; then
- X if (PATH=.; alias -x) >/dev/null 2>&1; then
- X : already under /bin/ksh
- X else
- X cat <<'EOM'
- X(Feeding myself to ksh to avoid nasty sh bug in "here document" expansion.)
- XEOM
- X exec /bin/ksh $0 "$@"
- X fi
- Xelse
- X : Warn them if they use ksh on other systems
- X (PATH=.; alias -x) >/dev/null 2>&1 && \
- X cat <<'EOM'
- X(I see you are using the Korn shell. Some ksh's blow up on Configure,
- Xespecially on exotic machines. If yours does, try the Bourne shell instead.)
- XEOM
- Xfi
- X
- X: Configure runs within the UU subdirectory
- Xtest -d UU || mkdir UU
- Xcd UU && rm -f *
- X
- Xd_bsd=''
- Xd_eunice=''
- Xd_xenix=''
- Xeunicefix=''
- XMcc=''
- Xawk=''
- Xbash=''
- Xbison=''
- Xcat=''
- Xchgrp=''
- Xchmod=''
- Xchown=''
- Xcompress=''
- Xcp=''
- Xcpio=''
- Xcpp=''
- Xcsh=''
- Xdate=''
- Xecho=''
- Xegrep=''
- Xemacs=''
- Xexpr=''
- Xflex=''
- Xgcc=''
- Xgrep=''
- Xinews=''
- Xksh=''
- Xless=''
- Xline=''
- Xlint=''
- Xln=''
- Xlp=''
- Xlpr=''
- Xls=''
- Xmail=''
- Xmailx=''
- Xmake=''
- Xmkdir=''
- Xmore=''
- Xmv=''
- Xnroff=''
- Xperl=''
- Xpg=''
- Xpmake=''
- Xpr=''
- Xrm=''
- Xrmail=''
- Xsed=''
- Xsendmail=''
- Xsh=''
- Xshar=''
- Xsleep=''
- Xsmail=''
- Xsort=''
- Xsubmit=''
- Xtail=''
- Xtar=''
- Xtbl=''
- Xtest=''
- Xtouch=''
- Xtr=''
- Xtroff=''
- Xuname=''
- Xuniq=''
- Xuuname=''
- Xvi=''
- Xzcat=''
- Xmailpatches=''
- Xnotifypatches=''
- Xusermail=''
- Xhint=''
- Xmyuname=''
- XAuthor=''
- XDate=''
- XHeader=''
- XId=''
- XLocker=''
- XLog=''
- XRCSfile=''
- XRevision=''
- XSource=''
- XState=''
- Xafs=''
- Xbaserev=''
- Xbin=''
- Xbinexp=''
- Xinstallbin=''
- Xcc=''
- Xccflags=''
- Xcppflags=''
- Xldflags=''
- Xlkflags=''
- Xoptimize=''
- Xcf_by=''
- Xcf_time=''
- Xcontains=''
- Xcppminus=''
- Xcppstdin=''
- Xd_bcopy=''
- Xd_flock=''
- Xaphostname=''
- Xd_gethname=''
- Xd_phostname=''
- Xd_uname=''
- Xd_hidnet=''
- Xhiddennet=''
- Xd_open3=''
- Xd_portable=''
- Xd_rename=''
- Xd_index=''
- Xd_strchr=''
- Xd_strerrm=''
- Xd_strerror=''
- Xd_sysernlst=''
- Xd_syserrlst=''
- Xd_time=''
- Xtimetype=''
- Xd_uwait=''
- Xd_vfork=''
- Xd_voidsig=''
- Xsignal_t=''
- Xh_fcntl=''
- Xh_sysfile=''
- Xi_fcntl=''
- Xi_string=''
- Xstrings=''
- Xi_sysfile=''
- Xi_syswait=''
- Xi_systime=''
- Xi_systimek=''
- Xi_time=''
- Xtimeincl=''
- Xintsize=''
- Xlibc=''
- Xlibpth=''
- Xplibpth=''
- Xxlibpth=''
- Xlibs=''
- Xmaildir=''
- Xmaildirexp=''
- Xmailer=''
- Xmailfile=''
- Xinstallmansrc=''
- Xmanext=''
- Xmansrc=''
- Xmansrcexp=''
- Xd_flockonly=''
- Xd_lockflock=''
- Xflock_only=''
- Xlock_by_flock=''
- Xmkdep=''
- Xhuge=''
- Xlarge=''
- Xmedium=''
- Xmodels=''
- Xsmall=''
- Xsplit=''
- Xmydomain=''
- Xmyhostname=''
- Xphostname=''
- Xc=''
- Xn=''
- Xgroupcat=''
- Xhostcat=''
- Xpasscat=''
- Xorgname=''
- Xpackage=''
- Xspackage=''
- Xpatchlevel=''
- Xperlpath=''
- Xpidtype=''
- Xinstallprivlib=''
- Xprivlib=''
- Xprivlibexp=''
- Xprototype=''
- Xreg10=''
- Xreg11=''
- Xreg12=''
- Xreg13=''
- Xreg14=''
- Xreg15=''
- Xreg16=''
- Xreg1=''
- Xreg2=''
- Xreg3=''
- Xreg4=''
- Xreg5=''
- Xreg6=''
- Xreg7=''
- Xreg8=''
- Xreg9=''
- Xregisters=''
- Xinstallscript=''
- Xscriptdir=''
- Xscriptdirexp=''
- Xsharpbang=''
- Xshsharp=''
- Xspitshell=''
- Xstartperl=''
- Xstartsh=''
- Xsysman=''
- Xuidtype=''
- Xnm_opt=''
- Xrunnm=''
- Xusenm=''
- Xincpath=''
- Xmips=''
- Xmips_type=''
- Xusrinc=''
- Xdefvoidused=''
- Xvoidflags=''
- XCONFIG=''
- X
- X: script used to extract .SH files with variable substitutions
- Xcat >extract <<'EOS'
- XCONFIG=true
- Xecho "Doing variable substitutions on .SH files..."
- Xif test -f MANIFEST; then
- X set x `awk '{print $1}' <MANIFEST | grep '\.SH'`
- Xelse
- X echo "(Looking for .SH files under the current directory.)"
- X set x `find . -name "*.SH" -print`
- Xfi
- Xshift
- Xcase $# in
- X0) set x *.SH; shift;;
- Xesac
- Xif test ! -f $1; then
- X shift
- Xfi
- Xfor file in $*; do
- X case "$file" in
- X */*)
- X dir=`expr X$file : 'X\(.*\)/'`
- X file=`expr X$file : 'X.*/\(.*\)'`
- X (cd $dir && . ./$file)
- X ;;
- X *)
- X . ./$file
- X ;;
- X esac
- Xdone
- Xif test -f config_h.SH; then
- X if test ! -f config.h; then
- X : oops, they left it out of MANIFEST, probably, so do it anyway.
- X . ./config_h.SH
- X fi
- Xfi
- XEOS
- X
- X: produce awk script to parse command line options
- Xcat >options.awk <<'EOF'
- XBEGIN {
- X optstr = "deEf:hrsSV"; # getopt-style specification
- X
- X len = length(optstr);
- X for (i = 1; i <= len; i++) {
- X c = substr(optstr, i, 1);
- X if (i < len) a = substr(optstr, i + 1, 1); else a = "";
- X if (a == ":") {
- X arg[c] = 1;
- X i++;
- X }
- X opt[c] = 1;
- X }
- X}
- X{
- X expect = 0;
- X str = $0;
- X if (substr(str, 1, 1) != "-") {
- X printf("'%s'\n", str);
- X next;
- X }
- X len = length($0);
- X for (i = 2; i <= len; i++) {
- X c = substr(str, i, 1);
- X if (!opt[c]) {
- X printf("-%s\n", substr(str, i));
- X next;
- X }
- X printf("-%s\n", c);
- X if (arg[c]) {
- X if (i < len)
- X printf("'%s'\n", substr(str, i + 1));
- X else
- X expect = 1;
- X next;
- X }
- X }
- X}
- XEND {
- X if (expect)
- X print "?";
- X}
- XEOF
- X
- X: process the command line options
- Xset X `for arg in "$@"; do echo $arg; done | awk -f options.awk`
- Xeval "set $*"
- Xshift
- Xrm -f options.awk
- X
- X: set up default values
- Xfastread=''
- Xreuseval=false
- Xconfig_sh=''
- Xalldone=''
- Xerror=''
- Xsilent=''
- Xextractsh=''
- X
- X: option parsing
- Xwhile test $# -gt 0; do
- X case "$1" in
- X -d) shift; fastread=yes;;
- X -e) shift; alldone=cont;;
- X -f)
- X shift
- X cd ..
- X if test -r "$1"; then
- X config_sh="$1"
- X else
- X echo "Configure: cannot read config file $1." >&2
- X error=true
- X fi
- X cd UU
- X shift;;
- X -h) shift; error=true;;
- X -r) shift; reuseval=true;;
- X -s) shift; silent=true;;
- X -E) shift; alldone=exit;;
- X -S) shift; extractsh=true;;
- X -V) echo "Configure generated by metaconfig 3.0 PL14." >&2
- X exit 0;;
- X --) break;;
- X -*) echo "Configure: unknown option $1" >&2; shift; error=true;;
- X *) break;;
- X esac
- Xdone
- X
- Xcase "$error" in
- Xtrue)
- X cat >&2 <<EOM
- XUsage: Configure [-dehrESV] [-f config.sh]
- X -d : use defaults for all answers.
- X -e : go on without questioning past the production of config.sh.
- X -f : specify an alternate default configuration file.
- X -h : print this help message and exit (with an error status).
- X -r : reuse C symbols value if possible (skips costly nm extraction).
- X -s : silent mode, only echoes questions and essential information.
- X -E : stop at the end of questions, after having produced config.sh.
- X -S : perform variable substitutions on all .SH files (can mix with -f)
- X -V : print version number and exit (with a zero status).
- XEOM
- X exit 1
- X ;;
- Xesac
- X
- Xexec 4>&1
- Xcase "$silent" in
- Xtrue) exec 1>/dev/null;;
- Xesac
- X
- Xcase "$extractsh" in
- Xtrue)
- X case "$config_sh" in
- X '') config_sh='config.sh'; config='./config.sh';;
- X /*) config="$config_sh";;
- X *) config="./$config_sh";;
- X esac
- X echo " "
- X echo "Fetching answers from $config_sh..."
- X cd ..
- X . $config
- X echo " "
- X . ./UU/extract
- X rm -rf UU
- X echo "Done."
- X exit 0
- X ;;
- Xesac
- X
- X: set package name
- Xpackage=mailagent
- X
- X: Eunice requires " " instead of "", can you believe it
- Xecho " "
- X: Here we go...
- Xecho "Beginning of configuration questions for $package."
- X
- Xdefine='define'
- Xundef='undef'
- Xsmallmach='pdp11 i8086 z8000 i80286 iAPX286'
- Xrmlist=''
- X
- Xtrap 'echo " "; rm -rf $rmlist; exit 1' 1 2 3 15
- X
- X: We must find out about Eunice early
- Xeunicefix=':'
- Xif test -f /etc/unixtovms; then
- X eunicefix=/etc/unixtovms
- Xfi
- Xif test -f /etc/unixtovms.exe; then
- X eunicefix=/etc/unixtovms.exe
- Xfi
- X
- X: list of known cpp symbols
- Xattrlist="__alpha DGUX M_I186 M_I286 M_I386 M_I8086 M_XENIX UTS __DGUX__"
- Xattrlist="$attrlist _AIX __STDC__ __m88k__ ansi bsd4_2 gcos gimpel"
- Xattrlist="$attrlist hp9000s300 hp9000s400 hp9000s500 hp9000s700"
- Xattrlist="$attrlist hp9000s800 hpux"
- Xattrlist="$attrlist i186 i386 i486 i8086 iAPX286 ibm interdata"
- Xattrlist="$attrlist m88k mc300 mc500 mc68000 mc68k mc700 mert"
- Xattrlist="$attrlist mips NeXT ns16000 ns32000 nsc32000 os"
- Xattrlist="$attrlist __osf__ pdp11 posix"
- Xattrlist="$attrlist pyr sinix sony sparc sun tower tower32 tower32_600"
- Xattrlist="$attrlist tower32_800 tss u3b2 u3b20 u3b200 u3b5 ultrix unix"
- Xattrlist="$attrlist __unix__ vax venix xenix z8000"
- X
- X: no include file wanted by default
- Xinclwanted=''
- X
- Xi_sysselct=''
- Xi_whoami=''
- X: change the next line if compiling for Xenix/286 on Xenix/386
- Xxlibpth='/usr/lib/386 /lib/386'
- X
- X: general looking path for locating libraries
- Xlibpth='/usr/lib/large /lib '$xlibpth' /lib/large'
- Xlibpth=$libpth' /usr/lib/small /lib/small'
- X
- X: no additional library wanted by default
- Xlibswanted=''
- X
- X: full support for void wanted by default
- Xdefvoidused=15
- X
- X
- X: Some greps do not return status, grrr.
- Xecho "grimblepritz" >grimble
- Xif grep blurfldyick grimble >/dev/null 2>&1 ; then
- X contains=contains
- Xelif grep grimblepritz grimble >/dev/null 2>&1 ; then
- X contains=grep
- Xelse
- X contains=contains
- Xfi
- Xrm -f grimble
- X: the following should work in any shell
- Xcase "$contains" in
- Xcontains*)
- X echo " "
- X echo "AGH! Grep doesn't return a status. Attempting remedial action."
- X cat >contains <<'EOSS'
- Xgrep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
- XEOSS
- Xchmod +x contains
- Xesac
- X
- X: first determine how to suppress newline on echo command
- Xecho " "
- Xecho "Checking echo to see how to suppress newlines..."
- X(echo "hi there\c" ; echo " ") >.echotmp
- Xif $contains c .echotmp >/dev/null 2>&1 ; then
- X echo "...using -n."
- X n='-n'
- X c=''
- Xelse
- X cat <<'EOM'
- X...using \c
- XEOM
- X n=''
- X c='\c'
- Xfi
- Xecho $n "The star should be here-->$c"
- Xecho '*'
- Xrm -f .echotmp
- X
- X: Now test for existence of everything in MANIFEST
- Xecho " "
- Xif test -f ../MANIFEST; then
- X echo "First let's make sure your kit is complete. Checking..." >&4
- X awk '$1 !~ /PACK[A-Z]+/ {print $1}' ../MANIFEST | split -50
- X rm -f missing
- X for filelist in x??; do
- X (cd ..; ls `cat UU/$filelist` >/dev/null 2>>UU/missing)
- X done
- X if test -s missing; then
- X cat missing >&4
- X cat >&4 <<'EOM'
- X
- XTHIS PACKAGE SEEMS TO BE INCOMPLETE.
- X
- XYou have the option of continuing the configuration process, despite the
- Xdistinct possibility that your kit is damaged, by typing 'y'es. If you
- Xdo, don't blame me if something goes wrong. I advise you to type 'n'o
- Xand contact the author (ram@acri.fr).
- X
- XEOM
- X echo $n "Continue? [n] $c" >&4
- X read ans
- X case "$ans" in
- X y*)
- X echo "Continuing..." >&4
- X rm -f missing
- X ;;
- X *)
- X echo "ABORTING..." >&4
- X kill $$
- X ;;
- X esac
- X else
- X echo "Looks good..." >&4
- X fi
- Xelse
- X echo "There is no MANIFEST file. I hope your kit is complete !"
- Xfi
- Xrm -f missing x??
- X
- X: compute the number of columns on the terminal for proper question formatting
- Xcase "$COLUMNS" in
- X'') COLUMNS='80';;
- Xesac
- X
- X: set up the echo used in my read
- Xmyecho="case \"\$xxxm\" in
- X'') echo $n \"\$rp $c\" >&4;;
- X*) case \"\$rp\" in
- X '') echo $n \"[\$xxxm] $c\";;
- X *)
- X if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
- X echo \"\$rp\" >&4
- X echo $n \"[\$xxxm] $c\" >&4
- X else
- X echo $n \"\$rp [\$xxxm] $c\" >&4
- X fi
- X ;;
- X esac;;
- Xesac"
- X
- X: now set up to do reads with possible shell escape and default assignment
- Xcat <<EOSC >myread
- Xxxxm=\$dflt
- X$myecho
- Xans='!'
- Xcase "\$fastread" in
- Xyes) case "\$dflt" in
- X '') ;;
- X *) ans='';
- X case "\$silent-\$rp" in
- X true-) ;;
- X *) echo " " >&4;;
- X esac;;
- X esac;;
- X*) case "\$silent" in
- X true) case "\$rp" in
- X '') ans='';;
- X esac;;
- X esac;;
- Xesac
- Xwhile expr "X\$ans" : "X!" >/dev/null; do
- X read answ
- X set x \$xxxm
- X shift
- X aok=''; eval "ans=\"\$answ\"" && aok=y
- X case "\$answ" in
- X "\$ans")
- X case "\$ans" in
- X "!")
- X sh 1>&4
- X echo " "
- X $myecho
- X ;;
- X !*)
- X set x \`expr "X\$ans" : "X!\(.*\)\$"\`
- X shift
- X sh 1>&4 -c "\$*"
- X echo " "
- X $myecho
- X ;;
- X esac;;
- X *)
- X case "\$aok" in
- X y)
- X echo "*** Substitution done -- please confirm."
- X xxxm="\$ans"
- X ans=\`echo $n "\$ans$c" | tr '\012' ' '\`
- X xxxm="\$ans"
- X ans=!
- X ;;
- X *)
- X echo "*** Error -- try again."
- X ans=!
- X ;;
- X esac
- X $myecho
- X ;;
- X esac
- X case "\$ans\$xxxm\$nostick" in
- X '')
- X ans=!
- X $myecho
- X ;;
- X esac
- Xdone
- Xcase "\$ans" in
- X'') ans="\$xxxm";;
- Xesac
- XEOSC
- X
- X: create .config dir to save info across Configure sessions
- Xtest -d ../.config || mkdir ../.config
- Xcat >../.config/README <<EOF
- XThis directory created by Configure to save information that should
- Xpersist across sessions.
- X
- XYou may safely delete it if you wish.
- XEOF
- X
- X: general instructions
- Xneedman=true
- Xfirsttime=true
- Xuser=`( (logname) 2>/dev/null || whoami) 2>&1`
- Xif $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
- X firsttime=false
- X echo " "
- X rp='Would you like to see the instructions?'
- X dflt=n
- X . ./myread
- X case "$ans" in
- X [yY]*) ;;
- X *) needman=false;;
- X esac
- Xfi
- Xif $needman; then
- X cat <<EOH
- X
- XThis installation shell script will examine your system and ask you questions
- Xto determine how the mailagent package should be installed. If you get
- Xstuck on a question, you may use a ! shell escape to start a subshell or
- Xexecute a command. Many of the questions will have default answers in square
- Xbrackets; typing carriage return will give you the default.
- X
- XOn some of the questions which ask for file or directory names you are allowed
- Xto use the ~name construct to specify the login directory belonging to "name",
- Xeven if you don't have a shell which knows about that. Questions where this is
- Xallowed will be marked "(~name ok)".
- X
- XEOH
- X rp=''
- X dflt='Type carriage return to continue'
- X . ./myread
- X cat <<'EOH'
- X
- XThe prompter used in this script allows you to use shell variables and
- Xbackticks in your answers. You may use $1, $2, etc... to refer to the words
- Xin the default answer, as if the default line was a set of arguments given to a
- Xscript shell. This means you may also use $* to repeat the whole default line,
- Xso you do not have to re-type everything to add something to the default.
- X
- XEverytime there is a substitution, you will have to confirm. If there is an
- Xerror (e.g. an unmatched backtick), the default answer will remain unchanged
- Xand you will be prompted again.
- X
- XIf you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
- Xthe questions and use the computed defaults (or the previous answers if there
- Xwas already a config.sh file). Type 'Configure -h' for a list of options.
- X
- XEOH
- X . ./myread
- X cat <<EOH
- X
- XMuch effort has been expended to ensure that this shell script will run on any
- XUnix system. If despite that it blows up on yours, your best bet is to edit
- XConfigure and run it again. Also, let me (ram@acri.fr)
- Xknow how I blew it. If you can't run Configure for some reason, you'll have to
- Xgenerate a config.sh file by hand.
- X
- XThis installation script affects things in two ways:
- X
- X1) it may do direct variable substitutions on some of the files included
- X in this kit.
- X2) it builds a config.h file for inclusion in C programs. You may edit
- X any of these files as the need arises after running this script.
- X
- XIf you make a mistake on a question, there is no easy way to back up to it
- Xcurrently. The easiest thing to do is to edit config.sh and rerun all the SH
- Xfiles. Configure will offer to let you do this before it runs the SH files.
- X
- XEOH
- X dflt='Type carriage return to continue'
- X . ./myread
- X case "$firsttime" in
- X true) echo $user >>../.config/instruct;;
- X esac
- Xfi
- X
- X: see if sh knows # comments
- Xecho " "
- Xecho "Checking your sh to see if it knows about # comments..." >&4
- Xif sh -c '#' >/dev/null 2>&1 ; then
- X echo "Your sh handles # comments correctly."
- X shsharp=true
- X spitshell=cat
- X echo " "
- X echo "Okay, let's see if #! works on this system..."
- X echo "#!/bin/cat" >try
- X $eunicefix try
- X chmod +x try
- X ./try > today
- X if test -s today; then
- X echo "It does."
- X sharpbang='#!'
- X else
- X echo "#! /bin/cat" > try
- X $eunicefix try
- X chmod +x try
- X ./try > today
- X if test -s today; then
- X echo "It does."
- X sharpbang='#! '
- X else
- X echo "It's just a comment."
- X sharpbang=': use '
- X fi
- X fi
- Xelse
- X echo "Your sh doesn't grok # comments--I will strip them later on."
- X shsharp=false
- X echo "exec grep -v '^[ ]*#'" >spitshell
- X chmod +x spitshell
- X $eunicefix spitshell
- X spitshell=`pwd`/spitshell
- X echo "I presume that if # doesn't work, #! won't work either!"
- X sharpbang=': use '
- Xfi
- Xrm -f try today
- X
- X: figure out how to guarantee sh startup
- Xecho " "
- Xecho "Checking out how to guarantee sh startup..." >&4
- Xcase "$SYSTYPE" in
- X*bsd*|sys5*) startsh=$sharpbang"/$SYSTYPE/bin/sh";;
- X*) startsh=$sharpbang'/bin/sh';;
- Xesac
- Xecho "Let's see if '$startsh' works..."
- Xcat >try <<EOSS
- X$startsh
- Xset abc
- Xtest "$?abc" != 1
- XEOSS
- X
- Xchmod +x try
- X$eunicefix try
- Xif ./try; then
- X echo "Yup, it does."
- Xelse
- Xecho "Nope. You may have to fix up the shell scripts to make sure sh runs them."
- Xfi
- Xrm -f try
- X
- X: find out where common programs are
- Xecho " "
- Xecho "Locating common programs..." >&4
- Xcat <<EOSC >loc
- X$startsh
- Xcase \$# in
- X0) exit 1;;
- Xesac
- Xthing=\$1
- Xshift
- Xdflt=\$1
- Xshift
- Xfor dir in \$*; do
- X case "\$thing" in
- X .)
- X if test -d \$dir/\$thing; then
- X echo \$dir
- X exit 0
- X fi
- X ;;
- X *)
- X if test -f \$dir/\$thing; then
- X echo \$dir/\$thing
- X exit 0
- X elif test -f \$dir/\$thing.exe; then
- X : on Eunice apparently
- X echo \$dir/\$thing
- X exit 0
- X fi
- X ;;
- X esac
- Xdone
- Xecho \$dflt
- Xexit 1
- XEOSC
- Xchmod +x loc
- X$eunicefix loc
- Xloclist="
- Xawk
- Xcat
- Xchgrp
- Xchmod
- Xchown
- Xecho
- Xexpr
- Xgrep
- Xmv
- Xrm
- Xsed
- Xsleep
- Xsort
- Xtr
- Xuniq
- X"
- Xtrylist="
- XMcc
- Xcpp
- Xdate
- Xinews
- Xmail
- Xnroff
- Xperl
- Xrmail
- Xsendmail
- Xsmail
- Xtest
- Xuname
- Xzcat
- X"
- Xpth=`echo $PATH | sed -e 's/:/ /g'`
- Xpth="$pth /lib /usr/lib"
- Xfor file in $loclist; do
- X xxx=`./loc $file $file $pth`
- X eval $file=$xxx
- X eval _$file=$xxx
- X case "$xxx" in
- X /*)
- X echo $file is in $xxx.
- X ;;
- X *)
- X echo "I don't know where $file is. I hope it's in everyone's PATH."
- X ;;
- X esac
- Xdone
- Xecho " "
- Xecho "Don't worry if any of the following aren't found..."
- Xsay=offhand
- Xfor file in $trylist; do
- X xxx=`./loc $file $file $pth`
- X eval $file=$xxx
- X eval _$file=$xxx
- X case "$xxx" in
- X /*)
- X echo $file is in $xxx.
- X ;;
- X *)
- X echo "I don't see $file out there, $say."
- X say=either
- X ;;
- X esac
- Xdone
- Xcase "$egrep" in
- Xegrep)
- X echo "Substituting grep for egrep."
- X egrep=$grep
- X ;;
- Xesac
- Xcase "$test" in
- Xtest)
- X echo "Hopefully test is built into your sh."
- X ;;
- X*)
- X if sh -c "PATH= test true" >/dev/null 2>&1; then
- X echo "Using the test built into your sh."
- X test=test
- X _test=test
- X fi
- X ;;
- Xesac
- Xcase "$echo" in
- Xecho)
- X echo "Hopefully echo is built into your sh."
- X ;;
- X'') ;;
- X*)
- X echo " "
- Xecho "Checking compatibility between $echo and builtin echo (if any)..." >&4
- X $echo $n "hi there$c" >foo1
- X echo $n "hi there$c" >foo2
- X if cmp foo1 foo2 >/dev/null 2>&1; then
- X echo "They are compatible. In fact, they may be identical."
- X else
- X case "$n" in
- X '-n') n='' c='\c';;
- X *) n='-n' c='';;
- X esac
- X cat <<FOO
- XThey are not compatible! You are probably running ksh on a non-USG system.
- XI'll have to use $echo instead of the builtin, since Bourne shell doesn't
- Xhave echo built in and we may have to run some Bourne shell scripts. That
- Xmeans I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
- X
- XFOO
- X $echo $n "The star should be here-->$c"
- X $echo "*"
- X fi
- X $rm -f foo1 foo2
- X ;;
- Xesac
- X
- X: Try to determine whether config.sh was made on this system
- Xcase "$config_sh" in
- X'')
- Xmyuname=`( ($uname -a) 2>/dev/null || hostname) 2>&1`
- Xdflt=n
- Xif test "$fastread" = yes; then
- X dflt=y
- Xelif test -f ../config.sh; then
- X oldmyuname=''
- X if $contains myuname= ../config.sh >/dev/null 2>&1; then
- X eval "old`grep myuname= ../config.sh`"
- X fi
- X if test "X$myuname" = "X$oldmyuname"; then
- X dflt=y
- X fi
- Xfi
- X
- X: Get old answers, if there is a config file out there
- Xhint=default
- Xif test -f ../config.sh; then
- X echo " "
- X rp="I see a config.sh file. Did Configure make it on THIS system?"
- X . ./myread
- X case "$ans" in
- X n*|N*) echo "OK, I'll ignore it.";;
- X *) echo "Fetching default answers from your old config.sh file..." >&4
- X tmp="$n"
- X tans="$c"
- X . ../config.sh
- X cp ../config.sh .
- X n="$tmp"
- X c="$tans"
- X hint=previous
- X ;;
- X esac
- Xfi
- X;;
- X*)
- X echo " "
- X echo "Fetching default answers from $config_sh..." >&4
- X tmp="$n"
- X tans="$c"
- X cd ..
- X cp $config_sh config.sh 2>/dev/null
- X . ./config.sh
- X cd UU
- X cp ../config.sh .
- X n="$tmp"
- X c="$tans"
- X hint=previous
- X ;;
- Xesac
- X
- X: Restore computed paths
- Xfor file in $loclist $trylist; do
- X eval $file="\$_$file"
- Xdone
- X
- X: who configured the system
- Xcf_time=`$date 2>&1`
- Xcf_by=`( (logname) 2>/dev/null || whoami) 2>&1`
- X
- X: decide how portable to be
- Xcase "$d_portable" in
- X"$define") dflt=y;;
- X*) dflt=n;;
- Xesac
- X$cat <<'EOH'
- X
- XI can set things up so that your shell scripts and binaries are more portable,
- Xat what may be a noticable cost in performance. In particular, if you
- Xask to be portable, the following happens:
- X
- X 1) Shell scripts will rely on the PATH variable rather than using
- X the paths derived above.
- X 2) ~username interpretations will be done at run time rather than
- X by Configure.
- X 3) The system name will be determined at run time, if at all possible.
- X
- XEOH
- Xrp="Do you expect to run these scripts and binaries on multiple machines?"
- X. ./myread
- Xcase "$ans" in
- X y*) d_portable="$define"
- X for file in $loclist $trylist; do
- X eval $file=$_file
- X done
- X ;;
- X *) d_portable="$undef" ;;
- Xesac
- X
- X: set up shell script to do ~ expansion
- Xcat >filexp <<EOSS
- X$startsh
- X: expand filename
- Xcase "\$1" in
- X ~/*|~)
- X echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
- X ;;
- X ~*)
- X if $test -f /bin/csh; then
- X /bin/csh -f -c "glob \$1"
- X failed=$?
- X echo ""
- X exit \$failed
- X else
- X name=\`$expr x\$1 : '..\([^/]*\)'\`
- X dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
- X if $test ! -d "\$dir"; then
- X me=\`basename \$0\`
- X echo "\$me: can't locate home directory for: \$name" >&2
- X exit 1
- X fi
- X case "\$1" in
- X */*)
- X echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
- X ;;
- X *)
- X echo \$dir
- X ;;
- X esac
- X fi
- X ;;
- X*)
- X echo \$1
- X ;;
- Xesac
- XEOSS
- Xchmod +x filexp
- X$eunicefix filexp
- X
- X: now set up to get a file name
- Xcat <<'EOSC' >getfile
- Xtilde=''
- Xfullpath=''
- Xalready=''
- Xskip=''
- Xnone_ok=''
- Xexp_file=''
- Xorig_rp="$rp"
- Xorig_dflt="$dflt"
- X
- Xcase "$fn" in
- X*~*) tilde=true;;
- Xesac
- Xcase "$fn" in
- X*/*) fullpath=true;;
- Xesac
- Xcase "$fn" in
- X*+*) skip=true;;
- Xesac
- Xcase "$fn" in
- X*n*) none_ok=true;;
- Xesac
- Xcase "$fn" in
- X*e*) exp_file=true;;
- Xesac
- X
- Xcase "$fn" in
- X*f*) type='File';;
- X*d*) type='Directory';;
- X*l*) type='Locate'; fn=`expr $fn : '.*:\(.*\)'`;;
- Xesac
- X
- Xwhat="$type"
- Xcase "$what" in
- XLocate) what='File';;
- Xesac
- X
- Xcase "$exp_file" in
- X'')
- X case "$d_portable" in
- X "$define") ;;
- X *) exp_file=true;;
- X esac
- X ;;
- Xesac
- X
- Xcd ..
- Xwhile test "$type"; do
- X redo=''
- X rp="$orig_rp"
- X dflt="$orig_dflt"
- X case "$tilde" in
- X true) rp="$rp (~name ok)";;
- X esac
- X . UU/myread
- X case "$ans" in
- X none)
- X value=''
- X ansexp=''
- X case "$none_ok" in
- X true) type='';;
- X esac
- X ;;
- X *)
- X case "$tilde" in
- X '') value="$ans"
- X ansexp="$ans";;
- X *)
- X value=`UU/filexp $ans`
- X case $? in
- X 0)
- X if test "$ans" != "$value"; then
- X echo "(That is $value on this particular system.)"
- X fi
- X ;;
- X *) value="$ans";;
- X esac
- X ansexp="$value"
- X case "$exp_file" in
- X '') value="$ans";;
- X esac
- X ;;
- X esac
- X case "$fullpath" in
- X true)
- X case "$ansexp" in
- X /*) value="$ansexp" ;;
- X *)
- X redo=true
- X case "$already" in
- X true)
- X echo "I shall only accept a full path name, as in /bin/ls." >&4
- X echo "Use a ! shell escape if you wish to check pathnames." >&4
- X ;;
- X *)
- X echo "Please give a full path name, starting with slash." >&4
- X case "$tilde" in
- X true)
- X echo "Note that using ~name is ok provided it expands well." >&4
- X already=true
- X ;;
- X esac
- X esac
- X ;;
- X esac
- X ;;
- X esac
- X case "$redo" in
- X '')
- X case "$type" in
- X File)
- X if test -f "$ansexp"; then
- X type=''
- X elif test -r "$ansexp" || (test -h "$ansexp") >/dev/null 2>&1
- X then
- X echo "($value is not a plain file, but that's ok.)"
- X type=''
- X fi
- X ;;
- X Directory)
- X if test -d "$ansexp"; then
- X type=''
- X fi
- X ;;
- X Locate)
- X if test -d "$value"; then
- X echo "(Looking for $fn in directory $value.)"
- X value="$value/$fn"
- X fi
- X if test -f "$value"; then
- X type=''
- X fi
- X ;;
- X esac
- X
- X case "$skip" in
- X true) type='';
- X esac
- X
- X case "$type" in
- X '') ;;
- X *)
- X if test "$fastread" = yes; then
- X dflt=y
- X else
- X dflt=n
- X fi
- X rp="$what $value doesn't exist. Use that name anyway?"
- X . UU/myread
- X dflt=''
- X case "$ans" in
- X y*) type='';;
- X *) echo " ";;
- X esac
- X ;;
- X esac
- X ;;
- X esac
- X ;;
- X esac
- Xdone
- Xcd UU
- Xans="$value"
- Xrp="$orig_rp"
- Xdflt="$orig_dflt"
- XEOSC
- X
- X: determine where manual pages are on this system
- Xecho " "
- Xcase "$sysman" in
- X'')
- X syspath='/usr/man/man1 /usr/man/man1 /usr/man/mann'
- X syspath="$syspath /usr/man/manl /usr/man/local/man1"
- X syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
- X syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
- X syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
- X syspath="$syspath /usr/man/man.L /local/man/man1"
- X sysman=`./loc . $syspath`
- X ;;
- Xesac
- Xif $test -d "$sysman"; then
- X echo "System manual is in $sysman." >&4
- Xelse
- X echo "Could not find manual pages in source form." >&4
- Xfi
- X
- X: see what memory models we can support
- Xcase "$models" in
- X'')
- X $cat >pdp11.c <<'EOP'
- Xmain() {
- X#ifdef pdp11
- X exit(0);
- X#else
- X exit(1);
- X#endif
- X}
- XEOP
- X cc -o pdp11 pdp11.c >/dev/null 2>&1
- X if ./pdp11 2>/dev/null; then
- X dflt='unsplit split'
- X else
- X tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
- X case "$tans" in
- X X) dflt='none';;
- X *) if $test -d /lib/small || $test -d /usr/lib/small; then
- X dflt='small'
- X else
- X dflt=''
- X fi
- X if $test -d /lib/medium || $test -d /usr/lib/medium; then
- X dflt="$dflt medium"
- X fi
- X if $test -d /lib/large || $test -d /usr/lib/large; then
- X dflt="$dflt large"
- X fi
- X if $test -d /lib/huge || $test -d /usr/lib/huge; then
- X dflt="$dflt huge"
- X fi
- X esac
- X fi;;
- X*) dflt="$models";;
- Xesac
- X$cat <<EOM
- X
- XSome systems have different model sizes. On most systems they are called
- Xsmall, medium, large, and huge. On the PDP11 they are called unsplit and
- Xsplit. If your system doesn't support different memory models, say "none".
- XIf you wish to force everything to one memory model, say "none" here and
- Xput the appropriate flags later when it asks you for other cc and ld flags.
- XVenix systems may wish to put "none" and let the compiler figure things out.
- X(In the following question multiple model names should be space separated.)
- X
- XEOM
- Xrp="Which memory models are supported?"
- X. ./myread
- Xmodels="$ans"
- X
- Xcase "$models" in
- Xnone)
- X small=''
- X medium=''
- X large=''
- X huge=''
- X unsplit=''
- X split=''
- X ;;
- X*split)
- X case "$split" in
- X '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
- X $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
- X dflt='-i'
- X else
- X dflt='none'
- X fi;;
- X *) dflt="$split";;
- X esac
- X rp="What flag indicates separate I and D space?"
- X . ./myread
- X tans="$ans"
- X case "$tans" in
- X none) tans='';;
- X esac
- X split="$tans"
- X unsplit='';;
- X*large*|*small*|*medium*|*huge*)
- X case "$models" in
- X *large*)
- X case "$large" in
- X '') dflt='-Ml';;
- X *) dflt="$large";;
- X esac
- X rp="What flag indicates large model?"
- X . ./myread
- X tans="$ans"
- X case "$tans" in
- X none) tans='';
- X esac
- X large="$tans";;
- X *) large='';;
- X esac
- X case "$models" in
- X *huge*) case "$huge" in
- X '') dflt='-Mh';;
- X *) dflt="$huge";;
- X esac
- X rp="What flag indicates huge model?"
- X . ./myread
- X tans="$ans"
- X case "$tans" in
- X none) tans='';
- X esac
- X huge="$tans";;
- X *) huge="$large";;
- X esac
- X case "$models" in
- X *medium*) case "$medium" in
- X '') dflt='-Mm';;
- X *) dflt="$medium";;
- X esac
- X rp="What flag indicates medium model?"
- X . ./myread
- X tans="$ans"
- X case "$tans" in
- X none) tans='';
- X esac
- X medium="$tans";;
- X *) medium="$large";;
- X esac
- X case "$models" in
- X *small*) case "$small" in
- X '') dflt='none';;
- X *) dflt="$small";;
- X esac
- X rp="What flag indicates small model?"
- X . ./myread
- X tans="$ans"
- X case "$tans" in
- X none) tans='';
- X esac
- X small="$tans";;
- X *) small='';;
- X esac
- X ;;
- X*)
- X echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
- X ;;
- Xesac
- X
- X: make some quick guesses about what we are up against
- Xecho " "
- X$echo $n "Hmm... $c"
- Xecho exit 1 >bsd
- Xecho exit 1 >usg
- Xecho exit 1 >v7
- Xecho exit 1 >osf1
- Xecho exit 1 >eunice
- Xecho exit 1 >xenix
- Xecho exit 1 >venix
- Xd_bsd="$undef"
- X$cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
- Xif test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
- Xthen
- X echo "Looks kind of like an OSF/1 system, but we'll see..."
- X echo exit 0 >osf1
- Xelif test `echo abc | tr a-z A-Z` = Abc ; then
- X xxx=`./loc addbib blurfl $pth`
- X if $test -f $xxx; then
- X echo "Looks kind of like a USG system with BSD features, but we'll see..."
- X echo exit 0 >bsd
- X echo exit 0 >usg
- X else
- X if $contains SIGTSTP foo >/dev/null 2>&1 ; then
- X echo "Looks kind of like an extended USG system, but we'll see..."
- X else
- X echo "Looks kind of like a USG system, but we'll see..."
- X fi
- X echo exit 0 >usg
- X fi
- Xelif $contains SIGTSTP foo >/dev/null 2>&1 ; then
- X echo "Looks kind of like a BSD system, but we'll see..."
- X d_bsd="$define"
- X echo exit 0 >bsd
- Xelse
- X echo "Looks kind of like a Version 7 system, but we'll see..."
- X echo exit 0 >v7
- Xfi
- Xcase "$eunicefix" in
- X*unixtovms*)
- X $cat <<'EOI'
- XThere is, however, a strange, musty smell in the air that reminds me of
- Xsomething...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
- XEOI
- X echo exit 0 >eunice
- X d_eunice="$define"
- X: it so happens the Eunice I know will not run shell scripts in Unix format
- X ;;
- X*)
- X echo " "
- X echo "Congratulations. You aren't running Eunice."
- X d_eunice="$undef"
- X ;;
- Xesac
- Xif test -f /xenix; then
- X echo "Actually, this looks more like a XENIX system..."
- X echo exit 0 >xenix
- X d_xenix="$define"
- Xelse
- X echo " "
- X echo "It's not Xenix..."
- X d_xenix="$undef"
- Xfi
- Xchmod +x xenix
- X$eunicefix xenix
- Xif test -f /venix; then
- X echo "Actually, this looks more like a VENIX system..."
- X echo exit 0 >venix
- Xelse
- X echo " "
- X if xenix; then
- X : null
- X else
- X echo "Nor is it Venix..."
- X fi
- Xfi
- Xchmod +x bsd usg v7 osf1 eunice xenix venix
- X$eunicefix bsd usg v7 osf1 eunice xenix venix
- X$rm -f foo
- X
- X: see if we need a special compiler
- Xecho " "
- Xif usg; then
- X case "$cc" in
- X '') case "$Mcc" in
- X /*) dflt='Mcc';;
- X *) case "$large" in
- X -M*) dflt='cc';;
- X *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
- X if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
- X dflt='cc'
- X else
- X dflt='cc -M'
- X fi
- X else
- X dflt='cc'
- X fi;;
- X esac;;
- X esac;;
- X *) dflt="$cc";;
- X esac
- X $cat <<'EOM'
- XOn some systems the default C compiler will not resolve multiple global
- Xreferences that happen to have the same name. On some such systems the "Mcc"
- Xcommand may be used to force these to be resolved. On other systems a "cc -M"
- Xcommand is required. (Note that the -M flag on other systems indicates a
- Xmemory model to use!) If you have the Gnu C compiler, you might wish to use
- Xthat instead.
- X
- XEOM
- X rp="What command will force resolution on this system?"
- X . ./myread
- X cc="$ans"
- Xelse
- X case "$cc" in
- X '') dflt=cc;;
- X *) dflt="$cc";;
- X esac
- X rp="Use which C compiler?"
- X . ./myread
- X cc="$ans"
- Xfi
- Xcase "$cc" in
- Xgcc*) cpp=`./loc gcc-cpp $cpp $pth`;;
- Xesac
- X
- X: What should the include directory be ?
- Xecho " "
- X$echo $n "Hmm... $c"
- Xcase "$usrinc" in
- X'') dflt='/usr/include';;
- X*) dflt=$usrinc;;
- Xesac
- Xincpath=''
- Xmips_type=''
- Xif $test -f /bin/mips && /bin/mips; then
- X echo "Looks like a MIPS system..."
- X $cat >usr.c <<'EOCP'
- X#ifdef SYSTYPE_BSD43
- X/bsd43
- X#endif
- XEOCP
- X if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
- X dflt='/bsd43/usr/include'
- X incpath='/bsd43'
- X mips_type='BSD 4.3'
- X else
- X mips_type='System V'
- X fi
- X $rm -f usr.c usr.out
- X echo "and you're compiling with the $mips_type compiler and libraries."
- Xelse
- X echo "Doesn't look like a MIPS system."
- X echo "exit 1" >mips
- X chmod +x mips
- X $eunicefix mips
- Xfi
- Xecho " "
- Xfn=d/
- Xrp='Where are the include files you want to use?'
- X. ./getfile
- Xusrinc="$ans"
- X
- X: Set private lib path
- Xcase "$plibpth" in
- X'') if mips; then
- X plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
- X else
- X plibpth="/usr/ccs/lib /usr/lib /usr/ucblib /usr/local/lib"
- X fi;;
- Xesac
- Xlibpth="$plibpth $libpth"
- X
- X: Looking for optional libraries
- Xecho " "
- Xecho "Checking for optional libraries..." >&4
- Xcase "$libs" in
- X' '|'') dflt='';;
- X*) dflt="$libs";;
- Xesac
- Xcase "$libswanted" in
- X'') libswanted='c_s';;
- Xesac
- Xfor thislib in $libswanted; do
- X case "$thislib" in
- X dbm) thatlib=ndbm;;
- X *_s) thatlib=NONE;;
- X *) thatlib="${thislib}_s";;
- X *) thatlib=NONE;;
- X esac
- X yyy="$incpath/usr/ccs/lib $incpath/usr/lib $incpath/usr/ucblib"
- X yyy="$yyy $incpath/usr/local/lib $incpath/lib"
- X xxx=`./loc lib$thislib.a X $yyy`
- X if $test -f $xxx; then
- X echo "Found -l$thislib."
- X case "$dflt" in
- X *-l$thislib*|*-l$thatlib*);;
- X *) dflt="$dflt -l$thislib";;
- X esac
- X else
- X xxx=`./loc lib$thislib.a X $libpth`
- X if $test -f $xxx; then
- X echo "Found $xxx."
- X case "$dflt" in
- X *$xxx*);;
- X *) dflt="$dflt $xxx";;
- X esac
- X else
- X xxx=`./loc Slib$thislib.a X $xlibpth`
- X if $test -f $xxx; then
- X echo "Found -l$thislib."
- X case "$dflt" in
- X *-l$thislib*|*-l$thatlib*);;
- X *) dflt="$dflt -l$thislib";;
- X esac
- X else
- X echo "No -l$thislib."
- X fi
- X fi
- X fi
- Xdone
- Xset X $dflt
- Xshift
- Xdflt="$*"
- Xcase "$libs" in
- X'') dflt="$dflt";;
- X*) dflt="$libs";;
- Xesac
- Xcase "$dflt" in
- X' '|'') dflt='none';;
- Xesac
- X
- X$cat <<EOM
- X
- XSome versions of Unix support shared libraries, which make executables smaller
- Xbut make load time slightly longer.
- X
- XOn some systems, mostly newer Unix System V's, the shared library is included
- Xby putting the option "-lc_s" as the last thing on the cc command line when
- Xlinking. Other systems use shared libraries by default. There may be other
- Xlibraries needed to compile $package on your machine as well. If your system
- Xneeds the "-lc_s" option, include it here. Include any other special libraries
- Xhere as well. Say "none" for none.
- XEOM
- X
- Xecho " "
- Xrp="Any additional libraries?"
- X. ./myread
- Xcase "$ans" in
- Xnone) libs=' ';;
- X*) libs="$ans";;
- Xesac
- X
- X: see if nm is to be used to determine whether a symbol is defined or not
- Xcase "$usenm" in
- X'')
- X dflt=`egrep 'inlibc|csym' ../Configure | wc -l 2>/dev/null`
- X if $test $dflt -gt 20; then
- X dflt=y
- X else
- X dflt=n
- X fi
- X ;;
- X*)
- X case "$usenm" in
- X true) dflt=y;;
- X *) dflt=n;;
- X esac
- X ;;
- Xesac
- X$cat <<EOM
- X
- XI can use 'nm' to extract the symbols from your C libraries. This is a time
- Xconsuming task which may generate huge output on the disk (up to 3 megabytes)
- Xbut that should make the symbols extraction faster. The alternative is to skip
- Xthe 'nm' extraction part and to compile a small test program instead to
- Xdetermine whether each symbol is present. If you have a fast C compiler and/or
- Xif your 'nm' output cannot be parsed, this may be the best solution.
- X
- XEOM
- Xrp='Shall I use nm to extract C symbols from the libraries?'
- X. ./myread
- Xcase "$ans" in
- Xn|N) usenm=false;;
- X*) usenm=true;;
- Xesac
- X
- Xrunnm=$usenm
- Xcase "$reuseval" in
- Xtrue) runnm=false;;
- Xesac
- X
- X: nm options which may be necessary
- Xcase "$nm_opt" in
- X'') if $test -f /mach_boot; then
- X nm_opt=''
- X elif $test -d /usr/ccs/lib; then
- X nm_opt='-p'
- X elif $test -f /dgux; then
- X nm_opt='-p'
- X else
- X nm_opt=''
- X fi;;
- Xesac
- X
- Xcase "$runnm" in
- Xtrue)
- X: get list of predefined functions in a handy place
- Xecho " "
- Xcase "$libc" in
- X'') libc=unknown
- X case "$libs" in
- X *-lc_s*) libc=`./loc libc_s.a $libc $libpth`
- X esac
- X ;;
- Xesac
- Xlibpth="$plibpth $libpth"
- Xlibnames='';
- Xcase "$libs" in
- X'') ;;
- X*) for thislib in $libs; do
- X case "$thislib" in
- X -l*)
- X thislib=`expr X$thislib : 'X-l\(.*\)'`
- X try=`./loc lib$thislib.a blurfl/dyick $libpth`
- X if test ! -f $try; then
- X try=`./loc lib$thislib blurfl/dyick $libpth`
- X if test ! -f $try; then
- X try=`./loc $thislib blurfl/dyick $libpth`
- X if test ! -f $try; then
- X try=`./loc Slib$thislib.a blurfl/dyick $xlibpth`
- X if test ! -f $try; then
- X try=''
- X fi
- X fi
- X fi
- X fi
- X libnames="$libnames $try"
- X ;;
- X *) libnames="$libnames $thislib" ;;
- X esac
- X done
- X ;;
- Xesac
- Xxxx=normal
- Xcase "$libc" in
- Xunknown)
- X set /usr/ccs/lib/libc.so
- X $test -r $1 || set /usr/lib/libc.so
- X $test -r $1 || set /usr/shlib/libc.so
- X $test -r $1 || set /usr/lib/libc.so.[0-9]*
- X $test -r $1 || set /lib/libsys_s.a
- X eval set \$$#
- X ;;
- X*)
- X set blurfl
- X ;;
- Xesac
- Xif $test -r "$1"; then
- X echo "Your (shared) C library seems to be in $1."
- X libc="$1"
- Xelif $test -r /lib/libc && $test -r /lib/clib; then
- X echo "Your C library seems to be in both /lib/clib and /lib/libc."
- X xxx=apollo
- X libc='/lib/clib /lib/libc'
- X if $test -r /lib/syslib; then
- X echo "(Your math library is in /lib/syslib.)"
- X libc="$libc /lib/syslib"
- X fi
- Xelif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
- X echo "Your C library seems to be in $libc, as you said before."
- Xelif $test -r $incpath/usr/lib/libc.a; then
- X libc=$incpath/usr/lib/libc.a;
- X echo "Your C library seems to be in $libc. That's fine."
- Xelif $test -r /lib/libc.a; then
- X libc=/lib/libc.a;
- X echo "Your C library seems to be in $libc. You're normal."
- Xelse
- X if tans=`./loc libc.a blurfl/dyick $libpth`; $test -r "$tans"; then
- X :
- X elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then
- X libnames="$libnames "`./loc clib blurfl/dyick $libpth`
- X elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then
- X :
- X elif tans=`./loc Slibc.a blurfl/dyick $xlibpth`; $test -r "$tans"; then
- X :
- X elif tans=`./loc Mlibc.a blurfl/dyick $xlibpth`; $test -r "$tans"; then
- X :
- X else
- X tans=`./loc Llibc.a blurfl/dyick $xlibpth`
- X fi
- X if $test -r "$tans"; then
- X echo "Your C library seems to be in $tans, of all places."
- X libc=$tans
- X else
- X libc='blurfl'
- X fi
- Xfi
- Xif $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
- X dflt="$libc"
- X cat <<EOM
- X
- XIf the guess above is wrong (which it might be if you're using a strange
- Xcompiler, or your machine supports multiple models), you can override it here.
- X
- XEOM
- Xelse
- X dflt=''
- X echo $libpth | tr ' ' '\012' | sort | uniq > libpath
- X cat >&4 <<EOM
- XI can't seem to find your C library. I've looked in the following places:
- X
- XEOM
- X $sed 's/^/ /' libpath
- X cat <<EOM
- X
- XNone of these seems to contain your C library. I need to get its name...
- X
- XEOM
- Xfi
- Xfn=f
- Xrp='Where is your C library?'
- X. ./getfile
- Xlibc="$ans"
- X
- Xecho " "
- Xecho $libc $libnames | tr ' ' '\012' | sort | uniq > libnames
- Xset X `cat libnames`
- Xshift
- Xxxx=files
- Xcase $# in 1) xxx=file; esac
- Xecho "Extracting names from the following $xxx for later perusal:" >&4
- Xecho " "
- X$sed 's/^/ /' libnames >&4
- Xecho " "
- X$echo $n "This may take a while...$c" >&4
- X
- Xnm $nm_opt $* 2>/dev/null >libc.tmp
- X$echo $n ".$c"
- X$grep fprintf libc.tmp > libc.ptf
- Xxscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
- Xxrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
- Xif com="$sed -n -e 's/^.* [ADTS] *_[_.]*//p' -e 's/^.* [ADTS] //p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \
- X -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
- X eval $xscan;\
- X $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X eval $xrun
- Xelse
- X nm -p $* 2>/dev/null >libc.tmp
- X com="$sed -n -e 's/^.* [ADTS] *_[_.]*//p' -e 's/^.* [ADTS] //p'";\
- X eval "<libc.tmp $com >libc.list"
- X if $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- X nm_opt='-p'
- X echo "done" >&4
- X else
- X echo " "
- X echo "nm didn't seem to work right. Trying ar instead..." >&4
- X com=''
- X if ar t $libc > libc.tmp; then
- X for thisname in $libnames; do
- X ar t $thisname >>libc.tmp
- X done
- X $sed -e 's/\.o$//' < libc.tmp > libc.list
- X echo "Ok." >&4
- X else
- X echo "ar didn't seem to work right." >&4
- X echo "Maybe this is a Cray...trying bld instead..." >&4
- X if bld t $libc | $sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list; then
- X for thisname in $libnames; do
- X bld t $libnames | \
- X $sed -e 's/.*\///' -e 's/\.o:.*$//' >>libc.list
- X ar t $thisname >>libc.tmp
- X done
- X echo "Ok." >&4
- X else
- X echo "That didn't work either. Giving up." >&4
- X exit 1
- X fi
- X fi
- X fi
- Xfi
- Xnm_extract="$com"
- Xif $test -f /lib/syscalls.exp; then
- X echo " "
- X echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
- X $sed -n 's/^\([^ ]*\)[ ]*syscall$/\1/p' /lib/syscalls.exp >>libc.list
- Xfi
- X;;
- Xesac
- X$rm -f libnames libpath
- X
- X: determine optimize, if desired, or use for debug flag also
- Xcase "$optimize" in
- X' ') dflt="none";;
- X'') dflt="-O";;
- X*) dflt="$optimize";;
- Xesac
- X$cat <<EOH
- X
- XSome C compilers have problems with their optimizers, by default, $package
- Xcompiles with the -O flag to use the optimizer. Alternately, you might want
- Xto use the symbolic debugger, which uses the -g flag (on traditional Unix
- Xsystems). Either flag can be specified here. To use neither flag, specify
- Xthe word "none".
- X
- XEOH
- Xrp="What optimizer/debugger flag should be used?"
- X. ./myread
- Xoptimize="$ans"
- Xcase "$optimize" in
- X'none') optimize=" ";;
- Xesac
- X
- Xcase "$ccflags" in
- X'') case "$cc" in
- X *gcc*) dflt='-fpcc-struct-return';;
- X *) dflt='';;
- X esac
- X case "$optimize" in
- X *-g*) dflt="$dflt -DDEBUG";;
- X esac
- X case "$cc" in
- X *gcc*) if test -d /etc/conf/kconfig.d &&
- X $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
- X then
- X dflt="$dflt -posix"
- X fi
- X ;;
- X esac
- X ;;
- X*) dflt="$ccflags" ;;
- Xesac
- X
- Xcase "$mips_type" in
- X*BSD*) ;;
- X'') ;;
- X*) inclwanted="$inclwanted $usrinc/bsd";;
- Xesac
- Xfor thisincl in $inclwanted; do
- X if $test -d $thisincl; then
- X if $test x$thisincl != x$usrinc; then
- X case "$dflt" in
- X *$thisincl*);;
- X *) dflt="$dflt -I$thisincl";;
- X esac
- X fi
- X fi
- Xdone
- X
- Xinctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
- X xxx=true;
- Xelif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
- X xxx=true;
- Xelse
- X xxx=false;
- Xfi;
- Xif $xxx; then
- X case "$dflt" in
- X *$2*);;
- X *) dflt="$dflt -D$2";;
- X esac;
- Xfi'
- X
- Xif ./osf1; then
- X set signal.h __LANGUAGE_C__; eval $inctest
- Xelse
- X set signal.h LANGUAGE_C; eval $inctest
- Xfi
- Xset signal.h NO_PROTOTYPE; eval $inctest
- Xset signal.h _NO_PROTO; eval $inctest
- X
- Xcase "$dflt" in
- X'') dflt=none;;
- Xesac
- X$cat <<EOH
- X
- XYour C compiler may want other flags. For this question you should include
- X-I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
- Xbut you should NOT include libraries or ld flags like -lwhatever. If you
- Xwant $package to honor its debug switch, you should include -DDEBUG here.
- XTo use no flags, specify the word "none".
- X
- XEOH
- Xset X $dflt
- Xshift
- Xdflt=${1+"$@"}
- Xrp="Any additional cc flags?"
- X. ./myread
- Xcase "$ans" in
- Xnone) ccflags='';;
- X*) ccflags="$ans";;
- Xesac
- X
- X: the following weeds options from ccflags that are of no interest to cpp
- Xcppflags="$ccflags"
- Xcase "$cc" in
- X*gcc*) cppflags="$cppflags -D__GNUC__";;
- Xesac
- Xcase "$mips_type" in
- X'');;
- X*BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
- Xesac
- Xcase "$cppflags" in
- X'');;
- X*) set X $cppflags
- X cppflags=''
- X for flag
- X do
- X case $flag in
- X -D*|-I*|-traditional|-ansi|-nostdinc) cppflags="$cppflags $flag";;
- X esac
- X done
- X case "$cppflags" in
- X *-*) echo "(C preprocessor flags: $cppflags)";;
- X esac
- X ;;
- Xesac
- X
- X: flags used in final linking phase
- Xcase "$ldflags" in
- X'') if venix; then
- X dflt='-i -z'
- X else
- X dflt='none'
- X fi
- X ;;
- X*) dflt="$ldflags";;
- Xesac
- Xecho " "
- Xrp="Any additional ld flags (NOT including libraries)?"
- X. ./myread
- Xcase "$ans" in
- Xnone) ldflags='';;
- X*) ldflags="$ans";;
- Xesac
- Xrmlist="$rmlist pdp11"
- X
- X: is a C symbol defined?
- Xcsym='tlook=$1;
- Xcase "$3" in
- X-v) tf=libc.tmp; tc=""; tdc="";;
- X-a) tf=libc.tmp; tc="[0]"; tdc=[];;
- X*) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";;
- Xesac;
- Xtx=yes;
- Xcase "$reuseval-$4" in
- Xtrue-) ;;
- Xtrue-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;;
- Xesac;
- Xcase "$tx" in
- Xyes)
- X case "$runnm" in
- X true)
- X if $contains $tlook $tf >/dev/null 2>&1;
- X then tval=true;
- X else tval=false;
- X fi;;
- X *)
- X echo "main() { extern int $1$tdc; printf(\"%d\", $1$tc); }" > t.c;
- X if $cc $ccflags -o t t.c $ldflags $libs >/dev/null 2>&1;
- X then tval=true;
- X else tval=false;
- X fi;
- X $rm -f t t.c;;
- X esac;;
- X*)
- X case "$tval" in
- X $define) tval=true;;
- X *) tval=false;;
- X esac;;
- Xesac;
- Xeval "$2=$tval"'
- X
- X: set up the script used to warn in case of inconsistency
- Xcat <<'EOSC' >whoa
- Xdflt=y
- Xecho " "
- Xecho "*** WHOA THERE!!! ***" >&4
- Xecho " The $hint value for \$$var on this machine was \"$was\"!" >&4
- Xrp=" Keep the $hint value?"
- X. ./myread
- Xcase "$ans" in
- Xy) td=$was; tu=$was;;
- Xesac
- XEOSC
- X
- X: define an is-in-libc? function
- Xinlibc='echo " "; td=$define; tu=$undef;
- Xsym=$1; var=$2; eval "was=\$$2";
- Xtx=yes;
- Xcase "$reuseval$was" in
- Xtrue) ;;
- Xtrue*) tx=no;;
- Xesac;
- Xcase "$tx" in
- Xyes)
- X set $sym tres -f;
- X eval $csym;
- X case "$tres" in
- X true)
- X echo "$sym() found." >&4;
- X case "$was" in $undef) . whoa; esac; eval "$var=\$td";;
- X *)
- X echo "$sym() NOT found." >&4;
- X case "$was" in $define) . whoa; esac; eval "$var=\$tu";;
- X esac;;
- X*)
- X case "$was" in
- X $define) echo "$sym() found." >&4;;
- X *) echo "$sym() NOT found." >&4;;
- X esac;;
- Xesac'
- X
- X: see if bcopy exists
- Xset bcopy d_bcopy
- Xeval $inlibc
- X
- X: see if we have to deal with yellow pages, now NIS.
- Xif $test -d /usr/etc/yp || $test -d /etc/yp; then
- X if $test -f /usr/etc/nibindd; then
- X echo " "
- X echo "I'm fairly confident you're on a NeXT."
- X echo " "
- X rp='Do you get the hosts file via NetInfo?'
- X dflt=y
- X case "$hostcat" in
- X nidump*) ;;
- X '') ;;
- X *) dflt=n;;
- X esac
- X . ./myread
- X case "$ans" in
- X y*) hostcat='nidump hosts .';;
- X *) hostcat='cat /etc/hosts';;
- X esac
- X fi
- X case "$hostcat" in
- X nidump*) ;;
- X *)
- X case "$hostcat" in
- X *ypcat*) dflt=y;;
- X '') if $contains '^\+' /etc/passwd >/dev/null 2>&1; then
- X dflt=y
- X else
- X dflt=n
- X fi;;
- X *) dflt=n;;
- X esac
- X echo " "
- X rp='Are you getting the hosts file via yellow pages?'
- X . ./myread
- X case "$ans" in
- X y*) hostcat='ypcat hosts';;
- X *) hostcat='cat /etc/hosts';;
- X esac
- X ;;
- X esac
- Xfi
- X
- X: now get the host name
- Xecho " "
- Xecho "Figuring out host name..." >&4
- Xcase "$myhostname" in
- X'') cont=true
- X echo 'Maybe "hostname" will work...'
- X if tans=`sh -c hostname 2>&1` ; then
- X myhostname=$tans
- X phostname=hostname
- X cont=''
- X fi
- X ;;
- X*) cont='';;
- Xesac
- Xif $test "$cont"; then
- X if xenix; then
- X echo 'Oh, dear. Maybe "/etc/systemid" is the key...'
- X if tans=`cat /etc/systemid 2>&1` ; then
- X myhostname=$tans
- X phostname='cat /etc/systemid'
- X echo "Whadyaknow. Xenix always was a bit strange..."
- X cont=''
- X fi
- X elif $test -r /etc/systemid; then
- X echo "(What is a non-Xenix system doing with /etc/systemid?)"
- X fi
- Xfi
- Xif $test "$cont"; then
- X echo 'No, maybe "uuname -l" will work...'
- X if tans=`sh -c 'uuname -l' 2>&1` ; then
- X myhostname=$tans
- X phostname='uuname -l'
- X else
- X echo 'Strange. Maybe "uname -n" will work...'
- X if tans=`sh -c 'uname -n' 2>&1` ; then
- X myhostname=$tans
- X phostname='uname -n'
- X else
- X echo 'Oh well, maybe I can mine it out of whoami.h...'
- X if tans=`sh -c $contains' sysname $usrinc/whoami.h' 2>&1` ; then
- X myhostname=`echo "$tans" | $sed 's/^.*"\(.*\)"/\1/'`
- X phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' <$usrinc/whoami.h"
- X else
- X case "$myhostname" in
- X '') echo "Does this machine have an identity crisis or something?"
- X phostname='';;
- X *)
- X echo "Well, you said $myhostname before..."
- X phostname='echo $myhostname';;
- X esac
- X fi
- X fi
- X fi
- Xfi
- X: you do not want to know about this
- Xset $myhostname
- Xmyhostname=$1
- X
- X: translate upper to lower if necessary
- Xcase "$myhostname" in
- X*[A-Z]*)
- X myhostname=`echo $myhostname | tr '[A-Z]' '[a-z]'`
- X echo "(Normalizing case in your host name)"
- X ;;
- Xesac
- X
- X: verify guess
- Xif $test "$myhostname" ; then
- X dflt=y
- X rp='Your host name appears to be "'$myhostname'".'" Right?"
- X . ./myread
- X case "$ans" in
- X y*) ;;
- X *) myhostname='';;
- X esac
- Xfi
- X
- X: bad guess or no guess
- Xwhile $test "X$myhostname" = X ; do
- X dflt=''
- X rp="Please type the (one word) name of your host:"
- X . ./myread
- X myhostname="$ans"
- Xdone
- X
- Xcase "$myhostname" in
- X*.*)
- X dflt=`expr "X$myhostname" : "X[^.]*\(\..*\)"`
- X myhostname=`expr "X$myhostname" : "X\([^.]*\)\."`
- X echo "(Trimming domain name from host name--host name is now $myhostname)"
- X ;;
- X*) case "$mydomain" in
- END_OF_FILE
- if test 49998 -ne `wc -c <'Configure.01'`; then
- echo shar: \"'Configure.01'\" unpacked with wrong size!
- fi
- # end of 'Configure.01'
- fi
- if test -f 'agent/test/misc/compress.t' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'agent/test/misc/compress.t'\"
- else
- echo shar: Extracting \"'agent/test/misc/compress.t'\" \(1969 characters\)
- sed "s/^X//" >'agent/test/misc/compress.t' <<'END_OF_FILE'
- X# Test compression feature
- X
- X# $Id: compress.t,v 3.0 1993/11/29 13:50:08 ram Exp ram $
- X#
- X# Copyright (c) 1990-1993, Raphael Manfredi
- X#
- X# You may redistribute only under the terms of the Artistic License,
- X# as specified in the README file that comes with the distribution.
- X# You may reuse parts of this distribution only within the terms of
- X# that same Artistic License; a copy of which may be found at the root
- X# of the source tree for mailagent 3.0.
- X#
- X# $Log: compress.t,v $
- X# Revision 3.0 1993/11/29 13:50:08 ram
- X# Baseline for mailagent 3.0 netwide release.
- X#
- X
- Xdo '../pl/misc.pl';
- Xunlink "$user.Z", 'always';
- X
- X# Look whether compress is available. If not, do not perform this test.
- X`compress mail`;
- X`uncompress mail` if $? == 0 && -f mail.Z;
- Xif ($? != 0) { # No compress available in path, sorry
- X print "-1\n"; # Do not perform any tests
- X exit 0;
- X}
- X
- X&add_option("-o 'compress: ~/.compress'");
- Xopen(COMPRESS, '>.compress') || print "1\n";
- Xprint COMPRESS <<EOF || print "2\n";
- Xa[lm]*
- X$user
- XEOF
- Xclose COMPRESS || print "3\n";
- X
- X&add_header('X-Tag: compress');
- X`$cmd`;
- X$? == 0 || print "4\n";
- X-f "$user" && print "5\n"; # Should be compressed
- X-f "$user.Z" || print "6\n";
- X-f 'always' && print "7\n"; # Should also be compressed
- X-f 'always.Z' || print "8\n";
- X-f 'another' || print "9\n"; # This one is not compressed
- X-f 'another.Z' && print "10\n";
- X$msize = -s "$user.Z";
- X
- X`cp $user.Z $user >/dev/null 2>&1`;
- X`$cmd`;
- X$? == 0 || print "11\n";
- X-f "$user" || print "12\n"; # Should be not be recompressed
- X-f "$user.Z" || print "13\n"; # Should still be there
- X-f 'always' && print "14\n"; # Should also be compressed
- X-f 'always.Z' || print "15\n";
- X-f 'another' || print "16\n"; # This one is not compressed
- X-f 'another.Z' && print "17\n";
- X(-s $user != $msize) || print "18\n"; # Mail saved there
- X(-s "$user.Z" == $msize) || print "19\n"; # This one left undisturbed
- X
- Xunlink "$user", "$user.Z", 'always', 'always.Z', 'another', 'mail', '.compress';
- Xprint "0\n";
- END_OF_FILE
- if test 1969 -ne `wc -c <'agent/test/misc/compress.t'`; then
- echo shar: \"'agent/test/misc/compress.t'\" unpacked with wrong size!
- fi
- # end of 'agent/test/misc/compress.t'
- fi
- echo shar: End of archive 6 \(of 26\).
- cp /dev/null ark6isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 26 archives.
- echo "Now run 'sh PACKNOTES', then read README and type Configure.'"
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
-
- exit 0 # Just in case...
-