JADE = jade

SGML2X=/usr/bin/sgml2x

DTD = dtd/v0.1/alcovebook.dtd
MODS = $(wildcard $(dir ${DTD})*.mod)

DESTDIR=
DOCDIR=/usr/share/doc/alcovebook-sgml-doc

VERSION = 0.1.0
CVSTAG = RELEASE_$(subst .,-,${VERSION})

TARGETFORMATS = ps pdf fot html rtf mif
CONVERTERS = $(patsubst %,alcovebook2%,${TARGETFORMATS})

CONVERTERFILES = $(addprefix bin/,${CONVERTERS})

DIRS= html db41html db31html

all: s2x docs

s2x: ${CONVERTERFILES}

known-fonts: /usr/share/texmf/tex/jadetex/base/mlnames.sty
	grep '^\\def\\Family' $< | cut -d@ -f2 | cut -d \{ -f 1 >$@

SGMLDIR = /usr/share/sgml
install:
	install -d -m755 ${DESTDIR}/usr/bin ${DESTDIR}${SGMLDIR}/alcovebook/dtd
  # catalog
	install -m644 catalog-installable ${DESTDIR}${SGMLDIR}/alcovebook/alcovebook.catalog
  # dtd
	for v in dtd/v*.*; do \
		install -d -m755 ${DESTDIR}${SGMLDIR}/alcovebook/$$v ;\
		install -m644 $$v/*.* ${DESTDIR}${SGMLDIR}/alcovebook/$$v/ ;\
	done
  # dsssl
	set -e && for dtd in docbook; do for dir in print; do \
	  if test -d stylesheet/dsssl/$${dtd}/$${dir}; then \
	    install -d -m755 ${DESTDIR}${SGMLDIR}/$${dtd}/stylesheet/dsssl/alcove/$${dir} ;\
	    install -m644 stylesheet/dsssl//$${dtd}/$${dir}/*.* \
		${DESTDIR}${SGMLDIR}/$${dtd}/stylesheet/dsssl/alcove/$${dir} ;\
	  fi ;\
	done; done
  # sgml2x scripts
	cd ${DESTDIR}/usr/bin/ && rm -f ${CONVERTERS}
	for conv in ${CONVERTERS}; do \
		ln -s sgml2x ${DESTDIR}/usr/bin/$$conv ; \
	done

  # sgml2x conf
	install -d -m755 ${DESTDIR}/etc/sgml
	cp -a sgml2x-aliases ${DESTDIR}/etc/sgml/sgml2x
	find ${DESTDIR}/etc/sgml/sgml2x -type d -name CVS -o -name .cvsignore | xargs rm -rf

  # alcovedoc2alcovebook
	install -m755 bin/alcovedoc2alcovebook ${DESTDIR}/usr/bin/
	install -d -m755 ${DESTDIR}/usr/lib/perl5/sgmlspl-specs
	install -m644 ad2ab-spec.pl ${DESTDIR}/usr/lib/perl5/sgmlspl-specs/


  # docs
	install -d -m755 ${DESTDIR}${DOCDIR}
	cp -a html ${DESTDIR}${DOCDIR}
	cp -a doc/*.html doc/*.pdf ${DESTDIR}${DOCDIR}
	cp -p TODO.txt ${DESTDIR}${DOCDIR}/TODO

checkversion:
	test `head -1 debian/changelog | sed 's/^.*(\(.*\)-.*$$/\1/'` = ${VERSION}

distdir: checkversion
	rm -rf alcovebook-sgml-${VERSION}
	cvs -q export -r ${CVSTAG} -d alcovebook-sgml-${VERSION} alcovebook-sgml

dist: distdir
	tar zcf alcovebook-sgml-${VERSION}.tar.gz alcovebook-sgml-${VERSION}
	rm -rf alcovebook-sgml-${VERSION}

upload: dist
	scp alcovebook-sgml-${VERSION}.tar.gz ydirson@freesoftware.fsf.org:/upload/alcovebook/

${CONVERTERFILES}: bin/alcovebook2%:
	rm -f $@
	ln -s ${SGML2X} $@

clean::
	rm -f ${CONVERTERFILES} TODO.txt
	rm -rf TODO.html
	${MAKE} -C doc clean
	${MAKE} -C images clean
	${MAKE} -C examples clean

# Misc doc-building rules

docs: TODO.txt
	cd doc && ${MAKE}
	mkdir -p html
	ln -sf ${MODS} .	# workaround for perlsgml bug
	dtd2html -outdir html -dtdname AlcoveBook -modelwidth 78 \
		-ents -tree -descfile alcovebook.dsc \
		${DTD}
	rm $(notdir ${MODS})

db41html:
	mkdir -p db41html
	dtd2html -outdir db41html -dtdname 'DocBook 4.1' -modelwidth 78 \
		-ents -tree \
		/usr/lib/sgml/dtd/docbook-4.1/docbook.dtd

db31html:
	mkdir -p db31html
	dtd2html -outdir db31html -dtdname 'DocBook 3.1' -modelwidth 78 \
		-ents -tree \
		/usr/lib/sgml/dtd/docbook-3.1/docbook.dtd

test:
	nsgmls -sv test-alcovebook.sgml

%.alcovebook.sgml: %.alcovedoc.sgml ad2ab-spec.pl Makefile
	./alcovedoc2alcovebook $< $@

%.ps: %.sgml
	./bin/alcovebook2ps -c catalog $<

%.pdf: %.sgml
	./bin/alcovebook2pdf -c catalog $<

%.html: %.sgml
	./bin/alcovebook2html -c catalog $<

%.txt: %.html
	lynx -dump $</t1.html >$@

undef:
	grep -v '^[| ]*$$' html/DTD-TREE.html | \
		grep -v '^<' | \
		grep -vE '(<A HREF=|\| *{A?[+-]}|#PCDATA|RCDATA|EMPTY)' | \
		tr -d ' _|,?()+*' | \
		perl -ne 'if (m%^<.*STRONG>(.*)</STRONG>%) { $$a = $$1 } else { print "$$a: $$_" }' | \
		sort | uniq

clean::
	rm -f $(filter-out %.sgml, $(wildcard *.alcovedoc.* *.alcovebook.* *.docbook.*)) *~
	rm -f *.jtex *.aux *.log *.dvi *.ps *.pdf *.out *.fot
	rm -rf ${DIRS}

van:
	ssh van rm -rf copy-of-ab/*
	scp -p sgmlwhere.pl *-spec.pl alcovedoc2alcovebook Makefile *catalog *.eps *.sgml \
		van:copy-of-ab/
	scp -rp stylesheet dtd examples van:copy-of-ab/
	ssh van mkdir -p src/alcove/documents/specifications/PROCEDURES/includes
	scp -q -p ~/src/alcove/documents/specifications/PROCEDURES/includes/*.alcovebook.sgml \
		van:src/alcove/documents/specifications/PROCEDURES/includes/

.PHONY: ${DIRS}
