diff --git a/configure.ac b/configure.ac index b582a7814e..767e41c868 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 - #include - #include - ]], [[ - 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 - #include - #include - ]], [[ - 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 . +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 + #include + #include + ]], [[ + 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 + #include + #include + ]], [[ + 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]) +])