VirtualBox

Changeset 99059 in vbox for trunk


Ignore:
Timestamp:
Mar 20, 2023 2:38:04 AM (19 months ago)
Author:
vboxsync
Message:

manual/Makefile.kmk: Cleaning up the makefile step by step... bugref:10348 bugref:10302

Location:
trunk/doc/manual
Files:
2 edited

Legend:

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

    r99058 r99059  
    657657        $$(QUIET)$$(TOUCH) -- "$$@"
    658658
    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 
    665659 endef
    666660 $(foreach lang, $(VBOX_MANUAL_ALL_LANGUAGES),$(evalcall2 def_vbox_copy_manual_dita_src_files,$(lang)))
    667 
    668  ## @todo r=bird: Will be eliminated.
    669  $(VBOX_PATH_MANUAL_OUTBASE)/dita_common: \
    670                 $(VBOX_USER_MANUAL_DITA_STAGED_FILES_en_US) \
    671                 $$(VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES)
    672         $(call MSG_L1, Ran common dita steps)
    673         $(QUIET)$(TOUCH) -- "$@"
    674661
    675662
     
    683670 #
    684671
    685 
    686  ##########################################################################################
    687  #
    688  #  Docbook to Dita conversion of our refentry files
    689  #
    690  ##########################################################################################
    691 
    692  # Generate a ID to FILE mapping database that def_vbox_refentry_to_dita can apply below.
    693  VBOX_USER_MANUAL_ID_MAPPING_FILE := $(VBOX_PATH_MANUAL_OUTBASE)/en_US/id-mapping-file.db
    694  OTHER_CLEAN += $(VBOX_USER_MANUAL_ID_MAPPING_FILE)
    695  $(VBOX_USER_MANUAL_ID_MAPPING_FILE): \
    696                 $(VBOX_PATH_MANUAL_SRC)/build_id_to_file_mapping.py \
    697                 $(wildcard $(VBOX_PATH_MANUAL_SRC)/en_US/*.xml $(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/*.dita) \
    698                 | $(dir $@)
    699         $(call MSG_L1, $<)
    700         $(QUIET)$(VBOX_BLD_PYTHON) "$<" --output "$@" \
    701                 "$(VBOX_PATH_MANUAL_SRC)/en_US/*.xml" \
    702                 "$(VBOX_PATH_MANUAL_SRC)/en_US/dita/topics/*.dita"
    703 
    704  # Accumulated list of conversion output file names used by dita_common above.
    705  VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES := $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/user_isomakercmd-man.dita
    706 
    707  $(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/user_isomakercmd-man.dita: \
    708                 $(VBOX_DITA_CONVERTER_PATH)/db2dita/docbook2dita.xsl \
    709                 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_isomakercmd-man.xml | $$(dir $$@)
    710         $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \
     672 ##
     673 # Do per-language stuff for the refentry -> dita file conversion.
     674 #
     675 # The variable VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES_<lang> is defined
     676 # by this define and should be expaneded as a prerequisite for any rule
     677 # producing a version of the user manual.
     678 #
     679 # @param 1    Language.
     680 #
     681 define def_vbox_refentry_to_dita
     682  # Generate a ID to FILE mapping database that def_vbox_refentry_to_dita can apply below.
     683  VBOX_USER_MANUAL_ID_MAPPING_FILE_$(1) := $$(VBOX_PATH_MANUAL_OUTBASE)/$1/id-mapping-file.db
     684  OTHER_CLEAN += $(VBOX_USER_MANUAL_ID_MAPPING_FILE_$(1))
     685  $$(VBOX_USER_MANUAL_ID_MAPPING_FILE_$(1)) + $$(VBOX_USER_MANUAL_ID_MAPPING_FILE_$(1)).lst: \
     686                $$(VBOX_PATH_MANUAL_SRC)/build_id_to_file_mapping.py \
     687                $$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$1/*.xml) \
     688                $$(filter %.dita,$$(VBOX_USER_MANUAL_DITA_STAGED_FILES_$(1))) \
     689                | $$$$(dir $$$$@)
     690        $$(call MSG_L1, $$<)
     691        $$(APPEND) -nt "$$@.lst" $$(filter-out %.py,$$^)
     692        $$(QUIET)$$(VBOX_BLD_PYTHON) "$$<" --output "$$@" @"$$@.lst"
     693
     694  # We must copy over the man_VBoxManage-dhcpserver-dhcpoptions.xml include
     695  # file, so that xsltproc can easily find it when running docbook2dita.xsl.
     696  $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/topics/man_VBoxManage-dhcpserver-dhcpoptions.xml: \
     697                $$(qfirstfile , $$(qwildcard , $$(VBOX_PATH_MANUAL_SRC)/$(1)/man_VBoxManage-dhcpserver-dhcpoptions.xml) \
     698                        $$(VBOX_PATH_MANUAL_SRC)/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml) | $$$$(dir $$$$@)
     699        $$(QUIET)$$(INSTALL_STAGING) -m 0644 -- "$$<" "$$(@D)/"
     700
     701  # Accumulated list of conversion output file names to be used as a
     702  # prerequisite in rules producing a version of the user manual.
     703  VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES_$1 := \
     704        $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/topics/user_isomakercmd-man.dita
     705
     706  ## @todo r=bird: quite not sure why this isn't treated like the rest...
     707  $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/topics/user_isomakercmd-man.dita: \
     708                $$(VBOX_DITA_CONVERTER_PATH)/db2dita/docbook2dita.xsl \
     709                $$(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_isomakercmd-man.xml | $$$$(dir $$$$@)
     710        $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) \
    711711                --maxdepth 6000 \
    712                 --output "$@" \
    713                 "$<" \
    714                 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_isomakercmd-man.xml
    715 
    716  define def_vbox_refentry_to_dita
    717   VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES += $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(basename $(2)).dita
    718   $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(basename $(2)).dita \
    719   + $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2): \
     712                --output "$$@" \
     713                "$$<" \
     714                $$(VBOX_PATH_MANUAL_OUTBASE)/$1/user_isomakercmd-man.xml
     715 endef
     716
     717 ## Convert a single refentry file to dita.
     718 # @param 1    Language
     719 # @param 2    Filename w/o extension.
     720 define def_vbox_refentry_file_to_dita
     721  VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES_$1 += $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2).dita
     722  $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2).dita \
     723  + $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2).xml: \
    720724                $$(VBOX_DITA_CONVERTER_PATH)/db2dita/docbook2dita.xsl \
    721                 $$(qfirstfile , $$(qwildcard , $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2)) $$(VBOX_PATH_MANUAL_SRC)/en_US/$(2)) \
     725                $$(qfirstfile , $$(qwildcard , $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2).xml) $$(VBOX_PATH_MANUAL_SRC)/en_US/$(2).xml) \
    722726                $$(VBOX_PATH_MANUAL_SRC)/mark_external_urls.xsl \
    723727                $$(VBOX_PATH_MANUAL_SRC)/add_file_to_id_only_references.py \
    724                 $$(VBOX_USER_MANUAL_ID_MAPPING_FILE) \
    725                 $$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/topics/man_VBoxManage-dhcpserver-dhcpoptions.xml \
     728                $$(VBOX_USER_MANUAL_ID_MAPPING_FILE_$1) \
     729                $$(VBOX_PATH_MANUAL_OUTBASE)/$1/dita/topics/man_VBoxManage-dhcpserver-dhcpoptions.xml \
    726730                $$(VBOX_XML_CATALOG) \
    727731                $$(VBOX_XML_CATALOG_DOCBOOK) \
     
    733737        $$(QUIET)$$(RM) -f "$$@"
    734738        $$(QUIET)$$(VBOX_BLD_PYTHON) $$(VBOX_PATH_MANUAL_SRC)/refsect2_to_refsect1.py \
    735                 -i $$(qfirstfile , $$(qwildcard , $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2)) $$(VBOX_PATH_MANUAL_SRC)/en_US/$(2)) \
    736                 -o "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2)"
     739                -i $$(qfirstfile , $$(qwildcard , $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2).xml) $$(VBOX_PATH_MANUAL_SRC)/en_US/$(2).xml) \
     740                -o "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2).xml"
    737741        $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --maxdepth 6000 --output "$$@" \
    738742                "$$(VBOX_DITA_CONVERTER_PATH)/db2dita/docbook2dita.xsl" \
    739                 "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2)"
     743                "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/topics/$(2).xml"
    740744        $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --maxdepth 6000 --output "$$@" \
    741745                "$$(VBOX_PATH_MANUAL_SRC)/mark_external_urls.xsl" "$$@"
    742746        $$(QUIET)$$(VBOX_BLD_PYTHON) $$(VBOX_PATH_MANUAL_SRC)/add_file_to_id_only_references.py \
    743                 --mapping-file "$$(VBOX_USER_MANUAL_ID_MAPPING_FILE)" "$$@"
     747                --mapping-file "$$(VBOX_USER_MANUAL_ID_MAPPING_FILE_$1)" "$$@"
    744748 endef
    745749 $(foreach lang,$(VBOX_MANUAL_ALL_LANGUAGES) \
    746  ,$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) man_vboximg-mount.xml man_VBoxHeadless.xml \
    747  ,$(evalcall2 def_vbox_refentry_to_dita,$(lang),$(file))))
     750        ,$(evalcall2 def_vbox_refentry_to_dita,$(lang)) \
     751        $(foreach file, $(basename $(VBOX_MANUAL_XML_REFENTRY_FILES) man_vboximg-mount man_VBoxHeadless) \
     752                ,$(evalcall2 def_vbox_refentry_file_to_dita,$(lang),$(file))))
     753
    748754
    749755
     
    763769 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html: \
    764770                $(VBOX_USER_MANUAL_DITA_STAGED_FILES_en_US) \
    765                 $(VBOX_PATH_MANUAL_OUTBASE)/dita_common
     771                $(VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES_en_US)
    766772        $(call MSG_L1,Building html chunks $@)
    767773        $(QUIET)$(RM) -Rf -- "$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita-ot-html-chunks/"
     
    770776                "/transtype:xhtml" \
    771777                "/outdir:$(@D)" \
    772                 "/tempdir:$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/temp_xhtml"
     778                "/tempdir:$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/temp_xhtml" "/debug"
    773779
    774780 # disable for now
     
    822828                $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \
    823829                $$(VBOX_USER_MANUAL_DITA_STAGED_FILES_$(lang)) \
    824                 $$(VBOX_PATH_MANUAL_OUTBASE)/dita_common
     830                $$(VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES_$(lang))
    825831        $$(QUIET)$(RM) -f -- "$$@"
    826832        $$(QUIET)$(RM) -Rf -- "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-pdf/"
     
    968974   $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/qhelp/UserManual.hhp: \
    969975                $(VBOX_USER_MANUAL_DITA_STAGED_FILES_$(1)) \
    970                 $(VBOX_PATH_MANUAL_OUTBASE)/dita_common
     976                $(VBOX_USER_MANUAL_CONVERTED_REFENTRY_DITA_FILES_$(1))
    971977        $$(QUIET)$(RM) -Rf -- "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-qhelp/"
    972978        $$(QUIET)$$(call VBOX_DITA_RUN_DOST,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-qhelp, -EHHCDIR="$$(@D)") \
  • trunk/doc/manual/build_id_to_file_mapping.py

    r99038 r99059  
    115115        else:
    116116            # Input files.
    117             asFiles = glob.glob(sArg);
     117            if sArg[0] == '@':
     118                with open(sArg[1:], 'r', encoding = 'utf-8') as oFile:
     119                    asFiles = oFile.read().split();
     120            else:
     121                asFiles = glob.glob(sArg);
    118122            if not asFiles:
    119123                return error('File not found: %s' % (sArg,));
Note: See TracChangeset for help on using the changeset viewer.

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