#=======================================================================
# Makefile for files in ~/src/psposter
#
# Current target list:
#	all
#	doorsigns
#	clean
#	mostlyclean
#	clobber
#	distclean
#	realclean
#	install
#	install-bin
#	install-ftp
#	install-US
#	install-ISO
#	install-man
#	psposter.hlp
#	psposter.ps
#	psposter.shar
#	psposter.tar
#	psposter.txt
#	psposter.zip
#	psposter.zoo
#	test-version
#	uninstall
#	uninstall-exe
#	uninstall-man
#
# [11-Jan-1995]
#=======================================================================

# These six values may require local customization:
AWK		= /usr/local/bin/gawk
BINDIR		= /usr/local/bin
CATDIR		= $(MANDIR)/../cat$(MANEXT)
FTPDIR		= /u/ftp/pub/misc
LIBDIR		= /usr/local/lib/psposter
MANDIR		= /usr/local/man/man$(MANEXT)
MANEXT		= 1

# If you don't have Robert Solovay's checksum program, use cat
CHECKSUM	= cat
CHECKSUM	= checksum

# You should not have to change anything below this point.
CHMOD		= chmod

COL		= col -b

COMPRESS	= compress

CP		= /bin/cp

DIST-FILES	= CHANGELOG README Makefile TODO bb.ps fontlist.ps \
		  fontlold.ps fontlsim.ps fontshow.ps man2ps \
		  psposter.awk psposter.ps psposter.sh psposter.man \
		  rofvms.awk

DOORFILES	= door.les door.nhfb door.pjb
DOORFILES	=

EXPAND		= expand

FONTNAME	= CharterBT-Bold
FONTNAME	= Utopia-BoldItalic
FONTNAME	= URWGroteskT-Bold
FONTNAME	= NimbusRomanNo9L-Regular
FONTNAME	= Copperplate-ThirtyAB
FONTNAME	= CharterBT-BoldItalic

ISPELL		= ispell

LN		= ln -s

MAN2PS		= ./man2ps

NROFF		= nroff

PSPOSTER	= ./psposter.sh

PSPOSTERFLAGS	= +bg powderblue +fg navyblue +paper 4inx9.5in +x 1in +y 1in +l +p 60pt +fn $(FONTNAME)
PSPOSTERFLAGS	= +bg PaleGreen +fg navyblue +paper 4inx9.5in +x 1in +y 1in +l +p 60pt +fn $(FONTNAME)

RM		= /bin/rm -f

SED		= /bin/sed

SHELL		= /bin/sh

SORT		= sort

SPELL		= spell

UNZIP		= unzip

# NB: The version number of the FTP psposter archive files is extracted
# from that of psposter.awk.
VERSION		= `$(AWK) '/^...[ \t]*version *= *"[0-9.]+", *$$/ \
		{ gsub(/[^0-9.]/,"",$$4); print $$4 }' psposter.awk`

ZIP		= zip

ZOO		= zoo

#=======================================================================

all:	psposter.txt psposter.hlp psposter.ps

doorsigns:
	for f in $(DOORFILES) ; \
	do \
		$(PSPOSTER) $(PSPOSTERFLAGS) <$$f >$$f.ps ; \
	done

clean mostlyclean:
	-$(RM) *.i
	-$(RM) *.o
	-$(RM) *~
	-$(RM) \#*
	-$(RM) a.out
	-$(RM) core

clobber distclean realclean:	clean
	-$(RM) psposter-?.??.??? psposter-?.??.???-???
	-$(RM) psposter.hlp
	-$(RM) psposter.ps
	-$(RM) psposter.shar
	-$(RM) psposter.tar
	-$(RM) psposter.txt
	-$(RM) psposter.zip
	-$(RM) psposter.zoo

install:
	@echo "Choose install-US or install-ISO to select the default paper type."

