Skip to content

Commit

Permalink
Get OpenCL to compile on OS X
Browse files Browse the repository at this point in the history
However, the output of the OpenCL build is garbage....
  • Loading branch information
James R. Barlow committed Aug 26, 2015
1 parent 65f1a96 commit 18ac7ae
Show file tree
Hide file tree
Showing 8 changed files with 52 additions and 62 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,8 @@ training/wordlist2dawg
*.cube.*
*.tesseract_cube.*
*.traineddata

# OpenCL
tesseract_opencl_profile_devices.dat
kernel*.bin

12 changes: 6 additions & 6 deletions api/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ AM_CPPFLAGS += -DLOCALEDIR=\"$(localedir)\"\
-I$(top_srcdir)/classify -I$(top_srcdir)/ccmain \
-I$(top_srcdir)/wordrec -I$(top_srcdir)/cutil \
-I$(top_srcdir)/opencl
if USE_OPENCL
AM_CPPFLAGS += -I$(OPENCL_HDR_PATH)
endif

AM_CPPFLAGS += $(OPENCL_CPPFLAGS)

if VISIBILITY
AM_CPPFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
endif
Expand Down Expand Up @@ -78,9 +78,9 @@ endif

tesseract_LDADD = libtesseract.la

if USE_OPENCL
tesseract_LDADD += $(OPENCL_LIB)
endif

tesseract_LDFLAGS = $(OPENCL_LDFLAGS)

if OPENMP
tesseract_LDADD += $(OPENMP_CFLAGS)
endif
Expand Down
6 changes: 3 additions & 3 deletions ccmain/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ AM_CPPFLAGS += \
-I$(top_srcdir)/classify -I$(top_srcdir)/dict \
-I$(top_srcdir)/wordrec -I$(top_srcdir)/cutil \
-I$(top_srcdir)/textord -I$(top_srcdir)/opencl
if USE_OPENCL
AM_CPPFLAGS += -I$(OPENCL_HDR_PATH)
endif

AM_CPPFLAGS += $(OPENCL_CPPFLAGS)

if VISIBILITY
AM_CPPFLAGS += -DTESS_EXPORTS \
-fvisibility=hidden -fvisibility-inlines-hidden
Expand Down
4 changes: 1 addition & 3 deletions ccstruct/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ AM_CPPFLAGS += \
-I$(top_srcdir)/ccutil -I$(top_srcdir)/cutil \
-I$(top_srcdir)/viewer \
-I$(top_srcdir)/opencl
if USE_OPENCL
AM_CPPFLAGS += -I$(OPENCL_HDR_PATH)
endif
AM_CPPFLAGS += $(OPENCL_CPPFLAGS)

if VISIBILITY
AM_CPPFLAGS += -DTESS_EXPORTS \
Expand Down
40 changes: 22 additions & 18 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ case "${host_os}" in
AM_CONDITIONAL(ADD_RT, true)
;;
*darwin*)
OPENCL_LIBS="-framework OpenCL"
OPENCL_LIBS=""
OPENCL_INC=""
AM_CONDITIONAL(ADD_RT, false)
;;
Expand Down Expand Up @@ -212,37 +212,41 @@ m4_define([MY_CHECK_FRAMEWORK],
)
have_opencl_lib=false
OPENCL_CPPFLAGS=''
OPENCL_LDFLAGS=''
case "${host_os}" in
*darwin* | *-macos10*)
echo "checking for OpenCL framework"
MY_CHECK_FRAMEWORK([OpenCL])
if test $my_cv_framework_OpenCL = yes; then
have_opencl_lib=true
fi
AC_SUBST(OPENCL_OSX, [yes])
AC_SUBST([AM_CPPFLAGS], [-DUSE_OPENCL])
OPENCL_CPPFLAGS=""
OPENCL_LDFLAGS="-framework OpenCL"
;;
*)
# default
AC_CHECK_LIB(OpenCL, clGetPlatformIDs, have_opencl_lib=true, have_opencl_lib=false)
AC_SUBST(OPENCL_OSX, [no])
if test "$enable_opencl" = "yes"; then
if !($have_opencl); then
AC_MSG_ERROR(Required OpenCL headers not found!)
fi
if !($have_opencl_lib); then
AC_MSG_ERROR(Required OpenCL library not found!)
fi
if !($have_tiff); then
AC_MSG_ERROR(Required TIFF headers not found! Try to install libtiff-dev?? package.)
fi
AC_SUBST([AM_CPPFLAGS], [-DUSE_OPENCL])
OPENCL_CPPFLAGS="-I${OPENCL_INC}"
OPENCL_LDFLAGS="-l${OPENCL_LIBS}"
fi
;;
esac
if test "$enable_opencl" = "yes"; then
if !($have_opencl); then
AC_MSG_ERROR(Required OpenCL headers not found!)
fi
if !($have_opencl_lib); then
AC_MSG_ERROR(Required OpenCL library not found!)
fi
if !($have_tiff); then
AC_MSG_ERROR(Required TIFF headers not found! Try to install libtiff-dev?? package.)
fi
AC_SUBST([AM_CPPFLAGS], [-DUSE_OPENCL])
AC_SUBST([OPENCL_HDR_PATH],[$OPENCL_INC])
AC_SUBST([OPENCL_LIB],[$OPENCL_LIBS])
fi
AM_CONDITIONAL([USE_OPENCL], [test "$enable_opencl" = "yes"])
AC_SUBST(OPENCL_CPPFLAGS)
AC_SUBST(OPENCL_LDFLAGS)
# check whether to build tesseract with -fvisibility=hidden -fvisibility-inlines-hidden
# http://gcc.gnu.org/wiki/Visibility
Expand Down
18 changes: 2 additions & 16 deletions opencl/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,29 +1,15 @@
AM_CPPFLAGS += -I$(top_srcdir)/ccutil -I$(top_srcdir)/ccstruct -I$(top_srcdir)/ccmain
if USE_OPENCL
if OPENCL_OSX
AM_CFLAGS += -framework OpenCL
else
AM_CPPFLAGS += -I$(OPENCL_HDR_PATH)
endif
endif
AM_CPPFLAGS += -I$(top_srcdir)/ccutil -I$(top_srcdir)/ccstruct -I$(top_srcdir)/ccmain $(OPENCL_CFLAGS)
noinst_HEADERS = \
openclwrapper.h oclkernels.h opencl_device_selection.h

