]> xenbits.xensource.com Git - libvirt.git/commitdiff
build: move readline check into its own macro
authorEric Blake <eblake@redhat.com>
Thu, 2 May 2013 02:54:57 +0000 (20:54 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 7 Oct 2013 14:35:57 +0000 (08:35 -0600)
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@redhat.com>
configure.ac
m4/virt-readline.m4 [new file with mode: 0644]

index fb3975a5e2448cd7b924fc151c431bfcb087a11f..1993fab9b8375bdbfc0877678a45e9f1fbc823b7 100644 (file)
@@ -236,6 +236,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
@@ -1564,45 +1565,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
@@ -2737,6 +2700,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
@@ -2817,7 +2781,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 (file)
index 0000000..8f5a884
--- /dev/null
@@ -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'])
+])