VirtualBox

source: vbox/trunk/Makefile.kmk@ 45360

Last change on this file since 45360 was 45360, checked in by vboxsync, 12 years ago

Makefile.kmk: drag in the ZIP tool unconditionally, avoids the complicated work of doing this only when absolutely necessary, and makes sure one can't forget it (like before, as additions needed it but didn't drag in the tool - which caused surprising error messages if one didn't fetch the docs package from the build server)

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