Fix version output when missing.
[plcapi.git] / doc / Makefile
1 #
2 # (Re)builds API documentation
3 #
4 # Mark Huang <mlhuang@cs.princeton.edu>
5 # Copyright (C) 2006 The Trustees of Princeton University
6 #
7 # $Id$
8 # $URL$
9 #
10
11 all: PLCAPI.html
12
13 # XML - as opposed to SGML - requires an identifier - see 
14 # http://www.docbook.org/tdg/en/html/appb.html
15 # and, openjade opens http connections when using the official URL 
16 # as an identifier; this is slow, and sometimes fails and breaks the build
17
18 # locating locally installed docbook43 dtd - fedora-specific
19 remote-docbook-43 = http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd
20 local-docbook-43 = $(wildcard /usr/share/sgml/docbook/xml-dtd-4.3-*/docbookx.dtd)
21 docbook-43=$(if $(local-docbook-43),$(local-docbook-43),$(remote-docbook-43))
22
23 PLCAPI.xml: PLCAPI.xml.in
24         $(if $(local-docbook-43), \
25         echo Using locally installed DTD $(local-docbook-43), \
26         echo WARNING - could not locate local DTD - using remote $(remote-docbook-43))
27         sed -e "s:@DOCBOOK-43@:$(docbook-43):" $< > $@
28
29 .PLCAPI.xml.valid: Methods.xml
30
31 API_SOURCES = ../PLC/__init__.py ../PLC/Methods/__init__.py
32
33 Methods.xml: DocBook.py DocBookLocal.py $(API_SOURCES)
34         PYTHONPATH=.. ./DocBookLocal.py > $@
35
36 #
37 # Documentation
38 #
39
40 # Validate the XML
41 .%.xml.valid: %.xml
42         xmllint --valid --output $@ $<
43
44 # Remove the temporary output file after compilation
45 .SECONDARY: .%.xml.valid
46
47 # Compile it into other formats
48 FORMATS := dvi html man ps pdf rtf tex texi txt
49
50 DOCBOOK2FLAGS := -V biblio-number=1
51
52 define docbook2
53 %.$(1): %.xml .%.xml.valid
54         docbook2$(1) --nochunks $$(DOCBOOK2FLAGS) $$<
55 endef
56
57 $(foreach format,$(FORMATS),$(eval $(call docbook2,$(format))))
58
59 clean:
60         rm -f $(patsubst %,*.%,$(FORMATS)) .*.xml.valid Methods.xml
61
62 .PHONY: clean all