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