The standard ICD file path is /etc/OpenCL/vendor/. However it doesn't fit well with custom build. This option allow ICD vendor file installation path override --- configure.ac | 46 +++++++++++++++++++++++----------- src/gallium/targets/opencl/Makefile.am | 2 +- 2 files changed, 33 insertions(+), 15 deletions(-)
diff --git a/configure.ac b/configure.ac index 095e23e..90dba4e 100644 --- a/configure.ac +++ b/configure.ac @@ -804,12 +804,6 @@ AC_ARG_ENABLE([opencl], [enable OpenCL library @<:@default=disabled@:>@])], [enable_opencl="$enableval"], [enable_opencl=no]) -AC_ARG_ENABLE([opencl_icd], - [AS_HELP_STRING([--enable-opencl-icd], - [Build an OpenCL ICD library to be loaded by an ICD implementation - @<:@default=disabled@:>@])], - [enable_opencl_icd="$enableval"], - [enable_opencl_icd=no]) AC_ARG_ENABLE([xlib-glx], [AS_HELP_STRING([--enable-xlib-glx], [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])], @@ -1689,19 +1683,11 @@ if test "x$enable_opencl" = xyes; then # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers enable_gallium_loader=yes - if test "x$enable_opencl_icd" = xyes; then - OPENCL_LIBNAME="MesaOpenCL" - else - OPENCL_LIBNAME="OpenCL" - fi - if test "x$have_libelf" != xyes; then AC_MSG_ERROR([Clover requires libelf]) fi fi AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes) -AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes) -AC_SUBST([OPENCL_LIBNAME]) dnl dnl Gallium configuration @@ -2006,6 +1992,38 @@ AC_ARG_WITH([d3d-libdir], [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"]) AC_SUBST([D3D_DRIVER_INSTALL_DIR]) +dnl OpenCL ICD + +AC_ARG_WITH([opencl-icd], + [AS_HELP_STRING([--with-opencl-icd=@<:@no,standard,sysconfdir@:>@], + [Build an OpenCL ICD library to be loaded by an ICD implementation. + If @<:@standard@:>@ the OpenCL ICD vendor file installs in /etc/OpenCL/vendors. + @<:@sysconfdir@:>@ installs the file in $sysconfdir/OpenCL/vendors + @<:@default=no@:>@])], + [OPENCL_ICD="$withval"], + [OPENCL_ICD="no"]) + +case "x$OPENCL_ICD" in +xno) + OPENCL_LIBNAME="OpenCL" + ;; +xstandard) + OPENCL_LIBNAME="MesaOpenCL" + ICD_FILE_DIR="/etc/OpenCL/vendors" + ;; +xsysconfdir) + OPENCL_LIBNAME="MesaOpenCL" + ICD_FILE_DIR="$sysconfdir/OpenCL/vendors" + ;; +*) + AC_MSG_ERROR(['$OPENCL_ICD' is not a valid option for --with-opencl-icd]) + ;; +esac + +AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$OPENCL_ICD" != xno) +AC_SUBST([OPENCL_LIBNAME]) +AC_SUBST([ICD_FILE_DIR]) + dnl dnl Gallium helper functions dnl diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am index 5daf327..781daa0 100644 --- a/src/gallium/targets/opencl/Makefile.am +++ b/src/gallium/targets/opencl/Makefile.am @@ -47,7 +47,7 @@ EXTRA_lib@OPENCL_LIBNAME@_la_DEPENDENCIES = opencl.sym EXTRA_DIST = mesa.icd opencl.sym if HAVE_CLOVER_ICD -icddir = /etc/OpenCL/vendors/ +icddir = $(ICD_FILE_DIR) icd_DATA = mesa.icd endif -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev