Changeset 56178 in vbox
- Timestamp:
- Jun 1, 2015 12:31:55 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 100712
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/doc/manual/Makefile.kmk ¶
r56170 r56178 136 136 VBOX_HTMLHELP_OPTS ?= 137 137 138 # SDK related globals. 139 VBOX_MANUAL_APIREF_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml 140 VBOX_DOC_XIDL_SRC = $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl 141 VBOX_DOC_XIDL_SRC_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.xidl.tmp 142 138 143 ## 139 144 # Non-pattern-rule approach to editing XSLT files. … … 142 147 # @param 2 Optional output subdirectory. 143 148 define def_vbox_replace_paths_in_xslt 144 CLEANS+= $$(VBOX_PATH_MANUAL_OUTBASE)/$2$(notdir $1)149 OTHER_CLEAN += $$(VBOX_PATH_MANUAL_OUTBASE)/$2$(notdir $1) 145 150 $$(VBOX_PATH_MANUAL_OUTBASE)/$2$(notdir $1): $1 | $$$$(dir $$$$@) 146 151 $$(call MSG_GENERATE,,$$@,$$<) … … 156 161 157 162 158 ########################################################################################## 159 # 160 # Main targets161 # 162 ########################################################################################## 163 164 # 165 # Targets 166 # 167 163 168 BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE) 164 169 … … 269 274 270 275 OTHER_CLEAN += \ 271 $(foreach f,$(VBOX_MANUAL_LANGUAGES), $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG))) \ 272 $(foreach f,en_US, $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(VBOX_SDKREF_XML_FILES))) \ 273 $(foreach f,$(VBOX_MANUAL_LANGUAGES), $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(VBOX_MANUAL_LATEX_FILES_TARGET))) \ 274 $(foreach f,en_US, $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(VBOX_SDKREF_LATEX_FILES_TARGET))) \ 275 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, \ 276 catalog docbook \ 277 UserManual.fo) \ 278 $(foreach f,$(VBOX_MANUAL_LANGUAGES), $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/, \ 279 docbook-htmlhelp-formatcfg.xsl \ 276 $(VBOX_XML_CATALOG) \ 277 $(VBOX_XML_CATALOG_DOCBOOK) \ 278 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/, \ 279 $(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG) \ 280 $(VBOX_MANUAL_XML_REFENTRY_FILES) \ 281 $(VBOX_MANUAL_LATEX_FILES_TARGET) \ 282 $(VBOX_MANUAL_PNG_FILES_$(lang)) \ 283 $(notdir $(VBOX_MANUAL_TEX_UNICODE_FILES)) \ 284 $(addprefix HTMLHelp/,$(VBOX_MANUAL_PNG_FILES_$(lang))) \ 285 html-single/UserManual.html \ 286 $(addprefix html-chunks/ HTMLHelp/, 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 HTMLHelp/ch$(n).html \ 290 $(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)) ) \ 291 $(foreach n,a b c \ 292 ,html-chunks/ap$(n).html \ 293 HTMLHelp/ap$(n).html \ 294 $(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) ) \ 295 HTMLHelp/toc.hhc \ 296 HTMLHelp/htmlhelp.hhp \ 297 docbook-htmlhelp-formatcfg.xsl \ 280 298 docbook-html-one-page-formatcfg.xsl \ 281 299 docbook-html-chunks-formatcfg.xsl \ 282 titlepage-htmlhelp.xsl ))\283 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(VBOX_MANUAL_PNG_FILES_$(f))))\284 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/HTMLHelp/,$(VBOX_MANUAL_PNG_FILES_$(f))))\285 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/UserManual.pdf) \286 $( foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/VirtualBox.chm) \300 titlepage-htmlhelp.xsl \ 301 UserManual.pdf \ 302 VirtualBox.chm \ 303 )) \ 304 $(VBOX_PATH_MANUAL_OUTBASE)/$(VBOX_MANUAL_XML_CHANGELOG) \ 287 305 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf) \ 288 306 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm) \ 289 307 $(PATH_STAGE_BIN)/UserManual.pdf \ 290 308 $(PATH_STAGE_BIN)/VirtualBox.chm \ 291 $(foreach f,en_US,$(VBOX_PATH_MANUAL_OUTBASE)/$f/SDKRef.pdf) \ 292 $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf \ 293 $(wildcard $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/HTMLHelp/*.h*)) \ 294 $(foreach f,$(VBOX_MANUAL_LANGUAGES),\ 295 $(patsubst $(VBOX_PATH_MANUAL_SRC)/texfiles/unicode/%,$(VBOX_PATH_MANUAL_OUTBASE)/$f/%, \ 296 $(VBOX_MANUAL_TEX_UNICODE_FILES))) \ 297 $(VBOX_PATH_MANUAL_OUTBASE)/$(VBOX_MANUAL_XML_CHANGELOG) 309 \ 310 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \ 311 $(VBOX_SDKREF_XML_FILES) \ 312 $(VBOX_SDKREF_LATEX_FILES_TARGET) \ 313 SDKRef.pdf \ 314 ) \ 315 $(VBOX_DOC_XIDL_SRC_TMP) \ 316 $(VBOX_MANUAL_APIREF_TMP) \ 317 $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf 298 318 299 319 endif # VBOX_WITH_DOCS … … 301 321 302 322 303 304 ########################################################################################## 305 # 306 # Rules: Preprocess DocBook XML files 307 # (preliminary step for both CHM and PDF generation) 308 # 309 ########################################################################################## 310 311 # 312 # The following rules for $(VBOX_PATH_MANUAL_OUTBASE)/*.xml process the XML files 313 # in doc/manual to allow for some magic variable replacements. The PDF and CHM 314 # targets do not depend on the XML files in doc/manual, but those in 315 # $(VBOX_PATH_MANUAL_OUTBASE) instead, which we copy there from here, after that magic 316 # processing. 317 # 318 # So, before copying, the following steps are performed: 319 # 320 # -- $VBOX_VERSION_* strings are replaced with the actual current VBox version. 321 # -- $VBOX_MANAGE_OUTPUT (in VBoxManage.xml) is replaced with the current 322 # output of the actual VBoxManage program, to save us from having to 323 # update the manual all the time. 324 # 325 326 # Only one changelog for all languages 327 # $(VBOX_PATH_MANUAL_OUTBASE)/$(VBOX_MANUAL_XML_CHANGELOG): $(VBOX_PATH_MANUAL_SRC)/$(VBOX_MANUAL_XML_CHANGELOG) | $$(dir $$@) 328 # $(QUIET)$(INSTALL) -m 0644 $< $@ 329 330 # intermediate step to do some variable replacement in the document 331 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(filter-out user_VBoxManage.xml,$(VBOX_MANUAL_XML_FILES)))): \ 332 $(VBOX_PATH_MANUAL_OUTBASE)/% : $(VBOX_PATH_MANUAL_SRC)/% $(VBOX_VERSION_STAMP) | $$(dir $$@) 333 $(call MSG_L1,Pre-processing [1] $(@F) to $@) 334 $(QUIET)$(RM) -f $@ $@.tmp 335 $(QUIET)$(SED) -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 336 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 337 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 338 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 339 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 340 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 341 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 342 --output $@.tmp $< 343 $(QUIET)$(MV) -f $@.tmp $@ 344 345 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/user_ChangeLog.xml): \ 346 $(VBOX_PATH_MANUAL_OUTBASE)/% : \ 347 $(VBOX_PATH_MANUAL_SRC)/% $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml | $$(dir $$@) 348 $(call MSG_L1,Pre-processing [3] $(@F) to $@) 349 $(QUIET)$(RM) -f $@ $@.tmp $@.tmp2 350 $(QUIET)$(SED) -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 351 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 352 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 353 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 354 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 355 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 356 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 357 --output $@.tmp $< 358 $(QUIET)$(SED) -e '1,/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->/!d' \ 359 -e 's/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->//' \ 360 --output $@ $@.tmp 361 var=`$(SED) -n '/!--\$$VIRTUALBOX_CHANGELOG_IMPL-->/p' $<`; \ 362 test -n "$${var}" \ 363 && $(SED) -e 's/<?xml version=\"1.0\" encoding=\"UTF-8\"?>//g' \ 364 --append $@ $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml; \ 365 true 366 $(QUIET)$(SED) -e '/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->/,$$!d' \ 367 -e 's/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->//' --append $@ $@.tmp 368 369 # TODO: figure why the rule below doesn't cause kmk to rebuild the manual when a man page changes! 370 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \ 371 $(eval $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_VBoxManage.xml: $(VBOX_PATH_MANUAL_SRC)/$(lang)/user_VBoxManage.xml \ 372 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))))) 373 374 # user_VBoxManage.xml currently needs some extra processing to stitch in the VBoxManage usage blob. 375 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/user_VBoxManage.xml): \ 376 $(VBOX_PATH_MANUAL_OUTBASE)/% : \ 377 $(VBOX_PATH_MANUAL_SRC)/% \ 378 $$(addprefix $$(@D)/,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 379 $(VBOX_XML_CATALOG) \ 380 $(VBOX_XML_CATALOG_DOCBOOK) \ 381 $(VBOXMANAGEHELP_PATH) | $$(dir $$@) 382 $(call MSG_L1,Pre-processing [2] $(@F) to $@) 383 $(QUIET)$(RM) -f $@ $@.tmp $@.tmp2 384 $(QUIET)$(SED) \ 385 -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 386 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 387 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 388 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 389 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 390 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 391 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 392 -e 's|@VBOX_PATH_DOCBOOK@|$(VBOX_PATH_DOCBOOK)|g' \ 393 -e 's|@VBOX_PATH_MANUAL_SRC@|$(VBOX_PATH_MANUAL_SRC)|g' \ 394 --output $@.tmp $< 395 $(QUIET)$(SED) \ 396 -e '1,/\$$VBOX_MANAGE_OUTPUT/!d' \ 397 -e 's/\$$VBOX_MANAGE_OUTPUT.*//' \ 398 --output $@.tmp3 $@.tmp 399 $(QUIET)$(REDIRECT) -wo $@.tmp2 -E 'VBOX_LOG_FLAGS=disabled' -E 'VBOX_LOG_DEST=nofile' \ 400 $(if $(eq $(KBUILD_TARGET),darwin), -E 'DYLD_FALLBACK_LIBRARY_PATH=$(dir $(LIB_RUNTIME))') \ 401 -- \ 402 $(VBOXMANAGEHELP_PATH) --dumpopts 403 $(QUIET)$(SED) -e 's/</\</g' -e 's/>/\>/g' --append $@.tmp3 $@.tmp2 404 $(QUIET)$(SED) \ 405 -e '/\$$VBOX_MANAGE_OUTPUT/,$$!d' \ 406 -e 's/.*\$$VBOX_MANAGE_OUTPUT//' \ 407 --append $@.tmp3 $@.tmp 408 if 0 # Not currently needed. 409 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet --output $@ \ 410 $(VBOX_PATH_MANUAL_SRC)/usage-to-docbook-manual.xsl \ 411 $@.tmp3 412 else 413 $(QUIET)$(CP) $@.tmp3 $@ 414 endif 415 $(QUIET)$(RM) -f $@.tmp $@.tmp2 $@.tmp3 416 417 418 # Morph man pages into manual sections. 419 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/,$(VBOX_MANUAL_XML_REFENTRY_FILES))): \ 420 $(VBOX_PATH_MANUAL_OUTBASE)/% : $(VBOX_PATH_MANUAL_SRC)/% \ 421 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ 422 $(VBOX_VERSION_STAMP) | $$(dir $$@) 423 $(call MSG_GENERATE,,$@,$<) 424 $(QUIET)$(RM) -f $@ 425 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet --output $@ \ 426 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $< 427 428 # ???? 429 VBOX_MANUAL_APIREF_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml 430 VBOX_DOC_XIDL_SRC = $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl 431 VBOX_DOC_XIDL_SRC_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.xidl.tmp 432 433 $(VBOX_DOC_XIDL_SRC_TMP): $(VBOX_DOC_XIDL_SRC) $(MAKEFILE_CURRENT) | $$(dir $$@) 434 $(call MSG_L1,Generating $@) 435 $(QUIET)$(SED) -e 's|@a \+\(\w\+\)|<tt>\1</tt>|g' \ 436 -e 's|@c \+\(\w\+\)|<tt>\1</tt>|g' \ 437 --output $@ $< 438 439 # generate SDKRef_apiref.xml as a docbook file excerpt that will be referenced from the SDKRef.xml. 440 $(VBOX_MANUAL_APIREF_TMP): $(VBOX_DOC_XIDL_SRC_TMP) $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl 441 $(call MSG_L1,Generating $@) 442 $(QUIET)$(VBOX_XSLTPROC) --xinclude -o $@ $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl $(VBOX_DOC_XIDL_SRC_TMP) 443 444 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.xml: \ 445 $(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef.xml $(VBOX_MANUAL_APIREF_TMP) \ 446 | $$(dir $$@) 447 $(call MSG_L1,Pre-processing [2] $(@F) to $@) 448 $(QUIET)$(RM) -f $@ $@.tmp 449 $(QUIET)$(SED) -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 450 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 451 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 452 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 453 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 454 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 455 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 456 --output $@.tmp $< 457 $(QUIET)$(SED) -e '1,/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->/!d' \ 458 -e 's/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->//' \ 459 --output $@ $@.tmp 460 $(QUIET)$(SED) -e 's/<?xml version=\"1.0\" encoding=\"utf-8\"?>//g' --append $@ $(VBOX_MANUAL_APIREF_TMP) 461 $(QUIET)$(SED) -e '/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->/,$$!d' \ 462 -e 's/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->//' --append $@ $@.tmp 463 # $(QUIET)$(MV) -f $@.tmp $@ 464 465 466 ########################################################################################## 467 # 468 # Rules: Create or preprocess files for xsltproc 469 # (preliminary step for both CHM and PDF generation) 470 # 471 ########################################################################################## 472 323 # 324 # To avoid network I/O for fetching DTDs, we generate catalogs mapping the public 325 # entity IDs to local files. (Obviously, only done when we have local files.) 326 # 327 ifdef VBOX_XML_CATALOG 473 328 # Create a catalog file for xsltproc that points to docbook catalog. 474 ifdef VBOX_XML_CATALOG475 329 $(VBOX_XML_CATALOG): $(MAKEFILE_CURRENT) | $$(dir $$@) 476 330 $(call MSG_L1,Creating catalog $@) … … 529 383 endif 530 384 531 # intermediate step to do some variable replacement in the XSL configuration 532 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/docbook-htmlhelp-formatcfg.xsl): \ 533 $(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl $(MAKEFILE_CURRENT) | $$(dir $$@) 534 $(call MSG_L1,Pre-processing $(@F) to $@) 535 $(QUIET)$(RM) -f $@.tmp $@ 536 $(QUIET)$(SED) -e 's|\$$DOCBOOKPATH|$(VBOX_PATH_DOCBOOK)|g' \ 537 -e 's|\$$CFGPATH|$(VBOX_PATH_MANUAL_SRC)|g' \ 538 -e 's|\$$TARGETPATH|$(@D)|g' --output $@.tmp $< 385 386 ########################################################################################## 387 # 388 # Rules: Preprocess DocBook XML files 389 # (preliminary step for both CHM and PDF generation) 390 # 391 ########################################################################################## 392 393 # 394 # The following rules for $(VBOX_PATH_MANUAL_OUTBASE)/*.xml process the XML files 395 # in doc/manual to allow for some magic variable replacements. The PDF and CHM 396 # targets do not depend on the XML files in doc/manual, but those in 397 # $(VBOX_PATH_MANUAL_OUTBASE) instead, which we copy there from here, after that magic 398 # processing. 399 # 400 # So, before copying, the following steps are performed: 401 # 402 # -- $VBOX_VERSION_* strings are replaced with the actual current VBox version. 403 # -- $VBOX_MANAGE_OUTPUT (in VBoxManage.xml) is replaced with the current 404 # output of the actual VBoxManage program, to save us from having to 405 # update the manual all the time. 406 # 407 408 # Only one changelog for all languages 409 # $(VBOX_PATH_MANUAL_OUTBASE)/$(VBOX_MANUAL_XML_CHANGELOG): $(VBOX_PATH_MANUAL_SRC)/$(VBOX_MANUAL_XML_CHANGELOG) | $$(dir $$@) 410 # $(QUIET)$(INSTALL) -m 0644 $< $@ 411 412 # intermediate step to do some variable replacement in the document 413 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(filter-out user_VBoxManage.xml,$(VBOX_MANUAL_XML_FILES)))): \ 414 $(VBOX_PATH_MANUAL_OUTBASE)/% : $(VBOX_PATH_MANUAL_SRC)/% $(VBOX_VERSION_STAMP) | $$(dir $$@) 415 $(call MSG_L1,Pre-processing [1] $(@F) to $@) 416 $(QUIET)$(RM) -f $@ $@.tmp 417 $(QUIET)$(SED) -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 418 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 419 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 420 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 421 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 422 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 423 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 424 --output $@.tmp $< 539 425 $(QUIET)$(MV) -f $@.tmp $@ 540 426 541 # Prepare the XSL file for our title page, htmlhelp variant. 542 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/titlepage-htmlhelp.xsl): \ 543 $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@) 544 $(call MSG_L1,xsltproc $<) 545 $(QUIET)$(RM) -f $@.tmp $@ 546 $(QUIET)$(VBOX_XSLTPROC) --xinclude --nonet -o $@.tmp $(VBOX_PATH_DOCBOOK)/template/titlepage.xsl $< 547 $(QUIET)$(MV) -f $@.tmp $@ 427 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/user_ChangeLog.xml): \ 428 $(VBOX_PATH_MANUAL_OUTBASE)/% : \ 429 $(VBOX_PATH_MANUAL_SRC)/% $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml | $$(dir $$@) 430 $(call MSG_L1,Pre-processing [3] $(@F) to $@) 431 $(QUIET)$(RM) -f $@ $@.tmp $@.tmp2 432 $(QUIET)$(SED) -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 433 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 434 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 435 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 436 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 437 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 438 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 439 --output $@.tmp $< 440 $(QUIET)$(SED) -e '1,/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->/!d' \ 441 -e 's/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->//' \ 442 --output $@ $@.tmp 443 var=`$(SED) -n '/!--\$$VIRTUALBOX_CHANGELOG_IMPL-->/p' $<`; \ 444 test -n "$${var}" \ 445 && $(SED) -e 's/<?xml version=\"1.0\" encoding=\"UTF-8\"?>//g' \ 446 --append $@ $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml; \ 447 true 448 $(QUIET)$(SED) -e '/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->/,$$!d' \ 449 -e 's/<!--\$$VIRTUALBOX_CHANGELOG_IMPL-->//' --append $@ $@.tmp 450 $(QUIET)$(RM) -f -- "$@.tmp" 451 452 # TODO: figure why the rule below doesn't cause kmk to rebuild the manual when a man page changes! 453 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \ 454 $(eval $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_VBoxManage.xml: $(VBOX_PATH_MANUAL_SRC)/$(lang)/user_VBoxManage.xml \ 455 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))))) 456 457 # user_VBoxManage.xml currently needs some extra processing to stitch in the VBoxManage usage blob. 458 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/user_VBoxManage.xml): \ 459 $(VBOX_PATH_MANUAL_OUTBASE)/% : \ 460 $(VBOX_PATH_MANUAL_SRC)/% \ 461 $$(addprefix $$(@D)/,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 462 $(VBOX_XML_CATALOG) \ 463 $(VBOX_XML_CATALOG_DOCBOOK) \ 464 $(VBOXMANAGEHELP_PATH) | $$(dir $$@) 465 $(call MSG_L1,Pre-processing [2] $(@F) to $@) 466 $(QUIET)$(RM) -f $@ $@.tmp $@.tmp2 467 $(QUIET)$(SED) \ 468 -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 469 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 470 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 471 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 472 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 473 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 474 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 475 -e 's|@VBOX_PATH_DOCBOOK@|$(VBOX_PATH_DOCBOOK)|g' \ 476 -e 's|@VBOX_PATH_MANUAL_SRC@|$(VBOX_PATH_MANUAL_SRC)|g' \ 477 --output $@.tmp $< 478 $(QUIET)$(SED) \ 479 -e '1,/\$$VBOX_MANAGE_OUTPUT/!d' \ 480 -e 's/\$$VBOX_MANAGE_OUTPUT.*//' \ 481 --output $@.tmp3 $@.tmp 482 $(QUIET)$(REDIRECT) -wo $@.tmp2 -E 'VBOX_LOG_FLAGS=disabled' -E 'VBOX_LOG_DEST=nofile' \ 483 $(if $(eq $(KBUILD_TARGET),darwin), -E 'DYLD_FALLBACK_LIBRARY_PATH=$(dir $(LIB_RUNTIME))') \ 484 -- \ 485 $(VBOXMANAGEHELP_PATH) --dumpopts 486 $(QUIET)$(SED) -e 's/</\</g' -e 's/>/\>/g' --append $@.tmp3 $@.tmp2 487 $(QUIET)$(SED) \ 488 -e '/\$$VBOX_MANAGE_OUTPUT/,$$!d' \ 489 -e 's/.*\$$VBOX_MANAGE_OUTPUT//' \ 490 --append $@.tmp3 $@.tmp 491 if 0 # Not currently needed. 492 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet --output $@ \ 493 $(VBOX_PATH_MANUAL_SRC)/usage-to-docbook-manual.xsl \ 494 $@.tmp3 495 else 496 $(QUIET)$(CP) $@.tmp3 $@ 497 endif 498 $(QUIET)$(RM) -f $@.tmp $@.tmp2 $@.tmp3 499 500 501 # Morph man pages into manual sections. 502 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/,$(VBOX_MANUAL_XML_REFENTRY_FILES))): \ 503 $(VBOX_PATH_MANUAL_OUTBASE)/% : $(VBOX_PATH_MANUAL_SRC)/% \ 504 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ 505 $(VBOX_VERSION_STAMP) | $$(dir $$@) 506 $(call MSG_GENERATE,,$@,$<) 507 $(QUIET)$(RM) -f $@ 508 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet --output $@ \ 509 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $< 510 511 512 $(VBOX_DOC_XIDL_SRC_TMP): $(VBOX_DOC_XIDL_SRC) $(MAKEFILE_CURRENT) | $$(dir $$@) 513 $(call MSG_L1,Generating $@) 514 $(QUIET)$(SED) -e 's|@a \+\(\w\+\)|<tt>\1</tt>|g' \ 515 -e 's|@c \+\(\w\+\)|<tt>\1</tt>|g' \ 516 --output $@ $< 517 518 # generate SDKRef_apiref.xml as a docbook file excerpt that will be referenced from the SDKRef.xml. 519 $(VBOX_MANUAL_APIREF_TMP): $(VBOX_DOC_XIDL_SRC_TMP) $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl 520 $(call MSG_L1,Generating $@) 521 $(QUIET)$(VBOX_XSLTPROC) --xinclude -o $@ $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl $(VBOX_DOC_XIDL_SRC_TMP) 522 523 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.xml: \ 524 $(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef.xml $(VBOX_MANUAL_APIREF_TMP) \ 525 | $$(dir $$@) 526 $(call MSG_L1,Pre-processing [2] $(@F) to $@) 527 $(QUIET)$(RM) -f $@ $@.tmp 528 $(QUIET)$(SED) -e 's/\$$VBOX_VERSION_MAJOR/$(VBOX_VERSION_MAJOR)/g' \ 529 -e 's/\$$VBOX_VERSION_MINOR/$(VBOX_VERSION_MINOR)/g' \ 530 -e 's/\$$VBOX_VERSION_BUILD/$(VBOX_VERSION_BUILD)/g' \ 531 -e 's/\$$VBOX_VERSION_STRING/$(VBOX_VERSION_STRING)/g' \ 532 -e 's/\$$VBOX_VENDOR/$(VBOX_VENDOR)/g' \ 533 -e 's/\$$VBOX_PRODUCT/$(VBOX_PRODUCT)/g' \ 534 -e 's/\$$VBOX_C_YEAR/$(VBOX_C_YEAR)/g' \ 535 --output $@.tmp $< 536 $(QUIET)$(SED) -e '1,/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->/!d' \ 537 -e 's/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->//' \ 538 --output $@ $@.tmp 539 $(QUIET)$(SED) -e 's/<?xml version=\"1.0\" encoding=\"utf-8\"?>//g' --append $@ $(VBOX_MANUAL_APIREF_TMP) 540 $(QUIET)$(SED) -e '/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->/,$$!d' \ 541 -e 's/<!--\$$VIRTUALBOX_MAIN_API_REFERENCE-->//' --append $@ $@.tmp 542 # $(QUIET)$(MV) -f $@.tmp $@ 543 $(QUIET)$(RM) -f -- "$@.tmp" 548 544 549 545 … … 558 554 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/ucs.sty): 559 555 $(call MSG_L1,Copying unicode support for LaTeX) 560 $(QUIET)$( CP) $(VBOX_MANUAL_TEX_UNICODE_FILES) $(@D)556 $(QUIET)$(INSTALL_STAGING) -- $(VBOX_MANUAL_TEX_UNICODE_FILES) "$(@D)" 561 557 endif 562 558 … … 568 564 $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 569 565 $$(call MSG_L1,Copying temporary $$< => $$@) 570 $$(QUIET)$$( CP) -f $$< $$@566 $$(QUIET)$$(INSTALL_STAGING) -- '$$<' '$$(@D)' 571 567 endef 572 568 … … 632 628 633 629 634 ########################################################################################## 635 # 636 # SDKRef.pdf 637 # 638 ########################################################################################## 639 630 # 631 # SDKRef.pdf 632 # 640 633 $(VBOX_PATH_SDK)/docs/SDKRef.pdf: \ 641 634 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex \ … … 673 666 674 667 675 ##########################################################################################676 #677 # VirtualBox.chm678 #679 ##########################################################################################680 681 #682 # Main rule for the .chm file (target of OTHERS at the top):683 # We first generate a .hhp help source file from the preprocessed684 # DocBook XML files, as defined above, then feed that into the685 # Microsoft Help Compiler.686 #687 668 688 669 ifdef VBOX_WITH_DOCS_CHM 689 $(PATH_STAGE_BIN)/VirtualBox.chm: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.chm 670 # 671 # VirtualBox.chm 672 # 673 # We first generate a .hhp help source file from the preprocessed 674 # DocBook XML files, as defined above, then feed that into the 675 # Microsoft Help Compiler. 676 # 677 $(PATH_STAGE_BIN)/VirtualBox.chm: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.chm 690 678 $(QUIET)$(CP) $< $@ 691 679 $(call MSG_L1,Fresh CHM is now at $@) 692 680 693 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm): \681 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm): \ 694 682 $(PATH_STAGE_BIN)/VirtualBox_%.chm : $(VBOX_PATH_MANUAL_OUTBASE)/%/VirtualBox.chm 695 683 $(QUIET)$(CP) $< $@ 696 684 $(call MSG_L1,Fresh CHM is now at $@) 697 685 698 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/VirtualBox.chm): \686 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/VirtualBox.chm): \ 699 687 $(VBOX_PATH_MANUAL_OUTBASE)/%/VirtualBox.chm: \ 700 688 $(VBOX_PATH_MANUAL_OUTBASE)/%/HTMLHelp/htmlhelp.hhp \ … … 704 692 $(QUIET)$(VBOX_HHC) $(subst /,\\,$<) 705 693 706 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/HTMLHelp/htmlhelp.hhp): \ 694 695 # intermediate step to do some variable replacement in the XSL configuration 696 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/docbook-htmlhelp-formatcfg.xsl): \ 697 $(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl $(MAKEFILE_CURRENT) | $$(dir $$@) 698 $(call MSG_GENERATE,,$@,$<) 699 $(QUIET)$(RM) -f $@ 700 $(QUIET)$(SED) -e 's|\$$DOCBOOKPATH|$(VBOX_PATH_DOCBOOK)|g' \ 701 -e 's|\$$CFGPATH|$(VBOX_PATH_MANUAL_SRC)|g' \ 702 -e 's|\$$TARGETPATH|$(@D)|g' --output $@ $< 703 704 # Prepare the XSL file for our title page, htmlhelp variant. 705 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/titlepage-htmlhelp.xsl): \ 706 $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@) 707 $(call MSG_L1,xsltproc $<) 708 $(QUIET)$(RM) -f $@.tmp $@ 709 $(QUIET)$(VBOX_XSLTPROC) --xinclude --nonet -o $@.tmp $(VBOX_PATH_DOCBOOK)/template/titlepage.xsl $< 710 $(QUIET)$(MV) -f $@.tmp $@ 711 712 713 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/HTMLHelp/htmlhelp.hhp): \ 707 714 $(VBOX_PATH_MANUAL_OUTBASE)/%/HTMLHelp/htmlhelp.hhp: \ 708 715 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/%/,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG)) \ … … 719 726 $< 720 727 721 # copy the PNG files.722 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input.723 define def_vbox_cp_images_html724 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp725 $$(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \728 # copy the PNG files. 729 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 730 define def_vbox_cp_images_html 731 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp 732 $$(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ 726 733 $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 727 734 $$(call MSG_L1,Copying temporary $$< => $$@) 728 735 $$(QUIET)$$(CP) -f $$< $$@ 729 endef730 731 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_html)))732 733 # Packing the docs into a zip file734 $(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK)736 endef 737 738 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_html))) 739 740 # Packing the docs into a zip file 741 $(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK) 735 742 $(call MSG_L1,Packing documentation $@) 736 743 $(QUIET)$(RM) -f $@ 737 744 $(QUIET)$(REDIRECT) -C $(PATH_STAGE_BIN) -- zip$(HOSTSUFF_EXE) -9 $@ $(notdir $^) 745 738 746 endif # VBOX_WITH_DOCS_CHM 739 747
Note:
See TracChangeset
for help on using the changeset viewer.