VirtualBox

source: vbox/trunk/doc/manual/Config.kmk@ 107354

Last change on this file since 107354 was 107157, checked in by vboxsync, 2 months ago

jiraref:VBP-1459. Added man_VBoxManage-objtracker.xml to the list of manpages (VBOX_MANUAL_XML_REFENTRY_FILES)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 27.7 KB
Line 
1# $Id: Config.kmk 107157 2024-11-27 10:34:39Z vboxsync $
2## @file
3# kBuild Configuration file for the manual.
4#
5
6#
7# Copyright (C) 2010-2024 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED
29 VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED = 1
30
31 # Include the top-level configure file.
32 ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
33 include $(PATH_ROOT)/Config.kmk
34 endif
35
36
37 #
38 # Globals.
39 #
40
41 # DITA stuff.
42 VBOX_DITA_OT_PATH ?= $(PATH_ROOT)/src/libs/dita-ot-1.8.5
43 ifneq ($(VBOX_DITA_OT_PATH),)
44 VBOX_DITA_OT_PATH := $(firstfile \
45 $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/common/dita-ot/v[4-9].*)) \
46 $(KBUILD_DEVTOOLS)/common/dita-ot/v4.0.2-r1)
47 endif
48
49
50 # Source location.
51 VBOX_PATH_MANUAL_SRC := $(PATH_ROOT)/doc/manual
52 # Output location.
53 VBOX_PATH_MANUAL_OUTBASE := $(PATH_OBJ)/manual
54
55 ## List of refentry files (manpages).
56 VBOX_MANUAL_XML_REFENTRY_FILES := \
57 man_VBoxManage-common.xml \
58 man_VBoxManage-list.xml \
59 man_VBoxManage-showvminfo.xml \
60 man_VBoxManage-registervm.xml \
61 man_VBoxManage-unregistervm.xml \
62 man_VBoxManage-createvm.xml \
63 man_VBoxManage-modifyvm.xml \
64 man_VBoxManage-snapshot.xml \
65 man_VBoxManage-clonevm.xml \
66 man_VBoxManage-movevm.xml \
67 man_VBoxManage-encryptvm.xml \
68 man_VBoxManage-startvm.xml \
69 man_VBoxManage-controlvm.xml \
70 man_VBoxManage-import.xml \
71 man_VBoxManage-export.xml \
72 man_VBoxManage-mediumio.xml \
73 man_VBoxManage-sharedfolder.xml \
74 man_VBoxManage-dhcpserver.xml \
75 man_VBoxManage-debugvm.xml \
76 man_VBoxManage-extpack.xml \
77 man_VBoxManage-unattended.xml \
78 man_VBoxManage-cloud.xml \
79 man_VBoxManage-cloudprofile.xml \
80 man_VBoxManage-signova.xml \
81 man_VBoxManage-modifynvram.xml \
82 man_VBoxManage-hostonlynet.xml \
83 man_VBoxManage-updatecheck.xml \
84 man_VBoxManage-discardstate.xml \
85 man_VBoxManage-adoptstate.xml \
86 man_VBoxManage-closemedium.xml \
87 man_VBoxManage-storageattach.xml \
88 man_VBoxManage-storagectl.xml \
89 man_VBoxManage-bandwidthctl.xml \
90 man_VBoxManage-showmediuminfo.xml \
91 man_VBoxManage-createmedium.xml \
92 man_VBoxManage-modifymedium.xml \
93 man_VBoxManage-clonemedium.xml \
94 man_VBoxManage-mediumproperty.xml \
95 man_VBoxManage-encryptmedium.xml \
96 man_VBoxManage-checkmediumpwd.xml \
97 man_VBoxManage-convertfromraw.xml \
98 man_VBoxManage-setextradata.xml \
99 man_VBoxManage-getextradata.xml \
100 man_VBoxManage-setproperty.xml \
101 man_VBoxManage-usbfilter.xml \
102 man_VBoxManage-guestproperty.xml \
103 man_VBoxManage-guestcontrol.xml \
104 man_VBoxManage-metrics.xml \
105 man_VBoxManage-natnetwork.xml \
106 man_VBoxManage-hostonlyif.xml \
107 man_VBoxManage-usbdevsource.xml \
108 man_VBoxManage-objtracker.xml
109
110 ## List of user manual XML files common for all languages.
111 VBOX_MANUAL_XML_FILES_COMMON = \
112 $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml
113
114
115 # Tool locations.
116 ifndef VBOX_OSE
117 # use docbook from our tools directory
118 VBOX_PATH_DOCBOOK ?= $(KBUILD_DEVTOOLS)/common/DocBook/v1.69.1
119 VBOX_PATH_DOCBOOK_DTD ?= $(KBUILD_DEVTOOLS)/common/docbook-xml/v4.5
120 VBOX_PATH_DITA_DTD ?= $(VBOX_DITA_OT_PATH)/plugins/org.dita.specialization.dita11/dtd/
121 else
122 # use docbook of the build host
123 VBOX_PATH_DOCBOOK ?= /usr/share/xml/docbook/stylesheet/docbook-xsl
124 VBOX_PATH_DOCBOOK_DTD ?= /usr/share/xml/docbook/schema/dtd/4.5
125 VBOX_PATH_DITA_DTD ?= $(VBOX_DITA_OT_PATH)/plugins/org.dita.specialization.dita11/dtd/
126 endif
127 VBOX_XML_CATALOG ?= $(VBOX_PATH_MANUAL_OUTBASE)/vbox-doc.cat
128 VBOX_XML_CATALOG_DOCBOOK ?= $(VBOX_PATH_MANUAL_OUTBASE)/docbook.cat
129 VBOX_XML_CATALOG_DITA ?= $(VBOX_PATH_MANUAL_OUTBASE)/dita.cat
130 VBOX_XML_CATALOG_MANUAL ?= $(VBOX_PATH_MANUAL_OUTBASE)/manual.cat
131 VBOX_XML_ALL_CATALOGS_DEP ?= $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_DITA) $(VBOX_XML_CATALOG_MANUAL)
132 VBOX_XML_ENTITIES ?= $(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent
133
134 # xsltproc with the catalog trick if applicable (set XML_DEBUG_CATALOG to
135 # non-zero value to debug file/uri resolution through the catalogs, using
136 # one of them is enough, they show the same information).
137 ifdef VBOX_XML_CATALOG
138 VBOX_XSLTPROC_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(if $(2),$(2),$(VBOX_XML_CATALOG))" -E "XML_DEBUG_CATALOG=" $1 -- \
139 $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
140 VBOX_XMLLINT_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -E "XML_DEBUG_CATALOG=" -- \
141 $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
142 else
143 VBOX_XSLTPROC_WITH_CAT = $(if $(1), $(REDIRECT) $1 --,) $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) \
144 --path "$(VBOX_PATH_MANUAL_OUTBASE)"
145 VBOX_XMLLINT_WITH_CAT = $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
146 endif
147 # Workaround for a security (?) fix in libxml (xsltproc doesn't have a way of setting the max amp level):
148 # utilitiesDomain.mod:135: parser error : Maximum entity amplification factor exceeded, see xmlCtxtSetMaxAmplification.
149 if $(firstword $(VBOX_XSLTPROC_LIBXML_VERSION) 0) >= 21206 ## @todo not sure which version introduced this issue.
150 VBOX_XSLTPROC_WORKAROUND := --novalid
151 else
152 VBOX_XSLTPROC_WORKAROUND :=
153 endif
154
155
156 # File name of the generated stylesheet for transforming xref elements into
157 # name user manual sections.
158 VBOX_XML_XREF_TO_TEXT = xref-to-text.xsl
159
160 ##
161 # Emits rules for preprocessing refentry sources (applying remarks element),
162 # and for producing the actual man pages.
163 #
164 # $(evalcall2 def_vbox_refentry_preprocess_for_manpage)
165 # @param 1 The output directory.
166 # @param 2 The XML file name (no path).
167 # @param 3 The XML file with full path.
168 # @param 4 Non-empty if xrefs to replace.
169 # @param 5 Language code (optional if $4 is empty).
170 define def_vbox_refentry_preprocess_for_manpage
171 $(1)/$(2): \
172 $(3) \
173 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \
174 $(if $(4), $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT),) \
175 $$(VBOX_XML_ALL_CATALOGS_DEP) \
176 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
177 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
178 $$(QUIET)$$(RM) -f "$$@"
179 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \
180 "$$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl" $$<
181 ifneq ($(4),)
182 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output [email protected] \
183 $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT) $$@
184 $$(QUIET)$$(MV) -f -- "[email protected]" "$$@"
185 endif
186 if defined(VBOX_HAVE_XMLLINT) && "$(USER)" == "bird" # Effing stuff happends on build servers, probably kmk related...
187 $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@
188 endif
189 endef
190
191 ##
192 # Generate a single header file containing everything (no C file).
193 #
194 # @param 1 Destination file.
195 # @param 2 Full source file path.
196 # @param 3 Help infix.
197 define def_vbox_single_refentry_to_h
198 $(1).ts +| $(1): \
199 $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) \
200 $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \
201 $(2) \
202 $$(VBOX_XML_ALL_CATALOGS_DEP) $(MAKEFILE) | $$$$(dir $$$$@)
203 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(filter %.xml,$$^),$$(patsubst %.ts,%,$$@))
204 $$(QUIET)$$(APPEND) -tn "$$@" \
205 '/* Autogenerated by $$(notdir $$(filter %.xsl,$$^)), do not edit! */' \
206 '' \
207 '#include <iprt/message.h>' \
208 '#include <iprt/assertcompile.h>' \
209 '' \
210 'typedef enum HELP_CMD_$(3)' \
211 '{' \
212 ' HELP_CMD_INVALID = 0,'
213 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \
214 --stringparam 'g_sMode' 'cmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2)
215 $$(QUIET)$$(APPEND) -n "$$@" \
216 ' HELP_CMD_END' \
217 '} HELP_CMD_VBOXMANAGE;' \
218 ''
219 $$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \
220 --stringparam 'g_sMode' 'subcmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2)
221 $$(QUIET)$$(APPEND) -n "$$@" \
222 ''
223 $$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) $(2)
224 $$(QUIET)$$(APPEND) -n "$$@" \
225 '' \
226 '/* end of file */'
227 $$(QUIET)$$(CP) --changed -- "$$@" "$$(patsubst %.ts,%,$$@)"
228 endef
229
230
231 #
232 # Make sure we've got a rule to make the output directory.
233 #
234 BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE)
235
236
237 ifdef VBOX_XML_CATALOG
238 # Trickery for making sure that the file:/// URLs end up with exactly 3
239 # slashes, both on Unixy OSes (where the absolute path contributes one more,
240 # and some very picky xsltproc variants are floating around which do not work
241 # quite correctly with file:////, doing incorrect filename transformations)
242 # and on Windows (where the absolute path starts with a drive letter).
243 VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,)
244 #
245 # To avoid network I/O for fetching DTDs, we generate catalogs mapping the public
246 # entity IDs to local files. (Obviously, only done when we have local files.)
247 #
248 # Create a catalog file for xsltproc that points to docbook catalog.
249 $(VBOX_XML_CATALOG): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
250 $(call MSG_L1,Creating catalog $@)
251 $(QUIET)$(APPEND) -tn "$@" \
252 '<?xml version="1.0"?>' \
253 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
254 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
255 ' <delegatePublic publicIdStartString="-//OASIS/ENTITIES DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
256 ' <delegatePublic publicIdStartString="-//OASIS/DTD DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
257 ' <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
258 ' <delegateSystem systemIdStartString="http://docbook.org/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
259 ' <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
260 ' <delegateURI uriStartString="http://docbook.org/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
261 ' <delegatePublic publicIdStartString="-//OASIS/DTD DITA" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DITA)"/>' \
262 ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)/en_US/dita/bookmap.dtd" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DITA)"/>' \
263 ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/topic.dtd" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DITA)"/>' \
264 ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
265 ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
266 ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
267 ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
268 ' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
269 ' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
270 '</catalog>'
271
272 # Create a docbook catalog file for xsltproc that points to the local docbook files.
273 $(VBOX_XML_CATALOG_DOCBOOK): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
274 $(call MSG_L1,Creating catalog $@)
275 $(QUIET)$(APPEND) -tn "$@" \
276 '<?xml version="1.0"?>' \
277 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
278 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
279 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbpoolx.mod"/>' \
280 ' <public publicId="-//OASIS//DTD DocBook XML V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd"/>' \
281 ' <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbcentx.mod"/>' \
282 ' <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbnotnx.mod"/>' \
283 ' <public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbgenent.mod"/>' \
284 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbhierx.mod"/>' \
285 ' <public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/soextblx.dtd"/>' \
286 ' <public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/calstblx.dtd"/>' \
287 ' <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
288 ' <rewriteSystem systemIdStartString="http://docbook.org/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
289 ' <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
290 ' <rewriteURI uriStartString="http://docbook.org/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
291 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsa.ent"/>' \
292 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsb.ent"/>' \
293 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsc.ent"/>' \
294 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsn.ent"/>' \
295 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amso.ent"/>' \
296 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsr.ent"/>' \
297 ' <public publicId="ISO 8879:1986//ENTITIES Box and Line Drawing//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-box.ent"/>' \
298 ' <public publicId="ISO 8879:1986//ENTITIES Russian Cyrillic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-cyr1.ent"/>' \
299 ' <public publicId="ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-cyr2.ent"/>' \
300 ' <public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-dia.ent"/>' \
301 ' <public publicId="ISO 8879:1986//ENTITIES Greek Letters//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk1.ent"/>' \
302 ' <public publicId="ISO 8879:1986//ENTITIES Monotoniko Greek//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk2.ent"/>' \
303 ' <public publicId="ISO 8879:1986//ENTITIES Greek Symbols//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk3.ent"/>' \
304 ' <public publicId="ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk4.ent"/>' \
305 ' <public publicId="ISO 8879:1986//ENTITIES Added Latin 1//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-lat1.ent"/>' \
306 ' <public publicId="ISO 8879:1986//ENTITIES Added Latin 2//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-lat2.ent"/>' \
307 ' <public publicId="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-num.ent"/>' \
308 ' <public publicId="ISO 8879:1986//ENTITIES Publishing//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-pub.ent"/>' \
309 ' <public publicId="ISO 8879:1986//ENTITIES General Technical//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-tech.ent"/>' \
310 '</catalog>'
311
312 # Create a dita catalog file for xsltproc that points to the local dita files.
313 $(VBOX_XML_CATALOG_DITA): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
314 $(call MSG_L1,Creating catalog $@)
315 $(QUIET)$(APPEND) -tn "$@" \
316 '<?xml version="1.0"?>' \
317 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
318 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
319 ' <public publicId="-//OASIS//DTD DITA BookMap//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DITA_DTD)/bookmap.dtd"/>' \
320 ' <public publicId="-//OASIS//DTD DITA Topic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DITA_DTD)/topic.dtd"/>' \
321 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/dita/bookmap.dtd" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DITA_DTD)/bookmap.dtd"/>' \
322 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/topic.dtd" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DITA_DTD)/topic.dtd"/>' \
323 '</catalog>'
324
325 # Create a docbook catalog file for xsltproc that points to the local manual files in non-default locations
326 $(VBOX_XML_CATALOG_MANUAL): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
327 $(call MSG_L1,Creating catalog $@)
328 $(QUIET)$(APPEND) -tn "$@" \
329 '<?xml version="1.0"?>' \
330 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
331 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
332 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-accessibility-ohc-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-ohc-en.xml"/>' \
333 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-legal-notices/oracle-diversity.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-diversity.xml"/>' \
334 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-legal-notices/oracle-support-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
335 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_ChangeLogImpl.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml"/>' \
336 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl"/>' \
337 $(foreach x,user_VBoxManage_CommandsOverview.xml user_isomakercmd-man.xml $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml)\
338 ,' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/$(x)" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/en_US/$(x)"/>' \$(NLTAB)$(TAB)) \
339 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef_apiref.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml"/>' \
340 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/all-entities.ent" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent"/>' \
341 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/docbook.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/html/docbook.xsl"/>' \
342 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/chunk.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/html/chunk.xsl"/>' \
343 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/htmlhelp/htmlhelp.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/htmlhelp/htmlhelp.xsl"/>' \
344 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/manpages/docbook.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/manpages/docbook.xsl"/>' \
345 '</catalog>'
346
347 endif # VBOX_XML_CATALOG
348
349
350 ifdef VBOX_XML_ENTITIES
351
352 $(VBOX_XML_ENTITIES): $(VBOX_PATH_MANUAL_SRC)/Config.kmk $(VBOX_VERSION_STAMP) | $$(dir $$@)
353 $(call MSG_L1,Creating entities $@)
354 $(QUIET)$(APPEND) -tn "$@" \
355 '<!-- Entities for product names -->' \
356 '<!ENTITY product-version "$(VBOX_VERSION_STRING)">' \
357 '<!ENTITY product-name "Oracle VirtualBox">' \
358 '<!ENTITY extpack-name "Oracle VirtualBox Extension Pack">' \
359 '<!ENTITY vbox-mgr "VirtualBox Manager">' \
360 '<!ENTITY oci "Oracle Cloud Infrastructure">' \
361 '' \
362 '<!-- VBox placeholder entities -->' \
363 '<!ENTITY VBOX_VERSION_MAJOR "$(VBOX_VERSION_MAJOR)" >' \
364 '<!ENTITY VBOX_VERSION_MINOR "$(VBOX_VERSION_MINOR)" >' \
365 '<!ENTITY VBOX_VERSION_BUILD "$(VBOX_VERSION_BUILD)" >' \
366 '<!ENTITY VBOX_VERSION_STRING "$(VBOX_VERSION_STRING)" >' \
367 '<!ENTITY VBOX_VENDOR "$(VBOX_VENDOR)" >' \
368 '<!ENTITY VBOX_C_YEAR "$(VBOX_C_YEAR)" >' \
369 '<!ENTITY VBOX_PRODUCT '\''<trademark class="registered">Oracle</trademark> <trademark class="registered">VirtualBox</trademark>'\'' >' \
370 '' \
371 '<!-- Entities for Oracle Help Center -->' \
372 '<!ENTITY ohc-base-url "https://docs.oracle.com/en">' \
373 '<!ENTITY ohc-doc-page "&ohc-base-url;/virtualization/virtualbox/index.html">'
374
375 endif # VBOX_XML_ENTITIES
376
377
378 ## Emit rules to produce a stylesheet for translating cross references (xref)
379 # to user manual chapters and sections in the man pages and --help output.
380 #
381 # Note! This is a bit hackish, as it only processes the checked in .dita files
382 # and not the processed result nor stuff we generated. Seems like all
383 # we generate is manpage related pages, so that's fine since these are
384 # all currently at the tail of one chapter in the manual.
385 #
386 # If it turns out we generate more stuff that this, we're in for lots of
387 # dependency fun with VBoxManage and the RTIsoMaker (+ derivatives).
388 #
389 # $(evalcall2 def_vbox_xref_to_text)
390 # @param 1 Language code.
391 define def_vbox_xref_to_text
392 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \
393 + $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat: \
394 $$(VBOX_PATH_MANUAL_SRC)/$(1)/docbook-refentry-link-replacement-xsl-gen.xsl \
395 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-link-replacement-xsl-gen.xsl \
396 $$(VBOX_PATH_MANUAL_SRC)/$(1)/dita-refentry-link-replacement-xsl-gen.xsl \
397 $$(VBOX_PATH_MANUAL_SRC)/dita-refentry-link-replacement-xsl-gen.xsl \
398 $$(VBOX_PATH_MANUAL_SRC)/ditamap-to-single-xml.xsl \
399 $$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/UserManual.ditamap \
400 $$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics/*.xml) \
401 $$(VBOX_MANUAL_XML_FILES_COMMON) \
402 $$(VBOX_XML_ALL_CATALOGS_DEP) $$(VBOX_XML_ENTITIES) \
403 | $$$$(dir $$$$@)
404 $$(call MSG_L1,Creating stylesheet $$@)
405 $$(QUIET)$$(APPEND) -nt "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat" \
406 '<?xml version="1.0"?>' \
407 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
408 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
409 $$(foreach x, vboxmanage-cmd-overview.dita \
410 ,' <system systemId="$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/topics/$$(x)" uri="file://$$(VBOX_FILE_URL_MAYBE_SLASH)$$(VBOX_PATH_MANUAL_SRC)/dummy-topic.dita"/>' \$$(NLTAB)$$(TAB)) \
411 ' <nextCatalog catalog="file://$$(VBOX_FILE_URL_MAYBE_SLASH)$$(VBOX_XML_CATALOG)"/>' \
412 '</catalog>'
413 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT,,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat) \
414 --output "[email protected]" "$$(VBOX_PATH_MANUAL_SRC)/ditamap-to-single-xml.xsl" $$(filter %.ditamap,$$^)
415 if 0 # Enable to see the full combined document.
416 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT,,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat) \
417 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics/licensing/vbox-base" \
418 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics/licensing/vbox-ext" \
419 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics/licensing" \
420 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics" \
421 --output "[email protected]" "$$(VBOX_PATH_MANUAL_SRC)/ditamap-to-single-xml.xsl" "[email protected]"
422 endif
423 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT,,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat) \
424 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics/licensing/vbox-base" \
425 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics/licensing/vbox-ext" \
426 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics/licensing" \
427 --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics" \
428 --stringparam 'g_sMode' 'first' \
429 --output "$$@" \
430 "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita-refentry-link-replacement-xsl-gen.xsl" \
431 "[email protected]"
432 # Using en-US version as section and chapter names until user manual is translated as well
433 $$(foreach x, $$(VBOX_MANUAL_XML_REFENTRY_FILES)\
434 ,$$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -ato "$$@") --stringparam 'g_sMode' 'append' \
435 "$$<" "$$(VBOX_PATH_MANUAL_SRC)/en_US/$$(x)")
436 $$(QUIET)$$(APPEND) -n "$$@" '' '</xsl:stylesheet>'
437 $$(QUIET)$$(RM) -f -- "[email protected]"
438
439 BLDDIRS += $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/
440 endef
441 # generate rules for $(VBOX_XML_XREF_TO_TEXT)
442 $(evalcall2 def_vbox_xref_to_text,en_US)
443
444 #
445 # Generate rules for editing the refentry to C/H style sheets.
446 #
447 VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl
448
449 VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl
450
451 #
452 # Manual dependency.
453 #
454 $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl: $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl
455
456
457endif # !defined(VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED)
458
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette