# Makefile for req
#
# $Id: Makefile.def,v 2.5 1994/09/23 16:34:12 remy Exp remy $
#

SOURCES  = req-nextnum.c req.c getdate.c status.c reqstat.c
BINARIES = req-nextnum   req   getdate  status reqstat
SCRIPTS  = req-mailgate req-operation reqshow q req-autoreply \
	reqglimpse reqtail req-daily req-subject req-status
LIBS     = req-mailadt
MANPAGES = req-nextnum.1 req.1 q.1 getdate.1 status.1 reqshow.1 \
	   req-mailgate.1 req-subject.1 reqtail.1 reqglimpse.1 reqstat.1

EXTRACT = ${SCRIPTS} ${SOURCES} ${MANPAGES} ${LIBS}

all: ${BINARIES} ${SCRIPTS} ${MANPAGES} ${LIBS}

INSTALL = install-getdate	\
	  install-req-operation	\
	  install-req-mailgate	\
	  install-req-mailadt    \
	  install-q		\
	  install-req-nextnum	\
	  install-reqshow	\
	  install-reqglimpse	\
	  install-reqtail	\
	  install-req-daily	\
	  install-status	\
	  install-req-autoreply \
	  install-req-subject   \
	  install-req-status    \
	  install-reqstat       \
	  install-req

INSTALLMAN = install-req-nextnum-man  	\
             install-req-man		\
             install-reqshow-man	\
             install-q-man		\
             install-status-man		\
             install-getdate-man	\
             install-req-subject-man	\
             install-reqtail-man	\
             install-reqstat-man	\
             install-reqglimpse-man	\
             install-req-mailgate-man   


# ===========================================================================
# Getdate
           
getdate: getdate.c y.tab.c
	cc -O -o getdate getdate.c y.tab.c

y.tab.c: ../src/getdate.y
	yacc ../src/getdate.y

../src/getdate.c:
	@/bin/true
	

# ===========================================================================
# extracting files from definitions
# I hate unix... makefiles are supposed to make this easy, but they're
# not quite portable across all the bizarre architectures out there.  
# It's easier and faster to just text edit these directly in.  
# Stupid stupid.

Makefile: Makefile.def ../defs
	../extract -d ../defs < Makefile.def > Makefile

extract: ${EXTRACT}

req-nextnum.c: ../src/req-nextnum.c ../defs
	../extract -d ../defs < ../src/$@ > $@

req.c: ../src/req.c ../defs
	../extract -d ../defs < ../src/$@ > $@

getdate.c: ../src/getdate.c ../defs
	../extract -d ../defs < ../src/$@ > $@

status.c: ../src/status.c ../defs
	../extract -d ../defs < ../src/$@ > $@

reqstat.c: ../src/reqstat.c ../defs
	../extract -d ../defs < ../src/$@ > $@

req-mailgate: ../src/req-mailgate ../defs
	../extract -d ../defs < ../src/$@ > $@

req-operation: ../src/req-operation ../defs
	../extract -d ../defs < ../src/$@ > $@

req-status: ../src/req-status ../defs
	../extract -d ../defs < ../src/$@ > $@

reqshow: ../src/reqshow ../defs
	../extract -d ../defs < ../src/$@ > $@

reqglimpse: ../src/reqglimpse ../defs
	../extract -d ../defs < ../src/$@ > $@

reqtail: ../src/reqtail ../defs
	../extract -d ../defs < ../src/$@ > $@

req-daily: ../src/req-daily ../defs
	../extract -d ../defs < ../src/$@ > $@

q: ../src/q ../defs
	../extract -d ../defs < ../src/$@ > $@

req-autoreply: ../etc/autoreply-long  ../defs
	cp ../etc/autoreply-long $@

req-subject: ../etc/req-subject ../defs
	cp ../etc/req-subject $@

req-mailadt: ../src/req-mailadt ../defs
	../extract -d ../defs < ../src/$@ > $@

req-nextnum.1: ../src/req-nextnum.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

req.1: ../src/req.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

q.1: ../src/q.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

getdate.1: ../src/getdate.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

status.1: ../src/status.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

reqshow.1: ../src/reqshow.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

