VirtualBox

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

Last change on this file since 76553 was 76553, checked in by vboxsync, 6 years ago

scm --update-copyright-year

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