Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
configure.ac | 49 +++-------------------------------
m4/virt-driver-lxc.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 77 insertions(+), 46 deletions(-)
create mode 100644 m4/virt-driver-lxc.m4
diff --git a/configure.ac b/configure.ac
index 7713dab82f..89ce8a821d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -407,7 +407,7 @@ LIBVIRT_ARG_WITH([PHYP], [PHYP], [check])
LIBVIRT_ARG_WITH([XENAPI], [XenAPI], [check])
LIBVIRT_ARG_WITH([LIBXL], [libxenlight], [check])
LIBVIRT_ARG_WITH([VBOX], [VirtualBox XPCOMC], [yes])
-LIBVIRT_ARG_WITH([LXC], [Linux Container], [check])
+LIBVIRT_DRIVER_ARG_LXC
LIBVIRT_ARG_WITH([ESX], [ESX], [check])
LIBVIRT_ARG_WITH([HYPERV], [Hyper-V], [check])
LIBVIRT_ARG_WITH([TEST], [test driver], [yes])
@@ -712,50 +712,7 @@ dnl check for kvm headers
dnl
AC_CHECK_HEADERS([linux/kvm.h])
-dnl
-dnl check for sufficient headers for LXC
-dnl
-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"])
+LIBVIRT_DRIVER_CHECK_LXC
AM_CONDITIONAL([WITH_SETUID_RPC_CLIENT], [test "$with_lxc$with_login_shell" !=
"nono"])
@@ -1640,7 +1597,7 @@ LIBVIRT_DRIVER_RESULT_VMWARE
AC_MSG_NOTICE([ VBox: $with_vbox])
AC_MSG_NOTICE([ XenAPI: $with_xenapi])
AC_MSG_NOTICE([ xenlight: $with_libxl])
-AC_MSG_NOTICE([ LXC: $with_lxc])
+LIBVIRT_DRIVER_RESULT_LXC
AC_MSG_NOTICE([ PHYP: $with_phyp])
AC_MSG_NOTICE([ ESX: $with_esx])
AC_MSG_NOTICE([ Hyper-V: $with_hyperv])
diff --git a/m4/virt-driver-lxc.m4 b/m4/virt-driver-lxc.m4
new file mode 100644
index 0000000000..c8448eef80
--- /dev/null
+++ b/m4/virt-driver-lxc.m4
@@ -0,0 +1,74 @@
+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([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])
+])
--
2.11.0