]> matita.cs.unibo.it Git - helm.git/blob - matita/help/C/Makefile
the Matita manual is now convertible to a decent .tex that is processable both
[helm.git] / matita / help / C / Makefile
1
2 include ../../../Makefile.defs
3
4 XSLTPROC=xsltproc
5 XHTML_XSL=matita-xhtml.xsl
6 FO_XSL=matita-fo.xsl
7 TEX_XSL=matita-tex.xsl
8 TEX_UNICODE_PATH=$(SRCROOT)/share/texmf/unicode
9 TEX_ENV=TEXINPUTS=.:$(TEX_UNICODE_PATH):$(TEX_UNICODE_PATH)/data:
10 MAIN=matita.xml
11
12 # one of: "fop", "pdflatex"
13 PDF_METHOD=pdflatex
14
15 # one of: "docbook2tex", "xsl"
16 TEX_METHOD=xsl
17
18 all: html txt
19
20 clean:
21         rm -f *.html *.fo *.pdf
22         rm -rf $(filter-out version.txt,$(wildcard *.txt))
23         rm -f *-stamp
24         rm -f matita.out matita.log matita.glo matita.dvi matita.idx
25         rm -f matita.aux matita.tex
26
27 # test (dumb implementation)
28 test:
29         SP_ENCODING=UTF-8 docbook2txt matita.xml
30
31 # XHTMLs generation
32
33 .PHONY: html
34 html: html-stamp
35 html-stamp: $(MAIN)
36         xsltproc $(XHTML_XSL) $<
37         touch $@
38
39 # TXTs generation
40
41 TXTS = $(patsubst %.html,%.txt,$(wildcard *.html))
42 .PHONY: txt
43 txt: txt-stamp
44 txt-stamp: html-stamp
45         $(MAKE) $(TXTS)
46         touch $@
47 %.txt: %.html
48         w3m -dump $< > $@
49
50 # PDF generation
51
52 pdf: pdf-stamp
53 pdf-stamp: $(patsubst %.xml,%.pdf,$(MAIN))
54         touch $@
55
56 %.fo: %.xml
57         xsltproc $(FO_XSL) $< | xmllint --format - > $@
58 ifeq ($(TEX_METHOD),docbook2tex)
59 %.tex: %.xml
60         docbook2tex $<
61 else ifeq ($(TEX_METHOD),xsl)
62 %.tex: %.xml $(TEX_XSL)
63         xsltproc $(TEX_XSL) $< > $@
64 endif
65
66 ifeq ($(PDF_METHOD),fop)
67 %.pdf: %.fo
68         fop $< $@
69 else ifeq ($(PDF_METHOD),pdflatex)
70 %.pdf: %.tex
71         $(TEX_ENV) pdflatex $<
72 endif
73
74 %.dvi: %.tex
75         $(TEX_ENV) latex $<
76 %.ps: %.dvi
77         dvips $<
78
79 .PRECIOUS: matita.tex
80