2.9BSD/usr/src/ucb/MAKE

CFLAGS='-O -s'
D=/usr/ucb
: DESTDIR=
if [ $DESTDIR ]
then DD="DESTDIR=$DESTDIR"; export DESTDIR
fi
arg="$DD all"
C=all
L=
TC=-ltermcap
case $1 in
-f)	CRT=/lib/fcrt0.o;
	FP=-f;
	;;
-34)	PDP=34;
	FP=;
	CRT=/lib/crt0.o;
	FMT=-n;
	;;
-40)	PDP=40;
	FP=-f;
	CRT=/lib/fcrt0.o;
	FMT=-n;
	;;
-70)	PDP=70;
	FP=;
	FMT=-i;
	;;
*)	echo 'Usage: MAKE -40|-34|-70 [ -cp ] [ -f ] name ...';
	echo ' -40 uses no separate I/D and loads floating point interpreter;';
	echo ' -34 uses no separate I/D;';
	echo ' -70 uses separate I/D as appropriate.';
	echo ' -f loads floating point interpreter;';
	exit 1;
	;;
esac
shift
for a
do
	cmd=
	cpcmd=
	s=.c
	case $a in
	*.y)	s=.y ;;
	*.s)	s=.s ;;
	*.sh)	s=.sh;;
	esac
	b=`basename $a $s`
	case $b in
	-cp)	C=cp
		arg="$DD cp"
		echo INSTALLING ...
		continue ;;
	esac
	echo ===== $b:
	case $b in

	astags)	cpcmd="cp astags.sh ${DESTDIR}/usr/ucb/astags; chmod +x ${DESTDIR}/usr/ucb/astags" ;;
	bad144) cmd="cc -n $CFLAGS bad144.c -o bad144 $L" ;;
	badsect) cmd="cc -n $CFLAGS badsect.c -o badsect $L" ;;
	catman)	cmd="cc -n $CFLAGS catman.c -o catman $L" ;;
	checknr) cmd="cc -n $CFLAGS checknr.c -o checknr $L" ;;
	checkobj) cmd="cc -n $CFLAGS checkobj.c -o checkobj $L" ;;
	chfn)	cmd="cc -n $CFLAGS chfn.c -o chfn $L" ;;
	chsh)	cmd="cc -n $CFLAGS chsh.c -o chsh $L" ;;
	ckdir)	cmd="cc -n $CFLAGS ckdir.c -o ckdir $L" ;;
	clear)	cmd="cc -n $CFLAGS clear.c $TC -o clear $L" ;;
	clock)	cmd="cc -n $CFLAGS clock.c -o clock $L" ;;
	colcrt)	cmd="cc -n $CFLAGS colcrt.c -o colcrt $L" ;;
	colrm)	cmd="cc -n $CFLAGS colrm.c -o colrm $L" ;;
	ctags)	cmd="cc -n $CFLAGS ctags.c -o ctags $L" ;;
	cxref)	cpcmd="cp cxref.sh ${DESTDIR}/usr/ucb/cxref; chmod +x ${DESTDIR}/usr/ucb/cxref" ;;
	daytime) cmd="cc -n $CFLAGS daytime.c -o daytime $L" ;;
	double)	cmd="cc -n $CFLAGS double.c -o double $L" ;;
	expand)	cmd="cc -n $CFLAGS expand.c -o expand $L" ;;
	finger)	cmd="cc -n $CFLAGS finger.c -o finger $L" ;;
	fleece)	cmd="cc -n $CFLAGS fleece.c -o fleece $L" ;;
	fold)	cmd="cc -n $CFLAGS fold.c -o fold $L" ;;
	from)	cmd="cc -n $CFLAGS from.c -o from $L" ;;
	getNAME) cmd="cc -n $CFLAGS getNAME.c -o getNAME $L" ;;
	gets)	cmd="cc -n $CFLAGS gets.c -o gets $L" ;;
	grep)	cmd="cc -n $CFLAGS grep.c -o grep $L" ;;
	head)	cmd="cc -n $CFLAGS head.c -o head $L" ;;
	hostname)	cmd="cc -n $CFLAGS hostname.c -o hostname $L" ; D=/etc;;
	la)	cmd="cc -n $CFLAGS $FP la.c -o la $L" ;;
	last)	cmd="cc -n $CFLAGS last.c -o last $L" ;;
	lastcomm) cmd="cc -n $CFLAGS $FP lastcomm.c -o lastcomm $L" ;;
	leave)	cmd="cc -n $CFLAGS leave.c -o leave $L" ;;
	lock)	cmd="cc -n $CFLAGS lock.c -o lock $L" ;;
	makewhatis) cpcmd="cp makewhatis.sh ${DESTDIR}/usr/lib/makewhatis; chmod +x ${DESTDIR}/usr/lib/makewhatis" ;;
	mkstr)	cmd="cc -n $CFLAGS mkstr.c -o mkstr $L" ;;
	more)	cmd="cc -n $CFLAGS more.c $TC -o more $L" ;;
	mt)	cmd="cc -n $CFLAGS mt.c -o mt $L" ;;
	pq)	cmd="cc -n $CFLAGS $FP pq.c -o pq $L" ;;
	print)	cpcmd="cp print.sh ${DESTDIR}/usr/ucb/print; chmod +x ${DESTDIR}/usr/ucb/print" ;;
	printenv) cmd="cc -n $CFLAGS printenv.c -o printenv $L" ;;
	prmail)	cmd="cc -n $CFLAGS prmail.c -o prmail $L" ;;
	pti)	cmd="cc -n $CFLAGS pti.c -o pti $L" ;;
	pubindex) cpcmd="cp pubindex.sh ${DESTDIR}/usr/ucb/pubindex; chmod +x ${DESTDIR}/usr/ucb/pubindex" ;;
	renice)	cmd="cc -n $CFLAGS renice.c -o renice $L" ;;
	rewind)	cmd="cc -n $CFLAGS rewind.c -o rewind $L" ;;
	script)	cmd="cc -n $CFLAGS script.c -o script $L" ;;
	see) cpcmd="cp see.sh ${DESTDIR}/usr/ucb/see; chmod +x ${DESTDIR}/usr/ucb/see" ;;
	setquota) cmd="cc -n $CFLAGS setquota.c -o setquota $L" ;;
	soelim)	cmd="cc -n $CFLAGS soelim.c -o soelim $L" ;;
	sq)	cmd="cc -n $CFLAGS sq.c -o sq $L" ;;
	strings) cmd="cc -n $CFLAGS strings.c -o strings $L" ;;
	submit)	cmd="cc -n $CFLAGS submit.c -o submit $L" ;;
	sysline) cmd="cc -n $FP $CFLAGS sysline.c -o sysline -lcurses -ltermcap $L" ;;
	tod)	cmd="cc -n $CFLAGS tod.c -o tod $L" ;;
	tra) cpcmd="cp tra.sh ${DESTDIR}/usr/ucb/tra; chmod +x ${DESTDIR}/usr/ucb/tra" ;;
	ul)	cmd="cc -n $CFLAGS ul.c -o ul -ltermcap $L" ;;
	unexpand) cmd="cc -n $CFLAGS unexpand.c -o unexpand $L" ;;
	unifdef) cmd="cc -n $CFLAGS unifdef.c -o unifdef $L" ;;
	untmp)	cmd="cc -n $CFLAGS untmp.c -o untmp $L" ;;
	users)	cmd="cc -n $CFLAGS users.c -o users $L" ;;
	uudecode) cmd="cc -n $CFLAGS uudecode.c -o uudecode $L" ;;
	uuencode) cmd="cc -n $CFLAGS uuencode.c -o uuencode $L" ;;
	uusend)	cmd="cc -n $CFLAGS uusend.c -o uusend $L" ;;
	vmstat)	cmd="cc -n $CFLAGS vmstat.c -o vmstat $L" ;;
	w)	cmd="cc -n $CFLAGS w.c -o w $L" ;;
	what)	cmd="cc -n $CFLAGS what.c -o what $L" ;;
	whereis) cmd="cc -n $CFLAGS whereis.c -o whereis $L" ;;
	which)	cpcmd="cp which.sh ${DESTDIR}/usr/ucb/which; chmod +x ${DESTDIR}/usr/ucb/which" ;;
	whoami)	cmd="cc -n $CFLAGS whoami.c -o whoami $L" ;;
	xstr)	cmd="cc -n $CFLAGS xstr.c -o xstr $L" ;;

	Mail)	echo "should probably edit v7.local.h and configdefs.c first."
		echo "Making job-control version."
		if [ $PDP = 70 ] 
		then (set -x; cd Mail; make $arg clean)
		else (set -x; cd Mail; make -f Ovmakefile $arg clean)
		fi
		continue;;
	berknet) echo "Berknet should be configured manually"; continue;;
	compact) (set -x; cd compact; make $arg clean); continue;;
	csh)	if [ $PDP = 70 ] 
		then (set -x; cd csh; make $arg clean)
		else (set -x; cd csh; make -f Ovmakefile $arg clean)
		fi
		continue;;
	delivermail) echo "Delivermail should be configured manually (cf. sendmail)";continue;;
	dump) echo "Dump should be made and installed manually";continue;;
	error)	(set -x; cd error; make $arg clean); continue;;
	ex)	echo "Making ex version 3"
		(set -x; cd ex/ex3; make PDP=$PDP FP=$FP $arg clean); continue;;
	eyacc)	if [ $PDP = 70 ]
		then (set -x; cd eyacc; make $arg clean)
		else (set -x; cd eyacc; make -f Ovmakefile $arg clean)
		fi
		continue;;
	indent)	(set -x; cd indent; make FP=$FP $arg clean); continue;;
	l11)	(set -x; cd l11; make $arg clean); continue;;
	libndir)echo "Look through the libndir directory before making libndir"
		continue ;;
	lisp)	echo "Look through the lisp directory before making lisp"
		continue ;;
	lpr)	(set -x; cd lpr; make $arg clean); continue;;
	m11)	if [ $PDP = 70 ]
		then (set -x; cd m11; make $arg clean)
		else echo at.sml must be edited for nonseparate I/D CPUs
		fi
		continue;;
	me)	(set -x; cd me; make $arg clean); continue;;
	msgs)	(set -x; cd msgs; make $arg clean); continue;;
	oldcsh)	echo "oldcsh isn\'t usually installed"
		echo "unless you're not running job control."
		echo "With job control, /bin/csh is linked to /bin/oldcsh."
		continue;;
	pascal)
		if [ $PDP = 70 ]
		then (set -x; cd pascal/pi; make $arg clean)
		else (set -x; cd pascal/pi; make -f Ovmakefile STARTUP=$CRT $arg clean)
		fi
		(set -x; cd pascal/px; make PDP=$PDP $arg clean)
		(set -x; cd pascal/pxp; make FMT=$FMT $arg clean);
		continue;;
	pi)	if [ $PDP = 70 ]
		then (set -x; cd pascal/pi; make $arg clean)
		else (set -x; cd pascal/pi; make -f Ovmakefile STARTUP=$CRT $arg clean)
		fi
		continue;;
	px)	(set -x; cd pascal/px; make PDP=$PDP $arg clean); continue;;
	pxp)	(set -x; cd pascal/pxp; make FMT=$FMT $arg clean); continue;;
	pix)	(set -x; cd pascal/pi; make pix); continue;;
	pwhash)	echo "Look at the pwhash system before installing"
		continue ;;
	ranm)	(set -x; cd ranm; make $arg clean); continue;;
	sendmail) echo "Sendmail should be configured manually (cf. delivermail)";continue;;
	termcap) echo "Edit the reorder script, then run \"make termcap\""
		continue ;;
	termlib) (set -s; cd termlib; make $arg $clean); continue;;
	tset)	(set -x; cd tset; make $arg clean); continue;;
	vgrind)	(set -x; cd vgrind; make $arg clean); continue;;
	vsh)	(set -x; cd vsh; make $arg clean); continue;;

	*)	echo "Don't know how to make $b."
		continue ;;
	esac || continue
	case $cmd in
	"")	;;
	*)	echo $cmd
		$cmd ;;
	esac || continue
	case $C in
	cmp)	echo cmp $b ${DESTDIR}$D/$b
		cmp $b ${DESTDIR}$D/$b
		;;
	cp)	if [ -n $cpcmd ]
		then
			echo $cpcmd
			sh -c "$cpcmd"
		else
			echo cp $b ${DESTDIR}$D/$b \; rm $b
			cp $b ${DESTDIR}$D/$b && rm $b
		fi
		;;
	esac
done