VirtualBox

source: vbox/trunk/src/VBox/Main/Makefile@ 1681

Last change on this file since 1681 was 1681, checked in by vboxsync, 18 years ago

Implemented HGCM save/load state

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 14.9 KB
Line 
1#
2# Makefile for the VBox Main module.
3#
4
5#
6# Copyright (C) 2006 InnoTek Systemberatung GmbH
7#
8# This file is part of VirtualBox Open Source Edition (OSE), as
9# available from http://www.virtualbox.org. This file is free software;
10# you can redistribute it and/or modify it under the terms of the GNU
11# General Public License as published by the Free Software Foundation,
12# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
13# distribution. VirtualBox OSE is distributed in the hope that it will
14# be useful, but WITHOUT ANY WARRANTY of any kind.
15#
16# If you received this file as part of a commercial VirtualBox
17# distribution, then only the terms of your commercial VirtualBox
18# license agreement apply instead of the previous paragraph.
19#
20
21DEPTH = ../../..
22include $(PATH_KBUILD)/header.kmk
23
24DEFS += HGCMSS
25
26ifdef VRDP_MC
27DEFS += VRDP_MC
28endif
29
30SUBDIRS_AFTER = testcase
31# webservice
32
33LIBRARIES =
34DLLS = VBoxXML VBoxC
35PROGRAMS = VBoxSVC
36ifeq ($(BUILD_TARGET),win)
37 LIBRARIES = VBoxCOM
38else
39 ifndef VBOX_WITH_XPCOM
40 $(error "VBox: VBOX_WITH_XPCOM isn't defined")
41 endif
42 DLLS += VBoxSVCM
43 LIBRARIES = VBoxXPCOM
44 DEFS += VBOX_WITH_XPCOM
45 DEFS += VBOX_WITH_SYS_V_IPC_SESSION_WATCHER
46 DEFS += VBOX_WITH_UNIXY_TAP_NETWORKING
47endif
48#PROGRAMS = tstCFGLdr
49
50ifeq ($(BUILD_TARGET),win)
51 OTHERS = $(PATH_BIN)/comregister.cmd
52 IDLFILE = $(VBOX_PATH_SDK)/idl/VirtualBox.idl
53 OTHER_CLEAN = \
54 $(PATH_BIN)/comregister.cmd \
55 $(VBOX_PATH_SDK)/include/VirtualBox.h \
56 $(IDLFILE) \
57 $(VBOX_PATH_SDK)/lib/VirtualBox.tlb \
58 $(VBOX_PATH_SDK)/lib/VirtualBox_i.c \
59 $(PATH_VBoxCOM)/VirtualBox.h \
60 $(PATH_VBoxCOM)/VirtualBox_i.c \
61 $(PATH_VBoxCOM)/VirtualBox.tlb
62else
63 INSTALLS = xpcom-components
64 IDLFILE = $(VBOX_PATH_SDK)/idl/VirtualBox_XPCOM.idl
65 ifeq ($(BUILD_TARGET),linux)
66 IDLTYPELIB = $(PATH_BIN)/VirtualBox_XPCOM.xpt
67 else
68 IDLTYPELIB = $(PATH_BIN)/components/VirtualBox_XPCOM.xpt
69 endif
70 IDLHEADER = $(VBOX_PATH_SDK)/include/VirtualBox_XPCOM.h
71 OTHERS = $(IDLTYPELIB)
72 OTHER_CLEAN = \
73 $(IDLFILE) \
74 $(IDLHEADER) \
75 $(IDLTYPELIB)
76
77endif
78
79
80
81#
82# The Main API documentation
83#
84docs: $(PATH_TARGET)/docs.Main
85
86$(PATH_TARGET)/docs.Main: \
87 Doxyfile.Main \
88 idl/doxygen.xsl \
89 idl/VirtualBox.xidl \
90 | $(call DIRDEP, $(PATH_TARGET)) \
91 $(call DIRDEP, $(PATH_OUT)/docs/Main)
92 $(RM) -f $(wildcard $(PATH_OUT)/docs/Main/html/*)
93 $(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl idl/doxygen.xsl idl/VirtualBox.xidl
94 PATH_OUT="$(PATH_OUT)" PATH_TARGET="$(PATH_TARGET)" PATH_CHM="$(subst /,\\,$(PATH_BIN)/VirtualBoxAPI.chm)" doxygen Doxyfile.Main
95 -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe $(subst /,\\,$(PATH_OUT)/docs/Main/html/index.hhp)
96 $(APPEND) $(PATH_TARGET)/docs.Main
97
98$(call DIRDEP, $(PATH_OUT)/docs/Main):
99 $(MKDIR) -p $@
100
101
102#
103# VBoxSVC executable
104#
105VBoxSVC_TEMPLATE = VBOXMAINEXE
106VBoxSVC_DEFS = CFGLDR_HAVE_COM IN_CFGLDR_R3
107ifdef VBOX_WITH_VRDP
108VBoxSVC_DEFS += VBOX_VRDP IN_VRDP_R3
109endif
110ifdef VBOX_WITH_HGCM
111VBoxSVC_DEFS += VBOX_HGCM
112endif
113ifdef VBOX_MAIN_RELEASE_LOG
114VBoxSVC_DEFS += VBOX_MAIN_RELEASE_LOG LOG_ENABLED
115endif
116ifdef VBOX_WITH_USB
117VBoxSVC_DEFS += VBOX_WITH_USB
118endif
119ifdef VBOX_WITH_ALSA
120VBoxSVC_DEFS += VBOX_WITH_ALSA
121endif
122ifdef VBOX_WITH_WINMM
123VBoxSVC_DEFS += VBOX_WITH_WINMM
124endif
125ifdef VBOX_WITHOUT_LINUX_COMPILER_H
126VBoxSVC_DEFS += VBOX_WITHOUT_LINUX_COMPILER_H
127endif
128VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
129VBoxSVC_DEFS.win.x86 += _WIN32_WINNT=0x0500
130VBoxSVC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
131VBoxSVC_INCS = \
132 include \
133 $(PATH_VBoxSVC) \
134 $(PATH_VBoxCOM)
135ifdef VBOX_WITH_XPCOM
136 VBoxSVC_LIBS += \
137 $(PATH_BIN)/VBoxDDU$(VBOX_SUFF_DLL) \
138 $(PATH_BIN)/VBoxXML$(VBOX_SUFF_DLL) \
139 $(TARGET_VBoxXPCOM)
140 VBoxSVC_LIBS += \
141 $(PATH_LIB)/VBoxXPCOMGlue$(VBOX_SUFF_LIB) \
142 $(PATH_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
143 VBoxSVC_LIBS.darwin = \
144 $(LIB_VMM) \
145 $(LIB_REM)
146else
147 VBoxSVC_LIBS = \
148 $(PATH_LIB)/VBoxDDU$(VBOX_SUFF_LIB) \
149 $(PATH_LIB)/VBoxXML$(VBOX_SUFF_LIB) \
150 $(PATH_LIB)/VBoxCOM$(VBOX_SUFF_LIB)
151endif
152VBoxSVC_SOURCES = \
153 Logging.cpp \
154 Matching.cpp \
155 USBDeviceFilterImpl.cpp \
156 USBProxyService.cpp \
157 VirtualBoxBase.cpp \
158 VirtualBoxXMLUtil.cpp \
159 VirtualBoxErrorInfoImpl.cpp \
160 VirtualBoxImpl.cpp \
161 MachineImpl.cpp \
162 SnapshotImpl.cpp \
163 HardDiskImpl.cpp \
164 HardDiskAttachmentImpl.cpp \
165 ProgressImpl.cpp \
166 DVDDriveImpl.cpp \
167 DVDImageImpl.cpp \
168 FloppyDriveImpl.cpp \
169 FloppyImageImpl.cpp \
170 HostImpl.cpp \
171 HostDVDDriveImpl.cpp \
172 HostFloppyDriveImpl.cpp \
173 HostUSBDeviceImpl.cpp \
174 GuestOSTypeImpl.cpp \
175 NetworkAdapterImpl.cpp \
176 USBControllerImpl.cpp \
177 AudioAdapterImpl.cpp \
178 SharedFolderImpl.cpp \
179 SystemPropertiesImpl.cpp \
180 BIOSSettingsImpl.cpp
181
182ifdef VBOX_WITH_VRDP
183VBoxSVC_SOURCES += VRDPServerImpl.cpp
184endif
185
186VBoxSVC_SOURCES.win = \
187 HostNetworkInterfaceImpl.cpp \
188 win32/svcmain.cpp \
189 win32/svchlp.cpp \
190 win32/VBoxSVC.rc
191
192ifdef VBOX_WITH_XPCOM
193VBoxSVC_SOURCES += \
194 linux/server.cpp
195endif
196
197ifdef VBOX_WITH_USB
198VBoxSVC_SOURCES.linux += linux/USBProxyServiceLinux.cpp
199VBoxSVC_SOURCES.win += win32/USBProxyServiceWin32.cpp
200endif
201
202ifeq ($(BUILD_TYPE),debug)
203VBoxSVC_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
204endif
205
206#
207# VBoxSVC wrapper module
208#
209ifdef VBOX_WITH_XPCOM
210
211VBoxSVCM_TEMPLATE = VBOXMAIN
212ifneq ($(BUILD_TARGET),linux)
213VBoxSVCM_INST = $(INST_BIN)components/
214endif
215VBoxSVCM_DEFS = IN_RING3 IN_CFGLDR_R3
216VBoxSVCM_INCS = \
217 include \
218 $(PATH_VBoxC) \
219 $(PATH_VBoxCOM)
220VBoxSVCM_SOURCES = \
221 linux/server_module.cpp
222VBoxSVCM_LIBS = \
223 $(PATH_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
224VBoxSVCM_LDFLAGS.darwin = -install_name @executable_path/components/VBoxSVCM.dylib
225
226endif # VBOX_WITH_XPCOM
227
228#
229# VBoxC module
230#
231VBoxC_TEMPLATE = VBOXMAIN
232ifneq ($(filter-out linux win,$(BUILD_TARGET)),)
233VBoxC_INST = $(INST_BIN)components/
234endif
235VBoxC_DEFS = IN_RING3 IN_CFGLDR_R3
236VBoxC_DEFS += VBOX_COM_INPROC
237ifdef VBOX_WITH_VRDP
238VBoxC_DEFS += VBOX_VRDP IN_VRDP_R3
239endif
240ifdef VBOX_WITH_HGCM
241VBoxC_DEFS += VBOX_HGCM
242endif
243ifdef VBOX_MAIN_RELEASE_LOG
244VBoxC_DEFS += VBOX_MAIN_RELEASE_LOG LOG_ENABLED
245endif
246ifdef VBOX_WITH_USB
247VBoxC_DEFS += VBOX_WITH_USB
248endif
249ifdef VBOX_WITH_ALSA
250VBoxC_DEFS += VBOX_WITH_ALSA
251endif
252ifdef VBOX_WITH_WINMM
253VBoxC_DEFS += VBOX_WITH_WINMM
254endif
255VBoxC_DEFS.win.x86 += _WIN32_WINNT=0x0500
256VBoxC_DEFS.win.amd64 += _WIN32_WINNT=0x0510
257VBoxC_INCS = \
258 include \
259 $(PATH_VBoxC) \
260 $(PATH_VBoxCOM)
261VBoxC_LDFLAGS.darwin = -install_name @executable_path/components/VBoxC.dylib
262ifdef VBOX_USE_VCC80
263VBoxC_LDFLAGS.win = /MANIFEST
264endif
265ifdef VBOX_WITH_XPCOM
266VBoxC_LIBS = \
267 $(TARGET_VBoxXPCOM) \
268 $(PATH_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL) \
269 $(PATH_LIB)/VBoxXPCOMGlue$(VBOX_SUFF_LIB)
270else
271VBoxC_LIBS = \
272 $(PATH_LIB)/VBoxCOM$(VBOX_SUFF_LIB)
273endif
274VBoxC_LIBS += \
275 $(LIB_VMM) \
276 $(LIB_REM)
277VBoxC_SOURCES = \
278 Logging.cpp \
279 VBoxDll.cpp \
280 USBDeviceImpl.cpp \
281 RemoteUSBDeviceImpl.cpp \
282 VirtualBoxBase.cpp \
283 VirtualBoxErrorInfoImpl.cpp \
284 ProgressImpl.cpp \
285 SharedFolderImpl.cpp \
286 SessionImpl.cpp \
287 ConsoleImpl.cpp \
288 ConsoleVRDPServer.cpp \
289 GuestImpl.cpp \
290 KeyboardImpl.cpp \
291 MouseImpl.cpp \
292 DisplayImpl.cpp \
293 FramebufferImpl.cpp \
294 MachineDebuggerImpl.cpp \
295 VBoxDriversRegister.cpp \
296 AudioSnifferInterface.cpp \
297 VMMDevInterface.cpp
298VBoxC_SOURCES.win = \
299 win32/dllmain.cpp \
300 win32/VBoxC.def \
301 win32/VBoxC.rc
302ifdef VBOX_WITH_XPCOM
303VBoxC_SOURCES += \
304 linux/module.cpp
305endif
306
307ifdef VBOX_WITH_HGCM
308VBoxC_SOURCES += \
309 hgcm/HGCMObjects.cpp \
310 hgcm/HGCMThread.cpp \
311 hgcm/HGCM.cpp
312endif
313
314ifdef VBOX_WITH_USB
315VBoxC_SOURCES += \
316 RemoteUSBBackend.cpp
317endif
318
319
320#
321# VBoxXML
322#
323VBoxXML_TEMPLATE = VBOXMAIN
324VBoxXML_SDKS = VBOX_XALAN VBOX_XERCES
325## @todo Why do we need this? Why isn't it in the template?!?
326VBoxXML_CXXFLAGS.win = -EHsc
327VBoxXML_DEFS = \
328 CFGLDR_HAVE_COM IN_RING3 IN_CFGLDR_R3
329VBoxXML_INCS = \
330 include \
331 $(PATH_TARGET)
332VBoxXML_SOURCES = \
333 xml/cfgldr.cpp \
334 xml/cfgldrhlp.cpp
335ifdef VBOX_WITH_XPCOM
336VBoxXML_LIBS = \
337 $(TARGET_VBoxXPCOM) \
338 $(PATH_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
339endif
340VBoxXML_LDFLAGS.darwin = -install_name @executable_path/VBoxXML.dylib -Wl,-x # no debug info please.
341
342## @todo (dmik): temporarily embed SettingsConverter.xsl into VBoxXML,
343# later it should go to VBoxSVC as well
344xml/cfgldr.cpp_DEPS = $(PATH_TARGET)/SettingsConverter_xsl.h
345OTHER_CLEAN += $(PATH_TARGET)/SettingsConverter_xsl.h
346$(PATH_TARGET)/SettingsConverter_xsl.h: xml/SettingsConverter.xsl $(VBOX_BIN2C) | $(call DIRDEP,$(PATH_TARGET))
347 $(call MSG_L1,bin2c $< => $@)
348 $(QUIET)$(VBOX_BIN2C) SettingsConverter_xsl $< $@
349
350
351#
352# tstCFGLdr - broken.
353#
354tstCFGLdr_TEMPLATE = VBOXR3
355tstCFGLdr_SDKS = VBOX_XALAN VBOX_XERCES
356tstCFGLdr_DEFS = IN_CFGLDR_R3 STANDALONE_TEST
357## @todo these makes uncessary noice. fix the template usage!
358tstCFGLdr_CXXFLAGS.win = -EHsc
359tstCFGLdr_SOURCES = \
360 xml/cfgldr.cpp \
361 xml/cfgldrhlp.cpp
362tstCFGLdr_INCS = \
363 include \
364 $(PATH_TARGET)
365ifdef VBOX_WITH_XPCOM
366tstCFGLdr_LIBS = \
367 $(PATH_LIB)/VBoxXPCOM$(VBOX_SUFF_LIB)
368endif
369tstCFGLdr_LIBS += \
370 $(LIB_RUNTIME)
371
372
373#
374# VBoxCOM - COM Abstraction Layer library
375#
376VBoxCOM_COMMON_SOURCES = \
377 glue/com.cpp \
378 glue/string.cpp \
379 glue/EventQueue.cpp \
380 glue/ErrorInfo.cpp
381
382VBoxCOM_TEMPLATE = VBOXMAIN
383VBoxCOM_DEFS.x86 = _WIN32_WINNT=0x0500
384VBoxCOM_DEFS.amd64 = _WIN32_WINNT=0x0510
385VBoxCOM_SOURCES = \
386 $(VBoxCOM_COMMON_SOURCES) \
387 $(PATH_VBoxCOM)/VirtualBox_i.c
388
389
390#
391# VBoxXPCOM
392#
393VBoxXPCOM_TEMPLATE = VBOXMAIN
394VBoxXPCOM_SOURCES = \
395 $(VBoxCOM_COMMON_SOURCES) \
396 linux/helpers.cpp
397VBoxXPCOM_INCS = \
398 include
399
400
401#
402# Generate _DEPS on all sources which depends on generated headers.
403#
404ifeq ($(BUILD_TARGET),win)
405PREREQS = $(PATH_VBoxCOM)/VirtualBox_i.c
406else
407PREREQS = $(IDLTYPELIB) $(IDLHEADER)
408endif
409
410# brute force way to ensure the prereqs are generated before anything is compiled.
411define def_src_deps
412$(src)_DEPS = $(PREREQS)
413endef
414$(foreach src,\
415 $(VBoxC_SOURCES) $(VBoxC_SOURCES.$(BUILD_TARGET)) \
416 $(VBoxSVC_SOURCES) $(VBoxSVC_SOURCES.$(BUILD_TARGET)) \
417 $(VBoxCOM_COMMON_SOURCES) $(VBoxCOM_SOURCES) $(VBoxXPCOM_SOURCES) \
418 ,$(eval $(value def_src_deps)))
419
420
421#
422# Embed XML Schema files to VBoxSVC
423#
424VBOX_XML_ENTITIES = $(PATH_TARGET)/VirtualBoxXMLUtil_entities.h
425VBOX_XML_ENTITIES_COMMON = $(PATH_TARGET)/VirtualBoxXMLUtil_common_entities.h
426
427VBOX_XML_SCHEMA_COMMON = xml/VirtualBox-settings-common.xsd
428VBOX_XML_SCHEMA.darwin = xml/VirtualBox-settings-macosx.xsd
429VBOX_XML_SCHEMA.linux = xml/VirtualBox-settings-linux.xsd
430VBOX_XML_SCHEMA.win = xml/VirtualBox-settings-windows.xsd
431
432VirtualBoxXMLUtil.cpp_DEPS = $(VBOX_XML_ENTITIES) $(VBOX_XML_ENTITIES_COMMON)
433
434$(VBOX_XML_ENTITIES_COMMON): $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
435 $(call MSG_L1,bin2c $< => $@)
436 $(QUIET)$(VBOX_BIN2C) VirtualBox_settings_common_xsd $< $@
437
438$(VBOX_XML_ENTITIES): $(VBOX_XML_SCHEMA.$(BUILD_TARGET)) $(VBOX_BIN2C)
439 $(call MSG_L1,bin2c $< => $@)
440 $(QUIET)$(VBOX_BIN2C) VirtualBox_settings_xsd $< $@
441
442OTHER_CLEAN += $(VBOX_XML_ENTITIES) $(VBOX_XML_ENTITIES_COMMON)
443
444
445#
446# Generate SchemaDefs.h from XML Schema
447#
448VBOX_XML_SCHEMADEFS_H = $(PATH_TARGET)/SchemaDefs.h
449VBOX_XML_SCHEMADEFS_XSL = xml/SchemaDefs.xsl
450
451VBoxC_DEPS += $(VBOX_XML_SCHEMADEFS_H)
452VBoxC_INCS += $(PATH_TARGET)
453VBoxSVC_DEPS += $(VBOX_XML_SCHEMADEFS_H)
454VBoxSVC_INCS += $(PATH_TARGET)
455
456$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(BUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON)
457 $(call MSG_L1,xsltproc $@)
458 $(QUIET)$(VBOX_XSLTPROC) -o $@ $(filter-out $(VBOX_XML_SCHEMA_COMMON),$^)
459
460OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H)
461.NOTPARALLEL: $(VBOX_XML_SCHEMADEFS_H)
462
463
464
465#
466# Creates the symlinks necessary for making XPCOM work.
467#
468## @todo Figure out why Linux really needs this, darwin doesn't...
469xpcom-components_INST = $(INST_BIN)components/
470ifeq ($(BUILD_TARGET),linux)
471xpcom-components_SYMLINKS = \
472 VirtualBox_XPCOM.xpt=>../VirtualBox_XPCOM.xpt \
473 VBoxXPCOMBase.xpt=>../VBoxXPCOMBase.xpt \
474 VBoxC$(SUFF_DLL)=>../VBoxC$(SUFF_DLL) \
475 VBoxSVCM$(SUFF_DLL)=>../VBoxSVCM$(SUFF_DLL) \
476 VBoxXPCOMIPCC$(SUFF_DLL)=>../VBoxXPCOMIPCC$(SUFF_DLL)
477endif
478
479
480# generate
481include $(PATH_KBUILD)/footer.kmk
482
483
484#
485# Additions rules.
486#
487
488XIDLFILE = idl/VirtualBox.xidl
489
490ifneq ($(BUILD_TARGET),win)
491
492linux/helpers.cpp: $(IDLTYPELIB)
493
494$(IDLFILE): idl/xpidl.xsl $(XIDLFILE) | $(call DIRDEP,$(dir $(IDLFILE)))
495 $(call MSG_L1,xsltproc $<,=> $@)
496 $(QUIET)$(MKDIR) -p $(@D)
497 $(QUIET)$(VBOX_XSLTPROC) -o $@ $^
498
499$(IDLTYPELIB): $(IDLFILE) | $(call DIRDEP,$(dir $(IDLTYPELIB)))
500 $(call MSG_L1,xpidl $<,=> $@)
501 $(QUIET)$(VBOX_XPIDL) -m typelib -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
502
503$(IDLHEADER): $(IDLFILE) | $(call DIRDEP,$(dir $(IDLHEADER)))
504 $(call MSG_L1,xpidl $<,=> $@)
505 $(QUIET)$(VBOX_XPIDL) -m header -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
506
507else
508
509MAIN_IDL ?= $(EXEC_X86_WIN32) $(firstword $(wildcard \
510 $(PATH_SDK_WINPSDK_BIN)/Midl.Exe\
511 $(PATH_SDK_WINPSDK)/Bin/Midl.Exe\
512 $(PATH_DEVTOOLS)/win.x86/bin/midl.exe\
513 ) Sorry_Cannot_Find_The_Midl_Compiler_In_The_PSDK)
514IDL_DEFS = /nologo
515ifdef VBOX_WITH_VRDP
516 IDL_DEFS += /D VBOX_VRDP
517endif
518
519$(IDLFILE): idl/midl.xsl $(XIDLFILE)
520 $(call MSG_L1,xsltproc $<,=> $@)
521 $(QUIET)$(MKDIR) -p $(VBOX_PATH_SDK)/idl
522 $(QUIET)$(VBOX_XSLTPROC) -o $@ $^
523
524## @todo r=bird: last changes to this rule showed incorrect dependencies here as it broke testcase (see testboxwin2).
525# This is kind of obvious when looking at the rule, because it's (a) not specifing all it output
526# and (b) generating more stuff *after* the maintarget has been completed.
527#
528# What needs to be done is to not depend on _i.c in the object subdir, but on all the final outputs.
529$(PATH_VBoxCOM)/VirtualBox_i.c: $(IDLFILE) | $(call DIRDEP,$(PATH_VBoxCOM))
530 $(MAIN_IDL) $(IDL_DEFS) \
531 /out $(subst /,\\,$(PATH_VBoxCOM)) \
532 /cpp_cmd $(subst /,\\,$(TOOL_$(VBOX_VCC_TOOL)_CC)) \
533 /I $(subst /,\\,$(PATH_SDK_WINPSDK_INC)) \
534 /I idl \
535 $(subst /,\\,$<)
536 $(MKDIR) -p $(VBOX_PATH_SDK)/include
537 $(CP) $(PATH_VBoxCOM)/VirtualBox.h $(VBOX_PATH_SDK)/include
538 $(MKDIR) -p $(VBOX_PATH_SDK)/lib
539 $(CP) $(PATH_VBoxCOM)/VirtualBox.tlb $(VBOX_PATH_SDK)/lib
540 $(CP) $(PATH_VBoxCOM)/VirtualBox_i.c $(VBOX_PATH_SDK)/lib
541
542endif
543
544# bird: anyone still using this? If not it's a gonner.
545## Hack to work around wine's trouble with midl.exe and rc.exe (seems to be msvcrt.dll related)
546#gen: $(PREREQS)
547
548
549#
550# Translation stuff
551#
552VBoxSVC_HEADERS = \
553 include/collection.h \
554 include/MachineImpl.h \
555 include/HostDVDDriveImpl.h \
556 include/HostFloppyDriveImpl.h
557
558VBoxC_HEADERS = \
559 include/ConsoleImpl.h
560
561VBoxSVC_TRANSLATIONS = \
562 nls/VBoxSVC_de.ts
563
564VBoxC_TRANSLATIONS = \
565 nls/VBoxC_de.ts
566
567updatenls:
568 $(VBOX_LUPDATE) $(VBoxSVC_SOURCES) $(VBoxSVC_HEADERS) -ts $(VBoxSVC_TRANSLATIONS)
569 $(VBOX_LUPDATE) $(VBoxC_SOURCES) $(VBoxC_HEADERS) -ts $(VBoxC_TRANSLATIONS)
570
571ifdef VBOX_WITH_XPCOM
572
573testidl: $(IDLFILE) $(IDLTYPELIB)
574testidlhdr: $(IDLHEADER)
575
576else
577
578testidl: $(IDLFILE) $(PATH_VBoxCOM)/VirtualBox_i.c
579
580endif
581
582$(PATH_BIN)/comregister.cmd: win32/comregister.cmd
583 $(CP) $< $@
584
585
586# Hot fix when dependencies goes bad again...
587#.NOTPARALLEL: $(TARGET_VBoxC) $(TARGET_VBoxSVC) $(TARGET_VBoxXPCOM) $(TARGET_VBoxCOM) $(IDLHEADER) $(IDLFILE) $(PATH_VBoxCOM)/VirtualBox_i.c
588
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