VirtualBox

source: vbox/trunk/Makefile.kmk@ 9641

Last change on this file since 9641 was 9641, checked in by vboxsync, 17 years ago

Disable all the targets we don't currently build on addx or it'll try add linux.amd64 to the iso.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 22.1 KB
Line 
1# $Id: Makefile.kmk 9641 2008-06-12 00:36:22Z vboxsync $
2## @file
3# Top level makefile.
4#
5
6#
7# Copyright (C) 2006-2007 Sun Microsystems, Inc.
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# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
18# Clara, CA 95054 USA or visit http://www.sun.com if you need
19# additional information or have any questions.
20#
21
22DEPTH = .
23include $(KBUILD_PATH)/header.kmk
24
25ifdef VBOX_WITH_DOCS
26 ifndef VBOX_ONLY_ADDITIONS
27 SUBDIRS = doc/manual
28 endif
29endif
30SUBDIRS += src
31
32ifndef VBOX_ONLY_ADDITIONS
33#
34# Install external binaries (mostly redistributable parts of tools we use).
35# This must be done *before* we build the manual.
36#
37# To avoid dragging in unnecessary tools and sdks here, we don't use the .win
38# and .linux property suffixes.
39#
40INSTALLS = bin
41
42bin_INST = $(INST_BIN)
43
44# The SDL DLLs
45if1of ($(KBUILD_TARGET), win os2)
46 ifneq ($(VBOX_WITH_VBOXSDL)$(VBOX_WITH_VBOXBFE),)
47 include $(KBUILD_PATH)/sdks/LIBSDL.kmk
48 bin_SOURCES += \
49 $(DLL_SDK_LIBSDL_SDL)
50 ifdef VBOX_WITH_SECURELABEL
51 bin_SOURCES += \
52 $(DLL_SDK_LIBSDL_SDLTTF)
53 endif
54 ifeq ($(KBUILD_TARGET),os2)
55 bin_SOURCES += \
56 $(DLL_SDK_LIBSDL_FSLIB)
57 endif
58 endif
59endif
60
61
62# The Qt DLLs.
63ifneq ($(VBOX_WITH_QTGUI),)
64 if1of ($(KBUILD_TARGET), win os2)
65 #include $(KBUILD_PATH)/sdks/QT3.kmk
66 #bin_SOURCES += \
67 # $(DLL_SDK_QT3_QT)
68 ifneq ($(strip $(VBOX_DLL_QT)),)
69 bin_SOURCES += \
70 $(VBOX_DLL_QT)=>$(not-dir $(VBOX_DLL_QT))
71 endif
72 ifdef VBOX_QT_BINARIES
73 bin_SOURCES += $(VBOX_QT_BINARIES)
74 endif
75 else ifeq ($(VBOX_MUST_INSTALL_LIB_QT),1)
76 bin_SOURCES += \
77 $(LIB_QT)
78 endif
79endif
80
81
82# The compiler runtime DLLs.
83ifeq ($(KBUILD_TARGET).$(VBOX_WITHOUT_COMPILER_REDIST),win.)
84 ifdef VBOX_USE_VCC80
85 include $(KBUILD_PATH)/tools/VCC80X86.kmk
86 include $(KBUILD_PATH)/tools/VCC80AMD64.kmk
87 bin_SOURCES.x86 += \
88 $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \
89 $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcr80.dll=>Microsoft.VC80.CRT/msvcr80.dll \
90 $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcp80.dll=>Microsoft.VC80.CRT/msvcp80.dll \
91 $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>testcase/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \
92 $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcr80.dll=>testcase/Microsoft.VC80.CRT/msvcr80.dll \
93 $(PATH_TOOL_VCC80X86)/redist/x86/Microsoft.VC80.CRT/msvcp80.dll=>testcase/Microsoft.VC80.CRT/msvcp80.dll
94 bin_SOURCES.amd64 += \
95 $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \
96 $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcr80.dll=>Microsoft.VC80.CRT/msvcr80.dll \
97 $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcp80.dll=>Microsoft.VC80.CRT/msvcp80.dll \
98 $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest=>testcase/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest \
99 $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcr80.dll=>testcase/Microsoft.VC80.CRT/msvcr80.dll \
100 $(PATH_TOOL_VCC80AMD64)/redist/amd64/Microsoft.VC80.CRT/msvcp80.dll=>testcase/Microsoft.VC80.CRT/msvcp80.dll
101 endif
102 ifndef VBOX_USE_VCC80
103 VBOX_INSTALL_VCC70_RT = 1
104 endif
105 ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.x86)
106 VBOX_INSTALL_VCC70_RT = 1
107 endif
108 ifdef VBOX_INSTALL_VCC70_RT
109 include $(KBUILD_PATH)/tools/VCC70.kmk
110 ## @todo Move these defines to VCC70.
111 DLL_TOOL_VCC70_MSVCR71 ?= $(PATH_TOOL_VCC70)/bin/msvcr71.dll
112 ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCR71)),)
113 bin_SOURCES += \
114 $(DLL_TOOL_VCC70_MSVCR71)=>msvcr71.dll \
115 $(DLL_TOOL_VCC70_MSVCR71)=>testcase/msvcr71.dll
116 endif
117 DLL_TOOL_VCC70_MSVCP71 ?= $(PATH_TOOL_VCC70)/bin/msvcp71.dll
118 ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCP71)),)
119 bin_SOURCES += \
120 $(DLL_TOOL_VCC70_MSVCP71)=>msvcp71.dll \
121 $(DLL_TOOL_VCC70_MSVCP71)=>testcase/msvcp71.dll
122 endif
123 DLL_TOOL_VCC70_MSVCRT ?= $(PATH_TOOL_VCC70)/bin/msvcrt.dll
124 ifneq ($(wildcard $(DLL_TOOL_VCC70_MSVCRT)),)
125 bin_SOURCES += \
126 $(DLL_TOOL_VCC70_MSVCRT)=>msvcrt.dll \
127 $(DLL_TOOL_VCC70_MSVCRT)=>testcase/msvcrt.dll
128 endif
129 endif
130endif
131
132
133#
134# Install additions iso from the build server.
135# The $(CP)/$(RM) stuff can be replaced by a simple $(TOUCH) once that has
136# been added to kBuild.
137#
138## @todo need kmk_builtin_touch!
139ifdef VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER
140INSTALLS += buildserver-additions
141buildserver-additions_INST = $(INST_ADDITIONS)
142buildserver-additions_MODE = 0644
143buildserver-additions_SOURCES = $(PATH_TARGET)/VBoxGuestAdditions.iso
144buildserver-additions_CLEANS = $(PATH_TARGET)/VBoxGuestAdditions.iso $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp
145
146$(PATH_TARGET)/VBoxGuestAdditions.iso: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/additions.sh | $(call DIRDEP, $(PATH_TARGET))
147 $(RM) -f $(PATH_TARGET)/VBoxGuestAdditions.iso $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp
148# $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp
149 $(KMK) --affinity 1 -f $(MAKEFILE) buildserver-additions-affinity-hack
150 $(CP) -f $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp $(PATH_TARGET)/VBoxGuestAdditions.iso
151 $(RM) -f $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp
152
153buildserver-additions-affinity-hack:
154 $(SHELL) $(PATH_DEVTOOLS)/bin/additions.sh --cmd fetch --filename $(PATH_TARGET)/VBoxGuestAdditions.iso.tmp
155endif
156
157
158#
159# Install staged binaries on platforms where we can't cross
160# compile things.
161#
162ifn1of ($(KBUILD_TARGET), l4 linux win)
163 VBOX_PATH_STAGED ?= .
164
165 # Additions.
166 ifndef VBOX_WITH_LINUX_ADDITIONS
167 ifndef VBOX_WITH_WIN32_ADDITIONS
168 ifneq ($(wildcard $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso),)
169 INSTALLS += staged-additions
170 staged-additions_INST = $(INST_ADDITIONS)
171 staged-additions_MODE = 0644
172 staged-additions_SOURCES = $(VBOX_PATH_STAGED)/VBoxGuestAdditions.iso
173 endif
174 endif
175 endif
176
177 # guesttool.exe
178 ifndef VBOX_WITH_WIN32_ADDITIONS
179 ifneq ($(wildcard $(VBOX_PATH_STAGED)/guesttool.exe),)
180 INSTALLS += staged-guesttool
181 staged-guesttool_INST = $(INST_BIN)
182 staged-guesttool_SOURCES = $(VBOX_PATH_STAGED)/guesttool.exe
183 endif
184 endif
185
186endif
187
188endif # !VBOX_ONLY_ADDITIONS
189
190
191include $(KBUILD_PATH)/footer.kmk
192
193
194#
195# Generate documentation.
196# (This should be converted into a separate pass or merged with an existing one later.)
197#
198docs: docs.Core
199 $(KMK) -C src/VBox/Main docs
200 $(KMK) -C src/VBox/Runtime docs
201
202docs.Core: $(PATH_TARGET)/docs.Core
203
204
205
206#
207# The core (VMM+REM+Devices+Main) documentation.
208#
209# This includes so much because we wish to have the complete CFGM
210# and GCFGM lists.
211#
212OTHER_CLEAN += \
213 $(PATH_TARGET)/Doxyfile \
214 $(PATH_TARGET)/Doxyfile.dep
215
216DOXYGEN_INPUT_DIRS = \
217 include/iprt \
218 include/VBox \
219 include/VBox/com \
220 include/VBox/HostServices \
221 src/VBox/VMM \
222 src/VBox/VMM/VMMR0 \
223 src/VBox/VMM/VMMGC \
224 src/VBox/VMM/VMMAll \
225 src/VBox/VMM/PATM \
226 src/VBox/VMM/PATM/VMMR0 \
227 src/VBox/VMM/PATM/VMMGC \
228 src/VBox/VMM/PATM/VMMAll \
229 src/VBox/VMM/VMMSwitcher \
230 src/VBox/Debugger \
231 src/VBox/Devices/ \
232 src/VBox/Devices/Audio \
233 src/VBox/Devices/Bus \
234 src/VBox/Devices/Graphics \
235 src/VBox/Devices/Graphics/BIOS \
236 src/VBox/Devices/Input \
237 src/VBox/Devices/Networking \
238 src/VBox/Devices/PC \
239 src/VBox/Devices/PC/BIOS \
240 src/VBox/Devices/Parallel \
241 src/VBox/Devices/Serial \
242 src/VBox/Devices/Storage \
243 src/VBox/Devices/VBoxHDDFormats \
244 src/VBox/Devices/VBoxHDDFormats/StorageCraft \
245 src/VBox/Devices/USB \
246 src/VBox/Devices/USB/darwin \
247 src/VBox/Devices/USB/linux \
248 src/VBox/Devices/USB/os2 \
249 src/VBox/Devices/USB/solaris \
250 src/VBox/Devices/USB/vrdp \
251 src/VBox/Devices/USB/win32 \
252 src/VBox/Devices/VMMDev \
253 src/VBox/Main/include \
254 src/VBox/Main/include/hgcm \
255 src/VBox/Main/ \
256 src/VBox/Main/glue \
257 src/VBox/Main/hgcm \
258 src/VBox/Main/webservice \
259 src/VBox/Main/xml \
260 src/VBox/Main/darwin \
261 src/VBox/Main/linux \
262 src/VBox/Main/os2 \
263 src/VBox/Main/solaris \
264 src/VBox/Main/win32 \
265 src/VBox/HostServices/ \
266 src/VBox/HostServices/SharedClipboard \
267 src/VBox/HostServices/SharedFolders \
268 src/VBox/HostServices/SharedOpenGL \
269 src/VBox/HostDrivers/Support \
270 src/VBox/HostDrivers/Support/darwin \
271 src/VBox/HostDrivers/Support/freebsd \
272 src/VBox/HostDrivers/Support/l4 \
273 src/VBox/HostDrivers/Support/linux \
274 src/VBox/HostDrivers/Support/os2 \
275 src/VBox/HostDrivers/Support/solaris \
276 src/VBox/HostDrivers/Support/win \
277 src/VBox/HostDrivers/VBoxTAP/ \
278 src/VBox/HostDrivers/VBoxTAP/win \
279 src/VBox/HostDrivers/VBoxTAP/darwin \
280 src/VBox/HostDrivers/VBoxUSB/ \
281 src/VBox/HostDrivers/VBoxUSB/darwin \
282 src/VBox/HostDrivers/VBoxUSB/os2 \
283 src/VBox/HostDrivers/VBoxUSB/win \
284 src/VBox/HostDrivers/VBoxUSB/win/Device \
285 src/VBox/HostDrivers/VBoxUSB/win/Device/amd64 \
286 src/VBox/HostDrivers/VBoxUSB/win/Device/x86 \
287 src/VBox/HostDrivers/VBoxUSB/win/Filter \
288 src/VBox/HostDrivers/VBoxUSB/win/Install \
289 src/VBox/HostDrivers/VBoxUSB/win/Monitor \
290 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win32 \
291 src/VBox/HostDrivers/VBoxUSB/win/Monitor/win64 \
292 src/VBox/HostDrivers/VBoxUSB/win/usbd \
293
294# These must come first in order to make things look nice.
295DOXYGEN_INPUT_FIRST =\
296 $(PATH_ROOT)/doc/VBox-doc.c \
297 $(PATH_ROOT)/doc/VBox-CodingGuidelines.cpp \
298 $(PATH_ROOT)/src/VBox/VMM/VMMCodingGuidelines.cpp \
299 $(PATH_ROOT)/src/VBox/VMM/VMMDocsRawMode.cpp \
300 $(PATH_ROOT)/include/VBox/cdefs.h \
301 $(PATH_ROOT)/include/VBox/vmapi.h \
302 $(PATH_ROOT)/include/VBox/vmm.h \
303 $(PATH_ROOT)/include/VBox/cpum.h \
304 $(PATH_ROOT)/include/VBox/mm.h \
305 $(PATH_ROOT)/include/VBox/pgm.h \
306 $(PATH_ROOT)/include/VBox/selm.h \
307 $(PATH_ROOT)/include/VBox/trpm.h \
308 $(PATH_ROOT)/include/VBox/patm.h \
309 $(PATH_ROOT)/include/VBox/dbgf.h \
310 $(PATH_ROOT)/include/VBox/stam.h \
311 $(PATH_ROOT)/include/VBox/em.h \
312 $(PATH_ROOT)/include/VBox/pdm.h \
313 $(PATH_ROOT)/include/VBox/rem.h \
314 $(PATH_ROOT)/include/VBox/iom.h \
315 $(PATH_ROOT)/include/VBox/cfgm.h \
316 $(PATH_ROOT)/include/VBox/tm.h \
317 $(PATH_ROOT)/include/VBox/csam.h \
318 $(PATH_ROOT)/include/VBox/ssm.h \
319 $(PATH_ROOT)/include/VBox/hwaccm.h \
320 $(PATH_ROOT)/include/VBox/hwacc_svm.h \
321 $(PATH_ROOT)/include/VBox/hwacc_vmx.h \
322 $(PATH_ROOT)/\
323 $(PATH_ROOT)/src/VBox/VMM/CFGMInternal.h \
324 $(PATH_ROOT)/src/VBox/VMM/CPUMInternal.h \
325 $(PATH_ROOT)/src/VBox/VMM/DBGFInternal.h \
326 $(PATH_ROOT)/src/VBox/VMM/EMInternal.h \
327 $(PATH_ROOT)/src/VBox/VMM/HWACCMInternal.h \
328 $(PATH_ROOT)/src/VBox/VMM/IOMInternal.h \
329 $(PATH_ROOT)/src/VBox/VMM/MMInternal.h \
330 $(PATH_ROOT)/src/VBox/VMM/PDMInternal.h \
331 $(PATH_ROOT)/src/VBox/VMM/PGMInternal.h \
332 $(PATH_ROOT)/src/VBox/VMM/PATM/CSAMInternal.h \
333 $(PATH_ROOT)/src/VBox/VMM/PATM/PATMInternal.h \
334 $(PATH_ROOT)/src/VBox/VMM/REMInternal.h \
335 $(PATH_ROOT)/src/VBox/VMM/SELMInternal.h \
336 $(PATH_ROOT)/src/VBox/VMM/SSMInternal.h \
337 $(PATH_ROOT)/src/VBox/VMM/STAMInternal.h \
338 $(PATH_ROOT)/src/VBox/VMM/TMInternal.h \
339 $(PATH_ROOT)/src/VBox/VMM/TRPMInternal.h \
340 $(PATH_ROOT)/src/VBox/VMM/VMInternal.h \
341 $(PATH_ROOT)/src/VBox/VMM/VMMInternal.h \
342 $(PATH_ROOT)/\
343 $(PATH_ROOT)/include/VBox/vm.h \
344 \
345 $(PATH_ROOT)/include/VBox/sup.h \
346 $(PATH_ROOT)/include/VBox/VBoxHDD.h \
347 $(PATH_ROOT)/include/VBox/types.h \
348 $(PATH_ROOT)/include/VBox/err.h \
349 $(PATH_ROOT)/include/VBox/x86.h \
350 $(PATH_ROOT)/include/VBox/cpumdis.h \
351 $(PATH_ROOT)/include/VBox/dbggui.h \
352 $(PATH_ROOT)/include/VBox/dis.h \
353 $(PATH_ROOT)/include/VBox/disopcode.h \
354 $(PATH_ROOT)/include/VBox/intnet.h \
355 $(PATH_ROOT)/include/VBox/settings.h \
356 $(PATH_ROOT)/include/VBox/pci.h \
357 $(PATH_ROOT)/include/VBox/scsi.h \
358 $(PATH_ROOT)/include/VBox/shflsvc.h \
359 $(PATH_ROOT)/include/VBox/hgcmsvc.h \
360 $(PATH_ROOT)/include/VBox/usb.h \
361 $(PATH_ROOT)/include/VBox/vusb.h \
362 $(PATH_ROOT)/\
363 $(PATH_ROOT)/include/VBox/log.h \
364 $(PATH_ROOT)/include/VBox/param.h \
365 $(PATH_ROOT)/include/VBox/version.h
366
367DOXYGEN_INPUT := \
368 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(DOXYGEN_INPUT_DIRS)))) ) \
369 $(foreach dir, $(DOXYGEN_INPUT_DIRS), $(wildcard $(dir)/*.cpp $(dir)/.c $(dir)/.asm))
370DOXYGEN_INPUT := \
371 $(DOXYGEN_INPUT_FIRST) \
372 $(filter-out $(DOXYGEN_INPUT_FIRST), $(DOXYGEN_INPUT))
373
374# And some some additional stuff.
375DOXYGEN_INPUT += \
376 $(PATH_ROOT)/src/recompiler/VBoxRecompiler.c \
377 $(PATH_ROOT)/src/recompiler/VBoxREMWrapper.cpp
378
379
380DOXYGEN_OUTPUT = $(PATH_OUT)/docs/Core
381
382-include $(PATH_TARGET)/Doxyfile.dep
383
384# Generate the Doxyfile
385$(PATH_TARGET)/Doxyfile: Doxyfile.Core \
386 $(comp-vars DOXYGEN_INPUT,DOXYGEN_INPUT_PREV,FORCE) \
387 $(comp-vars DOXYGEN_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE) \
388 | $(call DIRDEP, $(PATH_TARGET))
389 $(RM) -f $@ [email protected] $(PATH_TARGET)/Doxyfile.dep
390 $(CP) -f Doxyfile.Core [email protected]
391 $(APPEND) [email protected]
392 $(APPEND) [email protected] "OUTPUT_DIRECTORY = $(DOXYGEN_OUTPUT)"
393 $(APPEND) [email protected] "WARN_LOGFILE = $(DOXYGEN_OUTPUT)/errors"
394 $(APPEND) [email protected] "INCLUDE_PATH = $(PATH_ROOT)/include $(PATH_ROOT)/src/VBox/VMM $(PATH_ROOT)/src/VBox/Main/include "
395 $(APPEND) [email protected] "INCLUDE_FILE_PATTERNS = *.cpp.h"
396 $(APPEND) [email protected]
397 $(APPEND) [email protected] "INPUT = $(DOXYGEN_INPUT)"
398 $(APPEND) [email protected]
399 $(APPEND) [email protected] "PREDEFINED += $(DEFS) $(DEFS.$(KBUILD_TARGET)) $(DEFS.$(KBUILD_TARGET_ARCH)) $(ARCH_BITS_DEFS)"
400 $(APPEND) [email protected] "PREDEFINED += ARCH_BITS=HC_ARCH_BITS R3_ARCH_BITS=HC_ARCH_BITS R0_ARCH_BITS=HC_ARCH_BITS "
401 $(APPEND) [email protected]
402 $(MV) -f [email protected] $@
403 @$(APPEND) $(PATH_TARGET)/Doxyfile.dep "DOXYGEN_OUTPUT_PREV = $(DOXYGEN_OUTPUT)"
404 @$(APPEND) $(PATH_TARGET)/Doxyfile.dep "DOXYGEN_INPUT_PREV = $(DOXYGEN_INPUT)"
405
406# Create the output directory.
407$(call DIRDEP, $(DOXYGEN_OUTPUT)):
408 $(MKDIR) -p $@
409
410# Do the actual job.
411$(PATH_TARGET)/docs.Core: $(PATH_TARGET)/Doxyfile $(DOXYGEN_INPUT) | $(call DIRDEP, $(DOXYGEN_OUTPUT))
412 $(RM) -f $(wildcard $(DOXYGEN_OUTPUT)/html/*) $(PATH_TARGET)/docs.Core
413 doxygen $(PATH_TARGET)/Doxyfile
414 $(APPEND) $(PATH_TARGET)/docs.Core
415
416
417#
418# Generate x86.mac and err.mac.
419#
420incs:
421 $(SED) -f include/VBox/err.sed include/VBox/err.h > include/VBox/err.mac
422 echo '%include "iprt/err.mac"' >> include/VBox/err.mac
423 $(SED) -f include/VBox/err.sed include/iprt/err.h > include/iprt/err.mac
424 $(SED) -e '/__VBox_x86_h__/d' -e '/#define/!d' -e 's/#define/%define/' include/VBox/x86.h > include/VBox/x86.mac
425
426
427#
428# Generate Visual SlickEdit tagging #defines.
429#
430vslick.h: include/VBox/cdefs.h Makefile
431 echo '// autogenerated' > [email protected]
432 #echo '#define __BEGIN_DECLS ' >> [email protected]
433 #echo '#define __END_DECLS ' >> [email protected]
434
435 echo '#define ATL_NO_VTABLE ' >> [email protected]
436 echo '#define BEGIN_COM_MAP(a) ' >> [email protected]
437 echo '#define END_COM_MAP(a) ' >> [email protected]
438
439 echo '#define CHECKREADY if(!isReady()) return E_UNEXPECTED; ' >> [email protected]
440 echo '#define COM_DECL_READONLY_ENUM_AND_COLLECTION(a) ' >> [email protected]
441 echo '#define COM_INTERFACE_ENTRY(a) ' >> [email protected]
442 echo '#define COMGETTER(n) Get##n ' >> [email protected]
443 echo '#define COMSETTER(n) Set##n ' >> [email protected]
444 echo '#define ComSafeArrayIn(t,a) t a[] ' >> [email protected]
445 echo '#define ComSafeArrayOut(t,a) t * a[] ' >> [email protected]
446 echo '#define DECLARE_NOT_AGGREGATABLE(a) ' >> [email protected]
447 echo '#define DECLARE_PROTECT_FINAL_CONSTRUCT(a) ' >> [email protected]
448 echo '#define NS_DECL_ISUPPORTS ' >> [email protected]
449 echo '#define NS_IMETHOD NS_IMETHOD_(nsresult) ' >> [email protected]
450 echo '#define NS_IMETHOD_(type) type ' >> [email protected]
451 echo '#define PARSERS_EXPORT ' >> [email protected]
452 echo '#define SAX_EXPORT ' >> [email protected]
453 echo '#define STDMETHOD(a) NS_IMETHOD a ' >> [email protected]
454 echo '#define XERCES_CPP_NAMESPACE_BEGIN ' >> [email protected]
455 echo '#define XERCES_CPP_NAMESPACE_END ' >> [email protected]
456
457 echo '#define CTXAllSUFF(var) var##R3 ' >> [email protected]
458 echo '#define CTXSUFF(var) var##HC ' >> [email protected]
459 echo '#define OTHERCTXSUFF(var) var##GC ' >> [email protected]
460 echo '#define CTXALLMID(first, last) first##R3##last ' >> [email protected]
461 echo '#define CTXMID(first, last) first##HC##last ' >> [email protected]
462 echo '#define OTHERCTXMID(first, last) first##GC##last ' >> [email protected]
463 echo '#define CTXTYPE(GCType, R3Type, R0Type) R3Type ' >> [email protected]
464 echo '#define GCPTRTYPE(GCType) GCType ' >> [email protected]
465 echo '#define GCTYPE(GCType, HCType) GCType ' >> [email protected]
466 echo '#define HCPTRTYPE(HCType) HCType ' >> [email protected]
467 echo '#define R3R0PTRTYPE(HCType) HCType ' >> [email protected]
468 echo '#define R0PTRTYPE(R3Type) R3Type ' >> [email protected]
469 echo '#define R3PTRTYPE(R0Type) R0Type ' >> [email protected]
470 echo '#define RT_SRC_POS __FILE__, __LINE__, __PRETTY_FUNCTION__ ' >> [email protected]
471 echo '#define RT_SRC_POS_DECL const char *pszFile, unsigned iLine, const char *pszFunction ' >> [email protected]
472 echo '#define RT_SRC_POS_ARGS pszFile, iLine, pszFunction ' >> [email protected]
473 echo '#define RTCALL' >> [email protected]
474 echo '#define DECLINLINE(type) inline type ' >> [email protected]
475
476 echo '#define PDM_SRC_POS __FILE__, __LINE__, __PRETTY_FUNCTION__ ' >> [email protected]
477 echo '#define PDM_SRC_POS_DECL const char *pszFile, unsigned iLine, const char *pszFunction ' >> [email protected]
478 echo '#define PDM_SRC_POS_ARGS pszFile, iLine, pszFunction ' >> [email protected]
479 echo '#define PDMDEVINSINT_DECLARED 1' >> [email protected]
480 echo '#define VBOXCALL' >> [email protected]
481
482 $(SED) -e '/__cdecl/d' \
483 -e '/^ *# *define.*DECL/!d' \
484 -e '/DECLS/d' \
485 -e '/DECLARE_CLS_/d' \
486 -e '/_SRC_POS_DECL/d' \
487 -e '/declspec/d' \
488 -e '/__attribute__/d' \
489 -e 's/# */#/g' \
490 -e 's/ */ /g' \
491 -e '/(type) DECLEXPORT/d' \
492 -e '/ DECLEXPORT_CLASS/d' \
493 -e 's/ *VBOXCALL//' \
494 -e 's/ *RTCALL//' \
495 -e 's/(type) DECLIMPORT(type)/(type) type/' \
496 -e '/ DECLASM(type) type/d' \
497 -e '/define *DECL..CALLBACKMEMBER(type[^)]*) *RT/d' \
498 -e '/define *DECLINLINE(type)/d' \
499 \
500 --append [email protected] \
501 $(filter-out include/VBox/err.h, $(wildcard include/VBox/*.h)) \
502 include/iprt/cdefs.h
503 $(CAT_EXT) [email protected] | sort | $(SED_EXT) -e 's/$$/\n/' --output [email protected]
504 $(MV) -f [email protected] $@
505 $(RM) -f [email protected] [email protected] [email protected]
506 $(ECHO) "TODO: Merge ./vslick.h with your ~/.slickedit/x.y.z/unxcpp.h file."
507
508
509#
510# Add fetching of the tools to the 'up[date][2]' targets.
511#
512up update up2 update2::
513ifndef VBOX_OSE
514 $(MAKE) -C tools fetch
515else
516 $(MAKE) -C tools -f Makefile-ose.kmk fetch
517endif
518
519
520#
521# Build the additions, all of them.
522#
523# This is currently tailored (hardcoded) for the additions
524# build box. Can make it pretty and configurable later.
525#
526# The fetching must be done in serial fashion, while the building
527# should be more flexible wrt to -jN.
528#
529additions-fetch:
530 + $(KMK) -C tools fetch
531 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux
532# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2
533 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris
534 + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win
535
536
537additions-build: \
538 additions-build-win.x86 \
539 additions-build-solaris.x86 \
540 additions-build-os2.x86 \
541 additions-build-linux.x86
542
543VBOX_ADDITIONS_BUILD.x86 = VBOX_ONLY_ADDITIONS=1 VBOX_WITHOUT_ADDITIONS_ISO=1 \
544 KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
545 KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
546 all packing
547
548additions-build-win.x86:
549ifeq ($(KBUILD_TARGET),win)
550 + $(KMK) $(VBOX_ADDITIONS_BUILD.x86)
551else
552 rsync -av --delete --delete-excluded --exclude .svn/ --exclude out/ --exclude tinderclient.log . 192.168.27.5:/cygdrive/c/vbox
553 ssh [email protected] " cd /cygdrive/c/vbox && PATH_OUT_BASE=Z:/add/out tools/env.sh kmk $(VBOX_ADDITIONS_BUILD.x86)"
554# ssh [email protected] "cmd.exe /c cd /d z:\\add && set PATH_DEVTOOLS=c:\\vbox\\tools && c:\\vbox\\tools\\env.cmd -KBUILD c:\\vbox\\kBuild && set KMK_DONT_USE_NT_QUERY_INFORMATION_FILE=1 && set USER=vbox && kmk $(VBOX_ADDITIONS_BUILD.x86)"
555endif
556
557additions-build-solaris.x86:
558ifeq ($(KBUILD_TARGET),solaris)
559 + $(KMK) $(VBOX_ADDITIONS_BUILD.x86)
560else
561 ssh [email protected] " cd /mnt/vbox/add && ./tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) "
562endif
563
564additions-build-os2.x86:
565#ifeq ($(KBUILD_TARGET),os2)
566# + $(KMK) $(VBOX_ADDITIONS_BUILD.x86)
567#else
568# ssh [email protected] " cd /mnt/vbox/add && ./tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) "
569#endif
570
571additions-build-linux.x86:
572ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86)
573 + $(KMK) $(VBOX_ADDITIONS_BUILD.x86)
574else
575 ssh [email protected] " cd /mnt/vbox/add && ./tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.x86) "
576endif
577
578
579additions-packing:
580 + $(KMK) VBOX_ONLY_ADDITIONS=1 \
581 VBOX_WITH_ADDITIONS_ISO.freebsd.amd64= \
582 VBOX_WITH_ADDITIONS_ISO.freebsd.x86=1 \
583 VBOX_WITH_ADDITIONS_ISO.linux.amd64= \
584 VBOX_WITH_ADDITIONS_ISO.linux.x86=1 \
585 VBOX_WITH_ADDITIONS_ISO.solaris.amd64= \
586 VBOX_WITH_ADDITIONS_ISO.solaris.x86=1 \
587 VBOX_WITH_ADDITIONS_ISO.win.amd64= \
588 VBOX_WITH_ADDITIONS_ISO.win.x86=1 \
589 -C src/VBox/Additions \
590 $(VBOX_PATH_ADDITIONS)/VBoxGuestAdditions.iso
591
592
593#
594# Generate VirtualBox-OSE-x.x.x.tar.bz2 tarballs for distribution
595#
596# - includes kBuild
597# - must be executed on an OSE checkout
598#
599
600# the path where to store the tarball
601TARBALLPATH ?= $(shell cd $(PATH_ROOT)/..; pwd)
602#TARBALLPATH ?= $(abspath $(PATH_ROOT)/..) - this should also do the trick without spawning a shell.
603# the root directory inside the tarball
604TARBALLROOT ?= VirtualBox-$(VBOX_VERSION_STRING)
605# the name of the tarball file
606TARBALLNAME ?= VirtualBox-$(VBOX_VERSION_STRING).tar.bz2
607snapshot:
608 @$(call MSG_L1,Creating tarball $(TARBALLPATH)/$(TARBALLNAME))
609 @if [ -d "$(PATH_ROOT)/src/VBox/Devices/USB" ]; then echo; echo "Found USB stuff, refused to build OSE tarball!"; echo; exit 1; fi
610 $(QUIET)$(MKDIR) -p $(TARBALLPATH)
611 $(QUIET)$(RM) -f $(wildcard $(TARBALLPATH)/VirtualBox*)
612 $(QUIET)$(LN_SYMLINK) $(PATH_ROOT) $(TARBALLPATH)/$(TARBALLROOT)
613 $(QUIET)tar -cjh --owner 0 --group 0 --totals \
614 --exclude=.svn \
615 --exclude=$(TARBALLROOT)/out \
616 --exclude=$(TARBALLROOT)/env.sh \
617 --exclude=$(TARBALLROOT)/configure.log \
618 --exclude=$(TARBALLROOT)/AutoConfig.kmk \
619 --exclude=$(TARBALLROOT)/LocalConfig.kmk \
620 -C $(TARBALLPATH) \
621 -f $(TARBALLPATH)/$(TARBALLNAME) \
622 $(TARBALLROOT)
623 $(QUIET)$(RM) $(TARBALLPATH)/$(TARBALLROOT)
Note: See TracBrowser for help on using the repository browser.

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