# Makefile for commands/simple.

CC      = mcc
CFLAGS	= -D_MINIX -D_POSIX_SOURCE
CCLD	= $(CC) $(CFLAGS)

%: bin/%
 
# The smx Makefile is somewhat simpler than its Intel Minix counterpart.
# For each command, there is a command to create the executable which
# specifies the stack size to reserve.  The executable is created in the
# bin subdirectory.  The commands to install executables in /bin and
# and /usr/bin are all found in the script sunload (which copies
# files, sets permissions and creates additional hard links if
# necessary).
#
# At present, not all of the commands operate under smx (see the collection
# commented out below).

all:	bin \
	bin/animals \
	bin/ascii \
	bin/at \
	bin/atrun \
	bin/backup \
	bin/banner \
	bin/basename \
	bin/btoa \
	bin/cal \
	bin/calendar \
	bin/cat \
	bin/cdiff \
	bin/cgrep \
	bin/chmem \
	bin/chmod \
	bin/chown \
	bin/ci \
	bin/cksum \
	bin/clr \
	bin/cmp \
	bin/co \
	bin/comic \
	bin/comm \
	bin/compress \
	bin/cp \
	bin/crc \
	bin/cron \
	bin/cut \
	bin/date \
	bin/dd \
	bin/decomp16 \
	bin/df \
	bin/dhrystone \
	bin/diff \
	bin/dirname \
	bin/diskusage \
	bin/du \
	bin/dw \
	bin/echo \
	bin/ed \
	bin/expand \
	bin/expr \
	bin/factor \
	bin/fgrep \
	bin/file \
	bin/find \
	bin/fold \
	bin/fortune \
	bin/fsck \
	bin/fsck1 \
	bin/gather \
	bin/getty \
	bin/gomoku \
	bin/grep \
	bin/head \
	bin/id \
	bin/ifdef \
	bin/inodes \
	bin/install \
	bin/isoread \
	bin/join \
	bin/kill \
	bin/last \
	bin/leave \
	bin/life \
	bin/login \
	bin/look \
	bin/lpr \
	bin/ls \
	bin/mail \
	bin/man \
	bin/men \
	bin/mesg \
	bin/mkdir \
	bin/mkfifo \
	bin/mkfs \
	bin/mknod \
	bin/mkproto \
	bin/modem \
	bin/mount \
	bin/mref \
	bin/mt \
	bin/ncheck \
	bin/od \
	bin/passwd \
	bin/paste \
	bin/pathchk \
	bin/pr \
	bin/prep \
	bin/pretty \
	bin/printenv \
	bin/printroot \
	bin/proto \
	bin/ps \
	bin/pwd \
	bin/pwdauth \
	bin/readall \
	bin/readfs \
	bin/recover \
	bin/remsync \
	bin/rev \
	bin/rmdir \
	bin/roff \
	bin/sed \
	bin/shar \
	bin/size \
	bin/sleep \
	bin/sort \
	bin/split \
	bin/strings \
	bin/strip \
	bin/stty \
	bin/su \
	bin/sum \
	bin/swapfs \
	bin/sync \
	bin/synctree \
	bin/tail \
	bin/tar \
	bin/tee \
	bin/termcap \
	bin/test \
	bin/tget \
	bin/time \
	bin/touch \
	bin/tr \
	bin/traverse \
	bin/treecmp \
	bin/tsort \
	bin/ttt \
	bin/tty \
	bin/umount \
	bin/uname \
	bin/unexpand \
	bin/uniq \
	bin/unshar \
	bin/update \
	bin/users \
	bin/uud \
	bin/uue \
	bin/vol \
	bin/wc \
	bin/whatsnew \
	bin/which \
	bin/who \
	bin/whoami \
	bin/width \
	bin/write \
	bin/xargs \
	bin/yes 

