VirtualBox

source: vbox/trunk/src/VBox/Main/Makefile.kmk@ 52546

Last change on this file since 52546 was 52546, checked in by vboxsync, 10 years ago

VBox/Main: #1909: Independent QMTranslator implementation. Some fixes to Utf8Str (added number of characters to be copied when created from CBSTR without terminating zero), added swap method to RTCString for fast exchange between strings. Makefile for VBoxSVC updated in order to compile with QMTranslatorImpl.cpp

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 40.2 KB
Line 
1# $Id: Makefile.kmk 52546 2014-09-01 08:58:51Z vboxsync $
2## @file
3# Makefile for the VBox Main module.
4#
5
6#
7# Copyright (C) 2004-2014 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18SUB_DEPTH = ../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21#
22# Make sure our Config.kmk is included.
23#
24ifndef VBOX_MAIN_CONFIG_KMK_INCLUDED
25 include $(PATH_SUB_CURRENT)/Config.kmk
26endif
27
28#
29# Include sub-makefile(s).
30#
31ifdef VBOX_WITH_WEBSERVICES
32 include $(PATH_SUB_CURRENT)/webservice/Makefile.kmk
33endif
34include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
35include $(PATH_SUB_CURRENT)/cbinding/Makefile.kmk
36
37
38#
39# Targets and globals (bit of a mess...)
40#
41VBOX_PATH_MAIN_SRC := $(PATH_SUB_CURRENT)
42
43ifdef VBOX_ONLY_SDK
44 # I'm Evil! Dr. Evil.
45 VBoxCOM_0_OUTDIR = $(PATH_TARGET)/VBoxCOM
46 BLDDIRS += $(VBoxCOM_0_OUTDIR) $(PATH_STAGE_BIN)/components
47 include $(KBUILD_PATH)/tools/$(VBOX_VCC_TOOL).kmk # For the idl /cpp statement.
48 include $(KBUILD_PATH)/sdks/$(VBOX_WINPSDK).kmk
49endif # !VBOX_ONLY_SDK
50
51
52# Construct VBOX_MAIN_DEFS
53## @todo eliminate or expand VBOX_MAIN_DEFS.
54VBOX_MAIN_DEFS =
55ifneq ($(KBUILD_TARGET),win)
56 ifndef VBOX_WITH_XPCOM
57 $(error "VBox: VBOX_WITH_XPCOM isn't defined")
58 endif
59 VBOX_MAIN_DEFS += VBOX_WITH_GENERIC_SESSION_WATCHER
60endif
61VBOX_MAIN_DEFS += \
62 $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) \
63 $(if $(VBOX_WITH_RAW_RING1),VBOX_WITH_RAW_RING1,) \
64 $(if $(VBOX_WITH_VMSVGA),VBOX_WITH_VMSVGA,) \
65 $(if $(VBOX_WITH_VMSVGA3D),VBOX_WITH_VMSVGA3D,) \
66 $(if $(VBOX_WITH_NETFLT),VBOX_WITH_NETFLT,) \
67 $(if $(VBOX_WITH_COPYTOGUEST),VBOX_WITH_COPYTOGUEST,) \
68 $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP,) \
69 $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH,) \
70 $(if $(VBOX_WITH_CROGL),VBOX_WITH_CROGL,) \
71 $(if $(VBOX_WITH_CRHGSMI),VBOX_WITH_CRHGSMI,) \
72 $(if $(VBOX_WITH_GUEST_PROPS),VBOX_WITH_GUEST_PROPS,) \
73 $(if $(VBOX_WITH_GUEST_PROPS_RDONLY_GUEST),VBOX_WITH_GUEST_PROPS_RDONLY_GUEST,) \
74 $(if $(VBOX_WITH_GUEST_CONTROL),VBOX_WITH_GUEST_CONTROL,) \
75 $(if $(VBOX_WITH_USB_CARDREADER),VBOX_WITH_USB_CARDREADER,) \
76 $(if $(VBOX_WITH_USB_CARDREADER_TEST),VBOX_WITH_USB_CARDREADER_TEST,) \
77 $(if $(VBOX_WITH_HOSTNETIF_API),VBOX_WITH_HOSTNETIF_API,) \
78
79# Unconditionally enable the new semaphore key generation code
80VBOX_MAIN_DEFS += VBOX_WITH_NEW_SYS_V_KEYGEN
81
82VBOX_IDL_FILE.MSCOM = $(VBOX_PATH_SDK)/bindings/mscom/idl/VirtualBox.idl
83VBOX_IDL_FILE.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl
84
85VBOX_IDL_TYPELIB.XPCOM = $(PATH_STAGE_BIN)/components/VirtualBox_XPCOM.xpt
86VBOX_IDL_HEADER.XPCOM = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
87
88# The MS COM specific stuff.
89if defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" == "win"
90 OTHERS += \
91 $(VBOX_IDL_FILE.MSCOM)
92 OTHER_CLEAN += \
93 $(VBOX_IDL_FILE.MSCOM)
94
95 INSTALLS += VBox-mscom-bindings-include VBox-mscom-bindings-lib
96 VBox-mscom-bindings-include_INST = $(INST_SDK)bindings/mscom/include/
97 VBox-mscom-bindings-include_MODE = a+r,u+w
98 VBox-mscom-bindings-include_SOURCES = $(VBoxCOM_0_OUTDIR)/VirtualBox.h
99 VBox-mscom-bindings-include_CLEAN = $(VBoxCOM_0_OUTDIR)/VirtualBox.h
100 VBox-mscom-bindings-lib_INST = $(INST_SDK)bindings/mscom/lib/
101 VBox-mscom-bindings-lib_MODE = a+r,u+w
102 VBox-mscom-bindings-lib_SOURCES = $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
103 $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
104 VBox-mscom-bindings-lib_CLEAN = $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
105 $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
106
107 BLDDIRS += $(VBOX_PATH_SDK)/bindings/mscom/idl
108endif
109
110# The XPCOM specific stuff.
111# if defined(VBOX_ONLY_SDK) || "$(KBUILD_TARGET)" != "win" -- does not build on Windows
112if "$(KBUILD_TARGET)" != "win"
113 OTHERS += $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM) $(VBOX_IDL_HEADER.XPCOM)
114 OTHER_CLEAN += \
115 $(VBOX_IDL_FILE.XPCOM) \
116 $(VBOX_IDL_HEADER.XPCOM) \
117 $(VBOX_IDL_TYPELIB.XPCOM)
118
119 INSTALLS += VBox-xpcom-bindings-lib
120 VBox-xpcom-bindings-lib_INST = $(INST_SDK)bindings/xpcom/lib/
121 VBox-xpcom-bindings-lib_MODE = a+r,u+w
122 VBox-xpcom-bindings-lib_SOURCES = $(VBoxCOM_0_OUTDIR)/VirtualBox_XPCOM_i.c=>VirtualBox_i.c
123 VBox-xpcom-bindings-lib_CLEAN = $(VBoxCOM_0_OUTDIR)/VirtualBox_XPCOM_i.c
124
125 VBOX_MAIN_PREREQS += $(VBOX_IDL_TYPELIB.XPCOM) $(VBOX_IDL_HEADER.XPCOM)
126 BLDDIRS += \
127 $(VBOX_PATH_SDK)/bindings/xpcom/idl \
128 $(VBOX_PATH_SDK)/bindings/xpcom/include
129endif # xpcom
130
131
132#
133# Strip documentation from source XIDL so that we don't get a full
134# recompile every time a comma in the documentation is changed.
135#
136$(VBOX_XIDL_FILE).ts +| $(VBOX_XIDL_FILE): \
137 $(VBOX_XIDL_FILE_SRC) \
138 $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl \
139 | $$(dir $$@)
140# $(CP) -fv $< $(VBOX_XIDL_FILE).ts
141 $(QUIET)$(VBOX_XSLTPROC) -o $(VBOX_XIDL_FILE).ts $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl $<
142 $(QUIET)$(CP) --changed -fv $(VBOX_XIDL_FILE).ts $(VBOX_XIDL_FILE)
143
144OTHER_CLEAN += $(VBOX_XIDL_FILE) $(VBOX_XIDL_FILE).ts
145
146#
147# The Main API documentation
148#
149VBOX_MAIN_DOC_DIR = $(VBOX_PATH_SDK)/docs
150BLDDIRS += $(VBOX_MAIN_DOC_DIR)
151
152$(PATH_TARGET)/docs.Main: \
153 $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main \
154 $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl \
155 $(VBOX_XIDL_FILE_SRC) \
156 | $(PATH_TARGET)/ \
157 $(VBOX_MAIN_DOC_DIR)/
158 $(call MSG_TOOL,xsltproc,doxygen input,$<,$@)
159 $(QUIET)$(RM) -f $(wildcard $(VBOX_MAIN_DOC_DIR)/html/*) $(PATH_TARGET)/docs.Main
160 $(QUIET)$(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_XIDL_FILE_SRC)
161 $(QUIET)$(REDIRECT) -E 'DOCDIR=$(VBOX_MAIN_DOC_DIR)' -E 'PATH_TARGET=$(PATH_TARGET)' -E 'PATH_CHM=$(subst /,\,$(VBOX_MAIN_DOC_DIR)/VirtualBoxAPI.chm)' \
162 -- doxygen $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main
163 $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) ">>>>>>>>>>>>>>>>>>>> Main.err: >>>>>>>>>>>>>>>>>>>>>>>>"
164 $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(CAT) "$(PATH_TARGET)/Main.err"
165 $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "<<<<<<<<<<<<<<<<<<<< Main.err <<<<<<<<<<<<<<<<<<<<<<<<<"
166 $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> **************************************************"
167 $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> Please fix above doxygen errors/warnings listed in"
168 $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> $(PATH_TARGET)/Main.err"
169 $(QUIET)$(TEST) -s "$(PATH_TARGET)/Main.err" -- $(ECHO_EXT) "===> **************************************************"
170 -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(VBOX_MAIN_DOC_DIR)/html/index.hhp)
171 $(APPEND) $(PATH_TARGET)/docs.Main
172# aliases
173docs.main docs.Main: $(PATH_TARGET)/docs.Main
174if !defined(VBOX_ONLY_DOCS) && defined(VBOX_WITH_ALL_DOXYGEN_TARGETS)
175docs: $(PATH_TARGET)/docs.Main
176else
177docs:
178endif
179
180
181ifndef VBOX_ONLY_SDK
182#
183# Generate library with API class wrappers from the XIDL file.
184#
185LIBRARIES += VBoxAPIWrap
186VBoxAPIWrap_TEMPLATE = VBoxMainLib
187VBoxAPIWrap_SOURCES = $(filter %.cpp,$(VBOX_MAIN_APIWRAPPER_GEN_FILES))
188VBoxAPIWrap_DEFS.win.x86 += _WIN32_WINNT=0x0500
189VBoxAPIWrap_DEFS.win.amd64 += _WIN32_WINNT=0x0510
190VBoxAPIWrap_INCS += \
191 include
192VBoxAPIWrap_CLEAN = \
193 $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.cpp) \
194 $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.h) \
195 $(VBoxAPIWrap_VBOX_RAWSRC)
196
197# Two VBox variables used here and/or in the rules generating wrappers.
198VBoxAPIWrap_VBOX_RAWSRC = \
199 $(VBoxAPIWrap_0_OUTDIR)/apiwrappers
200VBoxAPIWrap_VBOX_XSLT = \
201 $(VBOX_PATH_MAIN_SRC)/idl/apiwrap-server.xsl
202
203# This include file (generated at the bottom of this file), defines
204# VBOX_MAIN_APIWRAPPER_GEN_FILES and VBOX_MAIN_APIWRAPPER_GEN_HDRS.
205VBoxAPIWrap_VBOX_KMK_FILE = $(PATH_OUT)/vboxapiwrap.kmk
206include $(VBoxAPIWrap_VBOX_KMK_FILE)
207
208ifdef VBOX_WITH_32_ON_64_MAIN_API
209LIBRARIES += VBoxAPIWrap-x86
210VBoxAPIWrap-x86_TEMPLATE = VBoxMainLib-x86
211VBoxAPIWrap-x86_EXTENDS = VBoxAPIWrap
212endif
213
214endif # !VBOX_ONLY_SDK
215
216#
217# Some SDK bit.
218#
219INSTALLS += VBox-main-xidl
220VBox-main-xidl_INST = $(INST_SDK)bindings/
221VBox-main-xidl_MODE = a+r,u+w
222VBox-main-xidl_SOURCES = $(VBOX_XIDL_FILE_SRC)
223
224ifdef VBOX_WITH_PYTHON
225INSTALLS += VBox-python-glue
226VBox-python-glue_INST = $(INST_SDK)installer/vboxapi/
227VBox-python-glue_MODE = a+r,u+w
228VBox-python-glue_SOURCES = \
229 glue/vboxapi.py=>__init__.py \
230 $(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py
231VBox-python-glue_CLEAN = \
232 $(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py
233
234$$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py: \
235 $(VBOX_PATH_MAIN_SRC)/glue/constants-python.xsl \
236 $(VBOX_XIDL_FILE) \
237 | $$(dir $$@)
238 $(call MSG_TOOL,xsltproc,Python constants,$<,$@)
239 $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
240
241endif # VBOX_WITH_PYTHON
242
243ifndef VBOX_ONLY_SDK # Note this goes on for *very* long
244
245#
246# Generate SchemaDefs.h and SchemaDefs.cpp from XML Schema
247# These two files are used by both VBoxC and VBoxSVC.
248#
249BLDDIRS += $(PATH_TARGET)/Main
250
251testschemadefs: $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
252
253
254#
255# VBoxSVC executable
256#
257PROGRAMS += VBoxSVC
258VBoxSVC_TEMPLATE = VBOXMAINEXE
259VBoxSVC_DEFS = \
260 VBOX_MAIN_SETTINGS_ADDONS \
261 IN_VMM_STATIC \
262 $(VBOX_MAIN_DEFS) \
263 $(if $(VBOX_WITH_VBOXSDL),VBOX_WITH_VBOXSDL,) \
264 $(if $(VBOX_WITH_HEADLESS),VBOX_WITH_HEADLESS,) \
265 $(if $(VBOX_WITH_QTGUI),VBOX_WITH_QTGUI,) \
266 $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
267 $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA,) \
268 $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE,) \
269 $(if $(VBOX_WITH_WINMM),VBOX_WITH_WINMM,) \
270 $(if $(VBOX_WITH_SOLARIS_OSS),VBOX_WITH_SOLARIS_OSS,) \
271 $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000,) \
272 $(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO,) \
273 $(if $(VBOX_WITH_AHCI),VBOX_WITH_AHCI,) \
274 $(if $(VBOX_WITH_LSILOGIC),VBOX_WITH_LSILOGIC,) \
275 $(if $(VBOX_WITH_LINUX_COMPILER_H),VBOX_WITH_LINUX_COMPILER_H,) \
276 $(if $(VBOX_WITH_RESOURCE_USAGE_API),VBOX_WITH_RESOURCE_USAGE_API,) \
277 $(if $(VBOX_WITH_PDM_ASYNC_COMPLETION),VBOX_WITH_PDM_ASYNC_COMPLETION,) \
278 $(if $(VBOX_WITH_DBUS),$(if $(VBOX_USB_WITH_DBUS),VBOX_USB_WITH_DBUS,),) \
279 $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,) \
280 $(if $(VBOX_USB_WITH_INOTIFY),VBOX_USB_WITH_INOTIFY,) \
281 $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \
282 $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
283 $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \
284 $(if $(VBOX_WITH_S3),VBOX_WITH_S3,) \
285 $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) \
286 $(if $(VBOX_WITH_PDM_AUDIO_DRIVER),VBOX_WITH_PDM_AUDIO_DRIVER,) \
287 $(if $(VBOX_WITH_NAT_SERVICE),VBOX_WITH_NAT_SERVICE,) \
288 $(if $(VBOX_WITH_CROGL),VBOX_WITH_CROGL,) \
289 $(if $(VBOX_WITH_CRHGSMI),VBOX_WITH_CRHGSMI,)
290ifdef VBOX_WITH_USB
291 VBoxSVC_DEFS += \
292 VBOX_WITH_USB \
293 $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \
294 $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,)
295endif
296VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
297VBoxSVC_DEFS.win += _WIN32_WINNT=0x0510
298# Try to load and use libhal at runtime for probing removable media
299# VBoxSVC_DEFS.linux += VBOX_USE_LIBHAL
300VBoxSVC_DEFS.solaris += VBOX_USE_LIBHAL
301VBoxSVC_DEFS.freebsd += VBOX_USE_LIBHAL
302
303VBoxSVC_CXXFLAGS = $(filter-out -Wno-unused,$(TEMPLATE_VBOXMAINEXE_CXXFLAGS))
304
305VBoxSVC_INCS = \
306 include \
307 $(VBoxSVC_0_OUTDIR) \
308 $(dir $(VBOX_XML_SCHEMADEFS_H)) \
309 $(VBOX_MAIN_APIWRAPPER_INCS) \
310 .
311VBoxSVC_INCS.win = \
312 $(VBoxCOM_0_OUTDIR)
313ifdef VBOX_WITH_USB
314 VBoxSVC_INCS.os2 = \
315 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
316endif
317
318VBoxSVC_LIBS += \
319 $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) \
320 $(PATH_STAGE_LIB)/SSMStandalone$(VBOX_SUFF_LIB) \
321 $(LIB_DDU)
322
323VBoxSVC_SDKS = VBOX_LIBPNG VBOX_ZLIB VBOX_OPENSSL
324VBoxSVC_LIBS.solaris = \
325 adm \
326 nsl \
327 devinfo \
328 socket \
329 $(LIB_VMM)
330
331VBoxSVC_INTERMEDIATES = \
332 $(VBOX_MAIN_PREREQS) \
333 $(VBOX_XML_SCHEMADEFS_H) \
334 $(VBOX_AUTOGEN_EVENT_H) \
335 $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
336
337VBoxSVC_SOURCES = \
338 src-all/DisplayPNGUtil.cpp \
339 src-all/DisplayResampleImage.cpp \
340 src-all/DisplayUtils.cpp \
341 src-all/EventImpl.cpp \
342 src-all/Global.cpp \
343 src-all/HashedPw.cpp \
344 src-all/Logging.cpp \
345 src-all/PCIDeviceAttachmentImpl.cpp \
346 src-all/ProgressImpl.cpp \
347 src-all/QMTranslatorImpl.cpp \
348 src-all/SharedFolderImpl.cpp \
349 src-all/AutoCaller.cpp \
350 src-all/VirtualBoxBase.cpp \
351 src-all/VirtualBoxErrorInfoImpl.cpp \
352 $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
353 src-server/ApplianceImpl.cpp \
354 src-server/ApplianceImplExport.cpp \
355 src-server/ApplianceImplImport.cpp \
356 src-server/ApplianceImplIO.cpp \
357 src-server/AudioAdapterImpl.cpp \
358 src-server/BandwidthControlImpl.cpp \
359 src-server/BandwidthGroupImpl.cpp \
360 src-server/BIOSSettingsImpl.cpp \
361 src-server/ClientWatcher.cpp \
362 src-server/ClientToken.cpp \
363 src-server/DHCPServerImpl.cpp \
364 src-server/NetworkServiceRunner.cpp \
365 src-server/NATNetworkImpl.cpp \
366 src-server/GuestOSTypeImpl.cpp \
367 src-server/HostDnsService.cpp \
368 src-server/HostImpl.cpp \
369 src-server/HostNetworkInterfaceImpl.cpp \
370 src-server/HostPower.cpp \
371 src-server/HostVideoInputDeviceImpl.cpp \
372 src-server/MachineImpl.cpp \
373 src-server/MachineImplCloneVM.cpp \
374 src-server/Matching.cpp \
375 src-server/MediumAttachmentImpl.cpp \
376 src-server/MediumFormatImpl.cpp \
377 src-server/MediumImpl.cpp \
378 src-server/MediumLock.cpp \
379 src-server/NATEngineImpl.cpp \
380 src-server/NetworkAdapterImpl.cpp \
381 src-server/ParallelPortImpl.cpp \
382 src-server/ProgressProxyImpl.cpp \
383 src-server/SerialPortImpl.cpp \
384 src-server/SnapshotImpl.cpp \
385 src-server/StorageControllerImpl.cpp \
386 src-server/SystemPropertiesImpl.cpp \
387 src-server/TokenImpl.cpp \
388 src-server/USBControllerImpl.cpp \
389 src-server/USBDeviceFiltersImpl.cpp \
390 src-server/VFSExplorerImpl.cpp \
391 src-server/VirtualBoxImpl.cpp \
392 src-server/VRDEServerImpl.cpp \
393 src-server/generic/AutostartDb-generic.cpp \
394 xml/ovfreader.cpp \
395 xml/Settings.cpp \
396 $(VBOX_XML_SCHEMADEFS_CPP) \
397 $(VBOX_AUTOGEN_EVENT_CPP) \
398 $(if $(VBOX_WITH_XPCOM),src-server/xpcom/server.cpp,)
399
400ifn1of ($(KBUILD_TARGET), win darwin)
401 VBoxSVC_SOURCES += $(PATH_ROOT)/src/VBox/Devices/Network/slirp/resolv_conf_parser.c
402endif
403
404VBoxSVC_SOURCES.darwin = \
405 src-server/darwin/iokit.cpp \
406 src-server/darwin/HostPowerDarwin.cpp \
407 src-server/darwin/HostDnsServiceDarwin.cpp
408
409VBoxSVC_SOURCES.win = \
410 src-server/win/svcmain.cpp \
411 src-server/win/svchlp.cpp \
412 src-server/win/HostPowerWin.cpp \
413 src-server/win/VBoxSVC.rc \
414 src-server/win/VBoxComEvents.cpp \
415 src-server/win/HostDnsServiceWin.cpp
416
417VBoxSVC_SOURCES.linux = \
418 src-server/linux/HostHardwareLinux.cpp \
419 src-server/linux/HostDnsServiceLinux.cpp \
420 src-server/HostDnsServiceResolvConf.cpp
421
422VBoxSVC_SOURCES.solaris = \
423 src-server/linux/vbox-libhal.cpp \
424 src-server/solaris/DynLoadLibSolaris.cpp \
425 src-server/HostDnsServiceResolvConf.cpp
426
427VBoxSVC_SOURCES.os2 = \
428 src-server/HostDnsServiceResolvConf.cpp
429
430VBoxSVC_SOURCES.freebsd = \
431 src-server/freebsd/HostHardwareFreeBSD.cpp
432
433
434ifdef VBOX_WITH_USB
435 ifdef VBOX_WITH_SYSFS_BY_DEFAULT
436 src-server/linux/USBProxyServiceLinux.cpp_DEFS += VBOX_WITH_SYSFS_BY_DEFAULT
437 endif
438 VBoxSVC_SOURCES += \
439 src-server/USBDeviceFilterImpl.cpp \
440 src-server/USBProxyService.cpp \
441 src-server/HostUSBDeviceImpl.cpp
442 VBoxSVC_SOURCES.darwin += src-server/darwin/USBProxyServiceDarwin.cpp
443 VBoxSVC_SOURCES.linux += src-server/linux/USBProxyServiceLinux.cpp
444 VBoxSVC_SOURCES.linux += src-server/linux/USBGetDevices.cpp
445 VBoxSVC_SOURCES.os2 += src-server/os2/USBProxyServiceOs2.cpp
446 VBoxSVC_SOURCES.solaris += src-server/solaris/USBProxyServiceSolaris.cpp
447 VBoxSVC_SOURCES.win += src-server/win/USBProxyServiceWindows.cpp
448 VBoxSVC_SOURCES.freebsd += src-server/freebsd/USBProxyServiceFreeBSD.cpp
449endif
450
451ifdef VBOX_WITH_NETFLT
452 VBoxSVC_LIBS.win += \
453 $(PATH_STAGE_LIB)/WinNetConfig$(VBOX_SUFF_LIB) \
454 $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
455 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib \
456 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
457 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib
458endif
459VBoxSVC_LDFLAGS.darwin = -framework IOKit -framework SystemConfiguration
460
461ifdef VBOX_WITH_CROGL
462 VBoxSVC_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
463 VBoxSVC_LDFLAGS.darwin += -framework OpenGL
464endif
465
466ifeq ($(KBUILD_TYPE),debug)
467 VBoxSVC_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
468endif
469
470ifdef VBOX_WITH_RESOURCE_USAGE_API
471 VBoxSVC_SOURCES += \
472 src-server/PerformanceImpl.cpp \
473 src-server/Performance.cpp
474 VBoxSVC_SOURCES.darwin += src-server/darwin/PerformanceDarwin.cpp
475 VBoxSVC_SOURCES.freebsd += src-server/freebsd/PerformanceFreeBSD.cpp
476 VBoxSVC_SOURCES.linux += src-server/linux/PerformanceLinux.cpp
477 VBoxSVC_SOURCES.os2 += src-server/os2/PerformanceOs2.cpp
478 VBoxSVC_SOURCES.solaris += src-server/solaris/PerformanceSolaris.cpp
479 VBoxSVC_SOURCES.win += src-server/win/PerformanceWin.cpp
480 VBoxSVC_LDFLAGS.darwin += -lproc
481 VBoxSVC_LDFLAGS.solaris += -lkstat -lnvpair
482 VBoxSVC_LDFLAGS.win += psapi.lib powrprof.lib
483endif
484
485ifdef VBOX_WITH_HOSTNETIF_API
486 VBoxSVC_SOURCES.win += src-server/win/NetIf-win.cpp
487 VBoxSVC_SOURCES.linux += src-server/linux/NetIf-linux.cpp
488 VBoxSVC_SOURCES.os2 += src-server/os2/NetIf-os2.cpp
489 VBoxSVC_SOURCES.darwin += src-server/darwin/NetIf-darwin.cpp
490 VBoxSVC_SOURCES.solaris += src-server/solaris/NetIf-solaris.cpp
491 VBoxSVC_SOURCES.freebsd += src-server/freebsd/NetIf-freebsd.cpp
492 VBoxSVC_DEFS += VBOX_WITH_HOSTNETIF_API
493 if1of ($(KBUILD_TARGET), linux darwin solaris freebsd)
494 VBoxSVC_SOURCES += src-server/generic/NetIf-generic.cpp
495 endif
496endif
497
498src-server/win/VBoxSVC.rc_INCS = $(VBoxSVC_0_OUTDIR)
499src-server/win/VBoxSVC.rc_DEPS = $(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs $(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc
500src-server/win/VBoxSVC.rc_CLEAN = $(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs $(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc
501
502$$(VBoxSVC_0_OUTDIR)/VBoxSVC-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$(@D))
503 $(APPEND) -t $@ '1 ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
504
505$$(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$(@D))
506 $(VBOX_XSLTPROC) --stringparam Module VBoxSVC -o $@ $< $(VBOX_XIDL_FILE)
507
508## @todo r=klaus unfortunately we don't have xmllint everywhere, would be
509# good to check the validity for every VirtualBox.xidl change.
510#$(VBOX_XIDL_FILE).validated.ts: $(VBOX_XIDL_FILE_SRC)
511# xmllint --dtdvalid $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.dtd --noout $<
512# $(QUIET)$(CP) --changed -fv $< $(VBOX_XIDL_FILE).validated.ts
513#
514#OTHERS += $(VBOX_XIDL_FILE).validated.ts
515#OTHER_CLEAN += $(VBOX_XIDL_FILE).validated.ts
516
517testvalidxidl: $(VBOX_XIDL_FILE_SRC)
518 xmllint --dtdvalid $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.dtd --noout $<
519
520
521#
522# Embed some constraints from XML Schema file into VBoxSVC
523#
524VBOX_XML_SCHEMA = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings.xsd
525
526$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
527 $(call MSG_GENERATE,SchemaDefs,$@,$<)
528 $(QUIET)$(VBOX_XSLTPROC) --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
529
530$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
531 $(call MSG_GENERATE,SchemaDefs,$@,$<)
532 $(QUIET)$(VBOX_XSLTPROC) --stringparam mode define -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
533
534testvalidsettings: $(VBOX_XML_SCHEMA)
535 xmllint --schema $< --noout $(HOME)/.VirtualBox/VirtualBox.xml
536 xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.xml
537 xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.vbox
538 xmllint --schema $< --noout $(HOME)/VirtualBox\ VMs/*/*.vbox
539
540OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
541
542
543#
544# Generate some event stuff for VBoxSVC and VBoxC.
545#
546$(VBOX_AUTOGEN_EVENT_H): $(VBOX_PATH_MAIN_SRC)/idl/comimpl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
547 $(call MSG_TOOL,xsltproc,autogen events,$<,$@)
548 $(QUIET)$(VBOX_XSLTPROC) --stringparam G_kind VBoxEventHeader -o $@ $< $(VBOX_XIDL_FILE)
549
550$(VBOX_AUTOGEN_EVENT_CPP): $(VBOX_PATH_MAIN_SRC)/idl/comimpl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
551 $(call MSG_TOOL,xsltproc,autogen events,$<,$@)
552 $(QUIET)$(VBOX_XSLTPROC) --stringparam G_kind VBoxEvent -o $@ $< $(VBOX_XIDL_FILE)
553
554OTHER_CLEAN += $(VBOX_AUTOGEN_EVENT_H) $(VBOX_AUTOGEN_EVENT_CPP)
555
556ifdef VBOX_WITH_XPCOM
557#
558# VBoxSVCM - VBoxSVC wrapper module
559#
560DLLS += VBoxSVCM
561VBoxSVCM_TEMPLATE = VBOXMAINCOMP
562VBoxSVCM_DEFS = IN_RING3 $(VBOX_MAIN_DEFS)
563ifdef VBOX_WITH_HARDENING
564 VBoxSVCM_DEFS += VBOX_WITH_HARDENING
565endif
566VBoxSVCM_INCS = \
567 include \
568 $(VBoxC_0_OUTDIR) \
569 .
570VBoxSVCM_INTERMEDIATES = $(VBOX_MAIN_PREREQS)
571VBoxSVCM_SOURCES = \
572 src-server/xpcom/server_module.cpp
573VBoxSVCM_LDFLAGS.darwin = \
574 -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxSVCM.dylib \
575 -exported_symbols_list $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
576 ifeq ($(KBUILD_TARGET),darwin)
577VBoxSVCM_ORDERDEPS += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
578VBoxSVCM_CLEAN += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def
579$$(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def:
580 $(RM) -f $@
581 $(APPEND) $@ _NSGetModule
582 endif
583VBoxSVCM_INTERMEDIATES += $(VBOX_IDL_HEADER.XPCOM)
584
585 # 32-bit version of the module.
586 ifdef VBOX_WITH_32_ON_64_MAIN_API
587DLLS += VBoxSVCM-x86
588VBoxSVCM-x86_TEMPLATE = VBoxMainComp-x86
589VBoxSVCM-x86_EXTENDS = VBoxSVCM
590 endif
591
592endif # VBOX_WITH_XPCOM
593
594
595#
596# VBoxC module
597#
598DLLS += VBoxC
599VBoxC_TEMPLATE = VBOXMAINCOMP
600VBoxC_DEFS = \
601 IN_RING3 \
602 $(VBOX_MAIN_DEFS) \
603 VBOX_COM_INPROC \
604 $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
605 $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA,) \
606 $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE,) \
607 $(if $(VBOX_WITH_WINMM),VBOX_WITH_WINMM,) \
608 $(if $(VBOX_WITH_SOLARIS_OSS),VBOX_WITH_SOLARIS_OSS,) \
609 $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000,) \
610 $(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO,) \
611 $(if $(VBOX_WITH_EFI),VBOX_WITH_EFI,) \
612 $(if $(VBOX_WITH_PDM_ASYNC_COMPLETION),VBOX_WITH_PDM_ASYNC_COMPLETION,) \
613 $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \
614 $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \
615 $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \
616 $(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \
617 $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP,) \
618 $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH,) \
619 $(if $(VBOX_WITH_USB),VBOX_WITH_USB,) \
620 $(if-expr defined(VBOX_WITH_EHCI) && defined(VBOX_WITH_USB),VBOX_WITH_EHCI,) \
621 $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
622 $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) \
623 $(if $(VBOX_WITH_VPX),VBOX_WITH_VPX,) \
624 $(if $(VBOX_WITH_PDM_AUDIO_DRIVER),VBOX_WITH_PDM_AUDIO_DRIVER,)
625ifdef VBOX_WITH_CRHGSMI
626 VBoxC_DEFS += VBOX_WITH_CRHGSMI
627endif
628ifdef VBOX_WITH_NETSHAPER
629 VBoxC_DEFS += VBOX_WITH_NETSHAPER
630endif
631VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
632VBoxC_DEFS.win.x86 += _WIN32_WINNT=0x0500
633VBoxC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
634
635VBoxC_SDKS = VBOX_LIBPNG VBOX_ZLIB
636ifdef VBOX_WITH_VPX
637 VBoxC_SDKS += VBOX_VPX
638endif
639ifdef VBOX_WITH_OPENSSL_FIPS
640 VBoxC_SDKS += VBOX_OPENSSL2
641endif
642
643VBoxC_INCS = \
644 include \
645 $(VBoxC_0_OUTDIR) \
646 $(VBOX_MAIN_APIWRAPPER_INCS) \
647 $(dir $(VBOX_XML_SCHEMADEFS_H))
648VBoxC_INCS.win = \
649 $(VBoxCOM_0_OUTDIR) \
650 .
651
652VBoxC_LDFLAGS.darwin = \
653 -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxC.dylib \
654 -exported_symbols_list $(VBoxC_0_OUTDIR)/VBoxC.def \
655 -framework IOKit
656VBoxC_LDFLAGS.win += /MANIFEST \
657 /DELAYLOAD:user32.dll
658
659
660VBoxC_LIBS += \
661 $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) \
662 $(if-expr "$(LIB_VMM)" == "$(VBOX_LIB_VMM_LAZY)",$(LIB_REM),) \
663 $(VBOX_LIB_VMM_LAZY)
664VBoxC_LIBS.win += \
665 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
666ifdef VBOX_WITH_NETFLT
667 VBoxC_LIBS.win += \
668 $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
669 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib \
670 $(PATH_STAGE_LIB)/WinNetConfig$(VBOX_SUFF_LIB) \
671 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
672 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib
673 VBoxC_LDFLAGS.win += \
674 /DELAYLOAD:newdev.dll \
675 /DELAYLOAD:setupapi.dll \
676 /DELAYLOAD:iphlpapi.dll
677endif
678
679ifdef VBOX_WITH_CROGL
680 VBoxC_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
681 VBoxC_LDFLAGS.darwin += -framework OpenGL
682endif
683
684ifdef VBOX_WITH_DRAG_AND_DROP
685 VBoxC_LIBS += $(PATH_STAGE_LIB)/VBoxDnDHostR3Lib$(VBOX_SUFF_LIB)
686endif
687
688VBoxC_INTERMEDIATES = \
689 $(VBOX_MAIN_PREREQS) \
690 $(VBOX_XML_SCHEMADEFS_H) \
691 $(VBOX_AUTOGEN_EVENT_H) \
692 $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
693
694VBoxC_SOURCES = \
695 src-all/DisplayPNGUtil.cpp \
696 src-all/DisplayResampleImage.cpp \
697 src-all/DisplayUtils.cpp \
698 src-all/EventImpl.cpp \
699 src-all/Global.cpp \
700 src-all/HashedPw.cpp \
701 src-all/Logging.cpp \
702 src-all/PCIDeviceAttachmentImpl.cpp \
703 src-all/ProgressImpl.cpp \
704 src-all/SharedFolderImpl.cpp \
705 src-all/AutoCaller.cpp \
706 src-all/VirtualBoxBase.cpp \
707 src-all/VirtualBoxErrorInfoImpl.cpp \
708 $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
709 src-client/UsbWebcamInterface.cpp \
710 $(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \
711 src-client/Nvram.cpp \
712 src-client/AdditionsFacilityImpl.cpp \
713 src-client/BusAssignmentManager.cpp \
714 $(if $(VBOX_WITH_PCI_PASSTHROUGH),src-client/PCIRawDevImpl.cpp,) \
715 src-client/ClientTokenHolder.cpp \
716 src-client/ConsoleImpl.cpp \
717 src-client/ConsoleImpl2.cpp \
718 src-client/ConsoleImplTeleporter.cpp \
719 src-client/ConsoleVRDPServer.cpp \
720 src-client/DisplayImpl.cpp \
721 src-client/DisplaySourceBitmapImpl.cpp \
722 src-client/EmulatedUSBImpl.cpp \
723 src-client/GuestImpl.cpp \
724 src-client/GuestDirectoryImpl.cpp \
725 src-client/GuestFileImpl.cpp \
726 src-client/GuestFsObjInfoImpl.cpp \
727 src-client/GuestProcessImpl.cpp \
728 src-client/GuestSessionImpl.cpp \
729 src-client/GuestCtrlImpl.cpp \
730 src-client/KeyboardImpl.cpp \
731 src-client/MachineDebuggerImpl.cpp \
732 src-client/MouseImpl.cpp \
733 src-client/RemoteUSBDeviceImpl.cpp \
734 src-client/SessionImpl.cpp \
735 src-client/USBDeviceImpl.cpp \
736 src-client/VBoxDriversRegister.cpp \
737 src-client/VirtualBoxClientImpl.cpp \
738 src-client/VMMDevInterface.cpp \
739 $(VBOX_AUTOGEN_EVENT_CPP) \
740 $(VBOX_XML_SCHEMADEFS_CPP)
741ifdef VBOX_WITH_PDM_AUDIO_DRIVER
742 VBoxC_SOURCES += \
743 src-client/DrvAudioVRDE.cpp
744else
745 VBoxC_SOURCES += \
746 src-client/AudioSnifferInterface.cpp
747endif
748VBoxC_SOURCES.win = \
749 src-client/win/dllmain.cpp \
750 src-client/win/VBoxC.def \
751 src-client/win/VBoxC.rc
752ifdef VBOX_WITH_GUEST_CONTROL
753 VBoxC_SOURCES += \
754 src-client/GuestSessionImplTasks.cpp \
755 src-client/GuestCtrlPrivate.cpp
756endif
757ifdef VBOX_WITH_DRAG_AND_DROP
758 VBoxC_SOURCES += \
759 src-client/GuestDnDPrivate.cpp \
760 src-client/GuestDnDSourceImpl.cpp \
761 src-client/GuestDnDTargetImpl.cpp
762endif
763ifdef VBOX_WITH_XPCOM
764 VBoxC_SOURCES += \
765 src-client/xpcom/module.cpp
766endif
767ifdef VBOX_WITH_HGCM
768 VBoxC_SOURCES += \
769 src-client/HGCMObjects.cpp \
770 src-client/HGCMThread.cpp \
771 src-client/HGCM.cpp
772endif
773ifdef VBOX_WITH_USB
774 VBoxC_SOURCES += \
775 src-client/RemoteUSBBackend.cpp
776endif
777ifdef VBOX_WITH_VPX
778 VBoxC_SOURCES += \
779 src-client/EbmlWriter.cpp \
780 src-client/VideoRec.cpp
781endif
782
783ifeq ($(KBUILD_TARGET),darwin)
784VBoxC_ORDERDEPS += $(VBoxC_0_OUTDIR)/VBoxC.def
785VBoxC_CLEAN += $(VBoxC_0_OUTDIR)/VBoxC.def
786$$(VBoxC_0_OUTDIR)/VBoxC.def: $(MAKEFILE_CURRENT)
787 $(RM) -f $@
788 $(APPEND) $@ _NSGetModule
789 $(APPEND) $@ _VBoxDriversRegister
790endif
791
792src-client/ConsoleImpl.cpp_DEFS = \
793 $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",) \
794 $(if $(VBOX_WITH_OPENSSL_FIPS), VBOX_OPENSSL_FIPS,)
795
796
797src-client/win/VBoxC.rc_DEPS = $(VBoxC_0_OUTDIR)/VBoxC.rgs $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
798VBoxC_CLEAN.win += $(VBoxC_0_OUTDIR)/VBoxC.rgs
799
800$$(VBoxC_0_OUTDIR)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
801 $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)
802
803ifdef VBOX_WITH_32_ON_64_MAIN_API
804 #
805 # 32-bit VBox API Client In-Process module.
806 #
807 # This is currently just a 32-bit version of VBoxC. It might be desirable to
808 # split up VBoxC into a simple client and a VM client part later, in which
809 # case this module will be a simple client.
810 #
811 # Note! One important thing is that the typelib for this DLL must be build
812 # with the /env win32 switch and the VBoxC typelib with /env amd64, if
813 # not they will overwrite each others typelib module entry.
814 #
815 DLLS += VBoxClient-x86
816 VBoxClient-x86_TEMPLATE = VBoxMainComp-x86
817 VBoxClient-x86_EXTENDS = VBoxC
818 VBoxClient-x86_DEFS = VBOX_COM_INPROC_API_CLIENT $(VBoxC_DEFS)
819 VBoxClient-x86_INST.win = $(INST_DLL)x86/
820 VBoxClient-x86_INCS.win = \
821 $(VBoxClient-x86_0_OUTDIR) \
822 $(VBoxCOM-x86_0_OUTDIR) \
823 $(VBoxC_INCS.win)
824 VBoxClient-x86_SOURCES = \
825 src-all/EventImpl.cpp \
826 src-all/Global.cpp \
827 src-all/AutoCaller.cpp \
828 src-all/VirtualBoxBase.cpp \
829 src-all/VirtualBoxErrorInfoImpl.cpp \
830 src-client/ClientTokenHolder.cpp \
831 src-client/SessionImpl.cpp \
832 src-client/VirtualBoxClientImpl.cpp \
833 $(VBOX_AUTOGEN_EVENT_CPP) \
834 $(VBOX_XML_SCHEMADEFS_CPP)
835 VBoxClient-x86_SOURCES.win = \
836 src-client/win/dllmain.cpp \
837 src-client/win/VBoxClient-x86.def \
838 src-client/win/VBoxClient-x86.rc
839 ifdef VBOX_WITH_XPCOM
840 VBoxClient-x86_SOURCES += \
841 src-client/xpcom/module.cpp
842 endif
843 VBoxClient-x86_LIBS = \
844 $(PATH_STAGE_LIB)/VBoxAPIWrap-x86$(VBOX_SUFF_LIB)
845 VBoxClient-x86_LIBS.win = $(NO_SUCH_VARIABLE)
846 VBoxClient-x86_LIBS.win.x86 = $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/delayimp.lib
847 VBoxClient-x86_CLEAN.win += $(VBoxClient-x86_0_OUTDIR)/VBoxClient-x86.rgs
848 src-client/win/VBoxClient-x86.rc_DEPS = \
849 $(VBoxClient-x86_0_OUTDIR)/VBoxClient-x86.rgs \
850 $(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb
851
852 $$(VBoxClient-x86_0_OUTDIR)/VBoxClient-x86.rgs: \
853 $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl \
854 $(VBOX_XIDL_FILE) | $$(dir $$@)
855 $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)
856
857endif
858
859
860#
861# VBoxCOM - COM Abstraction Layer library
862#
863LIBRARIES += VBoxCOM
864VBoxCOM_TEMPLATE = VBoxMainLib
865VBoxCOM_INTERMEDIATES = $(VBOX_MAIN_PREREQS) \
866 $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
867VBoxCOM_SOURCES = \
868 glue/com.cpp \
869 glue/initterm.cpp \
870 glue/string.cpp \
871 glue/AutoLock.cpp \
872 glue/EventQueue.cpp \
873 glue/NativeEventQueue.cpp \
874 glue/ErrorInfo.cpp \
875 glue/errorprint.cpp
876VBoxCOM_INCS += $(VBOX_MAIN_APIWRAPPER_INCS) \
877 include
878ifeq ($(KBUILD_TARGET),win)
879 VBoxCOM_DEFS.x86 = _WIN32_WINNT=0x0500
880 VBoxCOM_DEFS.amd64 = _WIN32_WINNT=0x0510
881 VBoxCOM_SOURCES += \
882 $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c
883else # !win
884 VBoxCOM_SOURCES += \
885 $(VBoxCOM_0_OUTDIR)/VirtualBox_XPCOM_i.c \
886 glue/xpcom/helpers.cpp
887endif # !win
888
889glue/com.cpp_DEFS = \
890 $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",) \
891 KBUILD_TYPE=\"$(KBUILD_TYPE)\"
892
893# 32-bit version of VBoxCOM.
894ifdef VBOX_WITH_32_ON_64_MAIN_API
895 LIBRARIES += VBoxCOM-x86
896 VBoxCOM-x86_TEMPLATE = VBoxMainLib-x86
897 VBoxCOM-x86_EXTENDS = VBoxCOM
898endif
899
900
901
902#
903# The VBoxExtPackHelperApp.
904#
905ifdef VBOX_WITH_EXTPACK
906 PROGRAMS += VBoxExtPackHelperApp
907 VBoxExtPackHelperApp_TEMPLATE = VBoxR3SetUidToRoot
908 VBoxExtPackHelperApp_LDFLAGS.darwin = -framework Security
909 VBoxExtPackHelperApp_LDFLAGS.win = /SUBSYSTEM:windows
910 VBoxExtPackHelperApp_SOURCES = \
911 src-helper-apps/VBoxExtPackHelperApp.cpp \
912 src-all/ExtPackUtil.cpp
913 VBoxExtPackHelperApp_LIBS = \
914 $(LIB_RUNTIME)
915endif # VBOX_WITH_EXTPACK
916
917#
918# VolInfo
919#
920ifdef VBOX_WITH_DEVMAPPER
921 PROGRAMS.linux += VBoxVolInfo
922 VBoxVolInfo_TEMPLATE = VBoxR3SetUidToRoot
923 VBoxVolInfo_SOURCES = src-helper-apps/VBoxVolInfo.cpp
924 VBoxVolInfo_LIBS = devmapper
925endif
926
927endif # !VBOX_ONLY_SDK (the ifndef is far above)
928
929
930#
931# Installs com related thing(s) to bin.
932#
933INSTALLS.win += VBoxMain-com-inst
934VBoxMain-com-inst_INST = $(INST_BIN)
935VBoxMain-com-inst_MODE = a+r,u+w
936VBoxMain-com-inst_SOURCES = src-all/win/comregister.cmd
937
938
939if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "linux"
940 #
941 # Installs linux/hardening related things to components.
942 #
943 INSTALLS.linux += VBoxMain-hardening-inst
944 VBoxMain-hardening-inst_INST = $(INST_BIN)components/
945 VBoxMain-hardening-inst_SYMLINKS = \
946 VBoxDDU.so=>../VBoxDDU.so \
947 VBoxREM.so=>../VBoxREM.so \
948 VBoxRT.so=>../VBoxRT.so \
949 VBoxVMM.so=>../VBoxVMM.so \
950 VBoxXPCOM.so=>../VBoxXPCOM.so
951endif
952
953
954if defined(VBOX_WITH_MIDL_PROXY_STUB) && "$(KBUILD_TARGET)" == "win"
955 #
956 # Experimental COM proxy + stub DLL.
957 #
958 DLLS += VBoxProxyStub
959 VBoxProxyStub_TEMPLATE = VBOXMAINCOMP
960 VBoxProxyStub_DEFS = REGISTER_PROXY_DLL
961 VBoxProxyStub_DEFS.win.x86 = WIN32
962 VBoxProxyStub_SOURCES = \
963 $(VBoxCOM_0_OUTDIR)/dlldata.c \
964 $(VBoxCOM_0_OUTDIR)/VirtualBox_p.c \
965 $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
966 src-all/win/VBoxProxyStub.def
967
968 ifdef VBOX_WITH_32_ON_64_MAIN_API
969 DLLS += VBoxProxyStub-x86
970 VBoxProxyStub-x86_TEMPLATE = VBoxMainComp-x86
971 VBoxProxyStub-x86_DEFS = REGISTER_PROXY_DLL
972 VBoxProxyStub-x86_DEFS.win.x86 = WIN32
973 VBoxProxyStub-x86_SOURCES = \
974 $(VBoxCOM-x86_0_OUTDIR)/dlldata.c \
975 $(VBoxCOM-x86_0_OUTDIR)/VirtualBox_p.c \
976 $(VBoxCOM-x86_0_OUTDIR)/VirtualBox_i.c \
977 src-all/win/VBoxProxyStub.def
978 endif
979endif
980
981
982
983# generate rules
984include $(FILE_KBUILD_SUB_FOOTER)
985
986
987
988#
989# Additions rules.
990#
991
992## @todo this hack ain't cutting it any longer. (the file name is abspath'ed since ages now.)
993glue/xpcom/helpers.cpp: $(VBOX_IDL_TYPELIB.XPCOM)
994
995$(VBOX_IDL_FILE.XPCOM): $(VBOX_PATH_MAIN_SRC)/idl/xpidl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
996 $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
997 $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
998
999$(VBOX_IDL_TYPELIB.XPCOM): $(VBOX_IDL_FILE.XPCOM) | $$(dir $$@) $(VBOX_XPIDL)
1000 $(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
1001 $(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m typelib -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
1002 $(CHMOD) 0644 $@
1003## @todo ^^^^^^^^^^^^ fix horrible hack
1004
1005$(VBOX_IDL_HEADER.XPCOM): $(VBOX_IDL_FILE.XPCOM) | $$(dir $$@) $(VBOX_XPIDL)
1006 $(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
1007 $(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m header -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
1008
1009$(VBOX_IDL_FILE.MSCOM): $(VBOX_PATH_MAIN_SRC)/idl/midl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
1010 $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
1011 $(QUIET)$(VBOX_XSLTPROC) -o $@ $(if $(VBOX_WITH_MIDL_PROXY_STUB),-stringparam g_fGenProxy yes,) $< $(VBOX_XIDL_FILE)
1012
1013# Aliases for testing purposes.
1014ifdef VBOX_WITH_XPCOM
1015testidl: $(VBOX_IDL_FILE.XPCOM) $(VBOX_IDL_TYPELIB.XPCOM) $(VBoxCOM_0_OUTDIR)/VirtualBox_XPCOM_i.c
1016testidlhdr: $(VBOX_IDL_HEADER.XPCOM)
1017else
1018testidl: $(VBOX_IDL_FILE.MSCOM) $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
1019 $(if $(VBOX_WITH_32_ON_64_MAIN_API),$(VBoxCOM-x86_0_OUTDIR)/VirtualBox_i.c,)
1020endif
1021
1022
1023$(VBoxCOM_0_OUTDIR)/VirtualBox_XPCOM_i.c: $(VBOX_PATH_MAIN_SRC)/idl/xpidl_iid.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
1024 $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
1025 $(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
1026
1027$(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
1028+ $(VBoxCOM_0_OUTDIR)/VirtualBox.h \
1029$(if $(VBOX_WITH_MIDL_PROXY_STUB),+ $(VBoxCOM_0_OUTDIR)/VirtualBox_p.c + $(VBoxCOM_0_OUTDIR)/dlldata.c,) \
1030+ $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
1031 $(VBOX_WIN_MIDL) /nologo \
1032 $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64" && "$(KBUILD_HOST)" == "win",/env amd64,/env win32) \
1033 /robust /protocol all /target NT51 \
1034 /out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM_0_OUTDIR)) \
1035 /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
1036 /I $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_SDK_$(VBOX_WINPSDK)_INC)) \
1037 /I idl \
1038 $(call VBOX_FN_MAKE_WIN_PATH,$<)
1039
1040$(VBoxCOM-x86_0_OUTDIR)/VirtualBox_i.c \
1041+ $(VBoxCOM-x86_0_OUTDIR)/VirtualBox.h \
1042$(if $(VBOX_WITH_MIDL_PROXY_STUB),+ $(VBoxCOM-x86_0_OUTDIR)/VirtualBox_p.c + $(VBoxCOM-x86_0_OUTDIR)/dlldata.c,) \
1043+ $(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
1044 $(VBOX_WIN_MIDL) /nologo /env win32 /target NT51 \
1045 /robust /protocol all \
1046 /out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)) \
1047 /tlb $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb) \
1048 /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL_STEM)X86_CC))) \
1049 /I $(call VBOX_FN_MAKE_WIN_PATH,$(PATH_SDK_$(VBOX_WINPSDK)_INC)) \
1050 /I idl \
1051 $(call VBOX_FN_MAKE_WIN_PATH,$<)
1052
1053#
1054# Translation stuff
1055#
1056VBoxSVC_VBOX_HEADERS = \
1057 include/collection.h \
1058 include/MachineImpl.h
1059VBoxSVC_VBOX_TRANSLATIONS = \
1060 nls/VBoxSVC_de.ts
1061
1062VBoxC_VBOX_HEADERS = \
1063 include/ConsoleImpl.h
1064
1065VBoxC_VBOX_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
1066VBoxC_VBOX_HEADERS += $(VBOX_MAIN_APIWRAPPER_INCS)
1067
1068VBoxC_VBOX_TRANSLATIONS = \
1069 nls/VBoxC_de.ts
1070
1071ifdef VBOX_WITH_JMSCOM
1072
1073#
1074# Java glue JAR files
1075#
1076VBOX_JMSCOM_JAR = $(VBoxJMscom-inst-jar_0_OUTDIR)/vboxjmscom.jar
1077VBOX_JMSCOM_TARGET := $(PATH_TARGET)/vboxjmscom-gen
1078VBOX_JMSCOM_GEN = $(VBOX_JMSCOM_TARGET)/jmscomgen
1079VBOX_JMSCOM_JDEST := $(VBOX_JMSCOM_TARGET)/jdest
1080VBOX_GLUE_XSLT_DIR := $(PATH_ROOT)/src/VBox/Main/glue
1081VBOX_JACOB_DIR := $(PATH_ROOT)/src/libs/jacob-1.17
1082
1083INSTALLS += VBoxJMscom-inst-jar
1084VBoxJMscom-inst-jar_INST = $(INST_SDK)bindings/mscom/java/
1085VBoxJMscom-inst-jar_MODE = a+r,u+w
1086VBoxJMscom-inst-jar_SOURCES = \
1087 $(VBOX_JMSCOM_JAR)
1088VBoxJMscom-inst-jar_CLEAN = \
1089 $(VBOX_JMSCOM_JAR) \
1090 $(VBOX_JMSCOM_GEN)/jmscomglue.list \
1091 $(wildcard \
1092 $(VBOX_JMSCOM_GEN)/java/*.java \
1093 $(VBOX_JMSCOM_JDEST)/*.class \
1094 $(VBOX_JMSCOM_JDEST)/*/*.class \
1095 $(VBOX_JMSCOM_JDEST)/*/*/*.class \
1096 $(VBOX_JMSCOM_JDEST)/*/*/*/*.class \
1097 )
1098VBoxJMscom-inst-jar_BLDDIRS += $(VBOX_JMSCOM_GEN)/java
1099
1100$(VBOX_JMSCOM_GEN)/jmscomglue.list: \
1101 $(VBOX_XIDL_FILE) \
1102 $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl \
1103 $(VBOX_FILESPLIT) \
1104 | $(VBOX_JMSCOM_GEN)/java/
1105 $(call MSG_L1,Generating Java MSCOM glue files from XIDL)
1106 $(QUIET)$(RM) -f $(wildcard $(VBOX_JMSCOM_GEN)/java/*.java)
1107 $(QUIET)$(VBOX_XSLTPROC) \
1108 --stringparam filelistonly "" \
1109 --stringparam G_vboxApiSuffix $(VBOX_API_SUFFIX) \
1110 --stringparam G_vboxGlueStyle mscom \
1111 --stringparam G_vboxDirPrefix "" \
1112 -o $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl $<
1113 $(QUIET)$(VBOX_FILESPLIT) $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_JMSCOM_GEN)/java
1114 $(QUIET)echo $(VBOX_JMSCOM_GEN)/java/*.java > $@
1115
1116$$(VBOX_JMSCOM_JAR): $(VBOX_JMSCOM_GEN)/jmscomglue.list | $$(dir $$@)
1117 $(call MSG_TOOL,javac,$(notdir $@),jmscomglue.list,)
1118 $(QUIET)$(RM) -Rf $(VBOX_JMSCOM_JDEST)
1119 $(QUIET)$(MKDIR) -p $(VBOX_JMSCOM_JDEST)
1120 $(call MSG_TOOL,javac,$(notdir $@),...,)
1121 $(QUIET)$(VBOX_JAVAC) $(VBOX_JAVAC_OPTS) @$(VBOX_JMSCOM_GEN)/jmscomglue.list \
1122 -d $(VBOX_JMSCOM_JDEST) -classpath "$(VBOX_JMSCOM_JDEST)$(VBOX_SEP)$(VBOX_JACOB_DIR)/jacob.jar"
1123 $(call MSG_LINK,$(notdir $@),$@)
1124 $(QUIET)$(VBOX_JAR) cf $@ -C $(VBOX_JMSCOM_JDEST) .
1125
1126## @todo compile TestVBox.java (see below) to have sanity checking
1127
1128endif # VBOX_WITH_JMSCOM
1129
1130#
1131# Install Java glue sample code.
1132#
1133INSTALLS += javagluesample
1134javagluesample_INST = $(INST_SDK)bindings/glue/java/
1135javagluesample_MODE = a+r,u+w
1136javagluesample_SOURCES = \
1137 $(VBOX_PATH_MAIN_SRC)/glue/tests/TestVBox.java=>TestVBox.java \
1138 $(VBOX_PATH_MAIN_SRC)/glue/tests/Makefile=>Makefile
1139
1140# Moved those rules to the end so that VBoxAPIWrap_0_OUTDIR can be expanded without $$ trickery.
1141$(VBoxAPIWrap_VBOX_RAWSRC) \
1142+| $(VBOX_MAIN_APIWRAPPER_GEN_FILES): \
1143 $(VBOX_XIDL_FILE) \
1144 $(VBoxAPIWrap_VBOX_XSLT) \
1145 $(VBOX_FILESPLIT) \
1146 | $$(dir $$@)
1147 $(call MSG_L1,Generating C++ Server API wrapper files from XIDL)
1148 $(QUIET)$(RM) -f $(filter-out $(VBOX_MAIN_APIWRAPPER_GEN_FILES),$(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.cpp) $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.h))
1149 $(QUIET)$(VBOX_XSLTPROC) --stringparam filelistonly "" -o $@ $(VBoxAPIWrap_VBOX_XSLT) $<
1150 $(QUIET)$(VBOX_FILESPLIT) $@ $(VBoxAPIWrap_0_OUTDIR)
1151
1152$(VBoxAPIWrap_VBOX_KMK_FILE).ts +| $(VBoxAPIWrap_VBOX_KMK_FILE): $(VBOX_XIDL_FILE) $(VBoxAPIWrap_VBOX_XSLT) $(VBOX_PATH_MAIN_SRC)/Makefile.kmk
1153 $(call MSG_GENERATE,,$(VBoxAPIWrap_VBOX_KMK_FILE))
1154 $(QUIET)$(RM) -f $@
1155 $(QUIET)$(MKDIR) -p $(@D)
1156 $(QUIET)$(VBOX_XSLTPROC) --stringparam filelistonly VBOX_MAIN_APIWRAPPER_GEN_FILES -o $@ $(VBoxAPIWrap_VBOX_XSLT) $<
1157 $(QUIET)$(APPEND) -n "$@" "" "" \
1158 'VBOX_MAIN_APIWRAPPER_GEN_FILES := $$(addprefix $$(VBOX_MAIN_APIWRAPPER_DIR)/,$$(VBOX_MAIN_APIWRAPPER_GEN_FILES))' \
1159 'VBOX_MAIN_APIWRAPPER_GEN_HDRS = $$(filter %.h,$$(VBOX_MAIN_APIWRAPPER_GEN_FILES))'
1160 $(QUIET)$(CP) --changed -fv $@ $(VBoxAPIWrap_VBOX_KMK_FILE)
1161
1162updatenls::
1163 $(VBOX_LUPDATE) $(VBoxSVC_SOURCES) $(VBoxSVC_VBOX_HEADERS) -ts $(VBoxSVC_VBOX_TRANSLATIONS)
1164 $(VBOX_LUPDATE) $(VBoxC_SOURCES) $(VBoxC_VBOX_HEADERS) -ts $(VBoxC_VBOX_TRANSLATIONS)
1165
1166testconverter:: $(VBOX_USER_HOME)/VirtualBox.xml
1167 $(call MSG_TOOL,xsltproc,Test Settings Converter,$<,$(VBOX_USER_HOME)/VirtualBox.xml.test)
1168 $(QUIET)$(VBOX_XSLTPROC) -o $(VBOX_USER_HOME)/VirtualBox.xml.test xml/SettingsConverter.xsl $<
1169
1170testconverter2:: $(VBOX_USER_HOME)/Machines/dos/dos.xml
1171 $(call MSG_TOOL,xsltproc,Test Settings Converter,$<,$<.test)
1172 $(QUIET)$(VBOX_XSLTPROC) -o $<.test xml/SettingsConverter.xsl $<
1173
Note: See TracBrowser for help on using the repository browser.

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