blob: 8e1240f6d86035d579bd54240031758efa541f49 [file] [log] [blame]
##*****************************************************************************
# AUTHOR:
# Jim Nordby <james.nordby@hpe.com>
#
# SYNOPSIS:
# X_AC_HPE_SLINGSHOT
#
# DESCRIPTION:
# Test for HPE Slingshot network systems (via libcxi.h header)
#*****************************************************************************
#
# Copyright 2021 Hewlett Packard Enterprise Development LP
#
AC_DEFUN([X_AC_HPE_SLINGSHOT],
[
# /usr is the current default location.
# We will use a for loop to check for any.
# Unless _x_ac_hpe_ss_dirs is overwritten with --with-hpe-slingshot
_x_ac_hpe_ss_dirs="/usr"
AC_ARG_WITH(
[hpe-slingshot],
AS_HELP_STRING(--with-hpe-slingshot=PATH, Specify path to HPE Slingshot installation dir),
[AS_IF([test "x$with_hpe_slingshot" != xno && test "x$with_hpe_slingshot" != xyes],
[_x_ac_hpe_ss_dirs="$with_hpe_slingshot"])])
if [test "x$with_hpe_slingshot" = xno]; then
AC_MSG_NOTICE([support for HPE Slingshot disabled])
else
AC_MSG_CHECKING([whether HPE Slingshot is installed in this system])
# Check for HPE Slingshot header and library in the default location
# or in the location specified during configure
AC_MSG_RESULT([])
for _x_ac_hpe_ss_dir in $_x_ac_hpe_ss_dirs; do
cflags_save="$CFLAGS"
HPE_SLINGSHOT_CFLAGS="-I$_x_ac_hpe_ss_dir/include"
CFLAGS="$HPE_SLINGSHOT_CFLAGS"
AC_CHECK_HEADER([libcxi/libcxi.h], [ac_hpe_ss_h=yes], [ac_hpe_ss_h=no])
# We only care about the headers here.
# This plugin is designed to work without the lib.
# ldflags_save="$LDFLAGS"
# HPE_SLINGSHOT_LIBS="-L$_x_ac_hpe_ss_dir/lib64"
# LDFLAGS="$HPE_SLINGSHOT_LIBS"
# AC_CHECK_LIB([cxi], [cxil_get_device_list], [ac_hpe_ss_l=yes], [ac_hpe_ss_l=no])
# LDFLAGS="$ldflags_save"
if test "$ac_hpe_ss_h" = "yes"; then
ac_hpe_ss="yes"
AC_CHECK_TYPES([struct cxi_rsrc_use], [], [],
[
#include <string.h>
#include <stddef.h>
#include <sys/types.h>
#include <libcxi/libcxi.h>
])
AC_SUBST(HPE_SLINGSHOT_CFLAGS)
AC_DEFINE_UNQUOTED(HPE_SLINGSHOT_LIB, "$_x_ac_hpe_ss_dir/lib64/libcxi.so", [Full path of libcxi.so])
CFLAGS="$cflags_save"
break;
fi
CFLAGS="$cflags_save"
done
if test -z "$ac_hpe_ss"; then
if test -z "$with_hpe_slingshot"; then
AC_MSG_WARN([HPE Slingshot: unable to locate libcxi/libcxi.h])
else
AC_MSG_ERROR([HPE Slingshot: unable to locate libcxi/libcxi.h])
fi
fi
fi
AM_CONDITIONAL(WITH_SWITCH_HPE_SLINGSHOT, test "x$ac_hpe_ss" = "xyes")
])