Просмотр исходного кода

preliminary support for OpenCL (https://trac.osgeo.org/grass/ticket/1446)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@55949 15284696-431f-4ddb-bdfa-cd5b030d7da7
Hamish Bowman 12 лет назад
Родитель
Сommit
0b601796c7
4 измененных файлов с 66 добавлено и 14 удалено
  1. 40 0
      configure.in
  2. 19 13
      include/Make/Platform.make.in
  3. 3 1
      raster/r.sun/Makefile
  4. 4 0
      raster/r.sun/main.c

+ 40 - 0
configure.in

@@ -265,6 +265,7 @@ LOC_ARG_WITH(opendwg, openDWG, no)
 LOC_ARG_WITH(regex, regex)
 LOC_ARG_WITH(pthread, POSIX threads, no)
 LOC_ARG_WITH(openmp, OpenMP, no)
+LOC_ARG_WITH(opencl, OpenCL, no)
 
 AC_ARG_WITH(gdal,
 [  --with-gdal[=path/gdal-config]
@@ -366,6 +367,9 @@ LOC_ARG_WITH_LIB(pthread, POSIX threads)
 LOC_ARG_WITH_INC(openmp, OpenMP)
 LOC_ARG_WITH_LIB(openmp, OpenMP)
 
+LOC_ARG_WITH_INC(opencl, OpenCL)
+LOC_ARG_WITH_LIB(opencl, OpenCL)
+
 # Put this early on so CPPFLAGS and LDFLAGS have any additional dirs
 
 # With includes option
@@ -1748,6 +1752,41 @@ AC_SUBST(USE_OPENMP)
 
 # Done checking OpenMP
 
+# Enable OpenCL option
+
+LOC_CHECK_USE(opencl,OpenCL,USE_OPENCL)
+
+OCLINCPATH=
+OCLLIBPATH=
+OCLLIB=
+
+if test -n "$USE_OPENCL"; then
+
+# With OpenCL includes directory
+
+LOC_CHECK_INC_PATH(opencl,OpenCL,OCLINCPATH)
+LOC_CHECK_INCLUDES(CL/cl.h,OpenCL,$OCLINCPATH)
+
+# With OpenCL library directory
+
+LOC_CHECK_LIB_PATH(OpenCL,OpenCL,OCLLIBPATH)
+# FIXME: -L${OCLLIBPATH} is not being added to the gcc conftest.c command. why not? (trac #1943?)
+LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCLfunctions,$OCLLIBPATH,OCLLIB,,,)
+
+# expanded symbol check: yes? no?
+#LOC_CHECK_FUNC(clGetPlatformInfo,OpenCL functions,OCLLIB,,,,,[
+#LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCL,$OCLLIBPATH,OCLLIB,,,)
+#])
+
+fi # $USE_OPENCL
+
+AC_SUBST(OCLINCPATH)
+AC_SUBST(OCLLIBPATH)
+AC_SUBST(OCLLIB)
+AC_SUBST(USE_OPENCL)
+
+# Done checking OpenCL
+
 # Enable LFS (from cdr-tools)
 dnl Check for large file support
 dnl Do this last to make sure that no large file definition
@@ -1910,6 +1949,7 @@ LOC_MSG_USE(MySQL support,USE_MYSQL)
 LOC_MSG_USE(NLS support,USE_NLS)
 LOC_MSG_USE(ODBC support,USE_ODBC)
 LOC_MSG_USE(OGR support,USE_OGR)
+LOC_MSG_USE(OpenCL support,USE_OPENCL)
 LOC_MSG_USE(OpenGL support,USE_OPENGL)
 LOC_MSG_USE(OpenMP support,USE_OPENMP)
 LOC_MSG_USE(PNG support,USE_PNG)

+ 19 - 13
include/Make/Platform.make.in

@@ -94,7 +94,7 @@ ZLIB                = @ZLIB@
 ZLIBINCPATH         = @ZLIBINCPATH@
 ZLIBLIBPATH         = @ZLIBLIBPATH@
 
-DBMIEXTRALIB         = @DBMIEXTRALIB@
+DBMIEXTRALIB        = @DBMIEXTRALIB@
 
 #readline
 READLINEINCPATH     = @READLINEINCPATH@
@@ -115,14 +115,14 @@ MYSQLLIB            = @MYSQLLIB@
 MYSQLDLIB           = @MYSQLDLIB@
 
 #SQLite:
-SQLITEINCPATH        = @SQLITEINCPATH@
-SQLITELIBPATH        = @SQLITELIBPATH@
-SQLITELIB            = @SQLITELIB@
+SQLITEINCPATH       = @SQLITEINCPATH@
+SQLITELIBPATH       = @SQLITELIBPATH@
+SQLITELIB           = @SQLITELIB@
 
 #FFMPEG
-FFMPEGINCPATH        = @FFMPEGINCPATH@
-FFMPEGLIBPATH        = @FFMPEGLIBPATH@
-FFMPEGLIB            = @FFMPEGLIB@
+FFMPEGINCPATH       = @FFMPEGINCPATH@
+FFMPEGLIBPATH       = @FFMPEGLIBPATH@
+FFMPEGLIB           = @FFMPEGLIB@
 
 #ODBC:
 ODBCINC             = @ODBCINC@
@@ -152,9 +152,9 @@ FFTWLIB             = @FFTWLIB@
 
 #LAPACK/BLAS stuff for gmath lib:
 BLASLIB             = @BLASLIB@
-BLASINC				= @BLASINC@
+BLASINC             = @BLASINC@
 LAPACKLIB           = @LAPACKLIB@
-LAPACKINC			= @LAPACKINC@
+LAPACKINC           = @LAPACKINC@
 
 #GDAL/OGR
 GDALLIBS            = @GDAL_LIBS@
@@ -163,7 +163,7 @@ USE_GDAL            = @USE_GDAL@
 USE_OGR             = @USE_OGR@
 
 #NetCDF
-NETCDFLIBS           = @NETCDF_LIBS@
+NETCDFLIBS          = @NETCDF_LIBS@
 NETCDFCFLAGS        = @NETCDF_CFLAGS@    
 USE_NETCDF          = @USE_NETCDF@
 
@@ -231,6 +231,12 @@ OMPLIB              = @OMPLIB@
 OMPCFLAGS           = @OMPCFLAGS@
 USE_OPENMP          = @USE_OPENMP@
 
+#OpenCL
+OCLINCPATH          = @OCLINCPATH@
+OCLLIBPATH          = @OCLLIBPATH@
+OCLLIB              = @OCLLIB@
+USE_OPENCL          = @USE_OPENCL@
+
 #i18N
 HAVE_NLS            = @HAVE_NLS@
 
@@ -242,8 +248,8 @@ HAVE_SOCKET         = @HAVE_SOCKET@
 
 MINGW		    = @MINGW32@
 MACOSX_APP	    = @MACOSX_APP@
-MACOSX_ARCHS    = @MACOSX_ARCHS@
-MACOSX_SDK      = @MACOSX_SDK@
+MACOSX_ARCHS        = @MACOSX_ARCHS@
+MACOSX_SDK          = @MACOSX_SDK@
 
 # Cross compilation
-CROSS_COMPILING = @CROSS_COMPILING@ 
+CROSS_COMPILING     = @CROSS_COMPILING@ 

+ 3 - 1
raster/r.sun/Makefile

@@ -4,7 +4,9 @@ PGM = r.sun
 
 LIBES = $(GPROJLIB) $(RASTERLIB) $(GISLIB) $(MATHLIB) $(PROJLIB)
 DEPENDENCIES = $(GPROJDEP) $(RASTERDEP) $(GISDEP)
-EXTRA_INC = $(PROJINC)
+EXTRA_INC = $(PROJINC) $(OCLINCPATH)
+EXTRA_LIBS = $(OCLLIB)
+#needed?  LIBES += $(OCLLIBPATH)  or  EXTRA_LDFLAGS = $(OCLLIBPATH)
 
 include $(MODULE_TOPDIR)/include/Make/Module.make
 

+ 4 - 0
raster/r.sun/main.c

@@ -33,6 +33,10 @@ email: hofierka@geomodel.sk,marcel.suri@jrc.it,suri@geomodel.sk Thomas.Huld@jrc.
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
+#ifdef USE_OPENCL
+#include <CL/cl.h>
+#endif
+
 #include <grass/gis.h>
 #include <grass/raster.h>
 #include <grass/gprojects.h>