VirtualBox

source: vbox/trunk/Makefile.kmk@ 99865

Last change on this file since 99865 was 99864, checked in by vboxsync, 21 months ago

scm fixes for Makefile.kmk, plus ansible changes, if macos is newer than catalina we use shell to setup timezone

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette