summaryrefslogtreecommitdiffstats
path: root/package/xvisor/xvisor.mk
blob: f75175a45c8dae40d519e5a699dd1baf361b6b97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
################################################################################
#
# xvisor
#
################################################################################

XVISOR_VERSION = 0.2.9
XVISOR_SITE = http://www.xhypervisor.org/tarball
XVISOR_LICENSE = GPL-2.0+
XVISOR_LICENSE_FILES = COPYING
XVISOR_INSTALL_IMAGES = YES
XVISOR_INSTALL_TARGET = NO
XVISOR_DEPENDENCIES = host-bison host-flex

XVISOR_MAKE_TARGETS = all

ifeq ($(BR2_PACKAGE_XVISOR_BUILD_TEST_DTB),y)
XVISOR_MAKE_TARGETS += dtbs
endif

XVISOR_KCONFIG_DOTCONFIG = build/openconf/.config

ifeq ($(BR2_PACKAGE_XVISOR_USE_DEFCONFIG),y)
XVISOR_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_PACKAGE_XVISOR_DEFCONFIG))-defconfig
else ifeq ($(BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG),y)
XVISOR_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE))
endif
XVISOR_KCONFIG_EDITORS = menuconfig

ifeq ($(BR2_x86_64),y)
XVISOR_ARCH = x86
else ifeq ($(BR2_arm)$(BR2_aarch64),y)
XVISOR_ARCH = arm
endif

ifeq ($(BR2_PACKAGE_XVISOR)$(BR_BUILDING),yy)
ifeq ($(XVISOR_ARCH),)
$(error "Architecture not supported by XVisor")
endif
endif

XVISOR_MAKE_ENV = \
	ARCH=$(XVISOR_ARCH) \
	CROSS_COMPILE=$(TARGET_CROSS)

XVISOR_MAKE_OPTS = $(if $(VERBOSE),VERBOSE=1)

define XVISOR_BUILD_CMDS
	$(TARGET_MAKE_ENV) $(XVISOR_MAKE_ENV) $(MAKE) $(XVISOR_MAKE_OPTS) \
		-C $(@D) $(XVISOR_MAKE_TARGETS)
endef

define XVISOR_INSTALL_IMAGES_CMDS
	$(INSTALL) -m 0644 -D $(@D)/build/vmm.bin $(BINARIES_DIR)/vmm.bin
endef

ifeq ($(BR2_PACKAGE_XVISOR_CREATE_UBOOT_IMAGE),y)
XVISOR_DEPENDENCIES += host-uboot-tools
define XVISOR_CREATE_UBOOT_IMAGE
	$(MKIMAGE) -A $(MKIMAGE_ARCH) -O linux -T kernel -C none \
		-a 0x00008000 -e 0x00008000 \
		-n Xvisor -d $(BINARIES_DIR)/vmm.bin $(BINARIES_DIR)/uvmm.bin
endef
endif

XVISOR_POST_INSTALL_IMAGES_HOOKS += XVISOR_CREATE_UBOOT_IMAGE

# Checks to give errors that the user can understand
ifeq ($(BR_BUILDING),y)

ifeq ($(BR2_PACKAGE_XVISOR_USE_DEFCONFIG),y)
ifeq ($(call qstrip,$(BR2_PACKAGE_XVISOR_DEFCONFIG)),)
$(error No Xvisor defconfig name specified, check your BR2_PACKAGE_XVISOR_DEFCONFIG setting)
endif
endif

ifeq ($(BR2_PACKAGE_XVISOR_USE_CUSTOM_CONFIG),y)
ifeq ($(BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE),)
$(error No Xvisor configuration file specified, check your BR2_PACKAGE_XVISOR_CUSTOM_CONFIG_FILE setting)
endif
endif

endif

$(eval $(kconfig-package))
OpenPOWER on IntegriCloud