openvswitch: Remove Linux bridge compatibility.
[sliver-openvswitch.git] / m4 / openvswitch.m4
index d3e9f9f..59cc933 100644 (file)
@@ -1,6 +1,6 @@
 # -*- autoconf -*-
 
-# Copyright (c) 2008, 2009, 2010 Nicira Networks.
+# Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,10 +19,10 @@ AC_DEFUN([OVS_CHECK_COVERAGE],
   [AC_REQUIRE([AC_PROG_CC])
    AC_ARG_ENABLE(
      [coverage],
-     [AC_HELP_STRING([--enable-coverage], 
+     [AC_HELP_STRING([--enable-coverage],
                      [Enable gcov coverage tool.])],
      [case "${enableval}" in
-        (lcov|yes) coverage=true ;;
+        (yes) coverage=true ;;
         (no)  coverage=false ;;
         (*) AC_MSG_ERROR([bad value ${enableval} for --enable-coverage]) ;;
       esac],
@@ -36,7 +36,7 @@ dnl Checks for --enable-ndebug and defines NDEBUG if it is specified.
 AC_DEFUN([OVS_CHECK_NDEBUG],
   [AC_ARG_ENABLE(
      [ndebug],
-     [AC_HELP_STRING([--enable-ndebug], 
+     [AC_HELP_STRING([--enable-ndebug],
                      [Disable debugging features for max performance])],
      [case "${enableval}" in
         (yes) ndebug=true ;;
@@ -46,6 +46,32 @@ AC_DEFUN([OVS_CHECK_NDEBUG],
      [ndebug=false])
    AM_CONDITIONAL([NDEBUG], [test x$ndebug = xtrue])])
 
+dnl Checks for --enable-cache-time and defines CACHE_TIME if it is specified.
+AC_DEFUN([OVS_CHECK_CACHE_TIME],
+  [AC_ARG_ENABLE(
+     [cache-time],
+     [AC_HELP_STRING([--enable-cache-time],
+                     [Override time caching default (for testing only)])],
+     [case "${enableval}" in
+        (yes) cache_time=1;;
+        (no)  cache_time=0;;
+        (*) AC_MSG_ERROR([bad value ${enableval} for --enable-cache-time]) ;;
+      esac
+      AC_DEFINE_UNQUOTED([CACHE_TIME], [$cache_time],
+          [Define to 1 to enable time caching, to 0 to disable time caching, or
+           leave undefined to use the default (as one should
+           ordinarily do).])])])
+
+dnl Checks for ESX.
+AC_DEFUN([OVS_CHECK_ESX],
+  [AC_CHECK_HEADER([vmware.h],
+                   [ESX=yes],
+                   [ESX=no])
+   AM_CONDITIONAL([ESX], [test "$ESX" = yes])
+   if test "$ESX" = yes; then
+      AC_DEFINE([ESX], [1], [Define to 1 if building on ESX.])
+   fi])
+
 dnl Checks for Netlink support.
 AC_DEFUN([OVS_CHECK_NETLINK],
   [AC_CHECK_HEADER([linux/netlink.h],
@@ -60,30 +86,33 @@ AC_DEFUN([OVS_CHECK_NETLINK],
                 [Define to 1 if Netlink protocol is available.])
    fi])
 
-dnl Checks for OpenSSL, if --enable-ssl is passed in.
+dnl Checks for OpenSSL.
 AC_DEFUN([OVS_CHECK_OPENSSL],
   [AC_ARG_ENABLE(
      [ssl],
-     [AC_HELP_STRING([--enable-ssl], 
-                     [Enable ssl support (requires libssl)])],
+     [AC_HELP_STRING([--disable-ssl], [Disable OpenSSL support])],
      [case "${enableval}" in
         (yes) ssl=true ;;
         (no)  ssl=false ;;
         (*) AC_MSG_ERROR([bad value ${enableval} for --enable-ssl]) ;;
       esac],
-     [ssl=false])
+     [ssl=check])
 
-   if test "$ssl" = true; then
-       dnl Make sure that pkg-config is installed.
-       m4_pattern_forbid([PKG_CHECK_MODULES])
-       PKG_CHECK_MODULES([SSL], [libssl], 
+   if test "$ssl" != false; then
+       m4_ifndef([PKG_CHECK_MODULES], [m4_fatal([Please install pkg-config.])])
+       PKG_CHECK_MODULES([SSL], [openssl],
          [HAVE_OPENSSL=yes],
          [HAVE_OPENSSL=no
-          AC_MSG_WARN([Cannot find libssl:
+          if test "$ssl" = check; then
+            AC_MSG_WARN([Cannot find openssl:
 
 $SSL_PKG_ERRORS
 
-OpenFlow connections over SSL will not be supported.])])
+OpenFlow connections over SSL will not be supported.
+(You may use --disable-ssl to suppress this warning.)])
+          else
+            AC_MSG_ERROR([Cannot find openssl (use --disable-ssl to configure without SSL support)])
+          fi])
    else
        HAVE_OPENSSL=no
    fi
@@ -101,18 +130,18 @@ AC_DEFUN([OVS_CHECK_SOCKET_LIBS],
 dnl Checks for the directory in which to store the PKI.
 AC_DEFUN([OVS_CHECK_PKIDIR],
   [AC_ARG_WITH(
-     [pkidir], 
-     AC_HELP_STRING([--with-pkidir=DIR], 
-                    [PKI hierarchy directory [[DATADIR/openvswitch/pki]]]),
+     [pkidir],
+     AC_HELP_STRING([--with-pkidir=DIR],
+                    [PKI hierarchy directory [[LOCALSTATEDIR/lib/openvswitch/pki]]]),
      [PKIDIR=$withval],
-     [PKIDIR='${pkgdatadir}/pki'])
+     [PKIDIR='${localstatedir}/lib/openvswitch/pki'])
    AC_SUBST([PKIDIR])])
 
 dnl Checks for the directory in which to store pidfiles.
 AC_DEFUN([OVS_CHECK_RUNDIR],
   [AC_ARG_WITH(
-     [rundir], 
-     AC_HELP_STRING([--with-rundir=DIR], 
+     [rundir],
+     AC_HELP_STRING([--with-rundir=DIR],
                     [directory used for pidfiles
                     [[LOCALSTATEDIR/run/openvswitch]]]),
      [RUNDIR=$withval],
@@ -122,13 +151,28 @@ AC_DEFUN([OVS_CHECK_RUNDIR],
 dnl Checks for the directory in which to store logs.
 AC_DEFUN([OVS_CHECK_LOGDIR],
   [AC_ARG_WITH(
-     [logdir], 
-     AC_HELP_STRING([--with-logdir=DIR], 
+     [logdir],
+     AC_HELP_STRING([--with-logdir=DIR],
                     [directory used for logs [[LOCALSTATEDIR/log/PACKAGE]]]),
      [LOGDIR=$withval],
      [LOGDIR='${localstatedir}/log/${PACKAGE}'])
    AC_SUBST([LOGDIR])])
 
+dnl Checks for the directory in which to store the Open vSwitch database.
+AC_DEFUN([OVS_CHECK_DBDIR],
+  [AC_ARG_WITH(
+     [dbdir],
+     AC_HELP_STRING([--with-dbdir=DIR],
+                    [directory used for conf.db [[SYSCONFDIR/PACKAGE]]]),
+     [DBDIR=$withval],
+     [DBDIR='${sysconfdir}/${PACKAGE}'])
+   AC_SUBST([DBDIR])])
+
+dnl Defines HAVE_BACKTRACE if backtrace() is declared in <execinfo.h>
+dnl and exists in libc.
+AC_DEFUN([OVS_CHECK_BACKTRACE],
+  [AC_CHECK_HEADER([execinfo.h], [AC_CHECK_FUNCS([backtrace])])])
+
 dnl Checks for __malloc_hook, etc., supported by glibc.
 AC_DEFUN([OVS_CHECK_MALLOC_HOOKS],
   [AC_CACHE_CHECK(
@@ -137,20 +181,20 @@ AC_DEFUN([OVS_CHECK_MALLOC_HOOKS],
     [AC_COMPILE_IFELSE(
       [AC_LANG_PROGRAM(
          [#include <malloc.h>
-         ], 
+         ],
          [(void) __malloc_hook;
           (void) __realloc_hook;
           (void) __free_hook;])],
       [ovs_cv_malloc_hooks=yes],
       [ovs_cv_malloc_hooks=no])])
    if test $ovs_cv_malloc_hooks = yes; then
-     AC_DEFINE([HAVE_MALLOC_HOOKS], [1], 
+     AC_DEFINE([HAVE_MALLOC_HOOKS], [1],
                [Define to 1 if you have __malloc_hook, __realloc_hook, and
                 __free_hook in <malloc.h>.])
    fi])
 
 dnl Checks for valgrind/valgrind.h.
-AC_DEFUN([OVS_CHECK_VALGRIND], 
+AC_DEFUN([OVS_CHECK_VALGRIND],
   [AC_CHECK_HEADERS([valgrind/valgrind.h])])
 
 dnl Checks for Python 2.x, x >= 4.
@@ -194,25 +238,12 @@ AC_DEFUN([OVS_CHECK_DOT],
     [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
+     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])])
+   AM_CONDITIONAL([HAVE_DOT], [test "$ovs_cv_dot" = yes])])
 
 dnl Checks for pyuic4.
 AC_DEFUN([OVS_CHECK_PYUIC4],
@@ -344,4 +375,18 @@ AC_DEFUN([OVS_CHECK_LINKER_SECTIONS],
                 into sections with user-defined names and the linker
                 automatically defines __start_SECNAME and __stop_SECNAME
                 symbols that designate the start and end of the section.])
-   fi])
+   fi
+   AM_CONDITIONAL(
+     [USE_LINKER_SECTIONS], [test $ovs_cv_use_linker_sections = yes])])
+
+dnl Checks for groff.
+AC_DEFUN([OVS_CHECK_GROFF],
+  [AC_CACHE_CHECK(
+    [for groff],
+    [ovs_cv_groff],
+    [if (groff -v) >/dev/null 2>&1; then
+       ovs_cv_groff=yes
+     else
+       ovs_cv_groff=no
+     fi])
+   AM_CONDITIONAL([HAVE_GROFF], [test "$ovs_cv_groff" = yes])])