blob: a228657abe79e4018816b7415f29eb8e7a2e064b [file] [log] [blame]
##*****************************************************************************
# AUTHOR:
# Kemp Ke <kemp.ke@intel.com>
#
# SYNOPSIS:
# X_AC_ONEAPI
#
# DESCRIPTION:
# Determine if Intel's oneAPI library exists
##*****************************************************************************
AC_DEFUN([X_AC_ONEAPI],
[
_x_ac_oneapi_dirs="/usr /usr/local"
_x_ac_oneapi_lib_dirs="x86_64-linux-gnu lib64 lib"
AC_ARG_WITH(
[oneapi],
AS_HELP_STRING(--with-oneapi=PATH, Specify path to oneAPI installation),
[AS_IF([test "x$with_oneapi" != xno && test "x$with_oneapi" != xyes],
[_x_ac_oneapi_dirs="$with_oneapi"])])
if [test "x$with_oneapi" = xno]; then
AC_MSG_NOTICE([support for oneapi disabled])
else
AC_MSG_CHECKING([whether oneAPI in installed in this system])
# Check for oneAPI header and library in the default location
# or in the location specified during configure
#
# NOTE: Just because this is where we are looking and finding the
# libraries they must be in the ldcache when running as that is what the
# card will be using.
AC_MSG_RESULT([])
cppflags_save="$CPPFLAGS"
ldflags_save="$LDFLAGS"
for _x_ac_oneapi_dir in $_x_ac_oneapi_dirs; do
ONEAPI_CPPFLAGS="-I$_x_ac_oneapi_dir/include/level_zero"
CPPFLAGS="$ONEAPI_CPPFLAGS"
AS_UNSET([ac_cv_header_ze_api_h])
AC_CHECK_HEADER([ze_api.h], [ac_oneapi_h=yes], [ac_oneapi_h=no])
if test "$ac_oneapi_h" = "no"; then
continue
fi
for _x_ac_oneapi_lib_dir in $_x_ac_oneapi_lib_dirs; do
ONEAPI_LIB_DIR="$_x_ac_oneapi_dir/$_x_ac_oneapi_lib_dir"
LDFLAGS="-L$ONEAPI_LIB_DIR"
AS_UNSET([ac_cv_lib_ze_loader_zeInit])
AC_CHECK_LIB([ze_loader], [zeInit], [ac_oneapi=yes], [ac_oneapi=no])
if test "$ac_oneapi" = "yes"; then
AC_DEFINE(HAVE_ONEAPI, 1, [Define to 1 if oneAPI library found])
AC_SUBST(ONEAPI_CPPFLAGS)
break;
fi
done
if test "$ac_oneapi" = "yes"; then
break;
fi
done
CPPFLAGS="$cppflags_save"
LDFLAGS="$ldflags_save"
if test "$ac_oneapi" != "yes"; then
if test -z "$with_oneapi"; then
AC_MSG_WARN([unable to locate libze_loader.so and/or ze_api.h])
else
AC_MSG_ERROR([unable to locate libze_loader.so and/or ze_api.h])
fi
fi
fi
AM_CONDITIONAL(BUILD_ONEAPI, test "$ac_oneapi" = "yes")
])