Setting tag plcapi-5.4-2
[plcapi.git] / doc / Makefile
index 5a77386..508d3ac 100644 (file)
@@ -1,80 +1,59 @@
-\r
-### USER EDITABLE VARS ###\r
-\r
-WEB=/var/www/xmlrpc/doc\r
-\r
-MKDIR=mkdir\r
-\r
-PHP=php\r
-\r
-FOP=fop\r
-\r
-PHPDOC=phpdoc\r
-\r
-\r
-#### DO NOT TOUCH FROM HERE ONWARDS ###\r
-\r
-install:\r
-       ${MKDIR} -p ${WEB}\r
-       cp *.html ${WEB}\r
-       cp *.css ${WEB}\r
-       cp *.gif ${WEB}\r
-       @echo HTML version of the manual has been installed to ${WEB}\r
-\r
-\r
-### the following targets are to be used for library development ###\r
-\r
-doc: out/index.html xmlrpc_php.pdf javadoc-out/index.html\r
-\r
-# tools currently used in building docs: php 5 with xsl extension, apache fop, phpdocumentor\r
-# alternatives include doxygen, jade, saxon, xsltproc etc...\r
-\r
-out/index.html xmlrpc_php.pdf: xmlrpc_php.xml\r
-       -${MKDIR} out\r
-# Jade cmd yet to be rebuilt, starting from xml file and putting output in ./out dir, e.g.\r
-#      jade -t xml -d custom.dsl xmlrpc_php.xml\r
-#\r
-# convertdoc command for xmlmind xxe editor\r
-#      convertdoc docb.toHTML xmlrpc_php.xml -u out\r
-#\r
-# saxon + xerces xml parser + saxon extensions + xslthl: adds a little syntax highligting\r
-# (bold and italics only, no color) for php source examples...\r
-#      java \\r
-#      -classpath c:\programmi\saxon\saxon.jar\;c:\programmi\saxon\xslthl.jar\;c:\programmi\xerces\xercesImpl.jar\;C:\htdocs\xmlrpc_cvs\docbook-xsl\extensions\saxon65.jar \\r
-#      -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \\r
-#      -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \\r
-#      -Dxslthl.config=file:///c:/htdocs/xmlrpc_cvs/docbook-xsl/highlighting/xslthl-config.xml \\r
-#      com.icl.saxon.StyleSheet -o xmlrpc_php.fo.xml xmlrpc_php.xml custom.fo.xsl use.extensions=1\r
-#\r
-#      custom php script that does the xslt magic\r
-       ${PHP} convert.php xmlrpc_php.xml custom.xsl out/\r
-#      post process html files to highlight php code samples\r
-       ${PHP} highlight.php out\r
-#      convert to fo and then to pdf using apache fop\r
-       ${PHP} convert.php xmlrpc_php.xml custom.fo.xsl xmlrpc_php.fo.xml\r
-       ${FOP} xmlrpc_php.fo.xml xmlrpc_php.pdf\r
-#      -rm xmlrpc_php.fo.xml\r
-\r
-javadoc-out/index.html: ../lib/xmlrpc.inc ../lib/xmlrpcs.inc ../lib/xmlrpc_wrappers.inc\r
-# generate docs out of javadoc via doxygen\r
-#      doxygen phpxmlrpc.dox\r
-#\r
-#      generate docs out of javadoc via phpdocumentor\r
-       ${PHP} ${PHPDOC} -f ../lib/xmlrpc.inc,../lib/xmlrpcs.inc,../lib/xmlrpc_wrappers.inc -t javadoc-out --title PHP-XMLRPC\r
-       -rm -rf javadoc-out/phpdoc-cache-*\r
-\r
-dist: doc\r
-       ${MKDIR} -p ../xmlrpc-${VERSION}/doc\r
-       -cp out/*.html ../xmlrpc-${VERSION}/doc\r
-       -cp out/*.css ../xmlrpc-${VERSION}/doc\r
-       -cp out/*.gif ../xmlrpc-${VERSION}/doc\r
-       -cp out/*.pdf ../xmlrpc-${VERSION}/doc\r
-       cp xmlrpc_php.xml ../xmlrpc-${VERSION}/doc\r
-       cp xmlrpc_php.pdf ../xmlrpc-${VERSION}/doc\r
-       cp Makefile ../xmlrpc-${VERSION}/doc\r
-\r
-clean:\r
-       -rm -f out/*.html\r
-       -rm -rf javadoc-out\r
-       -rm xmlrpc_php.fo.xml\r
-       -rm xmlrpc_php.pdf\r
+#
+# (Re)builds API documentation
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+
+all: PLCAPI.html
+
+# XML - as opposed to SGML - requires an identifier - see 
+# http://www.docbook.org/tdg/en/html/appb.html
+# and, openjade opens http connections when using the official URL 
+# as an identifier; this is slow, and sometimes fails and breaks the build
+
+# locating locally installed docbook43 dtd - fedora-specific
+remote-docbook-43 = http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd
+local-docbook-43 = $(wildcard /usr/share/sgml/docbook/xml-dtd-4.3*/docbookx.dtd)
+docbook-43=$(if $(local-docbook-43),$(local-docbook-43),$(remote-docbook-43))
+
+PLCAPI.xml: PLCAPI.xml.in
+       $(if $(local-docbook-43), \
+       echo Using locally installed DTD $(local-docbook-43), \
+       echo WARNING - could not locate local DTD - using remote $(remote-docbook-43))
+       sed -e "s,@DOCBOOK-43@,$(docbook-43)," $< > $@
+
+.PLCAPI.xml.valid: Methods.xml
+
+API_SOURCES = ../PLC/__init__.py ../PLC/Methods/__init__.py
+
+Methods.xml: DocBook.py DocBookLocal.py $(API_SOURCES)
+       PYTHONPATH=.. ./DocBookLocal.py > $@
+
+#
+# Documentation
+#
+
+# Validate the XML
+.%.xml.valid: %.xml
+       xmllint --valid --output $@ $<
+
+# Remove the temporary output file after compilation
+.SECONDARY: .%.xml.valid
+
+# Compile it into other formats
+FORMATS := dvi html man ps pdf rtf tex texi txt
+
+DOCBOOK2FLAGS := -V biblio-number=1
+
+define docbook2
+%.$(1): %.xml .%.xml.valid
+       docbook2$(1) --nochunks $$(DOCBOOK2FLAGS) $$<
+endef
+
+$(foreach format,$(FORMATS),$(eval $(call docbook2,$(format))))
+
+clean:
+       rm -f $(patsubst %,*.%,$(FORMATS)) .*.xml.valid Methods.xml
+
+.PHONY: clean all