Make treeview refresh properly when adding nodes.
[straw/fork.git] / gnome-doc-utils.make
blob5eb2ee46ef105b0fc32dbae1098458de5f289117
1 # gnome-doc-utils.make - make magic for building documentation
2 # Copyright (C) 2004-2005 Shaun McCance <shaunm@gnome.org>
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.
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.
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.
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.
23 ################################################################################
24 ## @@ Generating Header Files
26 ## @ DOC_H_FILE
27 ## The name of the header file to generate
28 DOC_H_FILE ?=
30 ## @ DOC_H_DOCS
31 ## The input DocBook files for generating the header file
32 DOC_H_DOCS ?=
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
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
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)";
74 doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
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)
85 all: $(DOC_H_FILE)
88 ################################################################################
89 ## @@ Generating Documentation Files
91 ## @ DOC_MODULE
92 ## The name of the document being built
93 DOC_MODULE ?=
95 ## @ DOC_ENTITIES
96 ## Files included with a SYSTEM entity
97 DOC_ENTITIES ?=
99 ## @ DOC_INCLUDES
100 ## Files included with XInclude
101 DOC_INCLUDES ?=
103 ## @ DOC_FIGURES
104 ## Figures and other external data
105 DOC_FIGURES ?=
107 ## @ DOC_FORMATS
108 ## The default formats to be built and installed
109 DOC_FORMATS ?= docbook
110 _DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
112 ## @ DOC_LINGUAS
113 ## The languages this document is translated into
114 DOC_LINGUAS ?=
115 _DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \
116 $(filter $(LINGUAS),$(DOC_LINGUAS)), \
117 $(DOC_LINGUAS))
119 _DOC_ABS_SRCDIR = @abs_srcdir@
122 ################################################################################
123 ## Variables for Bootstrapping
125 _xml2po ?= `which xml2po`
127 _db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
128 _db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
129 _chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
130 _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
131 _ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
133 if ENABLE_SK
134 _ENABLE_SK = true
135 _skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
136 _sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
137 _skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
138 endif
141 ################################################################################
142 ## @@ Rules for OMF Files
144 db2omf_args = \
145 --stringparam db2omf.basename $(DOC_MODULE) \
146 --stringparam db2omf.format $(3) \
147 --stringparam db2omf.dtd \
148 $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 \
149 | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/') \
150 --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \
151 --stringparam db2omf.omf_dir "$(OMF_DIR)" \
152 --stringparam db2omf.help_dir "$(HELP_DIR)" \
153 --stringparam db2omf.omf_in "$(_DOC_OMF_IN)" \
154 $(if $(_ENABLE_SK), \
155 --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)") \
156 $(_db2omf) $(2)
158 ## @ _DOC_OMF_IN
159 ## The OMF input file
160 _DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
162 ## @ _DOC_OMF_DB
163 ## The OMF files for DocBook output
164 _DOC_OMF_DB = $(if $(_DOC_OMF_IN), \
165 $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
167 $(_DOC_OMF_DB) : $(_DOC_OMF_IN)
168 $(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
169 @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \
170 echo "The file '$(_skcontentslist)' does not exist." >&2; \
171 echo "Please check your ScrollKeeper installation." >&2; \
172 exit 1; }
173 xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
175 ## @ _DOC_OMF_HTML
176 ## The OMF files for HTML output
177 _DOC_OMF_HTML = $(if $(_DOC_OMF_IN), \
178 $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
180 $(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
181 $(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
182 if ENABLE_SK
183 @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \
184 echo "The file '$(_skcontentslist)' does not exist" >&2; \
185 echo "Please check your ScrollKeeper installation." >&2; \
186 exit 1; }
187 endif
188 xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
190 ## @ _DOC_OMF_ALL
191 ## All OMF output files to be built
192 # FIXME
193 _DOC_OMF_ALL = \
194 $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB)) \
195 $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
197 .PHONY: omf
198 omf: $(_DOC_OMF_ALL)
201 ################################################################################
202 ## @@ C Locale Documents
204 ## @ _DOC_C_MODULE
205 ## The top-level documentation file in the C locale
206 _DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
208 ## @ _DOC_C_ENTITIES
209 ## Files included with a SYSTEM entity in the C locale
210 _DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
212 ## @ _DOC_C_XINCLUDES
213 ## Files included with XInclude in the C locale
214 _DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
216 ## @ _DOC_C_DOCS
217 ## All documentation files in the C locale
218 _DOC_C_DOCS = \
219 $(_DOC_C_ENTITIES) $(_DOC_C_INCLUDES) \
220 $(_DOC_C_MODULE)
222 ## @ _DOC_C_DOCS_NOENT
223 ## All documentation files in the C locale,
224 ## except files included with a SYSTEM entity
225 _DOC_C_DOCS_NOENT = \
226 $(_DOC_C_MODULE) $(_DOC_C_INCLUDES)
228 ## @ _DOC_C_FIGURES
229 ## All figures and other external data in the C locale
230 _DOC_C_FIGURES = $(if $(DOC_FIGURES), \
231 $(foreach fig,$(DOC_FIGURES),C/$(fig)), \
232 $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
234 ## @ _DOC_C_HTML
235 ## All HTML documentation in the C locale
236 # FIXME: probably have to shell escape to determine the file names
237 _DOC_C_HTML = $(foreach f, \
238 $(shell xsltproc --xinclude \
239 --stringparam db.chunk.basename "$(DOC_MODULE)" \
240 $(_chunks) "C/$(DOC_MODULE).xml"), \
241 C/$(f).xhtml)
243 ###############################################################################
244 ## @@ Other Locale Documentation
246 ## @ _DOC_POFILES
247 ## The .po files used for translating the document
248 _DOC_POFILES = $(if $(DOC_MODULE), \
249 $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
251 .PHONY: po
252 po: $(_DOC_POFILES)
254 ## @ _DOC_LC_MODULES
255 ## The top-level documentation files in all other locales
256 _DOC_LC_MODULES = $(if $(DOC_MODULE), \
257 $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
259 ## @ _DOC_LC_XINCLUDES
260 ## Files included with XInclude in all other locales
261 _DOC_LC_INCLUDES = \
262 $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES), \
263 $(lc)/$(notdir $(inc)) ))
265 ## @ _DOC_LC_HTML
266 ## All HTML documentation in all other locales
267 # FIXME: probably have to shell escape to determine the file names
268 _DOC_LC_HTML = \
269 $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML), \
270 $(lc)/$(notdir $(doc)) ))
272 ## @ _DOC_LC_DOCS
273 ## All documentation files in all other locales
274 _DOC_LC_DOCS = \
275 $(_DOC_LC_MODULES) $(_DOC_LC_INCLUDES) \
276 $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
278 ## @ _DOC_LC_FIGURES
279 ## All figures and other external data in all other locales
280 _DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS), \
281 $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
283 _DOC_SRC_FIGURES = \
284 $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \
285 $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
287 $(_DOC_POFILES):
288 @if ! test -d $(dir $@); then \
289 echo "mkdir $(dir $@)"; \
290 mkdir "$(dir $@)"; \
292 @if test ! -f $@ -a -f $(srcdir)/$@; then \
293 echo "cp $(srcdir)/$@ $@"; \
294 cp "$(srcdir)/$@" "$@"; \
296 @docs=; \
297 list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
298 docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
299 done; \
300 if ! test -f $@; then \
301 echo "(cd $(dir $@) && \
302 $(_xml2po) -e $$docs > $(notdir $@).tmp && \
303 cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
304 (cd $(dir $@) && \
305 $(_xml2po) -e $$docs > $(notdir $@).tmp && \
306 cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
307 else \
308 echo "(cd $(dir $@) && \
309 $(_xml2po) -e -u $(notdir $@) $$docs)"; \
310 (cd $(dir $@) && \
311 $(_xml2po) -e -u $(notdir $@) $$docs); \
314 # FIXME: fix the dependancy
315 # FIXME: hook xml2po up
316 $(_DOC_LC_DOCS) : $(_DOC_POFILES)
317 $(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
318 if ! test -d $(dir $@); then mkdir $(dir $@); fi
319 if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
320 (cd $(dir $@) && \
321 $(_xml2po) -e -p \
322 "$${d}$(dir $@)$(patsubst %/$(notdir $@),%,$@).po" \
323 "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
324 cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
326 ## @ _DOC_POT
327 ## A pot file
328 _DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot)
329 .PHONY: pot
330 pot: $(_DOC_POT)
331 $(_DOC_POT): $(_DOC_C_DOCS_NOENT)
332 $(_xml2po) -e -o $@ $^
335 ################################################################################
336 ## @@ All Documentation
338 ## @ _DOC_HTML_ALL
339 ## All HTML documentation, only if it's built
340 _DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
341 $(_DOC_C_HTML) $(_DOC_LC_HTML))
343 _DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
345 $(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
346 xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
349 ################################################################################
351 all: \
352 $(_DOC_C_DOCS) $(_DOC_LC_DOCS) \
353 $(_DOC_OMF_ALL) $(_DOC_DSK_ALL) \
354 $(_DOC_HTML_ALL) $(_DOC_POFILES)
357 .PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
359 clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
360 clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
361 clean-doc-lc:
362 rm -f $(_DOC_LC_DOCS)
363 @list='$(_DOC_POFILES)'; for po in $$list; do \
364 if ! test "$$po" -ef "$(srcdir)/$$po"; then \
365 echo "rm -f $$po"; \
366 rm -f "$$po"; \
367 fi; \
368 done
369 @for lc in C $(_DOC_REAL_LINGUAS); do \
370 if test -f "$$lc/.xml2po.mo"; then \
371 echo "rm -f $$lc/.xml2po.mo"; \
372 rm -f "$$lc/.xml2po.mo"; \
373 fi; \
374 done
375 clean-doc-dir:
376 @for lc in C $(_DOC_REAL_LINGUAS); do \
377 for dir in `find $$lc -depth -type d`; do \
378 if ! test $$dir -ef $(srcdir)/$$dir; then \
379 echo "rmdir $$dir"; \
380 rmdir "$$dir"; \
381 fi; \
382 done; \
383 done
385 _clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
386 _clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
387 _clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
388 _clean_dir = $(if $(DOC_MODULE),clean-doc-dir)
390 clean-local: \
391 $(_clean_omf) $(_clean_dsk) \
392 $(_clean_lc) $(_clean_dir)
393 distclean-local: \
394 $(_clean_omf) $(_clean_dsk) \
395 $(_clean_lc) $(_clean_dir)
396 mostlyclean-local: \
397 $(_clean_omf) $(_clean_dsk) \
398 $(_clean_lc) $(_clean_dir)
399 maintainer-clean-local: \
400 $(_clean_omf) $(_clean_dsk) \
401 $(_clean_lc) $(_clean_dir)
404 .PHONY: dist-doc-docs dist-doc-figs dist-doc-omf dist-doc-dsk
405 doc-dist-hook: \
406 $(if $(DOC_MODULE),dist-doc-docs) \
407 $(if $(_DOC_C_FIGURES),dist-doc-figs) \
408 $(if $(_DOC_OMF_IN),dist-doc-omf)
409 # $(if $(_DOC_DSK_IN),dist-doc-dsk)
411 dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
412 @for lc in C $(_DOC_REAL_LINGUAS); do \
413 echo " $(mkinstalldirs) $(distdir)/$$lc"; \
414 $(mkinstalldirs) "$(distdir)/$$lc"; \
415 done
416 @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \
417 for doc in $$list; do \
418 if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
419 docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
420 if ! test -d "$(distdir)/$$docdir"; then \
421 echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
422 $(mkinstalldirs) "$(distdir)/$$docdir"; \
423 fi; \
424 echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
425 $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
426 done
428 dist-doc-figs: $(_DOC_SRC_FIGURES)
429 @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
430 for fig in $$list; do \
431 if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
432 if test -f "$$d$$fig"; then \
433 figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
434 if ! test -d "$(distdir)/$$figdir"; then \
435 echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
436 $(mkinstalldirs) "$(distdir)/$$figdir"; \
437 fi; \
438 echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
439 $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
440 fi; \
441 done;
443 dist-doc-omf:
444 @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
445 echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
446 $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
448 dist-doc-dsk:
449 @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
450 echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
451 $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
454 .PHONY: check-doc-docs check-doc-omf
455 check: \
456 $(if $(DOC_MODULE),check-doc-docs) \
457 $(if $(_DOC_OMF_IN),check-doc-omf)
459 check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
460 @for lc in C $(_DOC_REAL_LINGUAS); do \
461 if test -f "$$lc"; \
462 then d=; \
463 xmlpath="$$lc"; \
464 else \
465 d="$(srcdir)/"; \
466 xmlpath="$$lc:$(srcdir)/$$lc"; \
467 fi; \
468 echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
469 xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
470 done
472 check-doc-omf: $(_DOC_OMF_ALL)
473 @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
474 echo "xmllint --noout --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
475 xmllint --noout --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
476 done
479 .PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
480 install-data-local: \
481 $(if $(DOC_MODULE),install-doc-docs) \
482 $(if $(_DOC_HTML_ALL),install-doc-html) \
483 $(if $(_DOC_C_FIGURES),install-doc-figs) \
484 $(if $(_DOC_OMF_IN),install-doc-omf)
485 # $(if $(_DOC_DSK_IN),install-doc-dsk)
487 install-doc-docs:
488 @for lc in C $(_DOC_REAL_LINGUAS); do \
489 echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$lc"; \
490 $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$lc; \
491 done
492 @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
493 if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
494 docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
495 docdir="$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$docdir"; \
496 if ! test -d "$$docdir"; then \
497 echo "$(mkinstalldirs) $$docdir"; \
498 $(mkinstalldirs) "$$docdir"; \
499 fi; \
500 echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc"; \
501 $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc; \
502 done
504 install-doc-figs:
505 @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
506 for lc in C $(_DOC_REAL_LINGUAS); do \
507 if test -f "$$lc/$$fig"; then \
508 figfile="$$lc/$$fig"; \
509 elif test -f "$(srcdir)/$$lc/$$fig"; then \
510 figfile="$(srcdir)/$$lc/$$fig"; \
511 elif test -f "C/$$fig"; then \
512 figfile="C/$$fig"; \
513 else \
514 figfile="$(srcdir)/C/$$fig"; \
515 fi; \
516 figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
517 figdir="$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$figdir"; \
518 if ! test -d "$$figdir"; then \
519 echo "$(mkinstalldirs) $$figdir"; \
520 $(mkinstalldirs) "$$figdir"; \
521 fi; \
522 figbase=`echo $$fig | sed -e 's/^.*\///'`; \
523 echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
524 $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
525 done; \
526 done
528 install-doc-html:
529 echo install-html
531 install-doc-omf:
532 $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)
533 @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
534 echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
535 $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf; \
536 done
537 @if test "x$(_ENABLE_SK)" = "xtrue"; then \
538 echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)"; \
539 scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)"; \
542 install-doc-dsk:
543 echo install-dsk
546 .PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
547 uninstall-local: \
548 $(if $(DOC_MODULE),uninstall-doc-docs) \
549 $(if $(_DOC_HTML_ALL),uninstall-doc-html) \
550 $(if $(_DOC_C_FIGURES),uninstall-doc-figs) \
551 $(if $(_DOC_OMF_IN),uninstall-doc-omf)
552 # $(if $(_DOC_DSK_IN),uninstall-doc-dsk)
554 uninstall-doc-docs:
555 @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
556 echo " rm -f $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc"; \
557 rm -f "$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc"; \
558 done
560 uninstall-doc-figs:
561 @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
562 echo "rm -f $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$fig"; \
563 rm -f "$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$fig"; \
564 done;
566 uninstall-doc-omf:
567 @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
568 if test "x$(_ENABLE_SK)" = "xtrue"; then \
569 echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
570 scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
571 fi; \
572 echo "rm -f $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
573 rm -f "$(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
574 done