VirtualBox

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

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

Removed some obsolete VRDP code.

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

© 2023 Oracle
ContactPrivacy policyTerms of Use