# cmake -- make commands that are a single file
# This script runs faster than a huge makefile and is easier to manage
# than a sea of *.mk files or directories'
FLAGS="-O"
CC=cc
C=
for a in $*
do
	s=.c
	case $a in
	*.y)	s=.y ;;
	*.s)	s=.s ;;
	*.sh)	s=.sh ;;
	esac
	b=`basename $a $s`
	D=/bin
	M=a+x
	echo $a:
	case $b in
	-cmp)	C=cmp
		continue ;;
	-cp)	C=cp
		FLAGS="$FLAGS -s"
		FLAGS2="-s"
		continue ;;
	-test)	C=test
		continue ;;
	ac) 	cc $FLAGS ac.c -o ac; D=/etc ;;
	accton)	$CC $FLAGS accton.c -o accton; D=/etc ;;
	apply)  $CC $FLAGS apply.c -o apply ; D=/usr/bin;;
	ar)	$CC $FLAGS ar.c -o ar ;;
	at)	$CC $FLAGS at.c -o at ;;
	atrun)	$CC $FLAGS atrun.c -o atrun; D=/usr/lib ;;
	basename)	$CC $FLAGS basename.c -o basename ;;
	cal)	$CC $FLAGS cal.c -o cal ;D=/usr/bin;;
	calendar)	$CC $FLAGS calendar.c -o calendar; D=/usr/lib ;;
	cat)	$CC $FLAGS cat.c -o cat ;;
	cb)	$CC $FLAGS cb.c -o cb ;D=/usr/bin;;
	cc)	$CC $FLAGS cc.c -o cc ;;
	checkeq)	$CC $FLAGS checkeq.c -o checkeq ;D=/usr/bin;;
	chgrp)	$CC $FLAGS chgrp.c -o chgrp ;;
	chmod)	$CC $FLAGS chmod.c -o chmod ;;
	chown)	$CC $FLAGS chown.c -o chown ;;
	clear)	$CC $FLAGS clear.c -ltermcap -o clear ;D=/usr/bin;;
	clri)	$CC $FLAGS clri.c -o clri; D=/etc ;;
	cmp)	$CC $FLAGS cmp.c -o cmp ;;
	col)	$CC $FLAGS col.c -o col ;D=/usr/bin;;
	comm)	$CC $FLAGS comm.c -o comm ;;
	compress)	$CC $FLAGS compress.c -o compress;D=/usr/bin;;
	coreid) $CC $FLAGS coreid.c -o coreid ;;
	cp)	$CC $FLAGS cp.c -o cp ;;
	cpio)	$CC $FLAGS cpio.c  -o cpio ;;
	cron)	$CC $FLAGS cron.c -o cron; D=/etc ;;
	crypt)	$CC $FLAGS crypt.c -o crypt ;D=/usr/bin;;
	ctags)	$CC $FLAGS ctags.c -o ctags ;D=/usr/bin;;
	cu)	$CC $FLAGS cu.c -o cu ;D=/usr/bin;;
	cut)	$CC $FLAGS cut.c -o cut ;D=/usr/bin;;
	date)	$CC $FLAGS date.c -o date ;;
	dcheck)	$CC -s -n dcheck.c -o dcheck ;;
	dd)	$CC -s -n dd.c -o dd ;;
	deroff)	$CC $FLAGS deroff.c -o deroff ;D=/usr/bin;;
	df)	$CC $FLAGS df.c -o df ;;
	diff)	$CC $FLAGS diff.c -o diff ;;
	diff3)	$CC $FLAGS diff3.c -o diff3; D=/usr/lib ;;
	diffh)	$CC $FLAGS diffh.c -o diffh; D=/usr/lib ;;
	diffmon)	$CC $FLAGS diffmon.c -o diffmon;D=/usr/bin;;
	dmesg)	$CC $FLAGS dmesg.c -o dmesg; D=/etc ;;
	doctype) cp doctype.sh doctype;D=/usr/bin;;
	dropmon)	$CC $FLAGS dropmon.c -o dropmon;D=/usr/bin;;
	du)	$CC $FLAGS du.c -o du ;;
	echo)	$CC $FLAGS echo.c -o echo ;;
	ed)	$CC $FLAGS ed.c -o ed ;;
	egrep)	yacc egrep.y && mv y.tab.c egrep.c && $CC $FLAGS egrep.c -o egrep && rm egrep.c ;;
	enstat)	$CC $FLAGS enstat.c -o enstat;;
	expr)	yacc expr.y && mv y.tab.c expr.c && $CC $FLAGS expr.c -o expr && rm expr.c ;;
	fgrep)	$CC -s -n fgrep.c -o fgrep ;;
	file)	$CC $FLAGS file.c -o file ;;
	find)	$CC $FLAGS find.c -o find ;;
	finger)	$CC $FLAGS finger.c -o finger ;D=/usr/bin;;
	fs)	$CC $FLAGS fs.c -o fs;D=/usr/bin;;