# Binaries commented out for the smx version:
# Network-specific
#	bin/add_route \
#	bin/finger \
#	bin/ftp \
#	bin/host \
#	bin/hostaddr \
#	bin/ifconfig \
#	bin/in.fingerd \
#	bin/in.rld \
#	bin/in.rshd \
#	bin/irdpd \
#	bin/nonamed \
#	bin/ping \
#	bin/pr_routes \
#	bin/rarpd \
#	bin/rcp \
#	bin/rlogin \
#	bin/rsh \
#	bin/tcpd \
#
# PC-specific
#	bin/badblocks \
#	bin/diskcheck \
#	bin/eject \
#
# ACK-specific
#	bin/nm \

bin:
	mkdir bin

bin/add_route:	add_route.c
	$(CCLD) -o $@ -S 4kw add_route.c

bin/animals:	animals.c
	$(CCLD) -o $@ -S 4kw $?

bin/ascii:	ascii.c
	$(CCLD) -o $@ -S 4kw $?

bin/at:	at.c
	$(CCLD) -o $@ -S 4kw $?

bin/atrun:	atrun.c
	$(CCLD) -o $@ -S 4kw $?

bin/backup:	backup.c
	$(CCLD) -o $@ -S 4kw $?

bin/badblocks:	badblocks.c
	$(CCLD) -o $@ -S 4kw $?

bin/banner:	banner.c
	$(CCLD) -o $@ -S 4kw $?

bin/basename:	basename.c
	$(CCLD) -o $@ -S 4kw $?

bin/btoa:	btoa.c
	$(CCLD) -o $@ -S 4kw $?

bin/cal:	cal.c
	$(CCLD) -o $@ -S 4kw $?

bin/calendar:	calendar.c
	$(CCLD) -o $@ -S 4kw $?

bin/cat:	cat.c
	$(CCLD) -o $@ -S 4kw $?

bin/cdiff:	cdiff.c
	$(CCLD) -o $@ -S 28kw $?

bin/cgrep:	cgrep.c
	$(CCLD) -o $@ -S 5kw $?

bin/chmem:	chmem.c
	$(CCLD) -o $@ -S 4kw $?

bin/chmod:	chmod.c
	$(CCLD) -o $@ -S 4kw $?

bin/chown:	chown.c
	$(CCLD) -o $@ -S 4kw $?

bin/ci:	ci.c
	$(CCLD) -o $@ -S 4kw $?

bin/cksum:	cksum.c
	$(CCLD) -o $@ -S 4kw $?

bin/clr:	clr.c
	$(CCLD) -o $@ -S 4kw $?

bin/cmp:	cmp.c
	$(CCLD) -o $@ -S 4kw $?

bin/co:	co.c
	$(CCLD) -o $@ -S 4kw $?

bin/comic:	comic.c
	$(CCLD) -o $@ -S 4kw $?

bin/comm:	comm.c
	$(CCLD) -o $@ -S 4kw $?

bin/compress:	compress.c
	$(CCLD) -o $@ -S 450kw $?

bin/cp:    cp.c
	$(CCLD) -o $@ -S 16kw $?

bin/crc:	crc.c
	$(CCLD) -o $@ -S 4kw $?

bin/cron:	cron.c
	$(CCLD) -o $@ -S 4kw $?

bin/cut:	cut.c
	$(CCLD) -o $@ -S 4kw $?

bin/date:	date.c
	$(CCLD) -o $@ -S 4kw $?

bin/dd:	dd.c
	$(CCLD) -o $@ -S 20kw $?

bin/decomp16:	decomp16.c
	$(CCLD) -o $@ -S 4kw $?

bin/df:	df.c
	$(CCLD) -o $@ -S 4kw $?

bin/dhrystone:	dhrystone.c
	$(CCLD) -o $@ -S 4kw $?

bin/diff:	diff.c
	$(CCLD) -o $@ -S 28kw $?

bin/dirname:	dirname.c
	$(CCLD) -o $@ -S 4kw $?

bin/diskcheck:	diskcheck.c
	$(CCLD) -o $@ -S 4kw $?

bin/diskusage:	diskusage.c
	$(CCLD) -o $@ -S 25kw $?

bin/du:	du.c
	$(CCLD) -o $@ -S 16kw $?

