Переглянути джерело

Fix to avoid early evaluation of ${datarootdir}. When doing so, not specifying --prefix to configure ends up in datarootdir=/NONE/share

Nathalie Furmento 15 роки тому
батько
коміт
28d36ebed3
2 змінених файлів з 6 додано та 2 видалено
  1. 2 1
      configure.ac
  2. 4 1
      src/drivers/opencl/driver_opencl_utils.c

+ 2 - 1
configure.ac

@@ -372,7 +372,7 @@ AC_SUBST(STARPU_USE_OPENCL, $enable_opencl)
 AM_CONDITIONAL(STARPU_USE_OPENCL, test x$enable_opencl = xyes)
 if test x$enable_opencl = xyes; then
 	AC_DEFINE(STARPU_USE_OPENCL, [1], [OpenCL support is activated])
-        AC_DEFINE_UNQUOTED(STARPU_OPENCL_DATADIR, "$(eval echo ${datarootdir}/starpu/opencl)", [Path to OpenCL codelets])
+	CPPFLAGS="${CPPFLAGS} -DSTARPU_OPENCL_DATADIR=${datarootdir}/starpu/opencl"
         AC_SUBST(STARPU_OPENCL_DATAdir, "$(eval echo ${datarootdir}/starpu/opencl/examples)")
 fi
 
@@ -875,3 +875,4 @@ AC_OUTPUT([
 	doc/Makefile
 	mpi/Makefile
 ])
+

+ 4 - 1
src/drivers/opencl/driver_opencl_utils.c

@@ -76,6 +76,9 @@ cl_uint _starpu_opencl_device_uniqueid(cl_device_id id)
 
 char *_starpu_opencl_codelet_dir;
 
+#define _STARPU_STRINGIFY_(x) #x
+#define _STARPU_STRINGIFY(x) _STARPU_STRINGIFY_(x)
+
 static
 int _starpu_opencl_locate_file(char *source_file_name, char *located_file_name) {
         _STARPU_OPENCL_DEBUG("Trying to locate <%s>\n", source_file_name);
@@ -88,7 +91,7 @@ int _starpu_opencl_locate_file(char *source_file_name, char *located_file_name)
                 _STARPU_OPENCL_DEBUG("Trying to locate <%s>\n", located_file_name);
                 if (access(located_file_name, R_OK) == 0) return EXIT_SUCCESS;
         }
-        sprintf(located_file_name, "%s/%s", STARPU_OPENCL_DATADIR, source_file_name);
+        sprintf(located_file_name, "%s/%s", _STARPU_STRINGIFY(STARPU_OPENCL_DATADIR), source_file_name);
         _STARPU_OPENCL_DEBUG("Trying to locate <%s>\n", located_file_name);
         if (access(located_file_name, R_OK) == 0) return EXIT_SUCCESS;
         sprintf(located_file_name, "%s/%s", STARPU_SRC_DIR, source_file_name);