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

[Xen-changelog] [xen-unstable] autoconf: add check for curses library



# HG changeset patch
# User Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
# Date 1331652215 0
# Node ID 703a339e11abf1ea14ee528f4194b308fcb3ea88
# Parent  5d20d2f6ffed0a49f030f04a8870f1926babbcbf
autoconf: add check for curses library

Check for a curses compatible library (curses or ncurses basically).
One of those is needed to compile Xen tools (gtraceview and xentop).

Modify Makefiles/sources to use configure output (fetch CURSES_LIBS
from tools/Tools.mk and header to include from tools/config.h)

Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---


diff -r 5d20d2f6ffed -r 703a339e11ab config/NetBSD.mk
--- a/config/NetBSD.mk  Fri Mar 09 16:54:24 2012 +0000
+++ b/config/NetBSD.mk  Tue Mar 13 15:23:35 2012 +0000
@@ -1,8 +1,6 @@
 include $(XEN_ROOT)/config/StdGNU.mk
 
 # Override settings for this OS
-CURSES_LIBS = -lcurses
-
 LIBLEAFDIR_x86_64 = lib
 LIBEXEC = $(PREFIX)/libexec
 PRIVATE_BINDIR = $(BINDIR)
diff -r 5d20d2f6ffed -r 703a339e11ab config/StdGNU.mk
--- a/config/StdGNU.mk  Fri Mar 09 16:54:24 2012 +0000
+++ b/config/StdGNU.mk  Tue Mar 13 15:23:35 2012 +0000
@@ -67,7 +67,6 @@
 XEN_SCRIPT_DIR = $(XEN_CONFIG_DIR)/scripts
 
 SOCKET_LIBS =
-CURSES_LIBS = -lncurses
 PTHREAD_LIBS = -lpthread
 UTIL_LIBS = -lutil
 DLOPEN_LIBS = -ldl
diff -r 5d20d2f6ffed -r 703a339e11ab config/SunOS.mk
--- a/config/SunOS.mk   Fri Mar 09 16:54:24 2012 +0000
+++ b/config/SunOS.mk   Tue Mar 13 15:23:35 2012 +0000
@@ -47,7 +47,6 @@
 SunOS_LIBDIR_x86_64 = /usr/sfw/lib/amd64
 
 SOCKET_LIBS = -lsocket
-CURSES_LIBS = -lcurses
 PTHREAD_LIBS = -lpthread
 UTIL_LIBS =
 DLOPEN_LIBS = -ldl
diff -r 5d20d2f6ffed -r 703a339e11ab config/Tools.mk.in
--- a/config/Tools.mk.in        Fri Mar 09 16:54:24 2012 +0000
+++ b/config/Tools.mk.in        Tue Mar 13 15:23:35 2012 +0000
@@ -43,3 +43,4 @@
 CONFIG_LIBICONV     := @libiconv@
 CONFIG_GCRYPT       := @libgcrypt@
 CONFIG_EXT2FS       := @libext2fs@
+CURSES_LIBS         := @CURSES_LIBS@
diff -r 5d20d2f6ffed -r 703a339e11ab tools/config.h.in
--- a/tools/config.h.in Fri Mar 09 16:54:24 2012 +0000
+++ b/tools/config.h.in Tue Mar 13 15:23:35 2012 +0000
@@ -14,3 +14,6 @@
 
 /* Define to 1 if you have the <yajl/yajl_version.h> header file. */
 #undef HAVE_YAJL_YAJL_VERSION_H
+
+/* Define curses header to include. */
+#undef INCLUDE_CURSES_H
diff -r 5d20d2f6ffed -r 703a339e11ab tools/configure
--- a/tools/configure   Fri Mar 09 16:54:24 2012 +0000
+++ b/tools/configure   Tue Mar 13 15:23:35 2012 +0000
@@ -611,6 +611,7 @@
 PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
+CURSES_LIBS
 PYTHONPATH
 OCAMLBUILD
 OCAMLDOC
@@ -3904,6 +3905,8 @@
 # PKG_CHECK_MODULES
 
 
+
+
 # Enable/disable options
 # Check whether --enable-githttp was given.
 if test "${enable_githttp+set}" = set; then :
@@ -6227,6 +6230,132 @@
 fi
 
 
+ac_fn_c_check_header_mongrel "$LINENO" "curses.h" "ac_cv_header_curses_h" 
"$ac_includes_default"
+if test "x$ac_cv_header_curses_h" = x""yes; then :
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clear in -lcurses" 
>&5
+$as_echo_n "checking for clear in -lcurses... " >&6; }
+if test "${ac_cv_lib_curses_clear+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcurses  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clear ();
+int
+main ()
+{
+return clear ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_curses_clear=yes
+else
+  ac_cv_lib_curses_clear=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_clear" >&5
+$as_echo "$ac_cv_lib_curses_clear" >&6; }
+if test "x$ac_cv_lib_curses_clear" = x""yes; then :
+  curses="y"
+else
+  curses="n"
+fi
+
+
+else
+  curses="n"
+fi
+
+
+ac_fn_c_check_header_mongrel "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" 
"$ac_includes_default"
+if test "x$ac_cv_header_ncurses_h" = x""yes; then :
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clear in -lncurses" 
>&5
+$as_echo_n "checking for clear in -lncurses... " >&6; }
+if test "${ac_cv_lib_ncurses_clear+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lncurses  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clear ();
+int
+main ()
+{
+return clear ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_ncurses_clear=yes
+else
+  ac_cv_lib_ncurses_clear=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_clear" >&5
+$as_echo "$ac_cv_lib_ncurses_clear" >&6; }
+if test "x$ac_cv_lib_ncurses_clear" = x""yes; then :
+  ncurses="y"
+else
+  ncurses="n"
+fi
+
+
+else
+  ncurses="n"
+fi
+
+
+if test "$curses" = "n" && test "$ncurses" = "n"; then :
+
+    as_fn_error $? "Unable to find a suitable curses library" "$LINENO" 5
+
+fi
+# Prefer ncurses over curses if both are present
+if test "$ncurses" = "y"; then :
+
+    CURSES_LIBS="-lncurses"
+
+$as_echo "#define INCLUDE_CURSES_H <ncurses.h>" >>confdefs.h
+
+
+else
+
+    CURSES_LIBS="-lcurses"
+
+$as_echo "#define INCLUDE_CURSES_H <curses.h>" >>confdefs.h
+
+
+fi
+
+
+
 
 
 