if !USING_MULTIPLELIBS
noinst_LTLIBRARIES = libtesseract_opencl.la
else
lib_LTLIBRARIES = libtesseract_opencl.la
libtesseract_opencl_la_LDFLAGS = -version-info $(GENERIC_LIBRARY_VERSION)
libtesseract_opencl_la_LDFLAGS = -version-info $(GENERIC_LIBRARY_VERSION) $(OPENCL_LDFLAGS)
libtesseract_opencl_la_LIBADD = \
../ccutil/libtesseract_ccutil.la \
../viewer/libtesseract_viewer.la
if USE_OPENCL
if OPENCL_OSX
libtesseract_opencl_la_LDFLAGS += -framework OpenCL
else
libtesseract_opencl_la_LDFLAGS += $(OPENCL_LIB)
endif
endif
endif

libtesseract_opencl_la_SOURCES = \
Expand Down
5 changes: 2 additions & 3 deletions textord/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@ AM_CPPFLAGS += \
-I$(top_srcdir)/ccmain -I$(top_srcdir)/wordrec -I$(top_srcdir)/api \
-I$(top_srcdir)/cutil -I$(top_srcdir)/classify -I$(top_srcdir)/dict \
-I$(top_srcdir)/opencl
if USE_OPENCL
AM_CPPFLAGS += -I$(OPENCL_HDR_PATH)
endif

AM_CPPFLAGS += $(OPENCL_CPPFLAGS)

if VISIBILITY
AM_CPPFLAGS += -DTESS_EXPORTS \
Expand Down
24 changes: 11 additions & 13 deletions training/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -298,16 +298,14 @@ noinst_HEADERS += ../vs2010/port/strcasestr.h
libtesseract_training_la_SOURCES += ../vs2010/port/strcasestr.cpp
endif

if USE_OPENCL
ambiguous_words_LDADD += $(OPENCL_LIB)
classifier_tester_LDADD += $(OPENCL_LIB)
cntraining_LDADD += $(OPENCL_LIB)
combine_tessdata_LDADD += $(OPENCL_LIB)
dawg2wordlist_LDADD += $(OPENCL_LIB)
mftraining_LDADD += $(OPENCL_LIB)
set_unicharset_properties_LDADD += $(OPENCL_LIB)
shapeclustering_LDADD += $(OPENCL_LIB)
text2image_LDADD += $(OPENCL_LIB)
unicharset_extractor_LDADD += $(OPENCL_LIB)
wordlist2dawg_LDADD += $(OPENCL_LIB)
endif
ambiguous_words_LDFLAGS = $(OPENCL_LDFLAGS)
classifier_tester_LDFLAGS = $(OPENCL_LDFLAGS)
cntraining_LDFLAGS = $(OPENCL_LDFLAGS)
combine_tessdata_LDFLAGS = $(OPENCL_LDFLAGS)
dawg2wordlist_LDFLAGS = $(OPENCL_LDFLAGS)
mftraining_LDFLAGS = $(OPENCL_LDFLAGS)
set_unicharset_properties_LDFLAGS = $(OPENCL_LDFLAGS)
shapeclustering_LDFLAGS = $(OPENCL_LDFLAGS)
text2image_LDFLAGS = $(OPENCL_LDFLAGS)
unicharset_extractor_LDFLAGS = $(OPENCL_LDFLAGS)
wordlist2dawg_LDFLAGS = $(OPENCL_LDFLAGS)

0 comments on commit 18ac7ae

Please sign in to comment.