2 # (Re)builds API documentation
4 # Mark Huang <mlhuang@cs.princeton.edu>
5 # Copyright (C) 2006 The Trustees of Princeton University
10 # XML - as opposed to SGML - requires an identifier - see
11 # http://www.docbook.org/tdg/en/html/appb.html
12 # and, openjade opens http connections when using the official URL
13 # as an identifier; this is slow, and sometimes fails and breaks the build
15 # locating locally installed docbook43 dtd - fedora-specific
16 remote-docbook-43 = http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd
17 local-docbook-43 = $(wildcard /usr/share/sgml/docbook/xml-dtd-4.3*/docbookx.dtd)
18 docbook-43=$(if $(local-docbook-43),$(local-docbook-43),$(remote-docbook-43))
20 PLCAPI.xml: PLCAPI.xml.in
21 $(if $(local-docbook-43), \
22 echo Using locally installed DTD $(local-docbook-43), \
23 echo WARNING - could not locate local DTD - using remote $(remote-docbook-43))
24 sed -e "s,@DOCBOOK-43@,$(docbook-43)," $< > $@
26 .PLCAPI.xml.valid: Methods.xml
28 API_SOURCES = ../PLC/__init__.py ../PLC/Methods/__init__.py
30 Methods.xml: DocBook.py DocBookLocal.py $(API_SOURCES)
31 PYTHONPATH=.. ./DocBookLocal.py > $@
39 xmllint --valid --output $@ $<
41 # Remove the temporary output file after compilation
42 .SECONDARY: .%.xml.valid
44 # Compile it into other formats
45 FORMATS := dvi html man ps pdf rtf tex texi txt
47 DOCBOOK2FLAGS := -V biblio-number=1
50 %.$(1): %.xml .%.xml.valid
51 docbook2$(1) --nochunks $$(DOCBOOK2FLAGS) $$<
54 $(foreach format,$(FORMATS),$(eval $(call docbook2,$(format))))
57 rm -f $(patsubst %,*.%,$(FORMATS)) .*.xml.valid Methods.xml