req-mailgate.1: ../src/req-mailgate.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

req-subject.1: ../src/req-subject.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

reqtail.1: ../src/reqtail.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

reqstat.1: ../src/reqstat.1 ../defs
	../extract -d ../defs < ../src/$@ > $@

reqglimpse.1: ../src/reqglimpse.1 ../defs
	../extract -d ../defs < ../src/$@ > $@


# ===========================================================================
# installing
#

install: ${INSTALL}

install-req-operation: req-operation
	install -m 755 -o request 	\
		-g systems req-operation /ccs/adm/apps/req-1.2/etc/req-operation

install-req-status: req-status
	install -m 755 -o request 	\
		-g systems req-status /ccs/adm/apps/req-1.2/etc/req-status

install-req-mailgate: req-mailgate
	install -m 755 -o request 	\
		-g systems req-mailgate /ccs/adm/apps/req-1.2/etc/req-mailgate

install-req-mailadt: req-mailadt
	install -m 644 -o request 	\
		-g systems req-mailadt /local/adm/apps/req-1.2/lib/req-mailadt

install-req-autoreply: req-autoreply
	install -m 755 -o request 	\
		-g systems req-autoreply /ccs/adm/apps/req-1.2/etc/req-autoreply

install-req-subject: req-subject
	install -m 644 -o request 	\
		-g systems req-subject /ccs/adm/request/etc/subject

install-q: q
	install -m 755 -o request 	\
		-g systems q /ccs/adm/apps/req-1.2/bin/q

install-reqshow: reqshow
	install -m 755 -o request 	\
		-g systems reqshow /ccs/adm/apps/req-1.2/bin/reqshow

install-reqglimpse: reqglimpse
	install -m 755 -o request 		\
		-g systems reqglimpse /ccs/adm/apps/req-1.2/bin/reqglimpse

install-reqtail: reqtail
	install -m 755 -o request 		\
		-g systems reqtail /ccs/adm/apps/req-1.2/bin/reqtail

install-req-daily: req-daily
	install -m 755 -o request 		\
		-g systems req-daily /ccs/adm/apps/req-1.2/etc/req-daily

install-req-nextnum:  req-nextnum
	install -s -m 4755 -o request	\
		-g systems req-nextnum /local/adm/apps/req-1.2/etc/nextnum

install-req: req
	install -s -m 4755 -o request 	\
		-g systems req /local/adm/apps/req-1.2/bin/req

install-reqstat: reqstat
	install -s -m 4755 -o request 	\
		-g systems reqstat /local/adm/apps/req-1.2/bin/reqstat

install-status:  status
	install -s -m 4755 -o request 	\
		-g systems status /local/adm/apps/req-1.2/bin/status

install-getdate: getdate
	install -s -m 755 -o request 	\
		-g systems getdate /local/adm/apps/req-1.2/etc/getdate

#
# Man pages
#

install-man: ${INSTALLMAN}

install-req-man: req.1
	install req.1 /local/adm/apps/req-1.2/man/man1/req.1

install-reqshow-man: reqshow.1
	install reqshow.1 /local/adm/apps/req-1.2/man/man1/reqshow.1

install-q-man: q.1
	install q.1 /local/adm/apps/req-1.2/man/man1/q.1

install-status-man: status.1
	install status.1 /local/adm/apps/req-1.2/man/man1/status.1

install-getdate-man: getdate.1
	install getdate.1 /local/adm/apps/req-1.2/man/man1/getdate.1

install-req-nextnum-man: req-nextnum.1
	install req-nextnum.1 /local/adm/apps/req-1.2/man/man1/nextnum.1

install-req-mailgate-man: req-mailgate.1
	install req-mailgate.1 /local/adm/apps/req-1.2/man/man1/req-mailgate.1
	
install-req-subject-man: req-subject.1
	install req-subject.1 /local/adm/apps/req-1.2/man/man1/subject.1

install-reqtail-man: reqtail.1
	install reqtail.1 /local/adm/apps/req-1.2/man/man1/reqtail.1

install-reqstat-man: reqstat.1
	install reqstat.1 /local/adm/apps/req-1.2/man/man1/reqstat.1

