Refactor gcc.c, pulling out the reusable code
[ghc-hetmet.git] / rules / docbook.mk
1 # -----------------------------------------------------------------------------
2 #
3 # (c) 2009 The University of Glasgow
4 #
5 # This file is part of the GHC build system.
6 #
7 # To understand how the build system works and how to modify it, see
8 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
9 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
10 #
11 # -----------------------------------------------------------------------------
12
13
14 # Build docbook docs
15
16 define docbook
17 # $1 = dir
18 # $2 = docname
19
20 $(call clean-target,$1,docbook,$1/$2 $1/$2.pdf $1/$2.ps)
21
22 # empty "all_$1" target just in case we're not building docs at all
23 $(call all-target,$1,)
24
25 .PHONY: html_$1
26
27 ifeq "$$(BUILD_DOCBOOK_HTML)" "YES"
28 $(call all-target,$1,html_$1)
29
30 html_$1 : $1/$2/index.html
31
32 ifneq "$$(BINDIST)" "YES"
33 $1/$2/index.html: $$($1_DOCBOOK_SOURCES)
34         "$$(RM)" $$(RM_OPTS) -r $$(dir $$@)
35         "$$(XSLTPROC)" --stringparam base.dir $$(dir $$@) \
36                        --stringparam use.id.as.filename 1 \
37                        --stringparam html.stylesheet fptools.css \
38                        --nonet \
39                        $$(XSLTPROC_LABEL_OPTS) $$(XSLTPROC_OPTS) \
40                        $$(XSLTPROC_HTML_STYLESHEET) \
41                        $1/$2.xml
42         cp mk/fptools.css $$(dir $$@)
43 endif
44
45 INSTALL_HTML_DOC_DIRS += $1/$2
46 else
47 html_$1 :
48         @echo "*** HTML documentation is disabled; BUILD_DOCBOOK_HTML = NO"
49         @exit 1
50 endif
51
52 .PHONY: ps_$1
53 ifeq "$$(BUILD_DOCBOOK_PS)" "YES"
54 $(call all-target,$1,ps_$1)
55
56 ps_$1 : $1/$2.ps
57
58 ifneq "$$(BINDIST)" "YES"
59 $1/$2.ps: $$($1_DOCBOOK_SOURCES)
60         "$$(DBLATEX)" $$(DBLATEX_OPTS) $1/$2.xml --ps -o $$@
61 endif
62
63 INSTALL_DOCS += $1/$2.ps
64 else
65 ps_$1 :
66         @echo "*** PS documentation is disabled; BUILD_DOCBOOK_PS = NO"
67         @exit 1
68 endif
69
70 ifeq "$$(BUILD_DOCBOOK_PDF)" "YES"
71 $(call all-target,$1,pdf_$1)
72
73 .PHONY: pdf_$1
74 pdf_$1 : $1/$2.pdf
75
76 ifneq "$$(BINDIST)" "YES"
77 $1/$2.pdf: $$($1_DOCBOOK_SOURCES)
78         "$$(DBLATEX)" $$(DBLATEX_OPTS) $1/$2.xml --pdf -o $$@
79 endif
80
81 INSTALL_DOCS += $1/$2.pdf
82 else
83 pdf_$1 :
84         @echo "*** PDF documentation is disabled; BUILD_DOCBOOK_PDF = NO"
85         @exit 1
86 endif
87
88 endef
89