VirtualBox

source: vbox/trunk/Makefile.kmk@ 68997

Last change on this file since 68997 was 68815, checked in by vboxsync, 7 years ago

Makefile.kmk: use mv/cp/rm sequence to lose the timestamp of the downloaded zip files for additions/docs/efi/extpack (wget in the script sets the timestamp even without asking for it, and on some systems we need to use an old wget executable which doesn't understand the option for skipping timestamp setting)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 79.7 KB
Line 
1# $Id: Makefile.kmk 68815 2017-09-22 12:00:11Z vboxsync $
2## @file
3# Top level makefile.
4#
5
6#
7# Copyright (C) 2006-2016 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18SUB_DEPTH = .
19include $(KBUILD_PATH)/subheader.kmk
20
21#
22# Sub-makefiles / Sub-directories.
23#
24ifndef VBOX_ONLY_ROOT_MAKEFILE
25 if (defined(VBOX_WITH_DOCS) || defined(VBOX_WITH_MAIN)) \
26 && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK))
27 include $(PATH_SUB_CURRENT)/doc/manual/Makefile.kmk
28 endif
29 include $(PATH_SUB_CURRENT)/src/Makefile.kmk
30 ifdef VBOX_WITH_INCLUDE_SYNTAX_CHECKING
31 include $(PATH_SUB_CURRENT)/include/Makefile.kmk
32 endif
33endif
34
35#
36# Below we might need TOOL_ZIP_UNPACK (for the additions/docs/efifw packages
37# from the build server), and it's not really worth the effort of dragging in
38#q this tool only if absolutely needed.
39#
40## @todo Hack to get at TOOL_ZIP_UNPACK; see if this can be integrated somehow...
41include $(KBUILD_PATH)/tools/ZIP.kmk
42ifndef TOOL_ZIP_PACK
43 TOOL_ZIP_PACK = zip
44endif
45
46
47## @todo split up this file!
48
49
50#
51# Clean up global stuff that Config.kmk generates.
52#
53OTHER_CLEAN += \
54 $(VBOX_PACKAGE_HEADER) \
55 $(VBOX_LICENSE_VER_KMK) \
56 $(VBOX_VERSION_MK) \
57 $(VBOX_VERSION_HEADER) \
58 $(VBOX_VERSION_STAMP) \
59 $(wildcard $(PATH_OUT)/version-stamp-*.*.*) \
60 $(VBOX_SVN_REV_KMK).ts \
61 $(VBOX_SVN_REV_KMK) \
62 $(PATH_OUT)/DynamicConfig.kmk
63
64
65if !defined(VBOX_ONLY_ADDITIONS) \
66 && !defined(VBOX_ONLY_DOCS) \
67 && !defined(VBOX_ONLY_EXTPACKS) \
68 && !defined(VBOX_ONLY_VALIDATIONKIT) # -> line 426b ;-)
69
70 if !defined(VBOX_OSE) && defined(VBOX_LICENSE_FILES)
71 #
72 # Install the license (and misc non-executable stuff).
73 #
74 INSTALLS += InstallLicenseFiles
75 InstallLicenseFiles_INST = $(INST_BIN)
76 InstallLicenseFiles_MODE = 0644
77 InstallLicenseFiles_SOURCES =
78 InstallLicenseFiles_SOURCES += \
79 $(VBOX_BRAND_LICENSE_HTML)=>License-$(VBOX_LICENSE_VER).html \
80 $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES),$(VBOX_BRAND_$(f)_LICENSE_HTML)=>License-$(VBOX_LICENSE_VER)-$(f).html)
81 endif
82
83
84#
85# Install external binaries (mostly redistributable parts of tools we use).
86#
87# To avoid dragging in unnecessary tools and sdks here, we don't use the .win
88# and .linux property suffixes.
89#
90INSTALLS += InstallExternalLibs
91
92InstallExternalLibs_INST = $(INST_BIN)
93
94# The SDL DLLs
95if1of ($(KBUILD_TARGET), win os2)
96 ifdef VBOX_WITH_VBOXSDL
97 include $(KBUILD_PATH)/sdks/LIBSDL.kmk
98 InstallExternalLibs_SOURCES += \
99 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_SDK_LIBSDL_SDL))
100 ifdef VBOX_WITH_SECURELABEL
101 InstallExternalLibs_SOURCES += \
102 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(DLL_SDK_LIBSDL_SDLTTF))
103 endif
104 ifeq ($(KBUILD_TARGET),os2)
105 InstallExternalLibs_SOURCES += \
106 $(DLL_SDK_LIBSDL_FSLIB)
107 endif
108 endif
109endif
110
111
112# The compiler runtime DLLs.
113ifeq ($(KBUILD_TARGET).$(VBOX_WITHOUT_COMPILER_REDIST),win.)
114 include $(KBUILD_PATH)/tools/$(VBOX_VCC_TOOL).kmk
115 include $(KBUILD_PATH)/tools/$(VBOX_VCC_TOOL_STEM)X86.kmk
116 VBOX_VCC_REDIR_BASE := Microsoft.VC$(substr $(VBOX_VCC_TOOL),4,3)
117 VBOX_PATH_VCC_REDIST = $(PATH_TOOL_$(VBOX_VCC_TOOL))/redist/
118 VBOX_PATH_VCC_REDIST_CRT = $(VBOX_PATH_VCC_REDIST)/$(subst amd64,x64,$(KBUILD_TARGET_ARCH))/$(VBOX_VCC_REDIR_BASE).CRT
119 VBOX_PATH_VCC_REDIST_CRT_DBG = $(VBOX_PATH_VCC_REDIST)/Debug_NonRedist/$(subst amd64,x64,$(KBUILD_TARGET_ARCH))/$(VBOX_VCC_REDIR_BASE).DebugCRT
120 VBOX_PATH_VCC_REDIST_CRT_X86 = $(VBOX_PATH_VCC_REDIST)/x86/$(VBOX_VCC_REDIR_BASE).CRT
121 VBOX_PATH_VCC_REDIST_CRT_DBG_X86 = $(VBOX_PATH_VCC_REDIST)/Debug_NonRedist/x86/$(VBOX_VCC_REDIR_BASE).DebugCRT
122
123 InstallExternalLibs_SOURCES += \
124 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT)/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4).dll) \
125 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT)/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4).dll) \
126 $(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 \
127 $(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
128 ifdef VBOX_WITH_32_ON_64_MAIN_API
129 InstallExternalLibs_SOURCES += \
130 $(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 \
131 $(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
132 endif
133 ifeq ($(VBOX_VCC_CRT_TYPE),d)
134 InstallExternalLibs_SOURCES += \
135 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG)/msvcr$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll) \
136 $(call VBOX_RE_SIGN_DLL_FN,InstallExternalLibs,$(VBOX_PATH_VCC_REDIST_CRT_DBG)/msvcp$(substr $(VBOX_VCC_TOOL_STEM),4)d.dll) \
137 $(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 \
138 $(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
139 ifdef VBOX_WITH_32_ON_64_MAIN_API
140 InstallExternalLibs_SOURCES += \
141 $(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 \
142 $(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
143 endif
144 endif
145endif
146
147#
148# Install our Qt DLLs / Shared Objects / Frameworks.
149# Note: The installer fixes the darwin .dylibs when hardening is enabled.
150# Note: Contents/Info.plist is where it's in 4.7.x, not sure if the location is kosher... According to
151# https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html
152# the Info.plist file goes into Resources.
153#
154ifeq ($(KBUILD_TARGET),darwin)
155 include $(KBUILD_PATH)/units/qt5.kmk
156 INSTALLS += qt5-bin
157 qt5-bin_MODE = 755
158 qt5-bin_INST = $(INST_VIRTUALBOX)Contents/
159 qt5-bin_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
160 $(PATH_SDK_QT5_LIB)/$(qtmod).framework/Versions/5/$(qtmod)=>Frameworks/$(qtmod).framework/Versions/5/$(qtmod) \
161 $(PATH_SDK_QT5_LIB)/$(qtmod).framework/Versions/5/Resources/Info.plist=>Frameworks/$(qtmod).framework/Versions/5/Resources/Info.plist)
162 qt5-bin_SOURCES += \
163 $(PATH_SDK_QT5)/plugins/platforms/libqcocoa$(SUFF_DLL)=>plugins/platforms/libqcocoa$(SUFF_DLL) \
164 $(PATH_SDK_QT5)/plugins/platforms/libqminimal$(SUFF_DLL)=>plugins/platforms/libqminimal$(SUFF_DLL) \
165 $(PATH_SDK_QT5)/plugins/platforms/libqoffscreen$(SUFF_DLL)=>plugins/platforms/libqoffscreen$(SUFF_DLL)
166 qt5-bin_SYMLINKS = $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
167 Frameworks/$(qtmod).framework/Versions/Current=>5 \
168 Frameworks/$(qtmod).framework/$(qtmod)=>Versions/5/$(qtmod) \
169 Frameworks/$(qtmod).framework/Resources=>Versions/5/Resources)
170else # win x11
171 if1of ($(KBUILD_TARGET), linux solaris)
172 ifndef VBOX_ONLY_BUILD
173 ifneq ($(VBOX_GCC_VERSION_CXX),)
174 ifeq ($(int-ge $(VBOX_GCC_VERSION_CXX),40400),)
175 $(error gcc >= 4.4 required when compiling against Qt5!)
176 endif
177 endif
178 endif
179 endif
180 if defined(VBOX_WITH_ORACLE_QT) || defined(VBOX_WITH_QT_PAYLOAD)
181 include $(KBUILD_PATH)/units/qt5.kmk
182 ifeq ($(KBUILD_TARGET),win)
183 INSTALLS += qt5-bin
184 qt5-bin_MODE = 755
185 qt5-bin_INST = $(INST_BIN)
186 qt5-bin_SOURCES = \
187 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/bin/$(qtmod)$(SUFF_DLL)))
188 qt5-bin_SOURCES += \
189 $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qwindows$(SUFF_DLL))=>platforms/qwindows$(SUFF_DLL) \
190 $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qminimal$(SUFF_DLL))=>platforms/qminimal$(SUFF_DLL) \
191 $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qoffscreen$(SUFF_DLL))=>platforms/qoffscreen$(SUFF_DLL)
192 ifdef VBOX_WITH_QT_PDBS
193 qt5-bin_SOURCES += \
194 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT5)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb))
195 endif # VBOX_WITH_QT_PDBS
196 else # x11
197 INSTALLS += qt5-bin
198 qt5-bin_MODE = 755
199 qt5-bin_INST = $(INST_BIN)
200 ifdef VBOX_WITH_HARDENING
201 # The wildcards are necessary to install the libs instead of the symlinks
202 qt5-bin_SOURCES = \
203 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*)=>lib$(qtmod).so.5) \
204 $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib))
205 ifneq ($(KBUILD_TARGET),solaris)
206 qt5-bin_SOURCES += \
207 $(foreach lib,$(VBOX_QT_LEGACY_LIBS),$(wildcard $(VBOX_PATH_QT_LIB)/legacy/$(lib).*.*)=>legacy/$(lib))
208 endif # solaris
209 else # !VBOX_WITH_HARDENING
210 # For non-hardened builds we need to remove the RUNPATH. This stuff is
211 # ugly but we need to prevent kBuild from hard-linking otherwise we
212 # (indirectly) change the binaries in tools
213 ifneq ($(KBUILD_TARGET),solaris)
214 QT5_VERSION = 5.6.1
215 else
216 QT5_VERSION = 5.6.2
217 endif
218 qt5-bin_SOURCES = \
219 $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)=>lib$(qtmod).so.5) \
220 $(foreach lib,$(VBOX_QT_PLUGINS),$(qt5-bin_0_OUTDIR)/$(lib)=>$(lib))
221 ifneq ($(KBUILD_TARGET),solaris)
222 qt5-bin_SOURCES += \
223 $(foreach lib,$(VBOX_QT_LEGACY_LIBS),$(qt5-bin_0_OUTDIR)/$(lib)=>legacy/$(lib))
224 endif # solaris
225
226$(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)): \
227 $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt5-bin_0_OUTDIR)/
228 $(call MSG_INST_FILE,$^,$@)
229 $(QUIET)$(CP) $^ $@
230 $(QUIET)chrpath --delete $@
231
232 ifneq ($(KBUILD_TARGET),solaris)
233$(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \
234 $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/
235 $(call MSG_INST_FILE,$^,$@)
236 $(QUIET)$(MKDIR) -p $(@D)
237 $(QUIET)$(CP) $^ $@
238 $(QUIET)chrpath --delete $@
239 endif # !solaris
240
241 # @todo For solaris dlopen fails to navigate executable rpath to dependent libraries,
242 # so add explicit rpath for libqxcb.so, find better solution later.
243 ifeq ($(KBUILD_TARGET),solaris)
244$(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \
245 $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/
246 $(call MSG_INST_FILE,$^,$@)
247 $(QUIET)$(MKDIR) -p $(@D)
248 $(QUIET)$(CP) $^ $@
249 $(QUIET)chrpath --replace "\$$ORIGIN/../../" $@
250 endif # solaris
251
252$(foreach lib,$(VBOX_QT_LEGACY_LIBS),$$(qt5-bin_0_OUTDIR)/$(lib)): \
253 $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/legacy/% | $$(qt5-bin_0_OUTDIR)/
254 $(call MSG_INST_FILE,$^,$@)
255 $(QUIET)$(CP) $^ $@
256 $(QUIET)chrpath --delete $@
257
258 endif # !VBOX_WITH_HARDENING
259 endif # x11
260 endif # VBOX_WITH_ORACLE_QT || VBOX_WITH_QT_PAYLOAD
261endif # win x11
262
263
264#
265# Install additions iso from the build server if configured to do so.
266#
267# Note! For building the combined package, just get the additions .ISO
268# once for amd64 to prevent version inconsistences. In all other
269# cases we get the .ISO per target architecture.
270#
271if defined(VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER) \
272 && ( !defined(VBOX_WITH_COMBINED_PACKAGE) \
273 || "$(KBUILD_TARGET_ARCH)" == "amd64" )
274 INSTALLS += buildserver-additions
275 buildserver-additions_INST = $(INST_ADDITIONS_ISO)
276 buildserver-additions_MODE = 0644
277 buildserver-additions_SOURCES = $(PATH_TARGET)/VBoxGuestAdditions.iso
278 buildserver-additions_CLEANS = \
279 $(buildserver-additions_0_OUTDIR)/unpacked.ts \
280 $(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip \
281 $(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip.tmp \
282 $(PATH_TARGET)/VBoxGuestAdditions.iso
283
284 $$(buildserver-additions_0_OUTDIR)/unpacked.ts +| $(PATH_TARGET)/VBoxGuestAdditions.iso: \
285 $$(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip
286 $(call MSG_L1,Unpacking additions archive)
287 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(PATH_TARGET)
288 ## @todo r=klaus replace mv/cp/rm sequence by touch or some equivalent to lose the timestamp
289 $(MV) $(PATH_TARGET)/VBoxGuestAdditions.iso $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp
290 $(CP) $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp $(PATH_TARGET)/VBoxGuestAdditions.iso
291 $(RM) -f $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp
292 $(APPEND) -t $@ "done"
293
294 $$(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/additions.sh | $$(dir $$@)
295 $(RM) -f -- "$@" "[email protected]"
296 $(SHELL) $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename "[email protected]"
297 ## @todo r=klaus replace mv/cp/rm sequence by touch or some equivalent to lose the timestamp
298 $(MV) "[email protected]" "[email protected]"
299 $(CP) "[email protected]" "[email protected]"
300 $(RM) -f "[email protected]"
301 $(MV) -f -- "[email protected]" "$@"
302
303endif # VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER unless win.x86+combined
304
305
306#
307# Install documentation files (at the moment the .chm) from the build server.
308#
309ifdef VBOX_WITH_DOCS_FROM_BUILD_SERVER
310## @todo r=bird: Too much mess now for $(PATH_TARGET); move to doc/manual/.
311INSTALLS += buildserver-docs
312buildserver-docs_INST = $(INST_BIN)
313buildserver-docs_MODE = 0644
314buildserver-docs_SOURCES = \
315 $(addprefix $(PATH_TARGET)/, \
316 VirtualBox.chm UserManual.pdf \
317 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),VirtualBox_$(f).chm UserManual_$(f).pdf))
318buildserver-docs_CLEANS = \
319 $(buildserver-docs_0_OUTDIR)/unpacked.ts \
320 $(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip \
321 $(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip.tmp \
322 $(addprefix $(PATH_TARGET)/, \
323 VirtualBox.chm UserManual.pdf \
324 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),VirtualBox_$(f).chm UserManual_$(f).pdf))
325
326$$(buildserver-docs_0_OUTDIR)/unpacked.ts +| $(PATH_TARGET)/VirtualBox.chm $(PATH_TARGET)/UserManual.pdf \
327$(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_TARGET)/VirtualBox_$(f).chm $(PATH_TARGET)/UserManual_$(f).pdf): \
328 $$(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip
329 $(call MSG_L1,Unpacking documentation)
330 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(PATH_TARGET)
331 ## @todo r=klaus replace mv/cp/rm sequence by touch or some equivalent to lose the timestamp
332 $(MV) $(PATH_TARGET)/VirtualBox.chm $(PATH_TARGET)/VirtualBox.chm.tmp
333 $(CP) $(PATH_TARGET)/VirtualBox.chm.tmp $(PATH_TARGET)/VirtualBox.chm
334 $(RM) -f $(PATH_TARGET)/VirtualBox.chm.tmp
335 $(MV) $(PATH_TARGET)/UserManual.pdf $(PATH_TARGET)/UserManual.pdf.tmp
336 $(CP) $(PATH_TARGET)/UserManual.pdf.tmp $(PATH_TARGET)/UserManual.pdf
337 $(RM) -f $(PATH_TARGET)/UserManual.pdf.tmp
338 for i in $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_TARGET)/VirtualBox_$(f).chm $(PATH_TARGET)/UserManual_$(f).pdf); do $(MV_EXT) $$i $$i.tmp; $(CP_EXT) $$i.tmp $$i; $(RM_EXT) -f $$i.tmp; done
339 $(APPEND) -t $@ "done"
340
341$$(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/documentation.sh | $$(dir $$@)
342 $(RM) -f -- "$@" "[email protected]"
343 $(SHELL) $(PATH_DEVTOOLS)/bin/documentation.sh --cmd fetch --filename "[email protected]"
344 ## @todo r=klaus replace mv/cp/rm sequence by touch or some equivalent to lose the timestamp
345 $(MV) "[email protected]" "[email protected]"
346 $(CP) "[email protected]" "[email protected]"
347 $(RM) -f "[email protected]"
348 $(MV) -f -- "[email protected]" "$@"
349
350endif # VBOX_WITH_DOCS_FROM_BUILD_SERVER
351
352
353 ifdef VBOX_WITH_EFI
354 #
355 # Install EFI firmware image
356 #
357 ifdef VBOX_WITH_EFIFW_FROM_BUILD_SERVER
358 #
359 # Either from the build server.
360 #
361 ifndef VBOX_EFI_FIRMWARE_EFI_MODULES_KMK_INCLUDED
362 include $(PATH_ROOT)/src/VBox/Devices/EFI/Firmware/EfiModules.kmk
363 endif
364 INSTALLS += buildserver-efifw
365 buildserver-efifw_INST = $(INST_BIN)
366 buildserver-efifw_MODE = 0644
367 buildserver-efifw_SOURCES = \
368 $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
369 $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd
370 buildserver-efifw_CLEANS = \
371 $(buildserver-efifw_0_OUTDIR)/unpacked.ts \
372 $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
373 $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd \
374 $(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip \
375 $(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip.tmp \
376 $(foreach arch, amd64 x86, $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$$(buildserver-efifw_0_OUTDIR)/$(arch)/$(mod).pdb))
377
378 INSTALLS += buildserver-efifw-dbg-amd64
379 buildserver-efifw-dbg-amd64_INST = $(INST_VBOXDBG_SYMS)amd64/
380 buildserver-efifw-dbg-amd64_MODE = 0644
381 buildserver-efifw-dbg-amd64_SOURCES = \
382 $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$(buildserver-efifw_0_OUTDIR)/amd64/$(mod).pdb)
383
384 INSTALLS += buildserver-efifw-dbg-x86
385 buildserver-efifw-dbg-x86_INST = $(INST_VBOXDBG_SYMS)x86/
386 buildserver-efifw-dbg-x86_MODE = 0644
387 buildserver-efifw-dbg-x86_SOURCES = \
388 $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$(buildserver-efifw_0_OUTDIR)/x86/$(mod).pdb)
389
390 $$(buildserver-efifw_0_OUTDIR)/unpacked.ts \
391 +| $$(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
392 $$(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd \
393 $(foreach arch, amd64 x86, $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$$(buildserver-efifw_0_OUTDIR)/$(arch)/$(mod).pdb)): \
394 $$(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip
395 $(call MSG_L1,Unpacking EFI firmware)
396 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -o $< -d $(buildserver-efifw_0_OUTDIR)
397 $(foreach arch, amd64 x86, \
398 $(NLTAB) $(QUIET)$(TEST) '!' -d $(dir $@)/$(arch) -- $(MKDIR_EXT) -- $(dir $@)/$(arch) \
399 $(foreach mod,$(VBOX_EFI_MODULES_FLAT) \
400 ,$(NLTAB) $(QUIET)$(TEST) '!' -f $(dir $@)/$(arch)/$(mod).pdb -- $(APPEND_EXT) $(dir $@)/$(arch)/$(mod).pdb ))
401 ## @todo r=klaus replace mv/cp/rm sequence by touch or some equivalent to lose the timestamp
402 $(MV) $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd.tmp
403 $(CP) $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd.tmp $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd
404 $(RM) -f $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd.tmp
405 $(MV) $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd.tmp
406 $(CP) $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd.tmp $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd
407 $(RM) -f $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd.tmp
408 $(APPEND) -t $@ "done"
409
410 $$(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip: \
411 $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/efi_firmware.sh | $$(dir $$@)
412 $(RM) -f -- "$@" "[email protected]"
413 $(SHELL) $(PATH_DEVTOOLS)/bin/efi_firmware.sh --cmd fetch --filename "[email protected]"
414 ## @todo r=klaus replace mv/cp/rm sequence by touch or some equivalent to lose the timestamp
415 $(MV) "[email protected]" "[email protected]"
416 $(CP) "[email protected]" "[email protected]"
417 $(RM) -f "[email protected]"
418 $(MV) -f -- "[email protected]" "$@"
419
420 else # !VBOX_WITH_EFIFW_FROM_BUILD_SERVER
421 #
422 # Or from the local copy (no debug).
423 #
424 INSTALLS += local-efifw
425 local-efifw_INST = $(INST_BIN)
426 local-efifw_MODE = 0644
427 local-efifw_SOURCES = \
428 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd=>VBoxEFI32.fd \
429 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd=>VBoxEFI64.fd
430 endif # !VBOX_WITH_EFIFW_FROM_BUILD_SERVER
431 endif # VBOX_WITH_EFI
432
433
434ifdef VBOX_WITH_EXTPACKS_FROM_BUILD_SERVER
435#
436# Get the extension pack from from the build server to facility the automatic
437# testing (everything in one tarball (VBoxAll-*)).
438#
439# Note! Using the plural here as we might be downloading more packages eventually.
440#
441INSTALLS += buildserver-extpacks
442buildserver-extpacks_INST = $(INST_DIST)
443buildserver-extpacks_MODE = 0644
444buildserver-extpacks_SOURCES = \
445 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack
446buildserver-extpacks_CLEANS = \
447 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack \
448 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack.tmp
449
450$$(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack: \
451 $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/extpacks.sh | $$(dir $$@)
452 $(RM) -f -- "[email protected]" "$@"
453 $(SHELL) $(PATH_DEVTOOLS)/bin/extpacks.sh --cmd fetch --filename "[email protected]" --vbox-version "$(VBOX_VERSION_STRING)"
454 ## @todo r=klaus replace mv/cp/rm sequence by touch or some equivalent to lose the timestamp
455 $(MV) "[email protected]" "[email protected]"
456 $(CP) "[email protected]" "[email protected]"
457 $(RM) -f "[email protected]"
458 $(MV) -f -- "[email protected]" "$@"
459
460endif
461
462
463#
464# Install staged binaries on platforms where we can't cross
465# compile things.
466#
467ifn1of ($(KBUILD_TARGET), linux win)
468 VBOX_PATH_STAGED ?= .
469
470 # Additions.
471 ifndef VBOX_WITH_LINUX_ADDITIONS
472 ifndef VBOX_WITH_WIN32_ADDITIONS
473 ifneq ($(wildcard $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso),)
474 INSTALLS += staged-additions
475 staged-additions_INST = $(INST_ADDITIONS_ISO)
476 staged-additions_MODE = 0644
477 staged-additions_SOURCES = $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso
478 endif
479 endif
480 endif
481
482 # guesttool.exe
483 ifndef VBOX_WITH_WIN32_ADDITIONS
484 ifneq ($(wildcard $(VBOX_PATH_STAGED)/guesttool.exe),)
485 INSTALLS += staged-guesttool
486 staged-guesttool_INST = $(INST_BIN)
487 staged-guesttool_SOURCES = $(VBOX_PATH_STAGED)/guesttool.exe
488 endif
489 endif
490
491endif
492
493endif # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_DOCS && !VBOX_ONLY_EXTPACKS && !VBOX_ONLY_VALIDATIONKIT
494
495
496ifdef VBOX_ONLY_DOCS
497# It may sound a bit odd, but for preparing the documentation package the
498# doxygen documentation isn't needed and increases the build time a lot.
499docs:
500else # !VBOX_ONLY_DOCS
501#
502# Generate documentation.
503# (This should be converted into a separate pass or merged with an existing one later.)
504#
505 ifdef VBOX_WITH_ALL_DOXYGEN_TARGETS
506docs: docs.Core
507 endif
508endif # !VBOX_ONLY_DOCS
509
510#
511# The core (VMM+REM+Devices+Main) documentation.
512#
513# This includes so much because we wish to have the complete CFGM
514# and GCFGM lists.
515#
516VBOX_CORE_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/Core
517BLDDIRS += $(VBOX_CORE_DOXYFILE_OUTPUT)
518OTHER_CLEAN += \
519 $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core \
520 $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core.dep
521
522VBOX_CORE_DOXYFILE_INPUT_DIRS = \
523 include/iprt \
524 include/iprt/cpp \
525 include/iprt/crypto \
526 include/iprt/formats \
527 include/iprt/linux \
528 include/iprt/nt \
529 include/iprt/solaris \
530 include/iprt/win \
531 include/iprt/nocrt \
532 include/VBox \
533 include/VBox/vmm \
534 include/VBox/com \
535 include/VBox/ExtPack \
536 include/VBox/HostServices \
537 include/VBox/GuestHost \
538 include/VBox/HGSMI \
539 src/VBox/VMM \
540 src/VBox/VMM/VMMR0 \
541 src/VBox/VMM/VMMRC \
542 src/VBox/VMM/VMMR3 \
543 src/VBox/VMM/VMMAll \
544 src/VBox/VMM/VMMSwitcher \
545 src/VBox/VMM/include \
546 src/VBox/Debugger \
547 src/VBox/Devices \
548 src/VBox/Devices/Audio \
549 src/VBox/Devices/Bus \
550 src/VBox/Devices/Graphics \
551 src/VBox/Devices/Graphics/BIOS \
552 src/VBox/Devices/Graphics/shaderlib \
553 src/VBox/Devices/Input \
554 src/VBox/Devices/Networking \
555 src/VBox/Devices/PC \
556 src/VBox/Devices/PC/BIOS \
557 src/VBox/Devices/Parallel \
558 src/VBox/Devices/Serial \
559 src/VBox/Devices/Storage \
560 src/VBox/Devices/USB \
561 src/VBox/Devices/USB/darwin \
562 src/VBox/Devices/USB/linux \
563 src/VBox/Devices/USB/os2 \
564 src/VBox/Devices/USB/solaris \
565 src/VBox/Devices/USB/vrdp \
566 src/VBox/Devices/USB/win32 \
567 src/VBox/Devices/VMMDev \
568 src/VBox/Main/include \
569 src/VBox/Main/include/hgcm \
570 src/VBox/Main \
571 src/VBox/Main/glue \
572 src/VBox/Main/webservice \
573 src/VBox/Main/xml \
574 src/VBox/Main/src-all \
575 src/VBox/Main/src-all/win \
576 src/VBox/Main/src-client \
577 src/VBox/Main/src-client/win \
578 src/VBox/Main/src-client/xpcom \
579 src/VBox/Main/src-server \
580 src/VBox/Main/src-server/darwin \
581 src/VBox/Main/src-server/linux \
582 src/VBox/Main/src-server/os2 \
583 src/VBox/Main/src-server/solaris \
584 src/VBox/Main/src-server/win \
585 src/VBox/Main/src-server/xpcom \
586 src/VBox/HostServices \
587 src/VBox/HostServices/DragAndDrop \
588 src/VBox/HostServices/GuestControl \
589 src/VBox/HostServices/GuestProperties \
590 src/VBox/HostServices/SharedClipboard \
591 src/VBox/HostServices/SharedFolders \
592 src/VBox/HostServices/SharedOpenGL \
593 src/VBox/HostServices/SharedOpenGL/crserver \
594 src/VBox/HostServices/SharedOpenGL/crserverlib \
595 src/VBox/HostServices/SharedOpenGL/render \
596 src/VBox/HostServices/SharedOpenGL/unpacker \
597 src/VBox/HostServices/auth \
598 src/VBox/HostServices/auth/directoryservice \
599 src/VBox/HostServices/auth/pam \
600 src/VBox/HostServices/auth/simple \
601 src/VBox/HostServices/auth/winlogon \
602 src/VBox/HostDrivers/Support \
603 src/VBox/HostDrivers/Support/darwin \
604 src/VBox/HostDrivers/Support/freebsd \
605 src/VBox/HostDrivers/Support/linux \
606 src/VBox/HostDrivers/Support/os2 \
607 src/VBox/HostDrivers/Support/solaris \
608 src/VBox/HostDrivers/Support/win \
609 src/VBox/HostDrivers/VBoxNetFlt \
610 src/VBox/HostDrivers/VBoxNetFlt/darwin \
611 src/VBox/HostDrivers/VBoxNetFlt/linux \
612 src/VBox/HostDrivers/VBoxNetFlt/solaris \
613 src/VBox/HostDrivers/VBoxNetFlt/win \
614 src/VBox/HostDrivers/VBoxNetNat \
615 src/VBox/HostDrivers/VBoxNetNat/darwin \
616 src/VBox/HostDrivers/VBoxNetNat/linux \
617 src/VBox/HostDrivers/VBoxNetNat/solaris \
618 src/VBox/HostDrivers/VBoxNetNat/win \
619 src/VBox/HostDrivers/VBoxNetAdp \
620 src/VBox/HostDrivers/VBoxNetAdp/darwin \
621 src/VBox/HostDrivers/VBoxNetAdp/linux \
622 src/VBox/HostDrivers/VBoxNetAdp/solaris \
623 src/VBox/HostDrivers/VBoxNetAdp/win \
624 src/VBox/HostDrivers/VBoxPci \
625 src/VBox/HostDrivers/VBoxPci/darwin \
626 src/VBox/HostDrivers/VBoxPci/linux \
627 src/VBox/HostDrivers/VBoxPci/solaris \
628 src/VBox/HostDrivers/VBoxPci/win \
629 src/VBox/HostDrivers/VBoxUSB \
630 src/VBox/HostDrivers/VBoxUSB/darwin \
631 src/VBox/HostDrivers/VBoxUSB/os2 \
632 src/VBox/HostDrivers/VBoxUSB/solaris \
633 src/VBox/HostDrivers/VBoxUSB/win \
634 src/VBox/HostDrivers/VBoxUSB/win/Device \
635 src/VBox/HostDrivers/VBoxUSB/win/Device/amd64 \
636 src/VBox/HostDrivers/VBoxUSB/win/Device/x86 \
637 src/VBox/HostDrivers/VBoxUSB/win/Filter \
638 src/VBox/HostDrivers/VBoxUSB/win/Install \
639 src/VBox/HostDrivers/VBoxUSB/win/Monitor \
640 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win32 \
641 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win64 \
642 src/VBox/HostDrivers/VBoxUSB/win/usbd \
643 src/VBox/Additions \
644 src/VBox/Additions/WINNT \
645 src/VBox/Additions/WINNT/Graphics \
646 src/VBox/Additions/WINNT/Graphics/Video \
647 src/VBox/Additions/WINNT/Graphics/Video/common \
648 src/VBox/Additions/WINNT/Graphics/Video/common/wddm \
649 src/VBox/Additions/WINNT/Graphics/Video/common/xpdm \
650 src/VBox/Additions/WINNT/Graphics/Video/disp \
651 src/VBox/Additions/WINNT/Graphics/Video/disp/common \
652 src/VBox/Additions/WINNT/Graphics/Video/disp/wddm \
653 src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dbg \
654 src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm \
655 src/VBox/Additions/WINNT/Graphics/Video/mp \
656 src/VBox/Additions/WINNT/Graphics/Video/mp/common \
657 src/VBox/Additions/WINNT/Graphics/Video/mp/wddm \
658 src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm \
659 src/VBox/Additions/WINNT/Graphics/Wine_new \
660 src/VBox/Additions/WINNT/Graphics/Wine_new/d3d8 \
661 src/VBox/Additions/WINNT/Graphics/Wine_new/d3d9 \
662 src/VBox/Additions/WINNT/Graphics/Wine_new/libWine \
663 src/VBox/Additions/WINNT/Graphics/Wine_new/switcher \
664 src/VBox/Additions/WINNT/Graphics/Wine_new/vbox \
665 src/VBox/Additions/WINNT/Graphics/Wine_new/wined3d \
666 src/VBox/Additions/WINNT/Installer \
667 src/VBox/Additions/WINNT/Installer/ISO \
668 src/VBox/Additions/WINNT/Installer/InstallHelper \
669 src/VBox/Additions/WINNT/Installer/Languages \
670 src/VBox/Additions/WINNT/Installer/Loader \
671 src/VBox/Additions/WINNT/Mouse \
672 src/VBox/Additions/WINNT/Mouse/NT5 \
673 src/VBox/Additions/WINNT/Mouse/common \
674 src/VBox/Additions/WINNT/SharedFolders \
675 src/VBox/Additions/WINNT/SharedFolders/redirector \
676 src/VBox/Additions/WINNT/SharedFolders/redirector/dll \
677 src/VBox/Additions/WINNT/SharedFolders/redirector/sys \
678 src/VBox/Additions/WINNT/SharedFolders/redirector/sys/rdbss \
679 src/VBox/Additions/WINNT/VBoxCredProv \
680 src/VBox/Additions/WINNT/VBoxGINA \
681 src/VBox/Additions/WINNT/VBoxHook \
682 src/VBox/Additions/WINNT/VBoxTray \
683 src/VBox/Additions/WINNT/VBoxUSB \
684 src/VBox/Additions/WINNT/i8042prt \
685 src/VBox/Additions/WINNT/i8042prt/i386 \
686 src/VBox/Additions/WINNT/i8042prt/include \
687 src/VBox/Additions/WINNT/include \
688 src/VBox/Additions/common \
689 src/VBox/Additions/common/VBoxControl \
690 src/VBox/Additions/common/VBoxGuest \
691 src/VBox/Additions/common/VBoxGuest/freebsd \
692 src/VBox/Additions/common/VBoxGuest/linux \
693 src/VBox/Additions/common/VBoxGuest/win \
694 src/VBox/Additions/common/VBoxGuestLib \
695 src/VBox/Additions/common/VBoxService \
696 src/VBox/Additions/common/VBoxVideo \
697 src/VBox/Additions/common/crOpenGL \
698 src/VBox/Additions/common/crOpenGL/array \
699 src/VBox/Additions/common/crOpenGL/feedback \
700 src/VBox/Additions/common/crOpenGL/pack \
701 src/VBox/Additions/common/crOpenGL/passthrough \
702 src/VBox/Additions/common/pam \
703 src/VBox/Additions/darwin \
704 src/VBox/Additions/freebsd \
705 src/VBox/Additions/freebsd/Installer \
706 src/VBox/Additions/freebsd/drm \
707 src/VBox/Additions/freebsd/vboxvfs \
708 src/VBox/Additions/linux \
709 src/VBox/Additions/linux/drm \
710 src/VBox/Additions/linux/installer \
711 src/VBox/Additions/linux/selinux-fedora \
712 src/VBox/Additions/linux/sharedfolders \
713 src/VBox/Additions/os2 \
714 src/VBox/Additions/os2/VBoxGradd \
715 src/VBox/Additions/os2/VBoxGradd/graddlib \
716 src/VBox/Additions/os2/VBoxGrext \
717 src/VBox/Additions/os2/VBoxMouse \
718 src/VBox/Additions/os2/VBoxSF \
719 src/VBox/Additions/solaris \
720 src/VBox/Additions/solaris/DRM \
721 src/VBox/Additions/solaris/Installer \
722 src/VBox/Additions/solaris/SharedFolders \
723 src/VBox/Additions/solaris/SharedFolders/solaris10 \
724 src/VBox/Additions/solaris/SharedFolders/solaris10/sys \
725 src/VBox/Additions/solaris/Virtio \
726 src/VBox/Additions/x11 \
727 src/VBox/Additions/x11/Installer \
728 src/VBox/Additions/x11/VBoxClient \
729 src/VBox/Additions/x11/vboxmouse \
730 src/VBox/Additions/x11/vboxmouse/xorg70 \
731 src/VBox/Additions/x11/vboxmouse/xorg71 \
732 src/VBox/Additions/x11/vboxvideo \
733 src/VBox/NetworkServices \
734 src/VBox/NetworkServices/DHCP \
735 src/VBox/NetworkServices/NAT \
736 src/VBox/NetworkServices/NetLib \
737 src/VBox/Storage \
738 src/VBox/ValidationKit/ \
739 src/VBox/ValidationKit/docs/ \
740 src/VBox/ValidationKit/testdriver/ \
741 src/VBox/ValidationKit/bootsectors/ \
742 src/VBox/ValidationKit/bootsectors/bs3kit/ \
743 src/VBox/ValidationKit/tests/ \
744 src/VBox/ValidationKit/tests/additions/ \
745 src/VBox/ValidationKit/tests/api/ \
746 src/VBox/ValidationKit/tests/autostart/ \
747 src/VBox/ValidationKit/tests/benchmarks/ \
748 src/VBox/ValidationKit/tests/cpu/ \
749 src/VBox/ValidationKit/tests/installation/ \
750 src/VBox/ValidationKit/tests/network/ \
751 src/VBox/ValidationKit/tests/selftests/ \
752 src/VBox/ValidationKit/tests/smoketests/ \
753 src/VBox/ValidationKit/tests/storage/ \
754 src/VBox/ValidationKit/tests/teleportation/ \
755 src/VBox/ValidationKit/tests/unittests/ \
756 src/VBox/ValidationKit/tests/usb/ \
757 src/VBox/ValidationKit/common/ \
758 src/VBox/ValidationKit/utils/ \
759 src/VBox/ValidationKit/utils/TestExecServ/ \
760 src/VBox/ValidationKit/utils/cpu/ \
761 src/VBox/ValidationKit/utils/misc/ \
762 src/VBox/ValidationKit/utils/network/ \
763 src/VBox/ValidationKit/utils/nt/ \
764 src/VBox/ValidationKit/utils/usb/ \
765 src/VBox/ValidationKit/vms/ \
766 src/VBox/ValidationKit/testmanager/ \
767 src/VBox/ValidationKit/testmanager/core/ \
768 src/VBox/ValidationKit/testmanager/db/ \
769 src/VBox/ValidationKit/testmanager/debug/ \
770 src/VBox/ValidationKit/testmanager/cgi/ \
771 src/VBox/ValidationKit/testmanager/webui/ \
772 src/VBox/ValidationKit/testboxscript/ \
773
774# These must come first in order to make things look nice.
775VBOX_CORE_DOXYFILE_INPUT_FIRST =\
776 $(PATH_ROOT)/doc/VBox-doc.c \
777 $(PATH_ROOT)/doc/VBox-CodingGuidelines.cpp \
778 $(PATH_ROOT)/doc/VBox-MakefileGuidelines.cpp \
779 $(PATH_ROOT)/src/VBox/VMM/Docs-CodingGuidelines.cpp \
780 $(PATH_ROOT)/src/VBox/VMM/Docs-RawMode.cpp \
781 $(PATH_ROOT)/include/VBox/cdefs.h \
782 $(PATH_ROOT)/include/VBox/vmm/vmm.h \
783 $(PATH_ROOT)/include/VBox/vmm/vmapi.h \
784 $(PATH_ROOT)/include/VBox/vmm/cpum.h \
785 $(PATH_ROOT)/include/VBox/vmm/mm.h \
786 $(PATH_ROOT)/include/VBox/vmm/pgm.h \
787 $(PATH_ROOT)/include/VBox/vmm/selm.h \
788 $(PATH_ROOT)/include/VBox/vmm/trpm.h \
789 $(PATH_ROOT)/include/VBox/vmm/patm.h \
790 $(PATH_ROOT)/include/VBox/vmm/dbgf.h \
791 $(PATH_ROOT)/include/VBox/vmm/stam.h \
792 $(PATH_ROOT)/include/VBox/vmm/em.h \
793 $(PATH_ROOT)/include/VBox/vmm/hm.h \
794 $(PATH_ROOT)/include/VBox/vmm/hm_svm.h \
795 $(PATH_ROOT)/include/VBox/vmm/hm_vmx.h \
796 $(PATH_ROOT)/include/VBox/vmm/iem.h \
797 $(PATH_ROOT)/include/VBox/vmm/pdm.h \
798 $(PATH_ROOT)/include/VBox/vmm/rem.h \
799 $(PATH_ROOT)/include/VBox/vmm/iom.h \
800 $(PATH_ROOT)/include/VBox/vmm/cfgm.h \
801 $(PATH_ROOT)/include/VBox/vmm/gim.h \
802 $(PATH_ROOT)/include/VBox/vmm/tm.h \
803 $(PATH_ROOT)/include/VBox/vmm/csam.h \
804 $(PATH_ROOT)/include/VBox/vmm/ssm.h \
805 \
806 $(PATH_ROOT)/src/VBox/VMM/include/CFGMInternal.h \
807 $(PATH_ROOT)/src/VBox/VMM/include/CPUMInternal.h \
808 $(PATH_ROOT)/src/VBox/VMM/include/DBGFInternal.h \
809 $(PATH_ROOT)/src/VBox/VMM/include/EMInternal.h \
810 $(PATH_ROOT)/src/VBox/VMM/include/HMInternal.h \
811 $(PATH_ROOT)/src/VBox/VMM/include/IEMInternal.h \
812 $(PATH_ROOT)/src/VBox/VMM/include/IOMInternal.h \
813 $(PATH_ROOT)/src/VBox/VMM/include/MMInternal.h \
814 $(PATH_ROOT)/src/VBox/VMM/include/PDMInternal.h \
815 $(PATH_ROOT)/src/VBox/VMM/include/PGMInternal.h \
816 $(PATH_ROOT)/src/VBox/VMM/include/GIMInternal.h \
817 $(PATH_ROOT)/src/VBox/VMM/include/CSAMInternal.h \
818 $(PATH_ROOT)/src/VBox/VMM/include/PATMInternal.h \
819 $(PATH_ROOT)/src/VBox/VMM/include/REMInternal.h \
820 $(PATH_ROOT)/src/VBox/VMM/include/SELMInternal.h \
821 $(PATH_ROOT)/src/VBox/VMM/include/SSMInternal.h \
822 $(PATH_ROOT)/src/VBox/VMM/include/STAMInternal.h \
823 $(PATH_ROOT)/src/VBox/VMM/include/TMInternal.h \
824 $(PATH_ROOT)/src/VBox/VMM/include/TRPMInternal.h \
825 $(PATH_ROOT)/src/VBox/VMM/include/VMInternal.h \
826 $(PATH_ROOT)/src/VBox/VMM/include/VMMInternal.h \
827 \
828 $(PATH_ROOT)/include/VBox/vmm/vm.h \
829 \
830 $(PATH_ROOT)/include/VBox/sup.h \
831 $(PATH_ROOT)/include/VBox/vd.h \
832 $(PATH_ROOT)/include/VBox/types.h \
833 $(PATH_ROOT)/include/VBox/err.h \
834 $(PATH_ROOT)/include/VBox/vmm/cpumdis.h \
835 $(PATH_ROOT)/include/VBox/dbggui.h \
836 $(PATH_ROOT)/include/VBox/dis.h \
837 $(PATH_ROOT)/include/VBox/disopcode.h \
838 $(PATH_ROOT)/include/VBox/intnet.h \
839 $(PATH_ROOT)/include/VBox/settings.h \
840 $(PATH_ROOT)/include/VBox/pci.h \
841 $(PATH_ROOT)/include/VBox/scsi.h \
842 $(PATH_ROOT)/include/VBox/shflsvc.h \
843 $(PATH_ROOT)/include/VBox/hgcmsvc.h \
844 $(PATH_ROOT)/include/VBox/usb.h \
845 $(PATH_ROOT)/include/VBox/vusb.h \
846 \
847 $(PATH_ROOT)/include/VBox/log.h \
848 $(PATH_ROOT)/include/VBox/param.h \
849 $(PATH_ROOT)/include/VBox/version.h \
850 \
851 $(PATH_ROOT)/include/VBox/com/com.h
852
853VBOX_CORE_DOXYFILE_INPUT := \
854 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(VBOX_CORE_DOXYFILE_INPUT_DIRS)))) ) \
855 $(foreach dir, $(VBOX_CORE_DOXYFILE_INPUT_DIRS) \
856 , $(wildcard $(dir)/*.cpp $(dir)/*.c $(dir)/*.m $(dir)/*.mm $(dir)/*.py $(dir)/.asm))
857VBOX_CORE_DOXYFILE_INPUT := \
858 $(VBOX_CORE_DOXYFILE_INPUT_FIRST) \
859 $(sort $(filter-out $(VBOX_CORE_DOXYFILE_INPUT_FIRST), $(VBOX_CORE_DOXYFILE_INPUT)))
860
861# And some some additional stuff.
862VBOX_CORE_DOXYFILE_INPUT += \
863 $(PATH_ROOT)/src/recompiler/VBoxRecompiler.c \
864 $(PATH_ROOT)/src/recompiler/VBoxREMWrapper.cpp
865
866includedep $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core.dep
867
868# Generate the Doxyfile
869$(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core: Doxyfile.Core \
870 $(comp-vars VBOX_CORE_DOXYFILE_INPUT,DOXYGEN_CORE_INPUT_PREV,FORCE) \
871 $(comp-vars VBOX_CORE_DOXYFILE_OUTPUT,DOXYGEN_CORE_OUTPUT_PREV,FORCE) \
872 | $$(dir $$@)
873 $(QUIET)$(RM) -f $@ [email protected] [email protected]
874 $(QUIET)$(CP) -f Doxyfile.Core [email protected]
875 $(QUIET)$(APPEND) [email protected]
876 $(QUIET)$(APPEND) [email protected] "OUTPUT_DIRECTORY = $(VBOX_CORE_DOXYFILE_OUTPUT)"
877 $(QUIET)$(APPEND) [email protected] "WARN_LOGFILE = $(VBOX_CORE_DOXYFILE_OUTPUT)/errors"
878 $(QUIET)$(APPEND) [email protected] "INCLUDE_PATH = $(PATH_ROOT)/include $(PATH_ROOT)/src/VBox/VMM $(PATH_ROOT)/src/VBox/Main/include "
879 $(QUIET)$(APPEND) [email protected] "INCLUDE_FILE_PATTERNS = *.cpp.h"
880 $(QUIET)$(APPEND) [email protected] "EXCLUDE = " \
881 "$(PATH_ROOT)/src/VBox/Additions/common/crOpenGL/utils.c" \
882 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserver/main.c" \
883 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c" \
884 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_arrays.c" \
885 "$(PATH_ROOT)/src/VBox/Additions/common/crOpenGL/context.c"
886 $(QUIET)$(APPEND) [email protected]
887 $(QUIET)$(APPEND) [email protected] 'INPUT = $(foreach x,$(VBOX_CORE_DOXYFILE_INPUT),\$(NLTAB)$(x))'
888 $(QUIET)$(APPEND) [email protected]
889 $(QUIET)$(APPEND) [email protected] "PREDEFINED += $(DEFS) $(DEFS.$(KBUILD_TARGET)) $(DEFS.$(KBUILD_TARGET_ARCH)) $(ARCH_BITS_DEFS)"
890 $(QUIET)$(APPEND) [email protected] "PREDEFINED += ARCH_BITS=HC_ARCH_BITS R3_ARCH_BITS=HC_ARCH_BITS R0_ARCH_BITS=HC_ARCH_BITS "
891 $(QUIET)$(APPEND) [email protected]
892 $(QUIET)$(MV) -f [email protected] $@
893 @$(APPEND) [email protected] "DOXYGEN_CORE_OUTPUT_PREV = $(VBOX_CORE_DOXYFILE_OUTPUT)"
894 @$(APPEND) [email protected] "DOXYGEN_CORE_INPUT_PREV = $(VBOX_CORE_DOXYFILE_INPUT)"
895
896# Do the actual job.
897$(VBOX_CORE_DOXYFILE_OUTPUT)/docs.Core: $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core $$(VBOX_CORE_DOXYFILE_INPUT) \
898 | $(VBOX_CORE_DOXYFILE_OUTPUT)/
899 $(QUIET)$(RM) -f $@
900 $(QUIET)$(RM) -Rf $(VBOX_CORE_DOXYFILE_OUTPUT)/html/
901 doxygen $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core
902 $(SED) -n \
903 -e ':nextwarning' \
904 -e '/^ *$(DOLLAR)/d' \
905 -e '/\/src\/VBox\/Main\/.* warning: documented symbol.*::~.* was not declared or defined/b ignore' \
906 -e '/\/src\/VBox\/Main\/.* warning: explicit link request to.* could not be resolved/b ignore' \
907 -e '/\/src\/VBox\/Additions\/common\/crOpenGL\/.* warning/b ignore' \
908 -e '/\/src\/VBox\/Additions\/x11\/VBoxClient\/seamless-x11\.h.* warning/b ignore' \
909 -e '/\/src\/VBox\/HostDrivers\/Support\/win\/SUPR3HardenedMain-win\.cpp.* warning/b ignore' \
910 -e '/\/src\/VBox\/ValidationKit\/.* warning/b ignore' \
911 \
912 -e '/unable to resolve link to .dtrace_pops_t./b ignore' \
913 \
914 -e 'b end' \
915 -e ':ignore' \
916 -e 'n' \
917 -e '/^[[:space:]]/b ignore' \
918 -e '/^Possible candidates/b ignore' \
919 -e '/^def testmanager::webui::wuicontentbase::__init__/b ignore' \
920 -e 'b nextwarning' \
921 -e ':end' \
922 -e 'p' \
923 --output $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2 \
924 $(VBOX_CORE_DOXYFILE_OUTPUT)/errors
925 $(CAT) $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2
926 $(SED) -e "/[^ ]/q 1" $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2
927 $(APPEND) $@
928
929docs.Core docs.core: $(VBOX_CORE_DOXYFILE_OUTPUT)/docs.Core
930
931
932#
933# Alias for kmk_time. Used by both the additions and validation kit build setups.
934#
935VBOX_KMK_TIME = $(KBUILD_BIN_PATH)/kmk_time
936
937#
938# Common rsync bits.
939#
940
941##
942# The basic rsync invocation for syncing the tree into a VM; the source and
943# target specs are missing.
944#
945# @param 1 os name.
946# @param 2 arch or *.
947#
948VBOX_RSYNC_IN_FN = rsync -a -v --delete --delete-excluded --prune-empty-dirs \
949 --exclude=*.pyc \
950 --exclude=.svn/ \
951 --exclude=doc/Devices/ \
952 --exclude=doc/tg/ \
953 --exclude=doc/vp/ \
954 --exclude=tinderclient.log \
955 --exclude=tools/FetchDir/ \
956 --exclude=webtools/ \
957 $(foreach os,darwin freebsd linux solaris os2 win,$(if-expr "$(1)" != "$(os)", \
958 --exclude=tools/$(os).x86/ \
959 --exclude=tools/$(os).amd64/ \
960 --exclude=out/$(os).amd64/ \
961 --exclude=out/$(os).x86/ \
962 ,$(select \
963 "$(2)" == "x86" , --exclude=out/$(os).amd64/$(KBUILD_TYPE)/, \
964 "$(2)" == "amd64", --exclude=out/$(os).x86/$(KBUILD_TYPE)/) \
965 ))
966
967#
968# VM IP addresses.
969#
970VBOX_BLD_VM_LNX_IP := 192.168.27.2
971VBOX_BLD_VM_OS2_IP := 192.168.27.3
972VBOX_BLD_VM_SOLARIS_IP := 192.168.27.4
973VBOX_BLD_VM_DARWIN_X86_IP := 192.168.27.5
974VBOX_BLD_VM_DARWIN_AMD64_IP := 192.168.27.15
975VBOX_BLD_VM_WIN_X86_IP := 192.168.27.6
976VBOX_BLD_VM_WIN_AMD64_IP := 192.168.27.16
977VBOX_BLD_VM_FBSD_X86_IP := 192.168.27.7
978VBOX_BLD_VM_FBSD_AMD64_IP := 192.168.27.17
979
980VBOX_WITH_OS2_ADD_BUILD=1
981
982#
983# For profiling the VM building steps.
984#
985if 0
986 VBOX_BLD_VM_MSG_BEGIN = $(call MSG_L1,Building $1.)
987 VBOX_BLD_VM_MSG_END__ =
988else
989 VBOX_BLD_VM_MSG_BEGIN = @echo `date "+%Y-%m-%dT%H:%M:%S"` - Start building $1.
990 VBOX_BLD_VM_MSG_END__ = @echo `date "+%Y-%m-%dT%H:%M:%S"` - Done building $1.
991endif
992
993#
994# Build the additions, all of them.
995#
996# This is currently tailored (hardcoded) for the additions
997# build box. Can make it pretty and configurable later.
998#
999# The fetching must be done in serial fashion, while the building
1000# should be more flexible wrt to -jN.
1001#
1002additions-fetch:
1003 + $(KMK) -C tools fetch VBOX_ONLY_ADDITIONS=1
1004 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_ADDITIONS=1
1005 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_ADDITIONS=1
1006ifdef VBOX_WITH_OS2_ADD_BUILD
1007 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_ADDITIONS=1
1008endif
1009 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_ADDITIONS=1
1010 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_ADDITIONS=1
1011 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_ADDITIONS=1
1012 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_ADDITIONS=1
1013
1014
1015## @todo Currently combined solaris additions building assumes that amd64 is
1016# built first. The windows amd64 additions need some x86 files, so don't change
1017# the order of the windows builds. TODO: Split building and packing for these two VMs.
1018additions-build: \
1019 additions-build-rsync-into-vms \
1020 additions-build-win.x86 \
1021 additions-build-win.amd64 \
1022 additions-build-solaris.amd64 \
1023 additions-build-solaris.x86 \
1024 additions-build-os2.x86 \
1025 additions-build-linux
1026
1027additions-build-rsync-into-vms: \
1028 additions-build-solaris.rsync-into-vm \
1029 additions-build-os2.rsync-into-vm \
1030 additions-build-linux.rsync-into-vm
1031 $(call MSG_L1,Rsynced the sources + tools into the VMs.)
1032.NOTPARALLEL: additions-build-rsync-into-vms
1033.PHONY: additions-build-rsync-into-vms
1034
1035
1036VBOX_ADDITIONS_BUILD.amd64 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
1037 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1038 KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
1039 VBOX_SVN_REV=$(VBOX_SVN_REV)
1040
1041VBOX_ADDITIONS_BUILD.x86 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
1042 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1043 KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
1044 VBOX_SVN_REV=$(VBOX_SVN_REV)
1045
1046# Automatically determine the additions build subdir name. Used for figuring
1047# out directory names inside the additions building VMs.
1048VBOX_ADDITIONS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1049
1050# When building in parallel on a Windows host, make sure we finish the host
1051# bit before kicking off any UNIX guest or we'll run into file sharing issues.
1052ifeq ($(KBUILD_TARGET),win)
1053VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST = #additions-build-win.x86 additions-build-win.amd64
1054else
1055VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST =
1056endif
1057
1058# ASSUMES the 32-bit edition has been built already. Also for serializing VM access.
1059additions-build-win.amd64: additions-build-win.x86
1060ifeq ($(KBUILD_TARGET),win)
1061 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1062 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing
1063else
1064 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 additions build+pack)
1065 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) " echo $@ && cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing "
1066 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 additions build+pack)
1067endif
1068
1069additions-build-win.x86:
1070ifeq ($(KBUILD_TARGET),win)
1071 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1072 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing
1073else
1074 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 additions build.pack)
1075 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_X86_IP) " echo $@ && cd e:/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.x86) all packing"
1076 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 additions build+pack)
1077endif
1078
1079# ASSUMES the 64-bit edition are built first. This also serializes VM access.
1080ifeq ($(KBUILD_TARGET),solaris)
1081additions-build-solaris.amd64:
1082 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1083 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing
1084
1085additions-build-solaris.x86: additions-build-solaris.amd64
1086 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_ADD_HOST_BUILD_TWEAK)
1087 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 packing
1088
1089additions-build-solaris.rsync-into-vm:
1090else
1091additions-build-solaris.rsync-into-vm:
1092 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) \
1093 '--exclude=src/VBox/Additions/WINNT/**' \
1094 '--exclude=src/VBox/Frontends/**' \
1095 '--exclude=src/VBox/VMM/**' \
1096 . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1097
1098additions-build-solaris.build-it: additions-build-solaris.rsync-into-vm
1099 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 additions build+pack)
1100 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing"
1101 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 additions build+pack)
1102 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 additions build+pack)
1103 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/x86 && 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"
1104 $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 additions build+pack)
1105
1106additions-build-solaris.rsync-out-of-vm: additions-build-solaris.build-it
1107 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.x86 out/
1108 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1109
1110.NOTPARALLEL: additions-build-solaris.rsync-into-vm
1111.PHONY: additions-build-solaris.rsync-into-vm additions-build-solaris.rsync-out-of-vm additions-build-solaris.build-it
1112
1113additions-build-solaris.amd64: additions-build-solaris.rsync-out-of-vm
1114additions-build-solaris.x86: additions-build-solaris.rsync-out-of-vm
1115endif
1116
1117ifdef VBOX_WITH_OS2_ADD_BUILD
1118 ifeq ($(KBUILD_TARGET),os2)
1119additions-build-os2.x86:
1120 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1121 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing
1122
1123additions-build-os2.rsync-into-vm:
1124 else
1125additions-build-os2.rsync-into-vm:
1126 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,os2,*) \
1127 '--exclude=src/VBox/Additions/x11/**' \
1128 '--exclude=src/VBox/Additions/WINNT/**' \
1129 '--exclude=src/VBox/Frontends/**' \
1130 '--exclude=src/VBox/VMM/**' \
1131 . rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1132
1133additions-build-os2.build-it: additions-build-os2.rsync-into-vm
1134 $(call VBOX_BLD_VM_MSG_BEGIN,OS/2 additions build+pack)
1135 $(VBOX_KMK_TIME) 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"
1136 $(call VBOX_BLD_VM_MSG_END__,OS/2 additions build+pack)
1137
1138additions-build-os2.rsync-out-of-vm: additions-build-os2.build-it
1139 $(VBOX_KMK_TIME) rsync -v -a --delete rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/os2.x86 ./out
1140
1141.NOTPARALLEL: additions-build-os2.rsync-into-vm
1142.PHONY: additions-build-os2.rsync-into-vm additions-build-os2.rsync-out-of-vm additions-build-os2.build-it
1143
1144additions-build-os2.x86: additions-build-os2.rsync-out-of-vm
1145 endif
1146#
1147else
1148additions-build-os2.x86:
1149# Dummy
1150endif
1151
1152ifeq ($(KBUILD_TARGET),linux)
1153additions-build-linux.amd64:
1154 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1155 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1
1156
1157additions-build-linux.x86:
1158 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1159 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1
1160
1161additions-build-linux: additions-build-linux.x86 additions-build-linux.amd64
1162 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1163 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1
1164else
1165additions-build-linux.rsync-into-vm:
1166 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) \
1167 '--exclude=src/VBox/Additions/WINNT/**' \
1168 '--exclude=src/VBox/Frontends/**' \
1169 '--exclude=src/VBox/VMM/**' \
1170 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1171
1172additions-build-linux.build-it: additions-build-linux.rsync-into-vm
1173 ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
1174 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 additions/greeter)
1175 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && 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\""'
1176 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 additions/greeter)
1177 endif
1178 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 additions build+pack)
1179 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && 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)\""'
1180 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 additions build+pack)
1181 ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
1182 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions/greeter)
1183 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && linux32 dchroot -c ubuntu-11.10-i386 \"cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && BUILD_PLATFORM_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\""'
1184 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions/greeter)
1185 endif
1186 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions build+pack)
1187 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && 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)\""'
1188 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions build+pack)
1189 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions combine)
1190 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) "echo $@ && 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\""'
1191 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions combine)
1192
1193additions-build-linux.rsync-out-of-vm: additions-build-linux.build-it
1194 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.x86 out/
1195 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1196
1197.NOTPARALLEL: additions-build-linux.rsync-into-vm
1198.PHONY: additions-build-linux.rsync-into-vm additions-build-linux.rsync-out-of-vm additions-build-linux.build-it
1199
1200additions-build-linux: additions-build-linux.rsync-out-of-vm
1201endif
1202
1203additions-packing:
1204 + $(KMK) VBOX_ONLY_ADDITIONS=1 \
1205 VBOX_WITH_ADDITIONS_ISO.freebsd.amd64= \
1206 VBOX_WITH_ADDITIONS_ISO.freebsd.x86= \
1207 VBOX_WITH_ADDITIONS_ISO.linux.amd64= \
1208 VBOX_WITH_ADDITIONS_ISO.linux.x86=1 \
1209 VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1 \
1210 VBOX_WITH_ADDITIONS_ISO.os2.x86=1 \
1211 VBOX_WITH_ADDITIONS_ISO.solaris.amd64=1 \
1212 VBOX_WITH_ADDITIONS_ISO.solaris.x86=1 \
1213 VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 \
1214 VBOX_WITH_ADDITIONS_ISO.win.amd64=1 \
1215 VBOX_WITH_ADDITIONS_ISO.win.x86=1 \
1216 -C src/VBox/Additions \
1217 $(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.zip
1218
1219.PHONY: \
1220 additions-build-win.x86 \
1221 additions-build-win.amd64 \
1222 additions-build-solaris.amd64 \
1223 additions-build-solaris.x86 \
1224 additions-build-os2.x86 \
1225 additions-build-linux \
1226 additions-build-linux.amd64 \
1227 additions-build-linux.x86 \
1228 additions-build-linux.x86.combined \
1229 additions-packing
1230
1231
1232#
1233# Build the extension packs, all of them.
1234#
1235# This is tailored (hardcoded) for the extension pack build box.
1236#
1237# The fetching must be done in serial fashion, while the building should be
1238# more flexible wrt to -jN.
1239#
1240extpacks-fetch:
1241 + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1
1242 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
1243 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
1244# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
1245# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
1246 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
1247 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
1248# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_EXTPACKS=1
1249 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1
1250 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
1251 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
1252
1253
1254extpacks-build: \
1255 extpacks-build-win.amd64 \
1256 extpacks-build-win.x86 \
1257 extpacks-build-solaris.amd64 \
1258 extpacks-build-os2.x86 \
1259 extpacks-build-linux \
1260 extpacks-build-darwin.amd64 \
1261 extpacks-build-freebsd.amd64 \
1262 extpacks-build-freebsd.x86
1263
1264VBOX_EXTPACKS_BUILD.amd64 = VBOX_ONLY_EXTPACKS=1 \
1265 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1266 KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
1267 VBOX_SVN_REV=$(VBOX_SVN_REV)
1268
1269VBOX_EXTPACKS_BUILD.x86 = VBOX_ONLY_EXTPACKS=1 \
1270 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1271 KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
1272 VBOX_SVN_REV=$(VBOX_SVN_REV)
1273
1274# Automatically determine the extpack build subdir name. Used for figuring out
1275# directory names inside the extension pack building VMs.
1276VBOX_EXTPACKS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1277
1278# When building in parallel on a Windows host, make sure we finish the host
1279# bit before kicking off any UNIX guest or we'll run into file sharing issues.
1280ifeq ($(KBUILD_TARGET),win)
1281VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = extpacks-build-win.x86 extpacks-build-win.amd64
1282else
1283VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST =
1284endif
1285
1286extpacks-build-win.amd64:
1287ifeq ($(KBUILD_TARGET),win)
1288 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1289else
1290 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 extension packs)
1291 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
1292 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 extension packs)
1293endif
1294
1295extpacks-build-win.x86:
1296ifeq ($(KBUILD_TARGET),win)
1297 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1298else
1299 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 extension packs)
1300 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_X86_IP) " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all"
1301 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 extension packs)
1302endif
1303
1304ifeq ($(KBUILD_TARGET),solaris)
1305extpacks-build-solaris.amd64:
1306 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1307
1308else
1309# Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
1310extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1311 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1312
1313extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm
1314 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 extension packs)
1315 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
1316 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 extension packs)
1317
1318extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it
1319 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1320
1321#.NOTPARALLEL: extpacks-build-solaris.rsync-into-vm
1322.PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it
1323
1324extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm
1325endif
1326
1327extpacks-build-os2.x86:
1328#ifeq ($(KBUILD_TARGET),os2)
1329# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1330#else
1331# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_OS2_IP) " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) "
1332#endif
1333
1334ifeq ($(KBUILD_TARGET),linux)
1335extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1336 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1337
1338extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1339 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1340
1341extpacks-build-linux: extpacks-build-linux.x86 extpacks-build-linux.amd64
1342else
1343# Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
1344extpacks-build-linux.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1345 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1346
1347extpacks-build-linux.build-it: extpacks-build-linux.rsync-into-vm
1348 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 extension packs)
1349 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) " echo $@/amd64 && dchroot -c debian-4.0-amd64 \"cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all\""'
1350 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 extension packs)
1351 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 extension packs)
1352 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) " echo $@/x86 && 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\""'
1353 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 extension packs)
1354
1355extpacks-build-linux.rsync-out-of-vm: extpacks-build-linux.build-it
1356 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.x86 out/
1357 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1358
1359#.NOTPARALLEL: extpacks-build-linux.rsync-into-vm
1360.PHONY: extpacks-build-linux.rsync-out-of-vm extpacks-build-linux.rsync-into-vm extpacks-build-linux.build-it
1361
1362extpacks-build-linux: extpacks-build-linux.rsync-out-of-vm
1363endif
1364
1365extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1366#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
1367# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1368#else
1369# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/amd64 extension packs)
1370# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_AMD64_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
1371# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/amd64 extension packs)
1372#endif
1373
1374extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1375#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
1376# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1377#else
1378# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/x86 extension packs)
1379# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_X86_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
1380# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/x86 extension packs)
1381#endif
1382
1383extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1384ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
1385 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1386else
1387 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 extension packs)
1388 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1389 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_AMD64_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
1390 $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
1391 $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 extension packs)
1392endif
1393
1394extpacks-packing:
1395 + $(KMK) VBOX_ONLY_EXTPACKS=1 \
1396 VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 linux.amd64 linux.x86 solaris.amd64 win.amd64 win.x86" \
1397 packing
1398# +++ freebsd.amd64 freebsd.x86 os2.x86 ^^^
1399
1400.PHONY: \
1401 extpacks-build-win.x86 \
1402 extpacks-build-win.amd64 \
1403 extpacks-build-solaris.amd64 \
1404 extpacks-build-os2.x86 \
1405 extpacks-build-linux \
1406 extpacks-build-linux.amd64 \
1407 extpacks-build-linux.x86 \
1408 extpacks-build-freebsd.amd64 \
1409 extpacks-build-freebsd.x86 \
1410 extpacks-build-darwin.amd64 \
1411 extpacks-packing
1412
1413
1414#
1415# Build the test suite, all of it.
1416#
1417# This is currently tailored (hardcoded) for the additions build box just like
1418# the additions build above, which it in fact is a copy of.
1419#
1420validationkit-fetch:
1421 + $(KMK) -C tools fetch VBOX_ONLY_VALIDATIONKIT=1
1422 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_VALIDATIONKIT=1
1423 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_VALIDATIONKIT=1
1424# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_VALIDATIONKIT=1
1425# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_VALIDATIONKIT=1
1426 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_VALIDATIONKIT=1
1427 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_VALIDATIONKIT=1
1428 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_VALIDATIONKIT=1
1429 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_VALIDATIONKIT=1
1430 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_VALIDATIONKIT=1
1431 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_VALIDATIONKIT=1
1432 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_VALIDATIONKIT=1
1433
1434
1435validationkit-build: \
1436 validationkit-build-rsync-into-vms \
1437 validationkit-build-solaris.amd64 \
1438 validationkit-build-solaris.x86 \
1439 validationkit-build-win.x86 \
1440 validationkit-build-win.amd64 \
1441 validationkit-build-os2.x86 \
1442 validationkit-build-linux \
1443 validationkit-build-freebsd.amd64 \
1444 validationkit-build-freebsd.x86 \
1445 validationkit-build-darwin.amd64 \
1446 validationkit-build-darwin.x86
1447
1448validationkit-build-rsync-into-vms: \
1449 validationkit-build-solaris.rsync-into-vm \
1450 validationkit-build-os2.rsync-into-vm \
1451 validationkit-build-linux.rsync-into-vm
1452 $(call MSG_L1,Rsynced the sources + tools into the VMs.)
1453.NOTPARALLEL: validationkit-build-rsync-into-vms
1454.PHONY: validationkit-build-rsync-into-vms
1455
1456
1457VBOX_VALIDATIONKIT_BUILD.amd64 = VBOX_ONLY_VALIDATIONKIT=1 \
1458 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1459 KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
1460 VBOX_SVN_REV=$(VBOX_SVN_REV)
1461
1462VBOX_VALIDATIONKIT_BUILD.x86 = VBOX_ONLY_VALIDATIONKIT=1 \
1463 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1464 KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
1465 VBOX_SVN_REV=$(VBOX_SVN_REV)
1466
1467# Automatically determine the Validation Kit build subdir name. Used for figuring
1468# out directory names inside the test suite building VMs.
1469VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1470
1471# When building in parallel on a Windows host, make sure we finish the host
1472# bit before kicking off any UNIX guest or we'll run into file sharing issues.
1473ifeq ($(KBUILD_TARGET),win)
1474VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST = validationkit-build-win.x86 validationkit-build-win.amd64
1475else
1476VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST =
1477endif
1478
1479# ASSUMES the 32-bit edition has been built already. Also for serializing VM access.
1480validationkit-build-win.amd64: validationkit-build-win.x86
1481ifeq ($(KBUILD_TARGET),win)
1482 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1483else
1484 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 Validation Kit)
1485 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_X86_IP) " echo $@ && cd e:/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all "
1486 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 Validation Kit)
1487endif
1488
1489validationkit-build-win.x86:
1490ifeq ($(KBUILD_TARGET),win)
1491 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1492else
1493 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 Validation Kit)
1494 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_WIN_AMD64_IP) " echo $@ && cd e:/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all"
1495 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 Validation Kit)
1496endif
1497
1498ifeq ($(KBUILD_TARGET),solaris)
1499validationkit-build-solaris.amd64:
1500 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1501
1502validationkit-build-solaris.x86:
1503 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1504
1505else
1506validationkit-build-solaris.rsync-into-vm: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1507 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) \
1508 '--exclude=src/VBox/Additions/WINNT/**' \
1509 '--exclude=src/VBox/Frontends/**' \
1510 '--exclude=src/VBox/VMM/**' \
1511 . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1512
1513validationkit-build-solaris.build-it: validationkit-build-solaris.rsync-into-vm
1514 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 Validation Kit)
1515 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all"
1516 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 Validation Kit)
1517 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 Validation Kit)
1518 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_SOLARIS_IP) " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all "
1519 $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 Validation Kit)
1520
1521validationkit-build-solaris.rsync-out-of-vm: validationkit-build-solaris.build-it
1522 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/solaris.x86 out/
1523 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1524
1525.PHONY: validationkit-build-solaris.rsync-out-of-vm validationkit-build-solaris.rsync-into-vm validationkit-build-solaris.build-it
1526
1527validationkit-build-solaris.amd64: validationkit-build-solaris.rsync-out-of-vm
1528validationkit-build-solaris.x86: validationkit-build-solaris.rsync-out-of-vm
1529endif
1530
1531ifeq ($(KBUILD_TARGET),os2)
1532validationkit-build-os2.x86:
1533 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1534validationkit-build-os2.rsync-into-vm:
1535else # !OS/2
1536validationkit-build-os2.rsync-into-vm:
1537 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,os2,*) \
1538 '--exclude=src/VBox/Additions/x11/**' \
1539 '--exclude=src/VBox/Additions/WINNT/**' \
1540 '--exclude=src/VBox/Frontends/**' \
1541 '--exclude=src/VBox/VMM/**' \
1542 . rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1543
1544validationkit-build-os2.build-it: validationkit-build-os2.rsync-into-vm
1545 $(call VBOX_BLD_VM_MSG_BEGIN,OS/2 Validation Kit)
1546 $(VBOX_KMK_TIME) 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"
1547 $(call VBOX_BLD_VM_MSG_END__,OS/2 Validation Kit)
1548
1549validationkit-build-os2.rsync-out-of-vm: validationkit-build-os2.build-it
1550 $(VBOX_KMK_TIME) rsync -v -a --delete rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/os2.x86 ./out
1551
1552.PHONY: validationkit-build-os2.rsync-into-vm validationkit-build-os2.rsync-out-of-vm validationkit-build-os2.build-it
1553
1554validationkit-build-os2.x86: validationkit-build-os2.rsync-out-of-vm
1555endif # !OS/2
1556
1557ifeq ($(KBUILD_TARGET),linux)
1558validationkit-build-linux.amd64:
1559 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1560
1561validationkit-build-linux.x86:
1562 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1563
1564validationkit-build-linux: validationkit-build-linux.x86 validationkit-build-linux.amd64
1565else
1566validationkit-build-linux.rsync-into-vm: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1567 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) \
1568 '--exclude=src/VBox/Additions/WINNT/**' \
1569 '--exclude=src/VBox/Frontends/**' \
1570 '--exclude=src/VBox/VMM/**' \
1571 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1572
1573validationkit-build-linux.build-it: validationkit-build-linux.rsync-into-vm
1574 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 Validation Kit)
1575 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) " echo $@/amd64 && dchroot -c debian-4.0-amd64 \"cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all\""'
1576 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 Validation Kit)
1577 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 Validation Kit)
1578 $(VBOX_KMK_TIME) ssh 'vbox@$(VBOX_BLD_VM_LNX_IP) " echo $@/x86 && linux32 dchroot -c rhel3-i386 \"cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all\""'
1579 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 Validation Kit)
1580
1581validationkit-build-linux.rsync-out-of-vm: validationkit-build-linux.build-it
1582 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/linux.x86 out/
1583 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1584
1585.PHONY: validationkit-build-linux.rsync-out-of-vm validationkit-build-linux.rsync-into-vm validationkit-build-linux.build-it
1586
1587validationkit-build-linux: validationkit-build-linux.rsync-out-of-vm
1588endif
1589
1590validationkit-build-freebsd.amd64: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1591#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
1592# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1593#else
1594# $(call VBOX_BLD_VM_MSG_BEGIN,Freebsd/amd64 Validation Kit)
1595# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_AMD64_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all"
1596# $(call VBOX_BLD_VM_MSG_END__,Freebsd/amd64 Validation Kit)
1597#endif
1598
1599validationkit-build-freebsd.x86: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1600#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
1601# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1602#else
1603# $(call VBOX_BLD_VM_MSG_BEGIN,Freebsd/x86 Validation Kit)
1604# $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_FBSD_X86_IP) " echo $@ && cd /mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all"
1605# $(call VBOX_BLD_VM_MSG_END__,Freebsd/x86 Validation Kit)
1606#endif
1607
1608validationkit-build-darwin.amd64: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1609ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
1610 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1611else
1612 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 Validation Kit)
1613 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1614 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_AMD64_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.amd64) all"
1615 $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
1616 $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 Validation Kit)
1617endif
1618
1619validationkit-build-darwin.x86: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1620ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
1621 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1622else
1623 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/x86 Validation Kit)
1624 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1625 $(VBOX_KMK_TIME) ssh vbox@$(VBOX_BLD_VM_DARWIN_X86_IP) " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_VALIDATIONKIT_BUILD.x86) all"
1626 $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/darwin.x86 out/
1627 $(call VBOX_BLD_VM_MSG_END__,Darwin/x86 Validation Kit)
1628endif
1629
1630
1631validationkit-packing:
1632 + $(KMK) VBOX_ONLY_VALIDATIONKIT=1 \
1633 VBOX_WITH_VALIDATIONKIT_PACKING.darwin.amd64=1 \
1634 VBOX_WITH_VALIDATIONKIT_PACKING.darwin.x86=2 \
1635 VBOX_WITH_VALIDATIONKIT_PACKING.freebsd.amd64= \
1636 VBOX_WITH_VALIDATIONKIT_PACKING.freebsd.x86= \
1637 VBOX_WITH_VALIDATIONKIT_PACKING.linux.amd64=1 \
1638 VBOX_WITH_VALIDATIONKIT_PACKING.linux.x86=1 \
1639 VBOX_WITH_VALIDATIONKIT_PACKING.os2.x86=1 \
1640 VBOX_WITH_VALIDATIONKIT_PACKING.solaris.amd64=1 \
1641 VBOX_WITH_VALIDATIONKIT_PACKING.solaris.x86=1 \
1642 VBOX_WITH_VALIDATIONKIT_PACKING.win.amd64=1 \
1643 VBOX_WITH_VALIDATIONKIT_PACKING.win.x86=1 \
1644 -C src/VBox/ValidationKit \
1645 $(PATH_OUT)/VBoxValidationKit.zip \
1646 $(PATH_OUT)/VBoxTestBoxScript.zip
1647
1648.PHONY: \
1649 validationkit-build-win.x86 \
1650 validationkit-build-win.amd64 \
1651 validationkit-build-solaris.amd64 \
1652 validationkit-build-solaris.x86 \
1653 validationkit-build-os2.x86 \
1654 validationkit-build-linux \
1655 validationkit-build-linux.amd64 \
1656 validationkit-build-linux.x86 \
1657 validationkit-build-freebsd.amd64 \
1658 validationkit-build-freebsd.x86 \
1659 validationkit-build-darwin.amd64 \
1660 validationkit-build-darwin.x86 \
1661 validationkit-packing
1662
1663
1664#
1665# Build the EFI firmware, all of it.
1666#
1667efi-fetch:
1668 + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1
1669
1670efi-build: $(VBOX_VERSION_HEADER)
1671 + $(KMK) -C src/VBox/Devices/EFI/Firmware$(VBOX_EFI_FIRMWARE_SUFFIX)
1672
1673efi-packing:
1674 + $(KMK) -C src/VBox/Devices/EFI/Firmware$(VBOX_EFI_FIRMWARE_SUFFIX) $(PATH_STAGE)/VBoxEfiFirmware.zip
1675
1676
1677#
1678# Generate VirtualBox-x.x.x.tar.bz2 (PUEL) zip archives for internal use only
1679# - includes kBuild
1680# - must be executed on an PUEL checkout
1681#
1682
1683# the path where to store the zip archive
1684ZIPPATH ?= $(abspath $(PATH_ROOT)/..)
1685# the root directory inside the zip archive
1686ZIPROOT ?= VirtualBox-$(VBOX_VERSION_STRING)
1687# the name of the zip archive
1688ZIPNAME ?= VirtualBox-$(VBOX_VERSION_STRING).zip
1689snapshot-puel:
1690 @$(call MSG_L1,Creating zip $(ZIPPATH)/$(ZIPNAME))
1691 @if [ ! -r "$(PATH_ROOT)/src/VBox/RDP/server/server.cpp" ]; then \
1692 echo; \
1693 echo "Did not find RDP stuff, is this an OSE branch?"; \
1694 echo; \
1695 exit 1; \
1696 fi
1697 @if [ -z "$(PASSWORD)" ]; then \
1698 echo; \
1699 echo "Please specify a password with PASSWORD=..."; \
1700 echo; \
1701 exit 1; \
1702 fi
1703 $(QUIET)$(MKDIR) -p $(ZIPPATH)
1704 $(QUIET)$(RM) -f $(ZIPPATH)/$(ZIPROOT)
1705 $(QUIET)$(RM) -f $(ZIPPATH)/$(ZIPNAME)
1706 $(QUIET)$(LN_SYMLINK) $(PATH_ROOT) $(ZIPPATH)/$(ZIPROOT)
1707 $(QUIET)(cd $(ZIPPATH); 7z a \
1708 -l -tzip -mmt=on -mx=7 -p$(PASSWORD) \
1709 -xr!.svn \
1710 -i!$(ZIPROOT)/Config.kmk \
1711 -i!$(ZIPROOT)/Doxyfile.Core \
1712 -i!$(ZIPROOT)/Makefile.kmk \
1713 -i!$(ZIPROOT)/configure \
1714 -i!$(ZIPROOT)/configure.vbs \
1715 -i!$(ZIPROOT)/doc \
1716 -i!$(ZIPROOT)/include \
1717 -i!$(ZIPROOT)/kBuild \
1718 -i!$(ZIPROOT)/src \
1719 -i!$(ZIPROOT)/tools/env.sh \
1720 -i!$(ZIPROOT)/tools/linux.x86/bin/* \
1721 -i!$(ZIPROOT)/tools/linux.amd64/bin/* \
1722 -x!$(ZIPROOT)/doc/Devices \
1723 -x!$(ZIPROOT)/doc/\*pdf \
1724 -x!$(ZIPROOT)/doc/VMM \
1725 -x!$(ZIPROOT)/doc/licenses_old \
1726 -x!$(ZIPROOT)/doc/manual/de_DE \
1727 -x!$(ZIPROOT)/doc/manual/fr_FR \
1728 -x!$(ZIPROOT)/src/tests \
1729 -x!$(ZIPROOT)/src/VBox/Artwork/2008-\* \
1730 -x!$(ZIPROOT)/src/VBox/Installer/AMI \
1731 -x!$(ZIPROOT)/src/VBox/Installer/Avanquest \
1732 -x!$(ZIPROOT)/src/VBox/Installer/Encore \
1733 -x!$(ZIPROOT)/src/VBox/Installer/linux/debian \
1734 -x!$(ZIPROOT)/src/VBox/Installer/linux/rpm \
1735 $(ZIPPATH)/$(ZIPNAME))
1736 $(QUIET)$(RM) $(ZIPPATH)/$(ZIPROOT)
1737
1738
1739#
1740# Generate ALL the rules.
1741#
1742include $(FILE_KBUILD_SUB_FOOTER)
1743
1744
1745#
1746# Generate x86.mac and err.mac.
1747#
1748incs:
1749 $(SED) -f include/VBox/err.sed --output include/VBox/err.mac include/VBox/err.h
1750 $(APPEND) include/VBox/err.mac '%include "iprt/err.mac"'
1751 $(SED) -f include/VBox/err.sed --output include/iprt/err.mac include/iprt/err.h
1752 $(SED) -f include/VBox/various.sed --output include/iprt/x86.mac include/iprt/x86.h
1753 $(APPEND) include/iprt/x86.mac '%include "iprt/x86extra.mac"'
1754 $(SED) -f include/VBox/various.sed --output include/VBox/apic.mac include/VBox/apic.h
1755 $(SED) -f include/VBox/various.sed --output include/VBox/bios.mac include/VBox/bios.h
1756 $(SED) -f include/VBox/various.sed --output include/VBox/param.mac include/VBox/param.h
1757 $(SED) -f include/VBox/various.sed --output include/VBox/VMMDevTesting.mac include/VBox/VMMDevTesting.h
1758
1759
1760#
1761# Legacy.
1762#
1763vslick.h:
1764 $(ECHO) This is now done by gen-slickedit-workspace.sh/cmd.
1765 exit 1
1766
1767
1768#
1769# Add fetching of the tools to the 'up[date][2]' targets.
1770#
1771up update up2 update2::
1772ifndef VBOX_OSE
1773 +$(MAKE) -C tools fetch
1774else
1775 $(MAKE) -C tools -f Makefile-ose.kmk fetch
1776endif
1777
1778
1779
1780#
1781# Aliases for building the SDK.
1782#
1783.NOTPARALLEL: sdk sdk-fetch
1784sdk:
1785 + $(KMK) VBOX_ONLY_SDK=1 \
1786 pass_bldprogs pass_others pass_installs pass_packing
1787
1788sdk-fetch:
1789 + $(KMK) VBOX_ONLY_SDK=1 -C tools
1790
1791
1792#
1793# Build the essentials to run a VM. Incomplete. Use with care!
1794#
1795quick: \
1796 VBoxRT \
1797 VBoxVMM \
1798 VMMR0 \
1799 VBoxDD \
1800 VBoxDDR0 \
1801 VBoxDD2 \
1802 VBoxDD2R0 \
1803 VBoxC \
1804 VBoxSVC \
1805 $(if-expr defined(VBOX_WITH_RAW_MODE),VMMRC VBoxDDRC VBoxDD2RC,) \
1806 $(if-expr defined(VBOX_WITH_REM),VBoxREM,) \
1807 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB) && "$(KBUILD_TARGET)" == "win",VBoxProxyStub,) \
1808 $(if-expr defined(VBOX_WITH_SDS),VBoxSDS,) \
1809 $(if-expr defined(VBOX_WITH_QTGUI),VirtualBox,)
1810
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