2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-13 14:07:02 +00:00
Files
openvswitch/m4/openvswitch.m4

211 lines
7.3 KiB
Plaintext
Raw Normal View History

# -*- autoconf -*-
# Copyright (c) 2008, 2009 Nicira Networks.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
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],
[Disable debugging features for max performance])],
[case "${enableval}" in
(yes) ndebug=true ;;
(no) ndebug=false ;;
(*) AC_MSG_ERROR([bad value ${enableval} for --enable-ndebug]) ;;
esac],
[ndebug=false])
AM_CONDITIONAL([NDEBUG], [test x$ndebug = xtrue])])
dnl Checks for Netlink support.
AC_DEFUN([OVS_CHECK_NETLINK],
[AC_CHECK_HEADER([linux/netlink.h],
[HAVE_NETLINK=yes],
[HAVE_NETLINK=no],
[#include <sys/socket.h>
#include <linux/types.h>
])
AM_CONDITIONAL([HAVE_NETLINK], [test "$HAVE_NETLINK" = yes])
if test "$HAVE_NETLINK" = yes; then
AC_DEFINE([HAVE_NETLINK], [1],
[Define to 1 if Netlink protocol is available.])
fi])
dnl Checks for OpenSSL, if --enable-ssl is passed in.
AC_DEFUN([OVS_CHECK_OPENSSL],
[AC_ARG_ENABLE(
[ssl],
[AC_HELP_STRING([--enable-ssl],
[Enable ssl support (requires libssl)])],
[case "${enableval}" in
(yes) ssl=true ;;
(no) ssl=false ;;
(*) AC_MSG_ERROR([bad value ${enableval} for --enable-ssl]) ;;
esac],
[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
OpenFlow connections over SSL will not be supported.])])
fi
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])
AC_SEARCH_LIBS([gethostbyname], [resolv], [RESOLVER_LIBS=-lresolv])])
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=$withval],
[PKIDIR='${pkgdatadir}/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],
[directory used for pidfiles [[LOCALSTATEDIR/run]]]),
[RUNDIR=$withval],
[RUNDIR='${localstatedir}/run'])
AC_SUBST([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],
[directory used for logs [[LOCALSTATEDIR/log/PACKAGE]]]),
[LOGDIR=$withval],
[LOGDIR='${localstatedir}/log/${PACKAGE}'])
AC_SUBST([LOGDIR])])
dnl Checks for __malloc_hook, etc., supported by glibc.
AC_DEFUN([OVS_CHECK_MALLOC_HOOKS],
[AC_CACHE_CHECK(
[whether libc supports hooks for malloc and related functions],
[ovs_cv_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],
[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_CHECK_HEADERS([valgrind/valgrind.h])])
dnl Searches for a directory to put lockfiles for tty devices.
dnl Defines C preprocessor variable TTY_LOCK_DIR to a quoted string
dnl for that directory.
AC_DEFUN([OVS_CHECK_TTY_LOCK_DIR],
[AC_CACHE_CHECK([directory used for serial device lockfiles],
[ovs_cv_path_tty_locks],
[# This list of candidate directories is from minicom.
ovs_cv_path_tty_locks=none
for dir in /etc/locks /var/lock /usr/spool/locks \
/var/spool/locks /var/spool/lock \
/usr/spool/uucp /var/spool/uucp /var/run; do
if test -d $dir; then
ovs_cv_path_tty_locks=$dir
break
fi
done])
if test "$ovs_cv_path_tty_locks" = none; then
AC_MSG_ERROR([cannot find a directory for tty locks])
fi
AC_DEFINE_UNQUOTED([TTY_LOCK_DIR], "$ovs_cv_path_tty_locks",
[Directory used for serial device lockfiles])])
dnl The following check is adapted from GNU PSPP.
dnl It searches for the ncurses library. If it finds it, it sets
dnl HAVE_CURSES to yes and sets NCURSES_LIBS and NCURSES_CFLAGS
dnl appropriate. Otherwise, it sets HAVE_CURSES to no.
AC_DEFUN([OVS_CHECK_CURSES],
[if test "$cross_compiling" != yes; then
AC_CHECK_PROGS([NCURSES_CONFIG], [ncurses5-config ncurses8-config])
fi
if test "$NCURSES_CONFIG" = ""; then
AC_SEARCH_LIBS([tgetent], [ncurses],
[AC_CHECK_HEADERS([term.h curses.h],
[HAVE_CURSES=yes],
[HAVE_CURSES=no])])
else
save_cflags=$CFLAGS
CFLAGS="$CFLAGS $($NCURSES_CONFIG --cflags)"
AC_CHECK_HEADERS([term.h curses.h],
[HAVE_CURSES=yes],
[HAVE_CURSES=no])
CFLAGS=$save_cflags
if test "$HAVE_CURSES" = yes; then
NCURSES_LIBS=$($NCURSES_CONFIG --libs)
NCURSES_CFLAGS=$($NCURSES_CONFIG --cflags)
AC_SUBST(NCURSES_CFLAGS)
AC_SUBST(NCURSES_LIBS)
fi
fi
AM_CONDITIONAL([HAVE_CURSES], [test "$HAVE_CURSES" = yes])])
dnl Checks for linux/vt.h.
AC_DEFUN([OVS_CHECK_LINUX_VT_H],
[AC_CHECK_HEADER([linux/vt.h],
[HAVE_LINUX_VT_H=yes],
[HAVE_LINUX_VT_H=no])
AM_CONDITIONAL([HAVE_LINUX_VT_H], [test "$HAVE_LINUX_VT_H" = yes])
if test "$HAVE_LINUX_VT_H" = yes; then
AC_DEFINE([HAVE_LINUX_VT_H], [1],
[Define to 1 if linux/vt.h is available.])
fi])
dnl Checks for libpcre.
AC_DEFUN([OVS_CHECK_PCRE],
[dnl Make sure that pkg-config is installed.
m4_pattern_forbid([PKG_CHECK_MODULES])
PKG_CHECK_MODULES([PCRE], [libpcre], [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])