diff --git a/repos/ports/lib/mk/spec/nova/virtualbox5-hwaccl.mk b/repos/ports/lib/mk/spec/nova/virtualbox5-nova.mk similarity index 100% rename from repos/ports/lib/mk/spec/nova/virtualbox5-hwaccl.mk rename to repos/ports/lib/mk/spec/nova/virtualbox5-nova.mk diff --git a/repos/ports/lib/mk/virtualbox5-common.inc b/repos/ports/lib/mk/virtualbox5-common.inc index 7bb6d9482..5d315017d 100644 --- a/repos/ports/lib/mk/virtualbox5-common.inc +++ b/repos/ports/lib/mk/virtualbox5-common.inc @@ -52,11 +52,9 @@ VBOX_CC_OPT += -DVBOX_WITH_E1000 VBOX_CC_OPT += -DVBOX_WITH_AHCI -ifneq ($(call select_from_ports,virtualbox5),) -VIRTUALBOX_VERSION_MAJOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk | grep "VBOX_VERSION_MAJOR = " | grep -v "'VBOX_VERSION_MAJOR" | sed "s/^.*= //") -VIRTUALBOX_VERSION_MINOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk | grep "VBOX_VERSION_MINOR = " | grep -v "'VBOX_VERSION_MINOR" | sed "s/^.*= //") -VIRTUALBOX_VERSION_BUILD := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk | grep "VBOX_VERSION_BUILD = " | grep -v "'VBOX_VERSION_BUILD" | sed "s/^.*= //") -endif +VIRTUALBOX_VERSION_MAJOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_MAJOR = " | grep -v "'VBOX_VERSION_MAJOR" | sed "s/^.*= //") +VIRTUALBOX_VERSION_MINOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_MINOR = " | grep -v "'VBOX_VERSION_MINOR" | sed "s/^.*= //") +VIRTUALBOX_VERSION_BUILD := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_BUILD = " | grep -v "'VBOX_VERSION_BUILD" | sed "s/^.*= //") ifeq ($(VBOX_MACH),x86_32) VIRTUALBOX_PACKAGE_STRING = GenodeOS_32BIT_GENERIC diff --git a/repos/ports/lib/mk/virtualbox5-hwaccl-off.mk b/repos/ports/lib/mk/virtualbox5-hwaccl-off.mk new file mode 100644 index 000000000..0df78f41e --- /dev/null +++ b/repos/ports/lib/mk/virtualbox5-hwaccl-off.mk @@ -0,0 +1,16 @@ +include $(REP_DIR)/lib/mk/virtualbox5-common.inc + +LIBS += stdcxx + +SRC_CC = sup.cc + +INC_DIR += $(call select_from_repositories,src/lib/libc) +INC_DIR += $(VBOX_DIR)/Main/xml +INC_DIR += $(VBOX_DIR)/Main/include +INC_DIR += $(VBOX_DIR)/VMM/include +INC_DIR += $(REP_DIR)/src/virtualbox +INC_DIR += $(REP_DIR)/src/virtualbox5/frontend +INC_DIR += $(REP_DIR)/src/virtualbox5/accloff + +#vpath pgm.cc $(REP_DIR)/src/virtualbox5/ +vpath sup.cc $(REP_DIR)/src/virtualbox5/accloff/ diff --git a/repos/ports/ports/virtualbox5.hash b/repos/ports/ports/virtualbox5.hash index 4d562db2b..9d855a2a7 100644 --- a/repos/ports/ports/virtualbox5.hash +++ b/repos/ports/ports/virtualbox5.hash @@ -1 +1 @@ -720a329b2f1eb7b71e8b3c7542b9f744224d370a +020f44048cce7d299293e5ebc72b356f3aff1ff0 diff --git a/repos/ports/ports/virtualbox5.port b/repos/ports/ports/virtualbox5.port index 27c7efdd8..0361c535a 100644 --- a/repos/ports/ports/virtualbox5.port +++ b/repos/ports/ports/virtualbox5.port @@ -119,41 +119,41 @@ UNZIP_OPT(virtualbox_sdk) := $(VIRTUALBOX_SDK_ZIP) sdk/bindings/xpcom/include/Vi default : additional_steps additional_steps : $(DOWNLOADS) - @xsltproc --stringparam mode declare \ + $(VERBOSE)xsltproc --stringparam mode declare \ -o src/app/virtualbox/src/VBox/Main/xml/SchemaDefs.h \ src/app/virtualbox/src/VBox/Main/xml/SchemaDefs.xsl \ src/app/virtualbox/src/VBox/Main/xml/VirtualBox-settings.xsd - xsltproc -o VirtualBox_stripped.xidl \ + $(VERBOSE)xsltproc -o VirtualBox_stripped.xidl \ src/app/virtualbox/src/VBox/Main/idl/docstrip.xsl \ src/app/virtualbox/src/VBox/Main/idl/VirtualBox.xidl - xsltproc --stringparam KBUILD_HOST genode \ + $(VERBOSE)xsltproc --stringparam KBUILD_HOST genode \ --stringparam generating "headers" -o VBoxAPIWrap/apiwrappers-headers \ src/app/virtualbox/src/VBox/Main/idl/apiwrap-server.xsl \ VirtualBox_stripped.xidl - xsltproc --stringparam KBUILD_HOST genode \ + $(VERBOSE)xsltproc --stringparam KBUILD_HOST genode \ --stringparam generating "sources" --param reminder 0 \ -o VBoxAPIWrap/apiwrappers-sources-even \ src/app/virtualbox/src/VBox/Main/idl/apiwrap-server.xsl \ VirtualBox_stripped.xidl - xsltproc --stringparam KBUILD_HOST genode \ + $(VERBOSE)xsltproc --stringparam KBUILD_HOST genode \ --stringparam generating "sources" --param reminder 1 \ -o VBoxAPIWrap/apiwrappers-sources-odd \ src/app/virtualbox/src/VBox/Main/idl/apiwrap-server.xsl \ VirtualBox_stripped.xidl - mkdir -p src/app/virtualbox/VBoxAPIWrap - csplit -s -n 1 -f "VBoxAPIWrap/xx" VBoxAPIWrap/apiwrappers-headers '/##### ENDFILE.*$$/' '{*}' && \ + $(VERBOSE)mkdir -p src/app/virtualbox/VBoxAPIWrap + $(VERBOSE)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++))" "src/app/virtualbox/VBoxAPIWrap/$$f"; \ done && \ rm "VBoxAPIWrap/xx$$((i))" - csplit -s -n 1 -f "VBoxAPIWrap/xx" VBoxAPIWrap/apiwrappers-sources-even '/##### ENDFILE.*$$/' '{*}' && \ + $(VERBOSE)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++))" "src/app/virtualbox/VBoxAPIWrap/$$f"; \ done && \ rm "VBoxAPIWrap/xx$$((i))" - csplit -s -n 1 -f "VBoxAPIWrap/xx" VBoxAPIWrap/apiwrappers-sources-odd '/##### ENDFILE.*$$/' '{*}' && \ + $(VERBOSE)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++))" "src/app/virtualbox/VBoxAPIWrap/$$f"; \ diff --git a/repos/ports/run/test.vbox b/repos/ports/run/test.vbox index f93f2a9b5..12181b45e 100644 --- a/repos/ports/run/test.vbox +++ b/repos/ports/run/test.vbox @@ -44,7 +44,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/repos/ports/run/vbox_win.inc b/repos/ports/run/vbox_win.inc index 936b017c5..62ecd3d38 100644 --- a/repos/ports/run/vbox_win.inc +++ b/repos/ports/run/vbox_win.inc @@ -41,9 +41,14 @@ set boot_modules { dynamic_rom } -set virtualbox_binary "virtualbox-rem" +set virtualbox_binary "virtualbox-rem" +set virtualbox5_binary "virtualbox5-rem" + if {[have_spec muen]} { set virtualbox_binary "virtualbox-muen" } -if {[have_spec nova]} { set virtualbox_binary "virtualbox-nova" } +if {[have_spec nova]} { + set virtualbox_binary "virtualbox-nova" + set virtualbox5_binary "virtualbox5-nova" +} set config_of_app { @@ -245,8 +250,8 @@ for { set i 1} { $i <= $use_vms } { incr i} { " append_if [expr $use_vbox4] config_of_app " " - append_if [expr $use_vbox5] config_of_app { - } + append_if [expr $use_vbox5] config_of_app " + " append config_of_app { } diff --git a/repos/ports/run/virtualbox.run b/repos/ports/run/virtualbox.run index 906cf9295..388cecf8f 100644 --- a/repos/ports/run/virtualbox.run +++ b/repos/ports/run/virtualbox.run @@ -1,18 +1,28 @@ set use_net 0 set use_ps2 [have_spec ps2] set use_usb 0 -set use_serial 0 +set use_serial 1 -set virtualbox_binary "virtualbox-rem" -if {[have_spec muen]} { set virtualbox_binary "virtualbox-muen" } -if {[have_spec nova]} { set virtualbox_binary "virtualbox-nova" } +set use_vbox4 1 +set use_vbox5 [expr !$use_vbox4] set build_components { - core init virtualbox + core init drivers/framebuffer drivers/timer } +if {$use_vbox4} { + append build_components virtualbox + set virtualbox_binary "virtualbox-rem" + if {[have_spec muen]} { set virtualbox_binary "virtualbox-muen" } + if {[have_spec nova]} { set virtualbox_binary "virtualbox-nova" } +} else { + append build_components virtualbox5 + set virtualbox_binary "virtualbox5-rem" + if {[have_spec nova]} { set virtualbox_binary "virtualbox5-nova" } +} + source ${genode_dir}/repos/base/run/platform_drv.inc # override defaults of platform_drv.inc proc platform_drv_priority {} { return { priority="-1"} } diff --git a/repos/ports/run/virtualbox_auto.inc b/repos/ports/run/virtualbox_auto.inc index 35e98aba8..2cb7b0977 100644 --- a/repos/ports/run/virtualbox_auto.inc +++ b/repos/ports/run/virtualbox_auto.inc @@ -27,6 +27,7 @@ lappend_if [have_spec x86] build_components drivers/rtc lappend_if [expr $use_ram_fs || $use_usb] build_components server/ram_fs lappend_if [expr $use_cpu_load] build_components app/trace_subject_reporter lappend_if [expr $use_cpu_load] build_components app/cpu_load_display +lappend_if [expr $use_cpu_load] build_components app/top source ${genode_dir}/repos/base/run/platform_drv.inc # override defaults of platform_drv.inc @@ -114,7 +115,7 @@ append_if [expr $use_rumpfs] config { append_if [expr $use_ram_fs] config { } append_if [expr $use_ram_fs] config " - " + " append_if [expr $use_ram_fs] config { @@ -190,6 +191,18 @@ append_if [expr $use_cpu_load] config { + + + + + + + + + + + + } append_if [expr $use_usb] config { @@ -327,11 +340,12 @@ lappend_if [expr $use_rumpfs] boot_modules rump.lib.so lappend_if [expr $use_rumpfs] boot_modules rump_fs.lib.so lappend_if [expr $use_rumpfs] boot_modules rump_fs lappend_if [expr $use_vbox4] boot_modules $virtualbox_binary -lappend_if [expr $use_vbox5] boot_modules virtualbox5 +lappend_if [expr $use_vbox5] boot_modules $virtualbox5_binary lappend_if [expr $use_ram_fs || $use_usb] boot_modules ram_fs lappend_if [expr $use_ram_fs && !$use_overlay_from_disk] boot_modules $overlay_image lappend_if [expr $use_cpu_load] boot_modules trace_subject_reporter lappend_if [expr $use_cpu_load] boot_modules cpu_load_display +lappend_if [expr $use_cpu_load] boot_modules top # platform-specific modules lappend_if [expr $use_ps2] boot_modules ps2_drv diff --git a/repos/ports/src/virtualbox5/accloff/sup.cc b/repos/ports/src/virtualbox5/accloff/sup.cc new file mode 100644 index 000000000..148dddcf3 --- /dev/null +++ b/repos/ports/src/virtualbox5/accloff/sup.cc @@ -0,0 +1,140 @@ +/* + * \brief Genode specific VirtualBox SUPLib supplements. + * File used by Genode platforms not supporting hardware + * virtualisation features. + * \author Alexander Boettcher + * \date 2013-11-18 + */ + +/* + * Copyright (C) 2013 Genode Labs GmbH + * + * This file is distributed under the terms of the GNU General Public License + * version 2. + */ + +/* Genode includes */ +#include +#include +#include + +/* VirtualBox includes */ +#include +#include + +/* Genode's VirtualBox includes */ +#include "sup.h" +#include "vmm.h" + +/* Libc include */ +#include + +/* VirtualBox SUPLib interface */ + +int SUPR3QueryVTxSupported(void) +{ + return VERR_INTERNAL_ERROR; +} + +int SUPR3CallVMMR0Fast(PVMR0 pVMR0, unsigned uOperation, VMCPUID idCpu) +{ + return VERR_INTERNAL_ERROR; +} + + +static Genode::Semaphore *r0_halt_sem() +{ + static Genode::Semaphore sem; + return &sem; +} + + +int SUPR3CallVMMR0Ex(PVMR0 pVMR0, VMCPUID idCpu, unsigned + uOperation, uint64_t u64Arg, PSUPVMMR0REQHDR pReqHdr) +{ + switch(uOperation) + { + case VMMR0_DO_GVMM_CREATE_VM: + genode_VMMR0_DO_GVMM_CREATE_VM(pReqHdr); + return VINF_SUCCESS; + + case VMMR0_DO_GVMM_SCHED_HALT: + r0_halt_sem()->down(); + return VINF_SUCCESS; + + case VMMR0_DO_GVMM_SCHED_WAKE_UP: + r0_halt_sem()->up(); + return VINF_SUCCESS; + + case VMMR0_DO_VMMR0_INIT: + return VINF_SUCCESS; + + case VMMR0_DO_GVMM_SCHED_POLL: + /* called by 'vmR3HaltGlobal1Halt' */ + Genode::log(__func__, ": SUPR3CallVMMR0Ex: VMMR0_DO_GVMM_SCHED_POLL"); + return VINF_SUCCESS; + + default: + Genode::error("SUPR3CallVMMR0Ex: unhandled uOperation ", (int)uOperation); + return VERR_GENERAL_FAILURE; + } +} + + +bool create_emt_vcpu(pthread_t * thread, size_t stack_size, + const pthread_attr_t *attr, + void *(*start_routine)(void *), void *arg, + Genode::Cpu_session * cpu_session, + Genode::Affinity::Location location, + unsigned int cpu_id, + const char * name) +{ + /* no hardware acceleration support */ + return false; +} + + +/** + * Dummies and unimplemented stuff. + */ + +uint64_t genode_cpu_hz() { + return 1000000000ULL; /* XXX fixed 1GHz return value */ +} + + +void genode_update_tsc(void (*update_func)(void), unsigned long update_us) +{ + using namespace Genode; + + Timer::Connection timer(genode_env()); + Signal_context sig_ctx; + Signal_receiver sig_rec; + Signal_context_capability sig_cap = sig_rec.manage(&sig_ctx); + + timer.sigh(sig_cap); + timer.trigger_once(update_us); + + for (;;) { + Signal s = sig_rec.wait_for_signal(); + update_func(); + + timer.trigger_once(update_us); + } +} + + +extern "C" void pthread_yield() { Genode::warning(__func__, " unimplemented"); } + +int SUPR3PageAllocEx(::size_t cPages, uint32_t fFlags, void **ppvPages, + PRTR0PTR pR0Ptr, PSUPPAGE paPages) +{ + Genode::error(__func__, " unimplemented"); + return VERR_GENERAL_FAILURE; +} + +extern "C" bool PGMUnmapMemoryGenode(void *, ::size_t) +{ + Genode::error(__func__, " unimplemented"); + return VERR_GENERAL_FAILURE; +} diff --git a/repos/ports/src/virtualbox5/nova/target.mk b/repos/ports/src/virtualbox5/nova/target.mk new file mode 100644 index 000000000..f5f7fbc0d --- /dev/null +++ b/repos/ports/src/virtualbox5/nova/target.mk @@ -0,0 +1,9 @@ +TARGET = virtualbox5-nova +REQUIRES = nova + +LIBS += virtualbox5-nova + +include $(REP_DIR)/src/virtualbox5/target.inc + +vpath frontend/% $(REP_DIR)/src/virtualbox5/ +vpath %.cc $(REP_DIR)/src/virtualbox5/ diff --git a/repos/ports/src/virtualbox5/target.inc b/repos/ports/src/virtualbox5/target.inc new file mode 100644 index 000000000..0645a02e9 --- /dev/null +++ b/repos/ports/src/virtualbox5/target.inc @@ -0,0 +1,65 @@ +VBOX_CC_OPT += -DVBOX_WITH_HARDENING +VBOX_CC_OPT += -DVBOX_WITH_GENERIC_SESSION_WATCHER + +include $(REP_DIR)/lib/mk/virtualbox5-common.inc + +CC_WARN += -Wall + +SRC_CC = frontend/main.cc frontend/console.cc \ + frontend/VirtualBoxErrorInfoImpl.cpp \ + devices.cc drivers.cc dummies.cc libc.cc \ + logger.cc mm.cc pdm.cc pgm.cc rt.cc sup.cc \ + hm.cc thread.cc dynlib.cc unimpl.cc + +# use implementation of VBOX 4 +vpath dynlib.cc $(REP_DIR)/src/virtualbox +vpath libc.cc $(REP_DIR)/src/virtualbox +vpath logger.cc $(REP_DIR)/src/virtualbox +vpath pdm.cc $(REP_DIR)/src/virtualbox +vpath rt.cc $(REP_DIR)/src/virtualbox +vpath thread.cc $(REP_DIR)/src/virtualbox + +LIBS += base +LIBS += stdcxx + +LIBS += virtualbox5-bios virtualbox5-recompiler virtualbox5-runtime \ + virtualbox5-vmm virtualbox5-devices virtualbox5-drivers \ + virtualbox5-storage virtualbox5-zlib virtualbox5-liblzf \ + virtualbox5-xml virtualbox5-main virtualbox5-apiwrap \ + virtualbox5-dis + +LIBS += pthread libc_terminal libc_pipe libiconv + +LIBS += qemu-usb + +INC_DIR += $(call select_from_repositories,src/lib/libc) +INC_DIR += $(call select_from_repositories,src/lib/pthread) + +INC_DIR += $(VBOX_DIR)/Runtime/include + +SRC_CC += HostServices/SharedFolders/service.cpp +SRC_CC += HostServices/SharedFolders/mappings.cpp +SRC_CC += HostServices/SharedFolders/vbsf.cpp +SRC_CC += HostServices/SharedFolders/vbsfpath.cpp +SRC_CC += HostServices/SharedFolders/shflhandle.cpp + +SRC_CC += HostServices/SharedClipboard/service.cpp + +SRC_CC += frontend/dummy/errorinfo.cc frontend/dummy/virtualboxbase.cc +SRC_CC += frontend/dummy/autostart.cc frontend/dummy/rest.cc +SRC_CC += frontend/dummy/host.cc + +#vbox 4 include +INC_DIR += $(REP_DIR)/src/virtualbox + +INC_DIR += $(VBOX_DIR)/Main/include +INC_DIR += $(VBOX_DIR)/VMM/include + +INC_DIR += $(REP_DIR)/src/virtualbox5/frontend +INC_DIR += $(VIRTUALBOX_DIR)/VBoxAPIWrap + +INC_DIR += $(VBOX_DIR)/Main/xml +INC_DIR += $(VBOX_DIR)/HostServices + +# search path to 'scan_code_set_2.h' +INC_DIR += $(call select_from_repositories,src/drivers/input/spec/ps2) diff --git a/repos/ports/src/virtualbox5/target.mk b/repos/ports/src/virtualbox5/target.mk index 410d684d0..02e938af7 100644 --- a/repos/ports/src/virtualbox5/target.mk +++ b/repos/ports/src/virtualbox5/target.mk @@ -1,68 +1,5 @@ -REQUIRES = nova +TARGET = virtualbox5-rem -VBOX_CC_OPT += -DVBOX_WITH_HARDENING -VBOX_CC_OPT += -DVBOX_WITH_GENERIC_SESSION_WATCHER +LIBS += virtualbox5-hwaccl-off -include $(REP_DIR)/lib/mk/virtualbox5-common.inc - -CC_WARN += -Wall - -TARGET = virtualbox5 -SRC_CC = frontend/main.cc frontend/console.cc \ - frontend/VirtualBoxErrorInfoImpl.cpp \ - devices.cc drivers.cc dummies.cc libc.cc \ - logger.cc mm.cc pdm.cc pgm.cc rt.cc sup.cc \ - hm.cc thread.cc dynlib.cc unimpl.cc - -# use implementation of VBOX 4 -vpath dynlib.cc $(REP_DIR)/src/virtualbox -vpath libc.cc $(REP_DIR)/src/virtualbox -vpath logger.cc $(REP_DIR)/src/virtualbox -vpath pdm.cc $(REP_DIR)/src/virtualbox -vpath rt.cc $(REP_DIR)/src/virtualbox -vpath thread.cc $(REP_DIR)/src/virtualbox - -LIBS += base -LIBS += stdcxx - -LIBS += virtualbox5-bios virtualbox5-recompiler virtualbox5-runtime \ - virtualbox5-vmm virtualbox5-devices virtualbox5-drivers \ - virtualbox5-storage virtualbox5-zlib virtualbox5-liblzf \ - virtualbox5-xml virtualbox5-main virtualbox5-apiwrap \ - virtualbox5-dis virtualbox5-hwaccl - -LIBS += pthread libc_terminal libc_pipe libiconv - -LIBS += qemu-usb - -INC_DIR += $(call select_from_repositories,src/lib/libc) -INC_DIR += $(call select_from_repositories,src/lib/pthread) - -INC_DIR += $(VBOX_DIR)/Runtime/include - -SRC_CC += HostServices/SharedFolders/service.cpp -SRC_CC += HostServices/SharedFolders/mappings.cpp -SRC_CC += HostServices/SharedFolders/vbsf.cpp -SRC_CC += HostServices/SharedFolders/vbsfpath.cpp -SRC_CC += HostServices/SharedFolders/shflhandle.cpp - -SRC_CC += HostServices/SharedClipboard/service.cpp - -SRC_CC += frontend/dummy/errorinfo.cc frontend/dummy/virtualboxbase.cc -SRC_CC += frontend/dummy/autostart.cc frontend/dummy/rest.cc -SRC_CC += frontend/dummy/host.cc - -#vbox 4 include -INC_DIR += $(REP_DIR)/src/virtualbox - -INC_DIR += $(VBOX_DIR)/Main/include -INC_DIR += $(VBOX_DIR)/VMM/include - -INC_DIR += $(REP_DIR)/src/virtualbox5/frontend -INC_DIR += $(VIRTUALBOX_DIR)/VBoxAPIWrap - -INC_DIR += $(VBOX_DIR)/Main/xml -INC_DIR += $(VBOX_DIR)/HostServices - -# search path to 'scan_code_set_2.h' -INC_DIR += $(call select_from_repositories,src/drivers/input/spec/ps2) +include $(REP_DIR)/src/virtualbox5/target.inc