v07i020: ELM Update Kit, Part03/03
sources-request at mirror.UUCP
sources-request at mirror.UUCP
Thu Sep 4 05:26:06 AEST 1986
Submitted by: Dave Taylor <taylor at hplabs.HP.COM>
Mod.sources: Volume 7, Issue 20
Archive-name: elm_update/Part03
[ The shell scripts in this posting should be run on a clean copy of
the ELM sources. Then run the "Configure.sh" script now provided,
to build the Makefiles, etc. I suppose this is a good time to say
that Dave said to ignore errors in unpacking Part 12 of the Volume
6 ELM distribution. -- r$ ]
#!/bin/sh
# This is a shell archive. Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
# Exit status; set to 1 on "wc" errors or if would overwrite.
STATUS=0
# Contents: Edit3
echo x - Edit3
if test -f Edit3 ; then
echo Edit3 exists, putting output in $$Edit3
OUT=$$Edit3
STATUS=1
else
OUT=Edit3
fi
sed 's/^XX//' > $OUT <<'@//E*O*F Edit3//'
XX: Use /bin/sh
XX# This is the automatically generated output of the AUTODIFF program after
XX# being run on the two directories;
XX# Old Directory: Elm-Posted
XX# New Directory: Elm
XX# Any problems with execution of this script should be reported to the
XX# author of the program, Dave Taylor, at "hplabs!taylor". Thanks
XX# first off, let's make sure we're running in SH
XXexport PATH || (sh $0; exit $$)
XX# next, let's ensure the user has "ed"...
XXif [ ! -f /bin/ed ]
XXthen
XX echo I can\'t find /bin/ed\!
XX exit 1
XXfi
XX# finally, let's get this show on the road!!
XX#---------------------------------
XX# File Elm/Configure.sh is new!
XXecho File Elm/Configure.sh is new - extracting...
XXif [ -f Configure.sh ]
XXthen
XX echo File \'Configure.sh\' is new, but you already have something called that\!
XX echo I\'m going to move your file to \'Configure.sh.old\'...
XX /bin/mv -f Configure.sh Configure.sh.old
XXelse
XX echo Extracting new file \'Configure.sh\'
XXfi
XXcat > Configure.sh << 'END_OF_FILE'
XX#!/bin/sh
XX#
XX# Configure.sh, a shell script for configuring the Elm mail system for
XX# your site and desires. This script uses some ideas ripped out
XX# of the 'rn' install script. Thanks Larry!
XX#
XXexport PATH || (sh $0 ; kill $$)
XXSHELL=/bin/sh
XXSED1=/tmp/Elm.sed1
XXSED2=/tmp/Elm.sed2
XXif [ -f /bin/rm ]
XXthen
XX rm=/bin/rm
XXelse
XX rm=rm
XXfi
XX$rm -f $SED1 $SED2
XXtouch $SED1 $SED2
XXchmod 777 $SED1 $SED2
XX# first test - is stdin still free for answering questions??
XXif [ ! -t 0 ]
XXthen
XX echo "Please use 'sh Configure.sh' rather than 'sh < Configure.sh'"
XX exit 1
XXfi
XX# next let's see what sorta echo flag we have here...
XXif [ "`echo -n`" = "-n" ]
XXthen
XX nflag=""
XX cflag="\\c"
XXelse
XX nflag="-n"
XX cflag=""
XXfi
XX# now the intro blurb
XXcat << END_OF_INTRO
XX Elm Configuration Script, v2
XX
XX
XX This is the configuration script for the Elm mail system. By using
XX it rather than editing the "hdrs/sysdefs.h" file, it is hoped that
XX the installation process will be considerably easier.
XX On all questions, the value in [square brackets] is the default that
XX will be used if you just press RETURN...
XXEND_OF_INTRO
XXecho "Trying to figure out what sort of OS you're on..."
XX# next interesting part - figure out what OS we're on
XXos_name=""
XX$rm -f .osname
XXtouch .osname
XXcat << 'EOF' > .get_osname
XXuname
XXif [ $? != 0 ]
XXthen
XX if [ -f /vmunix ]
XX then
XX echo "bsd" > .osname
XX else
XX exit 0
XX fi
XXfi
XXif [ "`uname -s`" != "" ]
XXthen
XX uname -s | tr '[A-Z]' '[a-z]' > .osname
XXfi
XXexit 0
XX
XXEOF
XXsh .get_osname > /dev/null 2>&1
XXif [ -f .osname ]
XXthen
XX os_name="`cat .osname`"
XX $rm -f .osname
XXfi
XX$rm -f .get_osname
XXif [ "$os_name" = "" ]
XXthen
XX cat << THE_END
XXI cannot figure out what sort of operating system you're running here. Please
XXtype in the NAME of the OS you're running or the name of the machine you're
XXTHE_END
XX echo $nflag "running on. I'll check the name in a minute : " $cflag
XX read junk morejunk
XX
XX os_name=`echo $junk | tr '[A-Z]' '[a-z]'`
XXfi
XXOS_FLAG="HUH??"
XXwhile [ "$OS_FLAG" = "HUH??" ]
XXdo
XX case $os_name in
XX hp) NAME="HP-UX"; OS_FLAG="" ;;
XX hp-ux) NAME="HP-UX"; OS_FLAG=""; ;;
XX vax) NAME="BSD"; OS_FLAG="BSD"; ;;
XX vaxen) NAME="BSD"; OS_FLAG="BSD"; ;;
XX bsd) NAME="BSD"; OS_FLAG="BSD"; ;;
XX uts) NAME="UTS"; OS_FLAG="UTS"; ;;
XX sun) NAME="Sun BSD"; OS_FLAG="SUN"; ;;
XX pyramid) NAME="Pyramid BSD"; OS_FLAG="PYRAMID"; ;;
XX amdahl) NAME="UTS"; OS_FLAG="UTS"; ;;
XX v5) NAME="System V"; OS_FLAG=""; ;;
XX v7) NAME="System VII"; OS_FLAG=""; ;;
XX eunice) NAME="Eunice"; OS_FLAG=""; ;;
XX convergent) NAME="Convergent BSD"; OS_FLAG="BSD"; ;;
XX berkeley) NAME="BSD"; OS_FLAG="BSD"; ;;
XX ultrix) cat << THE_END
XXI know that this is a breed of Unix, but I don't know what TYPE of OS it
XXis like. Please enter the NAME of the OS that this is most like (e.g. "BSD")
XXand we'll go from there.
XXTHE_END
XX ;;
XX xenix) cat << THE_END
XXYou're outta luck. Xenix (dumb OS that it is only allows 6 character
XXidentifier names. You'll need to go in and LABORIOUSLY translate all the
XXVERY LONG identifier names to the right length. The correct response to
XXseeing this message is to call your vendor and get ANGRY!!!!
XXMeanwhile, we might as well just quit here. Sorry.
XXTHE_END
XXexit 1
XX ;;
XX *) cat << THE_END
XXI don't know what OS you're specifying! The only one's I know of are;
XX HP-UX, BSD, UTS, Eunice, Xenix, Ultrix, V5, and V7
XXI also know the machines
XX HP, Amdahl, Sun, Vaxen, Convergent and Pyramid
XXIf you're not among this list, you'll need to pick the closest OS name.
XXTHE_END
XX echo " "
XX echo $nflag "Please choose again: " $cflag
XX read os_name
XX ;;
XX esac
XXdone
XXecho " "
XXecho " "
XXecho you\'re on the following version of Unix: $NAME
XXcase $OS_FLAG in
XX BSD) echo "s/>os-define</-DBSD/" >> $SED2
XX echo "s/>lib2</-lcurses/" >> $SED2
XX ;;
XX SUN) echo "s/>os-define</"-DBSD -DSUN"/" >> $SED2
XX echo "s/>lib2</-lcurses/" >> $SED2
XX ;;
XX PYRAMID) echo "s/>os-define</"-DBSD -DNO_VAR_ARGS"/" >> $SED2
XX echo "s/>lib2</-lcurses/" >> $SED2
XX ;;
XX *) echo "s/>os-define<//" >> $SED2
XX echo "s/>lib2<//" >> $SED2
XX ;;
XXesac
XXecho " "
XXecho "Now we can get down to those questions..."
XXecho " "
XXcat << THE_END
XXDoes your site receive mail with valid "Reply-To:" and "From:" fields in
XXthe messages? (usually the answer is "no" since not all sites on the network
XXrewrite the addresses, and this'll usually cause the return mail to fail).
XXTHE_END
XXanswer="no"
XXecho $nflag "Are the addresses valid (y/n) [no] ?" $cflag
XXread answer
XXif [ "$answer" != "y" -a "$answer" != "yes" ]
XXthen
XX echo \
XX"s/#define USE_EMBEDDED_ADDRESSES/\/** #define USE_EMBEDDED_ADDRESSES **\//" \
XX >> $SED1
XXfi
XXcat << THE_END
XX-------------------------------------------------------------------------------
XXHow about memory? If you have a lot, you can enter a fairly large number
XXfor the next few questions...if not, you'll probably want to enter the
XXsuggested small-system values. (This applies to the speed of the swapping
XXon your system too - if you're on a FAST system, use the big values!)
XXFirst, how many messages should be allowed in a single folder? (the suggested
XXvalues are 1000 for blindly fast systems, 500 for average systems and 100 for
XXTHE_END
XXecho $nflag "slow systems). Number of messages [500] ? " $cflag
XXmax_headers=NONE
XXwhile [ "$max_headers" = "NONE" ]
XXdo
XX read junk
XX if [ "$junk" = "" ]
XX then
XX junk=500
XX fi
XX if [ $junk -gt 1000 -o $junk -lt 50 ]
XX then
XX echo "I think a value of $junk is pretty strange. You better answer this"
XX echo "question again..."
XX echo " "
XX echo $nflag "How many messages per folder [500] ? " $cflag
XX read junk
XX else
XX max_headers=$junk
XX echo "s/>500</$max_headers/" >> $SED1
XX fi
XX
XX if [ $junk -lt 200 ]
XX then
XX system_size="small"
XX elif [ $junk -lt 750 ]
XX then
XX system_size="normal"
XX else
XX system_size="big"
XX fi
XXdone
XXcase $system_size in
XX small) default=223; ;;
XX normal) default=503; ;;
XX big) default=739; ;;
XXesac
XXecho " "
XXmax_saliases="NONE"
XXwhile [ "$max_saliases" = "NONE" ]
XXdo
XX echo $nflag "Max number of system aliases available [$default] ? " $cflag
XX read junk
XX if [ "$junk" = "" ]
XX then
XX junk=$default
XX fi
XX if [ $junk -lt 50 -o $junk -gt 1000 ]
XX then
XX echo "Pretty far out value for this question! I think you should reconsider"
XX echo "your answer and try this question again..."
XX echo " "
XX else
XX max_saliases=$junk
XX echo "s/>503</$max_saliases/" >> $SED1
XX fi
XXdone
XXcase $system_size in
XX small) default=127; ;;
XX normal) default=251; ;;
XX big) default=503; ;;
XXesac
XXmax_ualiases="NONE"
XXwhile [ "$max_ualiases" = "NONE" ]
XXdo
XX echo $nflag "Max number of user aliases available [$default] ? " $cflag
XX read junk
XX if [ "$junk" = "" ]
XX then
XX junk=$default
XX fi
XX if [ $junk -lt 50 -o $junk -gt 1000 ]
XX then
XX echo "Pretty far out value for this question! I think you should reconsider"
XX echo "your answer and try this question again..."
XX echo " "
XX else
XX max_ualiases=$junk
XX echo "s/>251</$max_ualiases/" >> $SED1
XX fi
XXdone
XXcase $system_size in
XX small) default=50; ;;
XX normal) default=150; ;;
XX big) default=150; ;;
XXesac
XXmax_in_weedlist="NONE"
XXwhile [ "$max_in_weedlist" = "NONE" ]
XXdo
XX echo $nflag "Max number of headers in weedout list [$default] ? " $cflag
XX read junk
XX if [ "$junk" = "" ]
XX then
XX junk=$default
XX fi
XX if [ $junk -lt 10 -o $junk -gt 200 ]
XX then
XX echo "Pretty strange answer to this question! I think you should reconsider"
XX echo "and try this question again..."
XX echo " "
XX else
XX max_in_weedlist=$junk
XX echo "s/>150</$max_in_weedlist/" >> $SED1
XX fi
XXdone
XXcat << THE_END
XXThe next pair of questions have to do with what to do when another program has
XXlocked a mailbox...
XXFirst, how many times should the program check for the removal of the lock
XXTHE_END
XXdefault=6
XXmax_attempts="NONE"
XXwhile [ "$max_attempts" = "NONE" ]
XXdo
XX echo $nflag "file before giving up? [6] " $cflag
XX read junk
XX if [ "$junk" = "" ]
XX then
XX junk=$default
XX fi
XX if [ $junk -lt 3 -o $junk -gt 10 ]
XX then
XX echo \
XX"The recommended range is 3-10 ...Number of times to check lock"
XX else
XX max_attempts=$junk
XX echo "s/>6</$max_attempts/" >> $SED1
XX fi
XXdone
XXecho " "
XXanswer="no"
XXecho $nflag "Should it REMOVE the lockfile after $max_attempts checks [no] ?" \
XX $cflag
XXread answer
XXif [ "$answer" != "y" -a "$answer" != "yes" ]
XXthen
XX echo \
XX"s/#define REMOVE_AT_LAST/\/** #define REMOVE_AT_LAST **\//" \
XX >> $SED1
XXfi
XXif [ "$NAME" = "BSD" ]
XXthen
XX ps="ps -cax"
XXelse
XX ps="ps -ef"
XXfi
XXecho " "
XXecho " "
XXecho "poking about a bit.."
XXif [ "`$ps | grep sendmail | grep -v grep`" != "" ]
XXthen
XX echo "You're running sendmail. Well done, I guess..."
XX echo "s/\/\*\* #define DONT_ADD_FROM \*\*\//#define DONT_ADD_FROM/" \
XX >> $SED1
XX echo \
XX "s/#define USE_DOMAIN/\/** #define USE_DOMAIN **\//" \
XX >> $SED1
XXelse
XX cat << THE_END
XXSince you're not running sendmail, should I check local user entered addresses
XXTHE_END
XXanswer="yes"
XXecho $nflag "against the valid mailboxes on this system [yes] ? " $cflag
XXread answer
XXif [ "$answer" != "y" -a "$answer" != "yes" -a "$answer" != "" ]
XXthen
XX echo \
XX"s/#define NOCHECK_VALIDNAME/\/** #define NOCHECK_VALIDNAME **\//" \
XX >> $SED1
XXfi
XXcat << THE_END
XXAre you running a machine where you want to have a domain name appended to the
XXTHE_END
XXanswer="yes"
XXecho $nflag "hostname on outbound mail [no] ? " $cflag
XXread answer
XXif [ "$answer" != "y" -a "$answer" != "yes" ]
XXthen
XX echo \
XX "s/#define USE_DOMAIN/\/** #define USE_DOMAIN **\//" \
XX >> $SED1
XXelse
XX echo " "
XX echo $nflag "Enter the domain name (include leading '.') : " $cflag
XX read answer
XX echo "s/<enter your domain here>/$answer/" >> $SED1
XXfi
XXfi
XX# next let's see if we can find the vfork command on this system..
XXcat << EOF > .test.c
XXmain()
XX{
XX (void) vfork();
XX}
XXEOF
XXcat << EOF > .vfork
XXcc .test.c
XXEOF
XXsh .vfork > .log 2>& 1
XXif [ "`wc -l .log`" -eq "0" ]
XXthen
XX echo "You have virtual memory system calls available. Cool..."
XXelse
XX cat << THE_END
XXYour machine doesn't seem to have the vfork command available. Should I assume
XXTHE_END
XX answer="no"
XX echo $nflag "you have it, anyway [no] ? " $cflag
XX read answer
XXif [ "$answer" != "y" -a "$answer" != "yes" ]
XX then
XX echo "s/\/\*\* #define NO_VM \*\*\//#define NO_VM/" >> $SED1
XX fi
XXfi
XX$rm -f a.out .test.c .vfork .log
XX# next let's see if we have the gethostname() system call...
XXcat << EOF > .test.c
XXmain()
XX{
XX (void) gethostname();
XX}
XXEOF
XXcat << EOF > .hostname
XXcc .test.c
XXEOF
XXsh .hostname > .log 2>& 1
XXif [ "`wc -l .log`" -eq "0" ]
XXthen
XX echo "You have the 'gethostname()' system call..."
XXelse
XX echo "s/\/\*\* #define NEED_GETHOSTNAME \*\*\//#define NEED_GETHOSTNAME/" \
XX >> $SED1
XXfi
XX$rm -f a.out .test.c .hostname .log
XX# next let's see if we have long variable names...
XXcat << EOF > .test.c
XXmain()
XX{
XX int this_is_a_long_variable;
XX (void) this_is_a_long_variable_routine_name();
XX
XX}
XXthis_is_a_long_variable_routine_name() { }
XXEOF
XXcat << EOF > .varnames
XXcc .test.c
XXEOF
XXsh .varnames > .log 2>& 1
XXif [ "`wc -l .log`" -eq "0" ]
XXthen
XX echo "You have long variable names. Well done!!!!!"
XXelse
XX echo "How embarassing. Your C compiler doesn't support long variables..."
XX echo "s/\/\*\* #define SHORTNAMES \*\*\//#define SHORTNAMES/" \
XX >> $SED1
XXfi
XX$rm -f a.out .test.c .varname .log
XXcat << THE_END
XXWhen given a machine that you talk to directly, should the 'pathalias' route to
XXTHE_END
XXanswer="no"
XXecho $nflag "the machine be used instead [no] ? " $cflag
XXread answer
XXif [ "$answer" != "y" -a "$answer" != "yes" ]
XXthen
XX echo \
XX "s/#define LOOK_CLOSE_AFTER_SEARCH/\/** #define LOOK_CLOSE_AFTER_SEARCH **\//" \
XX >> $SED1
XXfi
XXanswer="yes"
XXecho " "
XXecho $nflag "Is the preferred address notation 'user at host' [yes] ?" $cflag
XXread answer
XXif [ "$answer" != "y" -a "$answer" != "yes" -a "$answer" != "" ]
XXthen
XX echo \
XX "s/#define INTERNET_ADDRESS_FORMAT/\/** #define INTERNET_ADDRESS_FORMAT **\//" \
XX >> $SED1
XXfi
XXecho " "
XXanswer="yes"
XXecho $nflag "Am I going to be running as a setgid program [yes] ? "$cflag
XXread answer
XXif [ "$answer" != "y" -a "$answer" != "yes" -a "$answer" != "" ]
XXthen
XX echo answer is currently equal to \"$answer\"
XX echo \
XX "s/#define SAVE_GROUP_MAILBOX_ID/\/** #define SAVE_GROUP_MAILBOX_ID **\//" \
XX >> $SED1
XXfi
XX
XXcat << THE_END
XXFor any of the questions after this point, you can press RETURN if the
XXquestions doesn't apply, or there's no reasonable answer...
XXTHE_END
XXif [ ! -f /usr/lib/nmail.paths ]
XXthen
XX echo $nflag "Where does the output of pathalias live ? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/usr/lib/nmail.paths^$answer^" >> $SED1
XX fi
XXfi
XX
XXif [ ! -f /usr/lib/domains ]
XXthen
XX echo $nflag "Where does the 'domains' file live ? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/usr/lib/domains^$answer^" >> $SED1
XX fi
XXfi
XXif [ ! -f /usr/lib/uucp/L.sys ]
XXthen
XX echo $nflag "Where does the 'L.sys' file live ? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/usr/lib/uucp/L.sys^$answer^" >> $SED1
XX fi
XXfi
XX
XXif [ ! -d /tmp ]
XXthen
XX echo $nflag "/tmp isn't a directory! What should I use?? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/tmp^$answer^" >> $SED1
XX fi
XXfi
XXif [ ! -f /usr/ucb/vi -a "$os_name" = "BSD" ]
XXthen
XX echo $nflag "I can't find the 'vi' editor! Where is it? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/usr/ucb/vi^$answer^" >> $SED1
XX fi
XXelif [ ! -f /usr/bin/vi -a "$os_name" = "" ]
XXthen
XX echo $nflag \
XX "I can't find the 'vi' editor! Where is it? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/usr/bin/vi^$answer^" >> $SED1
XX fi
XXfi
XXif [ ! -d /usr/spool/mail -a "$os_name" = "BSD" ]
XXthen
XX echo $nflag "I can't find your inbound mail directory! Where is it? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/usr/spool/mail^$answer^" >> $SED1
XX fi
XXelif [ ! -d /usr/mail -a "$os_name" = "" ]
XXthen
XX echo $nflag "I can't find your inbound mail directory! Where is it? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/usr/mail^$answer^" >> $SED1
XX fi
XXfi
XXif [ ! -f /bin/rm ]
XXthen
XX echo $nflag "Where's the 'rm' program? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/bin/rm^$answer^" >> $SED1
XX fi
XXfi
XXif [ ! -f /bin/cat ]
XXthen
XX echo $nflag "Where's the 'cat' program? " $cflag
XX read answer
XX if [ "$answer" != "" ]
XX then
XX echo "s^/bin/rm^$answer^" >> $SED1
XX fi
XXfi
XX
XXif [ ! -f /dev/rct ]
XXthen
XX if [ ! -f /dev/rmt ]
XX then
XX echo $nflag "What's the name of your remote-tape unit? " $cflag
XX read answer
XX if [ "$answer" = "" ]
XX then
XX echo "s^>tapeunit<^unknown-remote-tape-unit^" >> $SED2
XX else
XX if [ ! -f $answer ]
XX then
XX if [ -f /dev/$answer ]
XX then
XX echo "s^>tapeunit<^/dev/$answer^" >> $SED2
XX else
XX echo \
XX "I can't find either $answer or /dev/$answer. I'll set it to junk"
XX echo "s^>tapeunit<^unknown-remote-tape-unit^" >> $SED2
XX fi
XX else
XX echo "s^>tapeunit<^$answer^" >> $SED2
XX fi
XX fi
XX else
XX echo "s^>tapeunit<^/dev/rmt^" >> $SED2
XX fi
XXelse
XX echo "s^>tapeunit<^/dev/rct^" >> $SED2
XXfi
XXif [ ! -d /usr/local/bin ]
XXthen
XX echo $nflag "Where do you want the system software installed? " $cflag
XX read answer
XX if [ "$answer" = "" ]
XX then
XX echo "s^>dest-dir<^unknown-destination-directory^" >> $SED2
XX else
XX if [ -d $answer ]
XX then
XX echo "s^>dest-dir<^$answer^" >> $SED2
XX else
XX echo "I don't know what you're talking about. I'll set it to junk"
XX echo "s^>dest-dir<^unknown-destination-directory^" >> $SED2
XX fi
XX fi
XXelse
XX echo "s^>dest-dir<^/usr/local/bin^" >> $SED2
XXfi
XXif [ ! -f /usr/bin/troff ]
XXthen
XX if [ ! -f /usr/local/bin/troff ]
XX then
XX if [ ! -f /usr/contrib/bin/troff ]
XX then
XX if [ ! -f /usr/ucb/troff ]
XX then
XX if [ ! -f /bin/troff ]
XX then
XX echo $nflag "Where does the 'troff' program live? " $cflag
XX read answer
XX if [ "$answer" = "" ]
XX then
XX echo "s/>troff</nroff/" >> $SED2
XX else
XX if [ -f $answer ]
XX then
XX echo "s^>troff<^$answer^" >> $SED2
XX troff=$answer
XX else
XX echo "Still can't find it. I'll set it to \"nroff\" instead."
XX echo "s/>troff</nroff/" >> $SED2
XX fi
XX fi
XX else
XX echo "s^>troff<^/bin/troff^" >> $SED2
XX troff=/bin/troff
XX fi
XX else
XX echo "s^>troff<^/usr/ucb/troff^" >> $SED2
XX troff=/usr/ucb/troff
XX fi
XX else
XX echo "s^>troff<^/usr/contrib/bin/troff^" >> $SED2
XX troff=/usr/contribbin/troff
XX fi
XX else
XX echo "s^>troff<^/usr/local/bin/troff^" >> $SED2
XX troff=/usr/local/bin/troff
XX fi
XXelse
XX echo "s^>troff<^/usr/bin/troff^" >> $SED2
XX troff=/usr/bin/troff
XXfi
XX# phew!
XXtroffdir=`dirname $troff`
XXif [ -f $troffdir/tbl ]
XXthen
XX echo "s^>tbl<^$troffdir/tbl^" >> $SED2
XXelse
XX echo $nflag "Where does the 'tbl' program live? " $cflag
XX read answer
XX if [ "$answer" = "" ]
XX then
XX echo "s^>tbl<^cat^" >> $SED2
XX elif [ -f $answer ]
XX then
XX echo "s^>tbl<^$answer^" >> $SED2
XX else
XX echo "I can't find that either. I'll just set it to junk..."
XX echo "s^>tbl<^cat^" >> $SED2
XX fi
XXfi
XXif [ -f /bin/cc ]
XXthen
XX echo "s^>cc<^/bin/cc^" >> $SED2
XXelse
XX echo $nflag "Where does the 'C' compiler live? " $cflag
XX read answer
XX if [ "$answer" = "" ]
XX then
XX cat << THE_END
XXI hope you realize that without a "C" compiler there's no point in doing any
XXof this. If we can't compile anything then this is just so much disk filler.
XXIn fact, thinking about it, let's just quit right now.
XXTHE_END
XX exit 1
XX fi
XX if [ -f $answer ]
XX then
XX echo "s^>cc<^$answer^" >> $SED2
XX else
XX cat << THE_END
XXI couldn't find what you specified, pal. I hope you realize that without a
XX"C" compiler there's no point in doing any of this. If we can't compile
XXanything then this system is just so much disk filler.
XXIn fact, thinking about it, let's just quit right now.
XXTHE_END
XX exit 1
XX fi
XXfi
XXecho "s^>rm<^$rm -f^" >> $SED2
XXif [ -f /bin/mv ]
XXthen
XX echo "s^>mv<^/bin/mv -f^" >> $SED2
XXelse
XX echo "s^>mv<^mv -f^" >> $SED2
XXfi
XXif [ -f /bin/cp ]
XXthen
XX echo "s^>cp<^/bin/cp^" >> $SED2
XXelse
XX echo "s^>cp<^cp^" >> $SED2
XXfi
XXcat << END
XXThat's it. Just have to do some patching up and such...hang loose for a
XXminute or two, please...
XXEND
XX# process the three Makefiles accordingly...
XXecho "1 - processing the file \"Makefile\"..."
XXcat Makefile.mstr | sed -f $SED2 > Makefile
XXecho "2 - processing the file \"src/Makefile\"..."
XXcat src/Makefile.mstr | sed -f $SED2 > src/Makefile
XXecho "3 - processing the file \"utils/Makefile\"..."
XXcat utils/Makefile.mstr | sed -f $SED2 > utils/Makefile
XX# then filter the sysdefs file through the sed script we've created!
XXecho "Finally, processing the file \"hdrs/sysdefs.h\"..."
XXif [ -f hdrs/sysdefs.h ]
XXthen
XX mv hdrs/sysdefs.h hdrs/sysdefs.old
XXfi
XXcat hdrs/sysdefs.master | sed -f $SED1 > hdrs/sysdefs.h
XXecho Done\!
XX$rm -f $SED1 $SED2
XXexit 0
XXEND_OF_FILE
XXchars=`cat Configure.sh | wc -c`
XXif [ $chars -ne 19263 ]
XXthen
XX echo File damaged in transit...should be 19263 bytes, is $chars instead
XX echo I suggest you check it closely...
XXfi
XX#---------------------------------
XX# File Elm/Makefile.mstr is new!
XXecho File Elm/Makefile.mstr is new - extracting...
XXif [ -f Makefile.mstr ]
XXthen
XX echo File \'Makefile.mstr\' is new, but you already have something called that\!
XX echo I\'m going to move your file to \'Makefile.mstr.old\'...
XX /bin/mv -f Makefile.mstr Makefile.mstr.old
XXelse
XX echo Extracting new file \'Makefile.mstr\'
XXfi
XXcat > Makefile.mstr << 'END_OF_FILE'
XX#
XX# Makefile for the entire ELM mail system
XX#
XX# (C) Copyright 1986, Dave Taylor
XX#
XX# Last modification: July 14th, 1986
XXSHELL=/bin/sh
XX
XX#########################
XX#
XX# The following entries need to be customized for the local site:
XX# The first is the address of the data-cassette drive to allow
XX# easy tape copies to be made, and the second is the final location
XX# that all the software should be installed in when 'make install'
XX# is run.
XX#
XX#########################
XXTAPE= >tapeunit<
XXDEST= >dest-dir<
XXLIB= /usr/local/lib
XXMAN= /usr/man/man1
XXCATMAN= /usr/man/cat1
XXSHAR= /usr/local/bin/shar -s 60000
XX# See the Configuration Guide for further information on this stuff;
XX#
XX# if on a Berkeley system:
XX# DEFINE = -DBSD
XX# LIB2 = -lcurses
XX# else if on a UTS system:
XX# DEFINE = -DUTS
XX# LIB2 = -la
XX# else if on a Sun system:
XX# DEFINE = "-DBSD -DSUN"
XX# LIB2 = -lcurses
XX# else if on a Pyramid system:
XX# DEFINE = "-DBSD -DNO_VAR_ARGS"
XX# LIB2 = -lcurses
XX# otherwise;
XX DEFINE = >os-define<
XX LIB2 = >lib2<
XX# If you're on ACSnet (Australia) you'll want to define
XX# the following;
XX# DEFINE="${DEFINE} -DACSNET"
XX#########################
XXLIBS= -ltermcap
XXCFLAGS= -O
XXCC= >cc<
XXRM= >rm<
XXMV= >mv<
XXCP= >cp<
XX# if you want to use "nroff", change this...
XXFORMATTER = >troff<
XXTBL = >tbl<
XXDOCS= Config.guide Users.guide Ref.guide Alias.guide elm.1 from.1 \
XX printmail.1 newalias.1 newmail.1 answer.1 messages.1 \
XX grabalias.1 fastmail.1 readmsg.1 autoreply.1 wnewmail.1 \
XX trim-headers.1
XXUTILSRC= utils/answer.c utils/arepdaemon.c utils/autoreply.c \
XX utils/fastmail.c utils/from.c utils/newalias.c \
XX utils/newmail.c utils/printmail.c utils/readmsg.c utils/wnewmail.c \
XX utils/trim-headers
XXELMSRC= src/addr_utils.c src/alias.c src/aliasdb.c src/aliaslib.c \
XX src/args.c src/bounceback.c src/connect_to.c src/curses.c \
XX src/date.c src/delete.c src/domains.c src/edit.c src/encode.c \
XX src/errno.c src/file.c src/file_utils.c src/fileio.c src/hdrconfg.c \
XX src/help.c src/initialize.c src/input_utils.c src/leavembox.c \
XX src/mailmsg1.c src/mailmsg2.c src/mailtime.c src/mkhdrs.c \
XX src/elm.c src/newmbox.c src/notesfile.c src/opt_utils.c \
XX src/output_utils.c src/pattern.c src/quit.c src/read_rc.c \
XX src/remail.c src/reply.c src/return_addr.c src/savecopy.c \
XX src/screen.c src/showmsg.c src/signals.c src/softkeys.c \
XX src/strings.c src/syscall.c src/utils.c src/validname.c \
XX src/calendar.c src/sort.c src/getopt.c src/string2.c \
XX src/builtin.c
XX################
XXall: bin/elm utils
XX @echo Everything is up to date!
XXdocumentation: doc/Users.fmtd doc/Ref.fmtd doc/Config.fmtd doc/Alias.fmtd
XX
XXdoc/Users.fmtd: doc/Users.guide
XX ${TBL} doc/Users.guide | ${FORMATTER} -mm > doc/Users.fmtd
XXdoc/Ref.fmtd: doc/Ref.guide
XX ${FORMATTER} -mm doc/Ref.guide > doc/Ref.fmtd
XXdoc/Config.fmtd: doc/Config.guide
XX ${TBL} doc/Config.guide | ${FORMATTER} -mm > doc/Config.fmtd
XXdoc/Alias.fmtd: doc/Alias.guide
XX ${FORMATTER} -mm doc/Alias.guide > doc/Alias.fmtd
XXbin/elm: ${ELMSRC}
XX cd src;make DEFINE=${DEFINE} LIB2=${LIB2} ../bin/elm; cd ..
XX
XXbin/utils: ${UTILSRC}
XX cd utils; make DEFINE=${DEFINE} LIBS=${LIB2} all; cd ..
XX @touch bin/utils
XXinstall: all
XX ${CP} bin/elm ${DEST}/elm
XX ${CP} bin/from ${DEST}/from
XX ${CP} bin/newalias ${DEST}/newalias
XX ${CP} bin/printmail ${DEST}/printmail
XX ${CP} bin/fastmail ${DEST}/fastmail
XX ${CP} bin/readmsg ${DEST}/readmsg
XX ${CP} bin/newmail ${DEST}/newmail
XX ${CP} bin/wnewmail ${DEST}/wnewmail
XX ${CP} bin/checkalias ${DEST}/checkalias
XX ${CP} bin/messages ${DEST}/messages
XX ${CP} bin/trim-headers ${DEST}/trim-headers
XX ${CP} bin/arepdaemon ${DEST}/arepdaemon
XX ${CP} bin/autoreply ${DEST}/autoreply
XX ${RM} ${CATMAN}/elm.1 ${CATMAN}/from.1 \
XX ${CATMAN}/newalias.1 ${CATMAN}/printmail.1 \
XX ${CATMAN}/fastmail.1 ${CATMAN}/elm.1 \
XX ${CATMAN}/readmsg.1 ${CATMAN}/answer.1 \
XX ${CATMAN}/newmail.1 ${CATMAN}/checkalias.1 \
XX ${CATMAN}/autoreply.1 ${CATMAN}/wnewmail.1 \
XX ${CATMAN}/messages.1 ${CATMAN}/trim-headers.1
XX ${CP} doc/elm.1 ${MAN}/elm.1
XX ${CP} doc/from.1 ${MAN}/from.1
XX ${CP} doc/newalias.1 ${MAN}/newalias.1
XX ${CP} doc/printmail.1 ${MAN}/printmail.1
XX ${CP} doc/fastmail.1 ${MAN}/fastmail.1
XX ${CP} doc/checkalias.1 ${MAN}/checkalias.1
XX ${CP} doc/messages.1 ${MAN}/messages.1
XX ${CP} doc/trim-headers.1 ${MAN}/trim-headers.1
XX ${CP} doc/autoreply.1 ${MAN}/autoreply.1
XX ${CP} doc/answer.1 ${MAN}/answer.1
XX ${CP} doc/readmsg.1 ${MAN}/readmsg.1
XX ${CP} doc/newmail.1 ${MAN}/newmail.1
XX ${CP} doc/wnewmail.1 ${MAN}/wnewmail.1
XX ${CP} doc/helpfile ${LIB}/elm-help.main
XX chmod a+rx ${DEST}/from ${DEST}/newalias \
XX ${DEST}/printmail ${DEST}/fastmail \
XX ${DEST}/readmsg ${DEST}/trim-headers \
XX ${DEST}/checkalias ${DEST}/autoreply \
XX ${DEST}/newmail ${DEST}/wnewmail ${DEST}/messages
XX chgrp mail ${DEST}/elm
XX chmod 2755 ${DEST}/elm
XX @echo Done with installation.
XXrmt-install: remote-defined
XX @echo " "
XX @echo Warning: This assumes "install" has been done on the
XX @echo " remote machine. If this is not the case you"
XX @echo " better hit BREAK quickly!"
XX @echo " "
XX ${CP} ${REMOTE}${DEST}/elm ${DEST}/elm
XX ${CP} ${REMOTE}${DEST}/from ${DEST}/from
XX ${CP} ${REMOTE}${DEST}/newalias ${DEST}/newalias
XX ${CP} ${REMOTE}${DEST}/printmail ${DEST}/printmail
XX ${CP} ${REMOTE}${DEST}/fastmail ${DEST}/fastmail
XX ${CP} ${REMOTE}${DEST}/readmsg ${DEST}/readmsg
XX ${CP} ${REMOTE}${DEST}/wnewmail ${DEST}/wnewmail
XX ${CP} ${REMOTE}${DEST}/newmail ${DEST}/newmail
XX ${CP} ${REMOTE}${DEST}/checkalias ${DEST}/checkalias
XX ${CP} ${REMOTE}${DEST}/messages ${DEST}/messages
XX ${CP} ${REMOTE}${DEST}/arepdaemon ${DEST}/arepdaemon
XX ${CP} ${REMOTE}${DEST}/autoreply ${DEST}/autoreply
XX ${RM} ${CATMAN}/elm.1 \
XX ${CATMAN}/from.1 \
XX ${CATMAN}/newalias.1 \
XX ${CATMAN}/printmail.1 \
XX ${CATMAN}/fastmail.1 \
XX ${CATMAN}/checkalias.1 \
XX ${CATMAN}/autoreply.1 \
XX ${CATMAN}/readmsg.1 \
XX ${CATMAN}/answer.1 \
XX ${CATMAN}/newmail.1 \
XX ${CATMAN}/wnewmail.1 \
XX ${CATMAN}/elm.1
XX ${CP} ${REMOTE}${MAN}/elm.1 ${MAN}/elm.1
XX ${CP} ${REMOTE}${MAN}/from.1 ${MAN}/from.1
XX ${CP} ${REMOTE}${MAN}/newalias.1 ${MAN}/newalias.1
XX ${CP} ${REMOTE}${MAN}/printmail.1 ${MAN}/printmail.1
XX ${CP} ${REMOTE}${MAN}/fastmail.1 ${MAN}/fastmail.1
XX ${CP} ${REMOTE}${MAN}/checkalias.1 ${MAN}/checkalias.1
XX ${CP} ${REMOTE}${MAN}/autoreply.1 ${MAN}/autoreply.1
XX ${CP} ${REMOTE}${MAN}/readmsg.1 ${MAN}/readmsg.1
XX ${CP} ${REMOTE}${MAN}/answer.1 ${MAN}/answer.1
XX ${CP} ${REMOTE}${MAN}/wnewmail.1 ${MAN}/wnewmail.1
XX ${CP} ${REMOTE}${MAN}/newmail.1 ${MAN}/newmail.1
XX ${CP} ${REMOTE}${LIB}/elm-help.main ${LIB}/elm-help.main
XX chmod a+rx ${DEST}/from ${DEST}/newalias ${DEST}/printmail \
XX ${DEST}/fastmail ${DEST}/readmsg \
XX ${DEST}/checkalias ${DEST}/autoreply ${DEST}/wnewmail \
XX ${DEST}/newmail ${DEST}/messages
XX chgrp mail ${DEST}/elm
XX chmod 2755 ${DEST}/elm
XX @echo everything is installed based on files from ${REMOTE}
XXsource:
XX tar cvf ${TAPE} bin/makelisting utils/*.c src/*.c doc/* hdrs/* \
XX Instructions Makefile UNIQ_SYMS README utils/Makefile src/Makefile \
XX test/* utils/*.awk CHANGES Overview
XX# Note that the production for SHAR assumes a pretty snazzy shar program
XX# that can break down the output into a number of files as needed...
XX# The current threshold is 60,000 bytes per file, for email/netnews
XXshar:
XX ${SHAR} *
XXlint:
XX lint ${UTILSRC} > lint.out
XXlisting:
XX @echo listing all source files
XX @/bin/echo \\f > LISTING
XX @echo adding file 'README'...
XX @cat README >> LISTING
XX @/bin/echo \\f >> LISTING
XX @echo adding file 'Instructions...
XX @cat Instructions >> LISTING
XX @/bin/echo \\f >> LISTING
XX @echo adding file 'Makefile'...
XX @cat Makefile >> LISTING
XX @bin/makelisting Makefile ${UTILSRC} src/Makefile src/*.c hdrs/*.h
XX @echo LISTING generated.
XXelm-listing:
XX @echo listing just the ELM system source files
XX @echo ' ' > src/LISTING
XX @cd src ; make listing ; cd ..
XX @echo LISTING generated \(in directory /src\).
XXclean:
XX @cd src ; make clean ; cd ..
XX @cd utils; make clean ; cd ..
XX @echo All spurious files removed
XXelm: bin/elm
XXutils: bin/utils
XXutils/checkalias:
XXutils/messages:
XXdoc/Users.guide:
XXdoc/Ref.guide:
XXdoc/Alias.guide:
XXdoc/Config.guide:
XXremote-defined:
XX @if ( "${REMOTE}" == "" ) then; \
XX echo " " ; \
XX echo "You need to define 'REMOTE' as the remote file system" ; \
XX echo "for this particular command. The easiest way to do " ; \
XX echo "this is to type:" ;\
XX echo " make -f <makefile> REMOTE=<remote file system> rmt-install" ; \
XX echo " " ; \
XX endif
XX @if ( "${REMOTE}" == "" ) exit 1
XXEND_OF_FILE
XXchars=`cat Makefile.mstr | wc -c`
XXif [ $chars -ne 8850 ]
XXthen
XX echo File damaged in transit...should be 8850 bytes, is $chars instead
XX echo I suggest you check it closely...
XXfi
XXecho done with autodiff, part 2
XXexit 0
XX\SHAR_EOF
@//E*O*F Edit3//
chmod u=rw,g=rw,o=rw $OUT
echo Inspecting for damage in transit...
temp=/tmp/sharin$$; dtemp=/tmp/sharout$$
trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
cat > $temp <<\!!!
1276 4208 29970 Edit3
!!!
wc Edit3 | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp
if test -s $dtemp ; then
echo "Ouch [diff of wc output]:"
cat $dtemp
STATUS=1
elif test $STATUS = 0 ; then
echo "No problems found."
else
echo "WARNING -- PROBLEMS WERE FOUND..."
fi
exit $STATUS
More information about the Mod.sources
mailing list