fix uploads of docs
[platform/upstream/gstreamer.git] / docs / manuals.mak
1 # rewritten by Thomas to be more simple and working
2
3 ### These are all generic; we set all the variables we need
4
5 # intermediary build path
6 BUILDDIR = build
7 # same for images
8 BUILDIMAGESDIR = $(BUILDDIR)/images
9
10 # images
11 # right now, we only allow .png and .fig as source
12 # we might add more later if we feel the need
13
14 # PNG's can be source or built from .fig
15 PNG = $(strip $(PNG_SRC) $(FIG_SRC:.fig=.png))
16 # EPS .ps files can be built from .png or .fig
17 EPS = $(strip $(FIG_SRC:.fig=.ps) $(PNG_SRC:.png=.ps))
18 # PDF .pdf files can be built from .png or .fig
19 PDF = $(strip $(FIG_SRC:.fig=.pdf) $(PNG_SRC:.png=.pdf))
20
21 # where we expect to find images during building, whether by copying
22 # or by generating them
23 PNG_BUILT = $(foreach file, $(PNG), $(BUILDIMAGESDIR)/$(file))
24 EPS_BUILT = $(foreach file, $(EPS), $(BUILDIMAGESDIR)/$(file))
25 PDF_BUILT = $(foreach file, $(PDF), $(BUILDIMAGESDIR)/$(file))
26
27 # everything considered source
28 SRC = $(XML) $(PNG_SRC) $(FIG_SRC) $(CSS)
29
30 # generate A4 docs
31 PAPER_LOCALE = nl_NL
32
33 ### generate all documentation by default
34 all: html ps pdf
35
36 # can we generate HTML ?
37 if     DOC_HTML
38 HTML_DAT = html
39 html: html/index.html
40 else  #!DOC_HTML
41 HTML_DAT =
42 html:
43 endif #DOC_HTML
44
45 # can we generate PS ?
46 if     DOC_PS
47 PS_DAT = $(DOC).ps
48 ps: $(DOC).ps
49 else  #!DOC_PS
50 PS_DAT =
51 ps:
52 endif #DOC_PS
53
54 # can we generate PDF ?
55 if     DOC_PDF
56 PDF_DAT = $(DOC).pdf
57 pdf: $(DOC).pdf
58 else  #!DOC_PDF
59 PDF_DAT =
60 pdf:
61 endif #DOC_PDF
62
63 debug:
64         @echo "outputting some useful debug information"
65         @echo "Source XML:"
66         @echo "XML: '$(XML)'"
67         @echo "CSS: '$(CSS)'"
68         @echo "Source image files:"
69         @echo "PNG_SRC: '$(PNG_SRC)'"
70         @echo "FIG_SRC: '$(FIG_SRC)'"
71         @echo "All used image files:"
72         @echo "PNG: '$(PNG)'"
73         @echo "EPS: '$(EPS)'"
74         @echo "PDF: '$(PDF)'"
75         @echo "All used image files in their built path:"
76         @echo "PNG_BUILT: '$(PNG_BUILT)'"
77         @echo "EPS_BUILT: '$(EPS_BUILT)'"
78         @echo "PDF_BUILT: '$(PDF_BUILT)'"
79         @echo "End result products:"
80         @echo "HTML_DAT: '$(HTML_DAT)'"
81         @echo "PS_DAT:   '$(PS_DAT)'"
82         @echo "PDF_DAT:  '$(PDF_DAT)'"
83
84 # a rule to copy all of the source for docs into $(builddir)/build
85 $(BUILDDIR)/$(MAIN): $(XML) $(CSS)
86         @-mkdir -p $(BUILDDIR)
87         @for a in $(XML); do cp $(srcdir)/$$a $(BUILDDIR); done
88         @for a in $(CSS); do cp $(srcdir)/$$a $(BUILDDIR); done
89         @cp $(srcdir)/../version.entities $(BUILDDIR)
90
91 html/index.html: $(BUILDDIR)/$(MAIN) $(PNG_BUILT) $(FIG_SRC)
92         @echo "*** Generating HTML output ***"
93         @-mkdir -p html
94         @cp $(srcdir)/../image-png $(BUILDDIR)/image.entities
95         @cd $(BUILDDIR) && xmlto html -o ../html $(MAIN)
96         @test "x$(CSS)" != "x" && \
97           echo "Copying .css files: $(CSS)" && \
98           cp $(srcdir)/$(CSS) html
99         @test "x$(PNG)" != "x" && \
100           echo "Copying .png images: $(PNG_BUILT)" && \
101           mkdir -p html/images && \
102           cp $(PNG_BUILT) html/images || true
103
104 $(DOC).ps: $(BUILDDIR)/$(MAIN) $(EPS_BUILT) $(PNG_SRC) $(FIG_SRC)
105         @echo "*** Generating PS output ***"
106         @cp $(srcdir)/../image-eps $(BUILDDIR)/image.entities
107         export LC_PAPER=$(PAPER_LOCALE) && cd $(BUILDDIR) && xmlto ps -o .. $(MAIN)
108
109 $(DOC).pdf: $(DOC).ps
110         @echo "*** Generating PDF output ***"
111         @ps2pdf $(DOC).ps
112
113 #$(DOC).pdf: $(MAIN) $(PDF) $(FIG_SRC)
114 #       @echo "*** Generating PDF output ***"
115 #       @cp $(srcdir)/../image-pdf image.entities
116 #       @export LC_PAPER=$(PAPER_LOCALE) && xmlto pdf $(MAIN)
117 #       @rm image.entities
118
119 clean:
120         -$(RM) -r $(BUILDDIR)
121         -$(RM) -r html
122         -$(RM) $(DOC).ps
123         -$(RM) $(DOC).pdf
124         -$(RM) -r www
125
126 ### image generation
127
128 # copy png from source dir png
129 $(BUILDIMAGESDIR)/%.png: $(srcdir)/%.png
130         @echo "Copying $< to $@"
131         @mkdir -p $(BUILDIMAGESDIR)
132         @cp $< $@
133 # make png from fig
134 $(BUILDIMAGESDIR)/%.png: %.fig
135         @echo "Generating $@ from $<"
136         @mkdir -p $(BUILDIMAGESDIR)
137         @fig2dev -Lpng $< $@
138
139 # make ps(EPS) from fig
140 $(BUILDIMAGESDIR)/%.ps: %.fig
141         @echo "Generating $@ from $<"
142         @mkdir -p $(BUILDIMAGESDIR)
143         @fig2dev -Leps $< $@
144
145 # make pdf from fig
146 $(BUILDIMAGESDIR)/%.pdf: %.fig
147         @echo "Generating $@ from $<"
148         @mkdir -p $(BUILDIMAGESDIR)
149         @fig2dev -Lpdf $< $@
150
151 # make pdf from png
152 $(BUILDIMAGESDIR)/%.pdf: %.png
153         @echo "Generating $@ from $<"
154         @mkdir -p $(BUILDIMAGESDIR)
155         @cat $< | pngtopnm | pnmtops -noturn 2> /dev/null | epstopdf --filter --outfile $@ 2> /dev/null
156
157 # make ps(EPS) from png
158 $(BUILDIMAGESDIR)/%.ps: %.png
159         @echo "Generating $@ from $<"
160         @mkdir -p $(BUILDIMAGESDIR)
161         @cat $< | pngtopnm | pnmtops -noturn > $@ 2> /dev/null
162
163 # make sure xml validates properly
164 check-local:
165         xmllint -noout -valid $(MAIN)
166
167 ### this is a website upload target
168 upload: html ps pdf
169         export RSYNC_RSH=ssh
170         rsync -arv $(DOC).ps $(DOC).pdf html thomasvs@shell.sf.net:/home/groups/g/gs/gstreamer/htdocs/docs/$(VERSION)/$(DOC)
171