#=======================================================================
# Makefile for html-norm distribution.
#
# Current target list:
#	all			make everything
#	check			run validation suite
#	clean			remove temporary files
#	clobber			remove all automatically recreatable files
#	distclean		same as clobber
#	html-norm.hlp		VAX VMS HELP file of manual pages
#	html-norm.html		HTML form of UNIX manual pages
#	html-norm.ps		PostScript file of typeset manual pages
#	html-norm.shar		UNIX shar bundle for e-mail distribution
#	html-norm.tar		UNIX tar archive bundle
#	html-norm.txt		ASCII text file of manual pages
#	html-norm.zip		Info-ZIP archive bundle
#	html-norm.zoo		Zoo archive bundle
#	install			install file on system
#	install-exe		install html-norm on system
#	install-ftp		install html-norm distribution in anonymous
#				ftp directory
#	install-html		install HTML file on system
#	install-man		install UNIX manual pages on system
#	maintainer-clean	do NOT use this target! It is for author only.
#	mostlyclean		same as clean
#	realclean		same as clobber
#	test-version		test extraction of version number
#	uninstall		remove installed executable and man pages
#	uninstall-ftp		remove installed files in anonymous ftp
#				directory
#
# [14-Dec-1996]
#=======================================================================

# Change these two directories to match local conventions if you
# wish to do "make install" and "make install-ftp":
prefix		= /usr/local
BINDIR		= $(prefix)/bin
CATDIR		= $(prefix)/man/cat1
MANDIR		= $(prefix)/man/man1
MANEXT		= 1
CATALOGDIR	= $(prefix)/lib/html-check/lib
FTPDIR		= /u/ftp/pub/sgml
HTMLMANDIR	= $(prefix)/share/html/man/man1

# Need new awk (nawk) or gawk here:
AWK		= nawk

CHMOD		= chmod

COL		= col -b

COMPRESS	= compress

# Not all cp implementetions support the -p flag for preservation of
# file time stamps, but all rcp ones do, so use rcp instead of cp
CP		= /bin/cp
CP		= /bin/cp -p
CP		= rcp -p

DIST-FILES      = configure ChangeLog Makefile README html-norm.hlp \
		  html-norm.html html-norm.man html-norm.pdf \
		  html-norm.ps html-norm.sh html-norm.txt man2ps \
		  rofvms.awk sgmlnorm.hlp sgmlnorm.html sgmlnorm.man \
		  sgmlnorm.pdf sgmlnorm.ps sgmlnorm.txt

DISTILL         = distill

LN		= /bin/ln

LS		= /bin/ls

# man2html is available at ftp://ftp.math.utah.edu/pub/sgml/man2html-x.yy.*
MAN2HTML	= man2html

MAN2PS		= ./man2ps

# Not all mkdir commands support -p, but the install-html target
# will simply skip its installation work if the HTML directory
# is not available, perhaps because -p was unrecognized.
MKDIR		= mkdir -p

NROFF		= nroff

RM		= /bin/rm -f

SED		= /bin/sed

SHELL		= /bin/sh

TAR		= tar

UNZIP		= unzip

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

ZIP		= zip

ZOO		= zoo

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

all:
	@echo There is nothing to make in this directory

check:	all
	@echo html-norm does not yet have a validation suite

clean mostlyclean:
	-$(RM) *.o
	-$(RM) *.shar
	-$(RM) *.tar
	-$(RM) *.tar-lst
	-$(RM) *.zip
	-$(RM) *.zip-lst
	-$(RM) *.zoo
	-$(RM) *.zoo-lst
	-$(RM) *~
	-$(RM) \#*
	-$(RM) core

clobber distclean realclean:	clean
	-$(RM) html-norm.hlp
	-$(RM) html-norm.txt
	-$(RM) html-norm.ps
	-$(RM) sgmlnorm.hlp
	-$(RM) sgmlnorm.txt
	-$(RM) sgmlnorm.ps

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

html-norm.html:	html-norm.man
	$(MAN2HTML) html-norm.man

html-norm.pdf:	html-norm.ps
	$(DISTILL) html-norm.ps

html-norm.ps:	html-norm.man
	$(MAN2PS) <html-norm.man >html-norm.ps

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

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

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

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

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

install:	install-exe install-html install-man

