Changeset 104453 in vbox for trunk/src/VBox/Installer/win/Makefile.kmk
- Timestamp:
- Apr 29, 2024 8:09:47 AM (9 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Installer/win/Makefile.kmk
r104431 r104453 61 61 # 62 62 ifdef VBOX_INSTALLER_QUICK 63 VBOX_INSTALLER_LANGUAGES := en_US 63 VBOX_INSTALLER_LANGUAGES := en_US de_DE 64 64 VBOX_WITH_LICENSE_DISPLAY := 65 65 VBOX_WITH_SERIALNUMBER_INSTALL := … … 176 176 $(eval VBOX_BRAND_$(lang)_LANGUAGE_CODEPAGE := 1252)) 177 177 # Exceptions: 178 VBOX_BRAND_el_GR_LANGUAGE_CODEPAGE := 1253 179 VBOX_BRAND_fa_IR_LANGUAGE_CODEPAGE := 1256 180 VBOX_BRAND_tr_TR_LANGUAGE_CODEPAGE := 1254 178 181 VBOX_BRAND_zh_TW_LANGUAGE_CODEPAGE := 950 179 182 VBOX_BRAND_zh_CN_LANGUAGE_CODEPAGE := 936 180 VBOX_BRAND_fa_IR_LANGUAGE_CODEPAGE := 1256181 VBOX_BRAND_tr_TR_LANGUAGE_CODEPAGE := 1254182 183 183 184 # … … 230 231 231 232 OTHER_CLEAN += \ 232 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox.wixobj \233 233 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox.wix \ 234 234 $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox.wix \ 235 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox. wixobj.dep \235 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox.msi.dep \ 236 236 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib.wxi \ 237 237 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib_x86.wxi \ … … 247 247 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).msi \ 248 248 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix \ 249 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \ 250 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj.dep \ 249 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).msi.dep \ 251 250 $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix \ 252 251 $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files \ 253 $(VBOX_WIN_INST_REPACK_DIR)/ 2-link-$(PACKAGE_NAME_LANG).cmd \252 $(VBOX_WIN_INST_REPACK_DIR)/1-build-$(PACKAGE_NAME_LANG).cmd \ 254 253 $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/Language_$(lang).wxl \ 255 254 $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/License_$(lang).wxl ) \ … … 260 259 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi \ 261 260 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi \ 262 $(VBOX_WIN_INST_REPACK_DIR)/ 3-multilingual-$(PACKAGE_NAME_LANG).cmd \261 $(VBOX_WIN_INST_REPACK_DIR)/2-multilingual-$(PACKAGE_NAME_LANG).cmd \ 263 262 $(PATH_STAGE_BIN)/$(PACKAGE_NAME_MULTIARCH_FINAL) 264 263 … … 266 265 ifeq ($(KBUILD_TARGET_ARCH),x86) 267 266 OTHER_CLEAN += \ 268 $(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd \267 $(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd \ 269 268 $(PATH_MULTIARCH_TEMP)/$(PACKAGE_NAME_MULTIARCH.x86) 270 269 endif … … 275 274 else 276 275 OTHER_CLEAN += \ 277 $(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd \276 $(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd \ 278 277 $(PACKAGE_NAME_FINAL) 279 278 endif … … 284 283 $(foreach lang,$(VBOX_INSTALLER_MERGE_LANGUAGES), \ 285 284 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang)_$(KBUILD_TARGET_ARCH).msm \ 286 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj \ 287 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj.dep \ 285 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).msm.dep \ 288 286 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixpdb \ 289 287 $(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix \ … … 294 292 295 293 # 296 # Suppress/skip the following ICE (Internal Consistency Evaluators): 297 # - ICE64: Checks that new directories in the user profile are removed correctly in roaming scenarios. 298 # -> We don't want to remove system folders (like "Microsoft/Internet Explorer/Quick Launch"). 299 # - ICE69: Checks if file references are within the same component. 300 # -> We reference to files within different components, but these components are installed using 301 # the same feature, so that's fine. 302 # 303 VBOX_MSI_ICE_IGNORE := \ 304 -ice:64 \ 305 -ice:69 294 # Defines the WIX binary we're going to use. 295 # 296 # For WIX v4 there only is one single binary which can do all the required steps 297 # (compiling, linking, ...). 298 # 299 VBOX_TOOLS_WIN_WIX_BIN := $(VBOX_PATH_WIX)/tools/net472/x86/wix.exe 300 # Defines the path to the WIX extension DLLs. Might differ for other (major) WIX versions. 301 VBOX_TOOLS_WIN_WIXEXT_DIR := $(VBOX_PATH_WIX)/wixext4/ 302 303 # 304 # Defines the extension DLL we use for building an installer. 305 # 306 VBOX_TOOLS_WIN_WIX_EXT := \ 307 -lib $(VBOX_TOOLS_WIN_WIXEXT_DIR)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib \ 308 $(if-expr defined(VBOX_WITH_MSI_HACK),-ext $(MsiHack_0_OUTDIR)/MsiHackExtension.dll,) \ 309 -ext $(VBOX_TOOLS_WIN_WIXEXT_DIR)/WixToolset.Ui.wixext.dll \ 310 -ext $(VBOX_TOOLS_WIN_WIXEXT_DIR)/WixToolset.DifxApp.wixext.dll \ 311 -ext $(VBOX_TOOLS_WIN_WIXEXT_DIR)/WixToolset.Util.wixext.dll 306 312 307 313 # … … 323 329 324 330 # 325 # Create intermediate XML file for licenses (needed for .MSI linking).331 # Create intermediate XML file for licenses (needed for .MSI building). 326 332 # These files are created from the original .RTF files in the /docs directory. 327 333 # … … 340 346 $$(call MSG_GENERATE,,$$@,$$<) 341 347 $(APPEND) -t $$@ '<?xml version="1.0" encoding="utf-8"?>' 342 $(APPEND) $$@ '<WixLocalization xmlns="http:// schemas.microsoft.com/wix/2006/localization" Codepage="$(VBOX_BRAND_$(lang)_LANGUAGE_CODEPAGE)" Culture="$(lang)">'343 344 $(REDIRECT) -a+to $$@ -- $(ECHO_EXT) -n '<String Id="LicenseText" >'348 $(APPEND) $$@ '<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Codepage="$(VBOX_BRAND_$(lang)_LANGUAGE_CODEPAGE)" Culture="$(lang)">' 349 350 $(REDIRECT) -a+to $$@ -- $(ECHO_EXT) -n '<String Id="LicenseText" Value="' 345 351 $(REDIRECT) -a+to $$@ -- $(SED) -e "s|<|\<|g" -e "s|>|\>|g" $(license_file) 346 $(APPEND) $$@ ' </String>'347 348 $(APPEND) $$@ '<String Id="LicenseFile" >$(license_file)</String>'349 $(APPEND) $$@ '<String Id="LicenseInstallFileLong" >License_$(lang).rtf</String>'350 $(APPEND) $$@ '<String Id="LicenseInstallFileShort" >L_$(lang).rtf</String>'352 $(APPEND) $$@ '" />' 353 354 $(APPEND) $$@ '<String Id="LicenseFile" Value="$(license_file)" />' 355 $(APPEND) $$@ '<String Id="LicenseInstallFileLong" Value="License_$(lang).rtf" />' 356 $(APPEND) $$@ '<String Id="LicenseInstallFileShort" Value="L_$(lang).rtf" />' 351 357 352 358 $(APPEND) $$@ '</WixLocalization>' … … 367 373 $(call MSG_GENERATE,,$@,$<) 368 374 $(APPEND) -t $@ '<?xml version="1.0" ?>' 369 $(APPEND) $@ '<Include xmlns="http:// schemas.microsoft.com/wix/2006/wi">'375 $(APPEND) $@ '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' 370 376 ifdef VBOX_WITH_DOCS_PACKING 371 377 ifdef VBOX_WITH_DOCS_QHELP_PACKING … … 382 388 $(call MSG_GENERATE,,$@,$<) 383 389 $(APPEND) -t $@ '<?xml version="1.0" ?>' 384 $(APPEND) $@ '<Include xmlns="http:// schemas.microsoft.com/wix/2006/wi">'390 $(APPEND) $@ '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' 385 391 ifdef VBOX_WITH_DOCS_PACKING 386 392 $(APPEND) $@ ' <File Id="file_UserManual.pdf" Name="UserManual.pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(subst /,\,$(PATH_STAGE_BIN)/UserManual.pdf)">' … … 395 401 $(call MSG_GENERATE,,$@,$<) 396 402 $(APPEND) -t $@ '<?xml version="1.0" ?>' 397 $(APPEND) $@ '<Include xmlns="http:// schemas.microsoft.com/wix/2006/wi">'403 $(APPEND) $@ '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">">' 398 404 $(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))">' \ 399 405 ' </File>' … … 407 413 $(QUIET)$(APPEND) -nt "$@" \ 408 414 '<?xml version="1.0" ?>' \ 409 '<Include xmlns="http:// schemas.microsoft.com/wix/2006/wi">'415 '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' 410 416 ifdef VBOX_WITH_DTRACE 411 417 $(QUIET)$(APPEND) -n "$@" \ … … 413 419 ' <Directory Id="dir_DTrace_lib" Name="lib">' \ 414 420 ' <Directory Id="dir_DTrace_lib_arch" Name="$(KBUILD_TARGET_ARCH)">' \ 415 ' <Component Id="cp_dir_DTrace_lib_arch" Guid="7476CDF6-4157-2E17-5CCC-FF92528D2854" Win64="$$(var.Property_Win64)">' \421 ' <Component Id="cp_dir_DTrace_lib_arch" Guid="7476CDF6-4157-2E17-5CCC-FF92528D2854" Bitness="$$(var.Property_Bitness)">' \ 416 422 $(foreach file, $(VBOXINST_DTRACE_LIB_ARCH_FILES) \ 417 423 , ' <File Id="file_dtrace_lib_arch_$(subst -,_,$(file))" Name="$(file)" Vital="yes" ' \ … … 423 429 ' <Directory Id="dir_DTrace_testcase" Name="testcase">' \ 424 430 ' <Directory Id="dir_DTrace_testcase_arch" Name="$(KBUILD_TARGET_ARCH)">' \ 425 ' <Component Id="cp_dir_DTrace_testcase_arch" Guid="45DF7014-4431-6C40-6DB0-35AF7C690EE1" Win64="$$(var.Property_Win64)">' \431 ' <Component Id="cp_dir_DTrace_testcase_arch" Guid="45DF7014-4431-6C40-6DB0-35AF7C690EE1" Bitness="$$(var.Property_Bitness)">' \ 426 432 $(foreach file, $(VBOXINST_DTRACE_TESTCASE_ARCH_FILES) \ 427 433 , ' <File Id="file_dtrace_testcase_arch_$(subst -,_,$(file))" Name="$(file)" Vital="yes" ' \ … … 432 438 $(if $(VBOXINST_DTRACE_SCRIPTS_FILES), \ 433 439 ' <Directory Id="dir_DTrace_scripts" Name="scripts">' \ 434 ' <Component Id="cp_dir_DTrace_scripts" Guid="AE07F9D5-4FD9-ACC7-C760-E9923CE01E16" Win64="$$(var.Property_Win64)">' \440 ' <Component Id="cp_dir_DTrace_scripts" Guid="AE07F9D5-4FD9-ACC7-C760-E9923CE01E16" Bitness="$$(var.Property_Bitness)">' \ 435 441 $(foreach file, $(VBOXINST_DTRACE_SCRIPTS_FILES) \ 436 442 , ' <File Id="file_dtrace_scripts_$(subst -,_,$(file))" Name="$(file)" Vital="yes" ' \ … … 446 452 $(call MSG_GENERATE,,$@,$<) 447 453 $(APPEND) -t $@ '<?xml version="1.0" ?>' 448 $(APPEND) $@ '<Include xmlns="http:// schemas.microsoft.com/wix/2006/wi">'454 $(APPEND) $@ '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' 449 455 # 450 456 # Documentation (PDF/CHM) … … 452 458 ifdef VBOX_WITH_DOCS_PACKING 453 459 $(APPEND) $@ ' <Shortcut Id="sc_StartMenu_ManualPDF_en_US" Directory="dir_StartMenuVBox" Name="!(loc.StartMenu_UserManual) (PDF, English)" Description="!(loc.StartMenu_UserManual)"' \ 454 ' Target="[INSTALLDIR]\doc\UserManual.pdf" WorkingDirectory="dir_ Documents" Advertise="no"/>'460 ' Target="[INSTALLDIR]\doc\UserManual.pdf" WorkingDirectory="dir_StartMenuVBox" Advertise="no"/>' 455 461 $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \ 456 462 ' <Shortcut Id="sc_StartMenu_ManualPDF_$(lang)" Directory="dir_StartMenuVBox" Name="!(loc.StartMenu_UserManual) (PDF, $(VBOX_BRAND_$(lang)_LANG_NAME))"' \ 457 ' Description="!(loc.StartMenu_UserManual) ($(VBOX_BRAND_$(lang)_LANG_NAME))" Target="[INSTALLDIR]\doc\UserManual_$(lang).pdf" WorkingDirectory="dir_ Documents"/>')463 ' Description="!(loc.StartMenu_UserManual) ($(VBOX_BRAND_$(lang)_LANG_NAME))" Target="[INSTALLDIR]\doc\UserManual_$(lang).pdf" WorkingDirectory="dir_StartMenuVBox"/>') 458 464 endif 459 465 # … … 467 473 $(APPEND) $@ '</Include>' 468 474 469 # 470 # .MSI linking of the main installer (en_US). 475 VBOX_WIN_INST_ENV := \ 476 -E 'PATH_OUT=$(subst /,\,$(PATH_OUT))' \ 477 -E 'PATH_TARGET=$(subst /,\,$(VBOX_WIN_INST_OUT_DIR))' \ 478 -E 'PATH_ROOT=$(subst /,\,$(PATH_ROOT))' \ 479 -E 'PATH_MULTIARCH_GUEST_ADDITIONS_ISO=$(subst /,\,$(PATH_MULTIARCH_GUEST_ADDITIONS_ISO))' \ 480 -E 'VBOX_PATH_WIN_INST_SRC=$(subst /,\,$(VBOX_PATH_WIN_INST_SRC))' \ 481 -E 'VBOX_BRAND_WIN_INST_DLGJPG=$(subst /,\,$(VBOX_BRAND_WIN_INST_DLGJPG))' \ 482 -E 'VBOX_ADD_LANGUAGES=$(VBOX_INSTALLER_ADD_LANGUAGES)' \ 483 -E 'VBOX_BRAND_LICENSE_RTF=$(subst /,\,$(VBOX_BRAND_LICENSE_RTF))' \ 484 -E 'VBOX_BUILD_NR_FOR_INST=$(VBOX_VERSION_BUILD)' \ 485 -E 'VBOX_VENDOR=$(VBOX_VENDOR)' \ 486 -E 'VBOX_VENDOR_SHORT=$(VBOX_VENDOR_SHORT)' \ 487 -E 'VBOX_PRODUCT=$(VBOX_PRODUCT)' \ 488 -E 'VBOX_C_YEAR=$(VBOX_C_YEAR)' \ 489 -E 'VBOX_VERSION_STRING=$(VBOX_VERSION_STRING)' \ 490 -E 'VBOX_VERSION_STRING_RAW=$(VBOX_VERSION_STRING_RAW)' \ 491 -E 'VBOX_VERSION_MAJOR_INST=$(VBOX_VERSION_MAJOR)' \ 492 -E 'VBOX_VERSION_MINOR_INST=$(VBOX_VERSION_MINOR)' \ 493 -E 'VBOX_SIGNING_MODE=$(strip $(if $(VBOX_SIGNING_MODE),$(VBOX_SIGNING_MODE),none))' \ 494 -E 'VBOX_MIDL_PROXY_CLSID=$(VBOX_MIDL_PROXY_CLSID)' \ 495 -E 'VBOX_WINDOWS_ICON_FILE=$(subst /,\,$(VBOX_WINDOWS_ICON_FILE))' \ 496 -E 'VBOX_QT_INFIX=$(VBOX_QT_INFIX)' \ 497 -E 'VBOX_WITH_32_ON_64_MAIN_API=$(if $(VBOX_WITH_32_ON_64_MAIN_API),yes,no)' \ 498 -E 'VBOX_WITH_ADDITIONS_PACKING=$(if $(VBOX_WITH_ADDITIONS_PACKING),yes,no)' \ 499 -E 'VBOX_WITH_COMBINED_PACKAGE=$(if-expr defined(VBOX_WITH_COMBINED_PACKAGE),yes,no)' \ 500 -E 'VBOX_WITH_CRT_PACKING=$(if-expr defined(VBOX_WITH_CRT_PACKING),yes,no)' \ 501 -E 'VBOX_WITH_DEBUGGER_GUI=$(if-expr defined(VBOX_WITH_DEBUGGER_GUI) && defined(VBOX_WITH_QTGUI),yes,no)' \ 502 -E 'VBOX_WITH_DOCS_PACKING=$(if $(VBOX_WITH_DOCS_PACKING),yes,no)' \ 503 -E 'VBOX_WITH_DRAG_AND_DROP=$(if $(VBOX_WITH_DRAG_AND_DROP),yes,no)' \ 504 -E 'VBOX_WITH_DTRACE=$(if $(VBOX_WITH_DTRACE),yes,no)' \ 505 -E 'VBOX_WITH_HOST_SHIPPING_AUDIO_TEST=$(if $(VBOX_WITH_HOST_SHIPPING_AUDIO_TEST),yes,no)' \ 506 -E 'VBOX_WITH_EFIFW_PACKING=$(if $(VBOX_WITH_EFIFW_PACKING),yes,no)' \ 507 -E 'VBOX_WITH_EXTPACK=$(if $(VBOX_WITH_EXTPACK),yes,no)' \ 508 -E 'VBOX_WITH_GUEST_CONTROL=$(if $(VBOX_WITH_GUEST_CONTROL),yes,no)' \ 509 -E 'VBOX_WITH_GUEST_PROPS=$(if $(VBOX_WITH_GUEST_PROPS),yes,no)' \ 510 -E 'VBOX_WITH_HARDENING=$(if $(VBOX_WITH_HARDENING),yes,no)' \ 511 -E 'VBOX_WITH_HEADLESS=$(if $(VBOX_WITH_HEADLESS),yes,no)' \ 512 -E 'VBOX_WITH_FE_BALLOONCTRL=$(if $(VBOX_WITH_FE_BALLOONCTRL),yes,no)' \ 513 -E 'VBOX_WITH_FE_AUTOSTART=$(if $(VBOX_WITH_FE_AUTOSTART),yes,no)' \ 514 -E 'VBOX_WITH_FE_BUGREPORT=$(if $(VBOX_WITH_FE_BUGREPORT),yes,no)' \ 515 -E 'VBOX_WITH_LIBSSH=$(if $(VBOX_WITH_LIBSSH),yes,no)' \ 516 -E 'VBOX_WITH_LICENSE_DISPLAY=$(if $(VBOX_WITH_LICENSE_DISPLAY),yes,no)' \ 517 -E 'VBOX_WITH_MIDL_PROXY_STUB=$(if $(VBOX_WITH_MIDL_PROXY_STUB),yes,no)' \ 518 -E 'VBOX_WITH_MSM_INSTALL=$(if-expr defined(VBOX_WITH_MSM_INSTALL),yes,no)' \ 519 -E 'VBOX_WITH_NETADP=$(if $(VBOX_WITH_NETADP),yes,no)' \ 520 -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \ 521 -E 'VBOX_WITH_PYTHON=$(if $(VBOX_WITH_PYTHON),yes,no)' \ 522 -E 'VBOX_WITH_QTGUI=$(if $(VBOX_WITH_QTGUI),yes,no)' \ 523 -E 'VBOX_WITH_RAW_MODE=$(if $(VBOX_WITH_RAW_MODE),yes,no)' \ 524 -E 'VBOX_WITH_SERIALNUMBER_INSTALL=$(if $(VBOX_WITH_SERIALNUMBER_INSTALL),yes,no)' \ 525 -E 'VBOX_WITH_VIDEOHWACCEL=$(if $(VBOX_WITH_VIDEOHWACCEL),yes,no)' \ 526 -E 'VBOX_WITH_VRDP=$(if-expr defined(VBOX_WITH_VRDP) && !defined(VBOX_WITH_EXTPACK_PUEL),yes,no)' \ 527 -E 'VBOX_WITH_WEBSERVICES=$(if $(VBOX_WITH_WEBSERVICES),yes,no)' \ 528 -E 'VBOX_WITH_SDS=$(if $(VBOX_WITH_SDS),yes,no)' \ 529 -E 'VBOX_WITH_UNATTENDED=$(if $(VBOX_WITH_UNATTENDED),yes,no)' \ 530 -E 'VBOX_WITH_UNATTENDED_TEMPLATES=$(if $(VBOX_UNATTENDED_TEMPLATES),yes,no)' \ 531 -E 'VBOX_WITH_USB=$(if $(VBOX_WITH_USB),yes,no)' \ 532 -E 'VBOX_WITH_VBOX_IMG=$(if $(VBOX_WITH_VBOX_IMG)$(VBOX_WITH_TESTCASES),yes,no)' \ 533 -E 'VBOX_WITH_VBOXSDL=$(if $(VBOX_WITH_VBOXSDL),yes,no)' \ 534 -E 'VBOX_WITH_VMSVGA3D=$(if $(VBOX_WITH_VMSVGA3D),yes,no)' \ 535 -E 'VBOX_WITH_VIDEOHWACCEL=$(if $(VBOX_WITH_VIDEOHWACCEL),yes,no)' \ 536 -E 'KBUILD_TYPE=$(KBUILD_TYPE)' \ 537 -E 'KBUILD_TARGET_ARCH=$(KBUILD_TARGET_ARCH)' \ 538 -E 'VBOX_INSTALLER_QUICK=$(VBOX_INSTALLER_QUICK)' \ 539 -E 'VBOX_VCC_TOOL_STEM=$(VBOX_VCC_TOOL_STEM)' \ 540 -E 'VBOX_CAB_COMPRESSION_LEVEL=$(VBOX_CAB_COMPRESSION_LEVEL)' \ 541 -E 'VBOX_CAB_COMPRESSION_LEVEL_COMMON=$(VBOX_CAB_COMPRESSION_LEVEL)' 542 543 # 544 # Building the main installer (en_US). 545 # 546 # Since WIX v4 we don't need to do compilation + linking as separate steps, 547 # as the WIX binary all now does this internally with its "build" command. 471 548 # 472 549 # Note: This will clean up any previous .msi and .wixpdb files to prevent dep 473 550 # build boxes from filling up with old files. 474 551 # 475 define def_vbox_ link_msi552 define def_vbox_build_msi 476 553 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(PACKAGE_NAME_LANG)_$(lang).msi \ 477 554 $(if-expr defined(VBOX_WITH_COMBINED_PACKAGE) && !defined(VBOX_WITH_MSM_INSTALL), + $(VBOX_WIN_INST_OUT_DIR)/common.cab,): \ 478 $(VBOX_WIN_INST_OUT_DIR)/ $(lang)/VirtualBox_$(lang).wixobj\555 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib \ 479 556 $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 480 557 $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ … … 485 562 $(if-expr defined(VBOX_WITH_MSI_HACK),$(MsiHack_0_OUTDIR)/MsiHackExtension.dll,) \ 486 563 | $$$$(dir $$$$@) 487 $$(call MSG_L1, Linking installer $$@)564 $$(call MSG_L1,Building installer $$@) 488 565 $(QUIET)$(RM) -f $$(wildcard $$(subst r$$(VBOX_SVN_REV),r*,\ 489 566 $$@ \ 490 567 $$(basename $$@).wixpdb \ 491 568 $$(VBOX_WIN_INST_REPACK_DIR)/2-link-$$(PACKAGE_NAME_LANG).cmd )) 492 kmk_time $$(REDIRECT_EXT) -E WIX_TEMP='$$(subst /,\,$$(@D))' -- $(VBOX_PATH_WIX)/light.exe -v -nologo \ 569 kmk_time $$(REDIRECT_EXT) -E WIX_TEMP='$$(subst /,\,$$(@D))' $(VBOX_WIN_INST_ENV) \ 570 -- $(VBOX_TOOLS_WIN_WIX_BIN) build \ 493 571 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 494 572 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ 495 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 496 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 497 -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll \ 498 $(if-expr defined(VBOX_WITH_MSI_HACK),-ext $(MsiHack_0_OUTDIR)/MsiHackExtension.dll,) \ 499 $(VBOX_MSI_ICE_IGNORE) \ 500 -out $$@ \ 501 $$< \ 502 $(VBOX_PATH_WIX)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib 573 -lib $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib \ 574 -ext $(VBOX_TOOLS_WIN_WIXEXT_DIR)/WixToolset.Util.wixext.dll \ 575 -pdbtype none \ 576 -out $$@ 503 577 if defined(VBOX_WITH_COMBINED_PACKAGE) && !defined(VBOX_WITH_MSM_INSTALL) 504 578 $(MV) -f -- $$(@D)/common.cab $$(@D)/../common.cab … … 508 582 "$(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/" 509 583 # Create repack script for this step. 510 $(APPEND) -tn "$$(VBOX_WIN_INST_REPACK_DIR)/ 2-link-$$(PACKAGE_NAME_LANG).cmd" \584 $(APPEND) -tn "$$(VBOX_WIN_INST_REPACK_DIR)/1-compile-$$(PACKAGE_NAME_LANG).cmd" \ 511 585 'if ".%KBUILD_DEVTOOLS%" == "." (echo KBUILD_DEVTOOLS is not set & exit /b1)' \ 512 586 $(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%,\ 513 '$(VBOX_PATH_WIX)/light.exe -v -nologo ^' \ 514 ' -loc files-VirtualBox_$(lang)/Language_$(lang).wxl ^' \ 515 ' -loc files-VirtualBox_$(lang)/License_$(lang).wxl ^' \ 516 ' -ext $(VBOX_PATH_WIX)/WixUIExtension.dll ^' \ 517 ' -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll ^' \ 518 ' -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll ^' \ 519 $(if-expr defined(VBOX_WITH_MSI_HACK),'-ext $(MsiHack_0_OUTDIR)/MsiHackExtension.dll ^',) \ 520 ' $(VBOX_MSI_ICE_IGNORE) ^' \ 587 '$(VBOX_TOOLS_WIN_WIX_BIN) build ^' \ 588 ' files-VirtualBox_$(lang)/Language_$(lang).wxl ^' \ 589 ' files-VirtualBox_$(lang)/License_$(lang).wxl ^' \ 590 ' -lib VirtualBox_en_US.wixlib ^' \ 591 ' -ext $(VBOX_TOOLS_WIN_WIXEXT_DIR)/WixToolset.Util.wixext.dll ^' \ 592 ' -pdbtype none ^' \ 521 593 ' -out $$(@F) ^' \ 522 ' $$(<F) ^' \523 ' $(VBOX_PATH_WIX)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib ^' \524 594 ' || exit /b1' \ 525 595 ) \ … … 530 600 endef 531 601 532 $(foreach lang, en_US, $(eval $(def_vbox_link_msi))) 533 534 535 # 536 # Merge module linking (all languages). 602 $(foreach lang, en_US, $(eval $(def_vbox_build_msi))) 603 604 605 # 606 # Merge module building (all languages). 607 # 608 # This takes the existing merge module WIX library (.wixlib) as input and builds a MSI merge 609 # module (.msm) out of it. 537 610 # 538 611 # Note: This will clean up any previous .msm to prevent dep build boxes from 539 612 # filling up with old files. 540 613 # 541 define def_vbox_ link_msm614 define def_vbox_build_msm 542 615 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang)_$(KBUILD_TARGET_ARCH).msm: \ 543 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix obj\616 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixlib \ 544 617 $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 545 618 $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ … … 548 621 $(VBOX_WIN_INST_MAKEFILE_DEP) \ 549 622 | $$$$(dir $$$$@) 550 $$(call MSG_L1, Linking installer$$@)623 $$(call MSG_L1,Building merge module $$@) 551 624 $(QUIET)$(RM) -f $$(wildcard $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_BASE)-r*_$(lang).msi) 552 kmk_time $$(REDIRECT_EXT) -E WIX_TEMP='$$(subst /,\,$$(@D))' -- $(VBOX_PATH_WIX)/light.exe -v -nologo \ 625 kmk_time $$(REDIRECT_EXT) -E WIX_TEMP='$$(subst /,\,$$(@D))' $(VBOX_WIN_INST_ENV) \ 626 -- $(VBOX_TOOLS_WIN_WIX_BIN) build \ 553 627 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 554 628 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ 555 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 556 -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll \ 557 $(VBOX_MSI_ICE_IGNORE) \ 558 -out $$@ \ 559 $$< \ 560 $(VBOX_PATH_WIX)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib 629 -lib $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixlib \ 630 -pdbtype none \ 631 -out $$@ 561 632 $(RM) -f $(VBOX_WIN_INST_OUT_DIR)/NLS/$(lang).mst 562 633 $(call VBOX_SIGN_MSM_FN,$$@,$(VBOX_PRODUCT) $(VBOX_VERSION_STRING)r$(VBOX_SVN_REV) ($(KBUILD_TARGET_ARCH)),,,disable-dual-signing) 563 634 # Create repack script for this step. 564 $(APPEND) -tn "$$(VBOX_WIN_INST_REPACK_DIR)/ 2-link-VBoxMerge$(module)_$(lang).cmd" \635 $(APPEND) -tn "$$(VBOX_WIN_INST_REPACK_DIR)/1-build-VBoxMerge$(module)_$(lang).cmd" \ 565 636 'if ".%KBUILD_DEVTOOLS%" == "." (echo KBUILD_DEVTOOLS is not set & exit /b1)' \ 566 637 $(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%,\ 567 '$(VBOX_PATH_WIX)/light.exe -v -nologo ^' \ 568 ' -loc files-VirtualBox_$(lang)/Language_$(lang).wxl ^' \ 569 ' -loc files-VirtualBox_$(lang)/License_$(lang).wxl ^' \ 570 ' -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll ^' \ 571 ' -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll ^' \ 572 ' $(VBOX_MSI_ICE_IGNORE) ^' \ 638 '$(VBOX_TOOLS_WIN_WIX_BIN) build ^' \ 639 ' files-VirtualBox_$(lang)/Language_$(lang).wxl ^' \ 640 ' files-VirtualBox_$(lang)/License_$(lang).wxl ^' \ 641 ' $(VBOX_TOOLS_WIN_WIX_EXT) ^' \ 573 642 ' -out $$(@F) ^' \ 574 ' $$(<F) ^' \575 ' $(VBOX_PATH_WIX)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib ^' \576 643 ' || exit /b1' \ 577 644 'call sign-sha1.cmd $$(@F) || exit /b1' \ … … 583 650 $(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \ 584 651 $(foreach lang,$(VBOX_INSTALLER_MERGE_LANGUAGES), \ 585 $(eval $(def_vbox_ link_msm)))),)652 $(eval $(def_vbox_build_msm)))) 586 653 endif 587 654 … … 618 685 619 686 # 620 # MSI compile. 621 # We've separated the processing from the compilation for repacking reasons. 622 # 623 define def_vbox_compile_wixobj 624 includedep $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj.dep 625 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \ 626 + $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix \ 687 # Building a WIX library object (.wixlib). 688 # We've separated the final building from the WIX library building for repacking reasons. 689 # 690 define def_vbox_build_wixlib 691 includedep $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixlib.dep 692 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib \ 627 693 $(if-expr "$(lang)" != "en_US",, \ 628 + $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files ): \694 + $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wixlib $(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files ): \ 629 695 $(PATH_SUB_CURRENT)/VirtualBox.wxs \ 630 696 $(PATH_SUB_CURRENT)/UserInterface.wxi \ … … 644 710 | $$$$(dir $$$$@) $(if-expr "$(lang)" != "en_US",, \ 645 711 $(VBOX_WIN_INST_REPACK_DIR)/ $(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/ ) 646 $(QUIET)$(RM) -f -- "$$@" "$(VBOX_WIN_INST_OUT_DIR)/ $(lang)/VirtualBox_$(lang).wix" "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix"712 $(QUIET)$(RM) -f -- "$$@" "$(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib" "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wixlib" 647 713 $(REDIRECT) \ 648 714 -E 'PATH_OUT=$(subst /,\,$(PATH_OUT))' \ … … 707 773 -E 'VBOX_WITH_SDS=$(if $(VBOX_WITH_SDS),yes,no)' \ 708 774 -E 'VBOX_WITH_UNATTENDED=$(if $(VBOX_WITH_UNATTENDED),yes,no)' \ 775 -E 'VBOX_WITH_UNATTENDED_TEMPLATES=$(if $(VBOX_UNATTENDED_TEMPLATES),yes,no)' \ 709 776 -E 'VBOX_WITH_USB=$(if $(VBOX_WITH_USB),yes,no)' \ 710 777 -E 'VBOX_WITH_VBOX_IMG=$(if $(VBOX_WITH_VBOX_IMG)$(VBOX_WITH_TESTCASES),yes,no)' \ … … 717 784 -E 'VBOX_VCC_TOOL_STEM=$(VBOX_VCC_TOOL_STEM)' \ 718 785 -- \ 719 $(VBOX_PATH_WIX)/candle.exe $(filter-out $(VBOX_VERSION_STAMP),$$<) \ 720 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 721 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 722 -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll \ 723 -p$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix 724 $(VBOX_PATH_WIX)/candle.exe $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix \ 725 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 726 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 727 -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll \ 728 -out $$@ 786 $(VBOX_TOOLS_WIN_WIX_BIN) build $(filter-out $(VBOX_VERSION_STAMP),$$<) \ 787 $(VBOX_TOOLS_WIN_WIX_EXT) \ 788 -outputtype library \ 789 -out $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib 729 790 ifeq ($(lang),en_US) 730 # Copy preprocessed wix and change source paths to be relative. Stuff not in ../bin needs copying. 731 $(SED) -e 's,$(subst /,\\,$(PATH_OUT))\\bin,..\\bin,g' \ 732 -e 's,$(subst /,\\,$(PATH_OUT_BASE))\\win.amd64\\$(KBUILD_TYPE)\\bin,..\\..\\..\\win.amd64\\$(KBUILD_TYPE)\\bin,g' \ 733 -e 's,$(subst /,\\,$(PATH_OUT_BASE))\\win.x86\\$(KBUILD_TYPE)\\bin,..\\..\\..\\win.x86\\$(KBUILD_TYPE)\\bin,g' \ 734 \ 735 -e 's,$(subst /,\\,$(PATH_ROOT))\\doc\\,files-VirtualBox_$(lang)\\,g' \ 736 -e 's,$(subst /,\\,$(VBOX_PATH_WIN_INST_SRC))\\Binary\\,files-VirtualBox_$(lang)\\,g' \ 737 -e 's,$(subst /,\\,$(VBOX_WIN_INST_OUT_DIR))\\,,g' \ 738 -e 's,$(subst /,\\,$(dir $(VBOX_WINDOWS_ICON_FILE))),files-VirtualBox_$(lang)\\,g' \ 739 --output "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix" \ 740 "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix" 741 $(SED) -n \ 742 -e '/<\?ln /d' \ 743 -e '/$(subst /,\\,$(PATH_ROOT))/p' \ 744 -e '/$(subst /,\\,$(PATH_ROOT))/q2' \ 745 "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).wix" 746 $(SED) -n \ 747 -e '/<\?ln /d' \ 748 -e 's/\\/\//g' \ 749 -e 's,^.*"\($(PATH_ROOT)/doc/[^"]*\)".*$$(DOLLAR),\1,p' \ 750 -e 's,^.*"\($(VBOX_PATH_WIN_INST_SRC)/Binary/[^"]*\)".*$$(DOLLAR),\1,p' \ 751 -e 's,^.*"\($(dir $(VBOX_WINDOWS_ICON_FILE))[^"]*\)".*$$(DOLLAR),\1,p' \ 752 --output "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files" \ 753 "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wix" 754 set -xe && for file in `$(CAT_EXT) "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files"`; \ 755 do $(CP_EXT) -f -- "$$(DOLLAR){file}" "$(VBOX_WIN_INST_REPACK_DIR)/files-VirtualBox_$(lang)/"; done 756 # Create repack script for this step. 757 $(APPEND) -tn "$(VBOX_WIN_INST_REPACK_DIR)/1-compile-VirtualBox_$(lang).cmd" \ 758 'if ".%KBUILD_DEVTOOLS%" == "." (echo KBUILD_DEVTOOLS is not set & exit /b1)' \ 759 $(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%,\ 760 '$(VBOX_PATH_WIX)/candle.exe VirtualBox_$(lang).wix ^' \ 761 ' -ext $(VBOX_PATH_WIX)/WixUIExtension.dll ^' \ 762 ' -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll ^' \ 763 ' -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll ^' \ 764 ' -out $$(@F) || exit /b1' \ 765 ) \ 766 '@echo Created: $$(@F)' 767 endif 768 # Generate wxi dependencies based on the sourceLineNumber references in the output. Add repack file list for cleanup. 769 $(QUIET)$(APPEND) -t '[email protected]' '$$@: \' 770 $(QUIET)$(VBOX_XSLTPROC) $(VBOX_PATH_WIN_INST_SRC)/dep.xsl "$$@" >> "[email protected]" 771 $(QUIET)$(VBOX_XSLTPROC) $(VBOX_PATH_WIN_INST_SRC)/dep2.xsl "$$@" | sort | $(SED) '$!N; /^\(.*\)\n\1$$$$/!P; D' >> "[email protected]" 772 $(QUIET)$(APPEND) -n '[email protected]' '' '' 773 ifeq ($(lang),en_US) 774 $(QUIET)$(APPEND) -n '[email protected]' 'define VBOX_REPACK_FILES_VirtualBox_$(lang)' 775 $(QUIET)$(CAT_EXT) "$(VBOX_WIN_INST_REPACK_DIR)/VirtualBox_$(lang).files" >> '[email protected]' 776 $(QUIET)$(APPEND) -n '[email protected]' '' 'endef' 777 endif 791 # Copy over the .wixlib into the repack directory, so that it can be used later when 792 # doing the repacking via the shell scripts. 793 $(CP) $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixlib $(VBOX_WIN_INST_REPACK_DIR)/ 794 795 endif 796 778 797 779 798 $(eval OTHER_CLEAN += $(VBOX_REPACK_FILES_VirtualBox_$(lang))) … … 781 800 782 801 $(foreach lang,$(VBOX_INSTALLER_LANGUAGES), \ 783 $(eval $(def_vbox_compile_wixobj))) 784 785 # 786 # MSM (merge module) compile. 787 # 788 define def_vbox_compile_msm 789 includedep $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj.dep 790 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixobj \ 791 + $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix \ 802 $(eval $(def_vbox_build_wixlib))) 803 804 # 805 # MSM (merge module) building as a WIX library (.wixlib). 806 # 807 define def_vbox_build_msm_wixlib 808 includedep $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixlib.dep 809 $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixlib \ 792 810 $(if-expr "$(lang)" != "en_US",, \ 793 + $(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix ): \811 + $(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wixlib): \ 794 812 $(PATH_SUB_CURRENT)/VBoxMerge$(module).wxs \ 795 813 $(PATH_SUB_CURRENT)/VBoxMerge$(module).wxi \ … … 868 886 -E 'VBOX_WITH_SDS=$(if $(VBOX_WITH_SDS),yes,no)' \ 869 887 -E 'VBOX_WITH_UNATTENDED=$(if $(VBOX_WITH_UNATTENDED),yes,no)' \ 888 -E 'VBOX_WITH_UNATTENDED_TEMPLATES=$(if $(VBOX_UNATTENDED_TEMPLATES),yes,no)' \ 870 889 -E 'VBOX_WITH_VBOX_IMG=$(if $(VBOX_WITH_VBOX_IMG),yes,no)' \ 871 890 -E 'VBOX_WITH_VBOXSDL=$(if $(VBOX_WITH_VBOXSDL),yes,no)' \ … … 877 896 -E 'VBOX_VCC_TOOL_STEM=$(VBOX_VCC_TOOL_STEM)' \ 878 897 -- \ 879 $(VBOX_PATH_WIX)/candle.exe $(filter-out $(VBOX_VERSION_STAMP),$$<) \ 880 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 881 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 882 -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll \ 883 -p$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix 884 $(VBOX_PATH_WIX)/candle.exe $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix \ 885 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 886 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 887 -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll \ 888 -out $$@ 898 $(VBOX_TOOLS_WIN_WIX_BIN) build $(filter-out $(VBOX_VERSION_STAMP),$$<) \ 899 $(VBOX_TOOLS_WIN_WIX_EXT) \ 900 -outputtype library \ 901 -out $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixlib 889 902 ifeq ($(lang),en_US) 890 # Copy preprocessed wix and change source paths to be relative. Stuff not in ../bin needs copying. 891 $(SED) -e 's,$(subst /,\\,$(PATH_OUT))\\bin,..\\bin,g' \ 892 -e 's,$(subst /,\\,$(PATH_OUT_BASE))\\win.amd64\\$(KBUILD_TYPE)\\bin,..\\..\\..\\win.amd64\\$(KBUILD_TYPE)\\bin,g' \ 893 -e 's,$(subst /,\\,$(PATH_OUT_BASE))\\win.x86\\$(KBUILD_TYPE)\\bin,..\\..\\..\\win.x86\\$(KBUILD_TYPE)\\bin,g' \ 894 -e 's,$(subst /,\\,$(PATH_ROOT))\\doc\\,files-VBoxMerge$(module)_$(lang)\\,g' \ 895 -e 's,$(subst /,\\,$(VBOX_PATH_WIN_INST_SRC))\\Binary\\,files-VBoxMerge$(module)_$(lang)\\,g' \ 896 -e 's,$(subst /,\\,$(dir $(VBOX_WINDOWS_ICON_FILE))),files-VBoxMerge$(module)_$(lang)\\,g' \ 897 -e 's,$(subst /,\\,$(VBOX_PATH_WIN_INST_SRC))\\,,g' \ 898 --output "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix" \ 899 "$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix" 900 $(SED) -n \ 901 -e '/<\?ln /d' \ 902 -e '/$(subst /,\\,$(PATH_ROOT))/p' \ 903 -e '/$(subst /,\\,$(PATH_ROOT))/q2' \ 904 "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).wix" 905 $(SED) -n \ 906 -e '/<\?ln /d' \ 907 -e 's/\\/\//g' \ 908 -e 's,^.*"\($(PATH_ROOT)/doc/[^"]*\)".*$$(DOLLAR),\1,p' \ 909 -e 's,^.*"\($(VBOX_PATH_WIN_INST_SRC)/Binary/[^"]*\)".*$$(DOLLAR),\1,p' \ 910 -e 's,^.*"\($(dir $(VBOX_WINDOWS_ICON_FILE))[^"]*\)".*$$(DOLLAR),\1,p' \ 911 --output "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).files" \ 912 "$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wix" 903 # Copy over the .wixlib into the repack directory, so that it can be used later when 904 # doing the repacking via the shell scripts. 905 $(CP) $(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).wixlib $(VBOX_WIN_INST_REPACK_DIR)/ 913 906 $(MKDIR) -p -- "$(VBOX_WIN_INST_REPACK_DIR)/files-VBoxMerge$(module)_$(lang)/" 914 set -xe && for file in `$(CAT_EXT) "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).files"`; \915 do $(CP_EXT) -f -- "$$(DOLLAR){file}" "$(VBOX_WIN_INST_REPACK_DIR)/files-VBoxMerge$(module)_$(lang)/"; done916 # Create repack script for this step.917 $(APPEND) -tn "$(VBOX_WIN_INST_REPACK_DIR)/1-compile-VBoxMerge$(module)_$(lang).cmd" \918 'if ".%KBUILD_DEVTOOLS%" == "." (echo KBUILD_DEVTOOLS is not set & exit /b1)' \919 $(subst $(KBUILD_DEVTOOLS),%KBUILD_DEVTOOLS%,\920 '$(VBOX_PATH_WIX)/candle.exe VBoxMerge$(module)_$(lang).wix ^' \921 ' -ext $(VBOX_PATH_WIX)/WixUIExtension.dll ^'\922 ' -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll ^' \923 ' -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll ^' \924 ' -out $$(@F) || exit /b1' \925 ) \926 '@echo Created: $$(@F)'927 endif928 # Generate wxi dependencies based on the sourceLineNumber references in the output. Add repack file list for cleanup.929 $(QUIET)$(APPEND) -t '[email protected]' '$$@: \'930 $(QUIET)$(VBOX_XSLTPROC) $(VBOX_PATH_WIN_INST_SRC)/dep.xsl "$$@" >> "[email protected]"931 $(QUIET)$(VBOX_XSLTPROC) $(VBOX_PATH_WIN_INST_SRC)/dep2.xsl "$$@" | sort | $(SED) '$!N; /^\(.*\)\n\1$$$$/!P; D' >> "[email protected]"932 $(QUIET)$(APPEND) -n '[email protected]' '' ''933 ifeq ($(lang),en_US)934 $(QUIET)$(APPEND) -n '[email protected]' 'define VBOX_REPACK_FILES_VBoxMerge$(module)_$(lang)'935 $(QUIET)$(CAT_EXT) "$(VBOX_WIN_INST_REPACK_DIR)/VBoxMerge$(module)_$(lang).files" >> '[email protected]'936 $(QUIET)$(APPEND) -n '[email protected]' '' 'endef'937 907 endif 938 908 … … 942 912 $(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \ 943 913 $(foreach lang,$(VBOX_INSTALLER_MERGE_LANGUAGES), \ 944 $(eval $(def_vbox_ compile_msm))))914 $(eval $(def_vbox_build_msm_wixlib)))) 945 915 946 916 # … … 974 944 $(VBOX_WIN_INST_OUT_DIR)/VBoxGuiNLS.wxi: $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk | $$(dir $$@) 975 945 $(APPEND) -t $@ '<?xml version="1.0" ?>' 976 $(APPEND) $@ '<Include >'946 $(APPEND) $@ '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' 977 947 $(APPEND) -n $@ $(foreach lang,$(VBOX_APPROVED_GUI_LANGUAGES), \ 978 948 ' <File Id="nlsqt${lang}" Name="qt_${lang}.qm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$$(env.PATH_OUT)\bin\nls\qt_${lang}.qm" />' \ … … 999 969 $(APPEND) -t -n $@ \ 1000 970 '<?xml version="1.0" ?>' \ 1001 '<Include >' \971 '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' \ 1002 972 $(foreach dll \ 1003 973 ,$(if-expr "$(VBOX_VCC_TOOL_STEM)"=="VCC100",msvcr100.dll msvcp100.dll \ … … 1018 988 $(APPEND) -t -n $@ \ 1019 989 '<?xml version="1.0" ?>' \ 1020 '<Include >' \990 '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' \ 1021 991 $(foreach dll \ 1022 992 ,$(if-expr "$(VBOX_VCC_TOOL_STEM)"=="VCC100",msvcr100.dll msvcp100.dll \ … … 1033 1003 $(APPEND) -t -n $@ \ 1034 1004 '<?xml version="1.0" ?>' \ 1035 '<Include >'1005 '<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">' 1036 1006 ifdef VBOX_UNATTENDED_TEMPLATES 1037 1007 $(APPEND) -n $@ \ 1038 1008 ' <Directory Id="dir_VBoxUnattendedTemplates" Name="UnattendedTemplates">' \ 1039 ' <Component Id="cp_UnattendedTemplates" Guid="0571550d-aaa5-4723-c17b-5ddcc29f5686" Win64="$$(var.Property_Win64)">' \1009 ' <Component Id="cp_UnattendedTemplates" Guid="0571550d-aaa5-4723-c17b-5ddcc29f5686" Bitness="$$(var.Property_Bitness)">' \ 1040 1010 $(foreach file,$(VBOX_UNATTENDED_TEMPLATES), \ 1041 1011 ' <File Id="$(file)" Name="$(file)" Source="$$(env.PATH_OUT)\bin\UnattendedTemplates\$(file)" />') \ … … 1053 1023 # from the MS Installer SDK. 1054 1024 # 1025 # Only contains the minimal set of stuff to get a language-specific .msi built. 1026 # 1055 1027 define def_vbox_create_mst 1056 1028 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst \ 1057 1029 + $(VBOX_WIN_INST_REPACK_DIR)/$(lang).mst: \ 1058 1030 $(VBOX_WIN_INST_OUT_DIR)/en_US/$(PACKAGE_NAME_LANG)_en_US.msi \ 1059 $(VBOX_WIN_INST_OUT_DIR)/$(lang)/VirtualBox_$(lang).wixobj \1060 1031 $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 1061 1032 $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ … … 1067 1038 | $$$$(dir $$$$@) $(VBOX_WIN_INST_REPACK_DIR)/ 1068 1039 $(call MSG_L1,Creating language diff for $(lang)) 1069 kmk_time $$(REDIRECT_EXT) -E WIX_TEMP='$$(subst /,\,$$(@D))' -- $(VBOX_PATH_WIX)/light.exe -v -nologo \ 1040 kmk_time $$(REDIRECT_EXT) -E WIX_TEMP='$$(subst /,\,$$(@D))' $(VBOX_WIN_INST_ENV) \ 1041 -- $(VBOX_TOOLS_WIN_WIX_BIN) build \ 1070 1042 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/Language_$(lang).wxl \ 1071 1043 -loc $(VBOX_WIN_INST_OUT_DIR)/NLS/License_$(lang).wxl \ 1072 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 1073 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 1074 -ext $(VBOX_PATH_WIX)/WixUtilExtension.dll \ 1075 $(if-expr defined(VBOX_WITH_MSI_HACK),-ext $(MsiHack_0_OUTDIR)/MsiHackExtension.dll,) \ 1076 $(VBOX_MSI_ICE_IGNORE) \ 1077 -out $$(@D)/$(PACKAGE_NAME_LANG)_$(lang).msi \ 1078 $$(@D)/VirtualBox_$(lang).wixobj \ 1079 $(VBOX_PATH_WIX)/difxapp_$(if-expr "$(KBUILD_TARGET_ARCH)" == "x86",x86,x64).wixlib 1044 -lib $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_en_US.wixlib \ 1045 -ext $(VBOX_TOOLS_WIN_WIXEXT_DIR)/WixToolset.Util.wixext.dll \ 1046 -pdbtype none \ 1047 -out $$(@D)/$(PACKAGE_NAME_LANG)_$(lang).msi 1080 1048 $(REDIRECT) -C $$(@D) -- $$(VBOX_PATH_MSITRAN) -g $$< $(PACKAGE_NAME_LANG)_$(lang).msi $(lang).mst 1081 1049 $(CP) -f -- "$(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst" "$(VBOX_WIN_INST_REPACK_DIR)/$(lang).mst" … … 1105 1073 # The multilingual installer rule. 1106 1074 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG).msi \ 1107 + $(VBOX_WIN_INST_REPACK_DIR)/ 3-multilingual-$(PACKAGE_NAME_LANG).cmd: \1075 + $(VBOX_WIN_INST_REPACK_DIR)/2-multilingual-$(PACKAGE_NAME_LANG).cmd: \ 1108 1076 $(VBOX_WIN_INST_OUT_DIR)/en_US/$(PACKAGE_NAME_LANG)_en_US.msi \ 1109 1077 $(foreach lang,$(filter-out en_US,$(VBOX_INSTALLER_LANGUAGES)),$(VBOX_WIN_INST_OUT_DIR)/$(lang)/$(lang).mst) 1110 1078 $(call MSG_L1,Creating final multilingual MSI) 1111 1079 $(QUIET)$(RM) -f -- \ 1112 $(wildcard $(@D)/$(PACKAGE_BASE)-r*.msi $(VBOX_WIN_INST_REPACK_DIR)/ 3-multilingual-$(PACKAGE_BASE)-r*.cmd )1080 $(wildcard $(@D)/$(PACKAGE_BASE)-r*.msi $(VBOX_WIN_INST_REPACK_DIR)/2-multilingual-$(PACKAGE_BASE)-r*.cmd ) 1113 1081 $(CP) -f -- "$<" "$@" 1114 1082 … … 1122 1090 1123 1091 # Create repack script for this step. 1124 $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/ 3-multilingual-$(PACKAGE_NAME_LANG).cmd" \1092 $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/2-multilingual-$(PACKAGE_NAME_LANG).cmd" \ 1125 1093 'if ".%KBUILD_DEVTOOLS%" == "." (echo KBUILD_DEVTOOLS is not set & exit /b1)' \ 1126 1094 'if ".%KBUILD_BIN_PATH%" == "." (echo KBUILD_BIN_PATH is not set & exit /b1)' \ … … 1151 1119 # 1152 1120 $(PATH_STAGE_BIN)/$(PACKAGE_NAME_MULTIARCH_FINAL) \ 1153 + $(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd: \1121 + $(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd: \ 1154 1122 $(PATH_MULTIARCH_TEMP)/$(PACKAGE_NAME_MULTIARCH.x86) \ 1155 1123 $(PATH_MULTIARCH_TEMP)/$(PACKAGE_NAME_MULTIARCH.amd64) \ … … 1159 1127 $(QUIET)$(RM) -f -- $(wildcard $(subst r$(VBOX_SVN_REV),r*, \ 1160 1128 $@ \ 1161 $(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd ) )1129 $(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd ) ) 1162 1130 $(if-expr defined(VBOX_WITH_MSM_INSTALL),,$(call VBOX_SIGN_CAB_FN,$(PACKAGE_NAME_MULTIARCH_COMMONCAB))) 1163 1131 $(REDIRECT) -C $(@D) -- \ … … 1170 1138 $(call VBOX_SIGN_FILE_FN,$@) 1171 1139 # Create repack script for this step. 1172 $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(@F).cmd" \1140 $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(@F).cmd" \ 1173 1141 'if ".%KBUILD_DEVTOOLS%" == "." (echo KBUILD_DEVTOOLS is not set & exit /b1)' \ 1174 1142 'if ".%KBUILD_BIN_PATH%" == "." (echo KBUILD_BIN_PATH is not set & exit /b1)' \ … … 1193 1161 # 1194 1162 $(PATH_STAGE_BIN)/$(PACKAGE_NAME_MULTIARCH_FINAL) \ 1195 + $(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd: \1163 + $(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd: \ 1196 1164 $(PACKAGE_NAME_FINAL) \ 1197 1165 $(PATH_STAGE_BIN)/VBoxStub.exe \ … … 1200 1168 $(QUIET)$(RM) -f -- $(wildcard $(subst r$(VBOX_SVN_REV),r*, \ 1201 1169 $@ \ 1202 $(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd ) )1170 $(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(PACKAGE_NAME_MULTIARCH_FINAL).cmd ) ) 1203 1171 $(REDIRECT) -C "$(@D)" -- \ 1204 1172 $(VBoxStubBld_1_TARGET) -out $@ \ … … 1208 1176 $(call VBOX_SIGN_FILE_FN,$@,,,,,,timed) 1209 1177 # Create repack script for this step. 1210 $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/ 4-multiarch-$(@F).cmd" \1178 $(APPEND) -nt "$(VBOX_WIN_INST_REPACK_DIR)/3-multiarch-$(@F).cmd" \ 1211 1179 'if ".%KBUILD_DEVTOOLS%" == "." (echo KBUILD_DEVTOOLS is not set & exit /b1)' \ 1212 1180 'if ".%KBUILD_BIN_PATH%" == "." (echo KBUILD_BIN_PATH is not set & exit /b1)' \
Note:
See TracChangeset
for help on using the changeset viewer.