-
Notifications
You must be signed in to change notification settings - Fork 0
/
xmldocs.make
154 lines (135 loc) · 5.7 KB
/
xmldocs.make
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
#
# No modifications of this Makefile should be necessary.
#
# To use this template:
# 1) Define: figdir, docname, lang, omffile, and entities in
# your Makefile.am file for each document directory,
# although figdir, omffile, and entities may be empty
# 2) Make sure the Makefile in (1) also includes
# "include $(top_srcdir)/xmldocs.make"
# 3) Optionally define 'entities' to hold xml entities which
# you would also like installed
# 4) Figures must go under $(figdir)/ and be in PNG format
# 5) You should only have one document per directory
# 6) Note that the figure directory, $(figdir)/, should not have its
# own Makefile since this Makefile installs those figures.
#
# example Makefile.am:
# figdir = figures
# docname = scrollkeeper-manual
# lang = C
# omffile=scrollkeeper-manual-C.omf
# entities = fdl.xml
# include $(top_srcdir)/xmldocs.make
#
# About this file:
# This file was taken from scrollkeeper_example2, a package illustrating
# how to install documentation and OMF files for use with ScrollKeeper
# 0.3.x and 0.4.x. For more information, see:
# http://scrollkeeper.sourceforge.net/
# Version: 0.1.2 (last updated: March 20, 2002)
#
# This file is changed from the original to generate html files for GnuCash,
# install them in a subdir with the docname and copy the stylesheet png's in.
# Dec 2002 Chris Lyttle
# Oct 2012 Geert Janssens - Simplified xml doc installation and distribution
# ************* Begin of section some packagers may need to modify **************
# These variables (gnomehelpdir and otherdocdir) specify where the documents
# should be installed. The default values should work for most packages.
# Gnome Help expects all documents here (this is where the xml files should go):
gnomehelpdir = $(datadir)/gnome/help/$(docname)/$(lang)
# Our other document versions go here:
otherdocdir = $(docdir)/$(lang)
# ************** You should not have to edit below this line *******************
# ************** Rules to install xml files for gnome-help ***********************
xml_files = $(entities) $(docname).xml
gnomehelp_DATA = $(xml_files)
gnomehelpfiguresdir = $(gnomehelpdir)/$(figdir)
gnomehelpfigures_DATA = $(shell ls ${srcdir}/${figdir}/*.png)
uninstall-hook:
rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(gnomehelpfiguresdir)"
rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(gnomehelpdir)"
EXTRA_DIST = $(xml_files) $(omffile) $(gnomehelpfigures_DATA)
# ************** Rules to make and install omf file ******************************
# If the following file is in a subdir (like help/) you need to add that to the path
include $(top_srcdir)/omf.make
if ENABLE_SK
OMF = omf
OMF_DATA_HOOK = install-data-hook-omf
UNINSTALL_OMF = uninstall-local-omf
else
OMF=
OMF_DATA_HOOK=
UNINSTALL_OMF=
endif
CLEANFILES += omf_timestamp
install-data-hook: ${OMF_DATA_HOOK}
uninstall-local: ${UNINSTALL_OMF}
all: ${OMF}
# ************** Rules to make and install html documentation ********************
styledir = $(top_srcdir)/stylesheet
CLEANFILES += $(docname)/*.html
figfiles = $(shell ls ${srcdir}/${figdir}/*.png)
html: all convert-html copy-pics copy-style
# Convert xml to html with xsltproc
# xsltproc -o outputdir/ /usr/share/sgml/docbook/xsl-stylesheets/html/chunk.xsl filename.xml
convert-html:
$(mkinstalldirs) "$(docname)"; \
for file in $(docname).xml; do \
$(XSLTPROC) $(XSLTPROCFLAGS) $(XSLTPROCFLAGS_HTML) \
-o "$(docname)/" \
--param use.id.as.filename "1" \
--stringparam chunker.output.encoding UTF-8 \
"$(top_srcdir)/xsl/general-customization.xsl" "$(srcdir)/$$file"; \
done
copy-pics:
$(mkinstalldirs) "$(docname)/$(figdir)"; \
for file in $(srcdir)/$(figdir)/*.png; do \
basefile=`basename $$file`; \
$(INSTALL_DATA) "$$file" "$(docname)/$(figdir)/$$basefile"; \
done
copy-style:
$(mkinstalldirs) "$(docname)/stylesheet"; \
for file in $(styledir)/*.png; do \
basefile=`basename $$file`; \
$(INSTALL_DATA) "$$file" "$(docname)/stylesheet/$$basefile"; \
done
install-html: html
$(mkinstalldirs) $(DESTDIR)$(otherdocdir)/$(docname);\
for file in $(docname)/*.html; do\
basefile=`basename $$file`; \
$(INSTALL_DATA) $$file $(DESTDIR)$(otherdocdir)/$(docname)/$$basefile;\
done
$(mkinstalldirs) "$(DESTDIR)$(otherdocdir)/$(docname)/$(figdir)"; \
for file in $(docname)/$(figdir)/*.png; do \
basefile=`basename $$file`; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(otherdocdir)/$(docname)/$(figdir)/$$basefile"; \
done
$(mkinstalldirs) "$(DESTDIR)$(otherdocdir)/$(docname)/stylesheet"; \
for file in $(styledir)/*.png; do \
basefile=`basename $$file`; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(otherdocdir)/$(docname)/stylesheet/$$basefile"; \
done
uninstall-html:
-if test "$(docname)"; then \
if test "$(figdir)"; then \
for file in $(docname)/$(figdir)/*.png; do \
basefile=`basename $$file`; \
rm -f "$(DESTDIR)$(otherdocdir)/$(docname)/$(figdir)/$$basefile"; \
done; \
rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(otherdocdir)/$(docname)/$(figdir)"; \
fi; \
for file in $(styledir)/*.png; do \
basefile=`basename $$file`; \
rm -f "$(DESTDIR)$(otherdocdir)/$(docname)/stylesheet/$$basefile"; \
done; \
rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(otherdocdir)/$(docname)/stylesheet"; \
for file in $(docname)/*.html; do \
basefile=`basename $$file`; \
rm -f "$(DESTDIR)$(otherdocdir)/$(docname)/$$basefile"; \
done; \
rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(otherdocdir)/$(docname)"; \
rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(otherdocdir)"; \
fi
check:
xmllint --valid --noout ${srcdir}/${docname}.xml