VirtualBox

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

Last change on this file since 98293 was 98189, checked in by vboxsync, 21 months ago

*.kmk: s/VBOXMAINCLIENTTSTEXE/VBoxMainClientTstExe/ bugref:10348

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.6 KB
Line 
1# $Id: Makefile.kmk 98189 2023-01-21 22:54:30Z vboxsync $
2## @file
3# Sub-Makefile for the VBox API testcases.
4#
5
6#
7# Copyright (C) 2004-2023 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28SUB_DEPTH = ../../../..
29include $(KBUILD_PATH)/subheader.kmk
30
31
32#
33# Target and globals (small mess)
34#
35ifndef VBOX_ONLY_SDK
36 if defined(VBOX_WITH_TESTCASES)
37 PROGRAMS += \
38 tstAPI \
39 tstVBoxAPI \
40 tstVBoxAPIPerf \
41 tstVBoxMultipleVM \
42 $(if $(VBOX_OSE),,tstOVF) \
43 $(if $(VBOX_WITH_XPCOM),tstVBoxAPIXPCOM,tstVBoxAPIWin msiDarwinDescriptorDecoder) \
44 $(if $(VBOX_WITH_RESOURCE_USAGE_API),tstCollector,) \
45 $(if $(VBOX_WITH_GUEST_CONTROL),tstGuestCtrlContextID,) \
46 $(if $(VBOX_WITH_GUEST_CONTROL),tstGuestCtrlParseBuffer,) \
47 $(if $(VBOX_WITH_GUEST_CONTROL),tstGuestCtrlPaths,) \
48 tstMediumLock \
49 tstBstr \
50 tstGuid \
51 tstUnattendedScript \
52 tstVBoxCrypto
53 PROGRAMS.linux += \
54 $(if $(VBOX_WITH_USB),tstUSBProxyLinux,)
55 endif # !VBOX_WITH_TESTCASES
56endif # !VBOX_ONLY_SDK
57if defined(VBOX_ONLY_SDK) || !defined(VBOX_WITH_XPCOM)
58 INSTALLS += samplesMSCOM
59endif
60if defined(VBOX_ONLY_SDK) || defined(VBOX_WITH_XPCOM)
61 INSTALLS += samplesXPCOM
62endif
63
64
65#
66# The samples
67#
68samplesMSCOM_MODE = a+r,u+w
69samplesMSCOM_INST = $(INST_SDK)bindings/mscom/samples/
70samplesMSCOM_SOURCES = tstVBoxAPIWin.cpp makefile.tstVBoxAPIWin=>Makefile
71
72samplesXPCOM_MODE = a+r,u+w
73samplesXPCOM_INST = $(INST_SDK)bindings/xpcom/samples/
74samplesXPCOM_SOURCES = tstVBoxAPIXPCOM.cpp makefile.tstVBoxAPIXPCOM=>Makefile
75
76#
77# tstVBoxMultipleVM
78#
79tstVBoxMultipleVM_TEMPLATE = VBoxMainClientTstExe
80tstVBoxMultipleVM_SOURCES = tstVBoxMultipleVM.cpp
81
82#
83# tstAPI
84#
85tstAPI_TEMPLATE = VBoxMainClientTstExe
86#tstAPI_INST = $(INST_SDK)bindings/gluecom/samples/
87tstAPI_SOURCES = tstAPI.cpp
88
89#
90# tstVBoxAPI
91#
92tstVBoxAPI_TEMPLATE = VBoxMainClientTstExe
93tstVBoxAPI_SOURCES = \
94 tstVBoxAPI.cpp
95
96#
97# tstVBoxAPIPerf
98#
99tstVBoxAPIPerf_TEMPLATE = VBoxMainClientTstExe
100tstVBoxAPIPerf_SOURCES = \
101 tstVBoxAPIPerf.cpp
102
103#
104# tstOVF
105#
106tstOVF_TEMPLATE = VBoxMainClientTstExe
107#tstOVF_INST = $(INST_SDK)bindings/gluecom/samples/
108tstOVF_SOURCES = tstOVF.cpp
109
110ifndef VBOX_OSE
111#
112# OVF test data.
113#
114INSTALLS += ovf-testcases
115ovf-testcases_MODE = a+r,u+w
116ovf-testcases_INST = $(INST_TESTCASE)ovf-testcases/
117ovf-testcases_SOURCES = \
118 ovf-dummy.vmdk \
119 ovf-joomla-0.9/joomla-1.1.4-ovf.ovf=>ovf-joomla-0.9/joomla-1.1.4-ovf.ovf \
120 ovf-winhost-audio-nodisks/WinXP.ovf=>ovf-winhost-audio-nodisks/WinXP.ovf \
121 ovf-winxp-vbox-sharedfolders/winxp.ovf=>ovf-winxp-vbox-sharedfolders/winxp.ovf
122endif
123
124
125#
126# tstVBoxAPIXPCOM
127#
128# We only build the testcase here to make sure it builds.
129# It comes with a custom makefile which should be tested as well!
130#
131# Use very generic template to make the build environment similar
132# to the standalone case, to detect if IPRT or glue use sneaks in.
133#
134tstVBoxAPIXPCOM_TEMPLATE = VBoxR3Exe
135tstVBoxAPIXPCOM_INST = $(INST_TESTCASE)
136tstVBoxAPIXPCOM_SOURCES = tstVBoxAPIXPCOM.cpp
137tstVBoxAPIXPCOM_INCS = \
138 $(VBOX_PATH_SDK)/bindings/xpcom/include \
139 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
140 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
141 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
142 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
143tstVBoxAPIXPCOM_LIBS = \
144 $(LIB_XPCOM) \
145 $(LIB_RUNTIME)
146tstVBoxAPIXPCOM_CXXFLAGS = -fshort-wchar
147ifdef VBOX_WITH_RUNPATH
148 tstVBoxAPIXPCOM_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_VBoxBldProg_LDFLAGS)
149else ifdef VBOX_WITH_RELATIVE_RUNPATH
150 tstVBoxAPIXPCOM_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_VBoxBldProg_LDFLAGS)
151endif
152tstVBoxAPIXPCOM_INTERMEDIATES = \
153 $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
154ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
155 tstVBoxAPIXPCOM_DEFS += VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
156endif
157
158
159#
160# tstVBoxAPIWin
161#
162# Use very generic template to make the build environment similar
163# to the standalone case, to detect if IPRT or glue use sneaks in.
164#
165tstVBoxAPIWin_TEMPLATE = VBoxR3Exe
166tstVBoxAPIWin_INST = $(INST_TESTCASE)
167tstVBoxAPIWin_SOURCES = \
168 tstVBoxAPIWin.cpp \
169 $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c
170tstVBoxAPIWin_INCS = \
171 $(VBOX_PATH_SDK)/bindings/mscom/include
172tstVBoxAPIWin_INTERMEDIATES = \
173 $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
174
175
176#
177# msiDarwinDescriptorDecoder
178#
179# Use very generic template to make the build environment similar
180# to the standalone case, to detect if IPRT or glue use sneaks in.
181#
182msiDarwinDescriptorDecoder_TEMPLATE = VBoxR3Exe
183msiDarwinDescriptorDecoder_INST = $(VBOX_INST_TOOLS)
184msiDarwinDescriptorDecoder_SOURCES = \
185 msiDarwinDescriptorDecoder.cpp
186
187
188#
189# tstCollector
190#
191# Note! VBOX_MAIN_APIWRAPPER_GEN_HDRS is only defined if kmk is executed a
192# parent directory. Since the rules for generating the files listed by
193# the variable lives in the parent makefile, this is not a problem.
194#
195tstCollector_TEMPLATE = VBoxMainClientTstExe
196tstCollector_SOURCES = \
197 tstCollector.cpp \
198 ../src-server/Performance.cpp
199tstCollector_INCS = \
200 ../include \
201 $(VBOX_MAIN_APIWRAPPER_INCS)
202tstCollector_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
203tstCollector_DEFS = VBOX_COLLECTOR_TEST_CASE
204tstCollector_LDFLAGS.darwin = -lproc
205tstCollector_LDFLAGS.solaris = -lkstat -lnvpair
206tstCollector_LDFLAGS.win = psapi.lib powrprof.lib
207
208
209#
210# tstGuestCtrlContextID
211#
212tstGuestCtrlContextID_TEMPLATE = VBoxMainClientTstExe
213tstGuestCtrlContextID_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
214tstGuestCtrlContextID_DEFS += VBOX_WITH_HGCM VBOX_WITH_GUEST_CONTROL VBOX_GUESTCTRL_TEST_CASE
215tstGuestCtrlContextID_SOURCES = \
216 tstGuestCtrlContextID.cpp \
217 ../src-client/GuestCtrlPrivate.cpp
218tstGuestCtrlContextID_INCS = ../include \
219 $(VBOX_MAIN_APIWRAPPER_INCS)
220
221
222#
223# tstGuestCtrlParseBuffer
224#
225tstGuestCtrlParseBuffer_TEMPLATE = VBoxMainClientTstExe
226tstGuestCtrlParseBuffer_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
227tstGuestCtrlParseBuffer_DEFS += VBOX_WITH_HGCM VBOX_WITH_GUEST_CONTROL VBOX_GUESTCTRL_TEST_CASE
228tstGuestCtrlParseBuffer_SOURCES = \
229 tstGuestCtrlParseBuffer.cpp \
230 ../src-client/GuestCtrlPrivate.cpp
231tstGuestCtrlParseBuffer_INCS = ../include \
232 $(VBOX_MAIN_APIWRAPPER_INCS)
233
234
235#
236# tstGuestCtrlPaths
237#
238tstGuestCtrlPaths_TEMPLATE = VBoxMainClientTstExe
239tstGuestCtrlPaths_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
240tstGuestCtrlPaths_DEFS += VBOX_WITH_HGCM VBOX_WITH_GUEST_CONTROL VBOX_GUESTCTRL_TEST_CASE
241tstGuestCtrlPaths_SOURCES = \
242 tstGuestCtrlPaths.cpp \
243 ../src-client/GuestCtrlPrivate.cpp
244tstGuestCtrlPaths_INCS = ../include \
245 $(VBOX_MAIN_APIWRAPPER_INCS)
246
247if 0 # Enable this if you want automatic runs after compilation.
248 $$(tstGuestCtrlPaths_0_OUTDIR)/tstGuestCtrlPaths.run: $$(tstGuestCtrlPaths_1_STAGE_TARGET)
249 export VBOX_LOG_DEST=nofile; $(tstGuestCtrlPaths_1_STAGE_TARGET) quiet
250 $(QUIET)$(APPEND) -t "$@" "done"
251 OTHERS += $(tstGuestCtrlPaths_0_OUTDIR)/tstGuestCtrlPaths.run
252endif
253
254
255#
256# tstUSBProxyLinux
257#
258tstUSBProxyLinux_TEMPLATE = VBoxMainClientTstExe
259tstUSBProxyLinux_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
260tstUSBProxyLinux_SOURCES = \
261 tstUSBProxyLinux.cpp \
262 ../src-server/linux/USBGetDevices.cpp
263tstUSBProxyLinux_INCS = \
264 . \
265 ../include \
266 $(VBOX_PATH_SDK)/bindings/xpcom/include \
267 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
268 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
269 $(VBOX_MAIN_APIWRAPPER_INCS)
270tstUSBProxyLinux_DEFS = \
271 UNIT_TEST \
272 VBOX_WITH_USB \
273 VBOX_USB_WITH_SYSFS \
274 VBOX_WITH_XPCOM
275tstUSBProxyLinux_DEPS = \
276 $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
277tstUSBProxyLinux_LIBS += \
278 $(PATH_OUT)/lib/USBLib.a \
279 $(PATH_OUT)/lib/VBoxCOM.a
280
281
282#
283# tstMediumLock
284#
285tstMediumLock_TEMPLATE = VBoxMainClientTstExe
286tstMediumLock_SOURCES = tstMediumLock.cpp
287
288
289#
290# tstBstr
291#
292tstBstr_TEMPLATE = VBoxMainClientTstExe
293tstBstr_SOURCES = tstBstr.cpp
294
295
296#
297# tstGuid
298#
299tstGuid_TEMPLATE = VBoxMainClientTstExe
300tstGuid_SOURCES = tstGuid.cpp
301
302
303#
304# tstUnattendedScript
305#
306tstUnattendedScript_TEMPLATE = VBoxMainClientTstExe
307tstUnattendedScript_DEFS = VBOX_WITH_UNATTENDED IN_VBOXSVC IN_TST_UNATTENDED_SCRIPT
308tstUnattendedScript_INTERMEDIATES = \
309 $(VBOX_MAIN_APIWRAPPER_GEN_HDRS) \
310 $(VBOX_XML_SCHEMADEFS_H)
311tstUnattendedScript_INCS = \
312 ../include \
313 $(VBOX_MAIN_APIWRAPPER_INCS) \
314 $(dir $(VBOX_XML_SCHEMADEFS_H))
315tstUnattendedScript_SOURCES = \
316 tstUnattendedScript.cpp \
317 ../src-server/UnattendedScript.cpp \
318 ../src-all/TextScript.cpp \
319 ../src-all/VirtualBoxBase.cpp \
320 ../src-all/VirtualBoxErrorInfoImpl.cpp \
321 ../src-all/AutoCaller.cpp \
322 ../src-all/GlobalStatusConversion.cpp
323tstUnattendedScript_LIBS = \
324 $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB)
325
326INSTALLS += tstUnattendedScriptFiles
327tstUnattendedScriptFiles_TEMPLATE = VBoxMainTstExe
328tstUnattendedScriptFiles_SOURCES = \
329 tstUnattendedScript-1.template \
330 tstUnattendedScript-1.expected
331
332
333#
334# tstVBoxCrypto
335#
336tstVBoxCrypto_TEMPLATE = VBoxMainClientTstExe
337tstVBoxCrypto_SOURCES = tstVBoxCrypto.cpp
338
339
340
341# generate rules.
342include $(FILE_KBUILD_SUB_FOOTER)
343
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