# -----------------------------------------------------------------------------
# Build and install manual and manual archives
#
# Creates a single file version of the Sparky manual.
# Creates a postscript version with links replaced by line numbers.
# Verifies the html syntax and validity of local links.
#
# The htmlcat and html2ps are Python programs I wrote.
# The htmlchek program was obtained off the web.
#

INSTALL		= \cp

SPARKY_INSTALL	= /usr/local/sparky
MANUAL_WWW	= /usr/local/html/cgl/sparky/manual

MANUAL_SECTIONS = overview.html intro.html views.html peaks.html \
		  extensions.html autoassign.html misc.html \
		  files.html install.html newstuff.html changelog.html \
		  indx.html
POSTSCRIPT_MANUAL = manual-postscript.gz
MANUAL_EXTRAS	= index.html manual.html $(POSTSCRIPT_MANUAL) \
		  PQR2.1.html
PACKAGED_MANUALS = manual.tar.gz manual.zip manual.ps \
		   manual-postscript.gz manual-postscript.zip

IMAGE_FILES	= \
	assign.gif assigngraph.gif assignlist.gif \
	c30.gif chemshift.gif chimera.gif chimera-dialog.gif \
	color-key-8.gif contour-scale.gif \
	g28-2d.gif g28-3d.gif g28-both.gif g28-key.gif \
	integ.gif k15-fixed.gif k15-problem.gif levels.gif \
	modes.gif n15hsqc.gif peaklist.gif pick.gif \
	reslist.gif run-autoassign.gif \
	s47-fixed.gif s47-gap.gif s47-list.gif spingraph.gif \
	spingraphopt.gif stripmatch.gif stripplot.gif \
	strips.gif stripspect.gif view.gif y35.gif

MANUAL_FILES	= $(MANUAL_SECTIONS) $(MANUAL_EXTRAS)

SLASH		= /
IMAGE_PATHS	= $(IMAGE_FILES:%=manual/images/%)
MANUAL_PATHS	= $(MANUAL_FILES:%=manual/%)


all: $(MANUAL_FILES)

install: $(MANUAL_FILES) $(SPARKY_INSTALL)/manual \
		$(SPARKY_INSTALL)/manual/images
	$(INSTALL) $(MANUAL_FILES) $(SPARKY_INSTALL)/manual
	cd $(SPARKY_INSTALL)/manual ; \
	chmod 644 $(MANUAL_FILES)
	cd images ; \
	$(INSTALL) $(IMAGE_FILES) $(SPARKY_INSTALL)/manual/images
	cd $(SPARKY_INSTALL)/manual/images ; \
	chmod 644 $(IMAGE_FILES)

$(SPARKY_INSTALL)/manual $(SPARKY_INSTALL)/manual/images:
	mkdir $@
	chmod 755 $@

install-www: $(MANUAL_FILES) $(PACKAGED_MANUALS)
	-mkdir $(MANUAL_WWW) $(MANUAL_WWW)/images
	rsync -az $(MANUAL_FILES) $(PACKAGED_MANUALS) $(MANUAL_WWW)
	cd images ; rsync -az $(IMAGE_FILES) $(MANUAL_WWW)/images

manual.html: $(MANUAL_SECTIONS)
	../bin/htmlcat $(MANUAL_SECTIONS) > manual.html

manual.ps: manual.html
	echo 'Postscript Sparky manual needs updating'

make-manual.ps: manual.html
	../bin/html2ps manual.html > manual.ps

manual-postscript.gz: manual.ps
	gzip -c manual.ps > manual-postscript.gz

manual-postscript.zip: manual.ps
	zip manual-postscript.zip manual.ps

check-html:
	htmlchek html3=1 netscape=1 xref=1 $(MANUAL_SECTIONS)

manual.tar.gz: $(MANUAL_FILES)
	ln -fs . manual
	tar cf manual.tar $(MANUAL_PATHS) $(IMAGE_PATHS)
	gzip -f manual.tar
	\rm manual

manual.zip: $(MANUAL_FILES)
	ln -fs . manual
	zip manual.zip $(MANUAL_PATHS) $(IMAGE_PATHS)
	\rm manual