#	fsck coredumps when compile -n (???)
	fsck)	$CC -s -N fsck.c -o fsck; D=/etc ;;
	getNAME) $CC $FLAGS getNAME.c -o getNAME; D=/usr/lib;;
	getty)	$CC $FLAGS getty.c -o getty; D=/etc ;;
	grep)	$CC $FLAGS grep.c -o grep ;;
	halt)	$CC -s -n halt.c -o halt; D=/etc ;;
	hostname) echo 'cat /etc/whoami' >hostname;;
	icheck)	$CC -s -n icheck.c -o icheck ;;
	init)	$CC $FLAGS  init.c -o init; D=/etc ;;
	iostat)	$CC $FLAGS iostat.c -o iostat ;;
	join)	$CC $FLAGS join.c -o join ;D=/usr/bin;;
	kill)	$CC $FLAGS kill.c -o kill ;;
	last)	$CC $FLAGS last.c -o last ;D=/usr/bin;;
	lastcomm) $CC $FLAGS lastcomm.c -o lastcomm ;D=/usr/bin;;
	lc)	$CC $FLAGS  ucbls.c -o lc;;
	ld)	$CC $FLAGS ld.c -o ld ;;
	link)	$CC $FLAGS link.c -o link; D=/etc;;
	ln)	$CC $FLAGS ln.c -o ln ;;
	login)	$CC $FLAGS login.c -o login ;;
	look)	$CC $FLAGS look.c -o look ;D=/usr/bin;;
	ls)	$CC $FLAGS  ls.c -o ls ;;
	mail)	$CC $FLAGS mail.c -o mail ;D=/usr/bin;;
	makekey)	$CC $FLAGS makekey.c -o makekey; D=/usr/lib ;;
	makewhatis)
		cp makewhatis.sh makewhatis
		D=/usr/lib
		;;
	man)	$CC $FLAGS man.c -o man;D=/usr/bin;;
	memstat)	$CC $FLAGS memstat.c -o memstat;;
	mesg)	$CC $FLAGS mesg.c -o mesg ;D=/usr/bin;;
	mkdir) $CC $FLAGS mkdir.c -o mkdir; M=u+s,$M;;
	mkfs)	$CC $FLAGS mkfs.c -o mkfs; D=/etc ;;
	mknod)	$CC $FLAGS mknod.c -o mknod; D=/etc ;;
	mount)	$CC $FLAGS mount.c -o mount; D=/etc ;;
	mv)	$CC $FLAGS mv.c -o mv; M=u+s,$M;;
	ncheck)	$CC -s -n ncheck.c -o ncheck ;;
	newgrp)	$CC $FLAGS newgrp.c -o newgrp ;D=/usr/bin;;
	newer)	$CC $FLAGS newer.c -o newer;D=/usr/bin;;
	news)	$CC $FLAGS news.c -o news ;D=/usr/bin;;
	nice)	$CC $FLAGS nice.c -o nice ;;
	nm)	$CC $FLAGS nm.c -o nm ;D=/usr/bin;;
	nohup)	cp nohup.sh nohup ;;
	od)	$CC $FLAGS od.c -o od ;;
	passwd)	$CC $FLAGS passwd.c -o passwd; M="$M,u+s";D=/usr/bin;;
	pr)	$CC $FLAGS pr.c -o pr ;D=/usr/bin;;
	prec)	cp prec.sh prec;D=/usr/bin;;