bin/dw:	dw.c
	$(CCLD) -o $@ -S 4kw $?

bin/echo:	echo.c
	$(CCLD) -o $@ -S 4kw $?

bin/ed:	ed.c
	$(CCLD) -o $@ -S 32kw $?

bin/eject:	eject.c
	$(CCLD) -o $@ -S 4kw $?

bin/expand:	expand.c
	$(CCLD) -o $@ -S 4kw $?

bin/expr:	expr.c
	$(CCLD) -o $@ -S 4kw $?

bin/factor:	factor.c
	$(CCLD) -o $@ -S 4kw $?

bin/fgrep:	fgrep.c
	$(CCLD) -o $@ -S 10kw $?

bin/file:	file.c
	$(CCLD) -o $@ -S 25kw $?

bin/find:	find.c
	$(CCLD) -o $@ -S 25kw $?

bin/finger:	finger.c
	$(CCLD) -o $@ -S 8kw finger.c

bin/fold:	fold.c
	$(CCLD) -o $@ -S 4kw $?

bin/fortune:	fortune.c
	$(CCLD) -o $@ -S 4kw $?

bin/fsck:	fsck.c
	$(CCLD) -o $@ -S 32kw $?

bin/fsck1:	fsck1.c
	$(CCLD) -o $@ -S 32kw $?

bin/ftp:	ftp.c
	$(CCLD) -o $@ -S 8kw $?

bin/gather:	gather.c
	$(CCLD) -o $@ -S 4kw $?

bin/getty:	getty.c $(MX_INCL)/minix/config.h
	$(CCLD) -o $@ -S 4kw getty.c

bin/gomoku:	gomoku.c
	$(CCLD) -o $@ -S 4kw $? -lcurses

bin/grep:	grep.c
	$(CCLD) -o $@ -S 32kw $?

bin/head:	head.c
	$(CCLD) -o $@ -S 4kw $?

bin/host:	host.c
	$(CCLD) -o $@ -S 4kw host.c

bin/hostaddr:	hostaddr.c
	$(CCLD) -o $@ -S 4kw hostaddr.c

bin/id:	id.c
	$(CCLD) -o $@ -S 4kw $?

bin/ifconfig:	ifconfig.c
	$(CCLD) -o $@ -S 4kw ifconfig.c

bin/ifdef:	ifdef.c
	$(CCLD) -o $@ -S 4kw $?

bin/in.fingerd:	in.fingerd.c
	$(CCLD) -o $@ -S 4kw in.fingerd.c

bin/in.rld:	in.rld.c
	$(CCLD) -o $@ -S 4kw in.rld.c

bin/in.rshd:	in.rshd.c
	$(CCLD) -o $@ -S 4kw in.rshd.c

bin/inodes:	inodes.c
	$(CCLD) -o $@ -S 4kw $?

bin/install:	install.c
	$(CCLD) -o $@ -S 4kw $?

bin/irdpd:	irdpd.c
	$(CCLD) -o $@ -S 4kw $?

bin/isoread:	isoread.c
	$(CCLD) -o $@ -S 4kw $?

bin/join:	join.c
	$(CCLD) -o $@ -S 4kw $?

bin/kill:	kill.c
	$(CCLD) -o $@ -S 4kw $?

bin/last:	last.c
	$(CCLD) -o $@ -S 5kw $?

bin/leave:	leave.c
	$(CCLD) -o $@ -S 4kw $?

bin/life:	life.c
	$(CCLD) -o $@ -S 15kw $? -lcurses

bin/login:	login.c
	$(CCLD) -o $@ -S 4kw $?

bin/look:	look.c
	$(CCLD) -o $@ -S 4kw $?

bin/lpr:	lpr.c
	$(CCLD) -o $@ -S 4kw $?

bin/ls:	ls.c
	$(CCLD) -o $@ -S 20kw $?

bin/mail:	mail.c
	$(CCLD) -o $@ -S 4kw $?

bin/man:	man.c
	$(CCLD) -o $@ -S 10kw $?

