-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathgp-manual-documentation.m4
329 lines (298 loc) · 9.38 KB
/
gp-manual-documentation.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
dnl
dnl check where to install documentation
dnl
dnl determines documentation "root directory", i.e. the directory
dnl where all documentation will be placed in
dnl
AC_DEFUN([GP_CHECK_DOCDIR],
[
AC_ARG_WITH(doc-dir, [ --with-doc-dir=PATH Where to install docs [default=autodetect]])dnl
# check for the main ("root") documentation directory
AC_MSG_CHECKING([main docdir])
if test "x${with_doc_dir}" != "x"
then # docdir is given as parameter
docdir="${with_doc_dir}"
AC_MSG_RESULT([${docdir} (from parameter)])
else # otherwise invent a docdir hopefully compatible with system policy
if test -d "/usr/share/doc"
then
maindocdir='${prefix}/share/doc'
AC_MSG_RESULT([${maindocdir} (FHS style)])
elif test -d "/usr/doc"
then
maindocdir='${prefix}/doc'
AC_MSG_RESULT([${maindocdir} (old style)])
else
maindocdir='${datadir}/doc'
AC_MSG_RESULT([${maindocdir} (default value)])
fi
AC_MSG_CHECKING(package docdir)
# check whether to include package version into documentation path
# FIXME: doesn't work properly.
if ls -d /usr/{share/,}doc/*-[[]0-9[]]* > /dev/null 2>&1
then
docdir="${maindocdir}/${PACKAGE}-${VERSION}"
AC_MSG_RESULT([${docdir} (redhat style)])
else
docdir="${maindocdir}/${PACKAGE}"
AC_MSG_RESULT([${docdir} (default style)])
fi
fi
AC_SUBST(docdir)
])dnl
dnl Solaris hack for grep and tr
AC_DEFUN([GP_CHECK_TR],
[
if test -n "`echo $host_os | grep '[sS]olaris'`"; then
TR=/usr/xpg4/bin/tr
GREP=/usr/xpg4/bin/grep
else
TR=tr
GREP=grep
fi
])
dnl
dnl check whether to build docs and where to:
dnl
dnl * determine presence of prerequisites (only gtk-doc for now)
dnl * determine destination directory for HTML files
dnl
AC_DEFUN([GP_BUILD_DOCS],
[
# doc dir has to be determined in advance
AC_REQUIRE([GP_CHECK_DOCDIR])
AC_REQUIRE([GP_CHECK_GTK_DOC])
AC_REQUIRE([GP_CHECK_FIG2DEV])
AC_REQUIRE([GP_CHECK_DOCBOOK_XML])
AC_REQUIRE([GP_CHECK_TR])
AC_REQUIRE([GP_CHECK_PSTOIMG])
AC_REQUIRE([GP_CHECK_DOT])
AC_REQUIRE([GP_CHECK_W3M])
gphoto2xml='$(top_srcdir)/src/gphoto2.xml'
AC_SUBST(gphoto2xml)
dnl ---------------------------------------------------------------------------
dnl Give the user the possibility to install documentation in
dnl user-defined locations.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(html-dir, [ --with-html-dir=PATH Where to install html docs [default=autodetect]])
AC_MSG_CHECKING([for html dir])
if test "x${with_html_dir}" = "x" ; then
htmldir="${docdir}/html"
AC_MSG_RESULT([${htmldir} (default)])
else
htmldir="${with_html_dir}"
AC_MSG_RESULT([${htmldir} (from parameter)])
fi
AC_SUBST(htmldir)
AC_ARG_WITH(xhtml-dir, [ --with-xhtml-dir=PATH Where to install xhtml docs [default=autodetect]])
AC_MSG_CHECKING([for xhtml dir])
if test "x${with_xhtml_dir}" = "x" ; then
xhtmldir="${docdir}/xhtml"
AC_MSG_RESULT([${xhtmldir} (default)])
else
xhtmldir="${with_xhtml_dir}"
AC_MSG_RESULT([${xhtmldir} (from parameter)])
fi
AC_SUBST(xhtmldir)
AC_ARG_WITH(html-nochunks-dir, [ --with-html-nochunks-dir=PATH Where to install html-nochunks docs [default=autodetect]])
AC_MSG_CHECKING([for html-nochunks dir])
if test "x${with_html_nochunks_dir}" = "x" ; then
htmlnochunksdir="${docdir}/html-nochunks"
AC_MSG_RESULT([${htmlnochunksdir} (default)])
else
htmlnochunksdir="${with_html_nochunks_dir}"
AC_MSG_RESULT([${htmlnochunksdir} (from parameter)])
fi
AC_SUBST(htmlnochunksdir)
AC_ARG_WITH(xhtml-nochunks-dir, [ --with-xhtml-nochunks-dir=PATH Where to install xhtml-nochunks docs [default=autodetect]])
AC_MSG_CHECKING([for xhtml-nochunks dir])
if test "x${with_xhtml_nochunks_dir}" = "x" ; then
xhtmlnochunksdir="${docdir}/xhtml-nochunks"
AC_MSG_RESULT([${xhtmlnochunksdir} (default)])
else
xhtmlnochunksdir="${with_xhtml_nochunks_dir}"
AC_MSG_RESULT([${xhtmlnochunksdir} (from parameter)])
fi
AC_SUBST(xhtmlnochunksdir)
AC_ARG_WITH(xml-dir, [ --with-xml-dir=PATH Where to install xml docs [default=autodetect]])
AC_MSG_CHECKING([for xml dir])
if test "x${with_xml_dir}" = "x" ; then
xmldir="${docdir}/xml"
AC_MSG_RESULT([${xmldir} (default)])
else
xmldir="${with_xml_dir}"
AC_MSG_RESULT([${xmldir} (from parameter)])
fi
AC_SUBST(xmldir)
xmlcssdir="${xmldir}/css"
AC_SUBST(xmlcssdir)
AC_ARG_WITH(txt-dir, [ --with-txt-dir=PATH Where to install txt docs [default=autodetect]])
AC_MSG_CHECKING([for txt dir])
if test "x${with_txt_dir}" = "x" ; then
txtdir="${docdir}/txt"
AC_MSG_RESULT([${txtdir} (default)])
else
txtdir="${with_txt_dir}"
AC_MSG_RESULT([${txtdir} (from parameter)])
fi
AC_SUBST(txtdir)
AC_ARG_WITH(man-dir, [ --with-man-dir=PATH Where to install man docs [default=autodetect]])
AC_MSG_CHECKING([for man dir])
if test "x${with_man_dir}" = "x" ; then
manmandir="${docdir}/man"
AC_MSG_RESULT([${manmandir} (default)])
else
manmandir="${with_man_dir}"
AC_MSG_RESULT([${manmandir} (from parameter)])
fi
AC_SUBST(manmandir)
AC_ARG_WITH(pdf-dir, [ --with-pdf-dir=PATH Where to install pdf docs [default=autodetect]])
AC_MSG_CHECKING([for pdf dir])
if test "x${with_pdf_dir}" = "x" ; then
pdfdir="${docdir}/pdf"
AC_MSG_RESULT([${pdfdir} (default)])
else
pdfdir="${with_pdf_dir}"
AC_MSG_RESULT([${pdfdir} (from parameter)])
fi
AC_SUBST(pdfdir)
AC_ARG_WITH(ps-dir, [ --with-ps-dir=PATH Where to install ps docs [default=autodetect]])
AC_MSG_CHECKING([for ps dir])
if test "x${with_ps_dir}" = "x" ; then
psdir="${docdir}/ps"
AC_MSG_RESULT([${psdir} (default)])
else
psdir="${with_ps_dir}"
AC_MSG_RESULT([${psdir} (from parameter)])
fi
AC_SUBST(psdir)
AC_ARG_WITH(figure-dir, [ --with-figure-dir=PATH Where to install figures [default=autodetect]])
AC_MSG_CHECKING([for figure dir])
if test "x${with_figure_dir}" = "x" ; then
figuredir="${docdir}/figures"
AC_MSG_RESULT([${figuredir} (default)])
else
figuredir="${with_figure_dir}"
AC_MSG_RESULT([${figuredir} (from parameter)])
fi
AC_SUBST(figuredir)
AC_ARG_WITH(screenshots-dir, [ --with-screenshots-dir=PATH Where to install screenshotss [default=autodetect]])
AC_MSG_CHECKING([for screenshots dir])
if test "x${with_screenshots_dir}" = "x" ; then
screenshotsdir="${docdir}/screenshots"
AC_MSG_RESULT([${screenshotsdir} (default)])
else
screenshotsdir="${with_screenshots_dir}"
AC_MSG_RESULT([${screenshotsdir} (from parameter)])
fi
AC_SUBST(screenshotsdir)
screenshotsgtkamdir="${screenshotsdir}/gtkam"
AC_SUBST(screenshotsgtkamdir)
doc_formats_list='man html txt ps pdf'
# initialize have_xmlto* to false
for i in $doc_formats_list; do
d=`echo $i | $TR A-Z a-z`
eval "have_xmlto$d=false"
done
AC_MSG_CHECKING(checking doc formats)
AC_ARG_WITH(doc_formats,
[ --with-doc-formats=<list> create doc with format in <list>; ]
[ 'all' build all doc formats; ]
[ possible formats are: ]
[ man, html, ps, pdf ],
doc_formats="$withval", doc_formats="man html txt")
if test "$doc_formats" = "all"; then
doc_formats=$doc_formats_list
else
doc_formats=`echo $doc_formats | sed 's/,/ /g'`
fi
# set have_xmlto* to true if requested and possible
if $have_xmlto; then
for i in $doc_formats; do
if test -n "`echo $doc_formats_list | $GREP -E \"(^| )$i( |\$)\"`"; then
eval "have_xmlto$i=true"
else
AC_ERROR(Unknown doc format $i!)
fi
done
AC_MSG_RESULT($doc_formats)
else
AC_MSG_RESULT([deactivated (requires xmlto)])
fi
# Make sure that xmltopdf actually works
if $have_xmltopdf; then
AC_MSG_CHECKING([whether pdf creation works])
oldcwd="$(pwd)"
top_srcdir() { echo "$srcdir"; }
mkdir test-pdf
cd test-pdf
cat>test-db.xml<<EOF
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id="foobook">
<bookinfo>
<title>Foo Title</title>
</bookinfo>
<chapter id="foochapter">
<title>Foo Chapter</title>
<para>
Foo bar blah blah
<!--ulink url="https://www.hypothetical-url.invalid/with&ersand">ampersand</ulink-->.
</para>
</chapter>
</book>
EOF
${PURE_XMLTO} pdf -o . test-db.xml --searchpath ..
if test -s test-db.pdf; then
AC_MSG_RESULT([yes, look at $(pwd)/test-db.pdf to verify])
else
if $have_xmltopdf; then
AC_MSG_ERROR([PDF creation requested, but failed. See $(pwd) ...])
else
AC_MSG_RESULT([no, but not requested])
fi
fi
cd "$oldcwd"
unset top_srcdir
fi
AM_CONDITIONAL(XMLTOHTML,$have_xmltohtml)
AM_CONDITIONAL(XMLTOMAN,$have_xmltoman)
AM_CONDITIONAL(XMLTOTXT,$have_xmltotxt)
AM_CONDITIONAL(XMLTOTXT2,$have_xmltotxt && $have_w3m)
AM_CONDITIONAL(XMLTOPDF,$have_xmltopdf)
AM_CONDITIONAL(XMLTOPS,$have_xmltops)
# create list of supported formats
AC_MSG_CHECKING([for manual formats to recreate])
xxx=""
manual_html=""
manual_pdf=""
manual_ps=""
if $have_xmltohtml; then
xxx="${xxx} html"
fi
if $have_xmltoman; then
xxx="${xxx} man"
fi
if $have_xmltopdf; then
xxx="${xxx} pdf"
fi
if $have_xmltops; then
xxx="${xxx} ps"
fi
if $have_xmltotxt; then
xxx="${xxx} txt"
fi
AC_SUBST(manual_html)
AC_SUBST(manual_pdf)
AC_SUBST(manual_ps)
AC_MSG_RESULT($xxx)
if test "x$xxx" != "x"
then
if $have_fig2dev; then
fig_out=""
else
fig_out="out"
fi
manual_msg="in (${xxx} ) formats with${fig_out} figures"
fi
])dnl