mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
meson: add LXC driver build option
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
parent
79fde1c101
commit
510665daef
@ -74,10 +74,6 @@ case $host in
|
||||
esac
|
||||
|
||||
if test $with_linux = no; then
|
||||
if test "x$with_lxc" != xyes
|
||||
then
|
||||
with_lxc=no
|
||||
fi
|
||||
with_dtrace=no
|
||||
with_storage_scsi=no
|
||||
fi
|
||||
@ -90,7 +86,6 @@ AM_CONDITIONAL([WITH_MACOS], [test "$with_macos" = "yes"])
|
||||
# Stateful drivers are useful only when building the daemon.
|
||||
if test "$with_libvirtd" = "no" ; then
|
||||
with_qemu=no
|
||||
with_lxc=no
|
||||
with_vbox=no
|
||||
fi
|
||||
|
||||
@ -112,7 +107,6 @@ LIBVIRT_DRIVER_ARG_QEMU
|
||||
LIBVIRT_DRIVER_ARG_OPENVZ
|
||||
LIBVIRT_DRIVER_ARG_VMWARE
|
||||
LIBVIRT_DRIVER_ARG_VBOX
|
||||
LIBVIRT_DRIVER_ARG_LXC
|
||||
LIBVIRT_DRIVER_ARG_VZ
|
||||
LIBVIRT_DRIVER_ARG_TEST
|
||||
LIBVIRT_DRIVER_ARG_NETWORK
|
||||
@ -122,7 +116,6 @@ LIBVIRT_DRIVER_CHECK_QEMU
|
||||
LIBVIRT_DRIVER_CHECK_OPENVZ
|
||||
LIBVIRT_DRIVER_CHECK_VMWARE
|
||||
LIBVIRT_DRIVER_CHECK_VBOX
|
||||
LIBVIRT_DRIVER_CHECK_LXC
|
||||
LIBVIRT_DRIVER_CHECK_VZ
|
||||
LIBVIRT_DRIVER_CHECK_TEST
|
||||
LIBVIRT_DRIVER_CHECK_NETWORK
|
||||
@ -322,7 +315,6 @@ LIBVIRT_DRIVER_RESULT_QEMU
|
||||
LIBVIRT_DRIVER_RESULT_OPENVZ
|
||||
LIBVIRT_DRIVER_RESULT_VMWARE
|
||||
LIBVIRT_DRIVER_RESULT_VBOX
|
||||
LIBVIRT_DRIVER_RESULT_LXC
|
||||
LIBVIRT_DRIVER_RESULT_VZ
|
||||
LIBVIRT_DRIVER_RESULT_TEST
|
||||
LIBVIRT_DRIVER_RESULT_NETWORK
|
||||
|
@ -1,74 +0,0 @@
|
||||
dnl The LXC 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_LXC], [
|
||||
LIBVIRT_ARG_WITH_FEATURE([LXC], [Linux Container], [check])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBVIRT_DRIVER_CHECK_LXC], [
|
||||
if test "$with_libvirtd" = "no" ; then
|
||||
with_lxc=no
|
||||
fi
|
||||
|
||||
if test "$with_lxc" = "yes" || test "$with_lxc" = "check"; then
|
||||
AC_LINK_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
#include <sched.h>
|
||||
#include <linux/loop.h>
|
||||
#include <sys/epoll.h>
|
||||
]], [[
|
||||
unshare(!(LO_FLAGS_AUTOCLEAR + EPOLL_CLOEXEC));
|
||||
]])
|
||||
], [
|
||||
with_lxc=yes
|
||||
AC_DEFINE([HAVE_DECL_LO_FLAGS_AUTOCLEAR], [1],
|
||||
[Define to 1 if you have the declaration of `LO_FLAGS_AUTOCLEAR',
|
||||
and to 0 if you don't.])
|
||||
], [
|
||||
if test "$with_lxc" = "check"; then
|
||||
with_lxc=no
|
||||
AC_MSG_NOTICE([Required kernel features were not found, disabling LXC])
|
||||
else
|
||||
AC_MSG_ERROR([Required kernel features for LXC were not found])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_LINK_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
#include <sched.h>
|
||||
#include <linux/loop.h>
|
||||
#include <sys/epoll.h>
|
||||
]], [[
|
||||
unshare(!(LOOP_CTL_GET_FREE));
|
||||
]])
|
||||
], [
|
||||
AC_DEFINE([HAVE_DECL_LOOP_CTL_GET_FREE], [1],
|
||||
[Define to 1 if you have the declaration of `LOOP_CTL_GET_FREE',
|
||||
and to 0 if you don't.])
|
||||
])
|
||||
fi
|
||||
if test "$with_lxc" = "yes" ; then
|
||||
AC_DEFINE_UNQUOTED([WITH_LXC], 1, [whether LXC driver is enabled])
|
||||
fi
|
||||
AM_CONDITIONAL([WITH_LXC], [test "$with_lxc" = "yes"])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBVIRT_DRIVER_RESULT_LXC], [
|
||||
LIBVIRT_RESULT([LXC], [$with_lxc])
|
||||
])
|
34
meson.build
34
meson.build
@ -1668,6 +1668,39 @@ elif get_option('driver_libxl').enabled()
|
||||
error('libvirtd is required for libxenlight')
|
||||
endif
|
||||
|
||||
if not get_option('driver_lxc').disabled() and host_machine.system() == 'linux' and conf.has('WITH_LIBVIRTD')
|
||||
lxc_support_code = '''
|
||||
#include <sched.h>
|
||||
#include <linux/loop.h>
|
||||
#include <sys/epoll.h>
|
||||
|
||||
void main(void) {
|
||||
unshare(!(LO_FLAGS_AUTOCLEAR + EPOLL_CLOEXEC));
|
||||
}
|
||||
'''
|
||||
if cc.compiles(lxc_support_code, name: 'lxc support', args: '-D_GNU_SOURCE')
|
||||
conf.set('WITH_LXC', 1)
|
||||
conf.set('HAVE_DECL_LO_FLAGS_AUTOCLEAR', 1)
|
||||
elif get_option('driver_lxc').enabled()
|
||||
error('Required kernel features for LXC were not found')
|
||||
endif
|
||||
|
||||
lxc_get_free_code = '''
|
||||
#include <sched.h>
|
||||
#include <linux/loop.h>
|
||||
#include <sys/epoll.h>
|
||||
|
||||
void main(void) {
|
||||
unshare(!(LOOP_CTL_GET_FREE));
|
||||
}
|
||||
'''
|
||||
if cc.compiles(lxc_get_free_code)
|
||||
conf.set('HAVE_DECL_LOOP_CTL_GET_FREE', 1)
|
||||
endif
|
||||
elif get_option('driver_lxc').enabled()
|
||||
error('linux and remote_driver are required for LXC')
|
||||
endif
|
||||
|
||||
|
||||
# define top include directory
|
||||
|
||||
@ -1689,6 +1722,7 @@ configure_file(output: 'meson-config.h', configuration: conf)
|
||||
|
||||
driver_summary = {
|
||||
'libxl': conf.has('WITH_LIBXL'),
|
||||
'LXC': conf.has('WITH_LXC'),
|
||||
'ESX': conf.has('WITH_ESX'),
|
||||
'Hyper-V': conf.has('WITH_HYPERV'),
|
||||
'Bhyve': conf.has('WITH_BHYVE'),
|
||||
|
@ -53,5 +53,6 @@ option('driver_esx', type: 'feature', value: 'enabled', description: 'esx driver
|
||||
option('driver_hyperv', type: 'feature', value: 'auto', description: 'Hyper-V driver')
|
||||
option('driver_libvirtd', type: 'feature', value: 'auto', description: 'libvirtd driver')
|
||||
option('driver_libxl', type: 'feature', value: 'auto', description: 'libxenlight driver')
|
||||
option('driver_lxc', type: 'feature', value: 'auto', description: 'Linux Container driver')
|
||||
option('driver_remote', type: 'feature', value: 'enabled', description: 'remote driver')
|
||||
option('remote_default_mode', type: 'combo', choices: ['legacy', 'direct'], value: 'legacy', description: 'remote driver default mode')
|
||||
|
Loading…
Reference in New Issue
Block a user