# $Source: /hpux/shared/supp//usr/src/cmd/lp/./makefile,v $
# $Revision: 78.1 $

############################
# Common makefile for lp commands and utility:
#
# << command >>
# accept
# cancel
# disable
# enable
# lp
# lpadmin
# lpalt
# lpana
# lpfence
# lpmove
# lpsched
# lpshut
# lpstat
# reject
# rcancel
# rlp
# rlpdaemon
# rlpstat
#
# << utility >>
# converter	--    pstatus and qstatus file format converter to 7.0
############################

ADMIN	= lp
LIB	= lib.a 
AR	= ar
DFLAGS	= -DADMIN='"$(ADMIN)"' -DREMOTE
FLAGS	= -lm

FINDMSG = /usr/bin/findmsg
GENCAT	= /usr/bin/gencat

CFILES	= accept cancel disable enable lp lpadmin lpalt lpana lpfence lpmove \
	lpsched lpshut lpstat reject rcancel rlp rlpdaemon rlpstat

MFILES	= accept.M cancel.M disable.M enable.M lp.M lpadmin.M lpalt.M lpana.M \
	  lpfence.M lpmove.M lpsched.M lpshut.M lpstat.M reject.M rcancel.M \
	  rlp.M rlpdaemon.M rlpstat.M

OBJS =	dest.o destlist.o fullpath.o gwd.o enter.o fifo.o \
	getname.o isclass.o isprinter.o isrequest.o outlist.o \
	prilist.o outputq.o pstatus.o date.o isdest.o eaccess.o \
	qstatus.o fatal.o lock.o altit.o request.o sendmail.o \
	trim.o wrtmsg.o findtty.o \
	common.o rmjob.o sendit.o recvjob.o alter.o displayq.o \
	mpstatus.o ispd.o

REL   = hpux_rel.o

MSGS  = accept.msg cancel.msg date.msg disable.msg enable.msg lp.msg \
	lpadmin.msg lpalt.msg lpana.msg lpfence.msg lpmove.msg \
	lpsched.msg lpshut.msg lpstat.msg \
	outputq.msg pstatus.msg qstatus.msg reject.msg \
	wrtmsg.msg common.msg rmjob.msg sendit.msg recvjob.msg displayq.msg \
	mpstatus.msg rcancel.msg rlp.msg rlpdaemon.msg rlpstat.msg ispd.msg


default: all

all: $(LIB) $(CFILES) lp.cat converter
	cd filter; $(MAKE)
	cd fonts; $(MAKE)

metrics: $(MFILES)

$(LIB):	$(OBJS)
	$(AR) r $(LIB) $(OBJS)
	-chmod 664 $@

do_link:
	@libs="$(LIB)";						\
	if ifdef SecureWare || ifdef B1 || ifdef TRUSTED; then	\
	    libs="$$libs -lscmd $$libs -lsec -lcurses";		\
	fi;							\
	if ifdef COMSEC; then					\
	    libs="$$libs -lsec";				\
	fi;                                                     \
	echo "\t$(CC)" $(LDFLAGS) -o $(TARG) $(REL) $(TARG).o $$libs; \
	$(CC) $(LDFLAGS) -o $(TARG) $(REL) $(TARG).o $$libs

do_metrics:
	@libs="$(LIB)";						\
	$(METRICS) $(LDFLAGS) -o $(TARG) $(REL) $(TARG).c $$libs

accept: $(LIB) $(REL) accept.o
	@$(MAKE) TARG=$@ do_link

cancel: $(LIB) $(REL) cancel.o
	@$(MAKE) TARG=$@ do_link

disable: $(LIB) $(REL) disable.o
	@$(MAKE) TARG=$@ do_link

enable: $(LIB) $(REL) enable.o
	@$(MAKE) TARG=$@ do_link

lp: $(LIB) $(REL) lp.o
	@$(MAKE) TARG=$@ do_link

lpadmin: $(LIB) $(REL) lpadmin.o
	@$(MAKE) TARG=$@ do_link

lpalt: $(LIB) $(REL) lpalt.o
	@$(MAKE) TARG=$@ do_link

lpana: $(LIB) $(REL) lpana.o
	@$(MAKE) TARG=$@ LIB="$(LIB) $(FLAGS)" do_link

lpfence: $(LIB) $(REL) lpfence.o
	@$(MAKE) TARG=$@ do_link

lpmove: $(LIB) $(REL) lpmove.o
	@$(MAKE) TARG=$@ do_link

lpsched: $(LIB) $(REL) lpsched.o
	@$(MAKE) TARG=$@ do_link

lpshut: $(LIB) $(REL) lpshut.o
	@$(MAKE) TARG=$@ do_link

lpstat: $(LIB) $(REL) lpstat.o
	@$(MAKE) TARG=$@ do_link

reject: $(LIB) $(REL) reject.o
	@$(MAKE) TARG=$@ do_link

rcancel: $(LIB) $(REL) rcancel.o
	@$(MAKE) TARG=$@ do_link

