VirtualBox

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

Last change on this file since 86714 was 82968, checked in by vboxsync, 5 years ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.4 KB
Line 
1# $Id: Makefile.kmk 82968 2020-02-04 10:35:17Z vboxsync $
2## @file
3# Sub-Makefile for the VBox API testcases.
4#
5
6#
7# Copyright (C) 2004-2020 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 tstVBoxMultipleVM \
32 $(if $(VBOX_OSE),,tstOVF) \
33 $(if $(VBOX_WITH_XPCOM),tstVBoxAPIXPCOM,tstVBoxAPIWin msiDarwinDescriptorDecoder) \
34 $(if $(VBOX_WITH_RESOURCE_USAGE_API),tstCollector,) \
35 $(if $(VBOX_WITH_GUEST_CONTROL),tstGuestCtrlParseBuffer,) \
36 $(if $(VBOX_WITH_GUEST_CONTROL),tstGuestCtrlContextID,) \
37 tstMediumLock \
38 tstBstr \
39 tstGuid
40 PROGRAMS.linux += \
41 $(if $(VBOX_WITH_USB),tstUSBProxyLinux,)
42 endif # !VBOX_WITH_TESTCASES
43endif # !VBOX_ONLY_SDK
44if defined(VBOX_ONLY_SDK) || !defined(VBOX_WITH_XPCOM)
45 INSTALLS += samplesMSCOM
46endif
47if defined(VBOX_ONLY_SDK) || defined(VBOX_WITH_XPCOM)
48 INSTALLS += samplesXPCOM
49endif
50
51
52#
53# The samples
54#
55samplesMSCOM_MODE = a+r,u+w
56samplesMSCOM_INST = $(INST_SDK)bindings/mscom/samples/
57samplesMSCOM_SOURCES = tstVBoxAPIWin.cpp makefile.tstVBoxAPIWin=>Makefile
58
59samplesXPCOM_MODE = a+r,u+w
60samplesXPCOM_INST = $(INST_SDK)bindings/xpcom/samples/
61samplesXPCOM_SOURCES = tstVBoxAPIXPCOM.cpp makefile.tstVBoxAPIXPCOM=>Makefile
62
63#
64# tstVBoxMultipleVM
65#
66tstVBoxMultipleVM_TEMPLATE = VBOXMAINCLIENTTSTEXE
67tstVBoxMultipleVM_SOURCES = tstVBoxMultipleVM.cpp
68
69#
70# tstAPI
71#
72tstAPI_TEMPLATE = VBOXMAINCLIENTTSTEXE
73#tstAPI_INST = $(INST_SDK)bindings/gluecom/samples/
74tstAPI_SOURCES = tstAPI.cpp
75
76#
77# tstVBoxAPI
78#
79tstVBoxAPI_TEMPLATE = VBOXMAINCLIENTTSTEXE
80tstVBoxAPI_SOURCES = \
81 tstVBoxAPI.cpp
82
83#
84# tstVBoxAPIPerf
85#
86tstVBoxAPIPerf_TEMPLATE = VBOXMAINCLIENTTSTEXE
87tstVBoxAPIPerf_SOURCES = \
88 tstVBoxAPIPerf.cpp
89
90#
91# tstOVF
92#
93tstOVF_TEMPLATE = VBOXMAINCLIENTTSTEXE
94#tstOVF_INST = $(INST_SDK)bindings/gluecom/samples/
95tstOVF_SOURCES = tstOVF.cpp
96
97ifndef VBOX_OSE
98#
99# OVF test data.
100#
101INSTALLS += ovf-testcases
102ovf-testcases_MODE = a+r,u+w
103ovf-testcases_INST = $(INST_TESTCASE)ovf-testcases/
104ovf-testcases_SOURCES = \
105 ovf-dummy.vmdk \
106 ovf-joomla-0.9/joomla-1.1.4-ovf.ovf=>ovf-joomla-0.9/joomla-1.1.4-ovf.ovf \
107 ovf-winhost-audio-nodisks/WinXP.ovf=>ovf-winhost-audio-nodisks/WinXP.ovf \
108 ovf-winxp-vbox-sharedfolders/winxp.ovf=>ovf-winxp-vbox-sharedfolders/winxp.ovf
109endif
110
111
112#
113# tstVBoxAPIXPCOM
114#
115# We only build the testcase here to make sure it builds.
116# It comes with a custom makefile which should be tested as well!
117#
118# Use very generic template to make the build environment similar
119# to the standalone case, to detect if IPRT or glue use sneaks in.
120#
121tstVBoxAPIXPCOM_TEMPLATE = VBOXR3EXE
122tstVBoxAPIXPCOM_INST = $(INST_TESTCASE)
123tstVBoxAPIXPCOM_SOURCES = tstVBoxAPIXPCOM.cpp
124tstVBoxAPIXPCOM_INCS = \
125 $(VBOX_PATH_SDK)/bindings/xpcom/include \
126 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
127 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
128 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
129 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
130tstVBoxAPIXPCOM_LIBS = \
131 $(LIB_XPCOM) \
132 $(LIB_RUNTIME)
133tstVBoxAPIXPCOM_CXXFLAGS = -fshort-wchar
134ifdef VBOX_WITH_RUNPATH
135 tstVBoxAPIXPCOM_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_VBoxBldProg_LDFLAGS)
136else ifdef VBOX_WITH_RELATIVE_RUNPATH
137 tstVBoxAPIXPCOM_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_VBoxBldProg_LDFLAGS)
138endif
139tstVBoxAPIXPCOM_INTERMEDIATES = \
140 $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
141ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
142 tstVBoxAPIXPCOM_DEFS += VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
143endif
144
145
146#
147# tstVBoxAPIWin
148#
149# Use very generic template to make the build environment similar
150# to the standalone case, to detect if IPRT or glue use sneaks in.
151#
152tstVBoxAPIWin_TEMPLATE = VBOXR3EXE
153tstVBoxAPIWin_INST = $(INST_TESTCASE)
154tstVBoxAPIWin_SOURCES = \
155 tstVBoxAPIWin.cpp \
156 $(VBOX_PATH_SDK)/bindings/mscom/lib/VirtualBox_i.c
157tstVBoxAPIWin_INCS = \
158 $(VBOX_PATH_SDK)/bindings/mscom/include
159tstVBoxAPIWin_INTERMEDIATES = \
160 $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
161
162
163#
164# msiDarwinDescriptorDecoder
165#
166# Use very generic template to make the build environment similar
167# to the standalone case, to detect if IPRT or glue use sneaks in.
168#
169msiDarwinDescriptorDecoder_TEMPLATE = VBOXR3EXE
170msiDarwinDescriptorDecoder_INST = $(VBOX_INST_TOOLS)
171msiDarwinDescriptorDecoder_SOURCES = \
172 msiDarwinDescriptorDecoder.cpp
173
174
175#
176# tstCollector
177#
178# Note! VBOX_MAIN_APIWRAPPER_GEN_HDRS is only defined if kmk is executed a
179# parent directory. Since the rules for generating the files listed by
180# the variable lives in the parent makefile, this is not a problem.
181#
182tstCollector_TEMPLATE = VBOXMAINCLIENTTSTEXE
183tstCollector_SOURCES = \
184 tstCollector.cpp \
185 ../src-server/Performance.cpp
186tstCollector_INCS = \
187 ../include \
188 $(VBOX_MAIN_APIWRAPPER_INCS)
189tstCollector_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
190tstCollector_DEFS = VBOX_COLLECTOR_TEST_CASE
191tstCollector_LDFLAGS.darwin = -lproc
192tstCollector_LDFLAGS.solaris = -lkstat -lnvpair
193tstCollector_LDFLAGS.win = psapi.lib powrprof.lib
194
195
196#
197# tstGuestCtrlParseBuffer
198#
199tstGuestCtrlParseBuffer_TEMPLATE = VBOXMAINCLIENTTSTEXE
200tstGuestCtrlParseBuffer_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
201tstGuestCtrlParseBuffer_DEFS += VBOX_WITH_HGCM VBOX_WITH_GUEST_CONTROL VBOX_GUESTCTRL_TEST_CASE
202tstGuestCtrlParseBuffer_SOURCES = \
203 tstGuestCtrlParseBuffer.cpp \
204 ../src-client/GuestCtrlPrivate.cpp
205tstGuestCtrlParseBuffer_INCS = ../include \
206 $(VBOX_MAIN_APIWRAPPER_INCS)
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# tstUSBProxyLinux
224#
225tstUSBProxyLinux_TEMPLATE = VBOXMAINCLIENTTSTEXE
226tstUSBProxyLinux_INTERMEDIATES = $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
227tstUSBProxyLinux_SOURCES = \
228 tstUSBProxyLinux.cpp \
229 ../src-server/linux/USBGetDevices.cpp
230tstUSBProxyLinux_INCS = \
231 . \
232 ../include \
233 $(VBOX_PATH_SDK)/bindings/xpcom/include \
234 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
235 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
236 $(VBOX_MAIN_APIWRAPPER_INCS)
237tstUSBProxyLinux_DEFS = \
238 UNIT_TEST \
239 VBOX_WITH_USB \
240 VBOX_USB_WITH_SYSFS \
241 VBOX_WITH_XPCOM
242tstUSBProxyLinux_DEPS = \
243 $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
244tstUSBProxyLinux_LIBS += \
245 $(PATH_OUT)/lib/USBLib.a \
246 $(PATH_OUT)/lib/VBoxCOM.a
247
248
249#
250# tstMediumLock
251#
252tstMediumLock_TEMPLATE = VBOXMAINCLIENTTSTEXE
253tstMediumLock_SOURCES = tstMediumLock.cpp
254
255
256#
257# tstBstr
258#
259tstBstr_TEMPLATE = VBOXMAINCLIENTTSTEXE
260tstBstr_SOURCES = tstBstr.cpp
261
262
263#
264# tstGuid
265#
266tstGuid_TEMPLATE = VBOXMAINCLIENTTSTEXE
267tstGuid_SOURCES = tstGuid.cpp
268
269
270# generate rules.
271include $(FILE_KBUILD_SUB_FOOTER)
272
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