#	prof)	$CC $FLAGS -Dplot prof.c -lplot -o prof ;D=/usr/bin;;
	prof)	$CC $FLAGS  prof.c -o prof ;D=/usr/bin;;
	ps)	$CC $FLAGS ps.c -o ps ;;
	pstat)	$CC $FLAGS pstat.c -o pstat ;;
	ptx)	$CC $FLAGS ptx.c -o ptx ;D=/usr/bin;;
	pwd)	$CC $FLAGS pwd.c -o pwd ;;
	quot)	$CC $FLAGS quot.c -o quot ;D=/usr/bin;;
	random)	$CC $FLAGS random.c -o random ;D=/usr/bin;;
	ranlib) $CC $FLAGS ranlib.c -o ranlib ;D=/usr/bin;;
	reboot)	$CC $FLAGS reboot.c -o reboot; D=/etc ;;
	rev)	$CC $FLAGS rev.c -o rev ;D=/usr/bin;;
	rlogin)	$CC $FLAGS rlogin.c -lin -o rlogin;D=/usr/bin;;
	rm)	$CC $FLAGS rm.c -o rm ;;
	rmdir)	$CC $FLAGS rmdir.c -o rmdir; M=u+s,$M;;
	sa)	$CC $FLAGS sa.c -o sa ;D=/usr/bin;;
	savecore) $CC $FLAGS savecore.c -o savecore ; D=/etc;;
	script)	$CC $FLAGS script.c -o script;D=/usr/bin;;
	settz) cp settz.sh settz; chmod +x settz; D=/etc;;
	seq)	$CC $FLAGS seq.c -o seq ;;
	showq)	$CC $FLAGS showq.c -o showq;;
	sid)	$CC $FLAGS sid.c -o sid;;
	sidconf)$CC $FLAGS sidconf.c -o sidconf;;
	size)	$CC $FLAGS size.c -o size ;D=/usr/bin;;
	sleep)	$CC $FLAGS sleep.c -o sleep ;;
	sort)	$CC -s -n sort.c -o sort ;D=/usr/bin;;
	split)	$CC $FLAGS split.c -o split ;D=/usr/bin;;
	srec)	$CC $FLAGS srec.c -o srec ;D=/usr/bin;;
	strip)	$CC $FLAGS2 strip.c -o strip ;D=/usr/bin;;
	strings) $CC $FLAGS strings.c -o strings ;D=/usr/bin;;
	stty)	$CC $FLAGS stty.c -o stty ;;
	su)	$CC $FLAGS su.c -o su ; M=u+s;;
	sum)	$CC $FLAGS sum.c -o sum ;;
	sw)	$CC $FLAGS sw.c -o sw ;D=/usr/bin;;
	sync)	$CC $FLAGS sync.c -o sync ;;
	tabs)	$CC $FLAGS tabs.c -o tabs ;D=/usr/bin;;
	tail)	$CC $FLAGS tail.c -o tail ;;
	tar)	$CC $FLAGS tar.c -o tar;;
	tc)	$CC $FLAGS tc.c -o tc ;D=/usr/bin;;
	tcpstat)$CC $FLAGS tcpstat.c -lin -o tcpstat;;
	tee)	$CC $FLAGS tee.c -o tee ;;
	test)	$CC $FLAGS test.c -o test ;;
	time)	$CC $FLAGS time.c -o time ;;
	touch)	$CC $FLAGS touch.c -o touch ;;
	tr)	$CC $FLAGS tr.c -o tr ;;
	tsort)	$CC $FLAGS tsort.c -o tsort ;D=/usr/bin;;
	tty)	$CC $FLAGS tty.c -o tty ;;
	umount)	$CC $FLAGS umount.c -o umount; D=/etc ;;
	uname) $CC $CFLAGS uname.c -o uname;;
	uncompress) $CC -N $FLAGS compress.c -o uncompress;D=/usr/bin;;
	uniq)	$CC $FLAGS uniq.c -o uniq ;D=/usr/bin;;
	unlink)	$CC $FLAGS unlink.c -o unlink; D=/etc;;
	update)	$CC $FLAGS update.c -o update; D=/etc ;;
	vis)	$CC $FLAGS vis.c -o vis;D=/usr/bin;;
	vpr)	$CC $FLAGS vpr.c -o vpr ;D=/usr/bin;;
	wall)	$CC $FLAGS wall.c -o wall; D=/etc ;;
	watch)	$CC $CFLAGS watch.c -o watch; D=/etc;;
	wc)	$CC $FLAGS wc.c -o wc ;;
	which)	cp which.sh which;D=/usr/bin;;
	who)	$CC $FLAGS who.c -o who ;D=/usr/bin;;
	write)	$CC $FLAGS write.c -o write ;D=/usr/bin;;
#	xcc)	$CC $FLAGS xcc.c -o xcc ;;
	yes)	$CC $FLAGS yes.c -o yes ;D=/usr/bin;;
	zcat)	$CC $FLAGS compress.c -o zcat ;D=/usr/bin;;
	*)	echo "cmake: don't know about $b"
		continue ;;
	esac || continue
	case $C in
	test)	rm -f $b ;; 
	cmp)	cmp $b $D/$b && rm -f $b ;;
	cp)	cp $b $D/$b && rm -f $b && chmod $M $D/$b ;;
	esac
done