diff -r 5d20d2f6ffed -r 703a339e11ab tools/configure.ac
--- a/tools/configure.ac        Fri Mar 09 16:54:24 2012 +0000
+++ b/tools/configure.ac        Tue Mar 13 15:23:35 2012 +0000
@@ -33,6 +33,7 @@
 m4_include([m4/set_cflags_ldflags.m4])
 m4_include([m4/uuid.m4])
 m4_include([m4/pkg.m4])
+m4_include([m4/curses.m4])
 
 # Enable/disable options
 AX_ARG_ENABLE_AND_EXPORT([githttp], [Download GIT repositories via HTTP])
@@ -98,6 +99,7 @@
 ])
 AX_PATH_PROG_OR_FAIL([XGETTEXT], [xgettext])
 AX_CHECK_UUID
+AX_CHECK_CURSES
 PKG_CHECK_MODULES(glib, glib-2.0)
 
 # Check library path
diff -r 5d20d2f6ffed -r 703a339e11ab tools/m4/curses.m4
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/m4/curses.m4        Tue Mar 13 15:23:35 2012 +0000
@@ -0,0 +1,20 @@
+AC_DEFUN([AX_CHECK_CURSES], [
+AC_CHECK_HEADER([curses.h], [
+    AC_CHECK_LIB([curses], [clear], [curses="y"], [curses="n"])
+], [curses="n"])
+AC_CHECK_HEADER([ncurses.h], [
+    AC_CHECK_LIB([ncurses], [clear], [ncurses="y"], [ncurses="n"])
+], [ncurses="n"])
+AS_IF([test "$curses" = "n" && test "$ncurses" = "n"], [
+    AC_MSG_ERROR([Unable to find a suitable curses library])
+])
+# Prefer ncurses over curses if both are present
+AS_IF([test "$ncurses" = "y"], [
+    CURSES_LIBS="-lncurses"
+    AC_DEFINE([INCLUDE_CURSES_H], [<ncurses.h>], [Define curses header to use])
+], [
+    CURSES_LIBS="-lcurses"
+    AC_DEFINE([INCLUDE_CURSES_H], [<curses.h>], [Define curses header to use])
+])
+AC_SUBST(CURSES_LIBS)
+])
diff -r 5d20d2f6ffed -r 703a339e11ab tools/misc/Makefile
--- a/tools/misc/Makefile       Fri Mar 09 16:54:24 2012 +0000
+++ b/tools/misc/Makefile       Tue Mar 13 15:23:35 2012 +0000
@@ -27,6 +27,9 @@
 INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
 INSTALL_SBIN := $(INSTALL_SBIN-y)
 
+# Include configure output (config.h) to headers search path
+CFLAGS += -I$(XEN_ROOT)/tools
+
 .PHONY: all
 all: build
 
diff -r 5d20d2f6ffed -r 703a339e11ab tools/misc/gtraceview.c
--- a/tools/misc/gtraceview.c   Fri Mar 09 16:54:24 2012 +0000
+++ b/tools/misc/gtraceview.c   Tue Mar 13 15:23:35 2012 +0000
@@ -16,6 +16,9 @@
  * Place - Suite 330, Boston, MA 02111-1307 USA.
  */
 
+/* Include output from configure */
+#include <config.h>
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -30,12 +33,8 @@
 #include <xenctrl.h>
 #include <xen/trace.h>
 
-#ifdef __linux__
-#include <ncurses.h>
-#endif
-#ifdef __NetBSD__
-#include <curses.h>
-#endif
+/* get curses header from configure */
+#include INCLUDE_CURSES_H
 
 /********** MACROS **********/
 #define MAX_CPU_NR  32
diff -r 5d20d2f6ffed -r 703a339e11ab tools/xenstat/xentop/Makefile
--- a/tools/xenstat/xentop/Makefile     Fri Mar 09 16:54:24 2012 +0000
+++ b/tools/xenstat/xentop/Makefile     Tue Mar 13 15:23:35 2012 +0000
@@ -22,6 +22,9 @@
 LDLIBS += $(LDLIBS_libxenstat) $(CURSES_LIBS) $(SOCKET_LIBS)
 CFLAGS += -DHOST_$(XEN_OS)
 
+# Include configure output (config.h) to headers search path
+CFLAGS += -I$(XEN_ROOT)/tools
+
 .PHONY: all
 all: xentop
 
diff -r 5d20d2f6ffed -r 703a339e11ab tools/xenstat/xentop/xentop.c
--- a/tools/xenstat/xentop/xentop.c     Fri Mar 09 16:54:24 2012 +0000
+++ b/tools/xenstat/xentop/xentop.c     Tue Mar 13 15:23:35 2012 +0000
@@ -18,7 +18,13 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <curses.h>
+
+/* Include output from configure */
+#include <config.h>
+
+/* get curses header from configure */
+#include INCLUDE_CURSES_H
+
 #include <ctype.h>
 #include <errno.h>
 #include <stdio.h>

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.