[libvirt] [PATCH 16/89] configure: move dlopen check to its own file

Pavel Hrdina phrdina at redhat.com
Fri Dec 16 09:10:44 UTC 2016


Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---
 configure.ac      | 26 ++++----------------------
 m4/virt-dlopen.m4 | 45 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 22 deletions(-)
 create mode 100644 m4/virt-dlopen.m4

diff --git a/configure.ac b/configure.ac
index 26174cc2e4..54144777c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -597,22 +597,7 @@ dnl
 dnl check for libdl
 dnl
 
-dlfcn_found=yes
-dlopen_found=yes
-
-AC_CHECK_HEADER([dlfcn.h],, [dlfcn_found=no])
-AC_SEARCH_LIBS([dlopen], [dl],, [dlopen_found=no])
-
-case $ac_cv_search_dlopen:$host_os in
-  'none required'* | *:mingw* | *:msvc*) DLOPEN_LIBS= ;;
-  no*) AC_MSG_ERROR([Unable to find dlopen()]) ;;
-  *) if test "x$dlfcn_found" != "xyes"; then
-       AC_MSG_ERROR([Unable to find dlfcn.h])
-     fi
-     DLOPEN_LIBS=$ac_cv_search_dlopen ;;
-esac
-
-AC_SUBST([DLOPEN_LIBS])
+LIBVIRT_CHECK_DLOPEN
 
 
 dnl
@@ -1968,7 +1953,7 @@ fi
 DRIVER_MODULE_CFLAGS=
 DRIVER_MODULE_LIBS=
 if test "$with_driver_modules" = "yes" || test "$with_driver_modules" = "check"; then
-  if test "$dlfcn_found" != "yes" || test "$dlopen_found" != "yes"; then
+  if test "$with_dlfcn" != "yes" || test "$with_dlopen" != "yes"; then
     if test "$with_driver_modules" = "yes" ; then
       AC_MSG_ERROR([You must have dlfcn.h / dlopen() support to build driver modules])
     else
@@ -1981,10 +1966,7 @@ fi
 
 if test "$with_driver_modules" = "yes" ; then
   DRIVER_MODULE_LDFLAGS="-export-dynamic"
-  case $ac_cv_search_dlopen in
-    no*) DRIVER_MODULE_LIBS= ;;
-    *) DRIVER_MODULE_LIBS=$ac_cv_search_dlopen ;;
-  esac
+  DRIVER_MODULE_LIBS="$DLOPEN_LIBS"
   AC_DEFINE_UNQUOTED([WITH_DRIVER_MODULES], 1, [whether to build drivers as modules])
 fi
 AM_CONDITIONAL([WITH_DRIVER_MODULES], [test "$with_driver_modules" != "no"])
@@ -2402,6 +2384,7 @@ LIBVIRT_RESULT_BLKID
 LIBVIRT_RESULT_CAPNG
 LIBVIRT_RESULT_CURL
 LIBVIRT_RESULT_DBUS
+LIBVIRT_RESULT_DLOPEN
 LIBVIRT_RESULT_FUSE
 LIBVIRT_RESULT_GLUSTER
 LIBVIRT_RESULT_GNUTLS
@@ -2420,7 +2403,6 @@ LIBVIRT_RESULT_SELINUX
 LIBVIRT_RESULT_SSH2
 LIBVIRT_RESULT_UDEV
 LIBVIRT_RESULT_YAJL
-AC_MSG_NOTICE([  dlopen: $DLOPEN_LIBS])
 AC_MSG_NOTICE([firewalld: $with_firewalld])
 if test "$with_polkit" = "yes" ; then
 if test "$with_polkit0" = "yes" ; then
diff --git a/m4/virt-dlopen.m4 b/m4/virt-dlopen.m4
new file mode 100644
index 0000000000..412ce79ade
--- /dev/null
+++ b/m4/virt-dlopen.m4
@@ -0,0 +1,45 @@
+dnl The dlopen library
+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_CHECK_DLOPEN], [
+
+  with_dlopen=yes
+  with_dlfcn=yes
+
+  AC_CHECK_HEADER([dlfcn.h],, [with_dlfcn=no])
+  AC_SEARCH_LIBS([dlopen], [dl],, [with_dlopen=no])
+
+  case $ac_cv_search_dlopen:$host_os in
+    'none required'* | *:mingw* | *:msvc*)
+      DLOPEN_LIBS= ;;
+    no*)
+      AC_MSG_ERROR([Unable to find dlopen()]) ;;
+    *)
+      if test "x$with_dlfcn" != "xyes"; then
+        AC_MSG_ERROR([Unable to find dlfcn.h])
+      fi
+      DLOPEN_LIBS=$ac_cv_search_dlopen ;;
+  esac
+
+  AC_SUBST([DLOPEN_LIBS])
+])
+
+AC_DEFUN([LIBVIRT_RESULT_DLOPEN], [
+  LIBVIRT_RESULT_LIB([DLOPEN])
+])
-- 
2.11.0




More information about the libvir-list mailing list