- Timestamp:
- Feb 2, 2023 1:31:37 PM (2 years ago)
- Location:
- trunk/doc/manual
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/manual/Config.kmk
r98103 r98448 27 27 28 28 ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED 29 VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED = 130 31 # Include the top-level configure file.32 ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED33 include $(PATH_ROOT)/Config.kmk34 endif35 36 37 #38 # Globals.39 #40 41 # Source location.42 VBOX_PATH_MANUAL_SRC:= $(PATH_ROOT)/doc/manual43 # Output location.44 VBOX_PATH_MANUAL_OUTBASE := $(PATH_OBJ)/manual45 46 ## List of refentry files (manpages).47 VBOX_MANUAL_XML_REFENTRY_FILES := \48 man_VBoxManage-common.xml \49 man_VBoxManage-list.xml \50 man_VBoxManage-showvminfo.xml \51 man_VBoxManage-registervm.xml \52 man_VBoxManage-unregistervm.xml \53 man_VBoxManage-createvm.xml \54 man_VBoxManage-modifyvm.xml \55 man_VBoxManage-snapshot.xml \56 man_VBoxManage-clonevm.xml \57 man_VBoxManage-movevm.xml \58 man_VBoxManage-encryptvm.xml \59 man_VBoxManage-startvm.xml \60 man_VBoxManage-controlvm.xml \61 man_VBoxManage-import.xml \62 man_VBoxManage-export.xml \63 man_VBoxManage-mediumio.xml \64 man_VBoxManage-sharedfolder.xml \65 man_VBoxManage-dhcpserver.xml \66 man_VBoxManage-debugvm.xml \67 man_VBoxManage-extpack.xml \68 man_VBoxManage-unattended.xml \69 man_VBoxManage-cloud.xml \70 man_VBoxManage-cloudprofile.xml \71 man_VBoxManage-signova.xml \72 man_VBoxManage-modifynvram.xml \73 man_VBoxManage-hostonlynet.xml \74 man_VBoxManage-updatecheck.xml \75 man_VBoxManage-discardstate.xml \76 man_VBoxManage-adoptstate.xml \77 man_VBoxManage-closemedium.xml \78 man_VBoxManage-storageattach.xml \79 man_VBoxManage-storagectl.xml \80 man_VBoxManage-bandwidthctl.xml \81 man_VBoxManage-showmediuminfo.xml \82 man_VBoxManage-createmedium.xml \83 man_VBoxManage-modifymedium.xml \84 man_VBoxManage-clonemedium.xml \85 man_VBoxManage-mediumproperty.xml \86 man_VBoxManage-encryptmedium.xml \87 man_VBoxManage-checkmediumpwd.xml \88 man_VBoxManage-convertfromraw.xml \89 man_VBoxManage-setextradata.xml \90 man_VBoxManage-getextradata.xml \91 man_VBoxManage-setproperty.xml \92 man_VBoxManage-usbfilter.xml \93 man_VBoxManage-guestproperty.xml \94 man_VBoxManage-guestcontrol.xml \95 man_VBoxManage-metrics.xml \96 man_VBoxManage-natnetwork.xml \97 man_VBoxManage-hostonlyif.xml \98 man_VBoxManage-usbdevsource.xml99 100 ## List of user manual XML files.101 VBOX_MANUAL_XML_FILES = \102 UserManual.xml \103 user_Preface.xml \104 user_Introduction.xml \105 user_Installation.xml \106 user_BasicConcepts.xml \107 user_GuestAdditions.xml \108 user_Storage.xml \109 user_Networking.xml \110 user_Frontends.xml \111 user_VBoxManage.xml \112 user_AdvancedTopics.xml \113 user_Technical.xml \114 user_VirtualBoxAPI.xml \115 user_Troubleshooting.xml \116 user_Security.xml \117 user_KnownIssues.xml \118 user_ChangeLog.xml \119 user_ThirdParty.xml \120 user_PrivacyPolicy.xml \121 user_Glossary.xml \122 oracle-accessibility-ohc-en.xml \123 oracle-diversity.xml \124 oracle-support-en.xml125 126 ## List of user manual XML files common for all languages.127 VBOX_MANUAL_XML_FILES_COMMON = \128 $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml129 130 131 # Tool locations.132 ifndef VBOX_OSE133 # use docbook from our tools directory134 VBOX_PATH_DOCBOOK?= $(KBUILD_DEVTOOLS)/common/DocBook/v1.69.1135 VBOX_PATH_DOCBOOK_DTD?= $(KBUILD_DEVTOOLS)/common/docbook-xml/v4.5136 else137 # use docbook of the build host138 VBOX_PATH_DOCBOOK?= /usr/share/xml/docbook/stylesheet/docbook-xsl139 VBOX_PATH_DOCBOOK_DTD?= /usr/share/xml/docbook/schema/dtd/4.5140 endif141 VBOX_XML_CATALOG?= $(VBOX_PATH_MANUAL_OUTBASE)/vbox-doc.cat142 VBOX_XML_CATALOG_DOCBOOK?= $(VBOX_PATH_MANUAL_OUTBASE)/docbook.cat143 VBOX_XML_CATALOG_MANUAL?= $(VBOX_PATH_MANUAL_OUTBASE)/manual.cat144 VBOX_XML_ENTITIES?= $(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent145 146 # xsltproc with the catalog trick if applicable (set XML_DEBUG_CATALOG to147 # non-zero value to debug file/uri resolution through the catalogs, using148 # one of them is enough, they show the same information).149 ifdef VBOX_XML_CATALOG150 VBOX_XSLTPROC_WITH_CAT= $(REDIRECT) -E "XML_CATALOG_FILES=$(if $(2),$(2),$(VBOX_XML_CATALOG))" -E "XML_DEBUG_CATALOG=" $1 -- \151 $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"152 VBOX_XMLLINT_WITH_CAT= $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -E "XML_DEBUG_CATALOG=" -- \153 $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"154 else155 VBOX_XSLTPROC_WITH_CAT= $(if $(1), $(REDIRECT) $1 --,) $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) \156 --path "$(VBOX_PATH_MANUAL_OUTBASE)"157 VBOX_XMLLINT_WITH_CAT= $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"158 endif159 160 161 # File name of the generated stylesheet for transforming xref elements into162 # name user manual sections.163 VBOX_XML_XREF_TO_TEXT= xref-to-text.xsl164 165 ##166 # Emits rules for preprocessing refentry sources (applying remarks element),167 # and for producing the actual man pages.168 #169 # $(evalcall2 def_vbox_refentry_preprocess_for_manpage)170 # @param 1 The output directory.171 # @param 2 The XML file name (no path).172 # @param 3 The XML file with full path.173 # @param 4 Non-empty if xrefs to replace.174 # @param 5 Language code (optional if $4 is empty).175 define def_vbox_refentry_preprocess_for_manpage176 $(1)/$(2): \177 $(3) \178 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \179 $(if $(4), $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT),) \180 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \181 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)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 # Source location. 42 VBOX_PATH_MANUAL_SRC := $(PATH_ROOT)/doc/manual 43 # Output location. 44 VBOX_PATH_MANUAL_OUTBASE := $(PATH_OBJ)/manual 45 46 ## List of refentry files (manpages). 47 VBOX_MANUAL_XML_REFENTRY_FILES := \ 48 man_VBoxManage-common.xml \ 49 man_VBoxManage-list.xml \ 50 man_VBoxManage-showvminfo.xml \ 51 man_VBoxManage-registervm.xml \ 52 man_VBoxManage-unregistervm.xml \ 53 man_VBoxManage-createvm.xml \ 54 man_VBoxManage-modifyvm.xml \ 55 man_VBoxManage-snapshot.xml \ 56 man_VBoxManage-clonevm.xml \ 57 man_VBoxManage-movevm.xml \ 58 man_VBoxManage-encryptvm.xml \ 59 man_VBoxManage-startvm.xml \ 60 man_VBoxManage-controlvm.xml \ 61 man_VBoxManage-import.xml \ 62 man_VBoxManage-export.xml \ 63 man_VBoxManage-mediumio.xml \ 64 man_VBoxManage-sharedfolder.xml \ 65 man_VBoxManage-dhcpserver.xml \ 66 man_VBoxManage-debugvm.xml \ 67 man_VBoxManage-extpack.xml \ 68 man_VBoxManage-unattended.xml \ 69 man_VBoxManage-cloud.xml \ 70 man_VBoxManage-cloudprofile.xml \ 71 man_VBoxManage-signova.xml \ 72 man_VBoxManage-modifynvram.xml \ 73 man_VBoxManage-hostonlynet.xml \ 74 man_VBoxManage-updatecheck.xml \ 75 man_VBoxManage-discardstate.xml \ 76 man_VBoxManage-adoptstate.xml \ 77 man_VBoxManage-closemedium.xml \ 78 man_VBoxManage-storageattach.xml \ 79 man_VBoxManage-storagectl.xml \ 80 man_VBoxManage-bandwidthctl.xml \ 81 man_VBoxManage-showmediuminfo.xml \ 82 man_VBoxManage-createmedium.xml \ 83 man_VBoxManage-modifymedium.xml \ 84 man_VBoxManage-clonemedium.xml \ 85 man_VBoxManage-mediumproperty.xml \ 86 man_VBoxManage-encryptmedium.xml \ 87 man_VBoxManage-checkmediumpwd.xml \ 88 man_VBoxManage-convertfromraw.xml \ 89 man_VBoxManage-setextradata.xml \ 90 man_VBoxManage-getextradata.xml \ 91 man_VBoxManage-setproperty.xml \ 92 man_VBoxManage-usbfilter.xml \ 93 man_VBoxManage-guestproperty.xml \ 94 man_VBoxManage-guestcontrol.xml \ 95 man_VBoxManage-metrics.xml \ 96 man_VBoxManage-natnetwork.xml \ 97 man_VBoxManage-hostonlyif.xml \ 98 man_VBoxManage-usbdevsource.xml 99 100 ## List of user manual XML files. 101 VBOX_MANUAL_XML_FILES = \ 102 UserManual.xml \ 103 user_Preface.xml \ 104 user_Introduction.xml \ 105 user_Installation.xml \ 106 user_BasicConcepts.xml \ 107 user_GuestAdditions.xml \ 108 user_Storage.xml \ 109 user_Networking.xml \ 110 user_Frontends.xml \ 111 user_VBoxManage.xml \ 112 user_AdvancedTopics.xml \ 113 user_Technical.xml \ 114 user_VirtualBoxAPI.xml \ 115 user_Troubleshooting.xml \ 116 user_Security.xml \ 117 user_KnownIssues.xml \ 118 user_ChangeLog.xml \ 119 user_ThirdParty.xml \ 120 user_PrivacyPolicy.xml \ 121 user_Glossary.xml \ 122 oracle-accessibility-ohc-en.xml \ 123 oracle-diversity.xml \ 124 oracle-support-en.xml 125 126 ## List of user manual XML files common for all languages. 127 VBOX_MANUAL_XML_FILES_COMMON = \ 128 $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml 129 130 131 # Tool locations. 132 ifndef VBOX_OSE 133 # use docbook from our tools directory 134 VBOX_PATH_DOCBOOK ?= $(KBUILD_DEVTOOLS)/common/DocBook/v1.69.1 135 VBOX_PATH_DOCBOOK_DTD ?= $(KBUILD_DEVTOOLS)/common/docbook-xml/v4.5 136 else 137 # use docbook of the build host 138 VBOX_PATH_DOCBOOK ?= /usr/share/xml/docbook/stylesheet/docbook-xsl 139 VBOX_PATH_DOCBOOK_DTD ?= /usr/share/xml/docbook/schema/dtd/4.5 140 endif 141 VBOX_XML_CATALOG ?= $(VBOX_PATH_MANUAL_OUTBASE)/vbox-doc.cat 142 VBOX_XML_CATALOG_DOCBOOK ?= $(VBOX_PATH_MANUAL_OUTBASE)/docbook.cat 143 VBOX_XML_CATALOG_MANUAL ?= $(VBOX_PATH_MANUAL_OUTBASE)/manual.cat 144 VBOX_XML_ENTITIES ?= $(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent 145 146 # xsltproc with the catalog trick if applicable (set XML_DEBUG_CATALOG to 147 # non-zero value to debug file/uri resolution through the catalogs, using 148 # one of them is enough, they show the same information). 149 ifdef VBOX_XML_CATALOG 150 VBOX_XSLTPROC_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(if $(2),$(2),$(VBOX_XML_CATALOG))" -E "XML_DEBUG_CATALOG=" $1 -- \ 151 $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)" 152 VBOX_XMLLINT_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -E "XML_DEBUG_CATALOG=" -- \ 153 $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)" 154 else 155 VBOX_XSLTPROC_WITH_CAT = $(if $(1), $(REDIRECT) $1 --,) $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) \ 156 --path "$(VBOX_PATH_MANUAL_OUTBASE)" 157 VBOX_XMLLINT_WITH_CAT = $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)" 158 endif 159 160 161 # File name of the generated stylesheet for transforming xref elements into 162 # name user manual sections. 163 VBOX_XML_XREF_TO_TEXT = xref-to-text.xsl 164 165 ## 166 # Emits rules for preprocessing refentry sources (applying remarks element), 167 # and for producing the actual man pages. 168 # 169 # $(evalcall2 def_vbox_refentry_preprocess_for_manpage) 170 # @param 1 The output directory. 171 # @param 2 The XML file name (no path). 172 # @param 3 The XML file with full path. 173 # @param 4 Non-empty if xrefs to replace. 174 # @param 5 Language code (optional if $4 is empty). 175 define def_vbox_refentry_preprocess_for_manpage 176 $(1)/$(2): \ 177 $(3) \ 178 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ 179 $(if $(4), $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT),) \ 180 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 181 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 182 182 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 183 183 $$(QUIET)$$(RM) -f "$$@" 184 184 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \ 185 185 "$$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl" $$< 186 ifneq ($(4),)186 ifneq ($(4),) 187 187 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output [email protected] \ 188 188 $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT) $$@ 189 189 $$(QUIET)$$(MV) -f -- "[email protected]" "$$@" 190 endif191 if defined(VBOX_HAVE_XMLLINT) && "$(USER)" == "bird" # Effing stuff happends on build servers, probably kmk related...190 endif 191 if defined(VBOX_HAVE_XMLLINT) && "$(USER)" == "bird" # Effing stuff happends on build servers, probably kmk related... 192 192 $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@ 193 endif194 endef195 196 ##197 # Generate a single header file containing everything (no C file).198 #199 # @param 1 Destination file.200 # @param 2 Full source file path.201 # @param 3 Help infix.202 define def_vbox_single_refentry_to_h203 $(1).ts +| $(1): \204 $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) \205 $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \206 207 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $(MAKEFILE) | $$$$(dir $$$$@)193 endif 194 endef 195 196 ## 197 # Generate a single header file containing everything (no C file). 198 # 199 # @param 1 Destination file. 200 # @param 2 Full source file path. 201 # @param 3 Help infix. 202 define def_vbox_single_refentry_to_h 203 $(1).ts +| $(1): \ 204 $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) \ 205 $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \ 206 $(2) \ 207 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $(MAKEFILE) | $$$$(dir $$$$@) 208 208 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(filter %.xml,$$^),$$(patsubst %.ts,%,$$@)) 209 209 $$(QUIET)$$(APPEND) -tn "$$@" \ … … 231 231 '/* end of file */' 232 232 $$(QUIET)$$(CP) --changed -- "$$@" "$$(patsubst %.ts,%,$$@)" 233 endef234 235 236 #237 # Make sure we've got a rule to make the output directory.238 #239 BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE)240 241 242 ifdef VBOX_XML_CATALOG243 # Trickery for making sure that the file:/// URLs end up with exactly 3244 # slashes, both on Unixy OSes (where the absolute path contributes one more,245 # and some very picky xsltproc variants are floating around which do not work246 # quite correctly with file:////, doing incorrect filename transformations)247 # and on Windows (where the absolute path starts with a drive letter).248 VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,)249 #250 # To avoid network I/O for fetching DTDs, we generate catalogs mapping the public251 # entity IDs to local files. (Obviously, only done when we have local files.)252 #253 # Create a catalog file for xsltproc that points to docbook catalog.254 $(VBOX_XML_CATALOG): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)233 endef 234 235 236 # 237 # Make sure we've got a rule to make the output directory. 238 # 239 BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE) 240 241 242 ifdef VBOX_XML_CATALOG 243 # Trickery for making sure that the file:/// URLs end up with exactly 3 244 # slashes, both on Unixy OSes (where the absolute path contributes one more, 245 # and some very picky xsltproc variants are floating around which do not work 246 # quite correctly with file:////, doing incorrect filename transformations) 247 # and on Windows (where the absolute path starts with a drive letter). 248 VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,) 249 # 250 # To avoid network I/O for fetching DTDs, we generate catalogs mapping the public 251 # entity IDs to local files. (Obviously, only done when we have local files.) 252 # 253 # Create a catalog file for xsltproc that points to docbook catalog. 254 $(VBOX_XML_CATALOG): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@) 255 255 $(call MSG_L1,Creating catalog $@) 256 256 $(QUIET)$(APPEND) -tn "$@" \ … … 272 272 '</catalog>' 273 273 274 # Create a docbook catalog file for xsltproc that points to the local docbook files.275 $(VBOX_XML_CATALOG_DOCBOOK): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)274 # Create a docbook catalog file for xsltproc that points to the local docbook files. 275 $(VBOX_XML_CATALOG_DOCBOOK): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@) 276 276 $(call MSG_L1,Creating catalog $@) 277 277 $(QUIET)$(APPEND) -tn "$@" \ … … 312 312 '</catalog>' 313 313 314 # Create a docbook catalog file for xsltproc that points to the local manual files in non-default locations315 $(VBOX_XML_CATALOG_MANUAL): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)314 # Create a docbook catalog file for xsltproc that points to the local manual files in non-default locations 315 $(VBOX_XML_CATALOG_MANUAL): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@) 316 316 $(call MSG_L1,Creating catalog $@) 317 317 $(QUIET)$(APPEND) -tn "$@" \ … … 334 334 '</catalog>' 335 335 336 endif # VBOX_XML_CATALOG337 338 339 ifdef VBOX_XML_ENTITIES340 341 $(VBOX_XML_ENTITIES): $(VBOX_PATH_MANUAL_SRC)/Config.kmk $(VBOX_VERSION_STAMP) | $$(dir $$@)336 endif # VBOX_XML_CATALOG 337 338 339 ifdef VBOX_XML_ENTITIES 340 341 $(VBOX_XML_ENTITIES): $(VBOX_PATH_MANUAL_SRC)/Config.kmk $(VBOX_VERSION_STAMP) | $$(dir $$@) 342 342 $(call MSG_L1,Creating entities $@) 343 343 $(QUIET)$(APPEND) -tn "$@" \ … … 361 361 '<!ENTITY ohc-doc-page "&ohc-base-url;/virtualization/virtualbox/index.html">' 362 362 363 endif # VBOX_XML_ENTITIES364 365 366 ## Emit rules to produce stylesheet for translating cross references (xref)367 # to user manual chapters and sections in the man pages and --help output.368 #369 # Note! This requires processing UserManual.xml as a single document in order370 # to get the correct chapter and section numbering, so we use a catalog371 # file to replace the generated XML documents it includes with a dummy372 # one. This reduces the dependencies and recipies we require to build373 # VBoxManage and the RTIsoMaker (w/ derivatives).374 # $(evalcall2 def_vbox_xref_to_text)375 # @param 1 Language code.376 define def_vbox_xref_to_text377 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \378 + $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat: \379 $$(VBOX_PATH_MANUAL_SRC)/$(1)/docbook-refentry-link-replacement-xsl-gen.xsl \380 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-link-replacement-xsl-gen.xsl \381 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/en_US/,$$(VBOX_MANUAL_XML_FILES)) \382 $$(VBOX_MANUAL_XML_FILES_COMMON) \383 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $$(VBOX_XML_ENTITIES) \384 363 endif # VBOX_XML_ENTITIES 364 365 366 ## Emit rules to produce stylesheet for translating cross references (xref) 367 # to user manual chapters and sections in the man pages and --help output. 368 # 369 # Note! This requires processing UserManual.xml as a single document in order 370 # to get the correct chapter and section numbering, so we use a catalog 371 # file to replace the generated XML documents it includes with a dummy 372 # one. This reduces the dependencies and recipies we require to build 373 # VBoxManage and the RTIsoMaker (w/ derivatives). 374 # $(evalcall2 def_vbox_xref_to_text) 375 # @param 1 Language code. 376 define def_vbox_xref_to_text 377 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \ 378 + $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat: \ 379 $$(VBOX_PATH_MANUAL_SRC)/$(1)/docbook-refentry-link-replacement-xsl-gen.xsl \ 380 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-link-replacement-xsl-gen.xsl \ 381 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/en_US/,$$(VBOX_MANUAL_XML_FILES)) \ 382 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 383 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $$(VBOX_XML_ENTITIES) \ 384 | $$$$(dir $$$$@) 385 385 $$(call MSG_L1,Creating stylesheet $$@) 386 386 $$(QUIET)$$(APPEND) -nt "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat" \ … … 400 400 $$(QUIET)$$(APPEND) -n "$$@" '' '</xsl:stylesheet>' 401 401 402 BLDDIRS += $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/403 endef404 # generate rules for $(VBOX_XML_XREF_TO_TEXT)405 $(evalcall2 def_vbox_xref_to_text,en_US)406 407 #408 # Generate rules for editing the refentry to C/H style sheets.409 #410 VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl411 412 VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl413 414 #415 # Manual dependency.416 #417 $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl: $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl402 BLDDIRS += $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/ 403 endef 404 # generate rules for $(VBOX_XML_XREF_TO_TEXT) 405 $(evalcall2 def_vbox_xref_to_text,en_US) 406 407 # 408 # Generate rules for editing the refentry to C/H style sheets. 409 # 410 VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl 411 412 VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl 413 414 # 415 # Manual dependency. 416 # 417 $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl: $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl 418 418 419 419 -
trunk/doc/manual/Makefile.kmk
r98447 r98448 101 101 UserManual.qhc 102 102 103 104 103 # VBOX_PDFLATEX_INTERACTION = errorstopmode - Use this when you wants to figure out build failures 104 # without catting the log a million times. 105 105 VBOX_PDFLATEX_INTERACTION ?= batchmode 106 106 ifeq ($(KBUILD_HOST),win) … … 182 182 ifndef VBOX_ONLY_SDK 183 183 VBOX_MANUAL_PACK += \ 184 185 186 187 184 $(PATH_STAGE_BIN)/UserManual.pdf \ 185 $(VBOX_PATH_BIN_HTML) \ 186 $(VBOX_PATH_BIN_CHM) \ 187 $(VBOX_PATH_BIN_QHELP) 188 188 INSTALLS += VBox-docs-usermanual 189 189 … … 191 191 INSTALLS += VBox-docs-usermanual-l10n 192 192 VBOX_MANUAL_PACK += \ 193 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf)193 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf) 194 194 ifdef VBOX_WITH_DOCS_CHM 195 195 INSTALLS += VBox-docs-usermanual-l10n-chm 196 196 VBOX_MANUAL_PACK += \ 197 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm)197 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm) 198 198 endif 199 199 endif … … 213 213 endif 214 214 215 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \215 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \ 216 216 $(eval VBOX_MANUAL_XML_FILES_GENERATED_$$(lang) := \ 217 217 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ … … 245 245 246 246 BLDDIRS += \ 247 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, \248 249 250 251 252 253 254 247 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, \ 248 $(addsuffix /images, $(VBOX_MANUAL_LANGUAGES)) \ 249 $(addsuffix /html-single, $(VBOX_MANUAL_LANGUAGES)) \ 250 $(addsuffix /html-chunks, $(VBOX_MANUAL_LANGUAGES)) \ 251 $(addsuffix /qhelp, $(VBOX_MANUAL_LANGUAGES)) \ 252 $(addsuffix /qhelp/images, $(VBOX_MANUAL_LANGUAGES)) \ 253 $(addsuffix /HTMLHelp, $(VBOX_MANUAL_LANGUAGES)) \ 254 $(addsuffix /HTMLHelp/images, $(VBOX_MANUAL_LANGUAGES)) \ 255 255 ) 256 256 … … 264 264 $(VBOX_XML_ENTITIES) \ 265 265 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/, \ 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 266 $(VBOX_XML_XREF_TO_TEXT) \ 267 $(VBOX_XML_XREF_TO_TEXT).cat \ 268 $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ 269 $(VBOX_MANUAL_XML_REFENTRY_FILES) \ 270 $(patsubst man_%,%.1,$(basename $(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 271 man_VBoxHeadless.xml \ 272 user_man_VBoxHeadless.xml \ 273 man_vboximg-mount.xml \ 274 user_man_vboximg-mount.xml \ 275 isomakercmd-man.xml \ 276 user_isomakercmd-man.xml \ 277 $(VBOX_MANUAL_LATEX_FILES_TARGET) \ 278 $(VBOX_MANUAL_PNG_FILES_$(lang)) \ 279 $(notdir $(VBOX_MANUAL_TEX_UNICODE_FILES)) \ 280 $(addprefix HTMLHelp/,$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 281 $(addprefix qhelp/, $(VBOX_MANUAL_PNG_FILES_$(lang))) \ 282 html-single/UserManual.html \ 283 $(addprefix qhelp/, UserManual.qhp UserManual.qhcp $(VBOX_QHELP_OUTPUT_FILES)) \ 284 $(addprefix HTMLHelp/, index.html go01.html) \ 285 $(addprefix qhelp/, index.html go01.html) \ 286 $(addprefix html-chunks/, index.html go01.html) \ 287 $(foreach n,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 \ 288 ,html-chunks/ch$(n).html \ 289 html-chunks/re$(n).html \ 290 HTMLHelp/ch$(n).html \ 291 HTMLHelp/re$(n).html \ 292 $(foreach d2,0 1 2 3 4 5 6 7 8 9,$(foreach d1,0 1 2 3 4 5 6 7 8 9,HTMLHelp/ch$(n)s$(d2)$(d1).html)) \ 293 qhelp/ch$(n).html \ 294 qhelp/re$(n).html \ 295 $(foreach d2,0 1 2 3 4 5 6 7 8 9,$(foreach d1,0 1 2 3 4 5 6 7 8 9,qhelp/ch$(n)s$(d2)$(d1).html)) ) \ 296 $(foreach n,a b c \ 297 ,html-chunks/ap$(n).html \ 298 HTMLHelp/ap$(n).html \ 299 $(foreach s,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20,HTMLHelp/ap$(n)s$(s).html) \ 300 qhelp/ap$(n).html \ 301 $(foreach s,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20,qhelp/ap$(n)s$(s).html) ) \ 302 $(foreach n,01 02 03 04 05 \ 303 ,html-chunks/pr$(n).html \ 304 HTMLHelp/pr$(n).html \ 305 $(foreach s,01 02 03 04 05 06 07 08,HTMLHelp/pr$(n)s$(s).html) \ 306 qhelp/pr$(n).html \ 307 $(foreach s,01 02 03 04 05 06 07 08,qhelp/pr$(n)s$(s).html) ) \ 308 HTMLHelp/toc.hhc \ 309 HTMLHelp/htmlhelp.hhp \ 310 qhelp/toc.hhc \ 311 qhelp/htmlhelp.hhp \ 312 UserManual.pdf \ 313 VirtualBox.chm \ 314 $(VBOX_QHELP_OUTPUT_FILES) \ 315 ChangeLog.html \ 316 validatemanual.run \ 317 validateaccessibility.run \ 318 validatesdkref.run \ 319 )) \ 320 320 $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \ 321 321 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ … … 326 326 \ 327 327 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \ 328 329 330 328 $(VBOX_SDKREF_LATEX_FILES_TARGET) \ 329 SDKRef.pdf \ 330 ) \ 331 331 $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf \ 332 332 \ 333 333 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \ 334 335 336 337 334 $(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET) \ 335 html-single/Accessibility.html \ 336 Accessibility.pdf \ 337 ) \ 338 338 $(PATH_STAGE_BIN)/Accessibility.html \ 339 339 $(PATH_STAGE_BIN)/Accessibility.pdf \ … … 410 410 if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK)) 411 411 412 ##413 # Morph man pages into manual sections.414 # $(evalcall2 def_vbox_refentry_to_user_sect1)415 # @param 1 Language.416 # @param 2 the refentry xml base file name.417 # @param 3 the full refentry xml file path.418 define def_vbox_refentry_to_user_sect1419 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \420 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \421 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \422 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)412 ## 413 # Morph man pages into manual sections. 414 # $(evalcall2 def_vbox_refentry_to_user_sect1) 415 # @param 1 Language. 416 # @param 2 the refentry xml base file name. 417 # @param 3 the full refentry xml file path. 418 define def_vbox_refentry_to_user_sect1 419 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \ 420 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ 421 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 422 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 423 423 $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(filter %.xml,$$^),$$@) 424 424 $$(QUIET)$$(RM) -f "$$@" 425 425 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $$< 426 endef427 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \426 endef 427 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 428 428 man_VBoxHeadless.xml \ 429 429 man_vboximg-mount.xml \ 430 430 , $(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),$(file),$(VBOX_PATH_MANUAL_SRC)/$(lang)/$(file)))) 431 $(foreach lang,$(VBOX_MANUAL_LANGUAGES) \431 $(foreach lang,$(VBOX_MANUAL_LANGUAGES) \ 432 432 ,$(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),isomakercmd-man.xml,$(PATH_ROOT)/src/VBox/Runtime/common/fs/isomakercmd-man.xml)) 433 433 434 434 435 # Generates the VBoxManage command overview include file (shared between436 # languages) from the refsynopsisdiv section of the man pages.437 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)): \438 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-overview.xsl \439 $$(patsubst overview_%,$$(VBOX_PATH_MANUAL_SRC)/en_US/%,$$(notdir $$@)) \440 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \441 435 # Generates the VBoxManage command overview include file (shared between 436 # languages) from the refsynopsisdiv section of the man pages. 437 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)): \ 438 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-overview.xsl \ 439 $$(patsubst overview_%,$$(VBOX_PATH_MANUAL_SRC)/en_US/%,$$(notdir $$@)) \ 440 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 441 $(VBOX_XML_ENTITIES) | $$(dir $$@) 442 442 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 443 443 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" $< $(filter %.xml,$^) … … 447 447 448 448 449 ##########################################################################################450 #451 # Shared rules for PDF generation452 #453 ##########################################################################################454 455 ifndef VBOX_OSE456 # copy ucs.sty and related files457 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/ucs.sty):449 ########################################################################################## 450 # 451 # Shared rules for PDF generation 452 # 453 ########################################################################################## 454 455 ifndef VBOX_OSE 456 # copy ucs.sty and related files 457 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/ucs.sty): 458 458 $(call MSG_L1,Copying unicode support for LaTeX) 459 459 $(QUIET)$(INSTALL_STAGING) -m0644 -- $(VBOX_MANUAL_TEX_UNICODE_FILES) "$(@D)" 460 endif461 462 # copy the PNG files.463 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.464 define def_vbox_cp_images_pdf465 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)466 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \467 $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)460 endif 461 462 # copy the PNG files. 463 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 464 define def_vbox_cp_images_pdf 465 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 466 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ 467 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 468 468 $$(call MSG_L1,Copying temporary $$< => $$@) 469 469 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 470 endef471 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf))472 473 474 ##########################################################################################475 #476 # UserManual.pdf477 #478 ##########################################################################################479 480 481 # Generate PDF from LaTeX482 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.483 define def_vbox_usermanual_tex_to_pdf484 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)485 $$(out_dir)/UserManual.pdf: \486 $$(out_dir)/UserManual.tex \487 $$(if $$(VBOX_OSE),,$$(out_dir)/ucs.sty) \488 $$(addprefix $$(out_dir)/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) | $$$$(dir $$$$@)489 # PDF generation via Latex: generate the .tex file470 endef 471 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf)) 472 473 474 ########################################################################################## 475 # 476 # UserManual.pdf 477 # 478 ########################################################################################## 479 480 481 # Generate PDF from LaTeX 482 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 483 define def_vbox_usermanual_tex_to_pdf 484 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 485 $$(out_dir)/UserManual.pdf: \ 486 $$(out_dir)/UserManual.tex \ 487 $$(if $$(VBOX_OSE),,$$(out_dir)/ucs.sty) \ 488 $$(addprefix $$(out_dir)/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) | $$$$(dir $$$$@) 489 # PDF generation via Latex: generate the .tex file 490 490 $$(call MSG_L1,pdflatex $$< (four passes) -> $$@) 491 491 $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex … … 498 498 $$(basename $$@).log 499 499 $$(call MSG_L1,Fresh LaTeX-generated PDF is now at $$@) 500 endef501 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_tex_to_pdf))502 503 # Generate LaTeX from XML504 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.505 define def_vbox_usermanual_xml_to_tex506 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)507 $$(out_dir)/UserManual.tex: \508 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \509 $$(VBOX_MANUAL_XML_FILES_COMMON) \510 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \511 $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \512 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \513 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \514 $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@)500 endef 501 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_tex_to_pdf)) 502 503 # Generate LaTeX from XML 504 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 505 define def_vbox_usermanual_xml_to_tex 506 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 507 $$(out_dir)/UserManual.tex: \ 508 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ 509 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 510 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 511 $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 512 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \ 513 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 514 $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@) 515 515 $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(firstword $$(filter %.xml,$$^)),$$@) 516 516 $$(QUIET)$$(RM) -f $$(addprefix $$(@D)/,$$(VBOX_MANUAL_LATEX_FILES_TARGET)) 517 # generate TeX source from processed docbook and store it in UserManual.tex.tmp;518 # pass current language to xsltproc in TARGETLANG variable517 # generate TeX source from processed docbook and store it in UserManual.tex.tmp; 518 # pass current language to xsltproc in TARGETLANG variable 519 519 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG $(lang) \ 520 520 -o [email protected] $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $$< 521 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word;522 # the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections521 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; 522 # the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections 523 523 $$(QUIET)$$(SED) \ 524 524 -e 's|^\\QUOTE{}|\\OQ{}|g' \ … … 527 527 --output $$@ [email protected] 528 528 $$(QUIET)$$(RM) -f [email protected] 529 endef530 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_tex))531 532 # Useful aliases533 usermanual UserManual.pdf:: $(PATH_STAGE_BIN)/UserManual.pdf534 535 debug-usermanual:529 endef 530 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_tex)) 531 532 # Useful aliases 533 usermanual UserManual.pdf:: $(PATH_STAGE_BIN)/UserManual.pdf 534 535 debug-usermanual: 536 536 $(MAKE) --pretty-command-printing -j1 VBOX_PDFLATEX_INTERACTION=errorstopmode $(PATH_STAGE_BIN)/UserManual.pdf 537 537 538 #539 # Generate rules for validating the UserManual.xml. These are invoked540 # automatically at build time, but can also be manually invoked via the541 # 'validatemanual' and 'validatemanual_<lang>' aliases.542 #543 define def_vbox_validate_xml544 validatemanual_$(lang):: $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run545 $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run: \546 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \547 $$(VBOX_MANUAL_XML_FILES_COMMON) \548 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \549 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \550 $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@)538 # 539 # Generate rules for validating the UserManual.xml. These are invoked 540 # automatically at build time, but can also be manually invoked via the 541 # 'validatemanual' and 'validatemanual_<lang>' aliases. 542 # 543 define def_vbox_validate_xml 544 validatemanual_$(lang):: $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run 545 $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run: \ 546 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ 547 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 548 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 549 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 550 $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@) 551 551 $$(call MSG_L1,Validating $$<) 552 552 $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$< 553 553 $$(QUIET)$$(APPEND) -t "$$@" "done" 554 endef555 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_validate_xml))556 557 558 # Handy aliases.559 validatemanual:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),validatemanual_$(lang))560 561 562 563 #564 # SDKRef.pdf565 #566 567 # Replace <tt> tags in VirtualBox.xidl.568 $(VBOX_DOC_XIDL_SRC_TMP): $(VBOX_DOC_XIDL_SRC) $(MAKEFILE_CURRENT) | $$(dir $$@)554 endef 555 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_validate_xml)) 556 557 558 # Handy aliases. 559 validatemanual:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),validatemanual_$(lang)) 560 561 562 563 # 564 # SDKRef.pdf 565 # 566 567 # Replace <tt> tags in VirtualBox.xidl. 568 $(VBOX_DOC_XIDL_SRC_TMP): $(VBOX_DOC_XIDL_SRC) $(MAKEFILE_CURRENT) | $$(dir $$@) 569 569 $(call MSG_L1,Generating $@) 570 570 $(QUIET)$(SED) -e 's|@a \+\(\w\+\)|<tt>\1</tt>|g' \ … … 572 572 --output $@ $< 573 573 574 # Generate SDKRef_apiref.xml as a docbook file excerpt that will be referenced from the SDKRef.xml.575 $(VBOX_MANUAL_APIREF_TMP): $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl $(VBOX_DOC_XIDL_SRC_TMP)574 # Generate SDKRef_apiref.xml as a docbook file excerpt that will be referenced from the SDKRef.xml. 575 $(VBOX_MANUAL_APIREF_TMP): $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl $(VBOX_DOC_XIDL_SRC_TMP) 576 576 $(call MSG_L1,Generating $@) 577 577 $(QUIET)$(VBOX_XSLTPROC) $(VBOX_XSLTPROC_OPTS) --xinclude --nonet -o $@ $< $(VBOX_DOC_XIDL_SRC_TMP) 578 578 579 # Turn SDKRef.xml into LaTeX.580 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex: \581 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \582 $(VBOX_MANUAL_APIREF_TMP) \583 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \584 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run,) \585 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \586 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)579 # Turn SDKRef.xml into LaTeX. 580 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex: \ 581 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \ 582 $(VBOX_MANUAL_APIREF_TMP) \ 583 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 584 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run,) \ 585 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 586 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 587 587 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 588 588 $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_SDKREF_LATEX_FILES_TARGET)) 589 # generate TeX source from processed docbook and store it in SDKRef.tex.tmp589 # generate TeX source from processed docbook and store it in SDKRef.tex.tmp 590 590 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \ 591 591 -o [email protected] $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $< 592 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word;593 # the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections592 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; 593 # the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections 594 594 $(QUIET)$(SED) \ 595 595 -e 's|^\\QUOTE{}|\\OQ{}|g' \ … … 599 599 $(QUIET)$(RM) -f [email protected] 600 600 601 # Turn SDKRef.tex into a PDF.602 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.pdf: \603 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex \604 $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \605 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@)601 # Turn SDKRef.tex into a PDF. 602 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.pdf: \ 603 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex \ 604 $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \ 605 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@) 606 606 $(call MSG_L1,pdflatex $< (three passes)) 607 607 $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) SDKRef.tex … … 614 614 $(call MSG_L1,Fresh LaTeX-generated PDF is now at $@) 615 615 616 # Validating SDKRef.xml. It is invoked automatically at build time,617 # but can also be manually invoked via the 'validate-sdkref' alias.618 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run: \619 $(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef.xml \620 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \621 $(VBOX_MANUAL_APIREF_TMP) \622 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \623 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)616 # Validating SDKRef.xml. It is invoked automatically at build time, 617 # but can also be manually invoked via the 'validate-sdkref' alias. 618 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run: \ 619 $(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef.xml \ 620 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \ 621 $(VBOX_MANUAL_APIREF_TMP) \ 622 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 623 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 624 624 $(call MSG_L1,Validating $<) 625 625 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $< … … 627 627 628 628 629 # Handy aliases.630 validate-sdkref:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run631 sdkref:: $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf632 633 634 635 #636 # Accessibility.pdf637 #638 639 # Turn Accessibility.xml into LaTeX.640 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex: \641 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \642 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \643 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run,) \644 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \645 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)629 # Handy aliases. 630 validate-sdkref:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run 631 sdkref:: $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf 632 633 634 635 # 636 # Accessibility.pdf 637 # 638 639 # Turn Accessibility.xml into LaTeX. 640 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex: \ 641 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \ 642 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 643 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run,) \ 644 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 645 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 646 646 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 647 647 $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET)) 648 # generate TeX source from processed docbook and store it in Accessibility.tex.tmp648 # generate TeX source from processed docbook and store it in Accessibility.tex.tmp 649 649 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \ 650 650 -o [email protected] $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $< 651 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word;652 # the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections651 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; 652 # the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections 653 653 $(QUIET)$(SED) \ 654 654 -e 's|^\\QUOTE{}|\\OQ{}|g' \ … … 658 658 $(QUIET)$(RM) -f [email protected] 659 659 660 # Turn Accessibility.tex into a PDF.661 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.pdf: \662 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex \663 $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \664 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@)660 # Turn Accessibility.tex into a PDF. 661 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.pdf: \ 662 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex \ 663 $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \ 664 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@) 665 665 $(call MSG_L1,pdflatex $< (three passes)) 666 666 $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) Accessibility.tex … … 673 673 $(call MSG_L1,Fresh LaTeX-generated PDF is now at $@) 674 674 675 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html: \676 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \677 $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \678 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \679 $(VBOX_XML_ENTITIES) | $$(dir $$@)675 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html: \ 676 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \ 677 $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \ 678 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 679 $(VBOX_XML_ENTITIES) | $$(dir $$@) 680 680 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 681 681 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ … … 684 684 $< 685 685 686 # Validating Accessibility.xml. It is invoked automatically at build time,687 # but can also be manually invoked via the 'validate-accessibility' alias.688 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run: \689 $(VBOX_PATH_MANUAL_SRC)/en_US/Accessibility.xml \690 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \691 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \692 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@)686 # Validating Accessibility.xml. It is invoked automatically at build time, 687 # but can also be manually invoked via the 'validate-accessibility' alias. 688 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run: \ 689 $(VBOX_PATH_MANUAL_SRC)/en_US/Accessibility.xml \ 690 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \ 691 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 692 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 693 693 $(call MSG_L1,Validating $<) 694 694 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $< … … 696 696 697 697 698 # Handy aliases.699 validate-accessibility:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run700 accessibility:: $(PATH_STAGE_BIN)/Accessibility.pdf701 accessibility-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html702 703 704 # A few things which are shared between htmlhelp and qhelp docs.705 VBOX_DOCBOOK_HTMLHELP_FORMATCFG = \698 # Handy aliases. 699 validate-accessibility:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run 700 accessibility:: $(PATH_STAGE_BIN)/Accessibility.pdf 701 accessibility-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html 702 703 704 # A few things which are shared between htmlhelp and qhelp docs. 705 VBOX_DOCBOOK_HTMLHELP_FORMATCFG = \ 706 706 $(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \ 707 707 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 708 708 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 709 709 710 # Prepare the XSL file for our title page, htmlhelp and qhelp variant.711 $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl: \712 $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@)710 # Prepare the XSL file for our title page, htmlhelp and qhelp variant. 711 $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl: \ 712 $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@) 713 713 $(call MSG_L1,xsltproc $<) 714 714 $(QUIET)$(RM) -f [email protected] $@ … … 717 717 718 718 719 ifdef VBOX_WITH_DOCS_CHM720 #721 # VirtualBox.chm722 #723 # We first generate a .hhp help source file from the preprocessed724 # DocBook XML files, as defined above, then feed that into the725 # Microsoft Help Compiler.726 727 # Generate CHM from HHP728 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.729 define def_vbox_usermanual_hhp_to_chm730 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)731 $$(out_dir)/VirtualBox.chm: \732 $$(out_dir)/HTMLHelp/htmlhelp.hhp \733 $$(addprefix $$(out_dir)/HTMLHelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \734 | $$$$(dir $$$$@)719 ifdef VBOX_WITH_DOCS_CHM 720 # 721 # VirtualBox.chm 722 # 723 # We first generate a .hhp help source file from the preprocessed 724 # DocBook XML files, as defined above, then feed that into the 725 # Microsoft Help Compiler. 726 727 # Generate CHM from HHP 728 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 729 define def_vbox_usermanual_hhp_to_chm 730 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 731 $$(out_dir)/VirtualBox.chm: \ 732 $$(out_dir)/HTMLHelp/htmlhelp.hhp \ 733 $$(addprefix $$(out_dir)/HTMLHelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 734 | $$$$(dir $$$$@) 735 735 $$(call MSG_L1,hhc $$<,=> $$@) 736 736 $$(QUIET)$$(RM) -f $$@ 737 737 $$(QUIET)$$(VBOX_HHC) $$(subst /,\\,$$<) 738 738 $$(call MSG_L1,Fresh CHM is now at $$@) 739 endef740 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_hhp_to_chm))741 742 # Generate HHP from XML743 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.744 define def_vbox_usermanual_xml_to_hhp745 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)746 $$(out_dir)/HTMLHelp/htmlhelp.hhp: \747 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \748 $$(VBOX_MANUAL_XML_FILES_COMMON) \749 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \750 $$(VBOX_DOCBOOK_HTMLHELP_FORMATCFG) \751 $$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \752 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \753 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \754 $$(VBOX_XML_ENTITIES) | $$$$(dir $$$$@)739 endef 740 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_hhp_to_chm)) 741 742 # Generate HHP from XML 743 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 744 define def_vbox_usermanual_xml_to_hhp 745 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 746 $$(out_dir)/HTMLHelp/htmlhelp.hhp: \ 747 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ 748 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 749 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 750 $$(VBOX_DOCBOOK_HTMLHELP_FORMATCFG) \ 751 $$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \ 752 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \ 753 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 754 $$(VBOX_XML_ENTITIES) | $$$$(dir $$$$@) 755 755 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 756 756 $$(QUIET)$$(RM) -f $$@ … … 760 760 $$(HTMLHELPOPTS) $$(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \ 761 761 $$< 762 endef763 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_hhp))764 765 # copy the PNG files.766 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.767 define def_vbox_cp_images_htmlhelp768 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp769 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \770 $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)762 endef 763 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_hhp)) 764 765 # copy the PNG files. 766 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 767 define def_vbox_cp_images_htmlhelp 768 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp 769 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ 770 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 771 771 $$(call MSG_L1,Copying temporary $$< => $$@) 772 772 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 773 endef774 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_htmlhelp)))775 776 endif # VBOX_WITH_DOCS_CHM777 778 779 # Packing the docs into a zip file780 $(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK)773 endef 774 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_htmlhelp))) 775 776 endif # VBOX_WITH_DOCS_CHM 777 778 779 # Packing the docs into a zip file 780 $(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK) 781 781 $(call MSG_L1,Packing documentation $@) 782 782 $(QUIET)$(RM) -f $@ … … 784 784 785 785 786 ##########################################################################################787 #788 # UserManual.html789 #790 ##########################################################################################791 VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG = \792 $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \793 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \794 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl795 796 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html: \797 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \798 $(VBOX_MANUAL_XML_FILES_COMMON) \799 $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \800 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \801 $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \802 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \803 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \804 $(VBOX_XML_ENTITIES) | $$(dir $$@)786 ########################################################################################## 787 # 788 # UserManual.html 789 # 790 ########################################################################################## 791 VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG = \ 792 $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \ 793 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 794 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 795 796 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html: \ 797 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \ 798 $(VBOX_MANUAL_XML_FILES_COMMON) \ 799 $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \ 800 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ 801 $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \ 802 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \ 803 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 804 $(VBOX_XML_ENTITIES) | $$(dir $$@) 805 805 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 806 806 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ … … 809 809 $< 810 810 811 VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG = \812 $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \813 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \814 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl815 816 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html: \817 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \818 $(VBOX_MANUAL_XML_FILES_COMMON) \819 $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \820 $(VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG) \821 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \822 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \823 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \824 $(VBOX_XML_ENTITIES) | $$(dir $$@)811 VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG = \ 812 $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \ 813 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 814 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 815 816 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html: \ 817 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \ 818 $(VBOX_MANUAL_XML_FILES_COMMON) \ 819 $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \ 820 $(VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG) \ 821 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ 822 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \ 823 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 824 $(VBOX_XML_ENTITIES) | $$(dir $$@) 825 825 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 826 826 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ … … 830 830 $< 831 831 832 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip: \833 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \834 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \835 832 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip: \ 833 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \ 834 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \ 835 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) 836 836 $(call MSG_L1,Packing documentation $@) 837 837 $(QUIET)$(RM) -f $@ … … 839 839 -9 -r $@ html-single html-chunks $(VBOX_MANUAL_PNG_FILES_en_US) 840 840 841 html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html842 html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html843 qhelp:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/qhelp/, $(VBOX_QHELP_OUTPUT_FILES))844 html-zip:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip845 846 ##########################################################################################847 #848 # Docbook to Dita conversion of our refentry files849 #850 ##########################################################################################851 define def_vbox_refentry_to_dita852 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(addsuffix .dita,$(basename $(2))): \853 $$(VBOX_DITA_CONVERTER_PATH)/docbook2dita.xsl \854 $(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \855 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \856 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP)| $$$$(dir $$$$@)841 html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html 842 html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html 843 qhelp:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/qhelp/, $(VBOX_QHELP_OUTPUT_FILES)) 844 html-zip:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip 845 846 ########################################################################################## 847 # 848 # Docbook to Dita conversion of our refentry files 849 # 850 ########################################################################################## 851 define def_vbox_refentry_to_dita 852 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(addsuffix .dita,$(basename $(2))): \ 853 $$(VBOX_DITA_CONVERTER_PATH)/docbook2dita.xsl \ 854 $(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \ 855 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 856 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 857 857 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 858 858 $$(QUIET)$$(RM) -f "$$@" 859 859 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --maxdepth 6000 --output $$@ $$(VBOX_DITA_CONVERTER_PATH)/docbook2dita.xsl $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) 860 endef861 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \860 endef 861 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 862 862 , $(evalcall2 def_vbox_refentry_to_dita,$(lang),$(file)))) 863 863 864 refentry-to-dita: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file, $(basename $(VBOX_MANUAL_XML_REFENTRY_FILES)) \865 ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(file).dita))866 867 ##########################################################################################868 #869 # Use DITA-OT to create pdf out of UserManual.ditamap. See usermanual.pdf under870 # DITA-OT-xxxxx/doc folder for details.871 #872 ##########################################################################################873 VBOX_DITA_PATH_LIB?= $(VBOX_DITA_PATH)/lib874 VBOX_DITA_ENV_SETUP ?= $(REDIRECT) \875 -E 'DITA_CLASSPATH=$(VBOX_DITA_PATH_LIB)/dost.jar' \876 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)' \877 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/commons-codec-1.4.jar' \864 refentry-to-dita: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file, $(basename $(VBOX_MANUAL_XML_REFENTRY_FILES)) \ 865 ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(file).dita)) 866 867 ########################################################################################## 868 # 869 # Use DITA-OT to create pdf out of UserManual.ditamap. See usermanual.pdf under 870 # DITA-OT-xxxxx/doc folder for details. 871 # 872 ########################################################################################## 873 VBOX_DITA_PATH_LIB ?= $(VBOX_DITA_PATH)/lib 874 VBOX_DITA_ENV_SETUP ?= $(REDIRECT) \ 875 -E 'DITA_CLASSPATH=$(VBOX_DITA_PATH_LIB)/dost.jar' \ 876 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)' \ 877 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/commons-codec-1.4.jar' \ 878 878 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/resolver.jar' \ 879 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/icu4j.jar' \879 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/icu4j.jar' \ 880 880 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/xercesImpl.jar' \ 881 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/xml-apis.jar' \881 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/xml-apis.jar' \ 882 882 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/saxon/saxon9.jar' \ 883 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/saxon/saxon9-dom.jar' \884 --885 886 ditamap-to-pdf:887 888 define def_ditamap_to_pdf889 ditamap-to-pdf: $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/UserManual_dita.pdf890 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/UserManual_dita.pdf: \891 $(VBOX_PATH_MANUAL_SRC)/$(1)/some_dita.ditamap883 -A 'DITA_CLASSPATH=:$(VBOX_DITA_PATH_LIB)/saxon/saxon9-dom.jar' \ 884 -- 885 886 ditamap-to-pdf: 887 888 define def_ditamap_to_pdf 889 ditamap-to-pdf: $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/UserManual_dita.pdf 890 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/UserManual_dita.pdf: \ 891 $(VBOX_PATH_MANUAL_SRC)/$(1)/some_dita.ditamap 892 892 $(QUIET)$(call VBOX_DITA_ENV_SETUP) \ 893 893 $(VBOX_JAVA) -jar lib/dost.jar /i:$$(VBOX_PATH_MANUAL_SRC)/$(1)/some_dita.ditamap /transtype:pdf 894 endef895 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_ditamap_to_pdf,$(lang)))896 897 #898 # ChangeLog.html899 #900 # This XSLT rule formats en_US/user_ChangeLog.xml (which includes the actual change log901 # contained in user_ChangeLogImpl.xml) as a standalone HTML file.902 #903 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html: \904 $(VBOX_PATH_MANUAL_SRC)/en_US/docbook-changelog-formatcfg.xsl \905 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_ChangeLog.xml \906 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \907 $(VBOX_XML_ENTITIES) | $$(dir $$@)894 endef 895 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_ditamap_to_pdf,$(lang))) 896 897 # 898 # ChangeLog.html 899 # 900 # This XSLT rule formats en_US/user_ChangeLog.xml (which includes the actual change log 901 # contained in user_ChangeLogImpl.xml) as a standalone HTML file. 902 # 903 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html: \ 904 $(VBOX_PATH_MANUAL_SRC)/en_US/docbook-changelog-formatcfg.xsl \ 905 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_ChangeLog.xml \ 906 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 907 $(VBOX_XML_ENTITIES) | $$(dir $$@) 908 908 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 909 909 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" "$<" $(filter %.xml,$^) 910 910 $(call MSG_L1,Fresh ChangeLog.html is now at $@) 911 911 912 cl-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html912 cl-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html 913 913 914 914 … … 928 928 # @param 2 The file name (no path). 929 929 define def_vbox_refentry_to_manpage 930 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2): \931 $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \932 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \933 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \934 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \935 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)930 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2): \ 931 $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \ 932 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ 933 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \ 934 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 935 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 936 936 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 937 937 $$(QUIET)$$(RM) -f "$$@" … … 940 940 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output [email protected] $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) $$@ 941 941 $$(QUIET)$$(MV) -f -- "[email protected]" "$$@" 942 if defined(VBOX_HAVE_XMLLINT)942 if defined(VBOX_HAVE_XMLLINT) 943 943 $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@ 944 endif945 946 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \947 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \948 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl \949 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \950 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)944 endif 945 946 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \ 947 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \ 948 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl \ 949 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 950 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 951 951 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 952 952 $$(QUIET)$$(RM) -f "$$@" … … 968 968 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 969 969 define def_vbox_usermanual_qhp_to_qch 970 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)971 $$(out_dir)/qhelp/UserManual.qch + \972 $$(out_dir)/qhelp/UserManual.qhc: \973 $$(out_dir)/qhelp/UserManual.qhcp \974 $$(out_dir)/qhelp/UserManual.qhp \975 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \976 | $$$$(dir $$$$@)970 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 971 $$(out_dir)/qhelp/UserManual.qch + \ 972 $$(out_dir)/qhelp/UserManual.qhc: \ 973 $$(out_dir)/qhelp/UserManual.qhcp \ 974 $$(out_dir)/qhelp/UserManual.qhp \ 975 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 976 | $$$$(dir $$$$@) 977 977 $$(call MSG_L1,$$(notdir $$(QHELPGENERATOR)) $$<,=> $$@) 978 978 $$(QUIET)$$(RM) -f $$@ … … 985 985 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 986 986 define def_vbox_usermanual_hhp_qhelp_to_qhp 987 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)988 $$(out_dir)/qhelp/UserManual.qhp: \989 $$(out_dir)/qhelp/htmlhelp.hhp \990 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \991 | $$$$(dir $$$$@)987 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 988 $$(out_dir)/qhelp/UserManual.qhp: \ 989 $$(out_dir)/qhelp/htmlhelp.hhp \ 990 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 991 | $$$$(dir $$$$@) 992 992 $$(call MSG_L1,htmlhelp-qthelp.py $$<,=> $$@) 993 993 $$(QUIET)$$(RM) -f $$@ … … 999 999 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 1000 1000 define def_vbox_usermanual_xml_to_hhp_qhelp 1001 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)1002 $$(out_dir)/qhelp/htmlhelp.hhp: \1003 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \1004 $$(VBOX_MANUAL_XML_FILES_COMMON) \1005 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \1006 $$(VBOX_DOCBOOK_HTMLHELP_FORMATCFG) \1007 $$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \1008 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \1009 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \1010 $$(VBOX_XML_ENTITIES) | $$$$(dir $$$$@)1001 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 1002 $$(out_dir)/qhelp/htmlhelp.hhp: \ 1003 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ 1004 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 1005 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 1006 $$(VBOX_DOCBOOK_HTMLHELP_FORMATCFG) \ 1007 $$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \ 1008 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \ 1009 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 1010 $$(VBOX_XML_ENTITIES) | $$$$(dir $$$$@) 1011 1011 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 1012 1012 $$(QUIET)$$(RM) -f $$@ … … 1021 1021 # copy the qhcp file. 1022 1022 define def_vbox_cp_qhcp 1023 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp1024 $$(out_dir)/UserManual.qhcp: \1025 $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/% | $$$$(dir $$$$@)1023 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp 1024 $$(out_dir)/UserManual.qhcp: \ 1025 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/% | $$$$(dir $$$$@) 1026 1026 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 1027 1027 endef … … 1031 1031 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 1032 1032 define def_vbox_cp_images_qhelp 1033 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp1034 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \1035 $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)1033 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp 1034 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ 1035 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 1036 1036 $$(call MSG_L1,Copying temporary $$< => $$@) 1037 1037 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' … … 1045 1045 validate-manpages:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_REFENTRY_FILES)) 1046 1046 man-experiment:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 1047 ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(patsubst man_%,%.1,$(basename $(file)))))1047 ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(patsubst man_%,%.1,$(basename $(file))))) 1048 1048 1049 1049 #
Note:
See TracChangeset
for help on using the changeset viewer.