vbox的更動 64006 路徑 trunk/src/VBox/Installer
- 時間撮記:
- 2016-9-26 下午12:55:19 (8 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/Installer/win/Makefile.kmk
r63990 r64006 49 49 50 50 51 # 52 # Globals and targets. 51 52 # 53 # Globals. 54 # 55 VBOX_WIN_INST_MAKEFILE_DEP := $(MAKEFILE_CURRENT) 56 57 VBOX_PATH_WIN_INST_SRC := $(PATH_SUB_CURRENT) 58 VBOX_WIN_INST_OUT_DIR := $(PATH_TARGET)/Installer/win 59 53 60 # Note: en_US *must* come first for the dependency file generation. 54 #55 61 ifndef VBOX_INSTALLER_LANGUAGES 56 62 VBOX_INSTALLER_LANGUAGES = en_US de_DE fr_FR it_IT zh_TW 57 63 VBOX_INSTALLER_LANGUAGES += $(VBOX_INSTALLER_ADD_LANGUAGES) 58 64 endif 65 59 66 60 67 # … … 73 80 74 81 # 82 # Language IDs. 83 # 84 VBOX_BRAND_en_US_LANG_ID ?= 1033 85 VBOX_BRAND_de_DE_LANG_ID ?= 1031 86 VBOX_BRAND_fr_FR_LANG_ID ?= 1036 87 VBOX_BRAND_it_IT_LANG_ID ?= 1040 88 VBOX_BRAND_zh_TW_LANG_ID ?= 1028 89 90 # Standard language names (in the native language), to be extended as we go. 91 # VBOX_BRAND_$(lang)_LANG_NAME must be defined for each language which occurs 92 # in either VBOX_LICENSE_ADD_LANGUAGES or VBOX_MANUAL_ADD_LANGUAGES. 93 VBOX_BRAND_fr_FR_LANG_NAME := Français 94 95 96 # 75 97 # We don't have the license text in another language than English yet, 76 98 # so just define the branding targets to use the English one for now. … … 81 103 $(eval VBOX_BRAND_$(lang)_LICENSE_RTF := $(VBOX_BRAND_LICENSE_RTF))) 82 104 105 # 83 106 # Set the codepage for all languages to 1252, covers most cases. 107 # 84 108 $(foreach lang,$(sort $(VBOX_INSTALLER_LANGUAGES) $(VBOX_LICENSE_ADD_LANGUAGES) $(VBOX_MANUAL_ADD_LANGUAGES)), \ 85 109 $(eval VBOX_BRAND_$(lang)_LANGUAGE_CODEPAGE := 1252)) 86 87 # Some languages need another codepage than 1252. Override them here. 110 # Exceptions: 88 111 VBOX_BRAND_zh_TW_LANGUAGE_CODEPAGE := 950 89 112 90 # Standard language names (in the native language), to be extended as we go. 91 # VBOX_BRAND_$(lang)_LANG_NAME must be defined for each language which occurs 92 # in either # VBOX_LICENSE_ADD_LANGUAGES or VBOX_MANUAL_ADD_LANGUAGES. 93 VBOX_BRAND_fr_FR_LANG_NAME := Français 94 95 VBOX_PATH_WIN_INST_SRC := $(PATH_SUB_CURRENT) 96 VBOX_WIN_INST_OUT_DIR := $(PATH_TARGET)/Installer/win 113 97 114 98 115 # … … 136 153 BLDDIRS += \ 137 154 $(VBOX_WIN_INST_OUT_DIR) \ 155 $(foreach lang,$(VBOX_INSTALLER_LANGUAGES),$(VBOX_WIN_INST_OUT_DIR)/$(lang)/) \ 138 156 $(VBOX_WIN_INST_OUT_DIR)/NLS/ 139 157 … … 149 167 $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 150 168 $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ 151 $(VBOX_WIN_INST_OUT_DIR)/ NLS/$(lang).mst \152 $(VBOX_WIN_INST_OUT_DIR)/ VirtualBox_$(lang).wixobj\153 $(VBOX_WIN_INST_OUT_DIR)/ VirtualBox_$(lang).wixobj.dep\154 $(VBOX_WIN_INST_OUT_DIR)/$( PACKAGE_NAME_LANG)_$(lang).wixpdb\155 $(VBOX_WIN_INST_OUT_DIR)/$( PACKAGE_NAME_LANG)_$(lang).msi)\169 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst \ 170 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).wixpdb \ 171 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).msi \ 172 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \ 173 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj.dep )\ 156 174 $(VBOX_WIN_INST_OUT_DIR)/DirComponentsAndFiles_DTrace.wxi \ 157 175 $(VBOX_WIN_INST_OUT_DIR)/Files_Main.wxi \ 158 176 $(VBOX_WIN_INST_OUT_DIR)/Files_Doc.wxi \ 159 177 $(VBOX_WIN_INST_OUT_DIR)/Files_License.wxi \ 160 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi 178 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi \ 179 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi \ 161 180 162 181 ifdef VBOX_WITH_COMBINED_PACKAGE … … 250 269 # 251 270 define def_vbox_license_xml 252 $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl: $(license_file) $( MAKEFILE_CURRENT) | $$$$(dir $$$$@)271 $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl: $(license_file) $(VBOX_WIN_INST_MAKEFILE_DEP) | $$$$(dir $$$$@) 253 272 $$(call MSG_GENERATE,,$$@,$$<) 254 273 $(APPEND) -t $$@ '<?xml version="1.0" encoding="utf-8"?>' … … 277 296 # argument. The -t switch makes it truncate the file. 278 297 # 279 $(VBOX_WIN_INST_OUT_DIR)/Files_Main.wxi: $( MAKEFILE_CURRENT) | $$(dir $$@)298 $(VBOX_WIN_INST_OUT_DIR)/Files_Main.wxi: $(VBOX_WIN_INST_MAKEFILE_DEP) | $$(dir $$@) 280 299 $(call MSG_GENERATE,,$@,$<) 281 300 $(APPEND) -t $@ '<?xml version="1.0" ?>' … … 288 307 $(APPEND) $@ '</Include>' 289 308 290 $(VBOX_WIN_INST_OUT_DIR)/Files_Doc.wxi: $( MAKEFILE_CURRENT) | $$(dir $$@)309 $(VBOX_WIN_INST_OUT_DIR)/Files_Doc.wxi: $(VBOX_WIN_INST_MAKEFILE_DEP) | $$(dir $$@) 291 310 $(call MSG_GENERATE,,$@,$<) 292 311 $(APPEND) -t $@ '<?xml version="1.0" ?>' … … 301 320 $(APPEND) $@ '</Include>' 302 321 303 $(VBOX_WIN_INST_OUT_DIR)/Files_License.wxi: $( MAKEFILE_CURRENT) | $$(dir $$@)322 $(VBOX_WIN_INST_OUT_DIR)/Files_License.wxi: $(VBOX_WIN_INST_MAKEFILE_DEP) | $$(dir $$@) 304 323 $(call MSG_GENERATE,,$@,$<) 305 324 $(APPEND) -t $@ '<?xml version="1.0" ?>' … … 312 331 $(APPEND) $@ '</Include>' 313 332 314 $(VBOX_WIN_INST_OUT_DIR)/DirComponentsAndFiles_DTrace.wxi: $( MAKEFILE_CURRENT) $(PATH_SUB_CURRENT)/../Config.kmk | $$(dir $$@)333 $(VBOX_WIN_INST_OUT_DIR)/DirComponentsAndFiles_DTrace.wxi: $(VBOX_WIN_INST_MAKEFILE_DEP) $(PATH_SUB_CURRENT)/../Config.kmk | $$(dir $$@) 315 334 $(call MSG_GENERATE,,$@,$<) 316 335 $(QUIET)$(APPEND) -nt "$@" \ … … 352 371 353 372 354 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi: $( MAKEFILE_CURRENT) | $$(dir $$@)373 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi: $(VBOX_WIN_INST_MAKEFILE_DEP) | $$(dir $$@) 355 374 $(call MSG_GENERATE,,$@,$<) 356 375 $(APPEND) -t $@ '<?xml version="1.0" ?>' … … 382 401 383 402 # 384 # .MSI link (all languages). 403 # .MSI linking (all languages). 404 # 405 # Create per language MSIs. Only the en_US one will be used in full, the others 406 # will be diffed against and merged into it. 385 407 # 386 408 # Note: This will clean up any previous .msi and .wixpdb files to prevent dep … … 388 410 # 389 411 define def_vbox_link_msi 390 $(VBOX_WIN_INST_OUT_DIR)/$( PACKAGE_NAME_LANG)_$(lang).msi \412 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).msi \ 391 413 $(if-expr defined(VBOX_WITH_COMBINED_PACKAGE) && $(lang) == "en_US", + $(VBOX_WIN_INST_OUT_DIR)/common.cab,): \ 392 $(VBOX_WIN_INST_OUT_DIR)/ VirtualBox_$(lang).wixobj \414 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \ 393 415 $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 394 416 $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ 395 417 $(PATH_STAGE_BIN)/VBoxInstallHelper.dll \ 396 418 $(VBOX_SVN_REV_KMK) \ 397 $( MAKEFILE_CURRENT) \419 $(VBOX_WIN_INST_MAKEFILE_DEP) \ 398 420 $(if-expr defined(VBOX_WITH_MSI_HACK),$(MsiHack_0_OUTDIR)/MsiHack.dll,) \ 399 421 $(if-expr defined(VBOX_WITH_MSI_HACK),$(MsiHack_0_OUTDIR)/MsiHackExtension.dll,) \ 400 422 | $$$$(dir $$$$@) 401 423 $$(call MSG_L1,Linking installer $$@) 402 $(QUIET)$(RM) -f $$(wildcard $$(@D)/$(PACKAGE_BASE)-r*_$(lang).msi \ 403 $$(@D)/$(PACKAGE_BASE)-r*_$(lang).wixpdb $$(@D)/$(lang)/$(PACKAGE_BASE)-r*_$(lang).wixpdb) 404 $(QUIET)$(MKDIR) -p -- $$(@D)/$(lang)/ 405 kmk_time \ 406 $(VBOX_PATH_WIX)/light.exe -v -nologo \ 424 $(QUIET)$(RM) -f $$(wildcard $$(@D)/$(PACKAGE_BASE)-r*_$(lang).msi $$(@D)/$(PACKAGE_BASE)-r*_$(lang).wixpdb) 425 kmk_time $(VBOX_PATH_WIX)/light.exe -v -nologo \ 407 426 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 408 427 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ … … 411 430 $(if-expr defined(VBOX_WITH_MSI_HACK),-ext $(MsiHack_0_OUTDIR)/MsiHackExtension.dll,) \ 412 431 $(VBOX_MSI_ICE_IGNORE) \ 413 -out $$ (@D)/$(lang)/$$(@F)\432 -out $$@ \ 414 433 $$< \ 415 434 $(if-expr "$(KBUILD_TARGET_ARCH)" == "x86", \ 416 435 $(VBOX_PATH_WIX)/difxapp_x86.wixlib, \ 417 436 $(VBOX_PATH_WIX)/difxapp_x64.wixlib) 418 $(MV) -f -- $$(@D)/$(lang)/$$(@F) $$@419 437 ifdef VBOX_WITH_COMBINED_PACKAGE 420 438 ifeq ($(lang),en_US) 421 $(MV) -f -- $$(@D)/$(lang)/common.cab $$(@D)/common.cab 422 endif 423 endif 424 $(RM) -f -- $(VBOX_WIN_INST_OUT_DIR)/NLS/$(lang).mst \ 425 $$(@D)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).wixpdb \ 426 $$(@D)/$(lang)/common.cab 427 $(call VBOX_SIGN_FILE_FN,$$@,$(VBOX_PRODUCT) $(VBOX_VERSION_STRING)r$(VBOX_SVN_REV) ($(KBUILD_TARGET_ARCH)),,,disable-dual-signing) 439 $(MV) -f -- $$(@D)/common.cab $$(@D)/../common.cab 440 endif 441 endif 442 $(RM) -f -- $$(@D)/$(PACKAGE_NAME_LANG)_$(lang).wixpdb $$(@D)/common.cab 428 443 endef 429 444 … … 444 459 $(PATH_STAGE_BIN)/VBoxInstallHelper.dll \ 445 460 $(VBOX_SVN_REV_KMK) \ 446 $( MAKEFILE_CURRENT) \461 $(VBOX_WIN_INST_MAKEFILE_DEP) \ 447 462 | $$$$(dir $$$$@) 448 463 $$(call MSG_L1,Linking installer $$@) … … 500 515 # 501 516 define def_vbox_compile_wixobj 502 includedep $(VBOX_WIN_INST_OUT_DIR)/ VirtualBox_$(lang).wixobj.dep503 $(VBOX_WIN_INST_OUT_DIR)/ VirtualBox_$(lang).wixobj: \517 includedep $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj.dep 518 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj: \ 504 519 $(PATH_SUB_CURRENT)/VirtualBox.wxs \ 505 520 $(PATH_SUB_CURRENT)/UserInterface.wxi \ … … 704 719 # 705 720 include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk 706 $(VBOX_WIN_INST_OUT_DIR)/VBoxGuiNLS.wxi: $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk $( MAKEFILE_CURRENT) | $$(dir $$@)721 $(VBOX_WIN_INST_OUT_DIR)/VBoxGuiNLS.wxi: $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk $(VBOX_WIN_INST_MAKEFILE_DEP) | $$(dir $$@) 707 722 $(APPEND) -t $@ '<?xml version="1.0" ?>' 708 723 $(APPEND) $@ '<Include>' … … 722 737 # 723 738 # Build the multi-language version of the .MSI installer (final installer). 739 # 724 740 # This is done by creating binary .MST diffs of all the language-specific installers 725 # and then merging the diffs into the existing .MSI using tools from the MS Installer SDK. 726 # 727 # .MSI link (all languages). 728 # 729 # Note: Prereqs of the special .NOTPARALLEL target will be executed with parallel 730 # make jobs temporarily disabled. This is a hack to work around what seems 731 # to be a problem with the sharing mode set by one or more of the three 732 # programs / scripts involved in this step. 741 # against the en_US one, and then merging the diffs into the en_US one using tools 742 # from the MS Installer SDK. 733 743 # 734 744 define def_vbox_create_mst 735 .NOTPARALLEL: $(VBOX_WIN_INST_OUT_DIR)/NLS/$(lang).mst 736 $(VBOX_WIN_INST_OUT_DIR)/NLS/$(lang).mst: \ 737 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_en_US.msi \ 738 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_$(lang).msi \ 739 | $$$$(dir $$$$@) 740 $(call MSG_L1,Integrating language ($(lang))) 741 $(REDIRECT) -C $$(@D) -- $(VBOX_PATH_MSITRAN) -g $$< $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_$(lang).msi $(lang).mst 742 $(REDIRECT) -C $$(@D) -- $(VBOX_PATH_MSIDB) -d $$< -r $(lang).mst 743 $(REDIRECT) -C $$(@D) -- wscript.exe $(VBOX_PATH_WISUBSTG) $$< $(lang).mst $(lang_id) 745 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst: \ 746 $(VBOX_WIN_INST_OUT_DIR)/en_US/$(PACKAGE_NAME_LANG)_en_US.msi \ 747 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).msi 748 $(call MSG_L1,Creating language diff ($(lang))) 749 $(REDIRECT) -C $$(@D) -- $(VBOX_PATH_MSITRAN) -g $$< $(PACKAGE_NAME_LANG)_$(lang).msi $(lang).mst 750 744 751 endef 745 752 746 # TODO, FIXME, XXX, BUGBUG 747 # @todo r=bird: This should probably be $(foreach lang,$(filter-out en_US, $(VBOX_INSTALLER_LANGUAGES)),... 748 # Otherwise, was the point of building none en_US installers 749 # for languages not in VBOX_INSTALLER_ADD_LANGUAGES?!? 750 $(foreach lang,$(VBOX_INSTALLER_ADD_LANGUAGES), \ 753 $(foreach lang,$(filter-out en_US, $(VBOX_INSTALLER_LANGUAGES)), \ 751 754 $(eval local lang_id := $(VBOX_BRAND_$(lang)_LANG_ID)) \ 752 755 $(eval $(def_vbox_create_mst))) 753 756 754 # 755 # Create all xxx_<Lang>.msi installers and prepare the final xxx_MultiLang.msi installer. 756 # 757 ## @todo this rule must not modify $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_en_US.msi but a copy of it. def_vbox_compile_wixobj is 758 # where en_US.msi is created, it shouldn't be changed after that (if possible). Also, document the path length issue. 757 758 # Create WISUMINFO argument. 759 759 VBOX_INS_PROD_ARCH.amd64 = x64 760 760 VBOX_INS_PROD_ARCH.x86 = Intel … … 762 762 $(if $(VBOX_INS_PROD_ARCH),,$(error VBOX_INS_PROD_ARCH is empty!)) 763 763 VBOX_INS_PROD_LANG := 7="$(VBOX_INS_PROD_ARCH);1033 764 $(foreach lang, $(VBOX_INSTALLER_ADD_LANGUAGES), $(eval VBOX_INS_PROD_LANG := $(VBOX_INS_PROD_LANG)$(COMMA)$(VBOX_BRAND_$(lang)_LANG_ID))) 764 $(foreach lang, $(filter-out en_US,$(VBOX_INSTALLER_LANGUAGES))\ 765 , $(eval VBOX_INS_PROD_LANG := $(VBOX_INS_PROD_LANG)$(COMMA)$(VBOX_BRAND_$(lang)_LANG_ID))) 765 766 VBOX_INS_PROD_LANG := $(VBOX_INS_PROD_LANG)" 766 767 767 $(PACKAGE_NAME_FINAL): \ 768 $(VBOX_WIN_INST_OUT_DIR)/Files_Main.wxi \ 769 $(VBOX_WIN_INST_OUT_DIR)/Files_Doc.wxi \ 770 $(VBOX_WIN_INST_OUT_DIR)/Files_License.wxi \ 771 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi \ 772 $(foreach lang,$(VBOX_INSTALLER_LANGUAGES), $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_$(lang).msi) \ 773 $(foreach lang,$(VBOX_INSTALLER_ADD_LANGUAGES), $(VBOX_WIN_INST_OUT_DIR)/NLS/$(lang).mst) \ 774 $(VBOX_SVN_REV_KMK) \ 775 | $$(dir $$@) 776 $(QUIET)$(RM) -f $(wildcard $(PATH_STAGE_BIN)/$(PACKAGE_BASE)-r*.msi) 777 $(REDIRECT) -C $(@D) -- \ 778 wscript.exe $(VBOX_PATH_WISUMINFO) $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_en_US.msi $(VBOX_INS_PROD_LANG) 779 $(CP) -f $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_en_US.msi $@ 780 $(call VBOX_SIGN_FILE_FN,$@,$(VBOX_PRODUCT) $(VBOX_VERSION_STRING)r$(VBOX_SVN_REV),,,disable-dual-signing) 768 # The multilingual installer rule. 769 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi: \ 770 $(VBOX_WIN_INST_OUT_DIR)/en_US/$(PACKAGE_NAME_LANG)_en_US.msi \ 771 $(foreach lang,$(filter-out en_US,$(VBOX_INSTALLER_LANGUAGES)),$(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst) 772 $(call MSG_L1,Creating final multilingual MSI) 773 $(QUIET)$(RM) -f $(wildcard $(@D)/$(PACKAGE_BASE)-r*.msi) 774 $(CP) -f -- "$<" "$@" 775 776 $(foreach lang,$(filter-out en_US,$(VBOX_INSTALLER_LANGUAGES)), \ 777 $(NLTAB)$(REDIRECT) -C $(@D)/$(lang) -- $(VBOX_PATH_MSIDB) -d $@ -r $(lang).mst \ 778 $(NLTAB)$(REDIRECT) -C $(@D)/$(lang) -- cscript.exe /nologo $(VBOX_PATH_WISUBSTG) $@ $(lang).mst $(VBOX_BRAND_$(lang)_LANG_ID) ) 779 780 $(REDIRECT) -C $(@D) -- cscript.exe /nologo $(VBOX_PATH_WISUBSTG) $(@F) 781 $(REDIRECT) -C $(@D) -- cscript.exe /nologo $(VBOX_PATH_WISUMINFO) $@ $(VBOX_INS_PROD_LANG) 782 $(call VBOX_SIGN_FILE_FN,$@,$(VBOX_PRODUCT) $(VBOX_VERSION_STRING)r$(VBOX_SVN_REV) ($(KBUILD_TARGET_ARCH)),,,disable-dual-signing) 783 784 # Copy multilingual installer to bin. 785 $(PACKAGE_NAME_FINAL): $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi 786 $(QUIET)$(RM) -f $(wildcard $(@D)/$(PACKAGE_BASE)-r*.msi) 787 $(INSTALL_STAGING) -- $< $@ 781 788 782 789
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器