- Timestamp:
- Mar 20, 2023 1:55:54 AM (23 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/manual/Makefile.kmk
r99056 r99057 65 65 # 66 66 67 ## Combines the VBOX_MANUAL_LANGUAGES and VBOX_MANUAL_ADD_LANGUAGES lists from 68 # /Config.kmk, as per the VBOX_WITH_DOCS_TRANSLATIONS setting. 69 ifdef VBOX_WITH_DOCS_TRANSLATIONS 70 VBOX_MANUAL_ALL_LANGUAGES := $(VBOX_MANUAL_LANGUAGES) $(VBOX_MANUAL_ADD_LANGUAGES) 71 else 72 VBOX_MANUAL_ALL_LANGUAGES := $(VBOX_MANUAL_LANGUAGES) 73 endif 74 67 75 ## The files that should go into VBoxDocumentation.zip (must be immediately under PATH_STAGE_BIN). 68 76 VBOX_MANUAL_PACK = 69 77 70 ifndef VBOX_ONLY_SDK 71 ifdef VBOX_WITH_DOCS_QHELP 72 ifdef VBOX_WITH_QT6 73 USES += qt6 74 VBOX_QHELPGENERATOR = $(PATH_TOOL_QT6_LIBEXEC)/qhelpgenerator 75 else 76 USES += qt5 77 VBOX_QHELPGENERATOR_VERSION_MINOR = $(shell $(REDIRECT) -E QT_QPA_PLATFORM_PLUGIN_PATH=$(PATH_SDK_QT5)/plugins -- $(PATH_TOOL_QT5_BIN)/qhelpgenerator -v 2>/dev/null | $(SED) -ne 's/.*(Qt [1-9][0-9]*\.\([1-9][0-9]*\)\.[1-9][0-9]*).*$$/\1/p') 78 VBOX_QHELPGENERATOR = $(PATH_TOOL_QT5_BIN)/$(if-expr $(VBOX_QHELPGENERATOR_VERSION_MINOR) >= 12,qhelpgenerator,qcollectiongenerator) 79 endif 80 endif 81 82 endif # ! VBOX_ONLY_SDK 83 84 VBOX_QHELP_OUTPUT_FILES := UserManual.qch UserManual.qhc 78 # Various file lists (mainly needed for OTHER_CLEAN). 79 VBOX_QHELP_OUTPUT_FILES := UserManual.qch UserManual.qhc 80 VBOX_ACCESSIBILITY_XML_FILES := Accessibility.xml 81 VBOX_MANUAL_LATEX_FILES_TARGET := $(addprefix UserManual.,aux log out toc tex) 82 VBOX_SDKREF_LATEX_FILES_TARGET := $(addprefix SDKRef.,aux log out toc tex) 83 VBOX_ACCESSIBILITY_LATEX_FILES_TARGET := $(addprefix Accessibility.,aux log out toc tex) 84 85 VBOX_MANUAL_TEX_UNICODE_FILES = $(wildcard $(VBOX_PATH_MANUAL_SRC)/texfiles/unicode/*) 86 87 # Wildcard the images path for every supported language 88 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES) \ 89 ,$(eval VBOX_MANUAL_PNG_FILES_$$(lang) := $$(patsubst $$(VBOX_PATH_MANUAL_SRC)/$$(lang)/%,%, \ 90 $$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$$(lang)/images/*.png)))) 91 92 # XML 93 $(foreach lang, $(VBOX_MANUAL_ALL_LANGUAGES), \ 94 $(eval VBOX_MANUAL_XML_FILES_GENERATED_$$(lang) := \ 95 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 96 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 97 $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_VBoxHeadless.xml \ 98 $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_vboximg-mount.xml \ 99 $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_isomakercmd-man.xml)) 85 100 86 101 # SDK related globals. … … 89 104 VBOX_DOC_XIDL_SRC_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.xidl.tmp 90 105 106 107 # 108 # PDF LaTeX related globals. 109 # 110 111 VBOX_PDFLATEX_INTERACTION ?= batchmode 91 112 # VBOX_PDFLATEX_INTERACTION = errorstopmode - Use this when you wants to figure out build failures 92 113 # without catting the log a million times. 93 VBOX_PDFLATEX_INTERACTION ?= batchmode94 114 ifeq ($(KBUILD_HOST),win) 95 115 ifndef VBOX_PDFLATEX … … 109 129 VBOX_PDFLATEX_CMD = pdflatex $(VBOX_PDFLATEX_HALT) -interaction $(VBOX_PDFLATEX_INTERACTION) 110 130 endif 131 132 133 # 134 # DITA-OT related globals. 135 # 111 136 112 137 ## … … 143 168 144 169 ## @todo r=bird:Why outside the big if statement? There should be no targets if not entered... 145 BLDDIRS += $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, $(VBOX_MANUAL_LANGUAGES)) 146 170 BLDDIRS += $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, $(VBOX_MANUAL_ALL_LANGUAGES)) 147 171 148 172 ifdef VBOX_ONLY_DOCS 149 173 PACKING += $(PATH_STAGE_BIN)/VBoxDocumentation.zip 150 174 endif 151 152 ## @todo r=bird: why here? We already used it VBOX_MANUAL_LANGUAGES, and BLDDIRS not being a153 ## simple variable this will modify the result after it's been used, which is confusing.154 ifdef VBOX_WITH_DOCS_TRANSLATIONS155 VBOX_MANUAL_LANGUAGES += $(VBOX_MANUAL_ADD_LANGUAGES)156 endif157 158 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \159 $(eval VBOX_MANUAL_XML_FILES_GENERATED_$$(lang) := \160 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \161 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \162 $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_VBoxHeadless.xml \163 $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_vboximg-mount.xml \164 $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_isomakercmd-man.xml))165 166 VBOX_SDKREF_XML_FILES = \167 SDKRef.xml168 169 VBOX_ACCESSIBILITY_XML_FILES = \170 Accessibility.xml171 172 173 # Wildcard the images path for every supported language174 $(foreach f,$(VBOX_MANUAL_LANGUAGES), \175 $(eval VBOX_MANUAL_PNG_FILES_$$(f) := $$(patsubst $$(VBOX_PATH_MANUAL_SRC)/$$(f)/%,%,$$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$$(f)/images/*.png))))176 177 VBOX_MANUAL_TEX_UNICODE_FILES = \178 $(wildcard $(VBOX_PATH_MANUAL_SRC)/texfiles/unicode/*)179 180 VBOX_MANUAL_LATEX_FILES_TARGET = \181 $(addprefix UserManual.,aux log out toc tex)182 183 VBOX_SDKREF_LATEX_FILES_TARGET = \184 $(addprefix SDKRef.,aux log out toc tex)185 186 VBOX_ACCESSIBILITY_LATEX_FILES_TARGET = \187 $(addprefix Accessibility.,aux log out toc tex)188 175 189 176 BLDDIRS += \ … … 194 181 BLDDIRS += \ 195 182 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, \ 196 $(addsuffix /images, $(VBOX_MANUAL_ LANGUAGES)) \197 $(addsuffix /html-single, $(VBOX_MANUAL_ LANGUAGES)) \198 $(addsuffix /html-chunks, $(VBOX_MANUAL_ LANGUAGES)) \199 $(addsuffix /qhelp, $(VBOX_MANUAL_ LANGUAGES)) \200 $(addsuffix /qhelp/images, $(VBOX_MANUAL_ LANGUAGES)) \201 $(addsuffix /HTMLHelp, $(VBOX_MANUAL_ LANGUAGES)) \202 $(addsuffix /HTMLHelp/images, $(VBOX_MANUAL_ LANGUAGES)) \183 $(addsuffix /images, $(VBOX_MANUAL_ALL_LANGUAGES)) \ 184 $(addsuffix /html-single, $(VBOX_MANUAL_ALL_LANGUAGES)) \ 185 $(addsuffix /html-chunks, $(VBOX_MANUAL_ALL_LANGUAGES)) \ 186 $(addsuffix /qhelp, $(VBOX_MANUAL_ALL_LANGUAGES)) \ 187 $(addsuffix /qhelp/images, $(VBOX_MANUAL_ALL_LANGUAGES)) \ 188 $(addsuffix /HTMLHelp, $(VBOX_MANUAL_ALL_LANGUAGES)) \ 189 $(addsuffix /HTMLHelp/images, $(VBOX_MANUAL_ALL_LANGUAGES)) \ 203 190 ) 204 191 … … 211 198 $(VBOX_XML_CATALOG_MANUAL) \ 212 199 $(VBOX_XML_ENTITIES) \ 213 $(foreach lang, $(VBOX_MANUAL_ LANGUAGES) \200 $(foreach lang, $(VBOX_MANUAL_ALL_LANGUAGES) \ 214 201 ,$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/, \ 215 202 $(VBOX_XML_XREF_TO_TEXT) \ … … 375 362 376 363 ## 377 # Morph man pages into manual sections.364 # Morph man pages into Docbook manual sections. 378 365 # $(evalcall2 def_vbox_refentry_to_user_sect1) 366 # 379 367 # @param 1 Language. 380 368 # @param 2 the refentry xml base file name. 381 369 # @param 3 the full refentry xml file path. 370 ## @todo r=bird: This is still Docbook, so unused now? 382 371 define def_vbox_refentry_to_user_sect1 383 372 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \ … … 385 374 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 386 375 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 387 $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(filter %.xml,$$^),$$@)388 $$(QUIET)$$(RM) -f "$$@"376 $$(call MSG_TOOL,xsltproc docbook-refentry-to-manual-sect1.xsl,,$3,$$@) 377 $$(QUIET)$$(RM) -f -- "$$@" 389 378 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $$< 390 379 endef 391 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 392 man_VBoxHeadless.xml \ 393 man_vboximg-mount.xml \ 394 , $(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),$(file),$(VBOX_PATH_MANUAL_SRC)/$(lang)/$(file)))) 395 $(foreach lang,$(VBOX_MANUAL_LANGUAGES) \ 396 ,$(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),isomakercmd-man.xml,$(PATH_ROOT)/src/VBox/Runtime/common/fs/isomakercmd-man.xml)) 380 $(foreach lang, $(VBOX_MANUAL_ALL_LANGUAGES) \ 381 ,$(foreach file, $(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml \ 382 , $(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),$(file),$(VBOX_PATH_MANUAL_SRC)/$(lang)/$(file)))) 383 $(foreach lang, $(VBOX_MANUAL_ALL_LANGUAGES) \ 384 ,$(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),isomakercmd-man.xml,$(PATH_ROOT)/src/VBox/Runtime/common/fs/isomakercmd-man.xml)) 397 385 398 386 399 387 # Generates the VBoxManage command overview include file (shared between 400 388 # languages) from the refsynopsisdiv section of the man pages. 389 ## @todo r=bird: This is still Docbook, so unused now? 401 390 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)): \ 402 391 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-overview.xsl \ 403 392 $$(patsubst overview_%,$$(VBOX_PATH_MANUAL_SRC)/en_US/%,$$(notdir $$@)) \ 404 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 393 $(VBOX_XML_CATALOG) \ 394 $(VBOX_XML_CATALOG_DOCBOOK) \ 395 $(VBOX_XML_CATALOG_MANUAL) \ 405 396 $(VBOX_XML_ENTITIES) | $$(dir $$@) 406 397 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) … … 409 400 410 401 411 412 413 ########################################################################################## 414 # 415 # Shared rules for PDF generation 416 # 417 ########################################################################################## 402 # 403 # Shared rules for LaTeX based PDF generation - Only used for SDK & Accessability. 404 # 418 405 419 406 ifndef VBOX_OSE 420 # copy ucs.sty and related files 421 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/ucs.sty): 407 # Copy ucs.sty and associated files. 408 ## @todo r=bird: This is ugly since only ucs.sty is listed as output while we're actually copying 177 other files. 409 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/ucs.sty): | $$(dir $$@) 422 410 $(call MSG_L1,Copying unicode support for LaTeX) 423 411 $(QUIET)$(INSTALL_STAGING) -m0644 -- $(VBOX_MANUAL_TEX_UNICODE_FILES) "$(@D)" 424 412 endif 425 413 426 # copy the PNG files. 427 # Note: out_dir referenced with double $$ to delay expansion to the eval step when out_dir has been defined. 414 # Copy the PNG files. 428 415 define def_vbox_cp_images_pdf 429 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)430 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \431 $ $(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)416 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ 417 $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/% : \ 418 $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 432 419 $$(call MSG_L1,Copying temporary $$< => $$@) 433 420 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 434 421 endef 435 $(foreach lang,$(VBOX_MANUAL_ LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf))422 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf)) 436 423 437 424 … … 439 426 # SDKRef.pdf 440 427 # 441 442 # Replace <tt> tags in VirtualBox.xidl. 428 VBOX_SDKREF_XML_FILES = SDKRef.xml 429 430 # Replace @a and @c with <tt> tags in VirtualBox.xidl. 443 431 $(VBOX_DOC_XIDL_SRC_TMP): $(VBOX_DOC_XIDL_SRC) $(MAKEFILE_CURRENT) | $$(dir $$@) 444 432 $(call MSG_L1,Generating $@) 445 $(QUIET)$(SED) -e 's|@a \+\(\w\+\)|<tt>\1</tt>|g' \ 446 -e 's|@c \+\(\w\+\)|<tt>\1</tt>|g' \ 447 --output $@ $< 433 $(QUIET)$(SED) \ 434 -e 's|@a \+\(\w\+\)|<tt>\1</tt>|g' \ 435 -e 's|@c \+\(\w\+\)|<tt>\1</tt>|g' \ 436 --output $@ $< 448 437 449 438 # Generate SDKRef_apiref.xml as a docbook file excerpt that will be referenced from the SDKRef.xml. … … 458 447 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 459 448 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run,) \ 460 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 461 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 449 $(VBOX_XML_CATALOG) \ 450 $(VBOX_XML_CATALOG_DOCBOOK) \ 451 $(VBOX_XML_CATALOG_MANUAL) \ 452 $(VBOX_XML_ENTITIES) \ 453 $(MAKEFILE_CURRENT) \ 454 | $$(dir $$@) 462 455 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 463 456 $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_SDKREF_LATEX_FILES_TARGET)) … … 478 471 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex \ 479 472 $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \ 480 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@) 473 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ 474 | $$(dir $$@) 481 475 $(call MSG_L1,pdflatex $< (three passes)) 482 476 $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) SDKRef.tex … … 517 511 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 518 512 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run,) \ 519 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 520 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 513 $(VBOX_XML_CATALOG) \ 514 $(VBOX_XML_CATALOG_DOCBOOK) \ 515 $(VBOX_XML_CATALOG_MANUAL) \ 516 $(VBOX_XML_ENTITIES) \ 517 $(MAKEFILE_CURRENT) \ 518 | $$(dir $$@) 521 519 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 522 520 $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET)) … … 537 535 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex \ 538 536 $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \ 539 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@)537 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) 540 538 $(call MSG_L1,pdflatex $< (three passes)) 541 539 $(QUIET)$(REDIRECT) -C $(<D) -- $(VBOX_PDFLATEX_CMD) Accessibility.tex … … 551 549 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \ 552 550 $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \ 553 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 551 $(VBOX_XML_CATALOG) \ 552 $(VBOX_XML_CATALOG_DOCBOOK) \ 553 $(VBOX_XML_CATALOG_MANUAL) \ 554 554 $(VBOX_XML_ENTITIES) | $$(dir $$@) 555 555 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) … … 577 577 578 578 579 # A few things which are shared between htmlhelp and qhelp docs. 580 VBOX_DOCBOOK_HTMLHELP_FORMATCFG = \ 581 $(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \ 582 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 583 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 584 585 # Prepare the XSL file for our title page, htmlhelp and qhelp variant. 586 $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl: \ 587 $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@) 588 $(call MSG_L1,xsltproc $<) 589 $(QUIET)$(RM) -f [email protected] $@ 590 $(QUIET)$(VBOX_XSLTPROC) --xinclude --nonet -o [email protected] $(VBOX_PATH_DOCBOOK)/template/titlepage.xsl $< 591 $(QUIET)$(MV) -f [email protected] $@ 592 593 # Packing the docs into a zip file 594 ifneq ($(VBOX_MANUAL_PACK),) 595 $(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK) 596 $(call MSG_L1,Packing documentation $@) 597 $(QUIET)$(RM) -f $@ 598 $(QUIET)$(REDIRECT) -C $(PATH_STAGE_BIN) -- $(VBOX_ZIP) -9 $@ $(notdir $^) 599 endif 579 ################################################################################################################################# 580 # The UserManual in all its output variations (DITA-OT). # 581 ################################################################################################################################# 600 582 601 583 … … 620 602 ########################################################################################## 621 603 622 VBOX_USER_MANUAL_STAGED_DITA_FILES := $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/, \ 623 $(notdir $(wildcard $(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/*dita))) 624 VBOX_USER_MANUAL_STAGED_IMAGE_FILES := $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/images/, \ 625 $(notdir $(wildcard $(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/images/*))) 626 627 $(VBOX_USER_MANUAL_STAGED_DITA_FILES) \ 628 $(VBOX_USER_MANUAL_STAGED_IMAGE_FILES) \ 629 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/UserManual.ditamap: \ 630 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/% : \ 631 $(VBOX_PATH_MANUAL_SRC)/en_US/dita/% | $$(dir $$@) 632 $(QUIET)$(INSTALL_STAGING) -m 0644 -- "$<" "$(@D)/" 633 634 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/reference.dtd: | $$(dir $$@) 635 $(QUIET)$(TOUCH) -- "$@" 636 637 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/man_VBoxManage-dhcpserver-dhcpoptions.xml: \ 638 $(VBOX_PATH_MANUAL_SRC)/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml | $$(dir $$@) 639 $(QUIET)$(INSTALL_STAGING) -m 0644 -- "$<" "$(@D)/" 640 604 # 605 # We copy/hardlink all the files under <lang>/dita/* to the corresponding 606 # VBOX_PATH_MANUAL_OUTBASE location. This is mainly to deal with DITO-OT's 607 # inability to search for topic files in more than one place, so we have to 608 # gather generated and static topic sources + the .ditamap-file(s) in one 609 # place. 610 # 611 612 # Determin the basic set of files as dictated by the en_US version of the 613 # user manual (relative to $(lang)/dita). We'll use these to supply 614 # incomplete manual translations. 615 # Note! This includes .png as well as .dita and .ditamap files. 616 VBOX_USER_MANUAL_DITA_BASIC_SRC_FILES := \ 617 $(notdir $(wildcard $(VBOX_PATH_MANUAL_SRC)/en_US/dita/*.ditamap)) \ 618 $(addprefix topics/,$(notdir $(wildcard $(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/*dita))) \ 619 $(addprefix topics/images/,$(notdir $(wildcard $(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/images/*png))) 620 621 ## 622 # Produce copying rules for one language and defining the variable 623 # VBOX_USER_MANUAL_DITA_STAGED_FILES_<lang> for use in prerequisite to 624 # anything producing a version of the user manual. 625 # 626 # @param 1 lang 627 define def_vbox_copy_manual_dita_src_files 628 VBOX_USER_MANUAL_DITA_SRC_FILES_$(1) := \ 629 $$(notdir $$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$1/dita/*.ditamap)) \ 630 $$(addprefix topics/,$$(notdir $$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$1/dita/topics/*dita))) \ 631 $$(addprefix topics/images/,$$(notdir $$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$1/dita/topics/images/*png))) 632 VBOX_USER_MANUAL_DITA_SRC_FILES_$(1)_FALLBACK := \ 633 $$(filter-out $$(VBOX_USER_MANUAL_DITA_SRC_FILES_$(1)), $$(VBOX_USER_MANUAL_DITA_BASIC_SRC_FILES)) 634 635 VBOX_USER_MANUAL_DITA_STAGED_FILES_$(1) = \ 636 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/,\ 637 $$(VBOX_USER_MANUAL_DITA_SRC_FILES_$(1)) \ 638 $$(VBOX_USER_MANUAL_DITA_SRC_FILES_$(1)_FALLBACK) \ 639 topics/reference.dtd) 640 641 ifneq ($$(VBOX_USER_MANUAL_DITA_SRC_FILES_$(1)),) 642 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/,$$(VBOX_USER_MANUAL_DITA_SRC_FILES_$(1))): \ 643 $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/%: \ 644 $$(VBOX_PATH_MANUAL_SRC)/$1/dita/% | $$$$(dir $$$$@) 645 $$(QUIET)$$(INSTALL_STAGING) -m 0644 -- "$$<" "$$(@D)/" 646 endif 647 648 ifneq ($$(VBOX_USER_MANUAL_DITA_SRC_FILES_$(1)_FALLBACK),) 649 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/,$$(VBOX_USER_MANUAL_DITA_SRC_FILES_$(1)_FALLBACK)): \ 650 $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/%: \ 651 $$(VBOX_PATH_MANUAL_SRC)/en_US/dita/% | $$$$(dir $$$$@) 652 $$(QUIET)$$(INSTALL_STAGING) -m 0644 -- "$$<" "$$(@D)/" 653 endif 654 655 ## @todo r=bird: Dummy to shut up warnings? 656 $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/topics/reference.dtd: | $$$$(dir $$$$@) 657 $$(QUIET)$$(TOUCH) -- "$$@" 658 659 ## @todo r=bird: Not sure why this is needed, it's in Docbook format. 660 ## Logically, it belongs to the refentry -> dita conversion below... 661 $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/topics/man_VBoxManage-dhcpserver-dhcpoptions.xml: \ 662 $(VBOX_PATH_MANUAL_SRC)/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml | $$$$(dir $$$$@) 663 $$(QUIET)$$(INSTALL_STAGING) -m 0644 -- "$$<" "$$(@D)/" 664 665 endef 666 $(foreach lang, $(VBOX_MANUAL_ALL_LANGUAGES),$(evalcall2 def_vbox_copy_manual_dita_src_files,$(lang))) 667 668 ## @todo r=bird: Will be eliminated. 641 669 $(VBOX_PATH_MANUAL_OUTBASE)/dita_common: \ 642 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/UserManual.ditamap \ 643 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/reference.dtd \ 644 $(VBOX_USER_MANUAL_STAGED_DITA_FILES) \ 645 $(VBOX_USER_MANUAL_STAGED_IMAGE_FILES) \ 670 $(VBOX_USER_MANUAL_DITA_STAGED_FILES_en_US) \ 646 671 $$(VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES) 647 672 $(call MSG_L1, Ran common dita steps) … … 708 733 --mapping-file "$$(VBOX_USER_MANUAL_ID_MAPPING_FILE)" "$$@" 709 734 endef 710 $(foreach lang,$(VBOX_MANUAL_ LANGUAGES) \735 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES) \ 711 736 ,$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) man_vboximg-mount.xml man_VBoxHeadless.xml \ 712 737 ,$(evalcall2 def_vbox_refentry_to_dita,$(lang),$(file)))) … … 727 752 728 753 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html: \ 754 $(VBOX_USER_MANUAL_DITA_STAGED_FILES_en_US) \ 729 755 $(VBOX_PATH_MANUAL_OUTBASE)/dita_common 730 756 $(call MSG_L1,Building html chunks $@) … … 746 772 qhelp:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/qhelp/, $(VBOX_QHELP_OUTPUT_FILES)) 747 773 html-zip:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip 774 775 # 776 # A few things which are shared between htmlhelp and qhelp docs. 777 # TODO: This is Docbook related work. Left here in case we can reuse some of 778 # the ideas from it for DITA-OT. 779 # 780 781 VBOX_DOCBOOK_HTMLHELP_FORMATCFG = \ 782 $(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \ 783 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 784 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 785 786 # Prepare the XSL file for our title page, htmlhelp and qhelp variant. 787 $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl: \ 788 $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@) 789 $(call MSG_L1,xsltproc $<) 790 $(QUIET)$(RM) -f [email protected] $@ 791 $(QUIET)$(VBOX_XSLTPROC) --xinclude --nonet -o [email protected] $(VBOX_PATH_DOCBOOK)/template/titlepage.xsl $< 792 $(QUIET)$(MV) -f [email protected] $@ 748 793 749 794 … … 766 811 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 767 812 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 813 $$(VBOX_USER_MANUAL_DITA_STAGED_FILES_$(lang)) \ 768 814 $$(VBOX_PATH_MANUAL_OUTBASE)/dita_common 769 815 $$(QUIET)$(RM) -f -- "$$@" … … 777 823 ditamap-to-pdf: $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/UserManual.pdf 778 824 endef 779 $(foreach lang,$(VBOX_MANUAL_ LANGUAGES),$(evalcall2 def_ditamap_to_pdf,$(lang)))825 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(evalcall2 def_ditamap_to_pdf,$(lang))) 780 826 781 827 # Useful aliases … … 803 849 804 850 805 #806 # VBoxManage man pages (parts also required by VBoxManage built-in help).807 #808 809 ##810 # Emits rules for preprocessing refentry sources (applying remarks element),811 # and for producing the actual man pages.812 # $(evalcall2 def_vbox_refentry_to_manpage)813 # @param 1 The language814 # @param 2 The file name (no path).815 define def_vbox_refentry_to_manpage816 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2): \817 $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \818 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \819 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \820 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \821 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)851 # 852 # VBoxManage man pages (parts also required by VBoxManage built-in help). 853 # 854 855 ## 856 # Emits rules for preprocessing refentry sources (applying remarks element), 857 # and for producing the actual man pages. 858 # $(evalcall2 def_vbox_refentry_to_manpage) 859 # @param 1 The language 860 # @param 2 The file name (no path). 861 define def_vbox_refentry_to_manpage 862 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2): \ 863 $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \ 864 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ 865 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \ 866 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 867 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 822 868 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 823 869 $$(QUIET)$$(RM) -f "$$@" … … 826 872 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output [email protected] $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) $$@ 827 873 $$(QUIET)$$(MV) -f -- "[email protected]" "$$@" 828 if defined(VBOX_HAVE_XMLLINT)874 if defined(VBOX_HAVE_XMLLINT) 829 875 $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@ 830 endif831 832 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \833 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \834 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl \835 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \836 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)876 endif 877 878 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \ 879 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \ 880 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl \ 881 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 882 $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 837 883 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 838 884 $$(QUIET)$$(RM) -f "$$@" 839 885 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --maxdepth 6000 --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl $$< 840 endef 841 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 842 , $(evalcall2 def_vbox_refentry_to_manpage,$(lang),$(file)))) 843 844 ifdef VBOX_WITH_DOCS_QHELP 845 # 846 # VirtualBox.qch/VirtualBox.qhc 847 # 848 # We first generate a .hhp help source file from the preprocessed 849 # DocBook XML files, as defined above, then feed that into a converter 850 # creating the suitable input for creating a QHelp collection file. 851 852 # Generate QCH from QHelp source 853 # Note: out_dir referenced with double $$ to delay expansion to the eval step when out_dir has been defined. 854 define def_vbox_usermanual_qhp_to_qch 855 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 856 $$(out_dir)/qhelp/UserManual.qch \ 857 + $$(out_dir)/qhelp/UserManual.qhc: \ 858 $$(out_dir)/qhelp/UserManual.qhcp \ 859 $$(out_dir)/qhelp/UserManual.qhp \ 860 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 861 | $$$$(dir $$$$@) 886 endef 887 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 888 , $(evalcall2 def_vbox_refentry_to_manpage,$(lang),$(file)))) 889 890 # Handy aliases. 891 validate-manpages:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_REFENTRY_FILES)) 892 man-experiment:: $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 893 ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(patsubst man_%,%.1,$(basename $(file))))) 894 895 # 896 # Manually updating the DHCP option list taken from VirtualBox.xidl 897 # 898 dhcpoptions: $(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl \ 899 $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl 900 $(call VBOX_XSLTPROC) --output "$(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml" $^ 901 902 903 if defined(VBOX_WITH_DOCS_QHELP) && !defined(VBOX_ONLY_SDK) 904 # 905 # VirtualBox.qch/VirtualBox.qhc 906 # 907 # We first generate a .hhp help source file from the preprocessed 908 # DocBook XML files, as defined above, then feed that into a converter 909 # creating the suitable input for creating a QHelp collection file. 910 # 911 912 # Enable Qt and locate the Qt help generator. 913 ifdef VBOX_WITH_QT6 914 USES += qt6 915 VBOX_QHELPGENERATOR = $(PATH_TOOL_QT6_LIBEXEC)/qhelpgenerator 916 else 917 USES += qt5 918 VBOX_QHELPGENERATOR_VERSION_MINOR = $(shell $(REDIRECT) -E QT_QPA_PLATFORM_PLUGIN_PATH=$(PATH_SDK_QT5)/plugins -- $(PATH_TOOL_QT5_BIN)/qhelpgenerator -v 2>/dev/null | $(SED) -ne 's/.*(Qt [1-9][0-9]*\.\([1-9][0-9]*\)\.[1-9][0-9]*).*$$/\1/p') 919 VBOX_QHELPGENERATOR = $(PATH_TOOL_QT5_BIN)/$(if-expr $(VBOX_QHELPGENERATOR_VERSION_MINOR) >= 12,qhelpgenerator,qcollectiongenerator) 920 endif 921 922 # Generate QCH from QHelp source 923 # Note: out_dir referenced with double $$ to delay expansion to the eval step when out_dir has been defined. 924 define def_vbox_usermanual_qhp_to_qch 925 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 926 $$(out_dir)/qhelp/UserManual.qch \ 927 + $$(out_dir)/qhelp/UserManual.qhc: \ 928 $$(out_dir)/qhelp/UserManual.qhcp \ 929 $$(out_dir)/qhelp/UserManual.qhp \ 930 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 931 | $$$$(dir $$$$@) 862 932 $$(call MSG_L1,$$(notdir $$(VBOX_QHELPGENERATOR)) $$<,=> $$@) 863 933 $$(QUIET)$$(RM) -f $$@ 864 934 $$(QUIET)$$(REDIRECT) -E QT_QPA_PLATFORM_PLUGIN_PATH=$$(PATH_SDK_QT5)/plugins -- $$(VBOX_QHELPGENERATOR) $$< 865 935 $$(call MSG_L1,Fresh QCH is now at $$@) 866 endef867 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_qhp_to_qch))868 869 # Generate QHP from HHP for QHelp870 # Note: out_dir referenced with double $$ to delay expansion to the eval step when out_dir has been defined.871 define def_vbox_usermanual_hhp_qhelp_to_qhp872 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)873 $$(out_dir)/qhelp/UserManual.qhp: \874 $$(out_dir)/qhelp/UserManual.hhp \875 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \876 | $$$$(dir $$$$@)936 endef 937 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(evalcall2 def_vbox_usermanual_qhp_to_qch)) 938 939 # Generate QHP from HHP for QHelp 940 # Note: out_dir referenced with double $$ to delay expansion to the eval step when out_dir has been defined. 941 define def_vbox_usermanual_hhp_qhelp_to_qhp 942 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 943 $$(out_dir)/qhelp/UserManual.qhp: \ 944 $$(out_dir)/qhelp/UserManual.hhp \ 945 $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 946 | $$$$(dir $$$$@) 877 947 $$(call MSG_L1,htmlhelp-qthelp.py $$<,=> $$@) 878 948 $$(QUIET)$$(RM) -f $$@ 879 949 $$(QUIET)$$(VBOX_BLD_PYTHON) $$(VBOX_PATH_MANUAL_SRC)/htmlhelp-qthelp.py -d $$(<D) -o $$@ -f UserManual.hhp -t UserManual.hhc 880 endef881 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_hhp_qhelp_to_qhp))882 883 884 # Setting HHCDIR here so that it fails to locate hcc.exe and always skips the885 # compilation step that produces the .chm-file, since we don't need it and it886 # mangles the path so it always fails anyway.887 define def_ditamap_to_htmlhelp888 ditamap-to-htmlhelp: $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/qhelp/UserManual.hhp889 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/qhelp/UserManual.hhp:\890 $(VBOX_PATH_MANUAL_OUTBASE)/dita_common950 endef 951 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(evalcall2 def_vbox_usermanual_hhp_qhelp_to_qhp)) 952 953 # Setting HHCDIR here so that it fails to locate hcc.exe and always skips the 954 # compilation step that produces the .chm-file, since we don't need it and it 955 # mangles the path so it always fails anyway. 956 define def_ditamap_to_htmlhelp 957 ditamap-to-htmlhelp: $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/qhelp/UserManual.hhp 958 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/qhelp/UserManual.hhp: \ 959 $(VBOX_USER_MANUAL_DITA_STAGED_FILES_$(1)) \ 960 $(VBOX_PATH_MANUAL_OUTBASE)/dita_common 891 961 $$(QUIET)$(RM) -Rf -- "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-qhelp/" 892 962 $$(QUIET)$$(call VBOX_DITA_RUN_DOST,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-qhelp, -EHHCDIR="$$(@D)") \ … … 896 966 "/tempdir:$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/temp_htmlhelp" 897 967 898 endef899 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_ditamap_to_htmlhelp,$(lang)))900 901 # copy the qhcp file.902 define def_vbox_cp_qhcp903 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp904 $$(out_dir)/UserManual.qhcp: \905 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/% | $$$$(dir $$$$@)968 endef 969 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(evalcall2 def_ditamap_to_htmlhelp,$(lang))) 970 971 # copy the qhcp file. 972 define def_vbox_cp_qhcp 973 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp 974 $$(out_dir)/UserManual.qhcp: \ 975 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/% | $$$$(dir $$$$@) 906 976 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 907 endef908 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_qhcp)))909 910 # copy the PNG files.911 # Note: out_dir referenced with double $$ to delay expansion to the eval step when out_dir has been defined.912 define def_vbox_cp_images_qhelp913 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp914 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \915 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)977 endef 978 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(eval $(def_vbox_cp_qhcp))) 979 980 # copy the PNG files. 981 # Note: out_dir referenced with double $$ to delay expansion to the eval step when out_dir has been defined. 982 define def_vbox_cp_images_qhelp 983 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/qhelp 984 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ 985 $$(out_dir)/% : $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 916 986 $$(call MSG_L1,Copying temporary $$< => $$@) 917 987 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 918 endef 919 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_qhelp))) 920 921 endif # VBOX_WITH_DOCS_QHELP 922 923 # Handy aliases. 924 validate-manpages:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_REFENTRY_FILES)) 925 man-experiment:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 926 ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(patsubst man_%,%.1,$(basename $(file))))) 927 928 # 929 # Manually updating the DHCP option list taken from VirtualBox.xidl 930 # 931 dhcpoptions: $(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl \ 932 $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl 933 $(call VBOX_XSLTPROC) --output "$(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml" $+ 934 988 endef 989 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES),$(eval $(def_vbox_cp_images_qhelp))) 990 991 endif # VBOX_WITH_DOCS_QHELP && !VBOX_ONLY_SDK 992 993 994 # 995 # Packing the docs into a zip file (part of the packing pass on the docs build box). 996 # 997 ifneq ($(VBOX_MANUAL_PACK),) 998 $(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK) 999 $(call MSG_L1,Packing documentation $@) 1000 $(QUIET)$(RM) -f $@ 1001 $(QUIET)$(REDIRECT) -C $(PATH_STAGE_BIN) -- $(VBOX_ZIP) -9 $@ $(notdir $^) 1002 endif 935 1003 936 1004 endif # if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK))
Note:
See TracChangeset
for help on using the changeset viewer.