dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2011      Mellanox Technologies. All rights reserved.
dnl Copyright (c) 2013      Cisco Systems, Inc.  All rights reserved.
dnl Copyright (c) 2015      Research Organization for Information Science
dnl                         and Technology (RIST). All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl

# OMPI_CHECK_FCA(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
# check if fca support can be found.  sets prefix_{CPPFLAGS,
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
# support, otherwise executes action-if-not-found
AC_DEFUN([OMPI_CHECK_FCA],[
    OPAL_VAR_SCOPE_PUSH([ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save])

    AC_ARG_WITH([fca],
        [AC_HELP_STRING([--with-fca(=DIR)],
             [Build fca (Mellanox Fabric Collective Accelerator) support, optionally adding
              DIR/include and DIR/lib or DIR/lib64 to the search path for headers and libraries])])

    AS_IF([test "$with_fca" != "no"],
          [ompi_check_fca_libs=fca
           AS_IF([test ! -z "$with_fca" && test "$with_fca" != "yes"],
                 [ompi_check_fca_dir=$with_fca
                  AC_SUBST([coll_fca_HOME], "$ompi_check_fca_dir")],
                 [AC_SUBST([coll_fca_HOME], "/")])

           CPPFLAGS_save=$CPPFLAGS
           LDFLAGS_save=$LDFLAGS
           LIBS_save=$LIBS


           OPAL_LOG_MSG([$1_CPPFLAGS : $$1_CPPFLAGS], 1)
           OPAL_LOG_MSG([$1_LDFLAGS  : $$1_LDFLAGS], 1)
           OPAL_LOG_MSG([$1_LIBS     : $$1_LIBS], 1)

           OPAL_CHECK_PACKAGE([$1],
                              [fca/fca_api.h],
                              [$ompi_check_fca_libs],
                              [fca_get_version],
                              [],
                              [$ompi_check_fca_dir],
                              [],
                              [ompi_check_fca_happy="yes"],
                              [ompi_check_fca_happy="no"])

           CPPFLAGS=$CPPFLAGS_save
           LDFLAGS=$LDFLAGS_save
           LIBS=$LIBS_save],
          [ompi_check_fca_happy="no"])

    AS_IF([test "$ompi_check_fca_happy" = "yes" && test "$enable_progress_threads" = "yes"],
          [AC_MSG_WARN([fca driver does not currently support progress threads.  Disabling FCA.])
           ompi_check_fca_happy="no"])

    AS_IF([test "$ompi_check_fca_happy" = "yes"],
          [$2],
          [AS_IF([test ! -z "$with_fca" && test "$with_fca" != "no"],
                 [AC_MSG_ERROR([FCA support requested but not found.  Aborting])])
           $3])

    OPAL_VAR_SCOPE_POP
])