VirtualBox

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

Last change on this file was 101035, checked in by vboxsync, 9 months ago

Initial commit (based draft v2 / on patch v5) for implementing platform architecture support for x86 and ARM. bugref:10384

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

© 2023 Oracle
ContactPrivacy policyTerms of Use