VirtualBox

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

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

Main: Attempted to let the RunAs dialog bring itself to foreground.

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