install-bin:
	$(SED)  -e 's@/usr/local/bin/gawk@$(AWK)@' \
		-e 's@/usr/local/lib/psposter@$(LIBDIR)@' \
		< psposter.sh >$(BINDIR)/psposter
	$(CHMOD) 775 $(BINDIR)/psposter

install-ftp:	psposter.tar psposter.zip psposter.zoo
	tar tvf psposter-$(VERSION).tar >$(FTPDIR)/psposter-$(VERSION).tar-lst
	$(COMPRESS) <psposter-$(VERSION).tar \
		>$(FTPDIR)/psposter-$(VERSION).tar.z
	$(CP) psposter-$(VERSION).zip $(FTPDIR)
	$(CP) psposter-$(VERSION).zip-lst $(FTPDIR)
	$(CP) psposter-$(VERSION).zoo $(FTPDIR)
	$(CP) psposter-$(VERSION).zoo-lst $(FTPDIR)
	ls -l $(FTPDIR)/psposter*

install-US:	install-bin install-man
	-if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
	$(CP) psposter.awk $(LIBDIR)/psposter.awk
	$(CHMOD) 664 $(LIBDIR)/psposter.awk

install-ISO:	install-bin install-man
	-if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
	$(SED)  -e 's/set_paper_dimensions("A")/set_paper_dimensions("A4")/' \
		< psposter.awk | $(CHECKSUM) >$(LIBDIR)/psposter.awk
	$(CHMOD) 664 $(LIBDIR)/psposter.awk

install-man:	uninstall-man
	-$(RM) $(CATDIR)/psposter.$(MANEXT)
	-$(CP) psposter.man $(MANDIR)/psposter.$(MANEXT)
	$(CHMOD) 664 $(MANDIR)/psposter.$(MANEXT)

# VAX VMS help file format from psposter.txt
psposter.hlp:	psposter.txt rofvms.awk
	$(EXPAND) <psposter.txt | $(AWK) -f rofvms.awk >psposter.hlp

psposter.ps:	psposter.man
	$(MAN2PS) <psposter.man >psposter.ps

psposter.shar:	$(DIST-FILES)
	shar -b -c -v $(DIST-FILES) >psposter.shar

psposter.tar:	$(DIST-FILES)
	-$(RM) psposter.tar psposter.tar-lst
	tar chf psposter.tar $(DIST-FILES)
	-mkdir psposter-$(VERSION)
	cd psposter-$(VERSION); tar xf ../psposter.tar
	tar cf psposter-$(VERSION).tar psposter-$(VERSION)
	-$(RM) -r psposter-$(VERSION)
	-$(RM) psposter.tar
	$(LN) psposter-$(VERSION).tar psposter.tar

psposter.txt:	psposter.man
	$(NROFF) -man $? | $(COL) >$@

psposter.zip:	$(DIST-FILES)
	-$(RM) psposter*.zip
	-$(RM) psposter*.zip-lst
	$(ZIP) psposter-$(VERSION).zip $(DIST-FILES)
	$(UNZIP) -v psposter-$(VERSION).zip >psposter-$(VERSION).zip-lst
	$(LN) psposter-$(VERSION).zip psposter.zip

psposter.zoo:	$(DIST-FILES)
	-$(RM) psposter*.zoo
	-$(RM) psposter*.zoo-lst
	$(ZOO) a psposter-$(VERSION).zoo $(DIST-FILES)
	$(ZOO) v psposter-$(VERSION).zoo >psposter-$(VERSION).zoo-lst
	$(LN) psposter-$(VERSION).zoo psposter.zoo

test-version:
	@echo "Version number is ""'"$(VERSION)"'"

uninstall:	uninstall-exe uninstall-man

uninstall-exe:
	-$(RM) $(BINDIR)/psposter

uninstall-man:
	-$(RM) $(MANDIR)/psposter.$(MANEXT)
	-$(RM) $(CATDIR)/psposter.$(MANEXT)