diff options
author | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2023-05-09 20:15:42 +0000 |
---|---|---|
committer | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2023-05-09 20:15:42 +0000 |
commit | 71da5a133471464dd431ff099ea7477eb8c96b4c (patch) | |
tree | 29936ffdbe183f4392c8648de7a3cf9e57032190 | |
parent | 39bc5827330987d5c366cf94ea5571867e390ddd (diff) | |
download | VirtualBox-svn-71da5a133471464dd431ff099ea7477eb8c96b4c.tar.gz |
*.kmk: More SDK makefile cleanups. bugref:10442
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@99706 cfe28804-0f27-0410-a406-dd0f0b0b656f
-rw-r--r-- | Makefile.kmk | 232 | ||||
-rw-r--r-- | src/VBox/Main/Makefile.kmk | 121 | ||||
-rw-r--r-- | src/libs/xpcom18a4/Makefile.kmk | 2 |
3 files changed, 180 insertions, 175 deletions
diff --git a/Makefile.kmk b/Makefile.kmk index eb56dc250ce..1e8f7e8d258 100644 --- a/Makefile.kmk +++ b/Makefile.kmk @@ -223,145 +223,141 @@ if !defined(VBOX_ONLY_ADDITIONS) \ # https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html # the Info.plist file goes into Resources. # - ifeq ($(KBUILD_TARGET),darwin) - ifdef VBOX_WITH_QT6 - include $(KBUILD_PATH)/units/qt6.kmk - VBOX_QT_FWRK_VER = A - VBOX_QT_PATH = $(PATH_SDK_QT6) - VBOX_QT_PATH_LIB = $(PATH_SDK_QT6_LIB) - else - include $(KBUILD_PATH)/units/qt5.kmk - VBOX_QT_FWRK_VER = 5 - VBOX_QT_PATH = $(PATH_SDK_QT5) - VBOX_QT_PATH_LIB = $(PATH_SDK_QT5_LIB) - endif - if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) + if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) + ifeq ($(KBUILD_TARGET),darwin) + ifdef VBOX_WITH_QT6 + include $(KBUILD_PATH)/units/qt6.kmk + VBOX_QT_FWRK_VER = A + VBOX_QT_PATH = $(PATH_SDK_QT6) + VBOX_QT_PATH_LIB = $(PATH_SDK_QT6_LIB) + else + include $(KBUILD_PATH)/units/qt5.kmk + VBOX_QT_FWRK_VER = 5 + VBOX_QT_PATH = $(PATH_SDK_QT5) + VBOX_QT_PATH_LIB = $(PATH_SDK_QT5_LIB) + endif INSTALLS += qt5-bin - endif - qt5-bin_INST = $(INST_VIRTUALBOX)Contents/ - qt5-bin_EXEC_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \ - $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)) - qt5-bin_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \ - $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist) - ifdef VBOX_WITH_QT_DSYMS - qt5-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \ - $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Info.plist=>Frameworks/$(qtmod).framework.dSYM/Contents/Info.plist \ - $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod)=>Frameworks/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod)) - endif - qt5-bin_EXEC_SOURCES += \ - $(VBOX_QT_PATH)/plugins/platforms/libqcocoa$(SUFF_DLL)=>plugins/platforms/libqcocoa$(SUFF_DLL) \ - $(VBOX_QT_PATH)/plugins/platforms/libqminimal$(SUFF_DLL)=>plugins/platforms/libqminimal$(SUFF_DLL) \ - $(VBOX_QT_PATH)/plugins/platforms/libqoffscreen$(SUFF_DLL)=>plugins/platforms/libqoffscreen$(SUFF_DLL) \ - $(VBOX_QT_PATH)/plugins/sqldrivers/libqsqlite$(SUFF_DLL)=>plugins/sqldrivers/libqsqlite$(SUFF_DLL) \ - $(VBOX_QT_PATH)/plugins/styles/libqmacstyle$(SUFF_DLL)=>plugins/styles/libqmacstyle$(SUFF_DLL) - ifdef VBOX_WITH_QT_DSYMS - qt5-bin_SOURCES += $(foreach qtplat, libqcocoa libqminimal libqoffscreen, \ - $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist \ - $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL)=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL)) - qt5-bin_SOURCES += $(foreach qtsqldrv, libqsqlite, \ - $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist \ - $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL)=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL)) - qt5-bin_SOURCES += $(foreach qtstyl, libqmacstyle, \ - $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist \ - $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL)=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL)) - endif - qt5-bin_SYMLINKS = $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \ - Frameworks/$(qtmod).framework/Versions/Current=>$(VBOX_QT_FWRK_VER) \ - Frameworks/$(qtmod).framework/$(qtmod)=>Versions/$(VBOX_QT_FWRK_VER)/$(qtmod) \ - Frameworks/$(qtmod).framework/Resources=>Versions/$(VBOX_QT_FWRK_VER)/Resources) - qt5-bin_INSTALLER = $(INSTALL) $(if $(uid),-o $(uid)) $(if $(gid),-g $(gid)) $(if $(mode),-m $(mode)) $(4) -- \ - "$(1)" "$(2)" $(if-expr "$(source_type_prefix)" == "EXEC_" \ - ,$(NLTAB)install_name_tool \ - $(if-expr "$(suffix $2)" == "", -id "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Framework,@rpath)/$(notdir $(2)).framework/Version/$(VBOX_QT_FWRK_VER)/$(notdir $(2))",) \ - $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \ - $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(VBOX_QT_PATH)/, \ - -change "$(prefix)$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" \ - "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" ) ) \ - "$(2)",) # HACK ALERT! Using $(source_type_prefix) to detect EXEC_SOURCES. - else # win x11 - if1of ($(KBUILD_TARGET), linux solaris) - if !defined(VBOX_ONLY_BUILD) && defined(VBOX_WITH_QTGUI) - ifneq ($(VBOX_GCC_VERSION_CXX),) - if $(VBOX_GCC_VERSION_CXX) < 40400 - $(error gcc >= 4.4 required when compiling against Qt5!) + qt5-bin_INST = $(INST_VIRTUALBOX)Contents/ + qt5-bin_EXEC_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \ + $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)) + qt5-bin_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \ + $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist) + ifdef VBOX_WITH_QT_DSYMS + qt5-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \ + $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Info.plist=>Frameworks/$(qtmod).framework.dSYM/Contents/Info.plist \ + $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod)=>Frameworks/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod)) + endif + qt5-bin_EXEC_SOURCES += \ + $(VBOX_QT_PATH)/plugins/platforms/libqcocoa$(SUFF_DLL)=>plugins/platforms/libqcocoa$(SUFF_DLL) \ + $(VBOX_QT_PATH)/plugins/platforms/libqminimal$(SUFF_DLL)=>plugins/platforms/libqminimal$(SUFF_DLL) \ + $(VBOX_QT_PATH)/plugins/platforms/libqoffscreen$(SUFF_DLL)=>plugins/platforms/libqoffscreen$(SUFF_DLL) \ + $(VBOX_QT_PATH)/plugins/sqldrivers/libqsqlite$(SUFF_DLL)=>plugins/sqldrivers/libqsqlite$(SUFF_DLL) \ + $(VBOX_QT_PATH)/plugins/styles/libqmacstyle$(SUFF_DLL)=>plugins/styles/libqmacstyle$(SUFF_DLL) + ifdef VBOX_WITH_QT_DSYMS + qt5-bin_SOURCES += $(foreach qtplat, libqcocoa libqminimal libqoffscreen, \ + $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist \ + $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL)=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL)) + qt5-bin_SOURCES += $(foreach qtsqldrv, libqsqlite, \ + $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist \ + $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL)=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL)) + qt5-bin_SOURCES += $(foreach qtstyl, libqmacstyle, \ + $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist \ + $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL)=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL)) + endif + qt5-bin_SYMLINKS = $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \ + Frameworks/$(qtmod).framework/Versions/Current=>$(VBOX_QT_FWRK_VER) \ + Frameworks/$(qtmod).framework/$(qtmod)=>Versions/$(VBOX_QT_FWRK_VER)/$(qtmod) \ + Frameworks/$(qtmod).framework/Resources=>Versions/$(VBOX_QT_FWRK_VER)/Resources) + qt5-bin_INSTALLER = $(INSTALL) $(if $(uid),-o $(uid)) $(if $(gid),-g $(gid)) $(if $(mode),-m $(mode)) $(4) -- \ + "$(1)" "$(2)" $(if-expr "$(source_type_prefix)" == "EXEC_" \ + ,$(NLTAB)install_name_tool \ + $(if-expr "$(suffix $2)" == "", -id "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Framework,@rpath)/$(notdir $(2)).framework/Version/$(VBOX_QT_FWRK_VER)/$(notdir $(2))",) \ + $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \ + $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(VBOX_QT_PATH)/, \ + -change "$(prefix)$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" \ + "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" ) ) \ + "$(2)",) # HACK ALERT! Using $(source_type_prefix) to detect EXEC_SOURCES. + else # win x11 + if1of ($(KBUILD_TARGET), linux solaris) + if !defined(VBOX_ONLY_BUILD) && defined(VBOX_WITH_QTGUI) + ifneq ($(VBOX_GCC_VERSION_CXX),) + if $(VBOX_GCC_VERSION_CXX) < 40400 + $(error gcc >= 4.4 required when compiling against Qt5!) + endif endif endif endif - endif - if defined(VBOX_WITH_ORACLE_QT) || defined(VBOX_WITH_QT_PAYLOAD) - include $(KBUILD_PATH)/units/qt5.kmk - ifeq ($(KBUILD_TARGET),win) - if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) + if defined(VBOX_WITH_ORACLE_QT) || defined(VBOX_WITH_QT_PAYLOAD) + include $(KBUILD_PATH)/units/qt5.kmk + ifeq ($(KBUILD_TARGET),win) INSTALLS += qt5-bin - endif - qt5-bin_MODE = 755 - qt5-bin_INST = $(INST_BIN) - qt5-bin_SOURCES = \ - $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/bin/$(qtmod)$(SUFF_DLL))) - qt5-bin_SOURCES += \ - $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL) \ - $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL) \ - $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL) \ - $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL) \ - $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL) - ifdef VBOX_WITH_QT_PDBS + qt5-bin_MODE = 755 + qt5-bin_INST = $(INST_BIN) + qt5-bin_SOURCES = \ + $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/bin/$(qtmod)$(SUFF_DLL))) qt5-bin_SOURCES += \ - $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT5)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb)) - endif # VBOX_WITH_QT_PDBS - else # x11 - if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) + $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL) \ + $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL) \ + $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL) \ + $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL) \ + $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL) + ifdef VBOX_WITH_QT_PDBS + qt5-bin_SOURCES += \ + $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT5)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb)) + endif # VBOX_WITH_QT_PDBS + else # x11 INSTALLS += qt5-bin - endif - qt5-bin_MODE = 755 - qt5-bin_INST = $(INST_BIN) - ifdef VBOX_WITH_HARDENING - # The wildcards are necessary to install the libs instead of the symlinks - qt5-bin_SOURCES = \ - $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*[0-9])=>lib$(qtmod).so.5) \ - $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib)) - else # !VBOX_WITH_HARDENING - # For non-hardened builds we need to remove the RUNPATH. This stuff is - # ugly but we need to prevent kBuild from hard-linking otherwise we - # (indirectly) change the binaries in tools - ifneq ($(KBUILD_TARGET),solaris) - QT5_VERSION = 5.15.2 - else - QT5_VERSION = 5.15.2 - endif - qt5-bin_SOURCES = \ - $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)=>lib$(qtmod).so.5) \ - $(foreach lib,$(VBOX_QT_PLUGINS),$(qt5-bin_0_OUTDIR)/$(lib)=>$(lib)) - - $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)): \ - $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt5-bin_0_OUTDIR)/ + qt5-bin_MODE = 755 + qt5-bin_INST = $(INST_BIN) + ifdef VBOX_WITH_HARDENING + # The wildcards are necessary to install the libs instead of the symlinks + qt5-bin_SOURCES = \ + $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*[0-9])=>lib$(qtmod).so.5) \ + $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib)) + else # !VBOX_WITH_HARDENING + # For non-hardened builds we need to remove the RUNPATH. This stuff is + # ugly but we need to prevent kBuild from hard-linking otherwise we + # (indirectly) change the binaries in tools + ifneq ($(KBUILD_TARGET),solaris) + QT5_VERSION = 5.15.2 + else + QT5_VERSION = 5.15.2 + endif + qt5-bin_SOURCES = \ + $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)=>lib$(qtmod).so.5) \ + $(foreach lib,$(VBOX_QT_PLUGINS),$(qt5-bin_0_OUTDIR)/$(lib)=>$(lib)) + + $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)): \ + $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt5-bin_0_OUTDIR)/ $(call MSG_INST_FILE,$^,$@) $(QUIET)$(CP) $^ $@ $(QUIET)chrpath --replace "\$$ORIGIN" $@ - ifn1of ($(KBUILD_TARGET), solaris linux) - $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \ - $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/ + ifn1of ($(KBUILD_TARGET), solaris linux) + $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \ + $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/ $(call MSG_INST_FILE,$^,$@) $(QUIET)$(MKDIR) -p $(@D) $(QUIET)$(CP) $^ $@ $(QUIET)chrpath --delete $@ - endif # !solaris and !linux + endif # !solaris and !linux - # @todo For solaris and some linuxes dlopen fails to navigate executable rpath to dependent libraries, - # so add explicit rpath for libqxcb.so, find better solution later. - if1of ($(KBUILD_TARGET), solaris linux) - $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \ - $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/ + # @todo For solaris and some linuxes dlopen fails to navigate executable rpath to dependent libraries, + # so add explicit rpath for libqxcb.so, find better solution later. + if1of ($(KBUILD_TARGET), solaris linux) + $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \ + $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/ $(call MSG_INST_FILE,$^,$@) $(QUIET)$(MKDIR) -p $(@D) $(QUIET)$(CP) $^ $@ $(QUIET)chrpath --replace "\$$ORIGIN/../../" $@ - endif # solaris linux + endif # solaris linux - endif # !VBOX_WITH_HARDENING - endif # x11 - endif # VBOX_WITH_ORACLE_QT || VBOX_WITH_QT_PAYLOAD - endif # win x11 + endif # !VBOX_WITH_HARDENING + endif # x11 + endif # VBOX_WITH_ORACLE_QT || VBOX_WITH_QT_PAYLOAD + endif # win x11 + endif # defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) # diff --git a/src/VBox/Main/Makefile.kmk b/src/VBox/Main/Makefile.kmk index ce4e91bab73..542369103ae 100644 --- a/src/VBox/Main/Makefile.kmk +++ b/src/VBox/Main/Makefile.kmk @@ -62,7 +62,7 @@ endif # VBOX_PATH_MAIN_SRC := $(PATH_SUB_CURRENT) -ifdef VBOX_ONLY_SDK +if defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_SDK_ON_WINDOWS) # HACK ALERT! VBoxCOM is skipped, but its output dir is referenced a lot. So, define it. VBoxCOM_0_OUTDIR := $(call TARGET_PATH,VBoxCOM) BLDDIRS += $(VBoxCOM_0_OUTDIR) $(PATH_STAGE_BIN)/components @@ -1361,65 +1361,73 @@ if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_EXTPACKS) # Note this goes on f endif # !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_EXTPACKS) (the ifndef is far above) -ifndef VBOX_ONLY_SDK - # - # VBoxCOM - COM Abstraction Layer library - # +# +# VBoxCOM - COM Abstraction Layer library +# +ifndef VBOX_ONLY_SDK LIBRARIES += VBoxCOM - VBoxCOM_TEMPLATE = VBoxMainLib - VBoxCOM_INTERMEDIATES = $(VBOX_MAIN_PREREQS) \ - $(VBOX_MAIN_APIWRAPPER_GEN_HDRS) - VBoxCOM_SOURCES = \ - glue/com.cpp \ - glue/VBoxLogRelCreate.cpp \ - glue/GetVBoxUserHomeDirectory.cpp \ - glue/initterm.cpp \ - glue/string.cpp \ - glue/string-base64.cpp \ - glue/AutoLock.cpp \ - glue/EventQueue.cpp \ - glue/NativeEventQueue.cpp \ - glue/ErrorInfo.cpp \ - glue/errorprint.cpp - VBoxCOM_INCS += $(VBOX_MAIN_APIWRAPPER_INCS) \ - include - ifeq ($(KBUILD_TARGET),win) - ifdef VBOX_WITH_MIDL_PROXY_STUB - VBoxCOM_DEFS.win = VBOX_WITH_AUTO_COM_REG_UPDATE - endif - ifdef VBOX_WITH_SDS - VBoxCOM_DEFS.win += VBOX_WITH_SDS - endif - VBoxCOM_DEFS.x86 = _WIN32_WINNT=0x0500 - VBoxCOM_DEFS.amd64 = _WIN32_WINNT=0x0510 - VBoxCOM_SOURCES += \ - $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c - VBoxCOM_CLEAN = \ - $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \ - $(VBoxCOM_0_OUTDIR)/VirtualBox_p.c \ - $(VBoxCOM_0_OUTDIR)/dlldata.c \ - $(VBoxCOM_0_OUTDIR)/VirtualBox.h \ - $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb - VBoxCOM_CLEAN += \ - $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_i.c \ - $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_p.c \ - $(VBoxCOM_0_OUTDIR)/legacy/dlldata.c \ - $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.h \ - $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb - VBoxCOM_BLDDIRS = $(VBoxCOM_0_OUTDIR)/legacy/ - else # !win - VBoxCOM_SOURCES += \ - $(VBoxCOM_0_OUTDIR)/VirtualBox_XPCOM_i.c \ - glue/xpcom/helpers.cpp - endif # !win - - ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING - glue/VBoxLogRelCreate.cpp_DEFS = KBUILD_TYPE="$(KBUILD_TYPE)" - else - glue/VBoxLogRelCreate.cpp_DEFS = KBUILD_TYPE=\"$(KBUILD_TYPE)\" +endif +VBoxCOM_TEMPLATE = VBoxMainLib +VBoxCOM_INTERMEDIATES = $(VBOX_MAIN_PREREQS) \ + $(VBOX_MAIN_APIWRAPPER_GEN_HDRS) +VBoxCOM_SOURCES = \ + glue/com.cpp \ + glue/VBoxLogRelCreate.cpp \ + glue/GetVBoxUserHomeDirectory.cpp \ + glue/initterm.cpp \ + glue/string.cpp \ + glue/string-base64.cpp \ + glue/AutoLock.cpp \ + glue/EventQueue.cpp \ + glue/NativeEventQueue.cpp \ + glue/ErrorInfo.cpp \ + glue/errorprint.cpp +VBoxCOM_INCS += $(VBOX_MAIN_APIWRAPPER_INCS) \ + include +ifeq ($(KBUILD_TARGET),win) + ifdef VBOX_WITH_MIDL_PROXY_STUB + VBoxCOM_DEFS.win = VBOX_WITH_AUTO_COM_REG_UPDATE + endif + ifdef VBOX_WITH_SDS + VBoxCOM_DEFS.win += VBOX_WITH_SDS endif + VBoxCOM_DEFS.x86 = _WIN32_WINNT=0x0500 + VBoxCOM_DEFS.amd64 = _WIN32_WINNT=0x0510 + VBoxCOM_SOURCES += \ + $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c + VBoxCOM_CLEAN = \ + $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \ + $(VBoxCOM_0_OUTDIR)/VirtualBox_p.c \ + $(VBoxCOM_0_OUTDIR)/dlldata.c \ + $(VBoxCOM_0_OUTDIR)/VirtualBox.h \ + $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb + VBoxCOM_CLEAN += \ + $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_i.c \ + $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_p.c \ + $(VBoxCOM_0_OUTDIR)/legacy/dlldata.c \ + $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.h \ + $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb + VBoxCOM_BLDDIRS = $(VBoxCOM_0_OUTDIR)/legacy/ +else # !win + VBoxCOM_SOURCES += \ + $(VBoxCOM_0_OUTDIR)/VirtualBox_XPCOM_i.c \ + glue/xpcom/helpers.cpp +endif # !win + +ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING + glue/VBoxLogRelCreate.cpp_DEFS = KBUILD_TYPE="$(KBUILD_TYPE)" +else + glue/VBoxLogRelCreate.cpp_DEFS = KBUILD_TYPE=\"$(KBUILD_TYPE)\" +endif + +# A couple of tricks to define VBoxCOM_0_OUTDIR for SDK builds and mkdir rule. +$(call KB_FN_DO_PASS0_ON_TARGET,VBoxCOM) +BLDDIRS += $(VBoxCOM_0_OUTDIR) + + +ifndef VBOX_ONLY_SDK # 32-bit version of VBoxCOM. if defined(VBOX_WITH_32_ON_64_MAIN_API) && !defined(VBOX_ONLY_EXTPACKS) @@ -1451,7 +1459,6 @@ ifndef VBOX_ONLY_SDK USES += qt5 endif - endif # !VBOX_ONLY_SDK diff --git a/src/libs/xpcom18a4/Makefile.kmk b/src/libs/xpcom18a4/Makefile.kmk index 1ff1225075a..c41bfc9808a 100644 --- a/src/libs/xpcom18a4/Makefile.kmk +++ b/src/libs/xpcom18a4/Makefile.kmk @@ -689,6 +689,8 @@ VBox-xpcom-nspr_CLEAN += \ $(VBox-xpcom-nspr_0_OUTDIR)/_pr_bld.h \ $(VBox-xpcom-nspr_0_OUTDIR)/_pl_bld.h +$(call KB_FN_DO_PASS0_ON_TARGET,VBox-xpcom-nspr) + $$(VBox-xpcom-nspr_0_OUTDIR)/_pr_bld.h: | $$(VBox-xpcom-nspr_0_OUTDIR)/ $(call MSG_GENERATE,,$@) $(QUIET)$(APPEND) -t $@ '#define _BUILD_STRING "$(date +%Y-%m-%d %T)"' |