[libvirt] [PATCH 57/89] configure: move LXC driver check to its own file

Pavel Hrdina phrdina at redhat.com
Fri Dec 16 09:11:25 UTC 2016


Signed-off-by: Pavel Hrdina <phrdina at 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




More information about the libvir-list mailing list