rlp: $(LIB) $(REL) rlp.o
	@$(MAKE) TARG=$@ do_link

rlpdaemon: $(LIB) $(REL) rlpdaemon.o
	@$(MAKE) TARG=$@ do_link

rlpstat: $(LIB) $(REL) rlpstat.o
	@$(MAKE) TARG=$@ do_link

#accept.M: accept.c
#	@$(MAKE) TARG=$@ do_metrics
#
#cancel.M: cancel.c
#	@$(MAKE) TARG=$@ do_metrics
#
#disable.M: disable.c
#	@$(MAKE) TARG=$@ do_metrics
#
#enable.M: enable.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lp.M: lp.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpadmin.M: lpadmin.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpalt.M: lpalt.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpana.M: lpana.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpfence.M: lpfence.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpmove.M: lpmove.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpsched.M: lpsched.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpshut.M: lpshut.c
#	@$(MAKE) TARG=$@ do_metrics
#
#lpstat.M: lpstat.c
#	@$(MAKE) TARG=$@ do_metrics
#
#reject.M: reject.c
#	@$(MAKE) TARG=$@ do_metrics
#
#rcancel.M: rcancel.c
#	@$(MAKE) TARG=$@ do_metrics
#
#rlp.M: rlp.c
#	@$(MAKE) TARG=$@ do_metrics
#
#rlpdaemon.M: rlpdaemon.c
#	@$(MAKE) TARG=$@ do_metrics
#
#rlpstat.M: rlpstat.c
#	@$(MAKE) TARG=$@ do_metrics

#######
# Re-define .c.o rule so implicit compiles will use DFLAGS
#######

.c.o:
	$(CC) $(CFLAGS) $(DFLAGS) -c $<

#######
# Metrics file creation rule
#######
.c.M:
	$(METRICS) $(CFLAGS) $(DFLAGS) -o $*.M $*.c

#######
# Local Header dependencies
#######

$(OBJS): lp.h
dest.o destlist.o findtty.o outlist.o wrtmsg.o: lpsched.h

#######
# Create message catalog file
#######

lp.cat: $(MSGS)
	 $(GENCAT) $@ $(MSGS)

######
# File converter for 7.0
######

converter: $(REL) converter.o
	$(CC) $(LDFLAGS) -o $@ $(REL) converter.o

#######
# Define .c to .msg rule so make will automatically know how to create a
# .msg from a .c file if it needs to
#######

.c.msg:
	$(FINDMSG) $*.c > $*.msg

.SUFFIXES: .cat .msg .M


#######
# Clean & clobber targets.  <command>clean or <command>clobber allow you
# to clean or clobber only files for one of the commands; topclean and
# topclobber allow you to clean or clobber only the lp directory (leaving
# the subdirectories untouched); just plain clean or clobber will clear out
# the lp directories and the subdirectories as well.
#######

clean:	topclean
	cd filter; $(MAKE) clean
	cd fonts; $(MAKE) clean
topclean:	;  /bin/rm -f $(LIB) *.o *.msg
acceptclean:	;  /bin/rm -f accept.o accept.msg
cancelclean:	;  /bin/rm -f cancel.o cancel.msg
disableclean:	;  /bin/rm -f disable.o disable.msg
enableclean:	;  /bin/rm -f enable.o enable.msg
lpclean:	;  /bin/rm -f lp.o lp.msg
lpadminclean:	;  /bin/rm -f lpadmin.o lpadmin.msg
lpmoveclean:	;  /bin/rm -f lpmove.o lpmove.msg
lpschedclean:	;  /bin/rm -f lpsched.o lpsched.msg
lpshutclean:	;  /bin/rm -f lpshut.o lpshut.msg
lpstatclean:	;  /bin/rm -f lpstat.o lpstat.msg
rejectclean:	;  /bin/rm -f reject.o reject.msg
libclean:
	/bin/rm -f $(OBJS)

clobber:	topclobber
	cd filter; $(MAKE) clobber
	cd fonts; $(MAKE) clobber
topclobber: topclean
	/bin/rm -f $(CFILES) lp.cat $(LIB)
acceptclobber:	acceptclean
	/bin/rm -f accept accept.cat
cancelclobber:	cancelclean
	/bin/rm -f cancel cancel.cat
disableclobber:	disableclean
	/bin/rm -f disable disable.cat
enableclobber:	enableclean
	/bin/rm -f enable enable.cat
lpclobber:	lpclean
	/bin/rm -f lp lp.cat
lpadminclobber:	lpadminclean
	/bin/rm -f lpadmin lpadmin.cat
lpmoveclobber:	lpmoveclean
	/bin/rm -f lpmove lpmove.cat
lpschedclobber:	lpschedclean
	/bin/rm -f lpsched lpsched.cat
lpshutclobber:	lpshutclean
	/bin/rm -f lpshut lpshut.cat
lpstatclobber:	lpstatclean
	/bin/rm -f lpstat lpstat.cat
rejectclobber:	rejectclean
	/bin/rm -f reject reject.cat
libclobber:	libclean
	/bin/rm -f $(LIB)
