1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# xvisor 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunXVISOR_VERSION = 0.3.0 8*4882a593SmuzhiyunXVISOR_SOURCE = xvisor-$(XVISOR_VERSION).tar.xz 9*4882a593SmuzhiyunXVISOR_SITE = http://www.xhypervisor.org/tarball 10*4882a593SmuzhiyunXVISOR_LICENSE = GPL-2.0+ 11*4882a593SmuzhiyunXVISOR_LICENSE_FILES = COPYING 12*4882a593SmuzhiyunXVISOR_INSTALL_IMAGES = YES 13*4882a593SmuzhiyunXVISOR_INSTALL_TARGET = NO 14*4882a593SmuzhiyunXVISOR_DEPENDENCIES = host-bison host-dtc host-flex 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunXVISOR_MAKE_TARGETS = all 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XVISOR_BUILD_TEST_DTB),y) 19*4882a593SmuzhiyunXVISOR_MAKE_TARGETS += dtbs 20*4882a593Smuzhiyunendif 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunXVISOR_KCONFIG_DOTCONFIG = build/openconf/.config 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XVISOR_USE_DEFCONFIG),y) 25*4882a593SmuzhiyunXVISOR_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_PACKAGE_XVISOR_DEFCONFIG))-defconfig 26*4882a593Smuzhiyunelse ifeq ($(BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG),y) 27*4882a593SmuzhiyunXVISOR_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE)) 28*4882a593Smuzhiyunendif 29*4882a593SmuzhiyunXVISOR_KCONFIG_EDITORS = menuconfig 30*4882a593Smuzhiyun 31*4882a593Smuzhiyunifeq ($(BR2_x86_64),y) 32*4882a593SmuzhiyunXVISOR_ARCH = x86 33*4882a593Smuzhiyunelse ifeq ($(BR2_arm)$(BR2_aarch64),y) 34*4882a593SmuzhiyunXVISOR_ARCH = arm 35*4882a593Smuzhiyunendif 36*4882a593Smuzhiyun 37*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XVISOR)$(BR_BUILDING),yy) 38*4882a593Smuzhiyunifeq ($(XVISOR_ARCH),) 39*4882a593Smuzhiyun$(error "Architecture not supported by XVisor") 40*4882a593Smuzhiyunendif 41*4882a593Smuzhiyunendif 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunXVISOR_MAKE_ENV = \ 44*4882a593Smuzhiyun ARCH=$(XVISOR_ARCH) \ 45*4882a593Smuzhiyun CROSS_COMPILE=$(TARGET_CROSS) 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunXVISOR_MAKE_OPTS = $(if $(VERBOSE),VERBOSE=1) 48*4882a593Smuzhiyun 49*4882a593Smuzhiyundefine XVISOR_BUILD_CMDS 50*4882a593Smuzhiyun $(TARGET_MAKE_ENV) $(XVISOR_MAKE_ENV) $(MAKE) $(XVISOR_MAKE_OPTS) \ 51*4882a593Smuzhiyun -C $(@D) $(XVISOR_MAKE_TARGETS) 52*4882a593Smuzhiyunendef 53*4882a593Smuzhiyun 54*4882a593Smuzhiyundefine XVISOR_INSTALL_IMAGES_CMDS 55*4882a593Smuzhiyun $(INSTALL) -m 0644 -D $(@D)/build/vmm.bin $(BINARIES_DIR)/vmm.bin 56*4882a593Smuzhiyunendef 57*4882a593Smuzhiyun 58*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XVISOR_CREATE_UBOOT_IMAGE),y) 59*4882a593SmuzhiyunXVISOR_DEPENDENCIES += host-uboot-tools 60*4882a593Smuzhiyundefine XVISOR_CREATE_UBOOT_IMAGE 61*4882a593Smuzhiyun $(MKIMAGE) -A $(MKIMAGE_ARCH) -O linux -T kernel -C none \ 62*4882a593Smuzhiyun -a 0x00008000 -e 0x00008000 \ 63*4882a593Smuzhiyun -n Xvisor -d $(BINARIES_DIR)/vmm.bin $(BINARIES_DIR)/uvmm.bin 64*4882a593Smuzhiyunendef 65*4882a593Smuzhiyunendif 66*4882a593Smuzhiyun 67*4882a593SmuzhiyunXVISOR_POST_INSTALL_IMAGES_HOOKS += XVISOR_CREATE_UBOOT_IMAGE 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun# Checks to give errors that the user can understand 70*4882a593Smuzhiyunifeq ($(BR_BUILDING),y) 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XVISOR_USE_DEFCONFIG),y) 73*4882a593Smuzhiyunifeq ($(call qstrip,$(BR2_PACKAGE_XVISOR_DEFCONFIG)),) 74*4882a593Smuzhiyun$(error No Xvisor defconfig name specified, check your BR2_PACKAGE_XVISOR_DEFCONFIG setting) 75*4882a593Smuzhiyunendif 76*4882a593Smuzhiyunendif 77*4882a593Smuzhiyun 78*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG),y) 79*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE),) 80*4882a593Smuzhiyun$(error No Xvisor configuration file specified, check your BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE setting) 81*4882a593Smuzhiyunendif 82*4882a593Smuzhiyunendif 83*4882a593Smuzhiyun 84*4882a593Smuzhiyunendif 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun$(eval $(kconfig-package)) 87