VirtualBox

source: vbox/trunk/Makefile.kmk@ 68787

最後變更 在這個檔案從68787是 68786,由 vboxsync 提交於 8 年 前

Makefile.kmk: When unpacking guest additions/docs/efi firmware from build server, throw away the file timestamps, because they're from build run which usually was significantly in the past, effectively causing the files to be unpacked every time for incremental builds.

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 77.5 KB
 
1# $Id: Makefile.kmk 68786 2017-09-19 08:35:45Z 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.alldomusa.eu.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) -DD -o $< -d $(PATH_TARGET)
288 $(APPEND) -t $@ "done"
289
290 $$(buildserver-additions_0_OUTDIR)/VBoxGuestAdditions.zip: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/additions.sh | $$(dir $$@)
291 $(RM) -f -- "$@" "[email protected]"
292 $(SHELL) $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename "[email protected]"
293 $(MV) -f -- "[email protected]" "$@"
294
295endif # VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER unless win.x86+combined
296
297
298#
299# Install documentation files (at the moment the .chm) from the build server.
300#
301ifdef VBOX_WITH_DOCS_FROM_BUILD_SERVER
302## @todo r=bird: Too much mess now for $(PATH_TARGET); move to doc/manual/.
303INSTALLS += buildserver-docs
304buildserver-docs_INST = $(INST_BIN)
305buildserver-docs_MODE = 0644
306buildserver-docs_SOURCES = \
307 $(addprefix $(PATH_TARGET)/, \
308 VirtualBox.chm UserManual.pdf \
309 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),VirtualBox_$(f).chm UserManual_$(f).pdf))
310buildserver-docs_CLEANS = \
311 $(buildserver-docs_0_OUTDIR)/unpacked.ts \
312 $(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip \
313 $(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip.tmp \
314 $(addprefix $(PATH_TARGET)/, \
315 VirtualBox.chm UserManual.pdf \
316 $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),VirtualBox_$(f).chm UserManual_$(f).pdf))
317
318$$(buildserver-docs_0_OUTDIR)/unpacked.ts +| $(PATH_TARGET)/VirtualBox.chm $(PATH_TARGET)/UserManual.pdf \
319$(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_TARGET)/VirtualBox_$(f).chm $(PATH_TARGET)/UserManual_$(f).pdf): \
320 $$(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip
321 $(call MSG_L1,Unpacking documentation)
322 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -DD -o $< -d $(PATH_TARGET)
323 $(APPEND) -t $@ "done"
324
325$$(buildserver-docs_0_OUTDIR)/VBoxDocumentation.zip: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/documentation.sh | $$(dir $$@)
326 $(RM) -f -- "$@" "[email protected]"
327 $(SHELL) $(PATH_DEVTOOLS)/bin/documentation.sh --cmd fetch --filename "[email protected]"
328 $(MV) -f -- "[email protected]" "$@"
329
330endif # VBOX_WITH_DOCS_FROM_BUILD_SERVER
331
332
333 ifdef VBOX_WITH_EFI
334 #
335 # Install EFI firmware image
336 #
337 ifdef VBOX_WITH_EFIFW_FROM_BUILD_SERVER
338 #
339 # Either from the build server.
340 #
341 ifndef VBOX_EFI_FIRMWARE_EFI_MODULES_KMK_INCLUDED
342 include $(PATH_ROOT)/src/VBox/Devices/EFI/Firmware/EfiModules.kmk
343 endif
344 INSTALLS += buildserver-efifw
345 buildserver-efifw_INST = $(INST_BIN)
346 buildserver-efifw_MODE = 0644
347 buildserver-efifw_SOURCES = \
348 $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
349 $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd
350 buildserver-efifw_CLEANS = \
351 $(buildserver-efifw_0_OUTDIR)/unpacked.ts \
352 $(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
353 $(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd \
354 $(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip \
355 $(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip.tmp \
356 $(foreach arch, amd64 x86, $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$$(buildserver-efifw_0_OUTDIR)/$(arch)/$(mod).pdb))
357
358 INSTALLS += buildserver-efifw-dbg-amd64
359 buildserver-efifw-dbg-amd64_INST = $(INST_VBOXDBG_SYMS)amd64/
360 buildserver-efifw-dbg-amd64_MODE = 0644
361 buildserver-efifw-dbg-amd64_SOURCES = \
362 $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$(buildserver-efifw_0_OUTDIR)/amd64/$(mod).pdb)
363
364 INSTALLS += buildserver-efifw-dbg-x86
365 buildserver-efifw-dbg-x86_INST = $(INST_VBOXDBG_SYMS)x86/
366 buildserver-efifw-dbg-x86_MODE = 0644
367 buildserver-efifw-dbg-x86_SOURCES = \
368 $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$(buildserver-efifw_0_OUTDIR)/x86/$(mod).pdb)
369
370 $$(buildserver-efifw_0_OUTDIR)/unpacked.ts \
371 +| $$(buildserver-efifw_0_OUTDIR)/VBoxEFI32.fd \
372 $$(buildserver-efifw_0_OUTDIR)/VBoxEFI64.fd \
373 $(foreach arch, amd64 x86, $(foreach mod,$(VBOX_EFI_MODULES_FLAT),$$(buildserver-efifw_0_OUTDIR)/$(arch)/$(mod).pdb)): \
374 $$(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip
375 $(call MSG_L1,Unpacking EFI firmware)
376 $(QUIET)$(TOOL_ZIP_UNPACK) $(TOOL_ZIP_UNPACKFLAGS) -DD -o $< -d $(buildserver-efifw_0_OUTDIR)
377 $(foreach arch, amd64 x86, \
378 $(NLTAB) $(QUIET)$(TEST) '!' -d $(dir $@)/$(arch) -- $(MKDIR_EXT) -- $(dir $@)/$(arch) \
379 $(foreach mod,$(VBOX_EFI_MODULES_FLAT) \
380 ,$(NLTAB) $(QUIET)$(TEST) '!' -f $(dir $@)/$(arch)/$(mod).pdb -- $(APPEND_EXT) $(dir $@)/$(arch)/$(mod).pdb ))
381 $(APPEND) -t $@ "done"
382
383 $$(buildserver-efifw_0_OUTDIR)/VBoxEfiFirmware.zip: \
384 $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/efi_firmware.sh | $$(dir $$@)
385 $(RM) -f -- "$@" "[email protected]"
386 $(SHELL) $(PATH_DEVTOOLS)/bin/efi_firmware.sh --cmd fetch --filename "[email protected]"
387 $(MV) -f -- "[email protected]" "$@"
388
389 else # !VBOX_WITH_EFIFW_FROM_BUILD_SERVER
390 #
391 # Or from the local copy (no debug).
392 #
393 INSTALLS += local-efifw
394 local-efifw_INST = $(INST_BIN)
395 local-efifw_MODE = 0644
396 local-efifw_SOURCES = \
397 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd=>VBoxEFI32.fd \
398 $(PATH_ROOT)/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd=>VBoxEFI64.fd
399 endif # !VBOX_WITH_EFIFW_FROM_BUILD_SERVER
400 endif # VBOX_WITH_EFI
401
402
403ifdef VBOX_WITH_EXTPACKS_FROM_BUILD_SERVER
404#
405# Get the extension pack from from the build server to facility the automatic
406# testing (everything in one tarball (VBoxAll-*)).
407#
408# Note! Using the plural here as we might be downloading more packages eventually.
409#
410INSTALLS += buildserver-extpacks
411buildserver-extpacks_INST = $(INST_DIST)
412buildserver-extpacks_MODE = 0644
413buildserver-extpacks_SOURCES = \
414 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack
415buildserver-extpacks_CLEANS = \
416 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack \
417 $(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack.tmp
418
419$$(buildserver-extpacks_0_OUTDIR)/Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack: \
420 $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/extpacks.sh | $$(dir $$@)
421 $(RM) -f -- "[email protected]" "$@"
422 $(SHELL) $(PATH_DEVTOOLS)/bin/extpacks.sh --cmd fetch --filename "[email protected]" --vbox-version "$(VBOX_VERSION_STRING)"
423 $(MV) -f -- "[email protected]" "$@"
424
425endif
426
427
428#
429# Install staged binaries on platforms where we can't cross
430# compile things.
431#
432ifn1of ($(KBUILD_TARGET), linux win)
433 VBOX_PATH_STAGED ?= .
434
435 # Additions.
436 ifndef VBOX_WITH_LINUX_ADDITIONS
437 ifndef VBOX_WITH_WIN32_ADDITIONS
438 ifneq ($(wildcard $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso),)
439 INSTALLS += staged-additions
440 staged-additions_INST = $(INST_ADDITIONS_ISO)
441 staged-additions_MODE = 0644
442 staged-additions_SOURCES = $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso
443 endif
444 endif
445 endif
446
447 # guesttool.exe
448 ifndef VBOX_WITH_WIN32_ADDITIONS
449 ifneq ($(wildcard $(VBOX_PATH_STAGED)/guesttool.exe),)
450 INSTALLS += staged-guesttool
451 staged-guesttool_INST = $(INST_BIN)
452 staged-guesttool_SOURCES = $(VBOX_PATH_STAGED)/guesttool.exe
453 endif
454 endif
455
456endif
457
458endif # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_DOCS && !VBOX_ONLY_EXTPACKS && !VBOX_ONLY_VALIDATIONKIT
459
460
461ifdef VBOX_ONLY_DOCS
462# It may sound a bit odd, but for preparing the documentation package the
463# doxygen documentation isn't needed and increases the build time a lot.
464docs:
465else # !VBOX_ONLY_DOCS
466#
467# Generate documentation.
468# (This should be converted into a separate pass or merged with an existing one later.)
469#
470 ifdef VBOX_WITH_ALL_DOXYGEN_TARGETS
471docs: docs.Core
472 endif
473endif # !VBOX_ONLY_DOCS
474
475#
476# The core (VMM+REM+Devices+Main) documentation.
477#
478# This includes so much because we wish to have the complete CFGM
479# and GCFGM lists.
480#
481VBOX_CORE_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/Core
482BLDDIRS += $(VBOX_CORE_DOXYFILE_OUTPUT)
483OTHER_CLEAN += \
484 $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core \
485 $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core.dep
486
487VBOX_CORE_DOXYFILE_INPUT_DIRS = \
488 include/iprt \
489 include/iprt/cpp \
490 include/iprt/crypto \
491 include/iprt/formats \
492 include/iprt/linux \
493 include/iprt/nt \
494 include/iprt/solaris \
495 include/iprt/win \
496 include/iprt/nocrt \
497 include/VBox \
498 include/VBox/vmm \
499 include/VBox/com \
500 include/VBox/ExtPack \
501 include/VBox/HostServices \
502 include/VBox/GuestHost \
503 include/VBox/HGSMI \
504 src/VBox/VMM \
505 src/VBox/VMM/VMMR0 \
506 src/VBox/VMM/VMMRC \
507 src/VBox/VMM/VMMR3 \
508 src/VBox/VMM/VMMAll \
509 src/VBox/VMM/VMMSwitcher \
510 src/VBox/VMM/include \
511 src/VBox/Debugger \
512 src/VBox/Devices \
513 src/VBox/Devices/Audio \
514 src/VBox/Devices/Bus \
515 src/VBox/Devices/Graphics \
516 src/VBox/Devices/Graphics/BIOS \
517 src/VBox/Devices/Graphics/shaderlib \
518 src/VBox/Devices/Input \
519 src/VBox/Devices/Networking \
520 src/VBox/Devices/PC \
521 src/VBox/Devices/PC/BIOS \
522 src/VBox/Devices/Parallel \
523 src/VBox/Devices/Serial \
524 src/VBox/Devices/Storage \
525 src/VBox/Devices/USB \
526 src/VBox/Devices/USB/darwin \
527 src/VBox/Devices/USB/linux \
528 src/VBox/Devices/USB/os2 \
529 src/VBox/Devices/USB/solaris \
530 src/VBox/Devices/USB/vrdp \
531 src/VBox/Devices/USB/win32 \
532 src/VBox/Devices/VMMDev \
533 src/VBox/Main/include \
534 src/VBox/Main/include/hgcm \
535 src/VBox/Main \
536 src/VBox/Main/glue \
537 src/VBox/Main/webservice \
538 src/VBox/Main/xml \
539 src/VBox/Main/src-all \
540 src/VBox/Main/src-all/win \
541 src/VBox/Main/src-client \
542 src/VBox/Main/src-client/win \
543 src/VBox/Main/src-client/xpcom \
544 src/VBox/Main/src-server \
545 src/VBox/Main/src-server/darwin \
546 src/VBox/Main/src-server/linux \
547 src/VBox/Main/src-server/os2 \
548 src/VBox/Main/src-server/solaris \
549 src/VBox/Main/src-server/win \
550 src/VBox/Main/src-server/xpcom \
551 src/VBox/HostServices \
552 src/VBox/HostServices/DragAndDrop \
553 src/VBox/HostServices/GuestControl \
554 src/VBox/HostServices/GuestProperties \
555 src/VBox/HostServices/SharedClipboard \
556 src/VBox/HostServices/SharedFolders \
557 src/VBox/HostServices/SharedOpenGL \
558 src/VBox/HostServices/SharedOpenGL/crserver \
559 src/VBox/HostServices/SharedOpenGL/crserverlib \
560 src/VBox/HostServices/SharedOpenGL/render \
561 src/VBox/HostServices/SharedOpenGL/unpacker \
562 src/VBox/HostServices/auth \
563 src/VBox/HostServices/auth/directoryservice \
564 src/VBox/HostServices/auth/pam \
565 src/VBox/HostServices/auth/simple \
566 src/VBox/HostServices/auth/winlogon \
567 src/VBox/HostDrivers/Support \
568 src/VBox/HostDrivers/Support/darwin \
569 src/VBox/HostDrivers/Support/freebsd \
570 src/VBox/HostDrivers/Support/linux \
571 src/VBox/HostDrivers/Support/os2 \
572 src/VBox/HostDrivers/Support/solaris \
573 src/VBox/HostDrivers/Support/win \
574 src/VBox/HostDrivers/VBoxNetFlt \
575 src/VBox/HostDrivers/VBoxNetFlt/darwin \
576 src/VBox/HostDrivers/VBoxNetFlt/linux \
577 src/VBox/HostDrivers/VBoxNetFlt/solaris \
578 src/VBox/HostDrivers/VBoxNetFlt/win \
579 src/VBox/HostDrivers/VBoxNetNat \
580 src/VBox/HostDrivers/VBoxNetNat/darwin \
581 src/VBox/HostDrivers/VBoxNetNat/linux \
582 src/VBox/HostDrivers/VBoxNetNat/solaris \
583 src/VBox/HostDrivers/VBoxNetNat/win \
584 src/VBox/HostDrivers/VBoxNetAdp \
585 src/VBox/HostDrivers/VBoxNetAdp/darwin \
586 src/VBox/HostDrivers/VBoxNetAdp/linux \
587 src/VBox/HostDrivers/VBoxNetAdp/solaris \
588 src/VBox/HostDrivers/VBoxNetAdp/win \
589 src/VBox/HostDrivers/VBoxPci \
590 src/VBox/HostDrivers/VBoxPci/darwin \
591 src/VBox/HostDrivers/VBoxPci/linux \
592 src/VBox/HostDrivers/VBoxPci/solaris \
593 src/VBox/HostDrivers/VBoxPci/win \
594 src/VBox/HostDrivers/VBoxUSB \
595 src/VBox/HostDrivers/VBoxUSB/darwin \
596 src/VBox/HostDrivers/VBoxUSB/os2 \
597 src/VBox/HostDrivers/VBoxUSB/solaris \
598 src/VBox/HostDrivers/VBoxUSB/win \
599 src/VBox/HostDrivers/VBoxUSB/win/Device \
600 src/VBox/HostDrivers/VBoxUSB/win/Device/amd64 \
601 src/VBox/HostDrivers/VBoxUSB/win/Device/x86 \
602 src/VBox/HostDrivers/VBoxUSB/win/Filter \
603 src/VBox/HostDrivers/VBoxUSB/win/Install \
604 src/VBox/HostDrivers/VBoxUSB/win/Monitor \
605 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win32 \
606 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win64 \
607 src/VBox/HostDrivers/VBoxUSB/win/usbd \
608 src/VBox/Additions \
609 src/VBox/Additions/WINNT \
610 src/VBox/Additions/WINNT/Graphics \
611 src/VBox/Additions/WINNT/Graphics/Video \
612 src/VBox/Additions/WINNT/Graphics/Video/common \
613 src/VBox/Additions/WINNT/Graphics/Video/common/wddm \
614 src/VBox/Additions/WINNT/Graphics/Video/common/xpdm \
615 src/VBox/Additions/WINNT/Graphics/Video/disp \
616 src/VBox/Additions/WINNT/Graphics/Video/disp/common \
617 src/VBox/Additions/WINNT/Graphics/Video/disp/wddm \
618 src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dbg \
619 src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm \
620 src/VBox/Additions/WINNT/Graphics/Video/mp \
621 src/VBox/Additions/WINNT/Graphics/Video/mp/common \
622 src/VBox/Additions/WINNT/Graphics/Video/mp/wddm \
623 src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm \
624 src/VBox/Additions/WINNT/Graphics/Wine_new \
625 src/VBox/Additions/WINNT/Graphics/Wine_new/d3d8 \
626 src/VBox/Additions/WINNT/Graphics/Wine_new/d3d9 \
627 src/VBox/Additions/WINNT/Graphics/Wine_new/libWine \
628 src/VBox/Additions/WINNT/Graphics/Wine_new/switcher \
629 src/VBox/Additions/WINNT/Graphics/Wine_new/vbox \
630 src/VBox/Additions/WINNT/Graphics/Wine_new/wined3d \
631 src/VBox/Additions/WINNT/Installer \
632 src/VBox/Additions/WINNT/Installer/ISO \
633 src/VBox/Additions/WINNT/Installer/InstallHelper \
634 src/VBox/Additions/WINNT/Installer/Languages \
635 src/VBox/Additions/WINNT/Installer/Loader \
636 src/VBox/Additions/WINNT/Mouse \
637 src/VBox/Additions/WINNT/Mouse/NT5 \
638 src/VBox/Additions/WINNT/Mouse/common \
639 src/VBox/Additions/WINNT/SharedFolders \
640 src/VBox/Additions/WINNT/SharedFolders/redirector \
641 src/VBox/Additions/WINNT/SharedFolders/redirector/dll \
642 src/VBox/Additions/WINNT/SharedFolders/redirector/sys \
643 src/VBox/Additions/WINNT/SharedFolders/redirector/sys/rdbss \
644 src/VBox/Additions/WINNT/VBoxCredProv \
645 src/VBox/Additions/WINNT/VBoxGINA \
646 src/VBox/Additions/WINNT/VBoxHook \
647 src/VBox/Additions/WINNT/VBoxTray \
648 src/VBox/Additions/WINNT/VBoxUSB \
649 src/VBox/Additions/WINNT/i8042prt \
650 src/VBox/Additions/WINNT/i8042prt/i386 \
651 src/VBox/Additions/WINNT/i8042prt/include \
652 src/VBox/Additions/WINNT/include \
653 src/VBox/Additions/common \
654 src/VBox/Additions/common/VBoxControl \
655 src/VBox/Additions/common/VBoxGuest \
656 src/VBox/Additions/common/VBoxGuest/freebsd \
657 src/VBox/Additions/common/VBoxGuest/linux \
658 src/VBox/Additions/common/VBoxGuest/win \
659 src/VBox/Additions/common/VBoxGuestLib \
660 src/VBox/Additions/common/VBoxService \
661 src/VBox/Additions/common/VBoxVideo \
662 src/VBox/Additions/common/crOpenGL \
663 src/VBox/Additions/common/crOpenGL/array \
664 src/VBox/Additions/common/crOpenGL/feedback \
665 src/VBox/Additions/common/crOpenGL/pack \
666 src/VBox/Additions/common/crOpenGL/passthrough \
667 src/VBox/Additions/common/pam \
668 src/VBox/Additions/darwin \
669 src/VBox/Additions/freebsd \
670 src/VBox/Additions/freebsd/Installer \
671 src/VBox/Additions/freebsd/drm \
672 src/VBox/Additions/freebsd/vboxvfs \
673 src/VBox/Additions/linux \
674 src/VBox/Additions/linux/drm \
675 src/VBox/Additions/linux/installer \
676 src/VBox/Additions/linux/selinux-fedora \
677 src/VBox/Additions/linux/sharedfolders \
678 src/VBox/Additions/os2 \
679 src/VBox/Additions/os2/VBoxGradd \
680 src/VBox/Additions/os2/VBoxGradd/graddlib \
681 src/VBox/Additions/os2/VBoxGrext \
682 src/VBox/Additions/os2/VBoxMouse \
683 src/VBox/Additions/os2/VBoxSF \
684 src/VBox/Additions/solaris \
685 src/VBox/Additions/solaris/DRM \
686 src/VBox/Additions/solaris/Installer \
687 src/VBox/Additions/solaris/SharedFolders \
688 src/VBox/Additions/solaris/SharedFolders/solaris10 \
689 src/VBox/Additions/solaris/SharedFolders/solaris10/sys \
690 src/VBox/Additions/solaris/Virtio \
691 src/VBox/Additions/x11 \
692 src/VBox/Additions/x11/Installer \
693 src/VBox/Additions/x11/VBoxClient \
694 src/VBox/Additions/x11/vboxmouse \
695 src/VBox/Additions/x11/vboxmouse/xorg70 \
696 src/VBox/Additions/x11/vboxmouse/xorg71 \
697 src/VBox/Additions/x11/vboxvideo \
698 src/VBox/NetworkServices \
699 src/VBox/NetworkServices/DHCP \
700 src/VBox/NetworkServices/NAT \
701 src/VBox/NetworkServices/NetLib \
702 src/VBox/Storage \
703 src/VBox/ValidationKit/ \
704 src/VBox/ValidationKit/docs/ \
705 src/VBox/ValidationKit/testdriver/ \
706 src/VBox/ValidationKit/bootsectors/ \
707 src/VBox/ValidationKit/bootsectors/bs3kit/ \
708 src/VBox/ValidationKit/tests/ \
709 src/VBox/ValidationKit/tests/additions/ \
710 src/VBox/ValidationKit/tests/api/ \
711 src/VBox/ValidationKit/tests/autostart/ \
712 src/VBox/ValidationKit/tests/benchmarks/ \
713 src/VBox/ValidationKit/tests/cpu/ \
714 src/VBox/ValidationKit/tests/installation/ \
715 src/VBox/ValidationKit/tests/network/ \
716 src/VBox/ValidationKit/tests/selftests/ \
717 src/VBox/ValidationKit/tests/smoketests/ \
718 src/VBox/ValidationKit/tests/storage/ \
719 src/VBox/ValidationKit/tests/teleportation/ \
720 src/VBox/ValidationKit/tests/unittests/ \
721 src/VBox/ValidationKit/tests/usb/ \
722 src/VBox/ValidationKit/common/ \
723 src/VBox/ValidationKit/utils/ \
724 src/VBox/ValidationKit/utils/TestExecServ/ \
725 src/VBox/ValidationKit/utils/cpu/ \
726 src/VBox/ValidationKit/utils/misc/ \
727 src/VBox/ValidationKit/utils/network/ \
728 src/VBox/ValidationKit/utils/nt/ \
729 src/VBox/ValidationKit/utils/usb/ \
730 src/VBox/ValidationKit/vms/ \
731 src/VBox/ValidationKit/testmanager/ \
732 src/VBox/ValidationKit/testmanager/core/ \
733 src/VBox/ValidationKit/testmanager/db/ \
734 src/VBox/ValidationKit/testmanager/debug/ \
735 src/VBox/ValidationKit/testmanager/cgi/ \
736 src/VBox/ValidationKit/testmanager/webui/ \
737 src/VBox/ValidationKit/testboxscript/ \
738
739# These must come first in order to make things look nice.
740VBOX_CORE_DOXYFILE_INPUT_FIRST =\
741 $(PATH_ROOT)/doc/VBox-doc.c \
742 $(PATH_ROOT)/doc/VBox-CodingGuidelines.cpp \
743 $(PATH_ROOT)/doc/VBox-MakefileGuidelines.cpp \
744 $(PATH_ROOT)/src/VBox/VMM/Docs-CodingGuidelines.cpp \
745 $(PATH_ROOT)/src/VBox/VMM/Docs-RawMode.cpp \
746 $(PATH_ROOT)/include/VBox/cdefs.h \
747 $(PATH_ROOT)/include/VBox/vmm/vmm.h \
748 $(PATH_ROOT)/include/VBox/vmm/vmapi.h \
749 $(PATH_ROOT)/include/VBox/vmm/cpum.h \
750 $(PATH_ROOT)/include/VBox/vmm/mm.h \
751 $(PATH_ROOT)/include/VBox/vmm/pgm.h \
752 $(PATH_ROOT)/include/VBox/vmm/selm.h \
753 $(PATH_ROOT)/include/VBox/vmm/trpm.h \
754 $(PATH_ROOT)/include/VBox/vmm/patm.h \
755 $(PATH_ROOT)/include/VBox/vmm/dbgf.h \
756 $(PATH_ROOT)/include/VBox/vmm/stam.h \
757 $(PATH_ROOT)/include/VBox/vmm/em.h \
758 $(PATH_ROOT)/include/VBox/vmm/hm.h \
759 $(PATH_ROOT)/include/VBox/vmm/hm_svm.h \
760 $(PATH_ROOT)/include/VBox/vmm/hm_vmx.h \
761 $(PATH_ROOT)/include/VBox/vmm/iem.h \
762 $(PATH_ROOT)/include/VBox/vmm/pdm.h \
763 $(PATH_ROOT)/include/VBox/vmm/rem.h \
764 $(PATH_ROOT)/include/VBox/vmm/iom.h \
765 $(PATH_ROOT)/include/VBox/vmm/cfgm.h \
766 $(PATH_ROOT)/include/VBox/vmm/gim.h \
767 $(PATH_ROOT)/include/VBox/vmm/tm.h \
768 $(PATH_ROOT)/include/VBox/vmm/csam.h \
769 $(PATH_ROOT)/include/VBox/vmm/ssm.h \
770 \
771 $(PATH_ROOT)/src/VBox/VMM/include/CFGMInternal.h \
772 $(PATH_ROOT)/src/VBox/VMM/include/CPUMInternal.h \
773 $(PATH_ROOT)/src/VBox/VMM/include/DBGFInternal.h \
774 $(PATH_ROOT)/src/VBox/VMM/include/EMInternal.h \
775 $(PATH_ROOT)/src/VBox/VMM/include/HMInternal.h \
776 $(PATH_ROOT)/src/VBox/VMM/include/IEMInternal.h \
777 $(PATH_ROOT)/src/VBox/VMM/include/IOMInternal.h \
778 $(PATH_ROOT)/src/VBox/VMM/include/MMInternal.h \
779 $(PATH_ROOT)/src/VBox/VMM/include/PDMInternal.h \
780 $(PATH_ROOT)/src/VBox/VMM/include/PGMInternal.h \
781 $(PATH_ROOT)/src/VBox/VMM/include/GIMInternal.h \
782 $(PATH_ROOT)/src/VBox/VMM/include/CSAMInternal.h \
783 $(PATH_ROOT)/src/VBox/VMM/include/PATMInternal.h \
784 $(PATH_ROOT)/src/VBox/VMM/include/REMInternal.h \
785 $(PATH_ROOT)/src/VBox/VMM/include/SELMInternal.h \
786 $(PATH_ROOT)/src/VBox/VMM/include/SSMInternal.h \
787 $(PATH_ROOT)/src/VBox/VMM/include/STAMInternal.h \
788 $(PATH_ROOT)/src/VBox/VMM/include/TMInternal.h \
789 $(PATH_ROOT)/src/VBox/VMM/include/TRPMInternal.h \
790 $(PATH_ROOT)/src/VBox/VMM/include/VMInternal.h \
791 $(PATH_ROOT)/src/VBox/VMM/include/VMMInternal.h \
792 \
793 $(PATH_ROOT)/include/VBox/vmm/vm.h \
794 \
795 $(PATH_ROOT)/include/VBox/sup.h \
796 $(PATH_ROOT)/include/VBox/vd.h \
797 $(PATH_ROOT)/include/VBox/types.h \
798 $(PATH_ROOT)/include/VBox/err.h \
799 $(PATH_ROOT)/include/VBox/vmm/cpumdis.h \
800 $(PATH_ROOT)/include/VBox/dbggui.h \
801 $(PATH_ROOT)/include/VBox/dis.h \
802 $(PATH_ROOT)/include/VBox/disopcode.h \
803 $(PATH_ROOT)/include/VBox/intnet.h \
804 $(PATH_ROOT)/include/VBox/settings.h \
805 $(PATH_ROOT)/include/VBox/pci.h \
806 $(PATH_ROOT)/include/VBox/scsi.h \
807 $(PATH_ROOT)/include/VBox/shflsvc.h \
808 $(PATH_ROOT)/include/VBox/hgcmsvc.h \
809 $(PATH_ROOT)/include/VBox/usb.h \
810 $(PATH_ROOT)/include/VBox/vusb.h \
811 \
812 $(PATH_ROOT)/include/VBox/log.h \
813 $(PATH_ROOT)/include/VBox/param.h \
814 $(PATH_ROOT)/include/VBox/version.h \
815 \
816 $(PATH_ROOT)/include/VBox/com/com.h
817
818VBOX_CORE_DOXYFILE_INPUT := \
819 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(VBOX_CORE_DOXYFILE_INPUT_DIRS)))) ) \
820 $(foreach dir, $(VBOX_CORE_DOXYFILE_INPUT_DIRS) \
821 , $(wildcard $(dir)/*.cpp $(dir)/*.c $(dir)/*.m $(dir)/*.mm $(dir)/*.py $(dir)/.asm))
822VBOX_CORE_DOXYFILE_INPUT := \
823 $(VBOX_CORE_DOXYFILE_INPUT_FIRST) \
824 $(sort $(filter-out $(VBOX_CORE_DOXYFILE_INPUT_FIRST), $(VBOX_CORE_DOXYFILE_INPUT)))
825
826# And some some additional stuff.
827VBOX_CORE_DOXYFILE_INPUT += \
828 $(PATH_ROOT)/src/recompiler/VBoxRecompiler.c \
829 $(PATH_ROOT)/src/recompiler/VBoxREMWrapper.cpp
830
831includedep $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core.dep
832
833# Generate the Doxyfile
834$(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core: Doxyfile.Core \
835 $(comp-vars VBOX_CORE_DOXYFILE_INPUT,DOXYGEN_CORE_INPUT_PREV,FORCE) \
836 $(comp-vars VBOX_CORE_DOXYFILE_OUTPUT,DOXYGEN_CORE_OUTPUT_PREV,FORCE) \
837 | $$(dir $$@)
838 $(QUIET)$(RM) -f $@ [email protected] [email protected]
839 $(QUIET)$(CP) -f Doxyfile.Core [email protected]
840 $(QUIET)$(APPEND) [email protected]
841 $(QUIET)$(APPEND) [email protected] "OUTPUT_DIRECTORY = $(VBOX_CORE_DOXYFILE_OUTPUT)"
842 $(QUIET)$(APPEND) [email protected] "WARN_LOGFILE = $(VBOX_CORE_DOXYFILE_OUTPUT)/errors"
843 $(QUIET)$(APPEND) [email protected] "INCLUDE_PATH = $(PATH_ROOT)/include $(PATH_ROOT)/src/VBox/VMM $(PATH_ROOT)/src/VBox/Main/include "
844 $(QUIET)$(APPEND) [email protected] "INCLUDE_FILE_PATTERNS = *.cpp.h"
845 $(QUIET)$(APPEND) [email protected] "EXCLUDE = " \
846 "$(PATH_ROOT)/src/VBox/Additions/common/crOpenGL/utils.c" \
847 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserver/main.c" \
848 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c" \
849 "$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_arrays.c" \
850 "$(PATH_ROOT)/src/VBox/Additions/common/crOpenGL/context.c"
851 $(QUIET)$(APPEND) [email protected]
852 $(QUIET)$(APPEND) [email protected] 'INPUT = $(foreach x,$(VBOX_CORE_DOXYFILE_INPUT),\$(NLTAB)$(x))'
853 $(QUIET)$(APPEND) [email protected]
854 $(QUIET)$(APPEND) [email protected] "PREDEFINED += $(DEFS) $(DEFS.$(KBUILD_TARGET)) $(DEFS.$(KBUILD_TARGET_ARCH)) $(ARCH_BITS_DEFS)"
855 $(QUIET)$(APPEND) [email protected] "PREDEFINED += ARCH_BITS=HC_ARCH_BITS R3_ARCH_BITS=HC_ARCH_BITS R0_ARCH_BITS=HC_ARCH_BITS "
856 $(QUIET)$(APPEND) [email protected]
857 $(QUIET)$(MV) -f [email protected] $@
858 @$(APPEND) [email protected] "DOXYGEN_CORE_OUTPUT_PREV = $(VBOX_CORE_DOXYFILE_OUTPUT)"
859 @$(APPEND) [email protected] "DOXYGEN_CORE_INPUT_PREV = $(VBOX_CORE_DOXYFILE_INPUT)"
860
861# Do the actual job.
862$(VBOX_CORE_DOXYFILE_OUTPUT)/docs.Core: $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core $$(VBOX_CORE_DOXYFILE_INPUT) \
863 | $(VBOX_CORE_DOXYFILE_OUTPUT)/
864 $(QUIET)$(RM) -f $@
865 $(QUIET)$(RM) -Rf $(VBOX_CORE_DOXYFILE_OUTPUT)/html/
866 doxygen $(VBOX_CORE_DOXYFILE_OUTPUT)/Doxyfile.Core
867 $(SED) -n \
868 -e ':nextwarning' \
869 -e '/^ *$(DOLLAR)/d' \
870 -e '/\/src\/VBox\/Main\/.* warning: documented symbol.*::~.* was not declared or defined/b ignore' \
871 -e '/\/src\/VBox\/Main\/.* warning: explicit link request to.* could not be resolved/b ignore' \
872 -e '/\/src\/VBox\/Additions\/common\/crOpenGL\/.* warning/b ignore' \
873 -e '/\/src\/VBox\/Additions\/x11\/VBoxClient\/seamless-x11\.h.* warning/b ignore' \
874 -e '/\/src\/VBox\/HostDrivers\/Support\/win\/SUPR3HardenedMain-win\.cpp.* warning/b ignore' \
875 -e '/\/src\/VBox\/ValidationKit\/.* warning/b ignore' \
876 \
877 -e '/unable to resolve link to .dtrace_pops_t./b ignore' \
878 \
879 -e 'b end' \
880 -e ':ignore' \
881 -e 'n' \
882 -e '/^[[:space:]]/b ignore' \
883 -e '/^Possible candidates/b ignore' \
884 -e '/^def testmanager::webui::wuicontentbase::__init__/b ignore' \
885 -e 'b nextwarning' \
886 -e ':end' \
887 -e 'p' \
888 --output $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2 \
889 $(VBOX_CORE_DOXYFILE_OUTPUT)/errors
890 $(CAT) $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2
891 $(SED) -e "/[^ ]/q 1" $(VBOX_CORE_DOXYFILE_OUTPUT)/errors2
892 $(APPEND) $@
893
894docs.Core docs.core: $(VBOX_CORE_DOXYFILE_OUTPUT)/docs.Core
895
896
897#
898# Alias for kmk_time. Used by both the additions and validation kit build setups.
899#
900VBOX_KMK_TIME = $(KBUILD_BIN_PATH)/kmk_time
901
902#
903# Common rsync bits.
904#
905
906##
907# The basic rsync invocation for syncing the tree into a VM; the source and
908# target specs are missing.
909#
910# @param 1 os name.
911# @param 2 arch or *.
912#
913VBOX_RSYNC_IN_FN = rsync -a -v --delete --delete-excluded --prune-empty-dirs \
914 --exclude=*.pyc \
915 --exclude=.svn/ \
916 --exclude=doc/Devices/ \
917 --exclude=doc/tg/ \
918 --exclude=doc/vp/ \
919 --exclude=tinderclient.log \
920 --exclude=tools/FetchDir/ \
921 --exclude=webtools/ \
922 $(foreach os,darwin freebsd linux solaris os2 win,$(if-expr "$(1)" != "$(os)", \
923 --exclude=tools/$(os).x86/ \
924 --exclude=tools/$(os).amd64/ \
925 --exclude=out/$(os).amd64/ \
926 --exclude=out/$(os).x86/ \
927 ,$(select \
928 "$(2)" == "x86" , --exclude=out/$(os).amd64/$(KBUILD_TYPE)/, \
929 "$(2)" == "amd64", --exclude=out/$(os).x86/$(KBUILD_TYPE)/) \
930 ))
931
932#
933# VM IP addresses.
934#
935VBOX_BLD_VM_LNX_IP := 192.168.27.2
936VBOX_BLD_VM_OS2_IP := 192.168.27.3
937VBOX_BLD_VM_SOLARIS_IP := 192.168.27.4
938VBOX_BLD_VM_DARWIN_X86_IP := 192.168.27.5
939VBOX_BLD_VM_DARWIN_AMD64_IP := 192.168.27.15
940VBOX_BLD_VM_WIN_X86_IP := 192.168.27.6
941VBOX_BLD_VM_WIN_AMD64_IP := 192.168.27.16
942VBOX_BLD_VM_FBSD_X86_IP := 192.168.27.7
943VBOX_BLD_VM_FBSD_AMD64_IP := 192.168.27.17
944
945VBOX_WITH_OS2_ADD_BUILD=1
946
947#
948# For profiling the VM building steps.
949#
950if 0
951 VBOX_BLD_VM_MSG_BEGIN = $(call MSG_L1,Building $1.)
952 VBOX_BLD_VM_MSG_END__ =
953else
954 VBOX_BLD_VM_MSG_BEGIN = @echo `date "+%Y-%m-%dT%H:%M:%S"` - Start building $1.
955 VBOX_BLD_VM_MSG_END__ = @echo `date "+%Y-%m-%dT%H:%M:%S"` - Done building $1.
956endif
957
958#
959# Build the additions, all of them.
960#
961# This is currently tailored (hardcoded) for the additions
962# build box. Can make it pretty and configurable later.
963#
964# The fetching must be done in serial fashion, while the building
965# should be more flexible wrt to -jN.
966#
967additions-fetch:
968 + $(KMK) -C tools fetch VBOX_ONLY_ADDITIONS=1
969 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_ADDITIONS=1
970 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_ADDITIONS=1
971ifdef VBOX_WITH_OS2_ADD_BUILD
972 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_ADDITIONS=1
973endif
974 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_ADDITIONS=1
975 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_ADDITIONS=1
976 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_ADDITIONS=1
977 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_ADDITIONS=1
978
979
980## @todo Currently combined solaris additions building assumes that amd64 is
981# built first. The windows amd64 additions need some x86 files, so don't change
982# the order of the windows builds. TODO: Split building and packing for these two VMs.
983additions-build: \
984 additions-build-rsync-into-vms \
985 additions-build-win.x86 \
986 additions-build-win.amd64 \
987 additions-build-solaris.amd64 \
988 additions-build-solaris.x86 \
989 additions-build-os2.x86 \
990 additions-build-linux
991
992additions-build-rsync-into-vms: \
993 additions-build-solaris.rsync-into-vm \
994 additions-build-os2.rsync-into-vm \
995 additions-build-linux.rsync-into-vm
996 $(call MSG_L1,Rsynced the sources + tools into the VMs.)
997.NOTPARALLEL: additions-build-rsync-into-vms
998.PHONY: additions-build-rsync-into-vms
999
1000
1001VBOX_ADDITIONS_BUILD.amd64 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
1002 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1003 KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
1004 VBOX_SVN_REV=$(VBOX_SVN_REV)
1005
1006VBOX_ADDITIONS_BUILD.x86 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
1007 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1008 KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
1009 VBOX_SVN_REV=$(VBOX_SVN_REV)
1010
1011# Automatically determine the additions build subdir name. Used for figuring
1012# out directory names inside the additions building VMs.
1013VBOX_ADDITIONS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1014
1015# When building in parallel on a Windows host, make sure we finish the host
1016# bit before kicking off any UNIX guest or we'll run into file sharing issues.
1017ifeq ($(KBUILD_TARGET),win)
1018VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST = #additions-build-win.x86 additions-build-win.amd64
1019else
1020VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST =
1021endif
1022
1023# ASSUMES the 32-bit edition has been built already. Also for serializing VM access.
1024additions-build-win.amd64: additions-build-win.x86
1025ifeq ($(KBUILD_TARGET),win)
1026 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1027 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing
1028else
1029 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 additions build+pack)
1030 $(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 "
1031 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 additions build+pack)
1032endif
1033
1034additions-build-win.x86:
1035ifeq ($(KBUILD_TARGET),win)
1036 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1037 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing
1038else
1039 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 additions build.pack)
1040 $(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"
1041 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 additions build+pack)
1042endif
1043
1044# ASSUMES the 64-bit edition are built first. This also serializes VM access.
1045ifeq ($(KBUILD_TARGET),solaris)
1046additions-build-solaris.amd64:
1047 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1048 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing
1049
1050additions-build-solaris.x86: additions-build-solaris.amd64
1051 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_ADD_HOST_BUILD_TWEAK)
1052 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 packing
1053
1054additions-build-solaris.rsync-into-vm:
1055else
1056additions-build-solaris.rsync-into-vm:
1057 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) \
1058 '--exclude=src/VBox/Additions/WINNT/**' \
1059 '--exclude=src/VBox/Frontends/**' \
1060 '--exclude=src/VBox/VMM/**' \
1061 . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1062
1063additions-build-solaris.build-it: additions-build-solaris.rsync-into-vm
1064 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 additions build+pack)
1065 $(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"
1066 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 additions build+pack)
1067 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 additions build+pack)
1068 $(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"
1069 $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 additions build+pack)
1070
1071additions-build-solaris.rsync-out-of-vm: additions-build-solaris.build-it
1072 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.x86 out/
1073 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1074
1075.NOTPARALLEL: additions-build-solaris.rsync-into-vm
1076.PHONY: additions-build-solaris.rsync-into-vm additions-build-solaris.rsync-out-of-vm additions-build-solaris.build-it
1077
1078additions-build-solaris.amd64: additions-build-solaris.rsync-out-of-vm
1079additions-build-solaris.x86: additions-build-solaris.rsync-out-of-vm
1080endif
1081
1082ifdef VBOX_WITH_OS2_ADD_BUILD
1083 ifeq ($(KBUILD_TARGET),os2)
1084additions-build-os2.x86:
1085 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1086 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing
1087
1088additions-build-os2.rsync-into-vm:
1089 else
1090additions-build-os2.rsync-into-vm:
1091 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,os2,*) \
1092 '--exclude=src/VBox/Additions/x11/**' \
1093 '--exclude=src/VBox/Additions/WINNT/**' \
1094 '--exclude=src/VBox/Frontends/**' \
1095 '--exclude=src/VBox/VMM/**' \
1096 . rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1097
1098additions-build-os2.build-it: additions-build-os2.rsync-into-vm
1099 $(call VBOX_BLD_VM_MSG_BEGIN,OS/2 additions build+pack)
1100 $(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"
1101 $(call VBOX_BLD_VM_MSG_END__,OS/2 additions build+pack)
1102
1103additions-build-os2.rsync-out-of-vm: additions-build-os2.build-it
1104 $(VBOX_KMK_TIME) rsync -v -a --delete rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/os2.x86 ./out
1105
1106.NOTPARALLEL: additions-build-os2.rsync-into-vm
1107.PHONY: additions-build-os2.rsync-into-vm additions-build-os2.rsync-out-of-vm additions-build-os2.build-it
1108
1109additions-build-os2.x86: additions-build-os2.rsync-out-of-vm
1110 endif
1111#
1112else
1113additions-build-os2.x86:
1114# Dummy
1115endif
1116
1117ifeq ($(KBUILD_TARGET),linux)
1118additions-build-linux.amd64:
1119 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1120 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.amd64) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1
1121
1122additions-build-linux.x86:
1123 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1124 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1
1125
1126additions-build-linux: additions-build-linux.x86 additions-build-linux.amd64
1127 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) all $(VBOX_ADD_HOST_BUILD_TWEAK)
1128 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) packing VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1
1129else
1130additions-build-linux.rsync-into-vm:
1131 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) \
1132 '--exclude=src/VBox/Additions/WINNT/**' \
1133 '--exclude=src/VBox/Frontends/**' \
1134 '--exclude=src/VBox/VMM/**' \
1135 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)
1136
1137additions-build-linux.build-it: additions-build-linux.rsync-into-vm
1138 ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
1139 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 additions/greeter)
1140 $(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\""'
1141 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 additions/greeter)
1142 endif
1143 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 additions build+pack)
1144 $(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)\""'
1145 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 additions build+pack)
1146 ifdef VBOX_WITH_LIGHTDM_GREETER_PACKING
1147 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions/greeter)
1148 $(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\""'
1149 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions/greeter)
1150 endif
1151 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions build+pack)
1152 $(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)\""'
1153 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions build+pack)
1154 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 additions combine)
1155 $(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\""'
1156 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 additions combine)
1157
1158additions-build-linux.rsync-out-of-vm: additions-build-linux.build-it
1159 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.x86 out/
1160 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1161
1162.NOTPARALLEL: additions-build-linux.rsync-into-vm
1163.PHONY: additions-build-linux.rsync-into-vm additions-build-linux.rsync-out-of-vm additions-build-linux.build-it
1164
1165additions-build-linux: additions-build-linux.rsync-out-of-vm
1166endif
1167
1168additions-packing:
1169 + $(KMK) VBOX_ONLY_ADDITIONS=1 \
1170 VBOX_WITH_ADDITIONS_ISO.freebsd.amd64= \
1171 VBOX_WITH_ADDITIONS_ISO.freebsd.x86= \
1172 VBOX_WITH_ADDITIONS_ISO.linux.amd64= \
1173 VBOX_WITH_ADDITIONS_ISO.linux.x86=1 \
1174 VBOX_WITH_COMBINED_LINUX_GUEST_PACKAGE=1 \
1175 VBOX_WITH_ADDITIONS_ISO.os2.x86=1 \
1176 VBOX_WITH_ADDITIONS_ISO.solaris.amd64=1 \
1177 VBOX_WITH_ADDITIONS_ISO.solaris.x86=1 \
1178 VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 \
1179 VBOX_WITH_ADDITIONS_ISO.win.amd64=1 \
1180 VBOX_WITH_ADDITIONS_ISO.win.x86=1 \
1181 -C src/VBox/Additions \
1182 $(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.zip
1183
1184.PHONY: \
1185 additions-build-win.x86 \
1186 additions-build-win.amd64 \
1187 additions-build-solaris.amd64 \
1188 additions-build-solaris.x86 \
1189 additions-build-os2.x86 \
1190 additions-build-linux \
1191 additions-build-linux.amd64 \
1192 additions-build-linux.x86 \
1193 additions-build-linux.x86.combined \
1194 additions-packing
1195
1196
1197#
1198# Build the extension packs, all of them.
1199#
1200# This is tailored (hardcoded) for the extension pack build box.
1201#
1202# The fetching must be done in serial fashion, while the building should be
1203# more flexible wrt to -jN.
1204#
1205extpacks-fetch:
1206 + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1
1207 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
1208 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
1209# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
1210# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
1211 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
1212 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
1213# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_EXTPACKS=1
1214 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1
1215 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
1216 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
1217
1218
1219extpacks-build: \
1220 extpacks-build-win.amd64 \
1221 extpacks-build-win.x86 \
1222 extpacks-build-solaris.amd64 \
1223 extpacks-build-os2.x86 \
1224 extpacks-build-linux \
1225 extpacks-build-darwin.amd64 \
1226 extpacks-build-freebsd.amd64 \
1227 extpacks-build-freebsd.x86
1228
1229VBOX_EXTPACKS_BUILD.amd64 = VBOX_ONLY_EXTPACKS=1 \
1230 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1231 KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
1232 VBOX_SVN_REV=$(VBOX_SVN_REV)
1233
1234VBOX_EXTPACKS_BUILD.x86 = VBOX_ONLY_EXTPACKS=1 \
1235 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1236 KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
1237 VBOX_SVN_REV=$(VBOX_SVN_REV)
1238
1239# Automatically determine the extpack build subdir name. Used for figuring out
1240# directory names inside the extension pack building VMs.
1241VBOX_EXTPACKS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1242
1243# When building in parallel on a Windows host, make sure we finish the host
1244# bit before kicking off any UNIX guest or we'll run into file sharing issues.
1245ifeq ($(KBUILD_TARGET),win)
1246VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = extpacks-build-win.x86 extpacks-build-win.amd64
1247else
1248VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST =
1249endif
1250
1251extpacks-build-win.amd64:
1252ifeq ($(KBUILD_TARGET),win)
1253 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1254else
1255 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 extension packs)
1256 $(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"
1257 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 extension packs)
1258endif
1259
1260extpacks-build-win.x86:
1261ifeq ($(KBUILD_TARGET),win)
1262 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1263else
1264 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 extension packs)
1265 $(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"
1266 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 extension packs)
1267endif
1268
1269ifeq ($(KBUILD_TARGET),solaris)
1270extpacks-build-solaris.amd64:
1271 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1272
1273else
1274# Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
1275extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1276 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1277
1278extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm
1279 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 extension packs)
1280 $(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"
1281 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 extension packs)
1282
1283extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it
1284 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1285
1286#.NOTPARALLEL: extpacks-build-solaris.rsync-into-vm
1287.PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it
1288
1289extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm
1290endif
1291
1292extpacks-build-os2.x86:
1293#ifeq ($(KBUILD_TARGET),os2)
1294# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1295#else
1296# $(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) "
1297#endif
1298
1299ifeq ($(KBUILD_TARGET),linux)
1300extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1301 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1302
1303extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1304 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1305
1306extpacks-build-linux: extpacks-build-linux.x86 extpacks-build-linux.amd64
1307else
1308# Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
1309extpacks-build-linux.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1310 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1311
1312extpacks-build-linux.build-it: extpacks-build-linux.rsync-into-vm
1313 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 extension packs)
1314 $(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\""'
1315 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 extension packs)
1316 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 extension packs)
1317 $(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\""'
1318 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 extension packs)
1319
1320extpacks-build-linux.rsync-out-of-vm: extpacks-build-linux.build-it
1321 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.x86 out/
1322 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1323
1324#.NOTPARALLEL: extpacks-build-linux.rsync-into-vm
1325.PHONY: extpacks-build-linux.rsync-out-of-vm extpacks-build-linux.rsync-into-vm extpacks-build-linux.build-it
1326
1327extpacks-build-linux: extpacks-build-linux.rsync-out-of-vm
1328endif
1329
1330extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1331#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
1332# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1333#else
1334# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/amd64 extension packs)
1335# $(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"
1336# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/amd64 extension packs)
1337#endif
1338
1339extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1340#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
1341# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1342#else
1343# $(call VBOX_BLD_VM_MSG_BEGIN,FreeBSD/x86 extension packs)
1344# $(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"
1345# $(call VBOX_BLD_VM_MSG_END__,FreeBSD/x86 extension packs)
1346#endif
1347
1348extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
1349ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
1350 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
1351else
1352 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 extension packs)
1353 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
1354 $(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"
1355 $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
1356 $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 extension packs)
1357endif
1358
1359extpacks-packing:
1360 + $(KMK) VBOX_ONLY_EXTPACKS=1 \
1361 VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 linux.amd64 linux.x86 solaris.amd64 win.amd64 win.x86" \
1362 packing
1363# +++ freebsd.amd64 freebsd.x86 os2.x86 ^^^
1364
1365.PHONY: \
1366 extpacks-build-win.x86 \
1367 extpacks-build-win.amd64 \
1368 extpacks-build-solaris.amd64 \
1369 extpacks-build-os2.x86 \
1370 extpacks-build-linux \
1371 extpacks-build-linux.amd64 \
1372 extpacks-build-linux.x86 \
1373 extpacks-build-freebsd.amd64 \
1374 extpacks-build-freebsd.x86 \
1375 extpacks-build-darwin.amd64 \
1376 extpacks-packing
1377
1378
1379#
1380# Build the test suite, all of it.
1381#
1382# This is currently tailored (hardcoded) for the additions build box just like
1383# the additions build above, which it in fact is a copy of.
1384#
1385validationkit-fetch:
1386 + $(KMK) -C tools fetch VBOX_ONLY_VALIDATIONKIT=1
1387 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_VALIDATIONKIT=1
1388 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_VALIDATIONKIT=1
1389# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_VALIDATIONKIT=1
1390# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_VALIDATIONKIT=1
1391 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_VALIDATIONKIT=1
1392 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_VALIDATIONKIT=1
1393 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_VALIDATIONKIT=1
1394 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_VALIDATIONKIT=1
1395 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_VALIDATIONKIT=1
1396 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_VALIDATIONKIT=1
1397 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_VALIDATIONKIT=1
1398
1399
1400validationkit-build: \
1401 validationkit-build-rsync-into-vms \
1402 validationkit-build-solaris.amd64 \
1403 validationkit-build-solaris.x86 \
1404 validationkit-build-win.x86 \
1405 validationkit-build-win.amd64 \
1406 validationkit-build-os2.x86 \
1407 validationkit-build-linux \
1408 validationkit-build-freebsd.amd64 \
1409 validationkit-build-freebsd.x86 \
1410 validationkit-build-darwin.amd64 \
1411 validationkit-build-darwin.x86
1412
1413validationkit-build-rsync-into-vms: \
1414 validationkit-build-solaris.rsync-into-vm \
1415 validationkit-build-os2.rsync-into-vm \
1416 validationkit-build-linux.rsync-into-vm
1417 $(call MSG_L1,Rsynced the sources + tools into the VMs.)
1418.NOTPARALLEL: validationkit-build-rsync-into-vms
1419.PHONY: validationkit-build-rsync-into-vms
1420
1421
1422VBOX_VALIDATIONKIT_BUILD.amd64 = VBOX_ONLY_VALIDATIONKIT=1 \
1423 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1424 KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
1425 VBOX_SVN_REV=$(VBOX_SVN_REV)
1426
1427VBOX_VALIDATIONKIT_BUILD.x86 = VBOX_ONLY_VALIDATIONKIT=1 \
1428 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
1429 KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
1430 VBOX_SVN_REV=$(VBOX_SVN_REV)
1431
1432# Automatically determine the Validation Kit build subdir name. Used for figuring
1433# out directory names inside the test suite building VMs.
1434VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
1435
1436# When building in parallel on a Windows host, make sure we finish the host
1437# bit before kicking off any UNIX guest or we'll run into file sharing issues.
1438ifeq ($(KBUILD_TARGET),win)
1439VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST = validationkit-build-win.x86 validationkit-build-win.amd64
1440else
1441VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST =
1442endif
1443
1444# ASSUMES the 32-bit edition has been built already. Also for serializing VM access.
1445validationkit-build-win.amd64: validationkit-build-win.x86
1446ifeq ($(KBUILD_TARGET),win)
1447 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1448else
1449 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/amd64 Validation Kit)
1450 $(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 "
1451 $(call VBOX_BLD_VM_MSG_END__,Windows/amd64 Validation Kit)
1452endif
1453
1454validationkit-build-win.x86:
1455ifeq ($(KBUILD_TARGET),win)
1456 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1457else
1458 $(call VBOX_BLD_VM_MSG_BEGIN,Windows/x86 Validation Kit)
1459 $(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"
1460 $(call VBOX_BLD_VM_MSG_END__,Windows/x86 Validation Kit)
1461endif
1462
1463ifeq ($(KBUILD_TARGET),solaris)
1464validationkit-build-solaris.amd64:
1465 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1466
1467validationkit-build-solaris.x86:
1468 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1469
1470else
1471validationkit-build-solaris.rsync-into-vm: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1472 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) \
1473 '--exclude=src/VBox/Additions/WINNT/**' \
1474 '--exclude=src/VBox/Frontends/**' \
1475 '--exclude=src/VBox/VMM/**' \
1476 . $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1477
1478validationkit-build-solaris.build-it: validationkit-build-solaris.rsync-into-vm
1479 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/amd64 Validation Kit)
1480 $(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"
1481 $(call VBOX_BLD_VM_MSG_END__,Solaris/amd64 Validation Kit)
1482 $(call VBOX_BLD_VM_MSG_BEGIN,Solaris/x86 Validation Kit)
1483 $(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 "
1484 $(call VBOX_BLD_VM_MSG_END__,Solaris/x86 Validation Kit)
1485
1486validationkit-build-solaris.rsync-out-of-vm: validationkit-build-solaris.build-it
1487 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/solaris.x86 out/
1488 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_SOLARIS_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
1489
1490.PHONY: validationkit-build-solaris.rsync-out-of-vm validationkit-build-solaris.rsync-into-vm validationkit-build-solaris.build-it
1491
1492validationkit-build-solaris.amd64: validationkit-build-solaris.rsync-out-of-vm
1493validationkit-build-solaris.x86: validationkit-build-solaris.rsync-out-of-vm
1494endif
1495
1496ifeq ($(KBUILD_TARGET),os2)
1497validationkit-build-os2.x86:
1498 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1499validationkit-build-os2.rsync-into-vm:
1500else # !OS/2
1501validationkit-build-os2.rsync-into-vm:
1502 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,os2,*) \
1503 '--exclude=src/VBox/Additions/x11/**' \
1504 '--exclude=src/VBox/Additions/WINNT/**' \
1505 '--exclude=src/VBox/Frontends/**' \
1506 '--exclude=src/VBox/VMM/**' \
1507 . rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1508
1509validationkit-build-os2.build-it: validationkit-build-os2.rsync-into-vm
1510 $(call VBOX_BLD_VM_MSG_BEGIN,OS/2 Validation Kit)
1511 $(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"
1512 $(call VBOX_BLD_VM_MSG_END__,OS/2 Validation Kit)
1513
1514validationkit-build-os2.rsync-out-of-vm: validationkit-build-os2.build-it
1515 $(VBOX_KMK_TIME) rsync -v -a --delete rsync://vbox@$(VBOX_BLD_VM_OS2_IP)/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/os2.x86 ./out
1516
1517.PHONY: validationkit-build-os2.rsync-into-vm validationkit-build-os2.rsync-out-of-vm validationkit-build-os2.build-it
1518
1519validationkit-build-os2.x86: validationkit-build-os2.rsync-out-of-vm
1520endif # !OS/2
1521
1522ifeq ($(KBUILD_TARGET),linux)
1523validationkit-build-linux.amd64:
1524 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1525
1526validationkit-build-linux.x86:
1527 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1528
1529validationkit-build-linux: validationkit-build-linux.x86 validationkit-build-linux.amd64
1530else
1531validationkit-build-linux.rsync-into-vm: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1532 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,linux,*) \
1533 '--exclude=src/VBox/Additions/WINNT/**' \
1534 '--exclude=src/VBox/Frontends/**' \
1535 '--exclude=src/VBox/VMM/**' \
1536 . $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1537
1538validationkit-build-linux.build-it: validationkit-build-linux.rsync-into-vm
1539 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/amd64 Validation Kit)
1540 $(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\""'
1541 $(call VBOX_BLD_VM_MSG_END__,Linux/amd64 Validation Kit)
1542 $(call VBOX_BLD_VM_MSG_BEGIN,Linux/x86 Validation Kit)
1543 $(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\""'
1544 $(call VBOX_BLD_VM_MSG_END__,Linux/x86 Validation Kit)
1545
1546validationkit-build-linux.rsync-out-of-vm: validationkit-build-linux.build-it
1547 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/linux.x86 out/
1548 $(VBOX_KMK_TIME) rsync -a --delete $(VBOX_BLD_VM_LNX_IP):/mnt/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/linux.amd64 out/
1549
1550.PHONY: validationkit-build-linux.rsync-out-of-vm validationkit-build-linux.rsync-into-vm validationkit-build-linux.build-it
1551
1552validationkit-build-linux: validationkit-build-linux.rsync-out-of-vm
1553endif
1554
1555validationkit-build-freebsd.amd64: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1556#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
1557# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1558#else
1559# $(call VBOX_BLD_VM_MSG_BEGIN,Freebsd/amd64 Validation Kit)
1560# $(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"
1561# $(call VBOX_BLD_VM_MSG_END__,Freebsd/amd64 Validation Kit)
1562#endif
1563
1564validationkit-build-freebsd.x86: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1565#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
1566# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1567#else
1568# $(call VBOX_BLD_VM_MSG_BEGIN,Freebsd/x86 Validation Kit)
1569# $(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"
1570# $(call VBOX_BLD_VM_MSG_END__,Freebsd/x86 Validation Kit)
1571#endif
1572
1573validationkit-build-darwin.amd64: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1574ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
1575 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.amd64) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1576else
1577 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/amd64 Validation Kit)
1578 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1579 $(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"
1580 $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_AMD64_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
1581 $(call VBOX_BLD_VM_MSG_END__,Darwin/amd64 Validation Kit)
1582endif
1583
1584validationkit-build-darwin.x86: $(VBOX_VALIDATIONKIT_BUILD_WIN_HOST_FIRST)
1585ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
1586 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_VALIDATIONKIT_BUILD.x86) all $(VBOX_VALIDATIONKIT_HOST_BUILD_TWEAK)
1587else
1588 $(call VBOX_BLD_VM_MSG_BEGIN,Darwin/x86 Validation Kit)
1589 $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)
1590 $(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"
1591 $(VBOX_KMK_TIME) rsync -am -v --delete $(VBOX_BLD_VM_DARWIN_X86_IP):/Users/vbox/tinderbox/$(VBOX_VALIDATIONKIT_BUILD_SUBDIRNAME)/out/darwin.x86 out/
1592 $(call VBOX_BLD_VM_MSG_END__,Darwin/x86 Validation Kit)
1593endif
1594
1595
1596validationkit-packing:
1597 + $(KMK) VBOX_ONLY_VALIDATIONKIT=1 \
1598 VBOX_WITH_VALIDATIONKIT_PACKING.darwin.amd64=1 \
1599 VBOX_WITH_VALIDATIONKIT_PACKING.darwin.x86=2 \
1600 VBOX_WITH_VALIDATIONKIT_PACKING.freebsd.amd64= \
1601 VBOX_WITH_VALIDATIONKIT_PACKING.freebsd.x86= \
1602 VBOX_WITH_VALIDATIONKIT_PACKING.linux.amd64=1 \
1603 VBOX_WITH_VALIDATIONKIT_PACKING.linux.x86=1 \
1604 VBOX_WITH_VALIDATIONKIT_PACKING.os2.x86=1 \
1605 VBOX_WITH_VALIDATIONKIT_PACKING.solaris.amd64=1 \
1606 VBOX_WITH_VALIDATIONKIT_PACKING.solaris.x86=1 \
1607 VBOX_WITH_VALIDATIONKIT_PACKING.win.amd64=1 \
1608 VBOX_WITH_VALIDATIONKIT_PACKING.win.x86=1 \
1609 -C src/VBox/ValidationKit \
1610 $(PATH_OUT)/VBoxValidationKit.zip \
1611 $(PATH_OUT)/VBoxTestBoxScript.zip
1612
1613.PHONY: \
1614 validationkit-build-win.x86 \
1615 validationkit-build-win.amd64 \
1616 validationkit-build-solaris.amd64 \
1617 validationkit-build-solaris.x86 \
1618 validationkit-build-os2.x86 \
1619 validationkit-build-linux \
1620 validationkit-build-linux.amd64 \
1621 validationkit-build-linux.x86 \
1622 validationkit-build-freebsd.amd64 \
1623 validationkit-build-freebsd.x86 \
1624 validationkit-build-darwin.amd64 \
1625 validationkit-build-darwin.x86 \
1626 validationkit-packing
1627
1628
1629#
1630# Build the EFI firmware, all of it.
1631#
1632efi-fetch:
1633 + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1
1634
1635efi-build: $(VBOX_VERSION_HEADER)
1636 + $(KMK) -C src/VBox/Devices/EFI/Firmware$(VBOX_EFI_FIRMWARE_SUFFIX)
1637
1638efi-packing:
1639 + $(KMK) -C src/VBox/Devices/EFI/Firmware$(VBOX_EFI_FIRMWARE_SUFFIX) $(PATH_STAGE)/VBoxEfiFirmware.zip
1640
1641
1642#
1643# Generate VirtualBox-x.x.x.tar.bz2 (PUEL) zip archives for internal use only
1644# - includes kBuild
1645# - must be executed on an PUEL checkout
1646#
1647
1648# the path where to store the zip archive
1649ZIPPATH ?= $(abspath $(PATH_ROOT)/..)
1650# the root directory inside the zip archive
1651ZIPROOT ?= VirtualBox-$(VBOX_VERSION_STRING)
1652# the name of the zip archive
1653ZIPNAME ?= VirtualBox-$(VBOX_VERSION_STRING).zip
1654snapshot-puel:
1655 @$(call MSG_L1,Creating zip $(ZIPPATH)/$(ZIPNAME))
1656 @if [ ! -r "$(PATH_ROOT)/src/VBox/RDP/server/server.cpp" ]; then \
1657 echo; \
1658 echo "Did not find RDP stuff, is this an OSE branch?"; \
1659 echo; \
1660 exit 1; \
1661 fi
1662 @if [ -z "$(PASSWORD)" ]; then \
1663 echo; \
1664 echo "Please specify a password with PASSWORD=..."; \
1665 echo; \
1666 exit 1; \
1667 fi
1668 $(QUIET)$(MKDIR) -p $(ZIPPATH)
1669 $(QUIET)$(RM) -f $(ZIPPATH)/$(ZIPROOT)
1670 $(QUIET)$(RM) -f $(ZIPPATH)/$(ZIPNAME)
1671 $(QUIET)$(LN_SYMLINK) $(PATH_ROOT) $(ZIPPATH)/$(ZIPROOT)
1672 $(QUIET)(cd $(ZIPPATH); 7z a \
1673 -l -tzip -mmt=on -mx=7 -p$(PASSWORD) \
1674 -xr!.svn \
1675 -i!$(ZIPROOT)/Config.kmk \
1676 -i!$(ZIPROOT)/Doxyfile.Core \
1677 -i!$(ZIPROOT)/Makefile.kmk \
1678 -i!$(ZIPROOT)/configure \
1679 -i!$(ZIPROOT)/configure.vbs \
1680 -i!$(ZIPROOT)/doc \
1681 -i!$(ZIPROOT)/include \
1682 -i!$(ZIPROOT)/kBuild \
1683 -i!$(ZIPROOT)/src \
1684 -i!$(ZIPROOT)/tools/env.sh \
1685 -i!$(ZIPROOT)/tools/linux.x86/bin/* \
1686 -i!$(ZIPROOT)/tools/linux.amd64/bin/* \
1687 -x!$(ZIPROOT)/doc/Devices \
1688 -x!$(ZIPROOT)/doc/\*pdf \
1689 -x!$(ZIPROOT)/doc/VMM \
1690 -x!$(ZIPROOT)/doc/licenses_old \
1691 -x!$(ZIPROOT)/doc/manual/de_DE \
1692 -x!$(ZIPROOT)/doc/manual/fr_FR \
1693 -x!$(ZIPROOT)/src/tests \
1694 -x!$(ZIPROOT)/src/VBox/Artwork/2008-\* \
1695 -x!$(ZIPROOT)/src/VBox/Installer/AMI \
1696 -x!$(ZIPROOT)/src/VBox/Installer/Avanquest \
1697 -x!$(ZIPROOT)/src/VBox/Installer/Encore \
1698 -x!$(ZIPROOT)/src/VBox/Installer/linux/debian \
1699 -x!$(ZIPROOT)/src/VBox/Installer/linux/rpm \
1700 $(ZIPPATH)/$(ZIPNAME))
1701 $(QUIET)$(RM) $(ZIPPATH)/$(ZIPROOT)
1702
1703
1704#
1705# Generate ALL the rules.
1706#
1707include $(FILE_KBUILD_SUB_FOOTER)
1708
1709
1710#
1711# Generate x86.mac and err.mac.
1712#
1713incs:
1714 $(SED) -f include/VBox/err.sed --output include/VBox/err.mac include/VBox/err.h
1715 $(APPEND) include/VBox/err.mac '%include "iprt/err.mac"'
1716 $(SED) -f include/VBox/err.sed --output include/iprt/err.mac include/iprt/err.h
1717 $(SED) -f include/VBox/various.sed --output include/iprt/x86.mac include/iprt/x86.h
1718 $(APPEND) include/iprt/x86.mac '%include "iprt/x86extra.mac"'
1719 $(SED) -f include/VBox/various.sed --output include/VBox/apic.mac include/VBox/apic.h
1720 $(SED) -f include/VBox/various.sed --output include/VBox/bios.mac include/VBox/bios.h
1721 $(SED) -f include/VBox/various.sed --output include/VBox/param.mac include/VBox/param.h
1722 $(SED) -f include/VBox/various.sed --output include/VBox/VMMDevTesting.mac include/VBox/VMMDevTesting.h
1723
1724
1725#
1726# Legacy.
1727#
1728vslick.h:
1729 $(ECHO) This is now done by gen-slickedit-workspace.sh/cmd.
1730 exit 1
1731
1732
1733#
1734# Add fetching of the tools to the 'up[date][2]' targets.
1735#
1736up update up2 update2::
1737ifndef VBOX_OSE
1738 +$(MAKE) -C tools fetch
1739else
1740 $(MAKE) -C tools -f Makefile-ose.kmk fetch
1741endif
1742
1743
1744
1745#
1746# Aliases for building the SDK.
1747#
1748.NOTPARALLEL: sdk sdk-fetch
1749sdk:
1750 + $(KMK) VBOX_ONLY_SDK=1 \
1751 pass_bldprogs pass_others pass_installs pass_packing
1752
1753sdk-fetch:
1754 + $(KMK) VBOX_ONLY_SDK=1 -C tools
1755
1756
1757#
1758# Build the essentials to run a VM. Incomplete. Use with care!
1759#
1760quick: \
1761 VBoxRT \
1762 VBoxVMM \
1763 VMMR0 \
1764 VBoxDD \
1765 VBoxDDR0 \
1766 VBoxDD2 \
1767 VBoxDD2R0 \
1768 VBoxC \
1769 VBoxSVC \
1770 $(if-expr defined(VBOX_WITH_RAW_MODE),VMMRC VBoxDDRC VBoxDD2RC,) \
1771 $(if-expr defined(VBOX_WITH_REM),VBoxREM,) \
1772 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB) && "$(KBUILD_TARGET)" == "win",VBoxProxyStub,) \
1773 $(if-expr defined(VBOX_WITH_SDS),VBoxSDS,) \
1774 $(if-expr defined(VBOX_WITH_QTGUI),VirtualBox,)
1775
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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