[PATCH 1/2] build: move readline check into its own macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



A future patch will allow disabling readline; doing this in an
isolated file instead of configure.ac will make the task easier.

* configure.ac: Move readline code...
* m4/virt-readline.m4: ...here.

Signed-off-by: Eric Blake <eblake@xxxxxxxxxx>
---
 configure.ac        | 43 +++--------------------------------
 m4/virt-readline.m4 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+), 40 deletions(-)
 create mode 100644 m4/virt-readline.m4

diff --git a/configure.ac b/configure.ac
index 40e2210..7e357c4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -237,6 +237,7 @@ LIBVIRT_CHECK_NETCF
 LIBVIRT_CHECK_NUMACTL
 LIBVIRT_CHECK_OPENWSMAN
 LIBVIRT_CHECK_PCIACCESS
+LIBVIRT_CHECK_READLINE
 LIBVIRT_CHECK_SANLOCK
 LIBVIRT_CHECK_SASL
 LIBVIRT_CHECK_SELINUX
@@ -1565,45 +1566,7 @@ fi
 AM_CONDITIONAL([WITH_PHYP],[test "$with_phyp" = "yes"])

 dnl virsh libraries
-AC_CHECK_HEADERS([readline/readline.h])
-
-# Check for readline.
-AC_CHECK_LIB([readline], [readline],
-	[lv_use_readline=yes; VIRSH_LIBS="$VIRSH_LIBS -lreadline"],
-	[lv_use_readline=no])
-
-# If the above test failed, it may simply be that -lreadline requires
-# some termcap-related code, e.g., from one of the following libraries.
-# See if adding one of them to LIBS helps.
-if test $lv_use_readline = no; then
-    lv_saved_libs=$LIBS
-    LIBS=
-    AC_SEARCH_LIBS([tgetent], [ncurses curses termcap termlib])
-    case $LIBS in
-      no*) ;;  # handle "no" and "none required"
-      *) # anything else is a -lLIBRARY
-	# Now, check for -lreadline again, also using $LIBS.
-	# Note: this time we use a different function, so that
-	# we don't get a cached "no" result.
-	AC_CHECK_LIB([readline], [rl_initialize],
-		[lv_use_readline=yes
-		 VIRSH_LIBS="$VIRSH_LIBS -lreadline $LIBS"],,
-		[$LIBS])
-	;;
-    esac
-    test $lv_use_readline = no &&
-	AC_MSG_WARN([readline library not found])
-    LIBS=$lv_saved_libs
-fi
-
-if test $lv_use_readline = yes; then
-    AC_DEFINE_UNQUOTED([USE_READLINE], 1,
-		       [whether virsh can use readline])
-    READLINE_CFLAGS=-DUSE_READLINE
-else
-    READLINE_CFLAGS=
-fi
-AC_SUBST([READLINE_CFLAGS])
+VIRSH_LIBS="$VIRSH_LIBS $READLINE_LIBS"
 AC_SUBST([VIRSH_LIBS])

 dnl check if the network driver should be compiled
@@ -2738,6 +2701,7 @@ LIBVIRT_RESULT_NETCF
 LIBVIRT_RESULT_NUMACTL
 LIBVIRT_RESULT_OPENWSMAN
 LIBVIRT_RESULT_PCIACCESS
+LIBVIRT_RESULT_READLINE
 LIBVIRT_RESULT_SANLOCK
 LIBVIRT_RESULT_SASL
 LIBVIRT_RESULT_SELINUX
@@ -2818,7 +2782,6 @@ AC_MSG_NOTICE([])
 AC_MSG_NOTICE([            Debug: $enable_debug])
 AC_MSG_NOTICE([      Use -Werror: $set_werror])
 AC_MSG_NOTICE([    Warning Flags: $WARN_CFLAGS])
-AC_MSG_NOTICE([         Readline: $lv_use_readline])
 AC_MSG_NOTICE([           Python: $with_python])
 AC_MSG_NOTICE([           DTrace: $with_dtrace])
 AC_MSG_NOTICE([            numad: $with_numad])
diff --git a/m4/virt-readline.m4 b/m4/virt-readline.m4
new file mode 100644
index 0000000..8f5a884
--- /dev/null
+++ b/m4/virt-readline.m4
@@ -0,0 +1,65 @@
+dnl The readline library
+dnl
+dnl Copyright (C) 2005-2013 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_READLINE],[
+  READLINE_LIBS=
+  AC_CHECK_HEADERS([readline/readline.h])
+
+  AC_CHECK_LIB([readline], [readline],
+	[lv_use_readline=yes; READLINE_LIBS=-lreadline],
+	[lv_use_readline=no])
+
+  # If the above test failed, it may simply be that -lreadline requires
+  # some termcap-related code, e.g., from one of the following libraries.
+  # See if adding one of them to LIBS helps.
+  if test $lv_use_readline = no; then
+    lv_saved_libs=$LIBS
+    LIBS=
+    AC_SEARCH_LIBS([tgetent], [ncurses curses termcap termlib])
+    case $LIBS in
+      no*) ;;  # handle "no" and "none required"
+      *) # anything else is a -lLIBRARY
+	# Now, check for -lreadline again, also using $LIBS.
+	# Note: this time we use a different function, so that
+	# we don't get a cached "no" result.
+	AC_CHECK_LIB([readline], [rl_initialize],
+		[lv_use_readline=yes
+		 READLINE_LIBS="-lreadline $LIBS"],,
+		[$LIBS])
+	;;
+    esac
+    test $lv_use_readline = no &&
+	AC_MSG_WARN([readline library not found])
+    LIBS=$lv_saved_libs
+  fi
+
+  if test $lv_use_readline = yes; then
+    AC_DEFINE_UNQUOTED([USE_READLINE], 1,
+		       [whether virsh can use readline])
+    READLINE_CFLAGS=-DUSE_READLINE
+  else
+    READLINE_CFLAGS=
+  fi
+  AC_SUBST([READLINE_CFLAGS])
+])
+
+AC_DEFUN([LIBVIRT_RESULT_READLINE],[
+  LIBVIRT_RESULT([readline], [$lv_use_readline],
+     [CFLAGS='$READLINE_CFLAGS' LIBS='$READLINE_LIBS'])
+])
-- 
1.8.3.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]