X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=m4%2Fopenvswitch.m4;h=0b22f64ebc05a82ac9e36d14709c8ad0738ae00c;hb=f5fb5de6bed79b77fff769bec1b2a5cb3fe80db0;hp=b7267438c97127448cea3506ff7505003fea5fd1;hpb=3b135da329687c69d3a0f1689621f75cc4888d6f;p=sliver-openvswitch.git diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4 index b7267438c..0b22f64eb 100644 --- a/m4/openvswitch.m4 +++ b/m4/openvswitch.m4 @@ -1,6 +1,6 @@ # -*- autoconf -*- -# Copyright (c) 2008, 2009 Nicira Networks. +# Copyright (c) 2008, 2009, 2010 Nicira Networks. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -22,22 +22,15 @@ AC_DEFUN([OVS_CHECK_COVERAGE], [AC_HELP_STRING([--enable-coverage], [Enable gcov coverage tool.])], [case "${enableval}" in - (lcov) coverage=true lcov=true ;; - (yes) coverage=true lcov=false ;; - (no) coverage=false lcov=false ;; + (lcov|yes) coverage=true ;; + (no) coverage=false ;; (*) AC_MSG_ERROR([bad value ${enableval} for --enable-coverage]) ;; esac], - [coverage=false lcov=false]) + [coverage=false]) if $coverage; then CFLAGS="$CFLAGS -O0 --coverage" LDFLAGS="$LDFLAGS --coverage" - fi - if $lcov; then - if lcov --version >/dev/null 2>&1; then :; else - AC_MSG_ERROR([--enable-coverage=lcov was specified but lcov is not in \$PATH]) - fi - fi - AC_SUBST([LCOV], [$lcov])]) + fi]) dnl Checks for --enable-ndebug and defines NDEBUG if it is specified. AC_DEFUN([OVS_CHECK_NDEBUG], @@ -81,28 +74,25 @@ AC_DEFUN([OVS_CHECK_OPENSSL], [ssl=false]) if test "$ssl" = true; then - dnl Make sure that pkg-config is installed. - m4_pattern_forbid([PKG_CHECK_MODULES]) - PKG_CHECK_MODULES([SSL], [libssl], - [HAVE_OPENSSL=yes], - [HAVE_OPENSSL=no - AC_MSG_WARN([Cannot find libssl: - - $SSL_PKG_ERRORS + dnl Make sure that pkg-config is installed. + m4_pattern_forbid([PKG_CHECK_MODULES]) + PKG_CHECK_MODULES([SSL], [libssl], + [HAVE_OPENSSL=yes], + [HAVE_OPENSSL=no + AC_MSG_WARN([Cannot find libssl: - OpenFlow connections over SSL will not be supported.])]) +$SSL_PKG_ERRORS +OpenFlow connections over SSL will not be supported.])]) + else + HAVE_OPENSSL=no fi + AC_SUBST([HAVE_OPENSSL]) AM_CONDITIONAL([HAVE_OPENSSL], [test "$HAVE_OPENSSL" = yes]) if test "$HAVE_OPENSSL" = yes; then AC_DEFINE([HAVE_OPENSSL], [1], [Define to 1 if OpenSSL is installed.]) fi]) -dnl Checks for libraries needed by lib/fault.c. -AC_DEFUN([OVS_CHECK_FAULT_LIBS], - [AC_CHECK_LIB([dl], [dladdr], [FAULT_LIBS=-ldl]) - AC_SUBST([FAULT_LIBS])]) - dnl Checks for libraries needed by lib/socket-util.c. AC_DEFUN([OVS_CHECK_SOCKET_LIBS], [AC_CHECK_LIB([socket], [connect]) @@ -123,9 +113,10 @@ AC_DEFUN([OVS_CHECK_RUNDIR], [AC_ARG_WITH( [rundir], AC_HELP_STRING([--with-rundir=DIR], - [directory used for pidfiles [[LOCALSTATEDIR/run]]]), + [directory used for pidfiles + [[LOCALSTATEDIR/run/openvswitch]]]), [RUNDIR=$withval], - [RUNDIR='${localstatedir}/run']) + [RUNDIR='${localstatedir}/run/openvswitch']) AC_SUBST([RUNDIR])]) dnl Checks for the directory in which to store logs. @@ -225,19 +216,23 @@ AC_DEFUN([OVS_CHECK_LINUX_VT_H], fi]) dnl Checks for libpcre. +dnl +dnl ezio-term wants libpcre that supports the PCRE_PARTIAL feature, +dnl which is libpcre 7.2 or later. AC_DEFUN([OVS_CHECK_PCRE], [dnl Make sure that pkg-config is installed. m4_pattern_forbid([PKG_CHECK_MODULES]) - PKG_CHECK_MODULES([PCRE], [libpcre >= 7.2], [HAVE_PCRE=yes], [HAVE_PCRE=no]) - AM_CONDITIONAL([HAVE_PCRE], [test "$HAVE_PCRE" = yes]) - if test "$HAVE_PCRE" = yes; then - AC_DEFINE([HAVE_PCRE], [1], [Define to 1 if libpcre is installed.]) - fi]) + PKG_CHECK_MODULES([PCRE], + [libpcre >= 7.2], + [HAVE_PCRE_PARTIAL=yes], + [HAVE_PCRE_PARTIAL=no]) + AM_CONDITIONAL([HAVE_PCRE_PARTIAL], [test "$HAVE_PCRE_PARTIAL" = yes]) + AC_SUBST([HAVE_PCRE_PARTIAL]) +]) dnl Checks for Python 2.x, x >= 4. AC_DEFUN([OVS_CHECK_PYTHON], - [AC_ARG_VAR([PYTHON], [path to Python 2.x]) - AC_CACHE_CHECK( + [AC_CACHE_CHECK( [for Python 2.x for x >= 4], [ovs_cv_python], [if test -n "$PYTHON"; then @@ -260,4 +255,95 @@ else: done done fi]) - PYTHON=$ovs_cv_python]) + AC_SUBST([HAVE_PYTHON]) + AM_MISSING_PROG([PYTHON], [python]) + if test $ovs_cv_python != no; then + PYTHON=$ovs_cv_python + HAVE_PYTHON=yes + else + HAVE_PYTHON=no + fi + AM_CONDITIONAL([HAVE_PYTHON], [test "$HAVE_PYTHON" = yes])]) + +dnl Checks for dot. +AC_DEFUN([OVS_CHECK_DOT], + [AC_CACHE_CHECK( + [for dot], + [ovs_cv_dot], + [dnl "dot" writes -V output to stderr: + if (dot -V) 2>&1 | grep '^dot - [gG]raphviz version' >/dev/null 2>&1; then + ovs_cv_dot=yes + else + ovs_cv_dot=no + fi])]) + +dnl Check whether to build E-R diagrams. +AC_DEFUN([OVS_CHECK_ER_DIAGRAMS], + [AC_REQUIRE([OVS_CHECK_DOT]) + AC_REQUIRE([OVS_CHECK_PYTHON]) + AC_CACHE_CHECK( + [whether to build E-R diagrams for database], + [ovs_cv_er_diagrams], + [if test $ovs_cv_dot != no && test $ovs_cv_python != no; then + ovs_cv_er_diagrams=yes + else + ovs_cv_er_diagrams=no + fi]) + AM_CONDITIONAL([BUILD_ER_DIAGRAMS], [test $ovs_cv_er_diagrams = yes])]) + +dnl Checks for pyuic4. +AC_DEFUN([OVS_CHECK_PYUIC4], + [AC_CACHE_CHECK( + [for pyuic4], + [ovs_cv_pyuic4], + [if (pyuic4 --version) >/dev/null 2>&1; then + ovs_cv_pyuic4=pyuic4 + else + ovs_cv_pyuic4=no + fi]) + AM_MISSING_PROG([PYUIC4], [pyuic4]) + if test $ovs_cv_pyuic4 != no; then + PYUIC4=$ovs_cv_pyuic4 + fi]) + +dnl Checks whether $PYTHON supports the module given as $1 +AC_DEFUN([OVS_CHECK_PYTHON_MODULE], + [AC_REQUIRE([OVS_CHECK_PYTHON]) + AC_CACHE_CHECK( + [for $1 Python module], + [ovs_cv_py_[]AS_TR_SH([$1])], + [ovs_cv_py_[]AS_TR_SH([$1])=no + if test $HAVE_PYTHON = yes; then + AS_ECHO(["running $PYTHON -c 'import $1 +import sys +sys.exit(0)'..."]) >&AS_MESSAGE_LOG_FD 2>&1 + if $PYTHON -c 'import $1 +import sys +sys.exit(0)' >&AS_MESSAGE_LOG_FD 2>&1; then + ovs_cv_py_[]AS_TR_SH([$1])=yes + fi + fi])]) + +dnl Checks for Python modules needed by ovsdbmonitor. +AC_DEFUN([OVS_CHECK_OVSDBMONITOR], + [OVS_CHECK_PYTHON_MODULE([PySide.QtCore]) + OVS_CHECK_PYTHON_MODULE([PyQt4.QtCore]) + OVS_CHECK_PYTHON_MODULE([twisted.conch.ssh]) + OVS_CHECK_PYTHON_MODULE([twisted.internet]) + OVS_CHECK_PYTHON_MODULE([twisted.application]) + OVS_CHECK_PYTHON_MODULE([json]) + OVS_CHECK_PYTHON_MODULE([zope.interface]) + if (test $ovs_cv_py_PySide_QtCore = yes \ + || test $ovs_cv_py_PyQt4_QtCore = yes) \ + && test $ovs_cv_py_twisted_conch_ssh = yes \ + && test $ovs_cv_py_twisted_internet = yes \ + && test $ovs_cv_py_twisted_application = yes \ + && test $ovs_cv_py_json = yes \ + && test $ovs_cv_py_zope_interface = yes; then + BUILD_OVSDBMONITOR=yes + else + BUILD_OVSDBMONITOR=no + fi + AC_MSG_CHECKING([whether to build ovsdbmonitor]) + AC_MSG_RESULT([$BUILD_OVSDBMONITOR]) + AM_CONDITIONAL([BUILD_OVSDBMONITOR], [test $BUILD_OVSDBMONITOR = yes])])