install-exe:
	@if [ ! -f $(CATALOGDIR)/catalog ] ; \
	then \
		echo "Cannot find $(CATALOGDIR)/catalog: no installation possible" ; \
		echo "You may need to install the sp-1.0.1 distribution first" ; \
		exit 1 ; \
	fi
	@if [ ! -f $(BINDIR)/sgmlnorm ] ; \
	then \
		echo "Cannot find $(BINDIR)/sgmlnorm: no installation possible" ; \
		echo "You may need to install the sp-1.0.1 distribution first" ; \
		exit 1 ; \
	fi
	-$(RM) $(BINDIR)/html-norm
	$(SED)  -e 's@/usr/local/lib/html-check/lib@$(CATALOGDIR)@' \
		-e 's@/usr/local/bin@$(BINDIR)@' \
		html-norm.sh >$(BINDIR)/html-norm
	$(CHMOD) 755 $(BINDIR)/html-norm
	$(LN) $(BINDIR)/html-norm $(BINDIR)/html-norm-$(VERSION)
	$(LS) -l $(BINDIR)/html-norm $(BINDIR)/html-norm-$(VERSION)

install-html:	html-norm.html sgmlnorm.html
	-if [ -d $(HTMLMANDIR) ] ; \
	then \
		true ; \
	else \
		$(MKDIR) $(HTMLMANDIR) 2>/dev/null ; \
	fi
	-if [ -d $(HTMLMANDIR) ] ; \
	then \
		$(RM) $(HTMLMANDIR)/html-norm.html ; \
		$(CP) html-norm.html $(HTMLMANDIR)/html-norm.html ; \
		$(CHMOD) 664 $(HTMLMANDIR)/html-norm.html ; \
		$(LS) -l $(HTMLMANDIR)/html-norm.html ; \
		$(RM) $(HTMLMANDIR)/sgmlnorm.html ; \
		$(CP) sgmlnorm.html $(HTMLMANDIR)/sgmlnorm.html ; \
		$(CHMOD) 664 $(HTMLMANDIR)/sgmlnorm.html ; \
		$(LS) -l $(HTMLMANDIR)/sgmlnorm.html ; \
	else \
		echo "Skipping HTML file installation: $(HTMLMANDIR) does not exist" ; \
	fi

install-man:
	$(CP) html-norm.man $(MANDIR)/html-norm.$(MANEXT)
	-$(RM) $(CATDIR)/html-norm.$(MANEXT)
	$(CHMOD) 664 $(MANDIR)/html-norm.$(MANEXT)
	$(LS) -l $(MANDIR)/html-norm.$(MANEXT)
	$(CP) sgmlnorm.man $(MANDIR)/sgmlnorm.$(MANEXT)
	-$(RM) $(CATDIR)/sgmlnorm.$(MANEXT)
	$(CHMOD) 664 $(MANDIR)/sgmlnorm.$(MANEXT)
	$(LS) -l $(MANDIR)/sgmlnorm.$(MANEXT)

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

maintainer-clean:	distclean
	@echo "This command is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."
	-$(RM) html-norm.html
	-$(RM) html-norm.pdf
	-$(RM) sgmlnorm.html
	-$(RM) sgmlnorm.pdf

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

sgmlnorm.html:	sgmlnorm.man
	$(MAN2HTML) sgmlnorm.man

sgmlnorm.pdf:	sgmlnorm.ps
	$(DISTILL) sgmlnorm.ps

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

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

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

uninstall:	uninstall-exe uninstall-html uninstall-man

uninstall-exe:
	-$(RM) $(BINDIR)/html-norm $(BINDIR)/html-norm-$(VERSION)

uninstall-html:
	-$(RM) $(HTMLMANDIR)/html-norm.html
	-$(RM) $(HTMLMANDIR)/sgmlnorm.html

uninstall-man:
	-$(RM) $(CATDIR)/html-norm.$(MANEXT)
	-$(RM) $(CATDIR)/sgmlnorm.$(MANEXT)
	-$(RM) $(MANDIR)/html-norm.$(MANEXT)
	-$(RM) $(MANDIR)/sgmlnorm.$(MANEXT)

uninstall-ftp:
	-$(RM) $(FTPDIR)/html-norm-$(VERSION).tar
	-$(RM) $(FTPDIR)/html-norm-$(VERSION).tar-lst
	-$(RM) $(FTPDIR)/html-norm-$(VERSION).zip
	-$(RM) $(FTPDIR)/html-norm-$(VERSION).zip-lst
	-$(RM) $(FTPDIR)/html-norm-$(VERSION).zoo
	-$(RM) $(FTPDIR)/html-norm-$(VERSION).zoo-lst
