# dpcp.m4 - Library to operate with DevX
#
# Copyright (C) Mellanox Technologies Ltd. 2001-2020. ALL RIGHTS RESERVED.
# See file LICENSE for terms.
#
##########################
# libdpcp usage support
#
AC_DEFUN([DPCP_CAPABILITY_SETUP],
[
AC_ARG_WITH([dpcp],
AC_HELP_STRING([--with-dpcp(=DIR)],
[Search for dpcp headers and libraries in DIR (default NO)]),
[],
[with_dpcp=no]
)
if test -z "$with_dpcp" || test "$with_dpcp" = "yes"; then
with_dpcp=/usr
fi
FUNC_CHECK_WITHDIR([dpcp], [$with_dpcp], [include/mellanox/dpcp.h])
vma_cv_dpcp=0
AS_IF([test "x$with_dpcp" == xno],
[],
[
vma_cv_dpcp_save_CPPFLAGS="$CPPFLAGS"
vma_cv_dpcp_save_CXXFLAGS="$CXXFLAGS"
vma_cv_dpcp_save_CFLAGS="$CFLAGS"
vma_cv_dpcp_save_LDFLAGS="$LDFLAGS"
vma_cv_dpcp_save_LIBS="$LIBS"
vma_cv_dpcp_CPPFLAGS="-I$with_dpcp/include"
vma_cv_dpcp_LIBS="-ldpcp -lmlx5"
vma_cv_dpcp_LDFLAGS="-L$with_dpcp/lib -Wl,--rpath,$with_dpcp/lib"
if test -d "$with_dpcp/lib64"; then
vma_cv_dpcp_LDFLAGS="-L$with_dpcp/lib64 -Wl,--rpath,$with_dpcp/lib64"
fi
CPPFLAGS="$vma_cv_dpcp_CPPFLAGS $CPPFLAGS"
CXXFLAGS="-std=c++11 $CXXFLAGS"
LDFLAGS="$vma_cv_dpcp_LDFLAGS $LDFLAGS"
LIBS="$vma_cv_dpcp_LIBS $LIBS"
AC_LANG_PUSH([C++])
AC_CHECK_HEADER(
[mellanox/dpcp.h],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mellanox/dpcp.h>]],
[[dpcp::provider *provider;
dpcp::provider::get_instance(provider);]])],
[vma_cv_dpcp=1])
])
AC_LANG_POP()
CPPFLAGS="$vma_cv_dpcp_save_CPPFLAGS"
CXXFLAGS="$vma_cv_dpcp_save_CXXFLAGS"
CFLAGS="$vma_cv_dpcp_save_CFLAGS"
LDFLAGS="$vma_cv_dpcp_save_LDFLAGS"
LIBS="$vma_cv_dpcp_save_LIBS"
])
AC_MSG_CHECKING([for dpcp support])
if test "$vma_cv_dpcp" -ne 0; then
CPPFLAGS="$CPPFLAGS $vma_cv_dpcp_CPPFLAGS"
LDFLAGS="$LDFLAGS $vma_cv_dpcp_LDFLAGS"
AC_SUBST([DPCP_LIBS], ["-ldpcp"])
AC_DEFINE_UNQUOTED([DEFINED_DPCP], [1], [Define to 1 to use DPCP])
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
])