bin/men:	men.c
	$(CCLD) -o $@ -S 4kw $?

bin/mesg:	mesg.c
	$(CCLD) -o $@ -S 4kw $?

bin/mkdir:	mkdir.c
	$(CCLD) -o $@ -S 4kw $?

bin/mkfifo:	mkfifo.c
	$(CCLD) -o $@ -S 4kw $?

bin/mkfs:	mkfs.c
	$(CCLD) -o $@ -S 20kw $?

bin/mknod:	mknod.c
	$(CCLD) -o $@ -S 4kw $?

bin/mkproto:	mkproto.c
	$(CCLD) -o $@ -S 20kw $?

bin/modem:	modem.c
	$(CCLD) -o $@ -S 4kw $?

bin/mount:	mount.c
	$(CCLD) -o $@ -S 4kw $?

bin/mref:	mref.c
	$(CCLD) -o $@ -S 8kw $?

bin/mt:	mt.c
	$(CCLD) -o $@ -S 4kw $?

bin/ncheck:	ncheck.c
	$(CCLD) -o $@ -S 20kw $?

bin/nm:	nm.c
	$(CCLD) -o $@ -S 32kw $?

bin/nonamed:	nonamed.c
	$(CCLD) -o $@ -S 4kw $?

bin/od:	od.c
	$(CCLD) -o $@ -S 4kw $?

bin/passwd:	passwd.c
	$(CCLD) -o $@ -S 4kw $?

bin/paste:	paste.c
	$(CCLD) -o $@ -S 4kw $?

bin/pathchk:	pathchk.c
	$(CCLD) -o $@ -S 4kw $?

bin/ping:	ping.c
	$(CCLD) -o $@ -S 4kw $?

bin/pr:	pr.c
	$(CCLD) -o $@ -S 16kw $?

bin/pr_routes:	pr_routes.c
	$(CCLD) -o $@ -S 4kw $?

bin/prep:	prep.c
	$(CCLD) -o $@ -S 4kw $?

bin/pretty:	pretty.c
	$(CCLD) -o $@ -S 4kw $?

bin/printenv:	printenv.c
	$(CCLD) -o $@ -S 4kw $?

bin/printroot:	printroot.c
	$(CCLD) -o $@ $?

bin/proto:	proto.c
	$(CCLD) -o $@ -S 15kw $?

bin/ps:	ps.c $(MX_INCL)/minix/config.h ../../kernel/const.h \
		../../kernel/type.h ../../kernel/proc.h ../../mm/mproc.h \
		../../fs/fproc.h ../../fs/const.h
	$(CCLD) -o $@ -S 16kw ps.c

bin/pwd:	pwd.c
	$(CCLD) -o $@ -S 4kw $?

bin/pwdauth:	pwdauth.c
	$(CCLD) -o $@ -S 4kw $?

bin/rarpd:	rarpd.c
	$(CCLD) -o $@ -S 4kw rarpd.c

bin/rcp:	rcp.c
	$(CCLD) -o $@ -S 8kw rcp.c

bin/readall:	readall.c
	$(CCLD) -o $@ -S 4kw $?

bin/readfs:	readfs.c
	$(CCLD) -o $@ -S 25kw $?

bin/recover:	recover.c
	$(CCLD) -o $@ -S 4kw $?

bin/remsync:	remsync.c
	$(CCLD) -o $@ -S 64kw $?

bin/rev:	rev.c
	$(CCLD) -o $@ -S 4kw $?

bin/rlogin:	rlogin.c
	$(CCLD) -o $@ -S 8kw $?

bin/rmdir:	rmdir.c
	$(CCLD) -o $@ -S 15kw $?

bin/roff:	roff.c
	$(CCLD) -o $@ -S 8kw $?

bin/rsh:	rsh.c
	$(CCLD) -o $@ -S 8kw rsh.c

bin/sed:	sed.c
	$(CCLD) -o $@ -S 8kw $?

bin/shar:	shar.c
	$(CCLD) -o $@ -S 4kw $?

bin/size:	size.c
	$(CCLD) -o $@ -S 4kw $?

