VirtualBox

Changeset 71926 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Apr 19, 2018 11:19:27 PM (7 years ago)
Author:
vboxsync
Message:

installer/win/Makefile.kmk,/Config.kmk: Prepwork for repackaging a release. bugref:8691

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/win/Makefile.kmk

    r70729 r71926  
    5050VBOX_CAB_COMPRESSION_LEVEL := high
    5151
    52 VBOX_PATH_WIN_INST_SRC := $(PATH_SUB_CURRENT)
    53 VBOX_WIN_INST_OUT_DIR  := $(PATH_TARGET)/Installer/win
     52VBOX_PATH_WIN_INST_SRC     := $(PATH_SUB_CURRENT)
     53VBOX_WIN_INST_OUT_DIR      := $(PATH_TARGET)/Installer/win
     54VBOX_WIN_INST_REPACK_DIR   := $(PATH_OUT)/repack
    5455
    5556# Note: en_US *must* come first for the dependency file generation.
    5657ifndef VBOX_INSTALLER_LANGUAGES
    57  VBOX_INSTALLER_LANGUAGES  = en_US de_DE fr_FR it_IT zh_TW
    58  VBOX_INSTALLER_LANGUAGES += $(VBOX_INSTALLER_ADD_LANGUAGES)
     58 VBOX_INSTALLER_LANGUAGES   = en_US de_DE fr_FR it_IT zh_TW
     59 VBOX_INSTALLER_LANGUAGES  += $(VBOX_INSTALLER_ADD_LANGUAGES)
    5960endif
    6061
     
    148149BLDDIRS += \
    149150        $(VBOX_WIN_INST_OUT_DIR) \
     151        $(VBOX_WIN_INST_REPACK_DIR)/ \
    150152        $(foreach lang,$(VBOX_INSTALLER_LANGUAGES),$(VBOX_WIN_INST_OUT_DIR)/$(lang)/) \
    151153        $(VBOX_WIN_INST_OUT_DIR)/NLS/
     
    153155OTHER_CLEAN += \
    154156        $(VBOX_WIN_INST_OUT_DIR)/VirtualBox.wixobj \
     157        $(VBOX_WIN_INST_OUT_DIR)/VirtualBox.wix \
     158        $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox.wix \
    155159        $(VBOX_WIN_INST_OUT_DIR)/VirtualBox.wixobj.dep \
    156160        $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib.wxi \
     
    166170                $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).wixpdb \
    167171                $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).msi \
     172                $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix \
    168173                $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \
    169174                $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj.dep )\
     175                $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix \
    170176        $(VBOX_WIN_INST_OUT_DIR)/DirComponentsAndFiles_DTrace.wxi \
    171177        $(VBOX_WIN_INST_OUT_DIR)/Files_Main.wxi \
     
    174180        $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi \
    175181        $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi \
     182        $(VBOX_WIN_INST_REPACK_DIR)/3-multilingual-$(PACKAGE_NAME_LANG).cmd
    176183
    177184ifdef VBOX_WITH_COMBINED_PACKAGE
     
    179186  OTHER_CLEAN += \
    180187        $(PATH_STAGE_BIN)/$(PACKAGE_NAME_MULTIARCH_FINAL) \
     188        $(VBOX_WIN_INST_REPACK_DIR)/4-multiarch-$(@F).cmd \
    181189        $(PATH_MULTIARCH_TEMP)/$(PACKAGE_NAME_MULTIARCH.x86)
    182190 endif
     
    197205                $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).msm \
    198206                $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj \
    199                 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixpdb))
     207                $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixpdb \
     208                $(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix))
    200209endif
    201210
     
    276285        $(APPEND) $@ '<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">'
    277286ifdef VBOX_WITH_DOCS_PACKING
    278         $(APPEND) $@ '  <File Id="file_VirtualBox.chm" Name="VirtualBox.chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_STAGE_BIN)/VirtualBox.chm"></File>'
     287        $(APPEND) $@ '  <File Id="file_VirtualBox.chm" Name="VirtualBox.chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(subst /,\,$(PATH_STAGE_BIN)/VirtualBox.chm)"></File>'
    279288        $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \
    280                      '  <File Id="file_VirtualBox_$(lang).chm" Name="VirtualBox_$(lang).chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_STAGE_BIN)/VirtualBox_$(lang).chm"></File>')
     289                     '  <File Id="file_VirtualBox_$(lang).chm" Name="VirtualBox_$(lang).chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(subst /,\,$(PATH_STAGE_BIN)/VirtualBox_$(lang).chm)"></File>')
    281290endif
    282291        $(APPEND) $@ '</Include>'
     
    287296        $(APPEND) $@ '<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">'
    288297ifdef VBOX_WITH_DOCS_PACKING
    289         $(APPEND) $@ '  <File Id="file_UserManual.pdf" Name="UserManual.pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_STAGE_BIN)/UserManual.pdf">'
     298        $(APPEND) $@ '  <File Id="file_UserManual.pdf" Name="UserManual.pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(subst /,\,$(PATH_STAGE_BIN)/UserManual.pdf)">'
    290299        $(APPEND) $@ '  </File>'
    291300        $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \
    292                      '  <File Id="file_UserManual_$(lang).pdf" Name="UserManual_$(lang).pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_STAGE_BIN)/UserManual_$(lang).pdf">' \
     301                     '  <File Id="file_UserManual_$(lang).pdf" Name="UserManual_$(lang).pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(subst /,\,$(PATH_STAGE_BIN)/UserManual_$(lang).pdf)">' \
    293302                     '  </File>')
    294303endif
     
    299308        $(APPEND) -t $@ '<?xml version="1.0" ?>'
    300309        $(APPEND) $@ '<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">'
    301         $(APPEND) $@ '  <File Id="file_License_en_US.rtf" Name="License_en_US.rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(VBOX_BRAND_LICENSE_RTF)">' \
     310        $(APPEND) $@ '  <File Id="file_License_en_US.rtf" Name="License_en_US.rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(subst /,\,$(VBOX_BRAND_LICENSE_RTF))">' \
    302311                     '  </File>'
    303312        $(APPEND) -n $@ $(foreach lang,$(VBOX_LICENSE_ADD_LANGUAGES), \
    304                      '  <File Id="file_License_$(lang).rtf" Name="License_$(lang).rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(VBOX_BRAND_$(lang)_LICENSE_RTF)">' \
     313                     '  <File Id="file_License_$(lang).rtf" Name="License_$(lang).rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(subst /,\,$(VBOX_BRAND_$(lang)_LICENSE_RTF))">' \
    305314                     '  </File>')
    306315        $(APPEND) $@ '</Include>'
     
    319328                $(foreach file, $(VBOXINST_DTRACE_LIB_ARCH_FILES) \
    320329                        , '        <File Id="file_dtrace_lib_arch_$(subst -,_,$(file))" Name="$(file)" Vital="yes" ' \
    321                           '              Source="$(PATH_STAGE_BIN)/dtrace/lib/$(KBUILD_TARGET_ARCH)/$(file)" />' ) \
     330                          '              Source="$(subst /,\,$(PATH_STAGE_BIN)/dtrace/lib/$(KBUILD_TARGET_ARCH)/$(file))" />' ) \
    322331                '      </Component>' \
    323332                '    </Directory>' \
     
    329338                $(foreach file, $(VBOXINST_DTRACE_TESTCASE_ARCH_FILES) \
    330339                        , '        <File Id="file_dtrace_testcase_arch_$(subst -,_,$(file))" Name="$(file)" Vital="yes" ' \
    331                           '              Source="$(PATH_STAGE_BIN)/dtrace/testcase/$(KBUILD_TARGET_ARCH)/$(file)" />' ) \
     340                          '              Source="$(subst /,\,$(PATH_STAGE_BIN)/dtrace/testcase/$(KBUILD_TARGET_ARCH)/$(file))" />' ) \
    332341                '      </Component>' \
    333342                '    </Directory>' \
     
    338347                $(foreach file, $(VBOXINST_DTRACE_SCRIPTS_FILES) \
    339348                        , '      <File Id="file_dtrace_scripts_$(subst -,_,$(file))" Name="$(file)" Vital="yes" ' \
    340                           '            Source="$(PATH_STAGE_BIN)/dtrace/scripts/$(file)" />' ) \
     349                          '            Source="$(subst /,\,$(PATH_STAGE_BIN)/dtrace/scripts/$(file))" />' ) \
    341350                '    </Component>' \
    342351                '  </Directory>') \
     
    394403                | $$$$(dir $$$$@)
    395404        $$(call MSG_L1,Linking installer $$@)
    396         $(QUIET)$(RM) -f $$(wildcard $$(@D)/$(PACKAGE_BASE)-r*_$(lang).msi $$(@D)/$(PACKAGE_BASE)-r*_$(lang).wixpdb)
     405        $(QUIET)$(RM) -f $$(wildcard $$(subst r$$(VBOX_SVN_REV),r*,\
     406                $$@ \
     407                $$(basename $$@).wixpdb \
     408                $$(VBOX_WIN_INST_REPACK_DIR)/2-link-$$(PACKAGE_NAME_LANG).cmd ))
    397409        kmk_time $(VBOX_PATH_WIX)/light.exe -v -nologo \
    398410                -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \
     
    407419if defined(VBOX_WITH_COMBINED_PACKAGE) && !defined(VBOX_WITH_MSM_INSTALL)
    408420        $(MV) -f -- $$(@D)/common.cab $$(@D)/../common.cab
     421endif
     422ifeq ($(lang),en_US)
     423        $(CP) -f -- "$(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl" "$(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl" \
     424        "$(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/"
     425        $(APPEND) -tn "$$(VBOX_WIN_INST_REPACK_DIR)/2-link-$$(PACKAGE_NAME_LANG).cmd" \
     426        'if ".%KBUILD_DEVTOOLS%" == "." echo KBUILD_DEVTOOLS is not set' \
     427                $(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%,\
     428                '$(VBOX_PATH_WIX)/light.exe -v -nologo ^' \
     429                '  -loc files-VirtualBox_$(lang)/Language_$(lang).wxl ^' \
     430                '  -loc files-VirtualBox_$(lang)/License_$(lang).wxl ^' \
     431                '  -ext $(VBOX_PATH_WIX)/WixUIExtension.dll ^' \
     432                '  -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll ^' \
     433               $(if-expr defined(VBOX_WITH_MSI_HACK),'-ext $(MsiHack_0_OUTDIR)/MsiHackExtension.dll ^',) \
     434                '  $(VBOX_MSI_ICE_IGNORE) ^' \
     435                '  -out $$(@F) ^' \
     436                '  $$(<F) ^' \
     437                '  $(VBOX_PATH_WIX)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib ^' \
     438               '  || exit /b1' \
     439               ) \
     440               '@echo Created MSI installer: $$(@F)' \
     441                $(if-expr defined(VBOX_WITH_COMBINED_PACKAGE) && !defined(VBOX_WITH_MSM_INSTALL),'@echo Created: common.cab',)
     442
     443$(eval OTHER_CLEAN += $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/Language_$(lang).wxl \
     444        $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/License_$(lang).wxl \
     445        $(VBOX_WIN_INST_REPACK_DIR)/2-link-$(PACKAGE_NAME_LANG).cmd )
    409446endif
    410447endef
     
    440477        $(RM) -f $(VBOX_WIN_INST_OUT_DIR)/NLS/$(lang).mst
    441478        $(call VBOX_SIGN_FILE_FN,$$@,$(VBOX_PRODUCT) $(VBOX_VERSION_STRING)r$(VBOX_SVN_REV) ($(KBUILD_TARGET_ARCH)),,,disable-dual-signing)
     479## @todo repack script and files
    442480endef
    443481
     
    479517#
    480518# MSI compile.
     519# We've separated the processing from the compilation for repacking reasons.
    481520#
    482521define def_vbox_compile_wixobj
    483522includedep $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj.dep
    484 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj: \
     523$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \
     524+ $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix \
     525$(if-expr "$(lang)" != "en_US",, \
     526+ $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files ): \
    485527                        $(PATH_SUB_CURRENT)/VirtualBox.wxs \
    486528                        $(PATH_SUB_CURRENT)/UserInterface.wxi \
     
    496538                                $(VBOX_MSI_DEPENDENCIES)) \
    497539                        $(VBOX_VERSION_STAMP) \
    498                         | $$$$(dir $$$$@)
    499         $(QUIET)$(RM) -f $@
     540                        | $$$$(dir $$$$@) $(if-expr "$(lang)" != "en_US",, \
     541                        $(VBOX_WIN_INST_REPACK_DIR)/ $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/ )
     542        $(QUIET)$(RM) -f -- $@  "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix" "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix"
    500543        $(REDIRECT) \
    501544                -E 'PATH_OUT=$(subst /,\,$(PATH_OUT))' \
     
    561604                        -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \
    562605                        -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \
    563                         -out $$@
    564 # Generate wxi dependencies based on the sourceLineNumber references in the output.
     606                        -p$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix
     607        $(VBOX_PATH_WIX)/candle.exe $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix \
     608                -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \
     609                -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \
     610                -out $$@
     611 ifeq ($(lang),en_US)
     612# Copy preprocessed wix and change source paths to be relative.  Stuff not in ../bin needs copying.
     613        $(SED)  -e 's,$(subst /,\\,$(PATH_OUT))\\bin,..\\bin,g' \
     614                -e 's,$(subst /,\\,$(PATH_OUT_BASE))\\win.amd64\\$(KBUILD_TYPE)\\bin,..\\..\\..\\win.amd64\\$(KBUILD_TYPE)\\bin,g' \
     615                -e 's,$(subst /,\\,$(PATH_OUT_BASE))\\win.x86\\$(KBUILD_TYPE)\\bin,..\\..\\..\\win.x86\\$(KBUILD_TYPE)\\bin,g' \
     616               \
     617                -e 's,$(subst /,\\,$(PATH_ROOT))\\doc\\,files-VirtualBox_$(lang)\\,g' \
     618                -e 's,$(subst /,\\,$(VBOX_PATH_WIN_INST_SRC))\\Binary\\,files-VirtualBox_$(lang)\\,g' \
     619                -e 's,$(subst /,\\,$(dir $(VBOX_WINDOWS_ICON_FILE))),files-VirtualBox_$(lang)\\,g' \
     620                --output "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix" \
     621                "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix"
     622        $(SED)  -n \
     623                -e '/<\?ln /d' \
     624                -e '/$(subst /,\\,$(PATH_ROOT))/p' \
     625                -e '/$(subst /,\\,$(PATH_ROOT))/q2' \
     626                "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix"
     627        $(SED)  -n \
     628                -e '/<\?ln /d' \
     629                -e 's/\\/\//g' \
     630                -e 's,^.*"\($(PATH_ROOT)/doc/[^"]*\)".*$$(DOLLAR),\1,p' \
     631                -e 's,^.*"\($(VBOX_PATH_WIN_INST_SRC)/Binary/[^"]*\)".*$$(DOLLAR),\1,p' \
     632                -e 's,^.*"\($(dir $(VBOX_WINDOWS_ICON_FILE))[^"]*\)".*$$(DOLLAR),\1,p' \
     633               --output "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files" \
     634                "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix"
     635        set -xe && for file in  `$(CAT_EXT) "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files"`; \
     636                do $(CP_EXT) -f -- "$$(DOLLAR){file}" "$(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/"; done
     637# Create repack script for this step.
     638        $(APPEND) -tn "$(VBOX_WIN_INST_REPACK_DIR)/1-compile-VirtualBox_$(lang).cmd" \
     639        'if ".%KBUILD_DEVTOOLS%" == "." echo KBUILD_DEVTOOLS is not set' \
     640                $(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%,\
     641                '$(VBOX_PATH_WIX)/candle.exe VirtualBox_$(lang).wix ^' \
     642                '  -ext $(VBOX_PATH_WIX)/WixUIExtension.dll ^' \
     643                '  -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll ^' \
     644                '  -out $$(@F) || exit /b1' \
     645               ) \
     646               '@echo Created: $$(@F)'
     647 endif
     648# Generate wxi dependencies based on the sourceLineNumber references in the output.  Add repack file list for cleanup.
    565649        $(QUIET)$(APPEND) -t '[email protected]' '$$@: \'
    566650        $(QUIET)$(VBOX_XSLTPROC) $(VBOX_PATH_WIN_INST_SRC)/dep.xsl "$$@" >> "[email protected]"
    567651        $(QUIET)$(VBOX_XSLTPROC) $(VBOX_PATH_WIN_INST_SRC)/dep2.xsl "$$@" | sort  | $(SED) '$!N; /^\(.*\)\n\1$$$$/!P; D' >> "[email protected]"
    568652        $(QUIET)$(APPEND) -n '[email protected]' '' ''
     653 ifeq ($(lang),en_US)
     654        $(QUIET)$(APPEND) -n '[email protected]' 'define VBOX_REPACK_FILES_VirtualBox_$(lang)'
     655        $(QUIET)$(CAT_EXT) "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files" >> '[email protected]'
     656        $(QUIET)$(APPEND) -n '[email protected]' '' 'endef'
     657 endif
     658
     659$(eval BLDDIRS += $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/)
     660$(eval OTHER_CLEAN += $(VBOX_REPACK_FILES_VirtualBox_$(lang)) $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files)
    569661endef
    570662
     
    577669define def_vbox_compile_msm
    578670includedep $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj
    579 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj: \
     671$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj \
     672+ $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix \
     673$(if-expr "$(lang)" != "en_US",, \
     674+ $(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix): \
    580675                $(PATH_SUB_CURRENT)/VBoxMerge$(module).wxs \
    581676                $(PATH_SUB_CURRENT)/VBoxMerge$(module).wxi \
     
    591686                $(VBOX_MSI_DEPENDENCIES) \
    592687                $(VBOX_VERSION_STAMP) \
    593                 | $$$$(dir $$$$@)
    594         $(QUIET)$(RM) -f $@
     688                | $$$$(dir $$$$@) $(VBOX_WIN_INST_REPACK_DIR)/
     689        $(QUIET)$(RM) -f -- "$@" "$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix" "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix"
    595690        $(REDIRECT) \
    596691                -E 'PATH_OUT=$(subst /,\,$(PATH_OUT))' \
     
    653748                        -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \
    654749                        -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \
    655                         -out $$@
     750                        -p$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix
     751        $(VBOX_PATH_WIX)/candle.exe $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix \
     752                -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \
     753                -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \
     754                -out $$@
     755 ifeq ($(lang),en_US)
     756        $(SED)  -e 's,$(subst /,\\,$(PATH_OUT))\\bin,..\\bin,g' \
     757                -e 's,$(subst /,\\,$(PATH_ROOT))\\doc\\,files-VirtualBox_$(lang)\\,g' \
     758                -e 's,$(subst /,\\,$(VBOX_PATH_WIN_INST_SRC))\\Binary\\,files-VirtualBox_$(lang)\\,g' \
     759                -e 's,$(subst /,\\,$(dir $(VBOX_WINDOWS_ICON_FILE))),files-VirtualBox_$(lang)\\,g' \
     760                --output "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix" \
     761                "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VBoxMerge$(module)_$(lang).wix"
     762        $(SED)  -n \
     763                -e '/<\?ln /d' \
     764                -e '/$(subst /,\\,$(PATH_ROOT))/p' \
     765                -e '/$(subst /,\\,$(PATH_ROOT))/q2' \
     766                "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix"
     767        $(SED)  -n \
     768                -e '/<\?ln /d' \
     769                -e 's/\\/\//g' \
     770                -e 's,^.*"\($(PATH_ROOT)/doc/[^"]*\)".*$$(DOLLAR),\1,p' \
     771                -e 's,^.*"\($(VBOX_PATH_WIN_INST_SRC)/Binary/[^"]*\)".*$$(DOLLAR),\1,p' \
     772                -e 's,^.*"\($(dir $(VBOX_WINDOWS_ICON_FILE))[^"]*\)".*$$(DOLLAR),\1,p' \
     773               --output "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).files" \
     774                "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VBoxMerge$(module)_$(lang).wix"
     775        $(MKDIR) -p -- "$(VBOX_WIN_INST_REPACK_DIR)/files-VBoxMerge$(module)_$(lang)/"
     776        set -xe && for file in  `$(CAT_EXT) "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).files"`; \
     777                do $(CP_EXT) -f -- "$$(DOLLAR){file}" "$(VBOX_WIN_INST_REPACK_DIR)/files-VBoxMerge$(module)_$(lang)/"; done
     778## @todo repack script
     779 endif
    656780# Generate wxi dependencies based on the sourceLineNumber references in the output.
    657781        $(QUIET)$(APPEND) -t '[email protected]' '$$@: \'
     
    738862#
    739863define def_vbox_create_mst
    740 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst: \
     864$(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst \
     865+ $(VBOX_WIN_INST_REPACK_DIR)/$(lang).mst: \
    741866                $(VBOX_WIN_INST_OUT_DIR)/en_US/$(PACKAGE_NAME_LANG)_en_US.msi \
    742867                $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \
     
    748873                $(if-expr defined(VBOX_WITH_MSI_HACK),$(MsiHack_0_OUTDIR)/MsiHack.dll,) \
    749874                $(if-expr defined(VBOX_WITH_MSI_HACK),$(MsiHack_0_OUTDIR)/MsiHackExtension.dll,) \
    750                 | $$$$(dir $$$$@)
     875                | $$$$(dir $$$$@) $(VBOX_WIN_INST_REPACK_DIR)/
    751876        $(call MSG_L1,Creating language diff for $(lang))
    752877        kmk_time $(VBOX_PATH_WIX)/light.exe -v -nologo \
     
    761886                $(VBOX_PATH_WIX)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib
    762887        $(REDIRECT) -C $$(@D) -- $(VBOX_PATH_MSITRAN) -g $$< $(PACKAGE_NAME_LANG)_$(lang).msi $(lang).mst
     888        $(CP) -f -- "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst" "$(VBOX_WIN_INST_REPACK_DIR)/$(lang).mst"
    763889        $(RM) -f -- $$(@D)/$(PACKAGE_NAME_LANG)_$(lang).msi \
    764890                $$(@D)/$(PACKAGE_NAME_LANG)_$(lang).wixpdb \
     
    783909
    784910# The multilingual installer rule.
    785 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi: \
     911$(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi \
     912+ $(VBOX_WIN_INST_REPACK_DIR)/3-multilingual-$(PACKAGE_NAME_LANG).cmd: \
    786913                $(VBOX_WIN_INST_OUT_DIR)/en_US/$(PACKAGE_NAME_LANG)_en_US.msi \
    787914                $(foreach lang,$(filter-out en_US,$(VBOX_INSTALLER_LANGUAGES)),$(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst)
    788915        $(call MSG_L1,Creating final multilingual MSI)
    789         $(QUIET)$(RM) -f $(wildcard $(@D)/$(PACKAGE_BASE)-r*.msi)
     916        $(QUIET)$(RM) -f -- \
     917                $(wildcard $(@D)/$(PACKAGE_BASE)-r*.msi $(VBOX_WIN_INST_REPACK_DIR)/3-multilingual-$(PACKAGE_BASE)-r*.cmd )
    790918        $(CP) -f -- "$<" "$@"
    791919
     
    797925        $(REDIRECT) -C $(@D) -- cscript.exe /nologo $(VBOX_PATH_WISUMINFO) $@ $(VBOX_INS_PROD_LANG)
    798926        $(call VBOX_SIGN_FILE_FN,$@,$(VBOX_PRODUCT) $(VBOX_VERSION_STRING)r$(VBOX_SVN_REV) ($(KBUILD_TARGET_ARCH)),,,disable-dual-signing)
     927
     928# Create repack script for this step.
     929        $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/3-multilingual-$(PACKAGE_NAME_LANG).cmd" \
     930                'if ".%KBUILD_DEVTOOLS%" == "." echo KBUILD_DEVTOOLS is not set' \
     931                'if ".%KBUILD_BIN_PATH%" == "." echo KBUILD_BIN_PATH is not set' \
     932                'copy /y  "$(<F)" "$(@F)" || exit /b1' \
     933                $(subst $(KBUILD_BIN_PATH),%KBUILD_BIN_PATH%,$(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%,\
     934                $(foreach lang,$(filter-out en_US,$(VBOX_INSTALLER_LANGUAGES)), \
     935                        '$(VBOX_PATH_MSIDB) -d $(@F) -r $(lang).mst || exit /b1' \
     936                        'cscript.exe /nologo $(VBOX_PATH_WISUBSTG) $(@F) $(lang).mst $(VBOX_BRAND_$(lang)_LANG_ID) || exit /b1') \
     937                'cscript.exe /nologo $(VBOX_PATH_WISUBSTG) $(@F) || exit /b1' \
     938                'cscript.exe /nologo $(VBOX_PATH_WISUMINFO) $(@F) $(VBOX_INS_PROD_LANG) || exit /b1' \
     939                '( $(call VBOX_SIGN_FILE_FN,$(@F),$(VBOX_PRODUCT) $(VBOX_VERSION_STRING)r$(VBOX_SVN_REV) ($(KBUILD_TARGET_ARCH)),,,disable-dual-signing,&&) ) || exit /b1' \
     940                ) ) \
     941               'copy /y "$(@F)" "$(notdir $(PACKAGE_NAME_FINAL))" || exit /b1' \
     942                '@echo Create multilanguage MSI: $(@F)'
     943
    799944
    800945# Copy multilingual installer to bin.
     
    811956# need to do this once; so do it on x86 only.
    812957#
    813 $(PATH_STAGE_BIN)/$(PACKAGE_NAME_MULTIARCH_FINAL): \
     958$(PATH_STAGE_BIN)/$(PACKAGE_NAME_MULTIARCH_FINAL) \
     959+ $(VBOX_WIN_INST_REPACK_DIR)/4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd: \
    814960                $(PATH_MULTIARCH_TEMP)/$(PACKAGE_NAME_MULTIARCH.x86) \
    815961                $(PATH_MULTIARCH_TEMP)/$(PACKAGE_NAME_MULTIARCH.amd64) \
     
    817963                $$(VBoxStubBld_1_TARGET)
    818964        $(call MSG_L1,Building Windows combined package)
     965        $(QUIET)$(RM) -f -- $(wildcard $(subst r$(VBOX_SVN_REV),r*, \
     966                $@ \
     967                $(VBOX_WIN_INST_REPACK_DIR)/4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd ))
    819968        $(if-expr defined(VBOX_WITH_MSM_INSTALL),,$(call VBOX_SIGN_FILE_FN,$(PACKAGE_NAME_MULTIARCH_COMMONCAB)))
    820969        $(REDIRECT) -C $(@D) -- \
     
    826975        $(VBOX_VCC_EDITBIN) /IntegrityCheck:NO $@
    827976        $(call VBOX_SIGN_FILE_FN,$@)
     977# Create repack script for this step.
     978        $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/4-multiarch-$(@F).cmd" \
     979                'if ".%KBUILD_DEVTOOLS%" == "." echo KBUILD_DEVTOOLS is not set' \
     980                'if ".%KBUILD_BIN_PATH%" == "." echo KBUILD_BIN_PATH is not set' \
     981                $(subst $(KBUILD_BIN_PATH),%KBUILD_BIN_PATH%,$(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%, \
     982                $(if-expr defined(VBOX_WITH_MSM_INSTALL), \
     983                ,'( $(call VBOX_SIGN_FILE_FN,../../../win.amd64/$(KBUILD_TYPE)/repack/$(notdir $(PACKAGE_NAME_MULTIARCH_COMMONCAB)),,,,,&&) ) || exit /b1') \
     984                '..\bin\VBoxStubBld.exe ^' \
     985                '  -out $(@F) ^' \
     986                '  -target-x86 $(PACKAGE_NAME_MULTIARCH.x86) ^' \
     987                '  -target-amd64 ../../../win.amd64/$(KBUILD_TYPE)/repack/$(PACKAGE_NAME_MULTIARCH.amd64) ^' \
     988                $(if-expr defined(VBOX_WITH_MSM_INSTALL),\
     989                ,'  -target-all ../../../win.amd64/$(KBUILD_TYPE)/repack/$(notdir $(PACKAGE_NAME_MULTIARCH_COMMONCAB)) ^' ) \
     990                '  -stub ../bin/VBoxStub.exe || exit /b1' \
     991                '$(VBOX_VCC_EDITBIN) /IntegrityCheck:NO $(@F) || exit /b1' \
     992                '( $(call VBOX_SIGN_FILE_FN,$(@F),,,,,&&) ) || exit /b1' \
     993                ) ) \
     994                '@echo Create multiarch EXE: $(@F)'
    828995endif
    829996
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