install-reqglimpse-man: reqglimpse.1
	install reqglimpse.1 /local/adm/apps/req-1.2/man/man1/reqglimpse.1

#
# Extra stuff to install
#

numbers: install-currentnum

install-currentnum:
	install -m 644 -o request 	\
		-g systems ../etc/currentnumber /ccs/adm/request/etc/currentnumber


#
# Make the directories
#

directories:
	-../utils/mkdirhier         /ccs/adm/request
	-chmod 755  /ccs/adm/request
	-chgrp systems     /ccs/adm/request
	-chown request      /ccs/adm/request
	-chmod g+s                  /ccs/adm/request
	-../utils/mkdirhier         /ccs/adm/request/active
	-chmod 750 /ccs/adm/request/active
	-chgrp systems     /ccs/adm/request/active
	-chown request      /ccs/adm/request/active
	-chmod g+s                  /ccs/adm/request/active
	-../utils/mkdirhier         /ccs/adm/request/resolved
	-chmod 750 /ccs/adm/request/resolved
	-chgrp systems     /ccs/adm/request/resolved
	-chown request      /ccs/adm/request/resolved
	-chmod g+s                  /ccs/adm/request/resolved
	-../utils/mkdirhier         /ccs/adm/request/errors
	-chmod 750 /ccs/adm/request/errors
	-chgrp systems     /ccs/adm/request/errors
	-chmod g+s                  /ccs/adm/request/errors
	-../utils/mkdirhier         /ccs/adm/request/etc
	-chmod 750 /ccs/adm/request/etc
	-chgrp systems     /ccs/adm/request/etc
	-chown request      /ccs/adm/request/etc
	-chmod g+s                  /ccs/adm/request/etc
	-../utils/mkdirhier         /local/adm/apps/req-1.2/bin
	-chmod 755  /local/adm/apps/req-1.2/bin
	-chgrp systems     /local/adm/apps/req-1.2/bin
	-chown request      /local/adm/apps/req-1.2/bin
	-../utils/mkdirhier         /local/adm/apps/req-1.2/etc
	-chmod 755  /local/adm/apps/req-1.2/etc
	-chgrp systems     /local/adm/apps/req-1.2/etc
	-chown request      /local/adm/apps/req-1.2/etc
	-../utils/mkdirhier         /ccs/adm/apps/req-1.2/bin
	-chmod 755  /ccs/adm/apps/req-1.2/bin
	-chgrp systems     /ccs/adm/apps/req-1.2/bin
	-chown request      /ccs/adm/apps/req-1.2/bin
	-../utils/mkdirhier         /ccs/adm/apps/req-1.2/etc
	-chmod 755  /ccs/adm/apps/req-1.2/etc
	-chgrp systems     /ccs/adm/apps/req-1.2/etc
	-chown request      /ccs/adm/apps/req-1.2/etc
	-../utils/mkdirhier         /local/adm/apps/req-1.2/lib
	-chmod 755  /local/adm/apps/req-1.2/lib
	-chgrp systems     /local/adm/apps/req-1.2/lib
	-chown request      /local/adm/apps/req-1.2/lib
	-../utils/mkdirhier         /local/adm/apps/req-1.2/man/man1
	-chmod 755  /local/adm/apps/req-1.2/man/man1
	-chgrp systems     /local/adm/apps/req-1.2/man/man1
	-chown request      /local/adm/apps/req-1.2/man/man1
	-touch /ccs/adm/request/etc/req-log
	-chgrp systems     /ccs/adm/request/etc/req-log    
	-chown request      /ccs/adm/request/etc/req-log
	-touch /ccs/adm/request/etc/kill-log
	-chgrp systems     /ccs/adm/request/etc/kill-log    
	-chown request      /ccs/adm/request/etc/kill-log
	-touch /ccs/adm/request/etc/req-stats
	-chgrp systems     /ccs/adm/request/etc/req-stats    
	-chown request      /ccs/adm/request/etc/req-stats


# ===========================================================================
# utility stuff
# 

tidy:
	rm -f *~ \#*\# *.o

clean:	tidy
	rm -f ${SOURCES} ${BINARIES} ${SCRIPTS} ${MANPAGES} ${LIBS} y.tab.c getdate.y
