VirtualBox

source: vbox/trunk/Makefile.kmk@ 103538

Last change on this file since 103538 was 103510, checked in by vboxsync, 3 months ago

parfait: Start including a baseline of reports which are either false positives or not worth fixing, bugref:3409

While parfait has the ability to annotate source code to suppress certain defect types for code through Parfait_ALLOW
it is mostly unsuitable for us as the code triggering the report needs to be annotated instead of the origin of the report
(imagine a chain of calls where a condition at the top which is a false assumption by parfait might trigger a report at the
end of the call chain in a library function). Annotating the code would silence all reports of this type which is not what we want,
especially for functions in libraries.
Flagging the reports on the server is also not feasible because they are not taken into account when running parfait locally.
So the next best thing is to feed the baseline of reports to ignore to parfait using a text file which is tedious to create because
one has to extract the report checksum from report.txt and add it to the baseline. Hopefully this is mostly a once in a lifetime task
for the initial baseline and will be much less work in the future.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 116.0 KB
Line 
1# $Id: Makefile.kmk 103510 2024-02-21 21:34:34Z vboxsync $
2## @file
3# Top level makefile.
4#
5
6#
7# Copyright (C) 2006-2023 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28SUB_DEPTH = .
29include $(KBUILD_PATH)/subheader.kmk
30
31#
32# Sub-makefiles / Sub-directories.
33#
34ifndef VBOX_ONLY_ROOT_MAKEFILE
35 if (defined(VBOX_WITH_DOCS) || defined(VBOX_WITH_MAIN)) \
36 && ( !defined(VBOX_ONLY_BUILD) \
37 || defined(VBOX_ONLY_DOCS) \
38 || (defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_SDK_IN_VM))) \
39 && "$(intersects $(KBUILD_TARGET_ARCH),$(VBOX_SUPPORTED_HOST_ARCHS))" != ""
40 include $(PATH_SUB_CURRENT)/doc/manual/Makefile.kmk
41 endif
42 include $(PATH_SUB_CURRENT)/src/Makefile.kmk
43 ifdef VBOX_WITH_INCLUDE_SYNTAX_CHECKING
44 include $(PATH_SUB_CURRENT)/include/Makefile.kmk
45 endif
46endif
47
48#
49# Below we might need TOOL_ZIP_UNPACK (for the additions/docs/efifw packages
50# from the build server), and it's not really worth the effort of dragging in
51#q this tool only if absolutely needed.
52#
53## @todo Hack to get at TOOL_ZIP_UNPACK; see if this can be integrated somehow...
54include $(KBUILD_PATH)/tools/ZIP.kmk
55ifndef TOOL_ZIP_PACK
56 TOOL_ZIP_PACK = zip
57endif
58
59
60## @todo split up this file!
61
62
63#
64# Clean up global stuff that Config.kmk generates.
65#
66OTHER_CLEAN += \
67 $(VBOX_PACKAGE_HEADER) \
68 $(VBOX_LICENSE_VER_KMK) \
69 $(VBOX_VERSION_MK) \
70 $(VBOX_VERSION_HEADER) \
71 $(VBOX_VERSION_STAMP) \
72 $(wildcard $(PATH_OUT)/version-stamp-*.*.*) \
73 $(VBOX_SVN_REV_KMK).ts \
74 $(VBOX_SVN_REV_KMK) \
75 $(PATH_OUT)/DynamicConfig.kmk
76
77
78if !defined(VBOX_ONLY_ADDITIONS) \
79 && !defined(VBOX_ONLY_DOCS) \
80 && !defined(VBOX_ONLY_EXTPACKS) \
81 && !defined(VBOX_ONLY_VALIDATIONKIT) # -> line 426b ;-)
82
83 if !defined(VBOX_OSE) && defined(VBOX_LICENSE_FILES)
84 #
85 # Install the license (and misc non-executable stuff).
86 #
87 INSTALLS += InstallLicenseFiles
88 InstallLicenseFiles_INST = $(INST_BIN)
89 InstallLicenseFiles_MODE = 0644
90 InstallLicenseFiles_SOURCES =
91 InstallLicenseFiles_SOURCES += \
92 $(VBOX_BRAND_LICENSE_HTML)=>License-$(VBOX_LICENSE_VER).html \
93 $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES),$(VBOX_BRAND_$(f)_LICENSE_HTML)=>License-$(VBOX_LICENSE_VER)-$(f).html)
94 endif
95
96
97 #
98 # Install external binaries (mostly redistributable parts of tools we use).
99 #
100 # To avoid dragging in unnecessary tools and sdks here, we don't use the .win
101 # and .linux property suffixes.
102 #
103 if !defined(VBOX_ONLY_SDK)
104 INSTALLS += InstallExternalLibs
105 endif
106
107 InstallExternalLibs_INST = $(INST_BIN)
108
109 # The SDL DLLs
110 if1of ($(KBUILD_TARGET), win os2)
111 ifdef VBOX_WITH_VBOXSDL
112 include $(KBUILD_PATH)/sdks/LIBSDL.kmk
113 InstallExternalLibs_SOURCES += \
114 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_SDK_LIBSDL_SDL))
115 ifdef VBOX_WITH_SECURELABEL
116 InstallExternalLibs_SOURCES += \
117 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_SDK_LIBSDL_SDLTTF))
118 endif
119 ifeq ($(KBUILD_TARGET),os2)
120 InstallExternalLibs_SOURCES += \
121 $(DLL_SDK_LIBSDL_FSLIB)
122 endif
123 endif
124 endif
125
126
127 # The compiler runtime DLLs.
128 ifeq ($(KBUILD_TARGET).$(VBOX_WITHOUT_COMPILER_REDIST),win.)
129 ifndef TOOL_$(VBOX_VCC_TOOL)
130 include $(KBUILD_PATH)/tools/$(VBOX_VCC_TOOL).kmk
131 endif
132 ifndef TOOL_$(VBOX_VCC_TOOL_STEM)X86
133 include $(KBUILD_PATH)/tools/$(VBOX_VCC_TOOL_STEM)X86.kmk
134 endif
135 ifdef PATH_TOOL_$(VBOX_VCC_TOOL_STEM)_REDIST
136 InstallExternalLibs_SOURCES += \
137 $(foreachfile redistdll, $(qaddprefix ,$(requote unq,$(PATH_TOOL_$(VBOX_VCC_TOOL)_REDIST_CRT)/), \
138 $(TOOL_$(VBOX_VCC_TOOL)_REDIST_CRT_DLLS) $(TOOL_$(VBOX_VCC_TOOL)_REDIST_CPP_DLLS)) \
139 ,$(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(redistdll)) \
140 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(redistdll))=>testcase/$(qnotdir ,$(redistdll)))
141 ifdef VBOX_WITH_32_ON_64_MAIN_API
142 InstallExternalLibs_SOURCES += \
143 $(foreachfile redistdll, $(qaddprefix ,$(requote unq,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_REDIST_CRT)/), \
144 $(TOOL_$(VBOX_VCC_TOOL_STEM)X86_REDIST_CRT_DLLS) $(TOOL_$(VBOX_VCC_TOOL_STEM)X86_REDIST_CPP_DLLS)) \
145 ,$(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(redistdll),x86)=>x86/$(qnotdir ,$(redistdll)))
146 endif
147 ifeq ($(VBOX_VCC_CRT_TYPE),d)
148 InstallExternalLibs_SOURCES += \
149 $(foreachfile redistdll, $(qaddprefix ,$(requote unq,$(PATH_TOOL_$(VBOX_VCC_TOOL)_REDIST_DEBUG_CRT)/), \
150 $(addsuffix d.dll,$(basename $(TOOL_$(VBOX_VCC_TOOL)_REDIST_CRT_DLLS) $(TOOL_$(VBOX_VCC_TOOL)_REDIST_CPP_DLLS)))) \
151 ,$(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(redistdll)) \
152 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(redistdll))=>testcase/$(qnotdir ,$(redistdll)))
153 ifdef VBOX_WITH_32_ON_64_MAIN_API
154 InstallExternalLibs_SOURCES += \
155 $(foreachfile redistdll, $(qaddprefix ,$(requote unq,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_REDIST_DEBUG_CRT)/), \
156 $(addsuffix d.dll,$(basename $(TOOL_$(VBOX_VCC_TOOL_STEM)X86_REDIST_CRT_DLLS) $(TOOL_$(VBOX_VCC_TOOL_STEM)X86_REDIST_CPP_DLLS)))) \
157 ,$(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(redistdll),x86)=>x86/$(qnotdir ,$(redistdll)))
158 endif
159 endif
160 ifeq ($(KBUILD_TYPE),asan)
161 ifeq ($(KBUILD_TARGET_ARCH),amd64)
162 InstallExternalLibs_SOURCES += \
163 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)AMD64_BIN)/clang_rt.asan_dynamic-x86_64.dll) \
164 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)AMD64_BIN)/clang_rt.asan_dynamic-x86_64.dll)=>testcase/clang_rt.asan_dynamic-x86_64.dll
165 ifeq ($(VBOX_VCC_CRT_TYPE),d)
166 InstallExternalLibs_SOURCES += \
167 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)AMD64_BIN)/clang_rt.asan_dbg_dynamic-x86_64.dll) \
168 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)AMD64_BIN)/clang_rt.asan_dbg_dynamic-x86_64.dll)=>testcase/clang_rt.asan_dbg_dynamic-x86_64.dll
169 endif
170 endif
171 ifeq ($(KBUILD_TARGET_ARCH),x86)
172 InstallExternalLibs_SOURCES += \
173 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN)/clang_rt.asan_dynamic-i386.dll) \
174 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN)/clang_rt.asan_dynamic-i386.dll)=>testcase/clang_rt.asan_dynamic-i386.dll
175 ifeq ($(VBOX_VCC_CRT_TYPE),d)
176 InstallExternalLibs_SOURCES += \
177 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN)/clang_rt.asan_dbg_dynamic-i386.dll) \
178 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN)/clang_rt.asan_dbg_dynamic-i386.dll)=>testcase/clang_rt.asan_dbg_dynamic-i386.dll
179 endif
180 endif
181 ifdef VBOX_WITH_32_ON_64_MAIN_API
182 InstallExternalLibs_SOURCES += $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN)/clang_rt.asan_dynamic-i386.dll,x86)=>x86/clang_rt.asan_dynamic-i386.dll
183 ifeq ($(VBOX_VCC_CRT_TYPE),d)
184 InstallExternalLibs_SOURCES += $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN)/clang_rt.asan_dbg_dynamic-i386.dll,x86)=>x86/clang_rt.asan_dbg_dynamic-i386.dll
185 endif
186 endif
187 endif
188 else
189 VBOX_VCC_REDIR_BASE := Microsoft.VC$(substr $(VBOX_VCC_TOOL),4,3)
190 VBOX_PATH_VCC_REDIST = $(PATH_TOOL_$(VBOX_VCC_TOOL))/redist/
191 VBOX_PATH_VCC_REDIST_CRT = $(VBOX_PATH_VCC_REDIST)/$(subst amd64,x64,$(KBUILD_TARGET_ARCH))/$(VBOX_VCC_REDIR_BASE).CRT
192 VBOX_PATH_VCC_REDIST_CRT_DBG = $(VBOX_PATH_VCC_REDIST)/Debug_NonRedist/$(subst amd64,x64,$(KBUILD_TARGET_ARCH))/$(VBOX_VCC_REDIR_BASE).DebugCRT
193 VBOX_PATH_VCC_REDIST_CRT_X86 = $(VBOX_PATH_VCC_REDIST)/x86/$(VBOX_VCC_REDIR_BASE).CRT
194 VBOX_PATH_VCC_REDIST_CRT_DBG_X86 = $(VBOX_PATH_VCC_REDIST)/Debug_NonRedist/x86/$(VBOX_VCC_REDIR_BASE).DebugCRT
195
196 InstallExternalLibs_SOURCES += \
197 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT)/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4).dll) \
198 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT)/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4).dll) \
199 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT)/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4).dll)=>testcase/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4).dll \
200 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT)/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4).dll)=>testcase/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4).dll
201 ifdef VBOX_WITH_32_ON_64_MAIN_API
202 InstallExternalLibs_SOURCES += \
203 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_X86)/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4).dll,x86_)=>x86/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4).dll \
204 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_X86)/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4).dll,x86_)=>x86/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4).dll
205 endif
206 ifeq ($(VBOX_VCC_CRT_TYPE),d)
207 InstallExternalLibs_SOURCES += \
208 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG)/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll) \
209 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG)/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll) \
210 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG)/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll)=>testcase/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll \
211 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG)/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll)=>testcase/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll
212 ifdef VBOX_WITH_32_ON_64_MAIN_API
213 InstallExternalLibs_SOURCES += \
214 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG_X86)/msvcr$(substr $(VBOX_VCC_TOOL_STEM)d,4).dll,x86_)=>x86/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll \
215 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG_X86)/msvcp$(substr $(VBOX_VCC_TOOL_STEM)d,4).dll,x86_)=>x86/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll
216 endif
217 endif
218 endif
219 endif
220
221 #
222 # Install our Qt DLLs / Shared Objects / Frameworks.
223 # Note: The installer fixes the darwin .dylibs when hardening is enabled.
224 # Note: Contents/Info.plist is where it's in 4.7.x, not sure if the location is kosher... According to
225 # https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html
226 # the Info.plist file goes into Resources.
227 #
228 if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) && "$(KBUILD_TARGET)" == "darwin"
229 ifdef VBOX_WITH_QT6
230 include $(KBUILD_PATH)/units/qt6.kmk
231 VBOX_QT_FWRK_VER := A
232 VBOX_QT_PATH := $(PATH_SDK_QT6)
233 VBOX_QT_PATH_LIB := $(PATH_SDK_QT6_LIB)
234 else
235 include $(KBUILD_PATH)/units/qt5.kmk
236 VBOX_QT_FWRK_VER := 5
237 VBOX_QT_PATH := $(PATH_SDK_QT5)
238 VBOX_QT_PATH_LIB := $(PATH_SDK_QT5_LIB)
239 endif
240
241 INSTALLS += qt-bin
242 qt-bin_INST = $(INST_VIRTUALBOX)Contents/
243 qt-bin_EXEC_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
244 $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod))
245 qt-bin_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
246 $(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)
247 ifdef VBOX_WITH_QT_DSYMS
248 qt-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
249 $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Info.plist=>Frameworks/$(qtmod).framework.dSYM/Contents/Info.plist \
250 $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod)=>Frameworks/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod))
251 endif
252 qt-bin_EXEC_SOURCES += \
253 $(VBOX_QT_PATH)/plugins/platforms/libqcocoa$(SUFF_DLL)=>plugins/platforms/libqcocoa$(SUFF_DLL) \
254 $(VBOX_QT_PATH)/plugins/platforms/libqminimal$(SUFF_DLL)=>plugins/platforms/libqminimal$(SUFF_DLL) \
255 $(VBOX_QT_PATH)/plugins/platforms/libqoffscreen$(SUFF_DLL)=>plugins/platforms/libqoffscreen$(SUFF_DLL) \
256 $(VBOX_QT_PATH)/plugins/sqldrivers/libqsqlite$(SUFF_DLL)=>plugins/sqldrivers/libqsqlite$(SUFF_DLL) \
257 $(VBOX_QT_PATH)/plugins/styles/libqmacstyle$(SUFF_DLL)=>plugins/styles/libqmacstyle$(SUFF_DLL)
258 ifdef VBOX_WITH_QT_DSYMS
259 ifndef VBOX_WITH_QT6
260 qt-bin_SOURCES += $(foreach qtplat, libqcocoa libqminimal libqoffscreen, \
261 $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist \
262 $(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))
263 qt-bin_SOURCES += $(foreach qtsqldrv, libqsqlite, \
264 $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist \
265 $(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))
266 qt-bin_SOURCES += $(foreach qtstyl, libqmacstyle, \
267 $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist \
268 $(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))
269 else # qt6
270 qt-bin_SOURCES += $(foreach qtplat, qcocoa qminimal qoffscreen, \
271 $(VBOX_QT_PATH)/plugins/platforms/lib$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/platforms/lib$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist \
272 $(VBOX_QT_PATH)/plugins/platforms/lib$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)=>plugins/platforms/lib$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat))
273 qt-bin_SOURCES += $(foreach qtsqldrv, qsqlite, \
274 $(VBOX_QT_PATH)/plugins/sqldrivers/lib$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/sqldrivers/lib$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist \
275 $(VBOX_QT_PATH)/plugins/sqldrivers/lib$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)=>plugins/sqldrivers/lib$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv))
276 qt-bin_SOURCES += $(foreach qtstyl, qmacstyle, \
277 $(VBOX_QT_PATH)/plugins/styles/lib$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/styles/lib$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist \
278 $(VBOX_QT_PATH)/plugins/styles/lib$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)=>plugins/styles/lib$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl))
279 endif # qt6
280 endif
281 qt-bin_SYMLINKS = $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
282 Frameworks/$(qtmod).framework/Versions/Current=>$(VBOX_QT_FWRK_VER) \
283 Frameworks/$(qtmod).framework/$(qtmod)=>Versions/$(VBOX_QT_FWRK_VER)/$(qtmod) \
284 Frameworks/$(qtmod).framework/Resources=>Versions/$(VBOX_QT_FWRK_VER)/Resources)
285 qt-bin_INSTALLER = $(INSTALL) $(if $(uid),-o $(uid)) $(if $(gid),-g $(gid)) $(if $(mode),-m $(mode)) $(4) -- "$(1)" "$(2)" \
286 $(if-expr "$(source_type_prefix)" == "EXEC_" \
287 ,$(NLTAB)install_name_tool \
288 $(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))",) \
289 $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
290 $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(VBOX_QT_PATH)/, \
291 -change "$(prefix)$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" \
292 "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)") ) \
293 "$(2)",) # HACK ALERT! Using $(source_type_prefix) to detect EXEC_SOURCES.
294 else if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) && (defined(VBOX_WITH_ORACLE_QT) || defined(VBOX_WITH_QT_PAYLOAD))
295 # win x11
296 ifndef VBOX_WITH_QT6
297 include $(KBUILD_PATH)/units/qt5.kmk
298 else
299 include $(KBUILD_PATH)/units/qt6.kmk
300 endif
301
302 INSTALLS += qt-bin
303 qt-bin_MODE := 755
304 qt-bin_INST = $(INST_BIN)
305
306 ifeq ($(KBUILD_TARGET),win)
307 ifndef VBOX_WITH_QT6
308 qt-bin_SOURCES = \
309 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/bin/$(qtmod)$(SUFF_DLL)))
310 qt-bin_SOURCES += \
311 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL) \
312 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL) \
313 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL) \
314 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL) \
315 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL)
316 ifdef VBOX_WITH_QT_PDBS
317 qt-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT5)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb))
318 endif
319 else # qt6
320 qt-bin_SOURCES = \
321 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/bin/$(qtmod)$(SUFF_DLL)))
322 qt-bin_SOURCES += \
323 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/platforms/qwindowsVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindowsVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
324 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/platforms/qminimalVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimalVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
325 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/platforms/qoffscreenVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreenVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
326 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/sqldrivers/qsqliteVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqliteVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
327 $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/styles/qwindowsvistastyleVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyleVBox$(VBOX_QT_DBG)$(SUFF_DLL)
328 ifdef VBOX_WITH_QT_PDBS
329 qt-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT6)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb))
330 endif
331 endif # qt6
332
333 else # x11
334 ifndef VBOX_WITH_QT6
335 VBOX_QT_VERSION := 5.15.2
336 VBOX_QT_VERSION_MAJOR := 5
337 else
338 VBOX_QT_VERSION := 6.3.0
339 VBOX_QT_VERSION_MAJOR := 6
340 endif
341 ifdef VBOX_WITH_HARDENING
342 # The wildcards are necessary to install the libs instead of the symlinks
343 qt-bin_SOURCES = \
344 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*[0-9])=>lib$(qtmod).so.$(VBOX_QT_VERSION_MAJOR)) \
345 $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib))
346 else # !VBOX_WITH_HARDENING
347 # For non-hardened builds we need to remove the RUNPATH. This stuff is
348 # ugly but we need to prevent kBuild from hard-linking otherwise we
349 # (indirectly) change the binaries in tools
350 qt-bin_SOURCES = \
351 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt-bin_0_OUTDIR)/lib$(qtmod).so.$(VBOX_QT_VERSION)=>lib$(qtmod).so.$(VBOX_QT_VERSION_MAJOR)) \
352 $(foreach lib,$(VBOX_QT_PLUGINS),$(qt-bin_0_OUTDIR)/$(lib)=>$(lib))
353
354 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt-bin_0_OUTDIR)/lib$(qtmod).so.$(VBOX_QT_VERSION)): \
355 $$(qt-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt-bin_0_OUTDIR)/
356 $(call MSG_INST_FILE,$^,$@)
357 $(QUIET)$(CP) $^ $@
358 $(QUIET)chrpath --replace "\$$ORIGIN" $@
359
360 ifn1of ($(KBUILD_TARGET), solaris linux)
361 $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt-bin_0_OUTDIR)/$(lib)): $$(qt-bin_0_OUTDIR)/% : \
362 $(VBOX_PATH_QT)/% | $$(qt-bin_0_OUTDIR)/
363 $(call MSG_INST_FILE,$^,$@)
364 $(QUIET)$(MKDIR) -p $(@D)
365 $(QUIET)$(CP) $^ $@
366 $(QUIET)chrpath --delete $@
367 endif # !solaris and !linux
368
369 # @todo For solaris and some linuxes dlopen fails to navigate executable rpath to dependent libraries,
370 # so add explicit rpath for libqxcb.so, find better solution later.
371 if1of ($(KBUILD_TARGET), solaris linux)
372 $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt-bin_0_OUTDIR)/$(lib)): $$(qt-bin_0_OUTDIR)/% : \
373 $(VBOX_PATH_QT)/% | $$(qt-bin_0_OUTDIR)/
374 $(call MSG_INST_FILE,$^,$@)
375 $(QUIET)$(MKDIR) -p $(@D)
376 $(QUIET)$(CP) $^ $@
377 $(QUIET)chrpath --replace "\$$ORIGIN/../../" $@
378 endif # solaris linux
379
380 endif # !VBOX_WITH_HARDENING
381 endif # x11
382 endif # defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK)
383
384
385 #
386 # Install additions iso from the build server if configured to do so.
387 #
388 # Note! For building the combined package, just get the additions .ISO
389 # once for amd64 to prevent version inconsistences. In all other
390 # cases we get the .ISO per target architecture.
391 #
392 if defined(VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER) \
393 && ( !defined(VBOX_WITH_COMBINED_PACKAGE) \
394 || "$(KBUILD_TARGET_ARCH)" == "amd64" )
395 INSTALLS += buildserver-additions
396 buildserver-additions_INST = $(INST_ADDITIONS_ISO)
397 buildserver-additions_MODE = 0644
398 buildserver-additions_SOURCES = $(PATH_TARGET)/VBoxGuestAdditions.iso
399 buildserver-additions_CLEANS = \
400 $(buildserver-additions_0_OUTDIR)/unpacked.ts \
401 $(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip \
402 $(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip.tmp \
403 $(PATH_TARGET)/VBoxGuestAdditions.iso
404
405 $$(buildserver-additions_0_OUTDIR)/unpacked.ts +| $(PATH_TARGET)/VBoxGuestAdditions.iso: \
406 $$(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip
407 $(call MSG_L1,Unpacking additions archive)
408 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(PATH_TARGET)
409 $(TOUCH) -c -- $(PATH_TARGET)/VBoxGuestAdditions.iso
410 $(APPEND) -t $@ "done"
411
412 $$(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip: $(VBOX_SVN_REV_KMK) $(KBUILD_DEVTOOLS)/bin/additions.sh | $$(dir $$@)
413 $(RM) -f -- "$@" "$@.tmp"
414 $(SHELL) $(KBUILD_DEVTOOLS)/bin/additions.sh --cmd fetch --filename "$@.tmp" $(if $(VBOX_USE_PROXY_FOR_BUILD_SERVER),--default-proxy,)
415 $(MV) -f -- "$@.tmp" "$@"
416
417 endif # VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER unless win.x86+combined
418
419
420 #
421 # Install documentation files (at the moment the .chm) from the build server.
422 #
423 ifdef VBOX_WITH_DOCS_FROM_BUILD_SERVER
424 ## @todo r=bird: Too much mess now for $(PATH_TARGET); move to doc/manual/.
425 INSTALLS += buildserver-docs
426 buildserver-docs_INST = $(INST_BIN)
427 buildserver-docs_MODE = 0644
428 buildserver-docs_SOURCES = \
429 $(addprefix $(PATH_TARGET)/, \
430 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),UserManual.qch UserManual.qhc,) \
431 UserManual.pdf \
432 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES), \
433 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),UserManual_$(f).qch UserManual_$(f).qhc,) \
434 UserManual_$(f).pdf))
435 buildserver-docs_CLEANS = \
436 $(buildserver-docs_0_OUTDIR)/unpacked.ts \
437 $(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip \
438 $(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip.tmp \
439 $(addprefix $(PATH_TARGET)/, \
440 VirtualBox.chm UserManual.qch UserManual.qhc UserManual.pdf \
441 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES), \
442 VirtualBox_$(f).chm \
443 UserManual_$(f).qch UserManual_$(f).qhc \
444 UserManual_$(f).pdf))
445
446 $$(buildserver-docs_0_OUTDIR)/unpacked.ts +| \
447 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),$(PATH_TARGET)/UserManual.qch $(PATH_TARGET)/UserManual.qhc,) \
448 $(PATH_TARGET)/UserManual.pdf \
449 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES), \
450 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),$(PATH_TARGET)/UserManual_$(f).qch $(PATH_TARGET)/UserManual_$(f).qhc,) \
451 $(PATH_TARGET)/UserManual_$(f).pdf): \
452 $$(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip
453 $(call MSG_L1,Unpacking documentation)
454 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(PATH_TARGET)
455 $(TOUCH) -c -- \
456 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),$(PATH_TARGET)/UserManual.qch $(PATH_TARGET)/UserManual.qhc,) \
457 $(PATH_TARGET)/UserManual.pdf \
458 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES), \
459 $(if-expr defined(VBOX_WITH_DOCS_QHELP_PACKING),$(PATH_TARGET)/UserManual_$(f).qch $(PATH_TARGET)/UserManual_$(f).qhc,) \
460 $(PATH_TARGET)/UserManual_$(f).pdf)
461 $(APPEND) -t $@ "done"
462
463 $$(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip: $(VBOX_SVN_REV_KMK) $(KBUILD_DEVTOOLS)/bin/documentation.sh | $$(dir $$@)
464 $(RM) -f -- "$@" "$@.tmp"
465 $(SHELL) $(KBUILD_DEVTOOLS)/bin/documentation.sh --cmd fetch --filename "$@.tmp" $(if $(VBOX_USE_PROXY_FOR_BUILD_SERVER),--default-proxy,)
466 $(MV) -f -- "$@.tmp" "$@"
467
468 endif # VBOX_WITH_DOCS_FROM_BUILD_SERVER
469
470
471 if defined(VBOX_WITH_EFI) && !defined(VBOX_ONLY_SDK)
472 #
473 # Install EFI firmware image
474 #
475 ifdef VBOX_WITH_EFIFW_FROM_BUILD_SERVER
476 #
477 # Either from the build server.
478 #
479 ifndef VBOX_EFI_FIRMWARE_EFI_MODULES_KMK_INCLUDED
480 include $(PATH_ROOT)/src/VBox/Devices/EFI/Firmware/EfiModules.kmk
481 endif
482 INSTALLS += buildserver-efifw
483 buildserver-efifw_INST = $(INST_BIN)
484 buildserver-efifw_MODE = 0644
485 buildserver-efifw_SOURCES = \
486 $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
487 $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd
488 buildserver-efifw_CLEANS = \
489 $(buildserver-efifw_0_OUTDIR)/unpacked.ts \
490 $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
491 $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd \
492 $(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip \
493 $(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip.tmp \
494 $(foreach arch, amd64 x86, $(foreach mod,$(VBOX_EFI_MODULES_FLAT_X86),$$(buildserver-efifw_0_OUTDIR)/$(arch)/$(mod).pdb))
495
496 INSTALLS += buildserver-efifw-dbg-amd64
497 buildserver-efifw-dbg-amd64_INST = $(INST_VBOXDBG_SYMS)amd64/
498 buildserver-efifw-dbg-amd64_MODE = 0644
499 buildserver-efifw-dbg-amd64_SOURCES = \
500 $(foreach mod,$(VBOX_EFI_MODULES_FLAT_X86),$(buildserver-efifw_0_OUTDIR)/amd64/$(mod).pdb)
501
502 INSTALLS += buildserver-efifw-dbg-x86
503 buildserver-efifw-dbg-x86_INST = $(INST_VBOXDBG_SYMS)x86/
504 buildserver-efifw-dbg-x86_MODE = 0644
505 buildserver-efifw-dbg-x86_SOURCES = \
506 $(foreach mod,$(VBOX_EFI_MODULES_FLAT_X86),$(buildserver-efifw_0_OUTDIR)/x86/$(mod).pdb)
507
508 $$(buildserver-efifw_0_OUTDIR)/unpacked.ts \
509 +| $$(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
510 $$(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd \
511 $(foreach arch, amd64 x86, $(foreach mod,$(VBOX_EFI_MODULES_FLAT_X86),$$(buildserver-efifw_0_OUTDIR)/$(arch)/$(mod).pdb)): \
512 $$(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip
513 $(call MSG_L1,Unpacking EFI firmware)
514 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(buildserver-efifw_0_OUTDIR)
515 $(foreach arch, amd64 x86, \
516 $(NLTAB) $(QUIET)$(TEST) '!' -d $(dir $@)/$(arch) -- $(MKDIR_EXT) -- $(dir $@)/$(arch) \
517 $(foreach mod,$(VBOX_EFI_MODULES_FLAT_X86) \
518 ,$(NLTAB) $(QUIET)$(TEST) '!' -f $(dir $@)/$(arch)/$(mod).pdb -- $(APPEND_EXT) $(dir $@)/$(arch)/$(mod).pdb ))
519 $(TOUCH) -c -- $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
520 $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd
521 $(APPEND) -t $@ "done"
522
523 $$(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip: \
524 $(VBOX_SVN_REV_KMK) $(KBUILD_DEVTOOLS)/bin/efi_firmware.sh | $$(dir $$@)
525 $(RM) -f -- "$@" "$@.tmp"
526 $(SHELL) $(KBUILD_DEVTOOLS)/bin/efi_firmware.sh --cmd fetch --filename "$@.tmp" $(if $(VBOX_USE_PROXY_FOR_BUILD_SERVER),--default-proxy,)
527 $(MV) -f -- "$@.tmp" "$@"
528
529 ifdef VBOX_WITH_VIRT_ARMV8
530 #
531 # The ARMv8 EFI images
532 #
533 INSTALLS += buildserver-efifw-armv8
534 buildserver-efifw-armv8_INST = $(INST_BIN)
535 buildserver-efifw-armv8_MODE = 0644
536 buildserver-efifw-armv8_SOURCES = \
537 $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch32.fd \
538 $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch64.fd
539 buildserver-efifw-armv8_CLEANS = \
540 $(buildserver-efifw-armv8_0_OUTDIR)/unpacked.ts \
541 $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch32.fd \
542 $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch64.fd \
543 $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEfiFirmware-armv8.zip \
544 $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEfiFirmware-armv8.zip.tmp \
545 $(foreach arch, aarch64 aarch32, $(foreach mod,$(VBOX_EFI_MODULES_FLAT_ARM),$$(buildserver-efifw-armv8_0_OUTDIR)/$(arch)/$(mod).pdb))
546
547 INSTALLS += buildserver-efifw-dbg-aarch64
548 buildserver-efifw-dbg-aarch64_INST = $(INST_VBOXDBG_SYMS)aarch64/
549 buildserver-efifw-dbg-aarch64_MODE = 0644
550 buildserver-efifw-dbg-aarch64_SOURCES = \
551 $(foreach mod,$(VBOX_EFI_MODULES_FLAT_ARM),$(buildserver-efifw-armv8_0_OUTDIR)/aarch64/$(mod).pdb)
552
553 INSTALLS += buildserver-efifw-dbg-aarch32
554 buildserver-efifw-dbg-aarch32_INST = $(INST_VBOXDBG_SYMS)aarch32/
555 buildserver-efifw-dbg-aarch32_MODE = 0644
556 buildserver-efifw-dbg-aarch32_SOURCES = \
557 $(foreach mod,$(VBOX_EFI_MODULES_FLAT_ARM),$(buildserver-efifw-armv8_0_OUTDIR)/aarch32/$(mod).pdb)
558
559 $$(buildserver-efifw-armv8_0_OUTDIR)/unpacked.ts \
560 +| $$(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch32.fd \
561 $$(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch64.fd \
562 $(foreach arch, aarch64 aarch32, $(foreach mod,$(VBOX_EFI_MODULES_FLAT_ARM),$$(buildserver-efifw-armv8_0_OUTDIR)/$(arch)/$(mod).pdb)): \
563 $$(buildserver-efifw-armv8_0_OUTDIR)/VBoxEfiFirmware-armv8.zip
564 $(call MSG_L1,Unpacking EFI ARMv8 firmware)
565 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(buildserver-efifw-armv8_0_OUTDIR)
566 $(foreach arch, aarch64 aarch32, \
567 $(NLTAB) $(QUIET)$(TEST) '!' -d $(dir $@)/$(arch) -- $(MKDIR_EXT) -- $(dir $@)/$(arch) \
568 $(foreach mod,$(VBOX_EFI_MODULES_FLAT_ARM) \
569 ,$(NLTAB) $(QUIET)$(TEST) '!' -f $(dir $@)/$(arch)/$(mod).pdb -- $(APPEND_EXT) $(dir $@)/$(arch)/$(mod).pdb ))
570 $(TOUCH) -c -- $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch32.fd \
571 $(buildserver-efifw-armv8_0_OUTDIR)/VBoxEFIAArch64.fd
572 $(APPEND) -t $@ "done"
573
574 $$(buildserver-efifw-armv8_0_OUTDIR)/VBoxEfiFirmware-armv8.zip: \
575 $(VBOX_SVN_REV_KMK) $(KBUILD_DEVTOOLS)/bin/efi_firmware.sh | $$(dir $$@)
576 $(RM) -f -- "$@" "$@.tmp"
577 $(SHELL) $(KBUILD_DEVTOOLS)/bin/efi_firmware.sh --cmd fetch-armv8 --filename "$@.tmp" $(if $(VBOX_USE_PROXY_FOR_BUILD_SERVER),--default-proxy,)
578 $(MV) -f -- "$@.tmp" "$@"
579 endif
580
581 else # !VBOX_WITH_EFIFW_FROM_BUILD_SERVER
582 #
583 # Or from the local copy (no debug).
584 #
585 INSTALLS += local-efifw
586 local-efifw_INST = $(INST_BIN)
587 local-efifw_MODE = 0644
588 local-efifw_SOURCES = \
589 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd=>VBoxEFI32.fd \
590 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd=>VBoxEFI64.fd
591 ifdef VBOX_WITH_VIRT_ARMV8
592 local-efifw_SOURCES += \
593 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFIAArch32.fd=>VBoxEFIAArch32.fd \
594 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFIAArch64.fd=>VBoxEFIAArch64.fd
595 endif
596 endif # !VBOX_WITH_EFIFW_FROM_BUILD_SERVER
597 endif # VBOX_WITH_EFI && !VBOX_ONLY_SDK
598
599
600 ifdef VBOX_WITH_EXTPACKS_FROM_BUILD_SERVER
601 #
602 # Get the extension pack from from the build server to facility the automatic
603 # testing (everything in one tarball (VBoxAll-*)).
604 #
605 # Note! Using the plural here as we might be downloading more packages eventually.
606 #
607 INSTALLS += buildserver-extpacks
608 buildserver-extpacks_INST = $(INST_DIST)
609 buildserver-extpacks_MODE = 0644
610 buildserver-extpacks_SOURCES = \
611 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack
612 buildserver-extpacks_CLEANS = \
613 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack \
614 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack.tmp
615
616 $$(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack: \
617 $(VBOX_SVN_REV_KMK) $(KBUILD_DEVTOOLS)/bin/extpacks.sh | $$(dir $$@)
618 $(RM) -f -- "$@.tmp" "$@"
619 $(SHELL) $(KBUILD_DEVTOOLS)/bin/extpacks.sh --cmd fetch --filename "$@.tmp" --vbox-version "$(VBOX_VERSION_STRING_NO_PUB)" \
620 $(if $(VBOX_USE_PROXY_FOR_BUILD_SERVER),--default-proxy,)
621 $(MV) -f -- "$@.tmp" "$@"
622 $(TOUCH) -- "$@"
623
624 endif
625
626
627 #
628 # Install staged binaries on platforms where we can't cross
629 # compile things.
630 #
631 ifn1of ($(KBUILD_TARGET), linux win)
632 VBOX_PATH_STAGED ?= .
633
634 # Additions.
635 ifndef VBOX_WITH_LINUX_ADDITIONS
636 ifndef VBOX_WITH_WIN32_ADDITIONS
637 ifneq ($(wildcard $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso),)
638 INSTALLS += staged-additions
639 staged-additions_INST = $(INST_ADDITIONS_ISO)
640 staged-additions_MODE = 0644
641 staged-additions_SOURCES = $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso
642 endif
643 endif
644 endif
645
646 # guesttool.exe
647 ifndef VBOX_WITH_WIN32_ADDITIONS
648 ifneq ($(wildcard $(VBOX_PATH_STAGED)/guesttool.exe),)
649 INSTALLS += staged-guesttool
650 staged-guesttool_INST = $(INST_BIN)
651 staged-guesttool_SOURCES = $(VBOX_PATH_STAGED)/guesttool.exe
652 endif
653 endif
654
655 endif
656
657endif # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_DOCS && !VBOX_ONLY_EXTPACKS && !VBOX_ONLY_VALIDATIONKIT
658
659
660ifdef VBOX_ONLY_DOCS
661 # It may sound a bit odd, but for preparing the documentation package the
662 # doxygen documentation isn't needed and increases the build time a lot.
663 docs:
664else # !VBOX_ONLY_DOCS
665 #
666 # Generate documentation.
667 # (This should be converted into a separate pass or merged with an existing one later.)
668 #
669 ifdef VBOX_WITH_ALL_DOXYGEN_TARGETS
670 docs: docs.Core
671 else
672 docs:
673 endif
674endif # !VBOX_ONLY_DOCS
675
676#
677# The core (VMM+Devices+Main) documentation.
678#
679# This includes so much because we wish to have the complete CFGM
680# and GCFGM lists.
681#
682VBOX_CORE_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/Core
683BLDDIRS += $(VBOX_CORE_DOXYFILE_OUTPUT)
684OTHER_CLEAN += \
685 $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core \
686 $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core.dep
687
688VBOX_CORE_DOXYFILE_INPUT_DIRS = \
689 include/iprt \
690 include/iprt/cpp \
691 include/iprt/crypto \
692 include/iprt/formats \
693 include/iprt/linux \
694 include/iprt/nt \
695 include/iprt/solaris \
696 include/iprt/win \
697 include/iprt/nocrt \
698 include/VBox \
699 include/VBox/vmm \
700 include/VBox/com \
701 include/VBox/ExtPack \
702 include/VBox/HostServices \
703 include/VBox/GuestHost \
704 include/VBox/HGSMI \
705 src/VBox/VMM \
706 src/VBox/VMM/VMMR0 \
707 src/VBox/VMM/VMMRC \
708 src/VBox/VMM/VMMR3 \
709 src/VBox/VMM/VMMAll \
710 src/VBox/VMM/VMMSwitcher \
711 src/VBox/VMM/include \
712 src/VBox/Debugger \
713 src/VBox/Devices \
714 src/VBox/Devices/Audio \
715 src/VBox/Devices/Bus \
716 src/VBox/Devices/Graphics \
717 src/VBox/Devices/Graphics/BIOS \
718 src/VBox/Devices/Graphics/shaderlib \
719 src/VBox/Devices/Input \
720 src/VBox/Devices/Networking \
721 src/VBox/Devices/PC \
722 src/VBox/Devices/PC/BIOS \
723 src/VBox/Devices/Parallel \
724 src/VBox/Devices/Serial \
725 src/VBox/Devices/Storage \
726 src/VBox/Devices/USB \
727 src/VBox/Devices/USB/darwin \
728 src/VBox/Devices/USB/linux \
729 src/VBox/Devices/USB/os2 \
730 src/VBox/Devices/USB/solaris \
731 src/VBox/Devices/USB/vrdp \
732 src/VBox/Devices/USB/win32 \
733 src/VBox/Devices/VMMDev \
734 src/VBox/Main/include \
735 src/VBox/Main/include/hgcm \
736 src/VBox/Main \
737 src/VBox/Main/glue \
738 src/VBox/Main/webservice \
739 src/VBox/Main/xml \
740 src/VBox/Main/src-all \
741 src/VBox/Main/src-all/win \
742 src/VBox/Main/src-client \
743 src/VBox/Main/src-client/win \
744 src/VBox/Main/src-client/xpcom \
745 src/VBox/Main/src-server \
746 src/VBox/Main/src-server/darwin \
747 src/VBox/Main/src-server/linux \
748 src/VBox/Main/src-server/os2 \
749 src/VBox/Main/src-server/solaris \
750 src/VBox/Main/src-server/win \
751 src/VBox/Main/src-server/xpcom \
752 src/VBox/HostServices \
753 src/VBox/HostServices/DragAndDrop \
754 src/VBox/HostServices/GuestControl \
755 src/VBox/HostServices/GuestProperties \
756 src/VBox/HostServices/SharedClipboard \
757 src/VBox/HostServices/SharedFolders \
758 src/VBox/HostServices/SharedOpenGL \
759 src/VBox/HostServices/SharedOpenGL/crserver \
760 src/VBox/HostServices/SharedOpenGL/crserverlib \
761 src/VBox/HostServices/SharedOpenGL/render \
762 src/VBox/HostServices/SharedOpenGL/unpacker \
763 src/VBox/HostServices/auth \
764 src/VBox/HostServices/auth/directoryservice \
765 src/VBox/HostServices/auth/pam \
766 src/VBox/HostServices/auth/simple \
767 src/VBox/HostServices/auth/winlogon \
768 src/VBox/HostDrivers/Support \
769 src/VBox/HostDrivers/Support/darwin \
770 src/VBox/HostDrivers/Support/freebsd \
771 src/VBox/HostDrivers/Support/linux \
772 src/VBox/HostDrivers/Support/os2 \
773 src/VBox/HostDrivers/Support/solaris \
774 src/VBox/HostDrivers/Support/win \
775 src/VBox/HostDrivers/VBoxNetFlt \
776 src/VBox/HostDrivers/VBoxNetFlt/darwin \
777 src/VBox/HostDrivers/VBoxNetFlt/linux \
778 src/VBox/HostDrivers/VBoxNetFlt/solaris \
779 src/VBox/HostDrivers/VBoxNetFlt/win \
780 src/VBox/HostDrivers/VBoxNetNat \
781 src/VBox/HostDrivers/VBoxNetNat/darwin \
782 src/VBox/HostDrivers/VBoxNetNat/linux \
783 src/VBox/HostDrivers/VBoxNetNat/solaris \
784 src/VBox/HostDrivers/VBoxNetNat/win \
785 src/VBox/HostDrivers/VBoxNetAdp \
786 src/VBox/HostDrivers/VBoxNetAdp/darwin \
787 src/VBox/HostDrivers/VBoxNetAdp/linux \
788 src/VBox/HostDrivers/VBoxNetAdp/solaris \
789 src/VBox/HostDrivers/VBoxNetAdp/win \
790 src/VBox/HostDrivers/VBoxPci \
791 src/VBox/HostDrivers/VBoxPci/darwin \
792 src/VBox/HostDrivers/VBoxPci/linux \
793 src/VBox/HostDrivers/VBoxPci/solaris \
794 src/VBox/HostDrivers/VBoxPci/win \
795 src/VBox/HostDrivers/VBoxUSB \
796 src/VBox/HostDrivers/VBoxUSB/darwin \
797 src/VBox/HostDrivers/VBoxUSB/os2 \
798 src/VBox/HostDrivers/VBoxUSB/solaris \
799 src/VBox/HostDrivers/VBoxUSB/win \
800 src/VBox/HostDrivers/VBoxUSB/win/Device \
801 src/VBox/HostDrivers/VBoxUSB/win/Device/amd64 \
802 src/VBox/HostDrivers/VBoxUSB/win/Device/x86 \
803 src/VBox/HostDrivers/VBoxUSB/win/Filter \
804 src/VBox/HostDrivers/VBoxUSB/win/Install \
805 src/VBox/HostDrivers/VBoxUSB/win/Monitor \
806 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win32 \
807 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win64 \
808 src/VBox/HostDrivers/VBoxUSB/win/usbd \
809 src/VBox/Additions \
810 src/VBox/Additions/WINNT \
811 src/VBox/Additions/WINNT/Graphics \
812 src/VBox/Additions/WINNT/Graphics/Video \
813 src/VBox/Additions/WINNT/Graphics/Video/common \
814 src/VBox/Additions/WINNT/Graphics/Video/common/wddm \
815 src/VBox/Additions/WINNT/Graphics/Video/common/xpdm \
816 src/VBox/Additions/WINNT/Graphics/Video/disp \
817 src/VBox/Additions/WINNT/Graphics/Video/disp/common \
818 src/VBox/Additions/WINNT/Graphics/Video/disp/wddm \
819 src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dbg \
820 src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm \
821 src/VBox/Additions/WINNT/Graphics/Video/mp \
822 src/VBox/Additions/WINNT/Graphics/Video/mp/common \
823 src/VBox/Additions/WINNT/Graphics/Video/mp/wddm \
824 src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm \
825 src/VBox/Additions/WINNT/Graphics/Wine_new \
826 src/VBox/Additions/WINNT/Graphics/Wine_new/d3d8 \
827 src/VBox/Additions/WINNT/Graphics/Wine_new/d3d9 \
828 src/VBox/Additions/WINNT/Graphics/Wine_new/libWine \
829 src/VBox/Additions/WINNT/Graphics/Wine_new/switcher \
830 src/VBox/Additions/WINNT/Graphics/Wine_new/vbox \
831 src/VBox/Additions/WINNT/Graphics/Wine_new/wined3d \
832 src/VBox/Additions/WINNT/Installer \
833 src/VBox/Additions/WINNT/Installer/ISO \
834 src/VBox/Additions/WINNT/Installer/InstallHelper \
835 src/VBox/Additions/WINNT/Installer/Languages \
836 src/VBox/Additions/WINNT/Installer/Loader \
837 src/VBox/Additions/WINNT/Mouse \
838 src/VBox/Additions/WINNT/Mouse/NT5 \
839 src/VBox/Additions/WINNT/Mouse/common \
840 src/VBox/Additions/WINNT/SharedFolders \
841 src/VBox/Additions/WINNT/SharedFolders/redirector \
842 src/VBox/Additions/WINNT/SharedFolders/redirector/dll \
843 src/VBox/Additions/WINNT/SharedFolders/redirector/sys \
844 src/VBox/Additions/WINNT/SharedFolders/redirector/sys/rdbss \
845 src/VBox/Additions/WINNT/VBoxCredProv \
846 src/VBox/Additions/WINNT/VBoxGINA \
847 src/VBox/Additions/WINNT/VBoxHook \
848 src/VBox/Additions/WINNT/VBoxTray \
849 src/VBox/Additions/WINNT/VBoxUSB \
850 src/VBox/Additions/WINNT/i8042prt \
851 src/VBox/Additions/WINNT/i8042prt/i386 \
852 src/VBox/Additions/WINNT/i8042prt/include \
853 src/VBox/Additions/WINNT/include \
854 src/VBox/Additions/common \
855 src/VBox/Additions/common/VBoxControl \
856 src/VBox/Additions/common/VBoxGuest \
857 src/VBox/Additions/common/VBoxGuest/freebsd \
858 src/VBox/Additions/common/VBoxGuest/linux \
859 src/VBox/Additions/common/VBoxGuest/win \
860 src/VBox/Additions/common/VBoxGuestLib \
861 src/VBox/Additions/common/VBoxService \
862 src/VBox/Additions/common/VBoxVideo \
863 src/VBox/Additions/common/crOpenGL \
864 src/VBox/Additions/common/crOpenGL/array \
865 src/VBox/Additions/common/crOpenGL/feedback \
866 src/VBox/Additions/common/crOpenGL/pack \
867 src/VBox/Additions/common/crOpenGL/passthrough \
868 src/VBox/Additions/common/pam \
869 src/VBox/Additions/darwin \
870 src/VBox/Additions/freebsd \
871 src/VBox/Additions/freebsd/Installer \
872 src/VBox/Additions/freebsd/drm \
873 src/VBox/Additions/freebsd/vboxvfs \
874 src/VBox/Additions/linux \
875 src/VBox/Additions/linux/drm \
876 src/VBox/Additions/linux/installer \
877 src/VBox/Additions/linux/selinux-fedora \
878 src/VBox/Additions/linux/sharedfolders \
879 src/VBox/Additions/os2 \
880 src/VBox/Additions/os2/VBoxGradd \
881 src/VBox/Additions/os2/VBoxGradd/graddlib \
882 src/VBox/Additions/os2/VBoxGrext \
883 src/VBox/Additions/os2/VBoxMouse \
884 src/VBox/Additions/os2/VBoxSF \
885 src/VBox/Additions/solaris \
886 src/VBox/Additions/solaris/DRM \
887 src/VBox/Additions/solaris/Installer \
888 src/VBox/Additions/solaris/SharedFolders \
889 src/VBox/Additions/solaris/SharedFolders/solaris10 \
890 src/VBox/Additions/solaris/SharedFolders/solaris10/sys \
891 src/VBox/Additions/solaris/Virtio \
892 src/VBox/Additions/x11 \
893 src/VBox/Additions/x11/Installer \
894 src/VBox/Additions/x11/VBoxClient \
895 src/VBox/Additions/x11/vboxmouse \
896 src/VBox/Additions/x11/vboxmouse/xorg70 \
897 src/VBox/Additions/x11/vboxmouse/xorg71 \
898 src/VBox/Additions/x11/vboxvideo \
899 src/VBox/NetworkServices \
900 src/VBox/NetworkServices/Dhcpd \
901 src/VBox/NetworkServices/NAT \
902 src/VBox/NetworkServices/NetLib \
903 src/VBox/Storage \
904 src/VBox/ValidationKit/ \
905 src/VBox/ValidationKit/docs/ \
906 src/VBox/ValidationKit/testdriver/ \
907 src/VBox/ValidationKit/bootsectors/ \
908 src/VBox/ValidationKit/bootsectors/bs3kit/ \
909 src/VBox/ValidationKit/tests/ \
910 src/VBox/ValidationKit/tests/additions/ \
911 src/VBox/ValidationKit/tests/api/ \
912 src/VBox/ValidationKit/tests/autostart/ \
913 src/VBox/ValidationKit/tests/benchmarks/ \
914 src/VBox/ValidationKit/tests/cpu/ \
915 src/VBox/ValidationKit/tests/installation/ \
916 src/VBox/ValidationKit/tests/network/ \
917 src/VBox/ValidationKit/tests/selftests/ \
918 src/VBox/ValidationKit/tests/smoketests/ \
919 src/VBox/ValidationKit/tests/storage/ \
920 src/VBox/ValidationKit/tests/teleportation/ \
921 src/VBox/ValidationKit/tests/unittests/ \
922 src/VBox/ValidationKit/tests/usb/ \
923 src/VBox/ValidationKit/common/ \
924 src/VBox/ValidationKit/utils/ \
925 src/VBox/ValidationKit/utils/TestExecServ/ \
926 src/VBox/ValidationKit/utils/cpu/ \
927 src/VBox/ValidationKit/utils/misc/ \
928 src/VBox/ValidationKit/utils/network/ \
929 src/VBox/ValidationKit/utils/nt/ \
930 src/VBox/ValidationKit/utils/usb/ \
931 src/VBox/ValidationKit/vms/ \
932 src/VBox/ValidationKit/testmanager/ \
933 src/VBox/ValidationKit/testmanager/core/ \
934 src/VBox/ValidationKit/testmanager/db/ \
935 src/VBox/ValidationKit/testmanager/debug/ \
936 src/VBox/ValidationKit/testmanager/cgi/ \
937 src/VBox/ValidationKit/testmanager/webui/ \
938 src/VBox/ValidationKit/testboxscript/
939
940# These must come first in order to make things look nice.
941VBOX_CORE_DOXYFILE_INPUT_FIRST = \
942 $(PATH_ROOT)/doc/VBox-doc.c \
943 $(PATH_ROOT)/doc/VBox-CodingGuidelines.cpp \
944 $(PATH_ROOT)/doc/VBox-MakefileGuidelines.cpp \
945 $(PATH_ROOT)/src/VBox/VMM/Docs-CodingGuidelines.cpp \
946 $(PATH_ROOT)/src/VBox/VMM/Docs-RawMode.cpp \
947 $(PATH_ROOT)/include/VBox/cdefs.h \
948 $(PATH_ROOT)/include/VBox/vmm/vmm.h \
949 $(PATH_ROOT)/include/VBox/vmm/vmapi.h \
950 $(PATH_ROOT)/include/VBox/vmm/cpum.h \
951 $(PATH_ROOT)/include/VBox/vmm/mm.h \
952 $(PATH_ROOT)/include/VBox/vmm/pgm.h \
953 $(PATH_ROOT)/include/VBox/vmm/selm.h \
954 $(PATH_ROOT)/include/VBox/vmm/trpm.h \
955 $(PATH_ROOT)/include/VBox/vmm/dbgf.h \
956 $(PATH_ROOT)/include/VBox/vmm/stam.h \
957 $(PATH_ROOT)/include/VBox/vmm/em.h \
958 $(PATH_ROOT)/include/VBox/vmm/hm.h \
959 $(PATH_ROOT)/include/VBox/vmm/hm_svm.h \
960 $(PATH_ROOT)/include/VBox/vmm/hm_vmx.h \
961 $(PATH_ROOT)/include/VBox/vmm/iem.h \
962 $(PATH_ROOT)/include/VBox/vmm/nem.h \
963 $(PATH_ROOT)/include/VBox/vmm/pdm.h \
964 $(PATH_ROOT)/include/VBox/vmm/pdmifs.h \
965 $(PATH_ROOT)/include/VBox/vmm/pdmaudioifs.h \
966 $(PATH_ROOT)/include/VBox/vmm/pdmnetifs.h \
967 $(PATH_ROOT)/include/VBox/vmm/pdmserialifs.h \
968 $(PATH_ROOT)/include/VBox/vmm/pdmstorageifs.h \
969 $(PATH_ROOT)/include/VBox/vmm/iom.h \
970 $(PATH_ROOT)/include/VBox/vmm/cfgm.h \
971 $(PATH_ROOT)/include/VBox/vmm/gim.h \
972 $(PATH_ROOT)/include/VBox/vmm/tm.h \
973 $(PATH_ROOT)/include/VBox/vmm/ssm.h \
974 \
975 $(PATH_ROOT)/src/VBox/VMM/include/CFGMInternal.h \
976 $(PATH_ROOT)/src/VBox/VMM/include/CPUMInternal.h \
977 $(PATH_ROOT)/src/VBox/VMM/include/DBGFInternal.h \
978 $(PATH_ROOT)/src/VBox/VMM/include/EMInternal.h \
979 $(PATH_ROOT)/src/VBox/VMM/include/HMInternal.h \
980 $(PATH_ROOT)/src/VBox/VMM/include/IEMInternal.h \
981 $(PATH_ROOT)/src/VBox/VMM/include/IOMInternal.h \
982 $(PATH_ROOT)/src/VBox/VMM/include/MMInternal.h \
983 $(PATH_ROOT)/src/VBox/VMM/include/NEMInternal.h \
984 $(PATH_ROOT)/src/VBox/VMM/include/PDMInternal.h \
985 $(PATH_ROOT)/src/VBox/VMM/include/PGMInternal.h \
986 $(PATH_ROOT)/src/VBox/VMM/include/GIMInternal.h \
987 $(PATH_ROOT)/src/VBox/VMM/include/SELMInternal.h \
988 $(PATH_ROOT)/src/VBox/VMM/include/SSMInternal.h \
989 $(PATH_ROOT)/src/VBox/VMM/include/STAMInternal.h \
990 $(PATH_ROOT)/src/VBox/VMM/include/TMInternal.h \
991 $(PATH_ROOT)/src/VBox/VMM/include/TRPMInternal.h \
992 $(PATH_ROOT)/src/VBox/VMM/include/VMInternal.h \
993 $(PATH_ROOT)/src/VBox/VMM/include/VMMInternal.h \
994 \
995 $(PATH_ROOT)/include/VBox/vmm/vm.h \
996 \
997 $(PATH_ROOT)/include/VBox/sup.h \
998 $(PATH_ROOT)/include/VBox/vd.h \
999 $(PATH_ROOT)/include/VBox/types.h \
1000 $(PATH_ROOT)/include/VBox/err.h \
1001 $(PATH_ROOT)/include/VBox/vmm/cpumdis.h \
1002 $(PATH_ROOT)/include/VBox/dbggui.h \
1003 $(PATH_ROOT)/include/VBox/dis.h \
1004 $(PATH_ROOT)/include/VBox/disopcode-x86-amd64.h \
1005 $(PATH_ROOT)/include/VBox/intnet.h \
1006 $(PATH_ROOT)/include/VBox/settings.h \
1007 $(PATH_ROOT)/include/VBox/pci.h \
1008 $(PATH_ROOT)/include/VBox/scsi.h \
1009 $(PATH_ROOT)/include/VBox/shflsvc.h \
1010 $(PATH_ROOT)/include/VBox/hgcmsvc.h \
1011 $(PATH_ROOT)/include/VBox/usb.h \
1012 $(PATH_ROOT)/include/VBox/vusb.h \
1013 \
1014 $(PATH_ROOT)/include/VBox/log.h \
1015 $(PATH_ROOT)/include/VBox/param.h \
1016 $(PATH_ROOT)/include/VBox/version.h \
1017 \
1018 $(PATH_ROOT)/include/VBox/com/com.h \
1019 $(PATH_ROOT)/include/VBox/com/utils.h
1020
1021VBOX_CORE_DOXYFILE_INPUT := \
1022 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(VBOX_CORE_DOXYFILE_INPUT_DIRS)))) ) \
1023 $(foreach dir, $(VBOX_CORE_DOXYFILE_INPUT_DIRS) \
1024 , $(wildcard $(dir)/*.cpp $(dir)/*.c $(dir)/*.m $(dir)/*.mm $(dir)/*.py $(dir)/.asm))
1025VBOX_CORE_DOXYFILE_INPUT := \
1026 $(VBOX_CORE_DOXYFILE_INPUT_FIRST) \
1027 $(sort $(filter-out $(VBOX_CORE_DOXYFILE_INPUT_FIRST) %/CPUM-armv8.cpp, $(VBOX_CORE_DOXYFILE_INPUT)))
1028
1029VBOX_CORE_DOXYFILE_INPUT += \
1030 $(wildcard $(PATH_ROOT)/src/VBox/VMM/VMMAll/*.h $(PATH_ROOT)/src/VBox/VMM/VMMR3/*.h $(PATH_ROOT)/src/VBox/VMM/VMMR0/*.h )
1031
1032
1033includedep $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core.dep
1034
1035# Generate the Doxyfile
1036$(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core: Doxyfile.Core \
1037 $(comp-vars VBOX_CORE_DOXYFILE_INPUT,DOXYGEN_CORE_INPUT_PREV,FORCE) \
1038 $(comp-vars VBOX_CORE_DOXYFILE_OUTPUT,DOXYGEN_CORE_OUTPUT_PREV,FORCE) \
1039 | $$(dir $$@)
1040 $(QUIET)$(RM) -f $@ $@.tmp $@.dep
1041 $(QUIET)$(CP) -f Doxyfile.Core $@.tmp
1042 $(QUIET)$(APPEND) $@.tmp
1043 $(QUIET)$(APPEND) $@.tmp "OUTPUT_DIRECTORY = $(VBOX_CORE_DOXYFILE_OUTPUT)"
1044 $(QUIET)$(APPEND) $@.tmp "WARN_LOGFILE = $(VBOX_CORE_DOXYFILE_OUTPUT)/errors"
1045 $(QUIET)$(APPEND) $@.tmp "INCLUDE_PATH = $(PATH_ROOT)/include $(PATH_ROOT)/src/VBox/VMM $(PATH_ROOT)/src/VBox/Main/include "
1046 $(QUIET)$(APPEND) $@.tmp "INCLUDE_FILE_PATTERNS = *.cpp.h"
1047 $(QUIET)$(APPEND) $@.tmp "EXCLUDE = " \
1048 "$(PATH_ROOT)/src/VBox/Additions/common/crOpenGL/utils.c" \
1049 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserver/main.c" \
1050 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c" \
1051 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_arrays.c" \
1052 "$(PATH_ROOT)/src/VBox/Additions/common/crOpenGL/context.c" \
1053 \
1054 "$(PATH_ROOT)/src/VBox/VMM/include/IEMInternal-armv8.h" \
1055 "src/VBox/VMM/include/IEMInternal-armv8.h" \
1056 "$(PATH_ROOT)/src/VBox/VMM/VMMAll/CPUMAllRegs-armv8.cpp" \
1057 "src/VBox/VMM/VMMAll/CPUMAllRegs-armv8.cpp" \
1058 "$(PATH_ROOT)/src/VBox/VMM/VMMR3/CPUM-armv8.cpp" \
1059 "src/VBox/VMM/VMMR3/CPUM-armv8.cpp" \
1060 "$(PATH_ROOT)/src/VBox/VMM/VMMR3/HM-armv8.cpp" \
1061 "src/VBox/VMM/VMMR3/HM-armv8.cpp"
1062## @todo ARMv8: crap is duplicated multiple times or in different sections. Clean up the above *armv8* mess.
1063 $(QUIET)$(APPEND) $@.tmp
1064 $(QUIET)$(APPEND) $@.tmp 'INPUT = $(foreach x,$(VBOX_CORE_DOXYFILE_INPUT),\$(NLTAB)$(x))'
1065 $(QUIET)$(APPEND) $@.tmp
1066 $(QUIET)$(APPEND) $@.tmp "PREDEFINED += $(DEFS) $(DEFS.$(KBUILD_TARGET)) $(DEFS.$(KBUILD_TARGET_ARCH)) $(ARCH_BITS_DEFS)"
1067 $(QUIET)$(APPEND) $@.tmp "PREDEFINED += ARCH_BITS=HC_ARCH_BITS R3_ARCH_BITS=HC_ARCH_BITS R0_ARCH_BITS=HC_ARCH_BITS "
1068 $(QUIET)$(APPEND) $@.tmp
1069 $(QUIET)$(APPEND) $@.tmp "PLANTUML_JAR_PATH = $(firstword $(rsort $(wildcard $(KBUILD_DEVTOOLS)/common/plantuml/v*/plantuml*.jar)))"
1070 $(QUIET)$(APPEND) $@.tmp
1071 $(QUIET)$(MV) -f $@.tmp $@
1072 @$(APPEND) $@.dep "DOXYGEN_CORE_OUTPUT_PREV = $(VBOX_CORE_DOXYFILE_OUTPUT)"
1073 @$(APPEND) $@.dep "DOXYGEN_CORE_INPUT_PREV = $(VBOX_CORE_DOXYFILE_INPUT)"
1074
1075# Do the actual job.
1076# Note! We must add the VBOX_JAVA dir to the path so doxygen can run plantuml.jar.
1077$(VBOX_CORE_DOXYFILE_OUTPUT)/docs.Core: $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core $$(VBOX_CORE_DOXYFILE_INPUT) \
1078 | $(VBOX_CORE_DOXYFILE_OUTPUT)/
1079 $(QUIET)$(RM) -f $@
1080 $(QUIET)$(RM) -Rf $(VBOX_CORE_DOXYFILE_OUTPUT)/html/
1081 $(if-expr $(VBOX_JAVA_VERSION)+0 >= 70000, $(REDIRECT) -E "PATH=$(VBOX_JAVA_BIN_PATH)$(HOST_PATH_SEP)$(PATH)" --,) \
1082 $(VBOX_DOXYGEN) $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core
1083 $(SED) -n \
1084 -e ':nextwarning' \
1085 -e '/^ *$(DOLLAR)/d' \
1086 -e '/\/src\/VBox\/Main\/.* warning: documented symbol.*::~.* was not declared or defined/b ignore' \
1087 -e '/\/src\/VBox\/Main\/.* warning: explicit link request to.* could not be resolved/b ignore' \
1088 -e '/\/src\/VBox\/Additions\/common\/crOpenGL\/.* warning/b ignore' \
1089 -e '/\/src\/VBox\/Additions\/x11\/VBoxClient\/seamless-x11\.h.* warning/b ignore' \
1090 -e '/\/src\/VBox\/HostDrivers\/Support\/win\/SUPR3HardenedMain-win\.cpp.* warning/b ignore' \
1091 -e '/\/src\/VBox\/ValidationKit\/.* warning/b ignore' \
1092 -e '/WRAPPED_MODULE_SYMBOL_INCLUDE/b ignore' \
1093 \
1094 -e '/unable to resolve link to .dtrace_pops_t./b ignore' \
1095 \
1096 -e 'b end' \
1097 -e ':ignore' \
1098 -e 'n' \
1099 -e '/^[[:space:]]/b ignore' \
1100 -e '/^Possible candidates/b ignore' \
1101 -e '/^def testmanager::webui::wuicontentbase::__init__/b ignore' \
1102 -e 'b nextwarning' \
1103 -e ':end' \
1104 -e 'p' \
1105 --output $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2 \
1106 $(VBOX_CORE_DOXYFILE_OUTPUT)/errors
1107 $(CAT) $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2
1108 $(SED) -e "/[^ ]/q 1" $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2
1109 $(APPEND) $@
1110
1111docs.Core docs.core: $(VBOX_CORE_DOXYFILE_OUTPUT)/docs.Core
1112
1113#
1114# This is a bit odd, but we attach the optional scm check run onto the 'docs' pass
1115# so the build box output is less confusing on failure.
1116#
1117ifeq ($(KBUILD_HOST),$(KBUILD_TARGET))
1118 ifdef VBOX_WITH_SCM_CHECK_RUN
1119 docs: scm.check.run
1120 endif
1121 .PHONY: scm.check.run
1122 scm.check.run: $(VBOX_PATH_TOOLS)/scm$(HOSTSUFF_EXE)
1123 $(REDIRECT) -E VBOX_LOG_FLAGS="disabled" -E VBOX_LOG_DEST="nofile" \
1124 $(if-expr "$(KBUILD_HOST)" == "darwin",-E DYLD_FALLBACK_LIBRARY_PATH="$(VBOX_PATH_TOOLS)/..",) -- \
1125 $(VBOX_PATH_TOOLS)/scm$(HOSTSUFF_EXE) -qvv --check-run $(PATH_ROOT)
1126endif
1127
1128
1129#
1130# Combined package build (windows only).
1131#
1132# The combined package is created by the x86 environment, so we do the amd64
1133# packaging in the build phase since it's just a few very slow jobs. We hold
1134# back the x86 build until the amd64 packaging starts, to try encourage
1135# parallel execution.
1136#
1137# Note! VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER=1 is required because the additions
1138# packing must be done in amd64 mode as it picks files from the x86 build.
1139#
1140
1141VBOX_COMBINED_PACKAGE_DEFS := \
1142 VBOX_WITH_COMBINED_PACKAGE=1 \
1143 VBOX_WITH_ALL_DOXYGEN_TARGETS= \
1144 VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER=1
1145
1146combined-package-fetch:
1147 + $(KMK) -C tools $(VBOX_COMBINED_PACKAGE_DEFS) KBUILD_TARGET_ARCH=amd64
1148 + $(KMK) -C tools $(VBOX_COMBINED_PACKAGE_DEFS) KBUILD_TARGET_ARCH=x86
1149
1150combined-package-build-amd64:
1151 + $(KMK) docs all $(VBOX_COMBINED_PACKAGE_DEFS) KBUILD_TARGET_ARCH=amd64
1152
1153combined-package-build-amd64-packing: combined-package-build-amd64
1154 + $(KMK) packing $(VBOX_COMBINED_PACKAGE_DEFS) KBUILD_TARGET_ARCH=amd64
1155
1156combined-package-build-x86: combined-package-build-amd64
1157 + $(KMK) docs all $(VBOX_COMBINED_PACKAGE_DEFS) KBUILD_TARGET_ARCH=x86
1158
1159combined-package-build: combined-package-build-amd64-packing combined-package-build-x86
1160
1161combined-package-packing:
1162 + $(KMK) packing $(VBOX_COMBINED_PACKAGE_DEFS) KBUILD_TARGET_ARCH=x86
1163
1164
1165
1166#
1167# Common rsync bits.
1168#
1169
1170
1171## Overridable ssh name.
1172# On windows build boxes install https://github.com/PowerShell/Win32-OpenSSH/releases
1173# and point to it in LocalConfig. (The cygwin ssh frequently segfaults due to
1174# termination race or something along those lines.)
1175VBOX_SSH ?= ssh
1176VBOX_SSH_FOR_RSYNC ?= $(VBOX_SSH)
1177
1178## Overridable rsh name.
1179VBOX_RSYNC ?= rsync --rsh="$(VBOX_SSH_FOR_RSYNC)"
1180VBOX_RSYNC_NOSSH ?= rsync
1181
1182##
1183# The basic rsync invocation for syncing the tree into a VM; the source and
1184# target specs are missing.
1185#
1186# @param 1 os name.
1187# @param 2 arch or *.
1188# @param 3 nossh or empty
1189#
1190VBOX_RSYNC_IN_FN = $(if-expr "$(3)" != "nossh",$(VBOX_RSYNC),$(VBOX_RSYNC_NOSSH)) \
1191 -a -v --delete --delete-excluded --prune-empty-dirs \
1192 --exclude=*.pyc \
1193 --exclude=.svn/ \
1194 --exclude=doc/Devices/ \
1195 --exclude=doc/tg/ \
1196 --exclude=doc/vp/ \
1197 --exclude=tinderclient.log \
1198 --exclude=tools/FetchDir/ \
1199 --exclude=webtools/ \
1200 --exclude=out/ \
1201 --exclude=tools/common/plantuml/ \
1202 $(if-expr "$1" == "solaris",--exclude=tools/common/openwatcom/,) \
1203 $(foreach os,$(filter-out $(1), darwin freebsd linux solaris os2 win), \
1204 --exclude=tools/$(os)/ \
1205 --exclude=tools/$(os).x86/ \
1206 --exclude=tools/$(os).amd64/ \
1207 --exclude=tools/$(os).arm64/ )
1208
1209#
1210# VM IP addresses.
1211#
1212VBOX_BLD_VM_LNX_IP := 192.168.27.2
1213VBOX_BLD_VM_LNX_ARM64_IP := 192.168.27.26
1214VBOX_BLD_VM_OS2_IP := 192.168.27.3
1215VBOX_BLD_VM_SOLARIS_IP := 192.168.27.4
1216VBOX_BLD_VM_DARWIN_X86_IP := 192.168.27.5
1217VBOX_BLD_VM_DARWIN_AMD64_IP := 192.168.27.15
1218VBOX_BLD_VM_DARWIN_109_AMD64_IP := 192.168.27.18
1219VBOX_BLD_VM_DARWIN_ARM64_IP := 192.168.27.25
1220VBOX_BLD_VM_WIN_X86_IP := 192.168.27.6
1221VBOX_BLD_VM_WIN_AMD64_IP := 192.168.27.16
1222VBOX_BLD_VM_FBSD_X86_IP := 192.168.27.7
1223VBOX_BLD_VM_FBSD_AMD64_IP := 192.168.27.17
1224
1225VBOX_WITH_OS2_ADD_BUILD = 1
1226
1227#
1228# For profiling the VM building steps.
1229#
1230if 0
1231 VBOX_BLD_VM_MSG_BEGIN = $(call MSG_L1,Building $1.)
1232 VBOX_BLD_VM_MSG_END__ =
1233else
1234 VBOX_BLD_VM_MSG_BEGIN = @echo "$(date ) - Start building $1."
1235 VBOX_BLD_VM_MSG_END__ = @echo "$(date ) - Done building $1."
1236endif
1237
1238#
1239# For killing old build jobs in the OS/2 VM before rsyncing.
1240#
1241VBOX_BLD_VM_OS2_KKILL_STUFF = $(REDIRECT_EXT) --stdin-pipe -- rsh -l vbox $(VBOX_BLD_VM_OS2_IP) "kkill -All -Tree kmk.exe gcc.exe & sleep.exe 1 & kkill -All gcc.exe emxomfld.exe as.exe kmk.exe "
1242
1243
1244#
1245# Build the additions, all of them.
1246#
1247# This is currently tailored (hardcoded) for the additions
1248# build box. Can make it pretty and configurable later.
1249#
1250# The fetching must be done in serial fashion, while the building
1251# should be more flexible wrt to -jN.
1252#
1253additions-fetch:
1254 + $(KMK) -C tools fetch VBOX_ONLY_ADDITIONS=1
1255 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin VBOX_ONLY_ADDITIONS=1 VBOX_DEF_MACOSX_VERSION_MIN=10.7
1256 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin VBOX_ONLY_ADDITIONS=1 #VBOX_DEF_MACOSX_VERSION_MIN=10.5
1257 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux VBOX_ONLY_ADDITIONS=1
1258 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux VBOX_ONLY_ADDITIONS=1
1259ifdef VBOX_WITH_LNX_ARM64_ADDITIONS
1260 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=arm64 KBUILD_TARGET=linux VBOX_ONLY_ADDITIONS=1
1261endif
1262ifdef VBOX_WITH_OS2_ADD_BUILD
1263 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 VBOX_ONLY_ADDITIONS=1
1264endif
1265 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris VBOX_ONLY_ADDITIONS=1
1266 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris VBOX_ONLY_ADDITIONS=1
1267 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win VBOX_ONLY_ADDITIONS=1
1268 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win VBOX_ONLY_ADDITIONS=1
1269
1270
1271## @todo Currently combined solaris additions building assumes that amd64 is
1272# built first. The windows amd64 additions need some x86 files, so don't change
1273# the order of the windows builds. TODO: Split building and packing for these two VMs.
1274additions-build: \
1275 additions-build-rsync-into-vms \
1276 additions-build-win.x86 \
1277 additions-build-win.amd64 \
1278 additions-build-solaris.amd64 \
1279 additions-build-solaris.x86 \
1280 additions-build-os2.x86 \
1281 additions-build-linux \
1282 additions-build-darwin.x86 \
1283 additions-build-darwin.amd64 \
1284 $(if $(VBOX_WITH_LNX_ARM64_ADDITIONS), additions-build-linux.arm64,)
1285
1286additions-build-rsync-into-vms: \
1287 additions-build-solaris.rsync-into-vm \
1288 additions-build-os2.rsync-into-vm \
1289 additions-build-darwin.x86.rsync-into-vm \
1290 additions-build-darwin.amd64.rsync-into-vm \
1291 additions-build-linux.rsync-into-vm \
1292 $(if $(VBOX_WITH_LNX_ARM64_ADDITIONS), additions-build-linux.arm64.rsync-into-vm,)
1293 $(call MSG_L1,Rsynced the sources + tools into the VMs.)
1294.NOTPARALLEL: additions-build-rsync-into-vms
1295.PHONY: additions-build-rsync-into-vms
1296
1297
1298VBOX_ADDITIONS_BUILD.amd64 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
1299 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=amd64 VBOX_SVN_REV=$(VBOX_SVN_REV)
1300
1301VBOX_ADDITIONS_BUILD.x86 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
1302 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=x86 VBOX_SVN_REV=$(VBOX_SVN_REV)
1303
1304ifdef VBOX_WITH_LNX_ARM64_ADDITIONS
1305 VBOX_ADDITIONS_BUILD.arm64 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
1306 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=arm64 VBOX_SVN_REV=$(VBOX_SVN_REV)
1307endif
1308
1309# Automatically determine the additions build subdir name. Used for figuring
1310# out directory names inside the additions building VMs.
1311VBOX_ADDITIONS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1312
1313ifeq ($(KBUILD_TARGET),win)
1314 additions-build-win.amd64:
1315 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1316 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing
1317else
1318 additions-build-win.amd64:
1319 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 additions build+pack)
1320 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) ' cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing '
1321 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 additions build+pack)
1322endif
1323
1324ifeq ($(KBUILD_TARGET),win)
1325 additions-build-win.x86:
1326 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1327 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing
1328else
1329 additions-build-win.x86:
1330 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 additions build.pack)
1331 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_WIN_X86_IP) ' cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.x86) all packing '
1332 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 additions build+pack)
1333endif
1334
1335# ASSUMES the 64-bit edition are built first. This also serializes VM access.
1336ifeq ($(KBUILD_TARGET),solaris)
1337 additions-build-solaris.amd64:
1338 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1339 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing
1340
1341 additions-build-solaris.x86: additions-build-solaris.amd64
1342 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_ADD_HOST_BUILD_TWEAK)
1343 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 packing
1344
1345 additions-build-solaris.rsync-into-vm:
1346else
1347 additions-build-solaris.rsync-into-vm:
1348 $(TIME) -- $(call VBOX_RSYNC_IN_FN,solaris,*) \
1349 '--exclude=src/VBox/Additions/WINNT/**' \
1350 '--exclude=src/VBox/Frontends/**' \
1351 '--exclude=src/VBox/VMM/**' \
1352 . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1353
1354 additions-build-solaris.build-it: additions-build-solaris.rsync-into-vm
1355 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 additions build+pack)
1356 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_SOLARIS_IP) ' cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing '
1357 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 additions build+pack)
1358 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 additions build+pack)
1359 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_SOLARIS_IP) ' cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 '
1360 $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 additions build+pack)
1361
1362 additions-build-solaris.rsync-out-of-vm: additions-build-solaris.build-it
1363 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.x86 out/
1364 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1365
1366 .NOTPARALLEL: additions-build-solaris.rsync-into-vm
1367 .PHONY: additions-build-solaris.rsync-into-vm additions-build-solaris.rsync-out-of-vm additions-build-solaris.build-it
1368
1369 additions-build-solaris.amd64: additions-build-solaris.rsync-out-of-vm
1370 additions-build-solaris.x86: additions-build-solaris.rsync-out-of-vm
1371endif
1372
1373ifdef VBOX_WITH_OS2_ADD_BUILD
1374 ifeq ($(KBUILD_TARGET),os2)
1375 additions-build-os2.x86:
1376 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1377 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing
1378
1379 additions-build-os2.rsync-into-vm:
1380 else
1381 additions-build-os2.rsync-into-vm:
1382 -$(VBOX_BLD_VM_OS2_KKILL_STUFF)
1383 $(TIME) -- $(call VBOX_RSYNC_IN_FN,os2,*,nossh)\
1384 '--exclude=src/VBox/Additions/x11/**' \
1385 '--exclude=src/VBox/Additions/WINNT/**' \
1386 '--exclude=src/VBox/Frontends/**' \
1387 '--exclude=src/VBox/VMM/**' \
1388 . rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1389
1390 additions-build-os2.build-it: #additions-build-os2.rsync-into-vm
1391 $(call VBOX_BLD_VM_MSG_BEGIN,OS/2 additions build+pack)
1392 $(TIME) -- $(REDIRECT_EXT) --stdin-pipe -- rsh -l vbox $(VBOX_BLD_VM_OS2_IP) "cd e:\\tinderbox\\$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && e: && kbuild\\bin\\os2.x86\\kmk_ash tools\\env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing"
1393 $(call VBOX_BLD_VM_MSG_END__,OS/2 additions build+pack)
1394
1395 additions-build-os2.rsync-out-of-vm: additions-build-os2.build-it
1396 -$(VBOX_BLD_VM_OS2_KKILL_STUFF)
1397 $(TIME) -- $(VBOX_RSYNC_NOSSH) -v -a --delete rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/os2.x86 ./out
1398
1399 .NOTPARALLEL: additions-build-os2.rsync-into-vm
1400 .PHONY: additions-build-os2.rsync-into-vm additions-build-os2.rsync-out-of-vm additions-build-os2.build-it
1401
1402 additions-build-os2.x86: additions-build-os2.rsync-out-of-vm
1403 endif
1404 #
1405else
1406 additions-build-os2.x86:
1407 # Dummy
1408endif
1409
1410# Linux
1411ifeq ($(KBUILD_TARGET),linux)
1412 additions-build-linux.amd64:
1413 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1414 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1
1415
1416 additions-build-linux.x86:
1417 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1418 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1
1419
1420 additions-build-linux: additions-build-linux.x86 additions-build-linux.amd64
1421 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1422 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1
1423
1424 ifdef VBOX_WITH_LNX_ARM64_ADDITIONS
1425 additions-build-linux.arm64:
1426 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.arm64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1427 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.arm64) packing
1428 endif
1429else
1430 additions-build-linux.rsync-into-vm:
1431 $(TIME) -- $(call VBOX_RSYNC_IN_FN,linux,*) \
1432 '--exclude=src/VBox/Additions/WINNT/**' \
1433 '--include=src/VBox/Devices/' \
1434 '--include=src/VBox/Devices/Audio/' \
1435 '--include=src/VBox/Devices/Audio/**' \
1436 '--include=src/VBox/Devices/build/' \
1437 '--include=src/VBox/Devices/build/**' \
1438 '--exclude=src/VBox/Devices/**' \
1439 '--exclude=src/VBox/Debugger/**' \
1440 '--exclude=src/VBox/ExtPacks/**' \
1441 '--exclude=src/VBox/Frontends/**' \
1442 '--exclude=src/VBox/HostService/**' \
1443 '--exclude=src/VBox/ImageMounter/**' \
1444 '--exclude=src/VBox/Main/**' \
1445 '--exclude=src/VBox/NetworkServices/**' \
1446 '--exclude=src/VBox/RDP/**' \
1447 '--exclude=src/VBox/Storage/**' \
1448 '--include=src/VBox/ValidationKit/' \
1449 '--include=src/VBox/ValidationKit/Config.kmk' \
1450 '--include=src/VBox/ValidationKit/utils/' \
1451 '--include=src/VBox/ValidationKit/utils/audio/' \
1452 '--include=src/VBox/ValidationKit/utils/audio/**' \
1453 '--exclude=src/VBox/ValidationKit/**' \
1454 '--exclude=src/VBox/VMM/**' \
1455 '--exclude=src/libs/dxvk-native-**' \
1456 '--exclude=src/libs/curl-**' \
1457 '--exclude=src/libs/libjpeg-turbo-**' \
1458 '--exclude=src/libs/libogg-**' \
1459 '--exclude=src/libs/libpng-**' \
1460 '--exclude=src/libs/libssh-**' \
1461 '--exclude=src/libs/libtpms-**' \
1462 '--exclude=src/libs/libvorbis-**' \
1463 '--exclude=src/libs/libvpx-**' \
1464 '--exclude=src/libs/libxml-**' \
1465 '--exclude=src/libs/softfloat-**' \
1466 '--exclude=src/libs/TestFloat-**' \
1467 '--exclude=src/libs/xpcom18a4/**' \
1468 '--exclude=src/apps/**' \
1469 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1470
1471 additions-build-linux.build-it: additions-build-linux.rsync-into-vm
1472 ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
1473 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 additions/greeter)
1474 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'dchroot -c ubuntu-11.10-amd64 "cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) PATH_OUT=/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.amd64/$(KBUILD_TYPE)/greeter VBOX_WITH_LIGHTDM_GREETER=1 vbox-greeter " '
1475 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 additions/greeter)
1476 endif
1477 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 additions build+pack)
1478 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'dchroot -c debian-4.0-amd64 "cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1 VBOX_WITH_LIGHTDM_GREETER_PACKING=$(VBOX_WITH_LIGHTDM_GREETER_PACKING) " '
1479 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 additions build+pack)
1480 ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
1481 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions/greeter)
1482 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'linux32 dchroot -c ubuntu-11.10-i386 "cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && KBUILD_HOST_ARCH=x86 tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) PATH_OUT=/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.x86/$(KBUILD_TYPE)/greeter VBOX_WITH_LIGHTDM_GREETER=1 vbox-greeter " '
1483 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions/greeter)
1484 endif
1485 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions build+pack)
1486 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'linux32 dchroot -c rhel3-i386 "cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1 VBOX_WITH_LIGHTDM_GREETER_PACKING=$(VBOX_WITH_LIGHTDM_GREETER_PACKING) " '
1487 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions build+pack)
1488 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions combine)
1489 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'linux32 dchroot -c rhel3-i386 "cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all packing VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1 " '
1490 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions combine)
1491
1492 additions-build-linux.rsync-out-of-vm: additions-build-linux.build-it
1493 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.x86 out/
1494 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1495
1496 .NOTPARALLEL: additions-build-linux.rsync-into-vm
1497 .PHONY: additions-build-linux.rsync-into-vm additions-build-linux.rsync-out-of-vm additions-build-linux.build-it
1498
1499 additions-build-linux: additions-build-linux.rsync-out-of-vm
1500
1501 #
1502 # Preliminary arm64 Linux guest additions build.
1503 #
1504 ifdef VBOX_WITH_LNX_ARM64_ADDITIONS
1505 additions-build-linux.arm64.rsync-into-vm:
1506 $(TIME) -- $(call VBOX_RSYNC_IN_FN,linux,*) \
1507 '--exclude=src/VBox/Additions/WINNT/**' \
1508 '--include=src/VBox/Devices/' \
1509 '--include=src/VBox/Devices/Audio/' \
1510 '--include=src/VBox/Devices/Audio/**' \
1511 '--include=src/VBox/Devices/build/' \
1512 '--include=src/VBox/Devices/build/**' \
1513 '--exclude=src/VBox/Devices/**' \
1514 '--exclude=src/VBox/Debugger/**' \
1515 '--exclude=src/VBox/ExtPacks/**' \
1516 '--exclude=src/VBox/Frontends/**' \
1517 '--exclude=src/VBox/HostService/**' \
1518 '--exclude=src/VBox/ImageMounter/**' \
1519 '--exclude=src/VBox/NetworkServices/**' \
1520 '--exclude=src/VBox/RDP/**' \
1521 '--exclude=src/VBox/Storage/**' \
1522 '--include=src/VBox/ValidationKit/' \
1523 '--include=src/VBox/ValidationKit/Config.kmk' \
1524 '--include=src/VBox/ValidationKit/utils/' \
1525 '--include=src/VBox/ValidationKit/utils/audio/' \
1526 '--include=src/VBox/ValidationKit/utils/audio/**' \
1527 '--exclude=src/VBox/ValidationKit/**' \
1528 '--exclude=src/VBox/VMM/**' \
1529 '--exclude=src/libs/dxvk-native-**' \
1530 '--exclude=src/libs/curl-**' \
1531 '--exclude=src/libs/libjpeg-turbo-**' \
1532 '--exclude=src/libs/libogg-**' \
1533 '--exclude=src/libs/libpng-**' \
1534 '--exclude=src/libs/libssh-**' \
1535 '--exclude=src/libs/libtpms-**' \
1536 '--exclude=src/libs/libvorbis-**' \
1537 '--exclude=src/libs/libvpx-**' \
1538 '--exclude=src/libs/libxml-**' \
1539 '--exclude=src/libs/softfloat-**' \
1540 '--exclude=src/libs/TestFloat-**' \
1541 '--exclude=src/libs/xpcom18a4/**' \
1542 '--exclude=src/apps/**' \
1543 . $(VBOX_BLD_VM_LNX_ARM64_IP):/home/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1544
1545 additions-build-linux.arm64.build-it: additions-build-linux.arm64.rsync-into-vm
1546 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/arm64 additions build+pack)
1547 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_ARM64_IP) 'cd /home/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.arm64) VBOX_WITH_WARNINGS_AS_ERRORS= VBOX_WITHOUT_LINUX_TEST_BUILDS=1 VBOX_WITH_LNX_ARM64_ADDITIONS=1 all packing'
1548 $(call VBOX_BLD_VM_MSG_END__,Linux/arm64 additions build+pack)
1549
1550 additions-build-linux.arm64.rsync-out-of-vm: additions-build-linux.arm64.build-it
1551 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_ARM64_IP):/home/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.arm64 out/
1552
1553 .NOTPARALLEL: additions-build-linux.arm64.rsync-into-vm
1554 .PHONY: additions-build-linux.arm64.rsync-into-vm additions-build-linux.arm64.rsync-out-of-vm additions-build-linux.arm64.build-it
1555
1556 additions-build-linux.arm64: additions-build-linux.arm64.rsync-out-of-vm
1557 endif
1558endif
1559
1560# Darwin
1561ifeq ($(KBUILD_TARGET),darwin)
1562 additions-build-darwin.amd64:
1563 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1564 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing
1565
1566 additions-build-darwin.x86:
1567 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1568 + $(TIME) -- $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing
1569
1570 additions-build-darwin: additions-build-darwin.amd64 additions-build-darwin.x86
1571 .PHONY: additions-build-darwin.amd64 additions-build-darwin.x86
1572else
1573 additions-build-darwin.amd64.rsync-into-vm:
1574 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_109_AMD64_IP) 'sudo rm -Rf /Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/'
1575 $(TIME) -- $(call VBOX_RSYNC_IN_FN,darwin,*) \
1576 '--exclude=src/libs/xpcom18a4/**' \
1577 '--exclude=src/libs/curl*/**' \
1578 '--exclude=src/libs/libxml*/**' \
1579 '--exclude=src/libs/libvpx*/**' \
1580 '--exclude=src/VBox/Additions/WINNT/**' \
1581 '--exclude=src/VBox/Additions/x11/**' \
1582 '--exclude=src/VBox/Artwork/x11/**' \
1583 '--include=src/VBox/Devices/' \
1584 '--include=src/VBox/Devices/Audio/' \
1585 '--include=src/VBox/Devices/Audio/**' \
1586 '--include=src/VBox/Devices/build/' \
1587 '--include=src/VBox/Devices/build/**' \
1588 '--exclude=src/VBox/Devices/**' \
1589 '--exclude=src/VBox/Disassembler/**' \
1590 '--exclude=src/VBox/ExtPacks/**' \
1591 '--exclude=src/VBox/Frontends/**' \
1592 '--exclude=src/VBox/HostDriver/**' \
1593 '--exclude=src/VBox/HostService/**' \
1594 '--exclude=src/VBox/ImageMounter/**' \
1595 '--exclude=src/VBox/Installer/win/**' \
1596 '--exclude=src/VBox/Main/**' \
1597 '--exclude=src/VBox/NetworkService/**' \
1598 '--exclude=src/VBox/RDP/**' \
1599 '--exclude=src/VBox/Storage/**' \
1600 '--include=src/VBox/ValidationKit/' \
1601 '--include=src/VBox/ValidationKit/Config.kmk' \
1602 '--include=src/VBox/ValidationKit/utils/' \
1603 '--include=src/VBox/ValidationKit/utils/audio/' \
1604 '--include=src/VBox/ValidationKit/utils/audio/**' \
1605 '--exclude=src/VBox/ValidationKit/**' \
1606 '--exclude=src/VBox/VMM/**' \
1607 '--exclude=src/apps/**' \
1608 '--exclude=src/recompiler/**' \
1609 . $(VBOX_BLD_VM_DARWIN_109_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1610
1611 additions-build-darwin.x86.rsync-into-vm:
1612 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) 'sudo rm -Rf /Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/'
1613 $(TIME) -- $(call VBOX_RSYNC_IN_FN,darwin,*) \
1614 '--exclude=src/libs/xpcom18a4/**' \
1615 '--exclude=src/libs/curl*/**' \
1616 '--exclude=src/libs/libxml*/**' \
1617 '--exclude=src/libs/libvpx*/**' \
1618 '--exclude=src/VBox/Additions/WINNT/**' \
1619 '--exclude=src/VBox/Additions/x11/**' \
1620 '--exclude=src/VBox/Artwork/x11/**' \
1621 '--include=src/VBox/Devices/' \
1622 '--include=src/VBox/Devices/Audio/' \
1623 '--include=src/VBox/Devices/Audio/**' \
1624 '--include=src/VBox/Devices/build/' \
1625 '--include=src/VBox/Devices/build/**' \
1626 '--exclude=src/VBox/Devices/**' \
1627 '--exclude=src/VBox/Disassembler/**' \
1628 '--exclude=src/VBox/ExtPacks/**' \
1629 '--exclude=src/VBox/Frontends/**' \
1630 '--exclude=src/VBox/HostDriver/**' \
1631 '--exclude=src/VBox/HostService/**' \
1632 '--exclude=src/VBox/ImageMounter/**' \
1633 '--exclude=src/VBox/Installer/win/**' \
1634 '--exclude=src/VBox/Main/**' \
1635 '--exclude=src/VBox/NetworkService/**' \
1636 '--exclude=src/VBox/RDP/**' \
1637 '--exclude=src/VBox/Storage/**' \
1638 '--include=src/VBox/ValidationKit/' \
1639 '--include=src/VBox/ValidationKit/Config.kmk' \
1640 '--include=src/VBox/ValidationKit/utils/' \
1641 '--include=src/VBox/ValidationKit/utils/audio/' \
1642 '--include=src/VBox/ValidationKit/utils/audio/**' \
1643 '--exclude=src/VBox/ValidationKit/**' \
1644 '--exclude=src/VBox/VMM/**' \
1645 '--exclude=src/apps/**' \
1646 '--exclude=src/recompiler/**' \
1647 . $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1648
1649 additions-build-darwin.amd64.build-it: additions-build-darwin.amd64.rsync-into-vm
1650 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 Additions)
1651 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_109_AMD64_IP) 'cd /Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all ' # VBOX_DEF_MACOSX_VERSION_MIN=10.7
1652 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_109_AMD64_IP) 'cd /Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) packing ' # VBOX_DEF_MACOSX_VERSION_MIN=10.7
1653 $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 Additions)
1654
1655 additions-build-darwin.x86.build-it: additions-build-darwin.x86.rsync-into-vm
1656 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/x86 Additions)
1657 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) 'cd /Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) all ' # VBOX_DEF_MACOSX_VERSION_MIN=10.5
1658 # no pkgbuild # $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) 'cd /Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) packing ' # VBOX_DEF_MACOSX_VERSION_MIN=10.5
1659 $(call VBOX_BLD_VM_MSG_END__,Darwin/x86 Additions)
1660
1661 additions-build-darwin.amd64.rsync-out-of-vm: additions-build-darwin.amd64.build-it
1662 $(TIME) -- $(VBOX_RSYNC) -a -v --delete $(VBOX_BLD_VM_DARWIN_109_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
1663
1664 additions-build-darwin.x86.rsync-out-of-vm: additions-build-darwin.x86.build-it
1665 $(TIME) -- $(VBOX_RSYNC) -a -v --delete $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/darwin.x86 out/
1666
1667 additions-build-darwin.amd64: additions-build-darwin.amd64.rsync-out-of-vm
1668 additions-build-darwin.x86: additions-build-darwin.x86.rsync-out-of-vm
1669 additions-build-darwin: additions-build-darwin.x86.rsync-out-of-vm additions-build-darwin.amd64.rsync-out-of-vm
1670
1671 .PHONY: additions-build-darwin.amd64.rsync-into-vm additions-build-darwin.amd64.rsync-out-of-vm additions-build-darwin.amd64.build-it \
1672 additions-build-darwin.x86.rsync-into-vm additions-build-darwin.x86.rsync-out-of-vm additions-build-darwin.x86.build-it
1673endif
1674
1675
1676additions-packing:
1677 + $(KMK) VBOX_ONLY_ADDITIONS=1 \
1678 VBOX_WITH_ADDITIONS_ISO.darwin.amd64=1 \
1679 VBOX_WITH_ADDITIONS_ISO.darwin.x86= \
1680 VBOX_WITH_ADDITIONS_ISO.freebsd.amd64= \
1681 VBOX_WITH_ADDITIONS_ISO.freebsd.x86= \
1682 VBOX_WITH_ADDITIONS_ISO.linux.amd64= \
1683 VBOX_WITH_ADDITIONS_ISO.linux.x86=1 \
1684 VBOX_WITH_ADDITIONS_ISO.linux.arm64=1 \
1685 VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1 \
1686 $(if $(VBOX_WITH_LNX_ARM64_ADDITIONS), VBOX_WITH_LNX_ARM64_ADDITIONS=1,) \
1687 VBOX_WITH_ADDITIONS_ISO.os2.x86=1 \
1688 VBOX_WITH_ADDITIONS_ISO.solaris.amd64=1 \
1689 VBOX_WITH_ADDITIONS_ISO.solaris.x86=1 \
1690 VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 \
1691 VBOX_WITH_ADDITIONS_ISO.win.amd64=1 \
1692 VBOX_WITH_ADDITIONS_ISO.win.x86=1 \
1693 -C src/VBox/Additions \
1694 $(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.zip
1695
1696.PHONY: \
1697 additions-build-win.x86 \
1698 additions-build-win.amd64 \
1699 additions-build-solaris.amd64 \
1700 additions-build-solaris.x86 \
1701 additions-build-os2.x86 \
1702 additions-build-linux \
1703 additions-build-linux.amd64 \
1704 additions-build-linux.x86 \
1705 additions-build-linux.x86.combined \
1706 $(if $(VBOX_WITH_LNX_ARM64_ADDITIONS), additions-build-linux.arm64,) \
1707 additions-build-darwin \
1708 additions-build-darwin.x86 \
1709 additions-build-darwin.amd64 \
1710 additions-packing
1711
1712
1713#
1714# Build the extension packs, all of them.
1715#
1716# This is tailored (hardcoded) for the extension pack build box.
1717#
1718# The fetching must be done in serial fashion, while the building should be
1719# more flexible wrt to -jN.
1720#
1721extpacks-fetch:
1722 + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1
1723 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
1724# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
1725 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
1726 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1
1727 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
1728 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=arm64 KBUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
1729if1of (x86, $(VBOX_SUPPORTED_HOST_ARCHS))
1730 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
1731 # + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
1732 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
1733 # + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 VBOX_ONLY_EXTPACKS=1
1734 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
1735endif
1736
1737
1738extpacks-build: \
1739 extpacks-build-win.amd64 \
1740 extpacks-build-win.x86 \
1741 extpacks-build-solaris.amd64 \
1742 extpacks-build-os2.x86 \
1743 extpacks-build-linux \
1744 extpacks-build-darwin.amd64 \
1745 extpacks-build-darwin.arm64 \
1746 extpacks-build-freebsd.amd64 \
1747 extpacks-build-freebsd.x86
1748
1749VBOX_EXTPACKS_BUILD.amd64 = VBOX_ONLY_EXTPACKS=1 VBOX_WITH_MAIN_NLS= VBOX_WITH_PUEL_NLS_NO_QM=1 \
1750 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=amd64 VBOX_SVN_REV=$(VBOX_SVN_REV)
1751
1752VBOX_EXTPACKS_BUILD.arm64 = VBOX_ONLY_EXTPACKS=1 VBOX_WITH_MAIN_NLS= VBOX_WITH_PUEL_NLS_NO_QM=1 \
1753 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=arm64 VBOX_SVN_REV=$(VBOX_SVN_REV)
1754
1755VBOX_EXTPACKS_BUILD.x86 = VBOX_ONLY_EXTPACKS=1 VBOX_WITH_MAIN_NLS= VBOX_WITH_PUEL_NLS_NO_QM=1 \
1756 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=x86 VBOX_SVN_REV=$(VBOX_SVN_REV)
1757
1758ifdef VBOX_WITH_PUEL_NLS
1759 VBOX_EXTPACKS_HOST_EXTRA = VBOX_WITH_PUEL_NLS_NO_QM=
1760else
1761 VBOX_EXTPACKS_HOST_EXTRA = VBOX_WITH_PUEL_NLS_NO_QM=
1762endif
1763
1764# Automatically determine the extpack build subdir name. Used for figuring out
1765# directory names inside the extension pack building VMs.
1766VBOX_EXTPACKS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1767
1768# When building in parallel on a Windows host, make sure we finish the host
1769# bit before kicking off any UNIX guest or we'll run into file sharing issues.
1770ifeq ($(KBUILD_TARGET),win)
1771 VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = extpacks-build-win.x86 extpacks-build-win.amd64
1772else
1773 VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST =
1774endif
1775
1776extpacks-build-win.amd64:
1777ifeq ($(KBUILD_TARGET),win)
1778 + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1779else
1780 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 extension packs)
1781 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) 'cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all '
1782 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 extension packs)
1783endif
1784
1785extpacks-build-win.x86:
1786if1of (x86, $(VBOX_SUPPORTED_HOST_ARCHS))
1787 ifeq ($(KBUILD_TARGET),win)
1788 + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1789 else
1790 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 extension packs)
1791 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_WIN_X86_IP) 'cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all '
1792 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 extension packs)
1793 endif
1794else
1795 @$(ECHO) "nothing to do for unsupported host $@"
1796endif
1797
1798ifeq ($(KBUILD_TARGET),solaris)
1799 extpacks-build-solaris.amd64:
1800 + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1801
1802else
1803 # Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
1804 extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1805 $(TIME) -- $(call VBOX_RSYNC_IN_FN,solaris,*) . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1806
1807 extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm
1808 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 extension packs)
1809 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_SOLARIS_IP) 'cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all '
1810 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 extension packs)
1811
1812 extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it
1813 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1814
1815 #.NOTPARALLEL: extpacks-build-solaris.rsync-into-vm
1816 .PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it
1817
1818 extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm
1819endif
1820
1821extpacks-build-os2.x86:
1822#ifeq ($(KBUILD_TARGET),os2)
1823# + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1824#else
1825# $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_OS2_IP) ' cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) '
1826#endif
1827
1828ifeq ($(KBUILD_TARGET),linux)
1829 extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1830 + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1831
1832 extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1833 if1of (x86, $(VBOX_SUPPORTED_HOST_ARCHS))
1834 + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1835 else
1836 @$(ECHO) "nothing to do for unsupported host $@"
1837 endif
1838
1839 extpacks-build-linux: extpacks-build-linux.x86 extpacks-build-linux.amd64
1840else
1841 # Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
1842 extpacks-build-linux.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1843 $(TIME) -- $(call VBOX_RSYNC_IN_FN,linux,*) \
1844 '--exclude=src/VBox/Additions/**' \
1845 '--exclude=src/VBox/Debugger/**' \
1846 '--exclude=src/VBox/Frontends/**' \
1847 '--exclude=src/VBox/GuestHost/**' \
1848 '--exclude=src/VBox/HostServices/**' \
1849 '--exclude=src/VBox/ImageMounter/**' \
1850 '--exclude=src/VBox/NetworkServices/**' \
1851 '--exclude=src/app/**' \
1852 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1853
1854 extpacks-build-linux.build-it: extpacks-build-linux.rsync-into-vm
1855 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 extension packs)
1856 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'dchroot -c ol-7.5-amd64 "cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && PATH=/opt/rh/devtoolset-9/root/bin:$$PATH tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all " '
1857 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 extension packs)
1858 if1of (x86, $(VBOX_SUPPORTED_HOST_ARCHS))
1859 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 extension packs)
1860 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'linux32 dchroot -c debian-4.0-i386 "cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all " '
1861 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 extension packs)
1862 endif
1863
1864 extpacks-build-linux.rsync-out-of-vm: extpacks-build-linux.build-it
1865 if1of (x86, $(VBOX_SUPPORTED_HOST_ARCHS))
1866 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.x86 out/
1867 endif
1868 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1869
1870 #.NOTPARALLEL: extpacks-build-linux.rsync-into-vm
1871 .PHONY: extpacks-build-linux.rsync-out-of-vm extpacks-build-linux.rsync-into-vm extpacks-build-linux.build-it
1872
1873 extpacks-build-linux: extpacks-build-linux.rsync-out-of-vm
1874endif
1875
1876extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1877#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
1878# + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1879#else
1880# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/amd64 extension packs)
1881# $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_FBSD_AMD64_IP) 'cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all '
1882# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/amd64 extension packs)
1883#endif
1884
1885extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1886#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
1887# + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1888#else
1889# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/x86 extension packs)
1890# $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_FBSD_X86_IP) 'cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all '
1891# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/x86 extension packs)
1892#endif
1893
1894extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1895ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
1896 + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1897else
1898 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 extension packs)
1899 $(TIME) -- $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_109_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1900 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_109_AMD64_IP) 'PATH=$$PATH:/opt/local/bin; cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && KBUILD_HOST_ARCH=amd64 tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all '
1901 $(TIME) -- $(VBOX_RSYNC) -am -v --delete $(VBOX_BLD_VM_DARWIN_109_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
1902 $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 extension packs)
1903endif
1904
1905extpacks-build-darwin.arm64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1906ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.arm64)
1907 + $(TIME) -- $(KMK) $(VBOX_EXTPACKS_BUILD.arm64) all $(VBOX_EXTPACKS_HOST_EXTRA) $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1908else
1909 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/arm64 extension packs)
1910 $(TIME) -- $(call VBOX_RSYNC_IN_FN,darwin,arm64) . $(VBOX_BLD_VM_DARWIN_ARM64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1911 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_ARM64_IP) 'PATH=$$PATH:/opt/local/bin; cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && KBUILD_HOST_ARCH=arm64 tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.arm64) all '
1912 $(TIME) -- $(VBOX_RSYNC) -am -v --delete $(VBOX_BLD_VM_DARWIN_ARM64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.arm64 out/
1913 $(call VBOX_BLD_VM_MSG_END__,Darwin/arm64 extension packs)
1914endif
1915
1916extpacks-packing:
1917if1of (x86, $(VBOX_SUPPORTED_HOST_ARCHS))
1918 + $(KMK) VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 linux.amd64 linux.x86 solaris.amd64 win.amd64 win.x86" \
1919 VBOX_ONLY_EXTPACKS=1 packing
1920else
1921 + $(KMK) VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 darwin.arm64 linux.amd64 solaris.amd64 win.amd64" \
1922 VBOX_ONLY_EXTPACKS=1 packing
1923endif
1924# +++ freebsd.amd64 ^^^
1925
1926.PHONY: \
1927 extpacks-build-win.x86 \
1928 extpacks-build-win.amd64 \
1929 extpacks-build-solaris.amd64 \
1930 extpacks-build-os2.x86 \
1931 extpacks-build-linux \
1932 extpacks-build-linux.amd64 \
1933 extpacks-build-linux.x86 \
1934 extpacks-build-freebsd.amd64 \
1935 extpacks-build-freebsd.x86 \
1936 extpacks-build-darwin.amd64 \
1937 extpacks-packing
1938
1939
1940#
1941# Build the test suite, all of it.
1942#
1943# This is currently tailored (hardcoded) for the additions build box just like
1944# the additions build above, which it in fact is a copy of.
1945#
1946validationkit-fetch:
1947 + $(KMK) -C tools fetch VBOX_ONLY_VALIDATIONKIT=1
1948 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin VBOX_ONLY_VALIDATIONKIT=1
1949 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin VBOX_ONLY_VALIDATIONKIT=1
1950 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=arm64 KBUILD_TARGET=darwin VBOX_ONLY_VALIDATIONKIT=1
1951# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd VBOX_ONLY_VALIDATIONKIT=1
1952# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd VBOX_ONLY_VALIDATIONKIT=1
1953 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux VBOX_ONLY_VALIDATIONKIT=1
1954 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux VBOX_ONLY_VALIDATIONKIT=1
1955 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=arm64 KBUILD_TARGET=linux VBOX_ONLY_VALIDATIONKIT=1
1956 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 VBOX_ONLY_VALIDATIONKIT=1
1957 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris VBOX_ONLY_VALIDATIONKIT=1
1958 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris VBOX_ONLY_VALIDATIONKIT=1
1959 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win VBOX_ONLY_VALIDATIONKIT=1
1960 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win VBOX_ONLY_VALIDATIONKIT=1
1961
1962
1963validationkit-build: \
1964 validationkit-build-rsync-into-vms \
1965 validationkit-build-solaris.amd64 \
1966 validationkit-build-solaris.x86 \
1967 validationkit-build-win.x86 \
1968 validationkit-build-win.amd64 \
1969 validationkit-build-os2.x86 \
1970 validationkit-build-linux \
1971 validationkit-build-linux.arm64 \
1972 validationkit-build-freebsd.amd64 \
1973 validationkit-build-freebsd.x86 \
1974 validationkit-build-darwin.amd64 \
1975 validationkit-build-darwin.x86 \
1976 validationkit-build-darwin.arm64
1977
1978validationkit-build-rsync-into-vms: \
1979 validationkit-build-solaris.rsync-into-vm \
1980 validationkit-build-os2.rsync-into-vm \
1981 validationkit-build-linux.rsync-into-vm \
1982 validationkit-build-linux.arm64.rsync-into-vm
1983 $(call MSG_L1,Rsynced the sources + tools into the VMs.)
1984.NOTPARALLEL: validationkit-build-rsync-into-vms
1985.PHONY: validationkit-build-rsync-into-vms
1986
1987
1988VBOX_VALIDATIONKIT_BUILD.amd64 = VBOX_ONLY_VALIDATIONKIT=1 \
1989 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=amd64 VBOX_SVN_REV=$(VBOX_SVN_REV)
1990
1991VBOX_VALIDATIONKIT_BUILD.x86 = VBOX_ONLY_VALIDATIONKIT=1 \
1992 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=x86 VBOX_SVN_REV=$(VBOX_SVN_REV)
1993
1994VBOX_VALIDATIONKIT_BUILD.arm64 = VBOX_ONLY_VALIDATIONKIT=1 \
1995 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=arm64 VBOX_SVN_REV=$(VBOX_SVN_REV)
1996
1997# Automatically determine the Validation Kit build subdir name. Used for figuring
1998# out directory names inside the test suite building VMs.
1999VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
2000
2001# When building in parallel on a Windows host, make sure we finish the host
2002# bit before kicking off any UNIX guest or we'll run into file sharing issues.
2003ifeq ($(KBUILD_TARGET),win)
2004 VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST = validationkit-build-win.x86 validationkit-build-win.amd64
2005else
2006 VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST =
2007endif
2008
2009validationkit-build-win.amd64:
2010ifeq ($(KBUILD_TARGET),win)
2011 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2012else
2013 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 Validation Kit)
2014 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_WIN_X86_IP) 'cd e:/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all '
2015 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 Validation Kit)
2016endif
2017
2018validationkit-build-win.x86:
2019ifeq ($(KBUILD_TARGET),win)
2020 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2021else
2022 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 Validation Kit)
2023 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) 'cd e:/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all '
2024 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 Validation Kit)
2025endif
2026
2027ifeq ($(KBUILD_TARGET),solaris)
2028 validationkit-build-solaris.amd64:
2029 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2030
2031 validationkit-build-solaris.x86:
2032 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2033
2034else
2035 validationkit-build-solaris.rsync-into-vm: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2036 $(TIME) -- $(call VBOX_RSYNC_IN_FN,solaris,*) \
2037 '--exclude=src/VBox/Additions/WINNT/**' \
2038 '--exclude=src/VBox/Frontends/**' \
2039 '--exclude=src/VBox/VMM/**' \
2040 . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
2041
2042 validationkit-build-solaris.build-it: validationkit-build-solaris.rsync-into-vm
2043 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 Validation Kit)
2044 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_SOLARIS_IP) 'cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all '
2045 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 Validation Kit)
2046 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 Validation Kit)
2047 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_SOLARIS_IP) 'cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all '
2048 $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 Validation Kit)
2049
2050 validationkit-build-solaris.rsync-out-of-vm: validationkit-build-solaris.build-it
2051 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/solaris.x86 out/
2052 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
2053
2054 .PHONY: validationkit-build-solaris.rsync-out-of-vm validationkit-build-solaris.rsync-into-vm validationkit-build-solaris.build-it
2055
2056 validationkit-build-solaris.amd64: validationkit-build-solaris.rsync-out-of-vm
2057 validationkit-build-solaris.x86: validationkit-build-solaris.rsync-out-of-vm
2058endif
2059
2060ifeq ($(KBUILD_TARGET),os2)
2061 validationkit-build-os2.x86:
2062 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2063 validationkit-build-os2.rsync-into-vm:
2064else # !OS/2
2065 validationkit-build-os2.rsync-into-vm:
2066 -$(VBOX_BLD_VM_OS2_KKILL_STUFF)
2067 $(TIME) -- $(call VBOX_RSYNC_IN_FN,os2,*,nossh) \
2068 '--exclude=src/VBox/Additions/**' \
2069 '--exclude=src/VBox/Frontends/**' \
2070 '--exclude=src/VBox/VMM/**' \
2071 . rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
2072
2073 validationkit-build-os2.build-it: validationkit-build-os2.rsync-into-vm
2074 $(call VBOX_BLD_VM_MSG_BEGIN,OS/2 Validation Kit)
2075 $(TIME) -- $(REDIRECT_EXT) --stdin-pipe -- rsh -l vbox $(VBOX_BLD_VM_OS2_IP) "cd e:\\tinderbox\\$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && e: && kbuild\\bin\\os2.x86\\kmk_ash tools\\env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all"
2076 $(call VBOX_BLD_VM_MSG_END__,OS/2 Validation Kit)
2077
2078 validationkit-build-os2.rsync-out-of-vm: validationkit-build-os2.build-it
2079 -$(VBOX_BLD_VM_OS2_KKILL_STUFF)
2080 $(TIME) -- $(VBOX_RSYNC_NOSSH) -v -a --delete rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/os2.x86 ./out
2081
2082 .PHONY: validationkit-build-os2.rsync-into-vm validationkit-build-os2.rsync-out-of-vm validationkit-build-os2.build-it
2083
2084 validationkit-build-os2.x86: validationkit-build-os2.rsync-out-of-vm
2085endif # !OS/2
2086
2087ifeq ($(KBUILD_TARGET),linux)
2088 validationkit-build-linux.amd64:
2089 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2090
2091 validationkit-build-linux.x86:
2092 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2093
2094 validationkit-build-linux: validationkit-build-linux.x86 validationkit-build-linux.amd64
2095else
2096 validationkit-build-linux.rsync-into-vm: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2097 $(TIME) -- $(call VBOX_RSYNC_IN_FN,linux,*) \
2098 '--exclude=src/VBox/Additions/**' \
2099 '--exclude=src/VBox/Debugger/**' \
2100 '--exclude=src/VBox/Frontends/**' \
2101 '--exclude=src/VBox/GuestHost/**' \
2102 '--exclude=src/VBox/HostServices/**' \
2103 '--exclude=src/VBox/ImageMounter/**' \
2104 '--include=src/VBox/Main/' \
2105 '--include=src/VBox/Main/idl**' \
2106 '--exclude=src/VBox/Main/**' \
2107 '--exclude=src/VBox/NetworkServices/**' \
2108 '--exclude=src/VBox/RDP/**' \
2109 '--exclude=src/VBox/Storage/**' \
2110 '--exclude=src/VBox/VMM/**' \
2111 '--exclude=src/app/**' \
2112 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
2113
2114 validationkit-build-linux.build-it: validationkit-build-linux.rsync-into-vm
2115 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 Validation Kit)
2116 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'dchroot -c debian-4.0-amd64 "cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all " '
2117 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 Validation Kit)
2118 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 Validation Kit)
2119 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'linux32 dchroot -c rhel3-i386 "cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all " '
2120 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 Validation Kit)
2121
2122 validationkit-build-linux.rsync-out-of-vm: validationkit-build-linux.build-it
2123 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/linux.x86 out/
2124 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/linux.amd64 out/
2125
2126 .PHONY: validationkit-build-linux.rsync-out-of-vm validationkit-build-linux.rsync-into-vm validationkit-build-linux.build-it
2127
2128 validationkit-build-linux: validationkit-build-linux.rsync-out-of-vm
2129
2130
2131 #
2132 # ValidationKit build for Linux ARM.
2133 #
2134 validationkit-build-linux.arm64.rsync-into-vm: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2135 $(TIME) -- $(call VBOX_RSYNC_IN_FN,linux,*) \
2136 '--exclude=src/VBox/Additions/**' \
2137 '--exclude=src/VBox/Debugger/**' \
2138 '--exclude=src/VBox/Frontends/**' \
2139 '--exclude=src/VBox/GuestHost/**' \
2140 '--exclude=src/VBox/HostServices/**' \
2141 '--exclude=src/VBox/ImageMounter/**' \
2142 '--include=src/VBox/Main/' \
2143 '--include=src/VBox/Main/idl**' \
2144 '--exclude=src/VBox/Main/**' \
2145 '--exclude=src/VBox/NetworkServices/**' \
2146 '--exclude=src/VBox/RDP/**' \
2147 '--exclude=src/VBox/Storage/**' \
2148 '--exclude=src/VBox/VMM/**' \
2149 '--exclude=src/app/**' \
2150 . $(VBOX_BLD_VM_LNX_ARM64_IP):/home/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
2151
2152 validationkit-build-linux.arm64.build-it: validationkit-build-linux.arm64.rsync-into-vm
2153 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/arm64 Validation Kit)
2154 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_ARM64_IP) 'cd /home/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.arm64) all '
2155 $(call VBOX_BLD_VM_MSG_END__,Linux/arm64 Validation Kit)
2156
2157 validationkit-build-linux.arm64.rsync-out-of-vm: validationkit-build-linux.arm64.build-it
2158 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_ARM64_IP):/home/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/linux.arm64 out/
2159
2160 .PHONY: validationkit-build-linux.arm64.rsync-out-of-vm validationkit-build-linux.arm64.rsync-into-vm validationkit-build-linux.arm64.build-it
2161
2162 validationkit-build-linux.arm64: validationkit-build-linux.arm64.rsync-out-of-vm
2163endif
2164
2165validationkit-build-freebsd.amd64: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2166#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
2167# + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2168#else
2169# $(call VBOX_BLD_VM_MSG_BEGIN,Freebsd/amd64 Validation Kit)
2170# $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_FBSD_AMD64_IP) 'cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all '
2171# $(call VBOX_BLD_VM_MSG_END__,Freebsd/amd64 Validation Kit)
2172#endif
2173
2174validationkit-build-freebsd.x86: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2175#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
2176# + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2177#else
2178# $(call VBOX_BLD_VM_MSG_BEGIN,Freebsd/x86 Validation Kit)
2179# $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_FBSD_X86_IP) 'cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all '
2180# $(call VBOX_BLD_VM_MSG_END__,Freebsd/x86 Validation Kit)
2181#endif
2182
2183validationkit-build-darwin.amd64: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2184ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
2185 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2186else
2187 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 Validation Kit)
2188 $(TIME) -- $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
2189 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_AMD64_IP) 'cd /Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all '
2190 $(TIME) -- $(VBOX_RSYNC) -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
2191 $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 Validation Kit)
2192endif
2193
2194validationkit-build-darwin.x86: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2195ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
2196 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2197else
2198 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/x86 Validation Kit)
2199 $(TIME) -- $(call VBOX_RSYNC_IN_FN,darwin,x86) . $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
2200 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) 'cd /Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all '
2201 $(TIME) -- $(VBOX_RSYNC) -am -v --delete $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/darwin.x86 out/
2202 $(call VBOX_BLD_VM_MSG_END__,Darwin/x86 Validation Kit)
2203endif
2204
2205validationkit-build-darwin.arm64: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
2206ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.arm64)
2207 + $(TIME) -- $(KMK) $(VBOX_VALIDATIONKIT_BUILD.arm64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
2208else
2209 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/arm64 Validation Kit)
2210 $(TIME) -- $(call VBOX_RSYNC_IN_FN,darwin,arm64) . $(VBOX_BLD_VM_DARWIN_ARM64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
2211 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_DARWIN_ARM64_IP) 'PATH=$$PATH:/opt/local/bin; cd /Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && KBUILD_HOST_ARCH=arm64 tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.arm64) all '
2212 $(TIME) -- $(VBOX_RSYNC) -am -v --delete $(VBOX_BLD_VM_DARWIN_ARM64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/darwin.arm64 out/
2213 $(call VBOX_BLD_VM_MSG_END__,Darwin/arm64 Validation Kit)
2214endif
2215
2216
2217validationkit-packing:
2218 + $(KMK) VBOX_ONLY_VALIDATIONKIT=1 \
2219 VBOX_WITH_VALIDATIONKIT_PACKING.darwin.amd64=1 \
2220 VBOX_WITH_VALIDATIONKIT_PACKING.darwin.x86=2 \
2221 VBOX_WITH_VALIDATIONKIT_PACKING.darwin.arm64=1 \
2222 VBOX_WITH_VALIDATIONKIT_PACKING.freebsd.amd64= \
2223 VBOX_WITH_VALIDATIONKIT_PACKING.freebsd.x86= \
2224 VBOX_WITH_VALIDATIONKIT_PACKING.linux.amd64=1 \
2225 VBOX_WITH_VALIDATIONKIT_PACKING.linux.x86=1 \
2226 VBOX_WITH_VALIDATIONKIT_PACKING.linux.arm64=1 \
2227 VBOX_WITH_VALIDATIONKIT_PACKING.os2.x86=1 \
2228 VBOX_WITH_VALIDATIONKIT_PACKING.solaris.amd64=1 \
2229 VBOX_WITH_VALIDATIONKIT_PACKING.solaris.x86=1 \
2230 VBOX_WITH_VALIDATIONKIT_PACKING.win.amd64=1 \
2231 VBOX_WITH_VALIDATIONKIT_PACKING.win.x86=1 \
2232 -C src/VBox/ValidationKit \
2233 $(PATH_OUT)/VBoxValidationKit.zip \
2234 $(PATH_OUT)/VBoxTestBoxScript.zip
2235
2236.PHONY: \
2237 validationkit-build-win.x86 \
2238 validationkit-build-win.amd64 \
2239 validationkit-build-solaris.amd64 \
2240 validationkit-build-solaris.x86 \
2241 validationkit-build-os2.x86 \
2242 validationkit-build-linux \
2243 validationkit-build-linux.amd64 \
2244 validationkit-build-linux.x86 \
2245 validationkit-build-linux.arm64 \
2246 validationkit-build-freebsd.amd64 \
2247 validationkit-build-freebsd.x86 \
2248 validationkit-build-darwin.amd64 \
2249 validationkit-build-darwin.x86 \
2250 validationkit-build-darwin.arm64 \
2251 validationkit-packing
2252
2253
2254#
2255# Build the EFI firmware, all of it.
2256#
2257efi-fetch:
2258 + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1 VBOX_ONLY_EFI=1
2259
2260efi-build: $(VBOX_VERSION_HEADER)
2261 + $(KMK) -C src/VBox/Devices/EFI/Firmware$(VBOX_EFI_FIRMWARE_SUFFIX)
2262
2263efi-packing:
2264 + $(KMK) -C src/VBox/Devices/EFI/Firmware$(VBOX_EFI_FIRMWARE_SUFFIX) $(PATH_STAGE)/VBoxEfiFirmware.zip $(if $(VBOX_WITH_VIRT_ARMV8),$(PATH_STAGE)/VBoxEfiFirmware-armv8.zip,)
2265
2266
2267
2268#
2269# Build the SDK, all of it.
2270#
2271# Hosting the build on windows, with the linux part in a VM.
2272#
2273sdk-fetch:
2274 + $(KMK) -C tools fetch VBOX_ONLY_SDK=1 VBOX_ONLY_SDK_ON_HOST=1
2275 + $(KMK) -C tools fetch VBOX_ONLY_SDK=1 VBOX_ONLY_SDK_IN_VM=1 KBUILD_TARGET=linux
2276 + $(KMK) -C tools fetch VBOX_ONLY_SDK=1 VBOX_ONLY_SDK_IN_VM=1 KBUILD_TARGET=win
2277
2278sdk-build: \
2279 sdk-build-rsync-into-vms \
2280 sdk-build-linux \
2281 sdk-build-win
2282
2283sdk-build-rsync-into-vms: \
2284 sdk-build-linux.rsync-into-vm
2285 $(call MSG_L1,Rsynced the sources + tools into the VM(s).)
2286.NOTPARALLEL: sdk-build-rsync-into-vms
2287.PHONY: sdk-build-rsync-into-vms
2288
2289VBOX_SDK_BUILD.amd64 = VBOX_ONLY_SDK=1 KBUILD_TYPE=$(KBUILD_TYPE) KBUILD_TARGET_ARCH=amd64 VBOX_SVN_REV=$(VBOX_SVN_REV)
2290
2291# Automatically determine the SDL build subdir name. Used for figuring
2292# out directory names inside the test suite building VMs.
2293VBOX_SDK_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
2294
2295sdk-build-win:
2296ifeq ($(KBUILD_TARGET),win)
2297 + $(TIME) -- $(KMK) $(VBOX_SDK_BUILD.amd64) VBOX_ONLY_SDK_ON_HOST=1 all $(VBOX_SDK_HOST_BUILD_TWEAK)
2298else
2299 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 SDK)
2300 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_WIN_X86_IP) 'cd e:/$(VBOX_SDK_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_SDK_BUILD.amd64) VBOX_ONLY_SDK_IN_VM=1 all '
2301 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 SDK)
2302endif
2303
2304ifeq ($(KBUILD_TARGET),linux)
2305 sdk-build-linux:
2306 + $(TIME) -- $(KMK) $(VBOX_SDK_BUILD.amd64) all $(VBOX_SDK_HOST_BUILD_TWEAK)
2307
2308else
2309 sdk-build-linux.rsync-into-vm: $(VBOX_SDK_BUILD_WIN_HOST_FIRST)
2310 $(TIME) -- $(call VBOX_RSYNC_IN_FN,linux,*) \
2311 '--exclude=src/VBox/Additions/**' \
2312 '--exclude=src/VBox/Artwork/**' \
2313 '--exclude=src/VBox/Devices**' \
2314 '--exclude=src/VBox/Debugger/**' \
2315 '--exclude=src/VBox/Disassembler/**' \
2316 '--exclude=src/VBox/ExtPacks/**' \
2317 '--include=src/VBox/Frontends/' \
2318 '--include=src/VBox/Frontends/VBoxShell**' \
2319 '--exclude=src/VBox/Frontends/**' \
2320 '--exclude=src/VBox/GuestHost/**' \
2321 '--exclude=src/VBox/HostDrivers/**' \
2322 '--exclude=src/VBox/HostServices/**' \
2323 '--exclude=src/VBox/ImageMounter/**' \
2324 '--exclude=src/VBox/NetworkServices/**' \
2325 '--exclude=src/VBox/Storage/**' \
2326 '--exclude=src/VBox/VMM/**' \
2327 '--include=src/libs/' \
2328 '--include=src/libs/Makefile.kmk' \
2329 '--include=src/libs/xpcom**' \
2330 '--exclude=src/libs/**' \
2331 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_SDK_BUILD_SUBDIRNAME)
2332
2333 sdk-build-linux.build-it: sdk-build-linux.rsync-into-vm
2334 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 SDK)
2335 $(TIME) -- $(VBOX_SSH) vbox@$(VBOX_BLD_VM_LNX_IP) 'cd /mnt/tinderbox/$(VBOX_SDK_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_SDK_BUILD.amd64) VBOX_ONLY_SDK_IN_VM=1 all '
2336 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 SDK)
2337
2338 sdk-build-linux.rsync-out-of-vm: sdk-build-linux.build-it
2339 $(TIME) -- $(VBOX_RSYNC) -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_SDK_BUILD_SUBDIRNAME)/out/linux.amd64 out/
2340
2341 .PHONY: sdk-build-linux.rsync-out-of-vm sdk-build-linux.rsync-into-vm sdk-build-linux.build-it
2342
2343 sdk-build-linux: sdk-build-linux.rsync-out-of-vm
2344endif
2345
2346
2347sdk-packing:
2348 + $(KMK) VBOX_ONLY_SDK=1 VBOX_ONLY_SDK_ON_HOST=1 \
2349 VBOX_WITH_SDK_PACKING.linux.amd64=1 \
2350 VBOX_WITH_SDK_PACKING.win.amd64=1 \
2351 -C src/VBox/Installer packing
2352.PHONY: \
2353 sdk-fetch \
2354 sdk-build \
2355 sdk-build-linux \
2356 sdk-build-win \
2357 sdk-packing
2358
2359
2360#
2361# Generate VirtualBox-x.x.x.zip (PUEL) snapshot archive for internal use only
2362# - includes kBuild
2363# - must be executed on an PUEL checkout
2364#
2365
2366# the path where to store the zip archive
2367ZIPPATH ?= $(abspath $(PATH_ROOT)/..)
2368# the root directory inside the zip archive
2369ZIPROOT ?= VirtualBox-$(VBOX_VERSION_STRING)
2370# the name of the zip archive
2371ZIPNAME ?= VirtualBox-$(VBOX_VERSION_STRING).zip
2372snapshot-puel:
2373 @$(call MSG_L1,Creating zip $(ZIPPATH)/$(ZIPNAME))
2374 @if [ ! -r "$(PATH_ROOT)/src/VBox/RDP/server/server.cpp" ]; then \
2375 echo; \
2376 echo "Did not find RDP stuff, is this an OSE branch?"; \
2377 echo; \
2378 exit 1; \
2379 fi
2380 @if [ -z "$(PASSWORD)" ]; then \
2381 echo; \
2382 echo "Please specify a password with PASSWORD=..."; \
2383 echo; \
2384 exit 1; \
2385 fi
2386 $(QUIET)$(MKDIR) -p $(ZIPPATH)
2387 $(QUIET)$(RM) -f $(ZIPPATH)/$(ZIPROOT)
2388 $(QUIET)$(RM) -f $(ZIPPATH)/$(ZIPNAME)
2389 $(QUIET)$(LN_SYMLINK) $(PATH_ROOT) $(ZIPPATH)/$(ZIPROOT)
2390 $(QUIET)(cd $(ZIPPATH); 7z a \
2391 -l -tzip -mmt=on -mx=7 -p$(PASSWORD) \
2392 -xr!.svn \
2393 -i!$(ZIPROOT)/Config.kmk \
2394 -i!$(ZIPROOT)/Doxyfile.Core \
2395 -i!$(ZIPROOT)/Makefile.kmk \
2396 -i!$(ZIPROOT)/configure \
2397 -i!$(ZIPROOT)/configure.vbs \
2398 -i!$(ZIPROOT)/doc \
2399 -i!$(ZIPROOT)/include \
2400 -i!$(ZIPROOT)/kBuild \
2401 -i!$(ZIPROOT)/src \
2402 -i!$(ZIPROOT)/tools/env.sh \
2403 -i!$(ZIPROOT)/tools/linux.x86/bin/* \
2404 -i!$(ZIPROOT)/tools/linux.amd64/bin/* \
2405 -x!$(ZIPROOT)/doc/Devices \
2406 -x!$(ZIPROOT)/doc/\*pdf \
2407 -x!$(ZIPROOT)/doc/VMM \
2408 -x!$(ZIPROOT)/doc/licenses_old \
2409 -x!$(ZIPROOT)/doc/manual/de_DE \
2410 -x!$(ZIPROOT)/doc/manual/fr_FR \
2411 -x!$(ZIPROOT)/src/tests \
2412 -x!$(ZIPROOT)/src/VBox/Artwork/2008-\* \
2413 -x!$(ZIPROOT)/src/VBox/Installer/AMI \
2414 -x!$(ZIPROOT)/src/VBox/Installer/Avanquest \
2415 -x!$(ZIPROOT)/src/VBox/Installer/Encore \
2416 -x!$(ZIPROOT)/src/VBox/Installer/linux/debian \
2417 -x!$(ZIPROOT)/src/VBox/Installer/linux/rpm \
2418 $(ZIPPATH)/$(ZIPNAME))
2419 $(QUIET)$(RM) $(ZIPPATH)/$(ZIPROOT)
2420
2421
2422#
2423# Generate VirtualBox-x.x.x.tar.bz2 (OSE) snapshot archive
2424# - includes kBuild
2425#
2426
2427snapshot-ose:
2428ifndef VBOX_OSE
2429 $(QUIET)$(RM) -Rf $(wildcard $(PATH_OUT)/vbox-ose-snap-*) $(wildcard $(PATH_OUT)/VirtualBox-*.tar.bz2)
2430 $(call MSG_L1,Making OSE snapshot at $(PATH_OUT)/vbox-ose-snap-$(VBOX_VERSION_STRING))
2431 $(KBUILD_DEVTOOLS)/bin/ose-snapshot.sh $(PATH_OUT)/vbox-ose-snap-$(VBOX_VERSION_STRING)
2432 $(call MSG_L1,Creating OSE tarball $(PATH_OUT)/VirtualBox-$(VBOX_VERSION_STRING)-r$(VBOX_SVN_REV).tar.bz2)
2433 $(REDIRECT) -C $(PATH_OUT)/vbox-ose-snap-$(VBOX_VERSION_STRING) -- \
2434 $(KBUILD_DEVTOOLS)/bin/ose-tarball.sh $(PATH_OUT)/VirtualBox-$(VBOX_VERSION_STRING)-r$(VBOX_SVN_REV).tar.bz2
2435else
2436 $(QUIET)$(RM) $(wildcard $(PATH_OUT)/VirtualBox-*.tar.bz2)
2437 $(call MSG_L1,Creating OSE tarball $(PATH_OUT)/VirtualBox-$(VBOX_VERSION_STRING)-r$(VBOX_SVN_REV).tar.bz2)
2438 $(REDIRECT) -C $(PATH_ROOT) -- \
2439 $(KBUILD_DEVTOOLS)/bin/ose-tarball.sh $(PATH_OUT)/VirtualBox-$(VBOX_VERSION_STRING)-r$(VBOX_SVN_REV).tar.bz2
2440endif
2441
2442
2443#
2444# Generate ALL the rules.
2445#
2446include $(FILE_KBUILD_SUB_FOOTER)
2447
2448
2449#
2450# Generate x86.mac and err.mac.
2451#
2452incs:
2453 $(SED) -f include/VBox/err.sed --output include/VBox/err.mac include/VBox/err.h
2454 $(APPEND) include/VBox/err.mac '%include "iprt/err.mac"'
2455 $(SED) -f include/VBox/err.sed --output include/iprt/err.mac include/iprt/err.h
2456 $(SED) -f include/VBox/various.sed --output include/iprt/x86.mac include/iprt/x86.h
2457 $(SED) -f include/VBox/various.sed --output include/iprt/formats/dwarf.mac include/iprt/formats/dwarf.h
2458 $(APPEND) include/iprt/x86.mac '%include "iprt/x86extra.mac"'
2459 $(SED) -f include/VBox/various.sed --output include/VBox/apic.mac include/VBox/apic.h
2460 $(SED) -f include/VBox/various.sed --output include/VBox/bios.mac include/VBox/bios.h
2461 $(SED) -f include/VBox/various.sed --output include/VBox/param.mac include/VBox/param.h
2462 $(SED) -f include/VBox/various.sed --output include/VBox/VMMDevTesting.mac include/VBox/VMMDevTesting.h
2463 $(SED) -f include/VBox/various.sed --output include/VBox/vmm/cpuidcall.mac include/VBox/vmm/cpuidcall.h
2464
2465
2466#
2467# Legacy.
2468#
2469vslick.h:
2470 $(ECHO) This is now done by gen-slickedit-workspace.sh/cmd.
2471 exit 1
2472
2473
2474#
2475# Add fetching of the tools to the 'up[date][2]' targets.
2476#
2477up update up2 update2::
2478ifndef VBOX_OSE
2479 +$(MAKE) -C tools fetch
2480else
2481 $(MAKE) -C tools -f Makefile-ose.kmk fetch
2482endif
2483
2484
2485
2486#
2487# Build the essentials to run a VM. Incomplete. Use with care!
2488#
2489quick: \
2490 VBoxRT \
2491 VBoxVMM \
2492 VMMR0 \
2493 VBoxDD \
2494 VBoxDDR0 \
2495 VBoxDD2 \
2496 VBoxDD2R0 \
2497 VBoxC \
2498 VBoxSVC \
2499 $(if-expr defined(VBOX_WITH_RAW_MODE),VMMRC VBoxDDRC VBoxDD2RC,) \
2500 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB) && "$(KBUILD_TARGET)" == "win",VBoxProxyStub,) \
2501 $(if-expr defined(VBOX_WITH_SDS),VBoxSDS,) \
2502 $(if-expr defined(VBOX_WITH_QTGUI),VirtualBox,)
2503
2504
2505#
2506# Runs the analysis with parfait
2507#
2508# @todo A lot of stuff doesn't compile with parfait under
2509# Windows yet due to insufficient MSVC emulation.
2510# Thatswhy the build is just ignoring errors and we let
2511# parfait work on whats there, even if incomplete.
2512# See @bugref{3409} for updates.
2513#
2514run-parfait:
2515ifdef VBOX_WITH_PARFAIT
2516 ifeq ($(KBUILD_TARGET),win)
2517 - $(REDIRECT) -E "PARFAIT_DUMP_PATH=$(PATH_OUT)" -- $(TIME) -- $(KMK) all -k
2518 else
2519 + $(REDIRECT) -E "PARFAIT_DUMP_PATH=$(PATH_OUT)" -- $(TIME) -- $(KMK) all
2520 endif
2521 - $(REDIRECT) -E "PARFAIT_DUMP_PATH=$(PATH_OUT)" -- $(TIME) -- $(VBOX_PARFAIT) \
2522 $(if-expr defined(VBOX_PARFAIT_SERVER),-s $(VBOX_PARFAIT_SERVER),) \
2523 $(VBOX_PARFAIT_OPTS) \
2524 $(if-expr defined(VBOX_PARFAIT_SERVER_BASELINE),-b $(VBOX_PARFAIT_SERVER_BASELINE),-b $(PATH_ROOT)/tools/parfait-vbox-baseline.conf) \
2525 -j $(if-expr $(KMK_OPTS_JOBS) > 0, $(KMK_OPTS_JOBS), 1) \
2526 -o $(PATH_OUT)/report.txt \
2527 -g $(PATH_OUT)/html \
2528 -c $(PATH_ROOT)/tools/parfait-vbox.conf \
2529 --exclude-from=$(PATH_ROOT)/tools/parfait-vbox-exclude.conf \
2530 -z $(PATH_ROOT) \
2531 -r $(VBOX_SVN_REV) \
2532 $(PATH_OUT)/obj
2533else
2534 $(ECHO) This target requires VBOX_WITH_PARFAIT to be set.
2535 exit 1
2536endif
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use