#sccs	"@(#)fndcmd:Makefile	1.20"
#	Makefile for Commands 9/25/84
#
# Revision History
#	9/10/85	DES Added bldother to ETCFILES and DEPENDLIST.
#	2/20/85 MDE Added CRYPT flag for building Crypt set.
#	3/12/86 MDE Changed find to use a pipe to cpio for
#	            the -cpio flag

include $(MAKEINC)/Makepre.h

ID = cmdid.o

LCFLAGS = $(CRYPT) -DPIPECPIO

UNITS = \
	UNITawk=awk \
	UNITbc=bc \
	UNITdc=dc \
	UNITdiff=diff \
	UNITfile=file \
	UNITfsck=fsck \
	UNITktune=ktune \
	UNITiv=iv \
	UNITlp=lp \
	UNITmore=more \
	UNITmsdos=msdos \
	UNITps_kill=pskill \
	UNITsed=sed \
	UNITsh=brnsh \
	UNITsize=size \
	UNITuucp=uucp

CRONFILES = cronlog \
	crontab

BINFILES = basename \
	cat \
	chgrp \
	chmod \
	chown \
	clear \
	cmp \
	cpio \
	date \
	dd \
	df \
	dirname \
	du \
	echo \
	ed \
	env \
	expr \
	false \
	fgrep \
	find \
	grep \
	head \
	kill \
	line \
	login \
	ls \
	mail \
	mesg \
	mkdir \
	mv \
	newgrp \
	nice \
	nohup \
	od \
	pr \
	pwd \
	rm \
	rmdir \
	sleep \
	sort \
	stty \
	su \
	sum \
	sync \
	tail \
	tee \
	time \
	touch \
	true \
	tty \
	uname \
	wc \
	who \
	write

CRYPTFILES = crypt \
	ed \
	makekey

UBINFILES = asa \
	banner \
	comm \
	csplit \
	cu \
	cut \
	fc \
	getopt \
	id \
	join \
	nl \
	pack \
	paste \
	path \
	pcat \
	pwait \
	scrset \
	setprint \
	setuname \
	split \
	spr \
	tr \
	uniq \
	unpack \
	uupick \
	uuto \
	wfc

ETCFILES =  \
	.phclr \
	.phinit \
	bldother \
	devnm \
	dismount \
	getty \
	init \
	mkfs \
	mknod \
	mount \
	phupd \
	reboot \
	setmnt \
	sfont \
	umount \
	update \
	wall

POPDIRS = \
	iv \
	lp \
	size \
	uucp

SUBDIRS = awk \
	bc \
	dc \
	diff \
	file \
	fsck \
	ktune \
	iv \
	lp \
	more \
	msdos \
	ps_kill \
	sed \
	sh \
	size \
	uucp

DEPENDLIST = asa.c \
	banner.c \
	bldother.c \
	cat.c \
	chgrp.c \
	chmod.c \
	chown.c \
	clear.c \
	cmp.c \
	comm.c \
	cpio.c \
	crypt.c \
	csplit.c \
	cu.c \
	cut.c \
	date.c \
	dd.c \
	devnm.c \
	df.c \
	du.c \
	echo.c \
	ed.c \
	env.c \
	expr.c \
	fc.c \
	fgrep.c \
	find.c \
	getopt.c \
	getty.c \
	grep.c \
	head.c \
	id.c \
	init.c \
	join.c \
	kill.c \
	line.c \
	login.c \
	ls.c \
	mail.c \
	makekey.c \
	mesg.c \
	mkdir.c \
	mkfs.c \
	mknod.c \
	mount.c \
	mv.c \
	newgrp.c \
	nice.c \
	nl.c \
	nohup.c \
	od.c \
	pack.c \
	passwd.c \
	paste.c \
	path.c \
	pcat.c \
	phupd.c \
	pr.c \
	pwait.c \
	pwd.c \
	reboot.c \
	rm.c \
	rmdir.c \
	setmnt.c \
	scrset.c \
	setuname.c \
	sfont.c \
	sleep.c \
	sort.c \
	split.c \
	spr.c \
	stty.c \
	su.c \
	sum.c \
	sync.c \
	tail.c \
	tee.c \
	time.c \
	touch.c \
	tr.c \
	tty.c \
	umount.c \
	uname.c \
	uniq.c \
	unpack.c \
	update.c \
	wall.c \
	wc.c \
	wfc.c \
	who.c \
	write.c

all:	Makeincludes $(ID) $(BINFILES) passwd $(UBINFILES) $(ETCFILES) comall
	rm -f cp; ln mv cp

allCrypt: $(ID) $(CRYPTFILES)

Makeincludes: $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes
	make

includes: comincludes $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes

clean:  comclean
	rm -f *.o

clobber: clean comclobber
	rm -f $(BINFILES) passwd $(UBINFILES) $(ETCFILES)

.phinit:	
	cp phinit.sh .phinit 

.phclr:	phclr.o $(ID)
	$(LD) -s $(LDFLAGS) $(SHAREDLIB) -o .phclr phclr.o $(ID) -ldev

cpio:	cpio.o $(ID)
	$(LD) -s $(LDFLAGS) $(SHAREDLIB) -o cpio cpio.o $(ID) -ldev

cu:	cu.o $(ID)
	$(LD) -s $(LDFLAGS) /lib/crt0.o -o cu cu.o $(ID) -lc -ltermlib -lc

mkfs:	mkfs.o $(ID)
	$(LD) -s $(LDFLAGS) $(SHAREDLIB) -o mkfs mkfs.o $(ID) -ldev

reboot: reboot.o $(ID)
	$(CC) -N -s -o reboot reboot.o $(ID)

phupd:	phupd.o $(ID)
	$(LD) -s $(LDFLAGS) $(SHAREDLIB) -o phupd phupd.o $(ID) -ldev

install: cominstall
	for i in cp $(CRONFILES) $(BINFILES) $(UBINFILES) $(ETCFILES); \
		do echo installing $$i...; \
		$(INSTALL) -i$(EXITFLAG) $$i $(INSDIR) $(PROTOFILE); done
	$(INSTALL) -i$(EXITFLAG) passwd%/bin $(INSDIR) $(PROTOFILE)

cmdid.c: fndcmd.sl
	mkslid > cmdid.c

populate: $(SUBDIRS)
	for D in $(SUBDIRS); \
	do (cd $$D; echo "** $$D **:"; getunit); \
	done
	for D in $(POPDIRS); \
	do (cd $$D; echo "** $$D **:"; $(MAKE) populate); \
	done

$(SUBDIRS):
	@$(UNITS) ;echo "Making Directory for $@"; mkdir $@; echo $$UNIT$@ > $@/.unit

include Makeincludes
include $(MAKEINC)/Makepost.h

#	For shared libs
.c:
	$(CC) -c $(CFLAGS) $<
	$(LD) -s $(LDFLAGS) $(SHAREDLIB) $*.o $(ID) -o $*
