#sccs	"@(#)lp:Makefile	1.4"

include $(MAKEINC)/Makepre.h

SUBDIRS = \
	model

ID = id.o
HD_INST= .
INC_FILES = \
	$(HD_INST)/lp.h

SFILES = pstatus qstatus
SPOOL	= /usr/spool/lp
ADMIN	= lp
ADMDIR	= /usr/lib
USRDIR	= /usr/bin
GROUP	= bin
SETUPLIB= libsetup.a
LPLIB	= lib.a
DEFS	= -DSPOOL='"$(SPOOL)"' -DADMIN='"$(ADMIN)"'\
	  -DADMDIR='"$(ADMDIR)"' -DUSRDIR='"$(USRDIR)"'\
	  -UDEBUG
CFLAGS=-O $(DEFS)


UBINPROGS = cancel disable enable lp lpinfo lpstat lpsetup
ULIBPROGS = accept lpadmin lpmove lpsched lpshut reject lpqueue
PROGS =	$(UBINPROGS) $(ULIBPROGS)

HFILES	= lp.h lpsched.h pr_form.h

.PRECIOUS: $(LPLIB) $(SETUPLIB)

DEPENDLIST = accept.c \
	cancel.c \
	date.c \
	dest.c \
	destlist.c \
	disable.c \
	eaccess.c \
	enable.c \
	enter.c \
	fatal.c \
	fifo.c \
	findtty.c \
	fullpath.c \
	getlent.c \
	getname.c \
	gwd.c \
	isclass.c \
	isdest.c \
	isprinter.c \
	isrequest.c \
	lock.c \
	lp.c \
	lp_clear.c \
	lp_lsys.c \
	lp_remove.c \
	lpadmin.c \
	lpinfo.c \
	lpmove.c \
	lpqueue.c \
	lpsched.c \
	lpsetup.c \
	lpshut.c \
	lpstat.c \
	outlist.c \
	outputq.c \
	pstatus.c \
	qstatus.c \
	reject.c \
	request.c \
	rm.c \
	sendmail.c \
	sgetty.c \
	trim.c \
	wrtmsg.c

all:	Makeincludes $(PROGS) status comall

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

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

status:
	touch $(SFILES)

hdr_install: $(INC_FILES)

$(INC_FILES):: $$(@F)
	rm -f $(@)
	cp $(@F) $(@)

accept:	accept.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o accept accept.o $(LPLIB) $(ID)

cancel:	cancel.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o cancel cancel.o $(LPLIB) $(ID)

disable: disable.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o disable disable.o $(LPLIB) $(ID)

enable:	enable.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o enable enable.o $(LPLIB) $(ID)

lp:	lp.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lp lp.o $(LPLIB) $(ID)

lpadmin: lpadmin.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpadmin lpadmin.o $(LPLIB) $(ID)

lpmove:	lpmove.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpmove lpmove.o $(LPLIB) $(ID)

lpsched: lpsched.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpsched lpsched.o $(LPLIB) $(ID)

lpshut:	lpshut.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpshut lpshut.o $(LPLIB) $(ID)

lpstat:	lpstat.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpstat lpstat.o $(LPLIB) $(ID)

lpinfo:	lpinfo.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpinfo lpinfo.o $(LPLIB) $(ID)

reject:	reject.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o reject reject.o $(LPLIB) $(ID)

lpqueue: lpqueue.o $(HFILES) $(LPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpqueue lpqueue.o $(LPLIB) $(ID)

lpsetup: lpsetup.o $(HFILES) $(LPLIB) $(SETUPLIB) $(ID)
	$(LD) -s $(SHAREDLIB) -o lpsetup lpsetup.o $(SETUPLIB) $(LPLIB) $(ID)

$(LPLIB): \
	dest.o \
	destlist.o \
	fullpath.o \
	gwd.o \
	enter.o \
	fifo.o \
	getname.o \
	isclass.o \
	isprinter.o \
	isrequest.o \
	outlist.o \
	outputq.o \
	pstatus.o \
	date.o \
	isdest.o \
	eaccess.o \
	qstatus.o \
	fatal.o \
	lock.o \
	request.o \
	sendmail.o \
	trim.o \
	wrtmsg.o \
	rm.o \
	findtty.o
	ar rv $(LPLIB) $?

$(SETUPLIB): \
	getlent.o\
	lp_clear.o\
	lp_lsys.o\
	lp_remove.o\
	sgetty.o
	ar rv $(SETUPLIB) $?

install:  cominstall
	@for I in lp.h $(PROGS) $(SFILES); do echo installing $$I...; \
		$(INSTALL) -i$(EXITFLAG) $$I $(INSDIR) $(PROTOFILE); done

populate: $(SUBDIRS)
	getunit ; \
	UNIT=`cat .unit`; export UNIT; \
	for D in $(SUBDIRS); \
	do \
		( \
		cd $$D; echo "$$UNIT/$$D" >.unit; echo "** $$D **:"; getunit;\
		) \
	done

$(SUBDIRS):
	mkdir $@

id.c: lp.sl
	mkslid >id.c

clean: comclean
	rm -f *.o $(LPLIB) $(SETUPLIB)

clobber: clean comclobber
	rm -f $(PROGS) $(SFILES)

include Makeincludes
include $(MAKEINC)/Makepost.h
