Blame config/m4/dpcp.m4

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