bin/sleep:	sleep.c
	$(CCLD) -o $@ -S 4kw $?

bin/sort:	sort.c
	$(CCLD) -o $@ -S 30kw $?

bin/split:	split.c
	$(CCLD) -o $@ -S 4kw $?

bin/strings:	strings.c
	$(CCLD) -o $@ -S 8kw $?

bin/strip:	strip.c
	$(CCLD) -o $@ -S 8kw $?

bin/stty:	stty.c
	$(CCLD) -o $@ -S 4kw $?

bin/su:	su.c
	$(CCLD) -o $@ -S 4kw $?

bin/sum:	sum.c
	$(CCLD) -o $@ -S 4kw $?

bin/swapfs:	swapfs.c
	$(CCLD) -o $@ -S 4kw $?

bin/sync:	sync.c
	$(CCLD) -o $@ -S 4kw $?

bin/synctree:	synctree.c
	$(CCLD) -o $@ -S 32kw $?

bin/tail:	tail.c
	$(CCLD) -o $@ -S 16kw $?

bin/tar:	tar.c
	$(CCLD) -o $@ -S 30kw $?

bin/tcpd:	tcpd.c
	$(CCLD) -o $@ -S 2kw tcpd.c

bin/tee:	tee.c
	$(CCLD) -o $@ -S 4kw $?

bin/termcap:	termcap.c
	$(CCLD) -o $@ -S 4kw $?

bin/test:	test.c
	$(CCLD) -o $@ -S 4kw $?

bin/tget:	tget.c
	$(CCLD) -o $@ -S 4kw $?

bin/time:	time.c
	$(CCLD) -o $@ -S 4kw $?

bin/touch:	touch.c
	$(CCLD) -o $@ -S 4kw $?

bin/tr:	tr.c
	$(CCLD) -o $@ -S 4kw $?

bin/traverse:	traverse.c
	$(CCLD) -o $@ -S 4kw $?

bin/treecmp:	treecmp.c
	$(CCLD) -o $@ -S 30kw $?

bin/tsort:	tsort.c
	$(CCLD) -o $@ -S 4kw $?

bin/ttt:	ttt.c
	$(CCLD) -o $@ -S 4kw $?

bin/tty:	tty.c
	$(CCLD) -o $@ -S 4kw $?

bin/umount:	umount.c
	$(CCLD) -o $@ -S 4kw $?

bin/uname:	uname.c $(MX_INCL)/minix/config.h
	$(CCLD) -o $@ -S 4kw uname.c

bin/unexpand:	unexpand.c
	$(CCLD) -o $@ -S 4kw $?

bin/uniq:	uniq.c
	$(CCLD) -o $@ -S 4kw $?

bin/unshar:	unshar.c
	$(CCLD) -o $@ -S 10kw $?

bin/update:	update.c
	$(CCLD) -o $@ -S 1kw $?

bin/users:	users.c
	$(CCLD) -o $@ -S 4kw $?

bin/uud:	uud.c
	$(CCLD) -o $@ -S 4kw $?

bin/uue:	uue.c
	$(CCLD) -o $@ -S 4kw $?

bin/vol:	vol.c
	$(CCLD) -o $@ -S 80k $?

bin/wc:	wc.c
	$(CCLD) -o $@ -S 4kw $?

bin/whatsnew:	whatsnew.c
	$(CCLD) -o $@ -S 4kw $?

bin/which:	which.c
	$(CCLD) -o $@ -S 4kw $?

bin/who:	who.c
	$(CCLD) -o $@ -S 4kw $?

bin/whoami:	whoami.c
	$(CCLD) -o $@ -S 4kw $?

bin/width:	width.c
	$(CCLD) -o $@ -S 4kw $?

bin/write:	write.c
	$(CCLD) -o $@ -S 4kw $?

bin/xargs:	xargs.c
	$(CCLD) -o $@ -S 4kw $?

bin/yes:	yes.c
	$(CCLD) -o $@ -S 4kw $?

clean:
	rm -rf *.o a.out bin/*
