#=======================================================================
# Makefile for man2hmtl.
#
# Current target list:
#	all			make everything
#	check			run validation suite
#	clean			remove temporary files
#	clobber			remove all automatically recreatable files
#	distclean		same as clobber
#	install			install files 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
#	man2html.hlp		VAX VMS HELP file of manual pages
#	man2html.html		HTML form of UNIX manual pages
#	man2html.ps		PostScript file of typeset manual pages
#	man2html.shar		UNIX shar bundle for e-mail distribution
#	man2html.tar		UNIX tar archive bundle
#	man2html.txt		ASCII text file of manual pages
#	man2html.zip		Info-ZIP archive bundle
#	man2html.zoo		Zoo archive bundle
#	mostlyclean		same as clean
#	realclean		same as clobber
#	test-version		test extraction of version number
#	uninstall		remove installed executable, man pages, and HTML files
#	uninstall-exe		remove installed executable
#	uninstall-html		remove installed HTML files
#	uninstall-man		remove installed man pages
#	uninstall-ftp		remove installed files in anonymous ftp
#				directory
#
# [20-Sep-1997] -- Correct small error in install-exe target: need to
# 		   remove new target file before linking to it.  Change
# 		   from compress to gzip in install-ftp target.
# [14-Dec-1996]
#=======================================================================

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

# Do NOT change this line:
PROGRAM		= man2html

# Need new awk (nawk) or gawk here; an absolute path name is desirable
# because it will be embedded in the installed executable shell script
AWK		= $(BINDIR)/gawk

CHMOD		= /bin/chmod

COL		= col -b

# 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 $(PROGRAM).awk \
		  $(PROGRAM).sh $(PROGRAM).hlp $(PROGRAM).html \
		  $(PROGRAM).man $(PROGRAM).ps $(PROGRAM).txt man2ps \
		  rofvms.awk

DISTILL         = distill

GZIP		= /usr/local/bin/gzip

LN		= /bin/ln

LS		= /bin/ls

$(PROGRAM)	= ./$(PROGRAM).sh

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 $(PROGRAM).awk.
VERSION		= `$(AWK) '/^\#\#\#[ \t]*version *= *"[0-9.]+", *$$/ \
		{ gsub(/[^0-9.]/,"",$$4); print $$4 }' $(PROGRAM).awk`

ZIP		= zip

ZOO		= zoo

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

all:
	@echo "There is nothing to build in this directory..."

check:	all
	@echo "$(PROGRAM) does not yet have a validation suite..."

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

clobber distclean realclean:	clean
	-$(RM) $(PROGRAM).hlp
	-$(RM) $(PROGRAM).txt
	-$(RM) $(PROGRAM).ps

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

# NB: Do not use $(PROGRAM).sh for this step, because it may
# not have been installed yet.  Just run awk directly instead.
$(PROGRAM).html:	$(PROGRAM).man
	$(AWK) -f $(PROGRAM).awk $(PROGRAM).man >$(PROGRAM).html

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

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

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

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

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

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

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

install:	install-exe install-html install-man

# The version number is always included in the library directory, and
# in a hard link of the executable file name, so that multiple
# versions can coexist on the same system.
install-exe:
	-$(RM) $(BINDIR)/$(PROGRAM)
	@if test ! -d $(LIBDIR) ; then $(MKDIR) $(LIBDIR) ; fi
	-$(CHMOD) 775 $(LIBDIR)
	@if test ! -d $(LIBDIR)/$(VERSION) ; then $(MKDIR) $(LIBDIR)/$(VERSION) ; fi
	@if test ! -d $(LIBDIR)/$(VERSION) ; \
	then \
		echo "Cannot create library directory $(LIBDIR)/$(VERSION)" ; \
		exit 1 ; \
	fi
	-$(CHMOD) 775 $(LIBDIR)/$(VERSION)
	-$(RM) $(LIBDIR)/$(VERSION)/$(PROGRAM).awk
	-$(CP) $(PROGRAM).awk $(LIBDIR)/$(VERSION)/$(PROGRAM).awk
	$(SED)  -e s@/usr/local/bin/gawk@$(AWK)@ \
		-e s@/usr/local/share/lib/man2html/@$(LIBDIR)/$(VERSION)/@ \
		$(PROGRAM).sh >$(BINDIR)/$(PROGRAM)
	$(CHMOD) 775 $(BINDIR)/$(PROGRAM)
	-$(RM) $(BINDIR)/$(PROGRAM)-$(VERSION)
	$(LN) $(BINDIR)/$(PROGRAM) $(BINDIR)/$(PROGRAM)-$(VERSION)
	$(LS) -l $(BINDIR)/$(PROGRAM) $(BINDIR)/$(PROGRAM)-$(VERSION)

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

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

install-ftp:	$(PROGRAM).tar $(PROGRAM).zip $(PROGRAM).zoo
	tar tvf $(PROGRAM)-$(VERSION).tar >$(FTPDIR)/$(PROGRAM)-$(VERSION).tar-lst
	$(GZIP) <$(PROGRAM)-$(VERSION).tar \
		>$(FTPDIR)/$(PROGRAM)-$(VERSION).tar.gz
	$(CP) $(PROGRAM)-$(VERSION).zip $(FTPDIR)
	$(CP) $(PROGRAM)-$(VERSION).zip-lst $(FTPDIR)
	$(CP) $(PROGRAM)-$(VERSION).zoo $(FTPDIR)
	$(CP) $(PROGRAM)-$(VERSION).zoo-lst $(FTPDIR)
	$(LS) -l $(FTPDIR)/$(PROGRAM)-$(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) $(PROGRAM).html

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

uninstall:	uninstall-exe uninstall-html uninstall-man

uninstall-exe:
	-$(RM) $(BINDIR)/$(PROGRAM) $(BINDIR)/$(PROGRAM)-$(VERSION)

uninstall-html:
	-$(RM) $(HTMLMANDIR)/$(PROGRAM).html

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

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