mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 09:17:52 +03:00
configure: move libxl driver check to its own file
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
10ecd90213
commit
9dcfa182a2
84
configure.ac
84
configure.ac
@ -404,7 +404,7 @@ LIBVIRT_DRIVER_ARG_OPENVZ
|
||||
LIBVIRT_DRIVER_ARG_VMWARE
|
||||
LIBVIRT_ARG_WITH([PHYP], [PHYP], [check])
|
||||
LIBVIRT_ARG_WITH([XENAPI], [XenAPI], [check])
|
||||
LIBVIRT_ARG_WITH([LIBXL], [libxenlight], [check])
|
||||
LIBVIRT_DRIVER_ARG_LIBXL
|
||||
LIBVIRT_ARG_WITH([VBOX], [VirtualBox XPCOMC], [yes])
|
||||
LIBVIRT_DRIVER_ARG_LXC
|
||||
LIBVIRT_ARG_WITH([ESX], [ESX], [check])
|
||||
@ -539,79 +539,7 @@ fi
|
||||
AC_SUBST([LIBXENSERVER_CFLAGS])
|
||||
AC_SUBST([LIBXENSERVER_LIBS])
|
||||
|
||||
old_LIBS="$LIBS"
|
||||
old_CFLAGS="$CFLAGS"
|
||||
LIBXL_LIBS=""
|
||||
LIBXL_CFLAGS=""
|
||||
LIBXL_FIRMWARE_DIR=""
|
||||
LIBXL_EXECBIN_DIR=""
|
||||
|
||||
dnl search for libxl, aka libxenlight
|
||||
dnl Xen > 4.5 introduced a pkgconfig file, check for it first
|
||||
fail=0
|
||||
if test "$with_libxl" != "no" ; then
|
||||
PKG_CHECK_MODULES([LIBXL], [xenlight], [
|
||||
LIBXL_FIRMWARE_DIR=`$PKG_CONFIG --variable xenfirmwaredir xenlight`
|
||||
LIBXL_EXECBIN_DIR=`$PKG_CONFIG --variable libexec_bin xenlight`
|
||||
with_libxl=yes
|
||||
], [LIBXL_FOUND=no])
|
||||
if test "$LIBXL_FOUND" = "no"; then
|
||||
dnl No xenlight pkg-config file
|
||||
if test "$with_libxl" != "yes" && test "$with_libxl" != "check" ; then
|
||||
LIBXL_CFLAGS="-I$with_libxl/include"
|
||||
LIBXL_LIBS="-L$with_libxl"
|
||||
fi
|
||||
CFLAGS="$CFLAGS $LIBXL_CFLAGS"
|
||||
LIBS="$LIBS $LIBXL_LIBS"
|
||||
AC_CHECK_LIB([xenlight], [libxl_ctx_alloc], [
|
||||
with_libxl=yes
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxenlight"
|
||||
],[
|
||||
if test "$with_libxl" = "yes"; then
|
||||
fail=1
|
||||
fi
|
||||
with_libxl=no
|
||||
])
|
||||
fi
|
||||
fi
|
||||
|
||||
# LIBXL_API_VERSION 4.4.0 introduced a new parameter to
|
||||
# libxl_domain_create_restore for specifying restore parameters.
|
||||
# The libxl driver will make use of this new parameter for specifying
|
||||
# the Xen migration stream version.
|
||||
LIBXL_CFLAGS="$LIBXL_CFLAGS -DLIBXL_API_VERSION=0x040400"
|
||||
LIBS="$old_LIBS"
|
||||
CFLAGS="$old_CFLAGS"
|
||||
|
||||
if test $fail = 1; then
|
||||
AC_MSG_ERROR([You must install the libxl Library from Xen >= 4.2 to compile libxenlight driver with -lxl])
|
||||
fi
|
||||
|
||||
if test "$with_libxl" = "yes"; then
|
||||
dnl If building with libxl, use the libxl utility header and lib too
|
||||
AC_CHECK_HEADERS([libxlutil.h])
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxlutil"
|
||||
AC_DEFINE_UNQUOTED([WITH_LIBXL], 1, [whether libxenlight driver is enabled])
|
||||
if test "x$LIBXL_FIRMWARE_DIR" != "x"; then
|
||||
AC_DEFINE_UNQUOTED([LIBXL_FIRMWARE_DIR], ["$LIBXL_FIRMWARE_DIR"], [directory containing Xen firmware blobs])
|
||||
fi
|
||||
if test "x$LIBXL_EXECBIN_DIR" != "x"; then
|
||||
AC_DEFINE_UNQUOTED([LIBXL_EXECBIN_DIR], ["$LIBXL_EXECBIN_DIR"], [directory containing Xen libexec binaries])
|
||||
fi
|
||||
dnl Check if the xtl_* infrastructure is in libxentoollog
|
||||
dnl (since Xen 4.7) if not then assume it is in libxenctrl
|
||||
dnl (as it was for 4.6 and earler)
|
||||
AC_CHECK_LIB([xentoollog], [xtl_createlogger_stdiostream], [
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxentoollog"
|
||||
],[
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxenctrl"
|
||||
])
|
||||
fi
|
||||
AM_CONDITIONAL([WITH_LIBXL], [test "$with_libxl" = "yes"])
|
||||
|
||||
AC_SUBST([LIBXL_CFLAGS])
|
||||
AC_SUBST([LIBXL_LIBS])
|
||||
|
||||
LIBVIRT_DRIVER_CHECK_LIBXL
|
||||
LIBVIRT_DRIVER_CHECK_XEN
|
||||
|
||||
AM_CONDITIONAL([WITH_XENCONFIG], [test "$with_libxl" = "yes" || test "$with_xen" = "yes"])
|
||||
@ -1505,7 +1433,7 @@ LIBVIRT_DRIVER_RESULT_OPENVZ
|
||||
LIBVIRT_DRIVER_RESULT_VMWARE
|
||||
AC_MSG_NOTICE([ VBox: $with_vbox])
|
||||
AC_MSG_NOTICE([ XenAPI: $with_xenapi])
|
||||
AC_MSG_NOTICE([ xenlight: $with_libxl])
|
||||
LIBVIRT_DRIVER_RESULT_LIBXL
|
||||
LIBVIRT_DRIVER_RESULT_LXC
|
||||
AC_MSG_NOTICE([ PHYP: $with_phyp])
|
||||
AC_MSG_NOTICE([ ESX: $with_esx])
|
||||
@ -1561,6 +1489,7 @@ LIBVIRT_RESULT_HAL
|
||||
LIBVIRT_RESULT_LIBNL
|
||||
LIBVIRT_RESULT_LIBPCAP
|
||||
LIBVIRT_RESULT_LIBSSH
|
||||
LIBVIRT_RESULT_LIBXL
|
||||
LIBVIRT_RESULT_LIBXML
|
||||
LIBVIRT_RESULT_MACVTAP
|
||||
LIBVIRT_RESULT_NETCF
|
||||
@ -1585,11 +1514,6 @@ AC_MSG_NOTICE([ xenapi: $LIBXENSERVER_CFLAGS $LIBXENSERVER_LIBS])
|
||||
else
|
||||
AC_MSG_NOTICE([ xenapi: no])
|
||||
fi
|
||||
if test "$with_libxl" = "yes" ; then
|
||||
AC_MSG_NOTICE([xenlight: $LIBXL_CFLAGS $LIBXL_LIBS])
|
||||
else
|
||||
AC_MSG_NOTICE([xenlight: no])
|
||||
fi
|
||||
if test "$with_storage_rbd" = "yes" ; then
|
||||
AC_MSG_NOTICE([ rbd: $LIBRBD_LIBS])
|
||||
else
|
||||
|
105
m4/virt-driver-libxl.m4
Normal file
105
m4/virt-driver-libxl.m4
Normal file
@ -0,0 +1,105 @@
|
||||
dnl The libxl driver
|
||||
dnl
|
||||
dnl Copyright (C) 2016 Red Hat, Inc.
|
||||
dnl
|
||||
dnl This library is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU Lesser General Public
|
||||
dnl License as published by the Free Software Foundation; either
|
||||
dnl version 2.1 of the License, or (at your option) any later version.
|
||||
dnl
|
||||
dnl This library is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
dnl Lesser General Public License for more details.
|
||||
dnl
|
||||
dnl You should have received a copy of the GNU Lesser General Public
|
||||
dnl License along with this library. If not, see
|
||||
dnl <http://www.gnu.org/licenses/>.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([LIBVIRT_DRIVER_ARG_LIBXL], [
|
||||
LIBVIRT_ARG_WITH([LIBXL], [libxenlight], [check])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [
|
||||
old_LIBS="$LIBS"
|
||||
old_CFLAGS="$CFLAGS"
|
||||
LIBXL_LIBS=""
|
||||
LIBXL_CFLAGS=""
|
||||
LIBXL_FIRMWARE_DIR=""
|
||||
LIBXL_EXECBIN_DIR=""
|
||||
|
||||
dnl search for libxl, aka libxenlight
|
||||
dnl Xen > 4.5 introduced a pkgconfig file, check for it first
|
||||
fail=0
|
||||
if test "$with_libxl" != "no" ; then
|
||||
PKG_CHECK_MODULES([LIBXL], [xenlight], [
|
||||
LIBXL_FIRMWARE_DIR=`$PKG_CONFIG --variable xenfirmwaredir xenlight`
|
||||
LIBXL_EXECBIN_DIR=`$PKG_CONFIG --variable libexec_bin xenlight`
|
||||
with_libxl=yes
|
||||
], [LIBXL_FOUND=no])
|
||||
if test "$LIBXL_FOUND" = "no"; then
|
||||
dnl No xenlight pkg-config file
|
||||
if test "$with_libxl" != "yes" && test "$with_libxl" != "check" ; then
|
||||
LIBXL_CFLAGS="-I$with_libxl/include"
|
||||
LIBXL_LIBS="-L$with_libxl"
|
||||
fi
|
||||
CFLAGS="$CFLAGS $LIBXL_CFLAGS"
|
||||
LIBS="$LIBS $LIBXL_LIBS"
|
||||
AC_CHECK_LIB([xenlight], [libxl_ctx_alloc], [
|
||||
with_libxl=yes
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxenlight"
|
||||
],[
|
||||
if test "$with_libxl" = "yes"; then
|
||||
fail=1
|
||||
fi
|
||||
with_libxl=no
|
||||
])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl LIBXL_API_VERSION 4.4.0 introduced a new parameter to
|
||||
dnl libxl_domain_create_restore for specifying restore parameters.
|
||||
dnl The libxl driver will make use of this new parameter for specifying
|
||||
dnl the Xen migration stream version.
|
||||
LIBXL_CFLAGS="$LIBXL_CFLAGS -DLIBXL_API_VERSION=0x040400"
|
||||
LIBS="$old_LIBS"
|
||||
CFLAGS="$old_CFLAGS"
|
||||
|
||||
if test $fail = 1; then
|
||||
AC_MSG_ERROR([You must install the libxl Library from Xen >= 4.2 to compile libxenlight driver with -lxl])
|
||||
fi
|
||||
|
||||
if test "$with_libxl" = "yes"; then
|
||||
dnl If building with libxl, use the libxl utility header and lib too
|
||||
AC_CHECK_HEADERS([libxlutil.h])
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxlutil"
|
||||
AC_DEFINE_UNQUOTED([WITH_LIBXL], 1, [whether libxenlight driver is enabled])
|
||||
if test "x$LIBXL_FIRMWARE_DIR" != "x"; then
|
||||
AC_DEFINE_UNQUOTED([LIBXL_FIRMWARE_DIR], ["$LIBXL_FIRMWARE_DIR"], [directory containing Xen firmware blobs])
|
||||
fi
|
||||
if test "x$LIBXL_EXECBIN_DIR" != "x"; then
|
||||
AC_DEFINE_UNQUOTED([LIBXL_EXECBIN_DIR], ["$LIBXL_EXECBIN_DIR"], [directory containing Xen libexec binaries])
|
||||
fi
|
||||
dnl Check if the xtl_* infrastructure is in libxentoollog
|
||||
dnl (since Xen 4.7) if not then assume it is in libxenctrl
|
||||
dnl (as it was for 4.6 and earler)
|
||||
AC_CHECK_LIB([xentoollog], [xtl_createlogger_stdiostream], [
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxentoollog"
|
||||
],[
|
||||
LIBXL_LIBS="$LIBXL_LIBS -lxenctrl"
|
||||
])
|
||||
fi
|
||||
AM_CONDITIONAL([WITH_LIBXL], [test "$with_libxl" = "yes"])
|
||||
|
||||
AC_SUBST([LIBXL_CFLAGS])
|
||||
AC_SUBST([LIBXL_LIBS])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBVIRT_RESULT_LIBXL], [
|
||||
LIBVIRT_RESULT_LIB([LIBXL])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBVIRT_DRIVER_RESULT_LIBXL], [
|
||||
LIBVIRT_RESULT([libxl], [$with_libxl])
|
||||
])
|
Loading…
Reference in New Issue
Block a user