VirtualBox

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

Last change on this file since 51574 was 50613, checked in by vboxsync, 11 years ago

6813 src-client/MouseImpl.cpp fixed

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.7 KB
Line 
1# $Id: Makefile.kmk 50613 2014-02-26 16:07:35Z vboxsync $
2## @file
3# Sub-Makefile for the VBox API testcases.
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#
23# Target and globals (small mess)
24#
25ifndef VBOX_ONLY_SDK
26 if defined(VBOX_WITH_TESTCASES)
27 PROGRAMS += \
28 tstAPI \
29 tstVBoxAPI \
30 tstVBoxAPIPerf \
31 $(if $(VBOX_OSE),,tstOVF) \
32 $(if $(VBOX_WITH_XPCOM),tstVBoxAPIXPCOM,tstVBoxAPIWin) \
33 $(if $(VBOX_WITH_RESOURCE_USAGE_API),tstCollector,) \
34 $(if $(VBOX_WITH_GUEST_CONTROL),tstGuestCtrlParseBuffer,) \
35 $(if $(VBOX_WITH_GUEST_CONTROL),tstGuestCtrlContextID,) \
36 tstMediumLock \
37 tstMouseImpl
38 PROGRAMS.linux += \
39 $(if $(VBOX_WITH_USB),tstUSBProxyLinux,)
40 endif # !VBOX_WITH_TESTCASES
41endif # !VBOX_ONLY_SDK
42if defined(VBOX_ONLY_SDK) || !defined(VBOX_WITH_XPCOM)
43 INSTALLS += samplesMSCOM
44endif
45if defined(VBOX_ONLY_SDK) || defined(VBOX_WITH_XPCOM)
46 INSTALLS += samplesXPCOM
47endif
48
49
50#
51# The samples
52#
53samplesMSCOM_MODE = a+r,u+w
54samplesMSCOM_INST = $(INST_SDK)bindings/mscom/samples/
55samplesMSCOM_SOURCES = tstVBoxAPIWin.cpp makefile.tstVBoxAPIWin=>Makefile
56
57samplesXPCOM_MODE = a+r,u+w
58samplesXPCOM_INST = $(INST_SDK)bindings/xpcom/samples/
59samplesXPCOM_SOURCES = tstVBoxAPIXPCOM.cpp makefile.tstVBoxAPIXPCOM=>Makefile
60
61
62#
63# tstAPI
64#
65tstAPI_TEMPLATE = VBOXMAINCLIENTTSTEXE
66#tstAPI_INST = $(INST_SDK)bindings/gluecom/samples/
67tstAPI_SOURCES = tstAPI.cpp
68
69#
70# tstVBoxAPI
71#
72tstVBoxAPI_TEMPLATE = VBOXMAINCLIENTTSTEXE
73tstVBoxAPI_SOURCES = \
74 tstVBoxAPI.cpp
75
76#
77# tstVBoxAPIPerf
78#
79tstVBoxAPIPerf_TEMPLATE = VBOXMAINCLIENTTSTEXE
80tstVBoxAPIPerf_SOURCES = \
81 tstVBoxAPIPerf.cpp
82
83#
84# tstOVF
85#
86tstOVF_TEMPLATE = VBOXMAINCLIENTTSTEXE
87#tstOVF_INST = $(INST_SDK)bindings/gluecom/samples/
88tstOVF_SOURCES = tstOVF.cpp
89
90ifndef VBOX_OSE
91#
92# OVF test data.
93#
94INSTALLS += ovf-testcases
95ovf-testcases_MODE = a+r,u+w
96ovf-testcases_INST = $(INST_TESTCASE)ovf-testcases/
97ovf-testcases_SOURCES = \
98 ovf-dummy.vmdk \
99 ovf-joomla-0.9/joomla-1.1.4-ovf.ovf=>ovf-joomla-0.9/joomla-1.1.4-ovf.ovf \
100 ovf-winhost-audio-nodisks/WinXP.ovf=>ovf-winhost-audio-nodisks/WinXP.ovf \
101 ovf-winxp-vbox-sharedfolders/winxp.ovf=>ovf-winxp-vbox-sharedfolders/winxp.ovf
102endif
103
104
105#
106# tstVBoxAPIXPCOM
107#
108# We only build the testcase here to make sure it builds.
109# It comes with a custom makefile which should be tested as well!
110#
111# Use very generic template to make the build environment similar
112# to the standalone case, to detect if IPRT or glue use sneaks in.
113#
114tstVBoxAPIXPCOM_TEMPLATE = VBOXR3EXE
115tstVBoxAPIXPCOM_INST = $(INST_TESTCASE)
116tstVBoxAPIXPCOM_SOURCES = tstVBoxAPIXPCOM.cpp
117tstVBoxAPIXPCOM_INCS = \
118 $(VBOX_PATH_SDK)/bindings/xpcom/include \
119 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
120 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
121 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
122 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
123tstVBoxAPIXPCOM_LIBS = \
124 $(LIB_XPCOM)
125tstVBoxAPIXPCOM_CXXFLAGS = -fshort-wchar
126ifdef VBOX_WITH_RUNPATH
127 tstVBoxAPIXPCOM_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_VBoxBldProg_LDFLAGS)
128else ifdef VBOX_WITH_RELATIVE_RUNPATH
129 tstVBoxAPIXPCOM_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_VBoxBldProg_LDFLAGS)
130endif
131tstVBoxAPIXPCOM_INTERMEDIATES = \
132 $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
133ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
134 tstVBoxAPIXPCOM_DEFS += VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
135endif
136
137
138#
139# tstVBoxAPIWin
140#
141# Use very generic template to make the build environment similar
142# to the standalone case, to detect if IPRT or glue use sneaks in.
143#
144tstVBoxAPIWin_TEMPLATE = VBoxBldProg
145tstVBoxAPIWin_INST = $(INST_TESTCASE)
146tstVBoxAPIWin_SOURCES = \
147 tstVBoxAPIWin.cpp \
148 $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c
149tstVBoxAPIWin_INCS = \
150 $(VBOX_PATH_SDK)/bindings/mscom/include
151tstVBoxAPIWin_INTERMEDIATES = \
152 $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
153
154
155#
156# tstCollector
157#
158# Note! VBOX_MAIN_APIWRAPPER_GEN_HDRS is only defined if kmk is executed a
159# parent directory. Since the rules for generating the files listed by
160# the variable lives in the parent makefile, this is not a problem.
161#
162tstCollector_TEMPLATE = VBOXMAINCLIENTTSTEXE
163tstCollector_SOURCES = \
164 tstCollector.cpp \
165 ../src-server/Performance.cpp
166tstCollector_INCS = \
167 ../include \
168 $(VBOX_MAIN_APIWRAPPER_INCS)
169tstCollector_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
170tstCollector_DEFS = VBOX_COLLECTOR_TEST_CASE
171tstCollector_LDFLAGS.darwin = -lproc
172tstCollector_LDFLAGS.solaris = -lkstat -lnvpair
173tstCollector_LDFLAGS.win = psapi.lib powrprof.lib
174
175
176#
177# tstGuestCtrlParseBuffer
178#
179tstGuestCtrlParseBuffer_TEMPLATE = VBOXMAINCLIENTTSTEXE
180tstGuestCtrlParseBuffer_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
181tstGuestCtrlParseBuffer_DEFS += VBOX_WITH_HGCM VBOX_WITH_GUEST_CONTROL VBOX_GUESTCTRL_TEST_CASE
182tstGuestCtrlParseBuffer_SOURCES = \
183 tstGuestCtrlParseBuffer.cpp \
184 ../src-client/GuestCtrlPrivate.cpp
185tstGuestCtrlParseBuffer_INCS = ../include \
186 $(VBOX_MAIN_APIWRAPPER_INCS)
187
188
189#
190# tstGuestCtrlContextID
191#
192tstGuestCtrlContextID_TEMPLATE = VBOXMAINCLIENTTSTEXE
193tstGuestCtrlContextID_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
194tstGuestCtrlContextID_DEFS += VBOX_WITH_HGCM VBOX_WITH_GUEST_CONTROL VBOX_GUESTCTRL_TEST_CASE
195tstGuestCtrlContextID_SOURCES = \
196 tstGuestCtrlContextID.cpp \
197 ../src-client/GuestCtrlPrivate.cpp
198tstGuestCtrlContextID_INCS = ../include \
199 $(VBOX_MAIN_APIWRAPPER_INCS)
200
201
202#
203# tstUSBProxyLinux
204#
205tstUSBProxyLinux_TEMPLATE = VBOXMAINCLIENTTSTEXE
206tstUSBProxyLinux_SOURCES = \
207 tstUSBProxyLinux.cpp \
208 ../src-server/linux/USBProxyServiceLinux.cpp \
209 ../src-server/linux/USBGetDevices.cpp
210tstUSBProxyLinux_INCS = \
211 . \
212 ../include \
213 $(VBOX_PATH_SDK)/bindings/xpcom/include \
214 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
215 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
216 $(VBOX_MAIN_APIWRAPPER_INCS)
217tstUSBProxyLinux_DEFS = \
218 UNIT_TEST \
219 VBOX_WITH_USB \
220 VBOX_USB_WITH_SYSFS \
221 VBOX_WITH_XPCOM
222tstUSBProxyLinux_DEPS = \
223 $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
224tstUSBProxyLinux_LIBS += \
225 $(PATH_OUT)/lib/USBLib.a \
226 $(PATH_OUT)/lib/VBoxCOM.a
227
228
229#
230# tstMediumLock
231#
232tstMediumLock_TEMPLATE = VBOXMAINCLIENTTSTEXE
233tstMediumLock_SOURCES = tstMediumLock.cpp
234
235
236#
237# tstMouseImpl
238#
239tstMouseImpl_TEMPLATE = VBOXMAINTSTEXE
240tstMouseImpl_SOURCES = \
241 tstMouseImpl.cpp \
242 ../src-client/MouseImpl.cpp \
243 ../src-all/EventImpl.cpp \
244 ../src-all/VirtualBoxBase.cpp \
245 ../src-all/VirtualBoxErrorInfoImpl.cpp \
246 $(VBOX_AUTOGEN_EVENT_CPP) \
247 $(VBOX_XML_SCHEMADEFS_CPP)
248tstMouseImpl_INCS = ../include \
249 $(VBOX_PATH_SDK)/bindings/xpcom/include \
250 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
251 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
252 $(dir $(VBOX_XML_SCHEMADEFS_H)) \
253 $(VBOX_MAIN_APIWRAPPER_INCS)
254tstMouseImpl_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
255
256tstMouseImpl_LIBS = \
257 $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) \
258 $(LIB_VMM)
259# Super ugly hack to make the code work well enough without having ATL/COM
260# completely initialized, without it there are crashes caused by ComObjPtr
261# and many other pieces of glue code, as the inproc code path is more picky.
262tstMouseImpl_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
263
264
265# generate rules.
266include $(FILE_KBUILD_SUB_FOOTER)
267
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