mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-15 23:42:12 +00:00
The service is loaded dynamically VBoxSharedClipboard.so at runtime. The VFS configuration mounts the shared object at /VBoxSharedClipboard.so as the file is checked by contrib code before loading. An init configuration in pkg/vbox6/runtime illustrates this and how to re-label the VBoxSharedClipboard.so ROM to its real name virtualbox6-sharedclipboard.lib.so.
282 lines
14 KiB
Plaintext
282 lines
14 KiB
Plaintext
LICENSE := GPLv2
|
|
VERSION := 6.1.26
|
|
DOWNLOADS := virtualbox.archive virtualbox_sdk.archive
|
|
|
|
VIRTUALBOX_TBZ2 := VirtualBox-$(VERSION).tar.bz2
|
|
VIRTUALBOX_SDK_ZIP := VirtualBoxSDK-$(VERSION)-145957.zip
|
|
|
|
URL(virtualbox) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_TBZ2)
|
|
DIR(virtualbox) := src/virtualbox6
|
|
SHA(virtualbox) := 0212602eea878d6c9fd7f4a3e0182da3e4505f31d25f5539fb8f7b1fbe366195
|
|
|
|
URL(virtualbox_sdk) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_SDK_ZIP)
|
|
DIR(virtualbox_sdk) := src/virtualbox6_sdk
|
|
SHA(virtualbox_sdk) := c0b5fbd78d6e1ac7a4b33365eb173eb6508390e8c673241ccbbd002eb73a785c
|
|
|
|
PATCHES_DIR := src/virtualbox6/patches
|
|
PATCHES := $(addprefix $(PATCHES_DIR)/, $(shell cat $(REP_DIR)/$(PATCHES_DIR)/series))
|
|
PATCH_OPT := -p1
|
|
|
|
$(call check_tool,xsltproc)
|
|
$(call check_tool,yasm)
|
|
$(call check_tool,iasl)
|
|
|
|
VBOX_MAIN_GLUE := AutoLock EventQueue string xpcom/helpers com ErrorInfo
|
|
VBOX_MAIN_GLUE += NativeEventQueue GetVBoxUserHomeDirectory
|
|
|
|
VBOX_MAIN_ALL := AuthLibrary AutoCaller DisplayResampleImage DisplayUtils
|
|
VBOX_MAIN_ALL += PCIDeviceAttachmentImpl ProgressImpl SharedFolderImpl
|
|
VBOX_MAIN_ALL += ThreadTask VirtualBoxBase GlobalStatusConversion
|
|
VBOX_MAIN_ALL += EventImpl Global HashedPw SecretKeyStore
|
|
VBOX_MAIN_ALL += VirtualBoxErrorInfoImpl
|
|
|
|
VBOX_MAIN_CLI := AdditionsFacilityImpl BusAssignmentManager
|
|
VBOX_MAIN_CLI += ConsoleImpl ConsoleImpl2 ConsoleVRDPServer
|
|
VBOX_MAIN_CLI += DisplayImpl DisplayImplLegacy DisplaySourceBitmapImpl
|
|
VBOX_MAIN_CLI += DrvAudioVRDE EmulatedUSBImpl GuestCtrlImpl GuestImpl
|
|
VBOX_MAIN_CLI += HGCM HGCMThread HGCMObjects
|
|
VBOX_MAIN_CLI += KeyboardImpl SessionImpl VMMDevInterface
|
|
VBOX_MAIN_CLI += MouseImpl MachineDebuggerImpl
|
|
VBOX_MAIN_CLI += USBDeviceImpl UsbWebcamInterface VBoxDriversRegister
|
|
VBOX_MAIN_CLI += RemoteUSBDeviceImpl RemoteUSBBackend ClientTokenHolder
|
|
VBOX_MAIN_CLI += GuestCtrlPrivate
|
|
VBOX_MAIN_CLI += GuestDirectoryImpl
|
|
VBOX_MAIN_CLI += GuestDnDPrivate
|
|
VBOX_MAIN_CLI += GuestFileImpl
|
|
VBOX_MAIN_CLI += GuestProcessImpl
|
|
VBOX_MAIN_CLI += GuestDnDSourceImpl
|
|
VBOX_MAIN_CLI += GuestFsObjInfoImpl
|
|
VBOX_MAIN_CLI += GuestSessionImpl
|
|
VBOX_MAIN_CLI += GuestSessionImplTasks
|
|
VBOX_MAIN_CLI += GuestDnDTargetImpl
|
|
|
|
VBOX_MAIN_SRV := AudioAdapterImpl ClientToken DHCPServerImpl Matching
|
|
VBOX_MAIN_SRV += MediumAttachmentImpl NATEngineImpl NATNetworkImpl
|
|
VBOX_MAIN_SRV += BandwidthControlImpl GuestOSTypeImpl HostUSBDeviceImpl
|
|
VBOX_MAIN_SRV += MediumFormatImpl NetworkAdapterImpl SnapshotImpl
|
|
VBOX_MAIN_SRV += BandwidthGroupImpl MachineImplCloneVM MediumImpl
|
|
VBOX_MAIN_SRV += NetworkServiceRunner StorageControllerImpl VirtualBoxImpl
|
|
VBOX_MAIN_SRV += BIOSSettingsImpl MachineImpl MediumLock ParallelPortImpl
|
|
VBOX_MAIN_SRV += SystemPropertiesImpl VRDEServerImpl TokenImpl SerialPortImpl
|
|
VBOX_MAIN_SRV += USBControllerImpl USBDeviceFilterImpl USBDeviceFiltersImpl
|
|
VBOX_MAIN_SRV += DHCPConfigImpl PerformanceImpl Performance RecordingSettingsImpl
|
|
VBOX_MAIN_SRV += HostImpl GraphicsAdapterImpl RecordingScreenSettingsImpl
|
|
VBOX_MAIN_SRV += HostDnsService HostNetworkInterfaceImpl MediumIOImpl
|
|
VBOX_MAIN_SRV += DataStreamImpl HostPower ProgressProxyImpl
|
|
VBOX_MAIN_SRV += os2/PerformanceOs2 ClientWatcher
|
|
VBOX_MAIN_SRV += generic/NetIf-generic
|
|
|
|
VBOX_MAIN_INC := AdditionsFacilityImpl AudioAdapterImpl AuthLibrary
|
|
VBOX_MAIN_INC += AutoCaller AutostartDb AutoStateDep BandwidthControlImpl
|
|
VBOX_MAIN_INC += BandwidthGroupImpl BIOSSettingsImpl BusAssignmentManager
|
|
VBOX_MAIN_INC += ClientToken ConsoleImpl DHCPServerImpl DisplayImpl HostImpl
|
|
VBOX_MAIN_INC += DisplayUtils DrvAudioVRDE EventImpl ExtPackManagerImpl Global
|
|
VBOX_MAIN_INC += GuestCtrlImplPrivate GuestDirectoryImpl LoggingNew
|
|
VBOX_MAIN_INC += GuestFileImpl GuestFsObjInfoImpl GuestImpl GuestOSTypeImpl
|
|
VBOX_MAIN_INC += GuestSessionImpl HashedPw KeyboardImpl MachineImplCloneVM
|
|
VBOX_MAIN_INC += HGCM HGCMThread HGCMObjects
|
|
VBOX_MAIN_INC += MachineImpl MediumAttachmentImpl MediumFormatImpl MediumImpl
|
|
VBOX_MAIN_INC += MediumLock MouseImpl NATEngineImpl NATNetworkImpl
|
|
VBOX_MAIN_INC += NetworkAdapterImpl NetworkServiceRunner
|
|
VBOX_MAIN_INC += objectslist ObjectState vector netif
|
|
VBOX_MAIN_INC += ParallelPortImpl PCIDeviceAttachmentImpl Performance
|
|
VBOX_MAIN_INC += ProgressImpl ProgressProxyImpl QMTranslator SnapshotImpl
|
|
VBOX_MAIN_INC += SecretKeyStore SerialPortImpl SessionImpl SharedFolderImpl
|
|
VBOX_MAIN_INC += StorageControllerImpl SystemPropertiesImpl TokenImpl VMMDev
|
|
VBOX_MAIN_INC += UsbWebcamInterface
|
|
VBOX_MAIN_INC += USBControllerImpl USBDeviceFilterImpl USBDeviceFiltersImpl
|
|
VBOX_MAIN_INC += USBIdDatabase USBProxyService VirtualBoxImpl VRDEServerImpl GuestProcessImpl
|
|
VBOX_MAIN_INC += USBDeviceImpl HostUSBDeviceImpl Matching Wrapper
|
|
VBOX_MAIN_INC += RemoteUSBDeviceImpl RemoteUSBBackend ConsoleVRDPServer
|
|
VBOX_MAIN_INC += MachineDebuggerImpl EmulatedUSBImpl
|
|
VBOX_MAIN_INC += ThreadTask USBProxyBackend
|
|
VBOX_MAIN_INC += RecordingSettingsImpl GraphicsAdapterImpl PerformanceImpl
|
|
VBOX_MAIN_INC += AudioDriver GuestSessionImplTasks ClientTokenHolder
|
|
VBOX_MAIN_INC += DHCPConfigImpl MachineImplMoveVM MediumIOImpl
|
|
VBOX_MAIN_INC += MachineLaunchVMCommonWorker ClientWatcher
|
|
VBOX_MAIN_INC += CloudProviderManagerImpl HostNetworkInterfaceImpl
|
|
VBOX_MAIN_INC += HostVideoInputDeviceImpl HostPower HostHardwareLinux
|
|
VBOX_MAIN_INC += RecordingScreenSettingsImpl DataStreamImpl
|
|
VBOX_MAIN_INC += GuestDnDSourceImpl GuestDnDTargetImpl GuestDnDPrivate
|
|
VBOX_MAIN_INC += VirtualBoxBase VirtualBoxErrorInfoImpl
|
|
|
|
VBOX_SRC_VBOX := VMM Devices Runtime GuestHost
|
|
VBOX_SRC_VBOX += Storage Disassembler
|
|
VBOX_SRC_VBOX += HostDrivers/Support
|
|
VBOX_SRC_VBOX += HostServices/SharedFolders Main/xml/Settings.cpp
|
|
VBOX_SRC_VBOX += HostServices/SharedClipboard
|
|
VBOX_SRC_VBOX += HostServices/GuestProperties
|
|
VBOX_SRC_VBOX += HostServices/common/message.cpp
|
|
VBOX_SRC_VBOX += NetworkServices/Dhcpd
|
|
VBOX_SRC_VBOX += Main/xml/VirtualBox-settings.xsd Main/xml/SchemaDefs.xsl
|
|
VBOX_SRC_VBOX += Main/idl/docstrip.xsl Main/idl/VirtualBox.xidl
|
|
VBOX_SRC_VBOX += Main/idl/comimpl.xsl
|
|
VBOX_SRC_VBOX += Main/idl/apiwrap-server.xsl
|
|
VBOX_SRC_VBOX += Main/idl/typemap-shared.inc.xsl
|
|
VBOX_SRC_VBOX += Main/src-server/HostDnsService.h
|
|
VBOX_SRC_VBOX += $(addsuffix .h, $(addprefix Main/include/, $(VBOX_MAIN_INC)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/src-client/, $(VBOX_MAIN_CLI)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/src-server/, $(VBOX_MAIN_SRV)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/src-all/, $(VBOX_MAIN_ALL)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/glue/, $(VBOX_MAIN_GLUE)))
|
|
|
|
VBOX_INC := types.h cdefs.h hgcmsvc.h err.h dis.h disopcode.h log.h sup.h pci.h
|
|
VBOX_INC += param.h ostypes.h VMMDev.h vusb.h dbg.h version.h scsiinline.h
|
|
VBOX_INC += bioslogo.h scsi.h shflsvc.h vd.h vdmedia.h vd-common.h
|
|
VBOX_INC += vd-plugin.h vd-ifs.h vd-ifs-internal.h vd-image-backend.h
|
|
VBOX_INC += vd-cache-backend.h vd-filter-backend.h msi.h asmdefs.mac err.mac
|
|
VBOX_INC += settings.h VBoxAuth.h VBoxTpG.h
|
|
VBOX_INC += usb.h usbfilter.h vrdpusb.h AssertGuest.h bios.h ata.h vscsi.h
|
|
VBOX_INC += RemoteDesktop Graphics ExtPack/ExtPack.h VMMDevCoreTypes.h
|
|
VBOX_INC += VBoxGuestCoreTypes.h intnet.h
|
|
|
|
VBOX_INC_COM := array.h assert.h AutoLock.h ErrorInfo.h EventQueue.h Guid.h
|
|
VBOX_INC_COM += list.h MultiResult.h string.h defs.h ptr.h VirtualBox.h com.h
|
|
VBOX_INC_COM += utils.h listeners.h NativeEventQueue.h
|
|
|
|
VBOX_CONTENT := $(addprefix src/VBox/,$(VBOX_SRC_VBOX))
|
|
VBOX_CONTENT += $(addprefix include/VBox/, $(VBOX_INC))
|
|
VBOX_CONTENT += $(addprefix include/VBox/com/, $(VBOX_INC_COM))
|
|
VBOX_CONTENT += include/VBox/HostServices/
|
|
VBOX_CONTENT += include/VBox/GuestHost/
|
|
|
|
VBOX_CONTENT += src/libs/zlib-1.2.11 src/libs/liblzf-3.4 src/libs/libxml2-2.9.4
|
|
VBOX_CONTENT += src/libs/xpcom18a4
|
|
VBOX_CONTENT += include/VBox/vmm include/iprt Version.kmk
|
|
VBOX_CONTENT += COPYING
|
|
|
|
|
|
TAR_OPT(virtualbox) := \
|
|
--strip-components 1 \
|
|
$(addprefix $(VIRTUALBOX_TBZ2:.tar.bz2=)/,$(VBOX_CONTENT))
|
|
|
|
UNZIP_OPT(virtualbox_sdk) := $(VIRTUALBOX_SDK_ZIP) "sdk/bindings/xpcom/include*" \#
|
|
|
|
|
|
default : additional_steps
|
|
additional_steps : $(DOWNLOADS)
|
|
$(VERBOSE)xsltproc --stringparam mode declare \
|
|
-o src/virtualbox6/src/VBox/Main/xml/SchemaDefs.h \
|
|
src/virtualbox6/src/VBox/Main/xml/SchemaDefs.xsl \
|
|
src/virtualbox6/src/VBox/Main/xml/VirtualBox-settings.xsd
|
|
$(VERBOSE)xsltproc -o src/virtualbox6/VirtualBox_stripped.xidl \
|
|
src/virtualbox6/src/VBox/Main/idl/docstrip.xsl \
|
|
src/virtualbox6/src/VBox/Main/idl/VirtualBox.xidl
|
|
$(VERBOSE)xsltproc \
|
|
-o src/virtualbox6/src/VBox/Runtime/common/err/errmsgvboxcomdata.h \
|
|
src/virtualbox6/src/VBox/Runtime/VBox/errmsgvboxcom.xsl \
|
|
src/virtualbox6/VirtualBox_stripped.xidl
|
|
$(VERBOSE)xsltproc --stringparam G_kind VBoxEventHeader \
|
|
-o src/virtualbox6/src/VBox/Main/include/VBoxEvents.h \
|
|
src/virtualbox6/src/VBox/Main/idl/comimpl.xsl \
|
|
src/virtualbox6/VirtualBox_stripped.xidl
|
|
$(VERBOSE)xsltproc --stringparam G_kind VBoxEvent \
|
|
-o src/virtualbox6/src/VBox/Main/VBoxEvents.cpp \
|
|
src/virtualbox6/src/VBox/Main/idl/comimpl.xsl \
|
|
src/virtualbox6/VirtualBox_stripped.xidl
|
|
$(VERBOSE)xsltproc --stringparam KBUILD_HOST genode \
|
|
--stringparam generating "headers" -o src/virtualbox6/VBoxAPIWrap/apiwrappers-headers \
|
|
src/virtualbox6/src/VBox/Main/idl/apiwrap-server.xsl \
|
|
src/virtualbox6/VirtualBox_stripped.xidl
|
|
$(VERBOSE)xsltproc --stringparam KBUILD_HOST genode \
|
|
--stringparam generating "sources" --param reminder 0 \
|
|
-o src/virtualbox6/VBoxAPIWrap/apiwrappers-sources-even \
|
|
src/virtualbox6/src/VBox/Main/idl/apiwrap-server.xsl \
|
|
src/virtualbox6/VirtualBox_stripped.xidl
|
|
$(VERBOSE)xsltproc --stringparam KBUILD_HOST genode \
|
|
--stringparam generating "sources" --param reminder 1 \
|
|
-o src/virtualbox6/VBoxAPIWrap/apiwrappers-sources-odd \
|
|
src/virtualbox6/src/VBox/Main/idl/apiwrap-server.xsl \
|
|
src/virtualbox6/VirtualBox_stripped.xidl
|
|
$(VERBOSE)mkdir -p src/virtualbox6/VBoxAPIWrap ; \
|
|
cd src/virtualbox6 ; \
|
|
csplit -s -n 1 -f "VBoxAPIWrap/xx" VBoxAPIWrap/apiwrappers-headers '/##### ENDFILE.*$$/' '{*}' && \
|
|
i=0 && \
|
|
for f in $$(grep "BEGINFILE \"" VBoxAPIWrap/apiwrappers-headers | sed "s,//.*BEGINFILE \",,g" | sed "s,\",,g"); do \
|
|
mv "VBoxAPIWrap/xx$$((i++))" "VBoxAPIWrap/$$f"; \
|
|
done && \
|
|
rm "VBoxAPIWrap/xx$$((i))" ; \
|
|
csplit -s -n 1 -f "VBoxAPIWrap/xx" VBoxAPIWrap/apiwrappers-sources-even '/##### ENDFILE.*$$/' '{*}' && \
|
|
i=0 && \
|
|
for f in $$(grep "BEGINFILE \"" VBoxAPIWrap/apiwrappers-sources-even | sed "s,//.*BEGINFILE \",,g" | sed "s,\",,g"); do \
|
|
mv "VBoxAPIWrap/xx$$((i++))" "VBoxAPIWrap/$$f"; \
|
|
done && \
|
|
rm "VBoxAPIWrap/xx$$((i))" ; \
|
|
csplit -s -n 1 -f "VBoxAPIWrap/xx" VBoxAPIWrap/apiwrappers-sources-odd '/##### ENDFILE.*$$/' '{*}' && \
|
|
i=0 && \
|
|
for f in $$(grep "BEGINFILE \"" VBoxAPIWrap/apiwrappers-sources-odd | sed "s,//.*BEGINFILE \",,g" | sed "s,\",,g"); do \
|
|
mv "VBoxAPIWrap/xx$$((i++))" "VBoxAPIWrap/$$f"; \
|
|
done && \
|
|
rm "VBoxAPIWrap/xx$$((i))"
|
|
|
|
|
|
#
|
|
# Generate IEMInstructionStatisticsTmpl.h from the IEM implementation
|
|
#
|
|
# The sed script is based in VBox/VMM/Makefile.kmk.
|
|
#
|
|
|
|
default: src/virtualbox6/src/VBox/VMM/include/IEMInstructionStatisticsTmpl.h
|
|
|
|
IEM_INSTRUCTIONS_CPP_H := $(addprefix src/virtualbox6/src/VBox/VMM/VMMAll/, \
|
|
IEMAllInstructions.cpp.h \
|
|
IEMAllInstructionsOneByte.cpp.h \
|
|
IEMAllInstructionsTwoByte0f.cpp.h \
|
|
IEMAllInstructionsThree0f38.cpp.h \
|
|
IEMAllInstructionsThree0f3a.cpp.h \
|
|
IEMAllInstructionsVexMap1.cpp.h \
|
|
IEMAllInstructionsVexMap2.cpp.h \
|
|
IEMAllInstructionsVexMap3.cpp.h \
|
|
IEMAllInstructions3DNow.cpp.h)
|
|
|
|
define IEM_INSTRUCTION_STATISTICS_TMPL_HEADER
|
|
/* Warning: autogenerated by ports/ports/virtualbox6.port */
|
|
#define IEM_DO_INSTR_STAT0(f,u,l,fd,fi) IEM_DO_INSTR_STAT(l, #l)
|
|
#define IEM_DO_INSTR_STAT1(f,u,l,o1,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1, #l " " #o1)
|
|
#define IEM_DO_INSTR_STAT2(f,u,l,o1,o2,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1 ## _ ## o2, #l " " #o1 "," #o2)
|
|
#define IEM_DO_INSTR_STAT3(f,u,l,o1,o2,o3,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1 ## _ ## o2 ## _ ## o3, #l " " #o1 "," #o2 "," #o3)
|
|
#define IEM_DO_INSTR_STAT4(f,u,l,o1,o2,o3,o4,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1 ## _ ## o2 ## _ ## o3 ## _ ## o4, #l " " #o1 "," #o2 "," #o3 "," #o4)
|
|
#define IEM_DO_INSTR_STAT0EX(s,m,f,u,l,fd,fi) IEM_DO_INSTR_STAT(s,m)
|
|
#define IEM_DO_INSTR_STAT1EX(s,m,f,u,l,o1,fd,fi) IEM_DO_INSTR_STAT(s,m)
|
|
#define IEM_DO_INSTR_STAT2EX(s,m,f,u,l,o1,o2,fd,fi) IEM_DO_INSTR_STAT(s,m)
|
|
#define IEM_DO_INSTR_STAT3EX(s,m,f,u,l,o1,o2,o3,fd,fi) IEM_DO_INSTR_STAT(s,m)
|
|
#define IEM_DO_INSTR_STAT4EX(s,m,f,u,l,o1,o2,o3,o4,fd,fi) IEM_DO_INSTR_STAT(s,m)
|
|
endef
|
|
|
|
define IEM_INSTRUCTION_STATISTICS_TMPL_FOOTER
|
|
#undef IEM_DO_INSTR_STAT0
|
|
#undef IEM_DO_INSTR_STAT1
|
|
#undef IEM_DO_INSTR_STAT2
|
|
#undef IEM_DO_INSTR_STAT3
|
|
#undef IEM_DO_INSTR_STAT4
|
|
#undef IEM_DO_INSTR_STAT0EX
|
|
#undef IEM_DO_INSTR_STAT1EX
|
|
#undef IEM_DO_INSTR_STAT2EX
|
|
#undef IEM_DO_INSTR_STAT3EX
|
|
#undef IEM_DO_INSTR_STAT4EX
|
|
endef
|
|
|
|
define NEWLINE
|
|
|
|
|
|
endef
|
|
|
|
src/virtualbox6/src/VBox/VMM/include/IEMInstructionStatisticsTmpl.h: additional_steps
|
|
$(VERBOSE)( \
|
|
echo -e '$(subst $(NEWLINE),\n,$(IEM_INSTRUCTION_STATISTICS_TMPL_HEADER))'; \
|
|
sed \
|
|
-e '/IEMOP_MNEMONIC\(\|[01234]\|[01234]EX\)(/!d' \
|
|
-e ':look-for-end-of-invocation' \
|
|
-e '/)/bend-of-invocation' \
|
|
-e 'N' \
|
|
-e 'blook-for-end-of-invocation' \
|
|
-e ':end-of-invocation' \
|
|
-e 's/\n/ /g' \
|
|
-e 's/ */ /g' \
|
|
-e 's/^.*IEMOP_MNEMONIC\(\|[01234]\|[01234]EX\)(/IEM_DO_INSTR_STAT\1(/' \
|
|
-e 's/;.*$(DOLLAR)//' \
|
|
$(IEM_INSTRUCTIONS_CPP_H) | sort ; \
|
|
echo -e '$(subst $(NEWLINE),\n,$(IEM_INSTRUCTION_STATISTICS_TMPL_FOOTER))' \
|
|
) > $@
|
|
|