VirtualBox

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

Last change on this file since 93483 was 93115, checked in by vboxsync, 3 years ago

scm --update-copyright-year

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 22.7 KB
Line 
1# $Id: Config.kmk 93115 2022-01-01 11:31:46Z vboxsync $
2## @file
3# kBuild Configuration file for the manual.
4#
5
6#
7# Copyright (C) 2010-2022 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED
19VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED = 1
20
21# Include the top-level configure file.
22ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
23 include $(PATH_ROOT)/Config.kmk
24endif
25
26
27#
28# Globals.
29#
30
31# Source location.
32VBOX_PATH_MANUAL_SRC := $(PATH_ROOT)/doc/manual
33# Output location.
34VBOX_PATH_MANUAL_OUTBASE := $(PATH_OBJ)/manual
35
36## List of refentry files (manpages).
37VBOX_MANUAL_XML_REFENTRY_FILES := \
38 man_VBoxManage.xml \
39 man_VBoxManage-list.xml \
40 man_VBoxManage-showvminfo.xml \
41 man_VBoxManage-registervm.xml \
42 man_VBoxManage-unregistervm.xml \
43 man_VBoxManage-createvm.xml \
44 man_VBoxManage-modifyvm.xml \
45 man_VBoxManage-clonevm.xml \
46 man_VBoxManage-movevm.xml \
47 man_VBoxManage-import.xml \
48 man_VBoxManage-export.xml \
49 man_VBoxManage-snapshot.xml \
50 man_VBoxManage-mediumio.xml \
51 man_VBoxManage-sharedfolder.xml \
52 man_VBoxManage-dhcpserver.xml \
53 man_VBoxManage-debugvm.xml \
54 man_VBoxManage-extpack.xml \
55 man_VBoxManage-unattended.xml \
56 man_VBoxManage-cloud.xml \
57 man_VBoxManage-cloudprofile.xml \
58 man_VBoxManage-signova.xml \
59 man_VBoxManage-modifynvram.xml \
60 $(if $(VBOX_WITH_VMNET), \
61 man_VBoxManage-hostonlynet.xml \
62 ,) \
63 man_VBoxManage-updatecheck.xml
64
65## List of user manual XML files.
66VBOX_MANUAL_XML_FILES = \
67 UserManual.xml \
68 user_Preface.xml \
69 user_Introduction.xml \
70 user_Installation.xml \
71 user_BasicConcepts.xml \
72 user_GuestAdditions.xml \
73 user_Storage.xml \
74 user_Networking.xml \
75 user_Frontends.xml \
76 user_VBoxManage.xml \
77 user_AdvancedTopics.xml \
78 user_Technical.xml \
79 user_VirtualBoxAPI.xml \
80 user_Troubleshooting.xml \
81 user_Security.xml \
82 user_KnownIssues.xml \
83 user_ChangeLog.xml \
84 user_ThirdParty.xml \
85 user_PrivacyPolicy.xml \
86 user_Glossary.xml \
87 oracle-accessibility-en.xml \
88 oracle-diversity.xml \
89 oracle-support-en.xml
90
91## List of user manual XML files common for all languages.
92VBOX_MANUAL_XML_FILES_COMMON = \
93 $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml
94
95
96# Tool locations.
97ifndef VBOX_OSE
98 # use docbook from our tools directory
99 VBOX_PATH_DOCBOOK ?= $(KBUILD_DEVTOOLS)/common/DocBook/v1.69.1
100 VBOX_PATH_DOCBOOK_DTD ?= $(KBUILD_DEVTOOLS)/common/docbook-xml/v4.5
101else
102 # use docbook of the build host
103 VBOX_PATH_DOCBOOK ?= /usr/share/xml/docbook/stylesheet/docbook-xsl
104 VBOX_PATH_DOCBOOK_DTD ?= /usr/share/xml/docbook/schema/dtd/4.5
105endif
106VBOX_XML_CATALOG ?= $(VBOX_PATH_MANUAL_OUTBASE)/catalog
107VBOX_XML_CATALOG_DOCBOOK ?= $(VBOX_PATH_MANUAL_OUTBASE)/docbook
108VBOX_XML_CATALOG_MANUAL ?= $(VBOX_PATH_MANUAL_OUTBASE)/manual
109VBOX_XML_ENTITIES ?= $(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent
110
111# xsltproc with the catalog trick if applicable (set XML_DEBUG_CATALOG to
112# non-zero value to debug file/uri resolution through the catalogs, using
113# one of them is enough, they show the same information).
114ifdef VBOX_XML_CATALOG
115 VBOX_XSLTPROC_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -E "XML_DEBUG_CATALOG=" $1 -- \
116 $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
117 VBOX_XMLLINT_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -E "XML_DEBUG_CATALOG=" -- \
118 $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
119else
120 VBOX_XSLTPROC_WITH_CAT = $(if $(1), $(REDIRECT) $1 --,) $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) \
121 --path "$(VBOX_PATH_MANUAL_OUTBASE)"
122 VBOX_XMLLINT_WITH_CAT = $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
123endif
124
125
126# Location of the generate stylesheet for transformating xref elements into
127# name user manual sections.
128VBOX_XML_XREF_TO_TEXT = $(VBOX_PATH_MANUAL_OUTBASE)/xref-to-text.xsl
129
130##
131# Emits rules for preprocessing refentry sources (applying remarks element),
132# and for producing the actual man pages.
133#
134# $(evalcall2 def_vbox_refentry_to_manpage)
135# @param 1 The output directory.
136# @param 2 The XML file name (no path).
137# @param 3 The XML file with full path.
138# @param 4 Non-empty if xrefs to replace.
139# @param 5 Language code (optional)
140define def_vbox_refentry_preprocess_for_manpage
141$(1)/$(2): \
142 $(3) \
143 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \
144 $(if $(4), $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/xref-to-text.xsl,) \
145 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
146 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
147 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
148 $$(QUIET)$$(RM) -f "$$@"
149 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \
150 "$$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl" $$<
151ifneq ($(4),)
152 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@.tmp \
153 $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/xref-to-text.xsl $$@
154 $$(QUIET)$$(MV) -f -- "$$@.tmp" "$$@"
155endif
156if defined(VBOX_HAVE_XMLLINT) && "$(USER)" == "bird" # Effing stuff happends on build servers, probably kmk related...
157 $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@
158endif
159endef
160
161##
162# Generate a single header file containing everything (no C file).
163#
164# @param 1 Destination file.
165# @param 2 Full source file path.
166# @param 3 Help infix.
167define def_vbox_single_refentry_to_h
168$(1).ts +| $(1): \
169 $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) \
170 $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \
171 $(2) \
172 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $(MAKEFILE) | $$$$(dir $$$$@)
173 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(filter %.xml,$$^),$$(patsubst %.ts,%,$$@))
174 $$(QUIET)$$(APPEND) -tn "$$@" \
175 '/* Autogenerated by $$(notdir $$(filter %.xsl,$$^)), do not edit! */' \
176 '' \
177 '#include <iprt/message.h>' \
178 '' \
179 'typedef enum HELP_CMD_$(3)' \
180 '{' \
181 ' HELP_CMD_INVALID = 0,'
182 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \
183 --stringparam 'g_sMode' 'cmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2)
184 $$(QUIET)$$(APPEND) -n "$$@" \
185 ' HELP_CMD_END' \
186 '} HELP_CMD_VBOXMANAGE;' \
187 ''
188 $$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \
189 --stringparam 'g_sMode' 'subcmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2)
190 $$(QUIET)$$(APPEND) -n "$$@" \
191 ''
192 $$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) $(2)
193 $$(QUIET)$$(APPEND) -n "$$@" \
194 '' \
195 '/* end of file */'
196 $$(QUIET)$$(CP) --changed -- "$$@" "$$(patsubst %.ts,%,$$@)"
197endef
198
199
200#
201# Make sure we've got a rule to make the output directory.
202#
203BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE)
204
205
206ifdef VBOX_XML_CATALOG
207 # Trickery for making sure that the file:/// URLs end up with exactly 3
208 # slashes, both on Unixy OSes (where the absolute path contributes one more,
209 # and some very picky xsltproc variants are floating around which do not work
210 # quite correctly with file:////, doing incorrect filename transformations)
211 # and on Windows (where the absolute path starts with a drive letter).
212 VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,)
213 #
214 # To avoid network I/O for fetching DTDs, we generate catalogs mapping the public
215 # entity IDs to local files. (Obviously, only done when we have local files.)
216 #
217 # Create a catalog file for xsltproc that points to docbook catalog.
218 $(VBOX_XML_CATALOG): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
219 $(call MSG_L1,Creating catalog $@)
220 $(QUIET)$(APPEND) -tn "$@" \
221 '<?xml version="1.0"?>' \
222 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
223 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
224 ' <delegatePublic publicIdStartString="-//OASIS/ENTITIES DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
225 ' <delegatePublic publicIdStartString="-//OASIS/DTD DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
226 ' <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
227 ' <delegateSystem systemIdStartString="http://docbook.org/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
228 ' <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
229 ' <delegateURI uriStartString="http://docbook.org/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
230 ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
231 ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
232 ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
233 ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
234 ' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
235 ' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
236 '</catalog>'
237
238 # Create a docbook catalog file for xsltproc that points to the local docbook files.
239 $(VBOX_XML_CATALOG_DOCBOOK): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
240 $(call MSG_L1,Creating catalog $@)
241 $(QUIET)$(APPEND) -tn "$@" \
242 '<?xml version="1.0"?>' \
243 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
244 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
245 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbpoolx.mod"/>' \
246 ' <public publicId="-//OASIS//DTD DocBook XML V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd"/>' \
247 ' <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbcentx.mod"/>' \
248 ' <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbnotnx.mod"/>' \
249 ' <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"/>' \
250 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbhierx.mod"/>' \
251 ' <public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/soextblx.dtd"/>' \
252 ' <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"/>' \
253 ' <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
254 ' <rewriteSystem systemIdStartString="http://docbook.org/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
255 ' <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
256 ' <rewriteURI uriStartString="http://docbook.org/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
257 ' <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"/>' \
258 ' <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"/>' \
259 ' <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"/>' \
260 ' <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"/>' \
261 ' <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"/>' \
262 ' <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"/>' \
263 ' <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"/>' \
264 ' <public publicId="ISO 8879:1986//ENTITIES Russian Cyrillic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-cyr1.ent"/>' \
265 ' <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"/>' \
266 ' <public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-dia.ent"/>' \
267 ' <public publicId="ISO 8879:1986//ENTITIES Greek Letters//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk1.ent"/>' \
268 ' <public publicId="ISO 8879:1986//ENTITIES Monotoniko Greek//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk2.ent"/>' \
269 ' <public publicId="ISO 8879:1986//ENTITIES Greek Symbols//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk3.ent"/>' \
270 ' <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"/>' \
271 ' <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"/>' \
272 ' <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"/>' \
273 ' <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"/>' \
274 ' <public publicId="ISO 8879:1986//ENTITIES Publishing//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-pub.ent"/>' \
275 ' <public publicId="ISO 8879:1986//ENTITIES General Technical//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-tech.ent"/>' \
276 '</catalog>'
277
278 # Create a docbook catalog file for xsltproc that points to the local manual files in non-default locations
279 $(VBOX_XML_CATALOG_MANUAL): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
280 $(call MSG_L1,Creating catalog $@)
281 $(QUIET)$(APPEND) -tn "$@" \
282 '<?xml version="1.0"?>' \
283 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
284 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
285 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-accessibility-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-en.xml"/>' \
286 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-diversity.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-diversity.xml"/>' \
287 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-support-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
288 ' <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"/>' \
289 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl"/>' \
290 $(foreach x,user_VBoxManage_CommandsOverview.xml user_isomakercmd-man.xml $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml)\
291 ,' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/$(x)" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/en_US/$(x)"/>') \
292 ' <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"/>' \
293 ' <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"/>' \
294 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/docbook.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/html/docbook.xsl"/>' \
295 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/chunk.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/html/chunk.xsl"/>' \
296 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/htmlhelp/htmlhelp.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/htmlhelp/htmlhelp.xsl"/>' \
297 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/manpages/docbook.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/manpages/docbook.xsl"/>' \
298 '</catalog>'
299
300endif # VBOX_XML_CATALOG
301
302
303ifdef VBOX_XML_ENTITIES
304
305 $(VBOX_XML_ENTITIES): $(VBOX_PATH_MANUAL_SRC)/Config.kmk $(VBOX_VERSION_STAMP) | $$(dir $$@)
306 $(call MSG_L1,Creating entities $@)
307 $(QUIET)$(APPEND) -tn "$@" \
308 '<!-- Entities for product names -->' \
309 '<!ENTITY product-version "$(VBOX_VERSION_STRING)">' \
310 '<!ENTITY product-name "Oracle VM VirtualBox">' \
311 '<!ENTITY oci "Oracle Cloud Infrastructure">' \
312 '' \
313 '<!-- VBox placeholder entities -->' \
314 '<!ENTITY VBOX_VERSION_MAJOR "$(VBOX_VERSION_MAJOR)" >' \
315 '<!ENTITY VBOX_VERSION_MINOR "$(VBOX_VERSION_MINOR)" >' \
316 '<!ENTITY VBOX_VERSION_BUILD "$(VBOX_VERSION_MINOR)" >' \
317 '<!ENTITY VBOX_VERSION_STRING "$(VBOX_VERSION_STRING)" >' \
318 '<!ENTITY VBOX_VENDOR "$(VBOX_VENDOR)" >' \
319 '<!ENTITY VBOX_C_YEAR "$(VBOX_C_YEAR)" >' \
320 '<!ENTITY VBOX_PRODUCT '\''<trademark class="registered">Oracle</trademark> VM <trademark class="registered">VirtualBox</trademark>'\'' >' \
321 '' \
322 '<!-- Entities for Oracle Help Center -->' \
323 '<!ENTITY ohc-base-url "https://docs.oracle.com/en">' \
324 '<!ENTITY ohc-doc-page "&ohc-base-url;/virtualization/virtualbox/index.html">'
325
326endif # VBOX_XML_ENTITIES
327
328
329## Emit rules to produce stylesheet for translating cross references (xref)
330# to user manual chapters and sections in the man pages and --help output.
331#
332# Note! This requires processing UserManual.xml as a single document in order
333# to get the correct chapter and section numbering, so we use a catalog
334# file to replace the generated XML documents it includes with a dummy
335# one. This reduces the dependencies and recipies we require to build
336# VBoxManage and the RTIsoMaker (w/ derivatives).
337# $(evalcall2 def_vbox_xref_to_text)
338# @param 1 Language code.
339define def_vbox_xref_to_text
340$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/xref-to-text.xsl \
341+ $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/xref-to-text.xsl.cat: \
342 $$(VBOX_PATH_MANUAL_SRC)/$(1)/docbook-refentry-link-replacement-xsl-gen.xsl \
343 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/en_US/,$$(VBOX_MANUAL_XML_FILES)) \
344 $$(VBOX_MANUAL_XML_FILES_COMMON) \
345 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $$(VBOX_XML_ENTITIES) \
346 | $$$$(dir $$$$@)
347 $$(call MSG_L1,Creating stylesheet $$@)
348 $$(QUIET)$$(APPEND) -nt "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/xref-to-text.xsl.cat" \
349 '<?xml version="1.0"?>' \
350 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
351 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
352 $$(foreach x,user_VBoxManage_CommandsOverview.xml user_isomakercmd-man.xml $$(addprefix user_,$$(VBOX_MANUAL_XML_REFENTRY_FILES))\
353 ,' <system systemId="$$(VBOX_PATH_MANUAL_SRC)/en_US/$$(x)" uri="file://$$(VBOX_FILE_URL_MAYBE_SLASH)$$(VBOX_PATH_MANUAL_SRC)/dummy-sect1.xml"/>') \
354 ' <nextCatalog catalog="file://$$(VBOX_FILE_URL_MAYBE_SLASH)$$(VBOX_XML_CATALOG)"/>' \
355 '</catalog>'
356 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -E "XML_CATALOG_FILES=$$(VBOX_PATH_MANUAL_OUTBASE)/xref-to-text$(1).xsl.cat") \
357 --stringparam 'g_sMode' 'first' --output "$$@" "$$<" $$(filter %UserManual.xml,$$^)
358 # Using en-US version as section and chapter names until user manual is translated as well
359 $$(foreach x, $$(VBOX_MANUAL_XML_REFENTRY_FILES)\
360 ,$$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -ato "$$@") --stringparam 'g_sMode' 'append' \
361 "$$<" "$$(VBOX_PATH_MANUAL_SRC)/en_US/$$(x)")
362 $$(QUIET)$$(APPEND) -n "$$@" '' '</xsl:stylesheet>'
363endef
364# generate rules for $(VBOX_XML_XREF_TO_TEXT)
365$(evalcall2 def_vbox_xref_to_text,)
366
367#
368# Generate rules for editing the refentry to C/H style sheets.
369#
370VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl
371
372VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl
373
374#
375# Manual dependency.
376#
377$(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl: $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl
378
379
380endif # !defined(VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED)
381
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