~cjcurran/+junk/sound-nua-ui-tweaks-fri-16

« back to all changes in this revision

Viewing changes to gnome-doc-utils.make

  • Committer: Sebastien Bacher
  • Date: 2012-03-16 10:09:38 UTC
  • Revision ID: seb128@ubuntu.com-20120316100938-nt63xa0x58zfsen3
initialĀ sourceĀ import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# gnome-doc-utils.make - make magic for building documentation
 
2
# Copyright (C) 2004-2005 Shaun McCance <shaunm@gnome.org>
 
3
#
 
4
# This program is free software; you can redistribute it and/or modify
 
5
# it under the terms of the GNU General Public License as published by
 
6
# the Free Software Foundation; either version 2 of the License, or
 
7
# (at your option) any later version.
 
8
#
 
9
# This program is distributed in the hope that it will be useful,
 
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
# GNU General Public License for more details.
 
13
#
 
14
# You should have received a copy of the GNU General Public License
 
15
# along with this program; if not, write to the Free Software Foundation,
 
16
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
17
#
 
18
# As a special exception to the GNU General Public License, if you
 
19
# distribute this file as part of a program that contains a
 
20
# configuration script generated by Autoconf, you may include it under
 
21
# the same distribution terms that you use for the rest of that program.
 
22
 
 
23
################################################################################
 
24
## @@ Generating Header Files
 
25
 
 
26
## @ DOC_H_FILE
 
27
## The name of the header file to generate
 
28
DOC_H_FILE ?=
 
29
 
 
30
## @ DOC_H_DOCS
 
31
## The input DocBook files for generating the header file
 
32
DOC_H_DOCS ?=
 
33
 
 
34
$(DOC_H_FILE): $(DOC_H_DOCS);
 
35
        @rm -f $@.tmp; touch $@.tmp;
 
36
        echo 'const gchar* documentation_credits[] = {' >> $@.tmp
 
37
        list='$(DOC_H_DOCS)'; for doc in $$list; do \
 
38
          xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
 
39
          if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
 
40
          xsltproc --path "$$xmlpath" $(_credits) $$doc; \
 
41
        done | sort | uniq \
 
42
          | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
 
43
          | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp
 
44
        echo '  NULL' >> $@.tmp
 
45
        echo '};' >> $@.tmp
 
46
        echo >> $@.tmp
 
47
        list='$(DOC_H_DOCS)'; for doc in $$list; do \
 
48
          xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
 
49
          if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
 
50
          docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
 
51
            | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
 
52
          echo $$xmlpath; \
 
53
          ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
 
54
          for id in $$ids; do \
 
55
            echo '#define HELP_'`echo $$docid`'_'`echo $$id \
 
56
              | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \
 
57
          done; \
 
58
          echo >> $@.tmp; \
 
59
        done;
 
60
        cp $@.tmp $@ && rm -f $@.tmp
 
61
 
 
62
dist-check-gdu:
 
63
if !HAVE_GNOME_DOC_UTILS
 
64
        @echo "*** GNOME Doc Utils must be installed in order to make dist"
 
65
        @false
 
66
endif
 
67
 
 
68
.PHONY: dist-doc-header
 
69
dist-doc-header: $(DOC_H_FILE)
 
70
        @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \
 
71
        echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \
 
72
        $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)";
 
73
 
 
74
doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
 
75
 
 
76
.PHONY: clean-doc-header
 
77
_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header)
 
78
clean-local: $(_clean_doc_header)
 
79
distclean-local: $(_clean_doc_header)
 
80
mostlyclean-local: $(_clean_doc_header)
 
81
maintainer-clean-local: $(_clean_doc_header)
 
82
clean-doc-header:
 
83
        rm -f $(DOC_H_FILE)
 
84
 
 
85
all: $(DOC_H_FILE)
 
86
 
 
87
 
 
88
################################################################################
 
89
## @@ Generating Documentation Files
 
90
 
 
91
## @ DOC_MODULE
 
92
## The name of the document being built
 
93
DOC_MODULE ?=
 
94
 
 
95
## @ DOC_ID
 
96
## The unique identifier for a Mallard document
 
97
DOC_ID ?=
 
98
 
 
99
## @ DOC_PAGES
 
100
## Page files in a Mallard document
 
101
DOC_PAGES ?=
 
102
 
 
103
## @ DOC_ENTITIES
 
104
## Files included with a SYSTEM entity
 
105
DOC_ENTITIES ?=
 
106
 
 
107
## @ DOC_INCLUDES
 
108
## Files included with XInclude
 
109
DOC_INCLUDES ?=
 
110
 
 
111
## @ DOC_FIGURES
 
112
## Figures and other external data
 
113
DOC_FIGURES ?=
 
114
 
 
115
## @ DOC_FORMATS
 
116
## The default formats to be built and installed
 
117
DOC_FORMATS ?= docbook
 
118
_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
 
119
 
 
120
## @ DOC_LINGUAS
 
121
## The languages this document is translated into
 
122
DOC_LINGUAS ?=
 
123
_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),               \
 
124
        $(filter $(LINGUAS),$(DOC_LINGUAS)),                                    \
 
125
        $(DOC_LINGUAS))
 
126
 
 
127
_DOC_ABS_SRCDIR = @abs_srcdir@
 
128
 
 
129
 
 
130
################################################################################
 
131
## Variables for Bootstrapping
 
132
 
 
133
_xml2po ?= `which xml2po`
 
134
_xml2po_mode = $(if $(DOC_ID),mallard,docbook)
 
135
 
 
136
_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
 
137
_db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
 
138
_malrng  ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
 
139
_chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
 
140
_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
 
141
_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
 
142
 
 
143
if ENABLE_SK
 
144
_ENABLE_SK = true
 
145
_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
 
146
_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
 
147
_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
 
148
endif
 
149
 
 
150
 
 
151
################################################################################
 
152
## @@ Rules for OMF Files
 
153
 
 
154
db2omf_args =                                                                   \
 
155
        --stringparam db2omf.basename $(DOC_MODULE)                             \
 
156
        --stringparam db2omf.format $(3)                                        \
 
157
        --stringparam db2omf.dtd                                                \
 
158
        $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1              \
 
159
                | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/')                     \
 
160
        --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \
 
161
        --stringparam db2omf.omf_dir "$(OMF_DIR)"                               \
 
162
        --stringparam db2omf.help_dir "$(HELP_DIR)"                             \
 
163
        --stringparam db2omf.omf_in "$(_DOC_OMF_IN)"                            \
 
164
        $(if $(_ENABLE_SK),                                                     \
 
165
          --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)")            \
 
166
        $(_db2omf) $(2)
 
167
 
 
168
## @ _DOC_OMF_IN
 
169
## The OMF input file
 
170
_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
 
171
 
 
172
## @ _DOC_OMF_DB
 
173
## The OMF files for DocBook output
 
174
_DOC_OMF_DB = $(if $(_DOC_OMF_IN),                                              \
 
175
        $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
 
176
 
 
177
$(_DOC_OMF_DB) : $(_DOC_OMF_IN)
 
178
$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
 
179
        @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {       \
 
180
          echo "The file '$(_skcontentslist)' does not exist." >&2;             \
 
181
          echo "Please check your ScrollKeeper installation." >&2;              \
 
182
          exit 1; }
 
183
        xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
 
184
 
 
185
## @ _DOC_OMF_HTML
 
186
## The OMF files for HTML output
 
187
_DOC_OMF_HTML = $(if $(_DOC_OMF_IN),                                            \
 
188
        $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
 
189
 
 
190
$(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
 
191
$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
 
192
if ENABLE_SK
 
193
        @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {       \
 
194
          echo "The file '$(_skcontentslist)' does not exist" >&2;              \
 
195
          echo "Please check your ScrollKeeper installation." >&2;              \
 
196
          exit 1; }
 
197
endif
 
198
        xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
 
199
 
 
200
## @ _DOC_OMF_ALL
 
201
## All OMF output files to be built
 
202
# FIXME
 
203
_DOC_OMF_ALL =                                                                  \
 
204
        $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB))             \
 
205
        $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
 
206
 
 
207
.PHONY: omf
 
208
omf: $(_DOC_OMF_ALL)
 
209
 
 
210
 
 
211
################################################################################
 
212
## @@ C Locale Documents
 
213
 
 
214
## @ _DOC_C_MODULE
 
215
## The top-level documentation file in the C locale
 
216
_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
 
217
 
 
218
## @ _DOC_C_PAGES
 
219
## Page files in a Mallard document in the C locale
 
220
_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page))
 
221
 
 
222
## @ _DOC_C_ENTITIES
 
223
## Files included with a SYSTEM entity in the C locale
 
224
_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
 
225
 
 
226
## @ _DOC_C_XINCLUDES
 
227
## Files included with XInclude in the C locale
 
228
_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
 
229
 
 
230
## @ _DOC_C_DOCS
 
231
## All documentation files in the C locale
 
232
_DOC_C_DOCS =                                                           \
 
233
        $(_DOC_C_ENTITIES)      $(_DOC_C_INCLUDES)                      \
 
234
        $(_DOC_C_PAGES)         $(_DOC_C_MODULE)
 
235
 
 
236
## @ _DOC_C_DOCS_NOENT
 
237
## All documentation files in the C locale,
 
238
## except files included with a SYSTEM entity
 
239
_DOC_C_DOCS_NOENT =                                                     \
 
240
        $(_DOC_C_MODULE)        $(_DOC_C_INCLUDES)                      \
 
241
        $(_DOC_C_PAGES)
 
242
 
 
243
## @ _DOC_C_FIGURES
 
244
## All figures and other external data in the C locale
 
245
_DOC_C_FIGURES = $(if $(DOC_FIGURES),                                   \
 
246
        $(foreach fig,$(DOC_FIGURES),C/$(fig)),                         \
 
247
        $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
 
248
 
 
249
## @ _DOC_C_HTML
 
250
## All HTML documentation in the C locale
 
251
# FIXME: probably have to shell escape to determine the file names
 
252
_DOC_C_HTML = $(foreach f,                                              \
 
253
        $(shell xsltproc --xinclude                                     \
 
254
          --stringparam db.chunk.basename "$(DOC_MODULE)"               \
 
255
          $(_chunks) "C/$(DOC_MODULE).xml"),                            \
 
256
        C/$(f).xhtml)
 
257
 
 
258
###############################################################################
 
259
## @@ Other Locale Documentation
 
260
 
 
261
## @ _DOC_POFILES
 
262
## The .po files used for translating the document
 
263
_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID),                                     \
 
264
        $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
 
265
 
 
266
.PHONY: po
 
267
po: $(_DOC_POFILES)
 
268
 
 
269
## @ _DOC_MOFILES
 
270
## The .mo files used for translating the document
 
271
_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
 
272
 
 
273
.PHONY: mo
 
274
mo: $(_DOC_MOFILES)
 
275
 
 
276
## @ _DOC_LC_MODULES
 
277
## The top-level documentation files in all other locales
 
278
_DOC_LC_MODULES = $(if $(DOC_MODULE),                                           \
 
279
        $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
 
280
 
 
281
## @ _DOC_LC_PAGES
 
282
## Page files in a Mallard document in all other locales
 
283
_DOC_LC_PAGES =                                                                 \
 
284
        $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES),       \
 
285
                $(lc)/$(notdir $(page)) ))
 
286
 
 
287
## @ _DOC_LC_XINCLUDES
 
288
## Files included with XInclude in all other locales
 
289
_DOC_LC_INCLUDES =                                                              \
 
290
        $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES),     \
 
291
                $(lc)/$(notdir $(inc)) ))
 
292
 
 
293
## @ _DOC_LC_HTML
 
294
## All HTML documentation in all other locales
 
295
# FIXME: probably have to shell escape to determine the file names
 
296
_DOC_LC_HTML =                                                                  \
 
297
        $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML),         \
 
298
                $(lc)/$(notdir $(doc)) ))
 
299
 
 
300
## @ _DOC_LC_DOCS
 
301
## All documentation files in all other locales
 
302
_DOC_LC_DOCS =                                                                  \
 
303
        $(_DOC_LC_MODULES)      $(_DOC_LC_INCLUDES)     $(_DOC_LC_PAGES)        \
 
304
        $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
 
305
 
 
306
## @ _DOC_LC_FIGURES
 
307
## All figures and other external data in all other locales
 
308
_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS),                            \
 
309
        $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
 
310
 
 
311
_DOC_SRC_FIGURES =                                                              \
 
312
        $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS),   \
 
313
                $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
 
314
 
 
315
$(_DOC_POFILES):
 
316
        @if ! test -d $(dir $@); then \
 
317
          echo "mkdir $(dir $@)"; \
 
318
          mkdir "$(dir $@)"; \
 
319
        fi
 
320
        @if test ! -f $@ -a -f $(srcdir)/$@; then \
 
321
          echo "cp $(srcdir)/$@ $@"; \
 
322
          cp "$(srcdir)/$@" "$@"; \
 
323
        fi;
 
324
        @docs=; \
 
325
        list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
 
326
          docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
 
327
        done; \
 
328
        if ! test -f $@; then \
 
329
          echo "(cd $(dir $@) && \
 
330
            $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
 
331
            cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
 
332
          (cd $(dir $@) && \
 
333
            $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
 
334
            cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
 
335
        else \
 
336
          echo "(cd $(dir $@) && \
 
337
            $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \
 
338
          (cd $(dir $@) && \
 
339
            $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
 
340
        fi
 
341
 
 
342
$(_DOC_MOFILES): %.mo: %.po
 
343
        @if ! test -d $(dir $@); then \
 
344
          echo "mkdir $(dir $@)"; \
 
345
          mkdir "$(dir $@)"; \
 
346
        fi
 
347
        msgfmt -o $@ $<
 
348
 
 
349
# FIXME: fix the dependancy
 
350
# FIXME: hook xml2po up
 
351
$(_DOC_LC_DOCS) : $(_DOC_MOFILES)
 
352
$(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
 
353
        if ! test -d $(dir $@); then mkdir $(dir $@); fi
 
354
        if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
 
355
        mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
 
356
        if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
 
357
        (cd $(dir $@) && \
 
358
          $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
 
359
            "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
 
360
            cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
 
361
 
 
362
## @ _DOC_POT
 
363
## A pot file
 
364
_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot))
 
365
.PHONY: pot
 
366
pot: $(_DOC_POT)
 
367
$(_DOC_POT): $(_DOC_C_DOCS_NOENT)
 
368
        $(_xml2po) -m $(_xml2po_mode) -e -o $@ $^
 
369
 
 
370
 
 
371
################################################################################
 
372
## @@ All Documentation
 
373
 
 
374
## @ _DOC_HTML_ALL
 
375
## All HTML documentation, only if it's built
 
376
_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
 
377
        $(_DOC_C_HTML) $(_DOC_LC_HTML))
 
378
 
 
379
_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
 
380
 
 
381
$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
 
382
        xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
 
383
 
 
384
 
 
385
################################################################################
 
386
## All
 
387
 
 
388
all:                                                    \
 
389
        $(_DOC_C_DOCS)          $(_DOC_LC_DOCS)         \
 
390
        $(_DOC_OMF_ALL)         $(_DOC_DSK_ALL)         \
 
391
        $(_DOC_HTML_ALL)        $(_DOC_POFILES)
 
392
 
 
393
 
 
394
################################################################################
 
395
## Clean
 
396
 
 
397
.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
 
398
 
 
399
clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
 
400
clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
 
401
clean-doc-lc:
 
402
        rm -f $(_DOC_LC_DOCS)
 
403
        rm -f $(_DOC_MOFILES)
 
404
        @list='$(_DOC_POFILES)'; for po in $$list; do \
 
405
          if ! test "$$po" -ef "$(srcdir)/$$po"; then \
 
406
            echo "rm -f $$po"; \
 
407
            rm -f "$$po"; \
 
408
          fi; \
 
409
        done
 
410
#       .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
 
411
        @for lc in C $(_DOC_REAL_LINGUAS); do \
 
412
          if test -f "$$lc/.xml2po.mo"; then \
 
413
            echo "rm -f $$lc/.xml2po.mo"; \
 
414
            rm -f "$$lc/.xml2po.mo"; \
 
415
          fi; \
 
416
        done
 
417
clean-doc-dir: clean-doc-lc
 
418
        @for lc in C $(_DOC_REAL_LINGUAS); do \
 
419
          for dir in `find $$lc -depth -type d`; do \
 
420
            if ! test $$dir -ef $(srcdir)/$$dir; then \
 
421
              echo "rmdir $$dir"; \
 
422
              rmdir "$$dir"; \
 
423
           fi; \
 
424
          done; \
 
425
        done
 
426
 
 
427
_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
 
428
_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
 
429
_clean_lc  = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
 
430
_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir)
 
431
 
 
432
clean-local:                                            \
 
433
        $(_clean_omf)           $(_clean_dsk)           \
 
434
        $(_clean_lc)            $(_clean_dir)
 
435
distclean-local:                                        \
 
436
        $(_clean_omf)           $(_clean_dsk)           \
 
437
        $(_clean_lc)            $(_clean_dir)
 
438
mostlyclean-local:                                      \
 
439
        $(_clean_omf)           $(_clean_dsk)           \
 
440
        $(_clean_lc)            $(_clean_dir)
 
441
maintainer-clean-local:                                 \
 
442
        $(_clean_omf)           $(_clean_dsk)           \
 
443
        $(_clean_lc)            $(_clean_dir)
 
444
 
 
445
 
 
446
 
 
447
################################################################################
 
448
## Dist
 
449
 
 
450
.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk
 
451
doc-dist-hook:                                          \
 
452
        $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs)      \
 
453
        $(if $(_DOC_C_FIGURES),dist-doc-figs)           \
 
454
        $(if $(_DOC_OMF_IN),dist-doc-omf)
 
455
#       $(if $(_DOC_DSK_IN),dist-doc-dsk)
 
456
 
 
457
dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
 
458
        @for lc in C $(_DOC_REAL_LINGUAS); do \
 
459
          echo " $(mkinstalldirs) $(distdir)/$$lc"; \
 
460
          $(mkinstalldirs) "$(distdir)/$$lc"; \
 
461
        done
 
462
        @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \
 
463
        for doc in $$list; do \
 
464
          if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
 
465
            docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
 
466
            if ! test -d "$(distdir)/$$docdir"; then \
 
467
              echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
 
468
              $(mkinstalldirs) "$(distdir)/$$docdir"; \
 
469
            fi; \
 
470
          echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
 
471
          $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
 
472
        done
 
473
 
 
474
dist-doc-figs: $(_DOC_SRC_FIGURES)
 
475
        @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
 
476
        for fig in $$list; do \
 
477
          if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
 
478
          if test -f "$$d$$fig"; then \
 
479
            figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
 
480
            if ! test -d "$(distdir)/$$figdir"; then \
 
481
              echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
 
482
              $(mkinstalldirs) "$(distdir)/$$figdir"; \
 
483
            fi; \
 
484
            echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
 
485
            $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
 
486
          fi; \
 
487
        done;
 
488
 
 
489
dist-doc-omf:
 
490
        @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
 
491
        echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
 
492
        $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
 
493
 
 
494
dist-doc-dsk:
 
495
        @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
 
496
        echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
 
497
        $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
 
498
 
 
499
 
 
500
 
 
501
################################################################################
 
502
## Check
 
503
 
 
504
.PHONY: check-doc-docs check-doc-omf
 
505
check:                                                  \
 
506
        $(if $(DOC_MODULE),check-doc-docs)              \
 
507
        $(if $(DOC_ID),check-doc-pages)                 \
 
508
        $(if $(_DOC_OMF_IN),check-doc-omf)
 
509
 
 
510
check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
 
511
        @for lc in C $(_DOC_REAL_LINGUAS); do \
 
512
          if test -f "$$lc"; \
 
513
            then d=; \
 
514
            xmlpath="$$lc"; \
 
515
          else \
 
516
            d="$(srcdir)/"; \
 
517
            xmlpath="$$lc:$(srcdir)/$$lc"; \
 
518
          fi; \
 
519
          echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
 
520
          xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
 
521
        done
 
522
 
 
523
check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES)
 
524
        for lc in C $(_DOC_REAL_LINGUAS); do \
 
525
          if test -f "$$lc"; \
 
526
            then d=; \
 
527
            xmlpath="$$lc"; \
 
528
          else \
 
529
            d="$(srcdir)/"; \
 
530
            xmlpath="$$lc:$(srcdir)/$$lc"; \
 
531
          fi; \
 
532
          for page in $(DOC_PAGES); do \
 
533
            echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \
 
534
            xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \
 
535
          done; \
 
536
        done
 
537
 
 
538
check-doc-omf: $(_DOC_OMF_ALL)
 
539
        @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
 
540
          echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
 
541
          xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
 
542
        done
 
543
 
 
544
 
 
545
 
 
546
################################################################################
 
547
## Install
 
548
 
 
549
.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
 
550
 
 
551
_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE))
 
552
 
 
553
install-data-local:                                     \
 
554
        $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs)   \
 
555
        $(if $(_DOC_HTML_ALL),install-doc-html)         \
 
556
        $(if $(_DOC_C_FIGURES),install-doc-figs)        \
 
557
        $(if $(_DOC_OMF_IN),install-doc-omf)
 
558
#       $(if $(_DOC_DSK_IN),install-doc-dsk)
 
559
 
 
560
install-doc-docs:
 
561
        @for lc in C $(_DOC_REAL_LINGUAS); do \
 
562
          echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \
 
563
          $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \
 
564
        done
 
565
        @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
 
566
          if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
 
567
          docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
 
568
          docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \
 
569
          if ! test -d "$$docdir"; then \
 
570
            echo "$(mkinstalldirs) $$docdir"; \
 
571
            $(mkinstalldirs) "$$docdir"; \
 
572
          fi; \
 
573
          echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
 
574
          $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \
 
575
        done
 
576
 
 
577
install-doc-figs:
 
578
        @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
 
579
          for lc in C $(_DOC_REAL_LINGUAS); do \
 
580
            figsymlink=false; \
 
581
            if test -f "$$lc/$$fig"; then \
 
582
              figfile="$$lc/$$fig"; \
 
583
            elif test -f "$(srcdir)/$$lc/$$fig"; then \
 
584
              figfile="$(srcdir)/$$lc/$$fig"; \
 
585
            else \
 
586
              figsymlink=true; \
 
587
            fi; \
 
588
            figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
 
589
            figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \
 
590
            if ! test -d "$$figdir"; then \
 
591
              echo "$(mkinstalldirs) $$figdir"; \
 
592
              $(mkinstalldirs) "$$figdir"; \
 
593
            fi; \
 
594
            figbase=`echo $$fig | sed -e 's/^.*\///'`; \
 
595
            if $$figsymlink; then \
 
596
              echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \
 
597
              ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \
 
598
            else \
 
599
              echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
 
600
              $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
 
601
            fi; \
 
602
          done; \
 
603
        done
 
604
 
 
605
install-doc-html:
 
606
        echo install-html
 
607
 
 
608
install-doc-omf:
 
609
        $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)
 
610
        @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
 
611
          echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
 
612
          $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \
 
613
        done
 
614
        @if test "x$(_ENABLE_SK)" = "xtrue"; then \
 
615
          echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
 
616
          scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
 
617
        fi;
 
618
 
 
619
install-doc-dsk:
 
620
        echo install-dsk
 
621
 
 
622
 
 
623
 
 
624
################################################################################
 
625
## Uninstall
 
626
 
 
627
.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
 
628
uninstall-local:                                        \
 
629
        $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs) \
 
630
        $(if $(_DOC_HTML_ALL),uninstall-doc-html)       \
 
631
        $(if $(_DOC_C_FIGURES),uninstall-doc-figs)      \
 
632
        $(if $(_DOC_OMF_IN),uninstall-doc-omf)
 
633
#       $(if $(_DOC_DSK_IN),uninstall-doc-dsk)
 
634
 
 
635
uninstall-doc-docs:
 
636
        @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
 
637
          echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
 
638
          rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
 
639
        done
 
640
 
 
641
uninstall-doc-figs:
 
642
        @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
 
643
          echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
 
644
          rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
 
645
        done;
 
646
 
 
647
uninstall-doc-omf:
 
648
        @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
 
649
          if test "x$(_ENABLE_SK)" = "xtrue"; then \
 
650
            echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
 
651
            scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
 
652
          fi; \
 
653
          echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
 
654
          rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
 
655
        done