|
@@ -0,0 +1,53 @@
|
|
|
+################################################################################
|
|
|
+#
|
|
|
+# kvmtool
|
|
|
+#
|
|
|
+################################################################################
|
|
|
+
|
|
|
+KVMTOOL_VERSION = 372f583d359a5bdcbbe7268809c8d1dc179c64d2
|
|
|
+KVMTOOL_SITE = $(BR2_KERNEL_MIRROR)/scm/linux/kernel/git/will/kvmtool.git
|
|
|
+KVMTOOL_SITE_METHOD = git
|
|
|
+KVMTOOL_DEPENDENCIES = \
|
|
|
+ $(if $(BR2_PACKAGE_BINUTILS),binutils) \
|
|
|
+ $(if $(BR2_PACKAGE_DTC),dtc) \
|
|
|
+ $(if $(BR2_PACKAGE_LIBAIO),libaio) \
|
|
|
+ $(if $(BR2_PACKAGE_LIBGTK3),libgtk3) \
|
|
|
+ $(if $(BR2_PACKAGE_LIBVNCSERVER),libvncserver) \
|
|
|
+ $(if $(BR2_PACKAGE_SDL),sdl) \
|
|
|
+ $(if $(BR2_PACKAGE_ZLIB),zlib)
|
|
|
+KVMTOOL_LICENSE = GPLv2
|
|
|
+KVMTOOL_LICENSE_FILES = COPYING
|
|
|
+
|
|
|
+# This is required to convert a static binary (init helper) back into
|
|
|
+# object-file format, and in multilib toolchains like CS 2012.09 for x86
|
|
|
+# the default is i386, hence when building for x86_64 things break since
|
|
|
+# LD doesn't autodetect the input file format.
|
|
|
+# GCC-as-linker can't accomplish this feat easily either since it's mixing
|
|
|
+# static content (guest_init.o) with dynamic one (lkvm) making
|
|
|
+# a relocatable output file.
|
|
|
+# The purpose of this trick is to embed the init helper into the main
|
|
|
+# binary to help users in guest system startup, which would otherwise
|
|
|
+# require more complex guest images.
|
|
|
+# This needs revisiting if/when X32 ABI support is added.
|
|
|
+#
|
|
|
+# If more packages need this (unlikely) an ld wrapper might be a better
|
|
|
+# solution, using gcc -dumpspecs information.
|
|
|
+KVMTOOL_EXTRA_LDFLAGS = \
|
|
|
+ $(if $(BR2_x86_64),-m elf_x86_64)
|
|
|
+
|
|
|
+# Disable -Werror, otherwise musl is not happy
|
|
|
+KVMTOOL_MAKE_OPTS = \
|
|
|
+ CROSS_COMPILE="$(TARGET_CROSS)" \
|
|
|
+ LDFLAGS="$(TARGET_LDFLAGS) $(KVMTOOL_EXTRA_LDFLAGS)" \
|
|
|
+ WERROR=0
|
|
|
+
|
|
|
+define KVMTOOL_BUILD_CMDS
|
|
|
+ $(TARGET_MAKE_ENV) ARCH=$(KERNEL_ARCH) $(MAKE) -C $(@D) $(KVMTOOL_MAKE_OPTS)
|
|
|
+endef
|
|
|
+
|
|
|
+define KVMTOOL_INSTALL_TARGET_CMDS
|
|
|
+ $(TARGET_MAKE_ENV) ARCH=$(KERNEL_ARCH) $(MAKE) -C $(@D) \
|
|
|
+ $(KVMTOOL_MAKE_OPTS) install DESTDIR=$(TARGET_DIR) prefix=/usr
|
|
|
+endef
|
|
|
+
|
|
|
+$(eval $(generic-package))
|