# $Id: Makefile.kmk 98117 2023-01-18 11:47:20Z vboxsync $ ## @file # VirtualBox Validation Kit - Audio Utilities. # # # Copyright (C) 2010-2023 Oracle and/or its affiliates. # # This file is part of VirtualBox base platform packages, as # available from https://www.virtualbox.org. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation, in version 3 of the # License. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # The contents of this file may alternatively be used under the terms # of the Common Development and Distribution License Version 1.0 # (CDDL), a copy of it is provided in the "COPYING.CDDL" file included # in the VirtualBox distribution, in which case the provisions of the # CDDL are applicable instead of those of the GPL. # # You may elect to license modified versions of this file under the # terms and conditions of either the GPL or the CDDL or both. # # SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 # SUB_DEPTH = ../../../../.. include $(KBUILD_PATH)/subheader.kmk # # Make sure the ValKit config file is included when the additions build # is including just this makefile. # ifndef VBOX_VALIDATIONKIT_CONFIG_KMK_INCLUDED include $(PATH_ROOT)/src/VBox/ValidationKit/Config.kmk endif # # Append what we build here to PROGRAMS (at the top because it's a bit messy). # ifn1of ($(KBUILD_TARGET), os2 freebsd netbsd openbsd) if defined(VBOX_ONLY_VALIDATIONKIT) || !defined(VBOX_ONLY_BUILD) PROGRAMS += vkat ifdef VBOX_WITH_HOST_SHIPPING_AUDIO_TEST if !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_SDK) PROGRAMS += vkathost endif endif endif ifdef VBOX_WITH_ADDITIONS_SHIPPING_AUDIO_TEST if defined(VBOX_ONLY_ADDITIONS) || !defined(VBOX_ONLY_BUILD) ifndef VBOX_WITH_ADDITIONS_FROM_BUILD_SERVER ifdef VBOX_WITH_ADDITIONS PROGRAMS += vkatadd endif endif endif endif endif # # Utility to play sine wave to Default Audio Device. # if 0 # Disabled for now; does not work without WinMM.dll import validator files. PROGRAMS.win += ntPlayToneWaveX ntPlayToneWaveX_TEMPLATE = VBoxValidationKitR3 ntPlayToneWaveX_SOURCES = ntPlayToneWaveX.cpp ntPlayToneWaveX_LIBS += \ WinMM.Lib endif # # The Validation Kit Audio Test (VKAT) utility. # VKAT_PATH_AUDIO = $(PATH_ROOT)/src/VBox/Devices/Audio vkat_TEMPLATE = VBoxValidationKitR3 vkat_VBOX_IMPORT_CHECKER.win.x86 = nt4 vkat_DEFS = VBOX_AUDIO_VKAT IN_VMM_R3 IN_VMM_STATIC vkat_INCS += \ $(PATH_ROOT)/src/VBox/Devices/build \ $(PATH_ROOT)/src/VBox/Devices \ $(PATH_ROOT)/src/VBox/Devices/Audio vkat_SOURCES = \ vkat.cpp \ vkatCommon.cpp \ vkatCmdGeneric.cpp \ vkatDriverStack.cpp \ $(VKAT_PATH_AUDIO)/AudioTest.cpp \ $(VKAT_PATH_AUDIO)/DrvAudio.cpp \ $(VKAT_PATH_AUDIO)/DrvHostAudioNull.cpp \ $(VKAT_PATH_AUDIO)/AudioMixer.cpp \ $(VKAT_PATH_AUDIO)/AudioMixBuffer.cpp \ $(VKAT_PATH_AUDIO)/AudioHlp.cpp # Debug stuff. ifdef VBOX_WITH_AUDIO_DEBUG vkat_DEFS += VBOX_WITH_AUDIO_DEBUG vkat_SOURCES += \ $(VKAT_PATH_AUDIO)/DrvHostAudioDebug.cpp endif # Self-test stuff. vkat_DEFS += VBOX_WITH_AUDIO_VALIDATIONKIT vkat_SOURCES += \ vkatCmdSelfTest.cpp \ $(VKAT_PATH_AUDIO)/DrvHostAudioValidationKit.cpp \ $(VKAT_PATH_AUDIO)/AudioTestService.cpp \ $(VKAT_PATH_AUDIO)/AudioTestServiceClient.cpp \ $(VKAT_PATH_AUDIO)/AudioTestServiceProtocol.cpp \ $(VKAT_PATH_AUDIO)/AudioTestServiceTcp.cpp ifdef VBOX_WITH_AUDIO_PULSE vkat_DEFS += VBOX_WITH_AUDIO_PULSE vkat_SOURCES += \ $(VKAT_PATH_AUDIO)/DrvHostAudioPulseAudioStubs.cpp \ $(VKAT_PATH_AUDIO)/DrvHostAudioPulseAudio.cpp endif ifdef VBOX_WITH_AUDIO_ALSA vkat_DEFS += VBOX_WITH_AUDIO_ALSA vkat_SOURCES += \ $(VKAT_PATH_AUDIO)/DrvHostAudioAlsa.cpp \ $(VKAT_PATH_AUDIO)/DrvHostAudioAlsaStubs.cpp endif ifdef VBOX_WITH_AUDIO_OSS vkat_DEFS += VBOX_WITH_AUDIO_OSS vkat_SOURCES += \ $(VKAT_PATH_AUDIO)/DrvHostAudioOss.cpp endif vkat_SOURCES.win += \ $(VKAT_PATH_AUDIO)/DrvHostAudioDSound.cpp \ $(VKAT_PATH_AUDIO)/DrvHostAudioWasApi.cpp ifdef VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT vkat_DEFS.win += VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT vkat_SOURCES.win += \ $(VKAT_PATH_AUDIO)/DrvHostAudioDSoundMMNotifClient.cpp endif vkat_SOURCES.darwin = \ $(VKAT_PATH_AUDIO)/DrvHostAudioCoreAudio.cpp \ $(VKAT_PATH_AUDIO)/DrvHostAudioCoreAudioAuth.mm vkat_LDFLAGS.darwin = \ -framework CoreAudio \ -framework AudioUnit \ -framework AudioToolbox \ -framework Foundation ifn1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.4 10.5 10.6) vkat_LDFLAGS.darwin += \ -framework AVFoundation endif # # The additions variant of the audio test utility. # # We name it VBoxAudioTest though, to not clutter up Guest Additions # installations with cryptic binaries not sporting 'VBox' as prefix. # vkatadd_TEMPLATE = VBoxGuestR3Exe vkatadd_EXTENDS = vkat vkatadd_EXTENDS_BY = appending vkatadd_NAME = VBoxAudioTest vkatadd_SDKS = VBOX_ZLIB_STATIC vkatadd_LDFLAGS.darwin = -framework IOKit vkatadd_LIBS.solaris = m # # Build the valkit vkat to bin as VBoxAudioTest, so that it can be shipped with the host installer too. # # We use the same name as for the GAs, even if the binaries is the same as the # validation kit. # # Note: We also need to have this as a signed binary, so don't just copy the vkat binary from above to # the bin/ directory but built this as an own binary. # ifdef VBOX_WITH_HOST_SHIPPING_AUDIO_TEST ifn1of ($(KBUILD_TARGET), os2 freebsd netbsd openbsd) ifndef VBOX_ONLY_ADDITIONS vkathost_TEMPLATE = VBoxR3Static vkathost_EXTENDS = vkat vkathost_EXTENDS_BY = appending vkathost_INST = $(INST_BIN) vkathost_NAME = VBoxAudioTest endif endif endif if defined(VBOX_WITH_TESTCASES) && !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_SDK) \ && 0 ## @todo r=bird: Disabled because nobody really wants or needs to run this during build other than Andy. ## And more importantly, it breaks the build (os2, bsd*). PROGRAMS += tstVkatHostSelftest tstVkatHostSelftest_EXTENDS = vkat tstVkatHostSelftest_EXTENDS_BY = appending tstVkatHostSelftest_INST = $(INST_TESTCASE) tstVkatHostSelftest_DEFS.debug = VBOX_WITH_EF_WRAPS TESTING += $(tstVkatHostSelftest_0_OUTDIR)/tstVkatHostSelftest.run $$(tstVkatHostSelftest_0_OUTDIR)/tstVkatHostSelftest.run: $$(tstVkatHostSelftest_1_TARGET) export VKAT_RELEASE_LOG=-all; $(tstVkatHostSelftest_1_TARGET) selftest $(QUIET)$(APPEND) -t "$@" "done" endif include $(FILE_KBUILD_SUB_FOOTER)