VirtualBox

Changeset 56178 in vbox


Ignore:
Timestamp:
Jun 1, 2015 12:31:55 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
100712
Message:

More makefile cleanup.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/doc/manual/Makefile.kmk

    r56170 r56178  
    136136VBOX_HTMLHELP_OPTS ?=
    137137
     138# SDK related globals.
     139VBOX_MANUAL_APIREF_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml
     140VBOX_DOC_XIDL_SRC      = $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl
     141VBOX_DOC_XIDL_SRC_TMP  = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.xidl.tmp
     142
    138143##
    139144# Non-pattern-rule approach to editing XSLT files.
     
    142147# @param    2   Optional output subdirectory.
    143148define def_vbox_replace_paths_in_xslt
    144 CLEANS += $$(VBOX_PATH_MANUAL_OUTBASE)/$2$(notdir $1)
     149OTHER_CLEAN += $$(VBOX_PATH_MANUAL_OUTBASE)/$2$(notdir $1)
    145150$$(VBOX_PATH_MANUAL_OUTBASE)/$2$(notdir $1): $1 | $$$$(dir $$$$@)
    146151        $$(call MSG_GENERATE,,$$@,$$<)
     
    156161
    157162
    158 ##########################################################################################
    159 #
    160 #  Main targets
    161 #
    162 ##########################################################################################
     163
     164#
     165# Targets
     166#
     167
    163168BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE)
    164169
     
    269274
    270275 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 \
    280298                docbook-html-one-page-formatcfg.xsl \
    281299                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) \
    287305        $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf) \
    288306        $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm) \
    289307        $(PATH_STAGE_BIN)/UserManual.pdf \
    290308        $(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
    298318
    299319endif # VBOX_WITH_DOCS
     
    301321
    302322
    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/</\&lt;/g' -e 's/>/\&gt;/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#
     327ifdef VBOX_XML_CATALOG
    473328# Create a catalog file for xsltproc that points to docbook catalog.
    474 ifdef VBOX_XML_CATALOG
    475329$(VBOX_XML_CATALOG): $(MAKEFILE_CURRENT) | $$(dir $$@)
    476330        $(call MSG_L1,Creating catalog $@)
     
    529383endif
    530384
    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 $<
    539425        $(QUIET)$(MV) -f $@.tmp $@
    540426
    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/</\&lt;/g' -e 's/>/\&gt;/g' --append $@.tmp3 $@.tmp2
     487        $(QUIET)$(SED) \
     488                -e '/\$$VBOX_MANAGE_OUTPUT/,$$!d' \
     489                -e 's/.*\$$VBOX_MANAGE_OUTPUT//' \
     490                --append $@.tmp3 $@.tmp
     491if 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
     495else
     496        $(QUIET)$(CP) $@.tmp3 $@
     497endif
     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"
    548544
    549545
     
    558554$(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/ucs.sty):
    559555        $(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)"
    561557endif
    562558
     
    568564                $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)
    569565        $$(call MSG_L1,Copying temporary $$< => $$@)
    570         $$(QUIET)$$(CP) -f $$< $$@
     566        $$(QUIET)$$(INSTALL_STAGING) -- '$$<' '$$(@D)'
    571567endef
    572568
     
    632628
    633629
    634 ##########################################################################################
    635 #
    636 #  SDKRef.pdf
    637 #
    638 ##########################################################################################
    639 
     630#
     631# SDKRef.pdf
     632#
    640633$(VBOX_PATH_SDK)/docs/SDKRef.pdf: \
    641634                $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex \
     
    673666
    674667
    675 ##########################################################################################
    676 #
    677 #  VirtualBox.chm
    678 #
    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 preprocessed
    684 # DocBook XML files, as defined above,  then feed that into the
    685 # Microsoft Help Compiler.
    686 #
    687668
    688669ifdef 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
    690678        $(QUIET)$(CP) $< $@
    691679        $(call MSG_L1,Fresh CHM is now at $@)
    692680
    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): \
    694682        $(PATH_STAGE_BIN)/VirtualBox_%.chm : $(VBOX_PATH_MANUAL_OUTBASE)/%/VirtualBox.chm
    695683        $(QUIET)$(CP) $< $@
    696684        $(call MSG_L1,Fresh CHM is now at $@)
    697685
    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): \
    699687                $(VBOX_PATH_MANUAL_OUTBASE)/%/VirtualBox.chm: \
    700688                $(VBOX_PATH_MANUAL_OUTBASE)/%/HTMLHelp/htmlhelp.hhp \
     
    704692        $(QUIET)$(VBOX_HHC) $(subst /,\\,$<)
    705693
    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): \
    707714                $(VBOX_PATH_MANUAL_OUTBASE)/%/HTMLHelp/htmlhelp.hhp: \
    708715                $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/%/,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG)) \
     
    719726                $<
    720727
    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_html
    724 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp
    725 $$(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))): \
    726733                        $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)
    727734        $$(call MSG_L1,Copying temporary $$< => $$@)
    728735        $$(QUIET)$$(CP) -f $$< $$@
    729 endef
    730 
    731 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_html)))
    732 
    733 # Packing the docs into a zip file
    734 $(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)
    735742        $(call MSG_L1,Packing documentation $@)
    736743        $(QUIET)$(RM) -f $@
    737744        $(QUIET)$(REDIRECT) -C $(PATH_STAGE_BIN) -- zip$(HOSTSUFF_EXE) -9 $@ $(notdir $^)
     745
    738746endif # VBOX_WITH_DOCS_CHM
    739747
Note: See TracChangeset for help on using the changeset viewer.

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