Makefile.am 61 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646
  1. ## run autogen.sh to create Makefile.in from this file
  2. ACLOCAL_AMFLAGS = -I m4
  3. .PHONY: doc html install-langs ScrollView.jar install-jars pdf training
  4. CLEANFILES =
  5. SUBDIRS = . tessdata
  6. if MINGW
  7. SUBDIRS += nsis
  8. endif
  9. EXTRA_DIST = README.md LICENSE
  10. EXTRA_DIST += aclocal.m4 config configure.ac autogen.sh
  11. EXTRA_DIST += tesseract.pc.in doc
  12. if !GRAPHICS_DISABLED
  13. EXTRA_DIST += java
  14. endif
  15. EXTRA_DIST += CMakeLists.txt tesseract.pc.cmake cmake VERSION
  16. DIST_SUBDIRS = $(SUBDIRS)
  17. EXTRA_PROGRAMS =
  18. uninstall-hook:
  19. rm -rf $(DESTDIR)$(pkgincludedir)
  20. dist-hook:
  21. # added using EXTRA_DIST. $(distdir)/tessdata would in
  22. # theory suffice.
  23. rm -rf `find $(distdir) -name .deps -type d`
  24. -rm -f $(distdir)/*/Makefile $(distdir)/*/*/Makefile
  25. rm -f `find $(distdir) -name '*~'`
  26. rm -rf $(distdir)/doc/html/* $(distdir)/doc/*.log
  27. if !GRAPHICS_DISABLED
  28. ScrollView.jar:
  29. @cd "$(top_builddir)/java" && $(MAKE) $@
  30. install-jars:
  31. @cd "$(top_builddir)/java" && $(MAKE) $@
  32. endif
  33. doc:
  34. -srcdir="$(top_srcdir)" builddir="$(top_builddir)" \
  35. version="@PACKAGE_VERSION@" name="@PACKAGE_NAME@" \
  36. doxygen $(top_srcdir)/doc/Doxyfile
  37. doc-pack: doc
  38. -chmod a+r $(top_builddir)/doc/html/*
  39. @tar --create --directory=$(top_builddir)/doc/html --verbose --file=- . | gzip -c -9 > $(top_builddir)/@PACKAGE_NAME@-@PACKAGE_VERSION@-doc-html.tar.gz;
  40. doc-clean:
  41. rm -rf $(top_builddir)/doc/html/*
  42. if MINGW
  43. winsetup: training ScrollView.jar
  44. @cd "$(top_builddir)/nsis" && $(MAKE) winsetup
  45. endif
  46. pkgconfigdir = $(libdir)/pkgconfig
  47. pkgconfig_DATA = tesseract.pc
  48. pkginclude_HEADERS = $(top_builddir)/include/tesseract/version.h
  49. pkginclude_HEADERS += include/tesseract/baseapi.h
  50. pkginclude_HEADERS += include/tesseract/capi.h
  51. pkginclude_HEADERS += include/tesseract/export.h
  52. pkginclude_HEADERS += include/tesseract/ltrresultiterator.h
  53. pkginclude_HEADERS += include/tesseract/ocrclass.h
  54. pkginclude_HEADERS += include/tesseract/osdetect.h
  55. pkginclude_HEADERS += include/tesseract/pageiterator.h
  56. pkginclude_HEADERS += include/tesseract/publictypes.h
  57. pkginclude_HEADERS += include/tesseract/renderer.h
  58. pkginclude_HEADERS += include/tesseract/resultiterator.h
  59. pkginclude_HEADERS += include/tesseract/unichar.h
  60. # Rules for all subdirectories.
  61. noinst_HEADERS =
  62. noinst_LTLIBRARIES =
  63. AM_CPPFLAGS += -I$(top_srcdir)/include
  64. AM_CPPFLAGS += -I$(top_builddir)/include
  65. if VISIBILITY
  66. AM_CPPFLAGS += -DTESS_EXPORTS
  67. AM_CPPFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden -fPIC
  68. endif
  69. AM_CXXFLAGS = $(OPENMP_CXXFLAGS)
  70. # Rules for src/api.
  71. libtesseract_la_CPPFLAGS = $(AM_CPPFLAGS)
  72. libtesseract_la_CPPFLAGS += -DTESS_COMMON_TRAINING_API=
  73. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/arch
  74. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/ccmain
  75. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/ccstruct
  76. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/ccutil
  77. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/classify
  78. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/cutil
  79. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/dict
  80. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/lstm
  81. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/textord
  82. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/training/common
  83. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/viewer
  84. libtesseract_la_CPPFLAGS += -I$(top_srcdir)/src/wordrec
  85. libtesseract_la_CPPFLAGS += $(libcurl_CFLAGS)
  86. lib_LTLIBRARIES = libtesseract.la
  87. libtesseract_la_LDFLAGS = $(LEPTONICA_LIBS)
  88. libtesseract_la_LDFLAGS += $(libarchive_LIBS)
  89. libtesseract_la_LDFLAGS += $(libcurl_LIBS)
  90. if T_WIN
  91. libtesseract_la_LDFLAGS += -no-undefined -lws2_32
  92. else
  93. libtesseract_la_LDFLAGS += $(NOUNDEFINED)
  94. endif
  95. libtesseract_la_LDFLAGS += -version-info $(GENERIC_LIBRARY_VERSION)
  96. libtesseract_la_SOURCES = src/api/baseapi.cpp
  97. libtesseract_la_SOURCES += src/api/altorenderer.cpp
  98. libtesseract_la_SOURCES += src/api/pagerenderer.cpp
  99. libtesseract_la_SOURCES += src/api/capi.cpp
  100. libtesseract_la_SOURCES += src/api/hocrrenderer.cpp
  101. libtesseract_la_SOURCES += src/api/lstmboxrenderer.cpp
  102. libtesseract_la_SOURCES += src/api/pdfrenderer.cpp
  103. libtesseract_la_SOURCES += src/api/renderer.cpp
  104. libtesseract_la_SOURCES += src/api/wordstrboxrenderer.cpp
  105. libtesseract_la_LIBADD = libtesseract_ccutil.la
  106. libtesseract_la_LIBADD += libtesseract_lstm.la
  107. libtesseract_la_LIBADD += libtesseract_native.la
  108. # Rules for src/arch.
  109. noinst_HEADERS += src/arch/dotproduct.h
  110. noinst_HEADERS += src/arch/intsimdmatrix.h
  111. noinst_HEADERS += src/arch/simddetect.h
  112. noinst_LTLIBRARIES += libtesseract_native.la
  113. libtesseract_native_la_CXXFLAGS = -O3 -ffast-math
  114. if OPENMP_SIMD
  115. libtesseract_native_la_CXXFLAGS += -fopenmp-simd -DOPENMP_SIMD
  116. endif
  117. libtesseract_native_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  118. libtesseract_native_la_SOURCES = src/arch/dotproduct.cpp
  119. if HAVE_AVX
  120. libtesseract_avx_la_CXXFLAGS = -mavx
  121. libtesseract_avx_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  122. libtesseract_avx_la_SOURCES = src/arch/dotproductavx.cpp
  123. libtesseract_la_LIBADD += libtesseract_avx.la
  124. noinst_LTLIBRARIES += libtesseract_avx.la
  125. endif
  126. if HAVE_AVX2
  127. libtesseract_avx2_la_CXXFLAGS = -mavx2
  128. libtesseract_avx2_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  129. libtesseract_avx2_la_SOURCES = src/arch/intsimdmatrixavx2.cpp
  130. libtesseract_la_LIBADD += libtesseract_avx2.la
  131. noinst_LTLIBRARIES += libtesseract_avx2.la
  132. endif
  133. if HAVE_AVX512F
  134. libtesseract_avx512_la_CXXFLAGS = -mavx512f
  135. libtesseract_avx512_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  136. libtesseract_avx512_la_SOURCES = src/arch/dotproductavx512.cpp
  137. libtesseract_la_LIBADD += libtesseract_avx512.la
  138. noinst_LTLIBRARIES += libtesseract_avx512.la
  139. endif
  140. if HAVE_FMA
  141. libtesseract_fma_la_CXXFLAGS = -mfma
  142. libtesseract_fma_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  143. libtesseract_fma_la_SOURCES = src/arch/dotproductfma.cpp
  144. libtesseract_la_LIBADD += libtesseract_fma.la
  145. noinst_LTLIBRARIES += libtesseract_fma.la
  146. endif
  147. if HAVE_SSE4_1
  148. libtesseract_sse_la_CXXFLAGS = -msse4.1
  149. libtesseract_sse_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  150. libtesseract_sse_la_SOURCES = src/arch/dotproductsse.cpp src/arch/intsimdmatrixsse.cpp
  151. libtesseract_la_LIBADD += libtesseract_sse.la
  152. noinst_LTLIBRARIES += libtesseract_sse.la
  153. endif
  154. if HAVE_NEON
  155. libtesseract_neon_la_CXXFLAGS = $(NEON_CXXFLAGS)
  156. libtesseract_neon_la_CXXFLAGS += -O3
  157. if OPENMP_SIMD
  158. libtesseract_neon_la_CXXFLAGS += -fopenmp-simd -DOPENMP_SIMD
  159. endif
  160. libtesseract_neon_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  161. libtesseract_neon_la_SOURCES = src/arch/intsimdmatrixneon.cpp
  162. libtesseract_neon_la_SOURCES += src/arch/dotproductneon.cpp
  163. libtesseract_la_LIBADD += libtesseract_neon.la
  164. noinst_LTLIBRARIES += libtesseract_neon.la
  165. endif
  166. if HAVE_RVV
  167. libtesseract_rvv_la_CXXFLAGS = $(RVV_CXXFLAGS)
  168. libtesseract_rvv_la_CXXFLAGS += -O3
  169. libtesseract_rvv_la_CXXFLAGS += -I$(top_srcdir)/src/ccutil
  170. libtesseract_rvv_la_SOURCES = src/arch/intsimdmatrixrvv.cpp
  171. libtesseract_la_LIBADD += libtesseract_rvv.la
  172. noinst_LTLIBRARIES += libtesseract_rvv.la
  173. endif
  174. libtesseract_la_SOURCES += src/arch/intsimdmatrix.cpp
  175. libtesseract_la_SOURCES += src/arch/simddetect.cpp
  176. # Rules for src/ccmain.
  177. noinst_HEADERS += src/ccmain/control.h
  178. noinst_HEADERS += src/ccmain/mutableiterator.h
  179. noinst_HEADERS += src/ccmain/output.h
  180. noinst_HEADERS += src/ccmain/paragraphs.h
  181. noinst_HEADERS += src/ccmain/paragraphs_internal.h
  182. noinst_HEADERS += src/ccmain/paramsd.h
  183. noinst_HEADERS += src/ccmain/pgedit.h
  184. noinst_HEADERS += src/ccmain/tesseractclass.h
  185. noinst_HEADERS += src/ccmain/tessvars.h
  186. noinst_HEADERS += src/ccmain/thresholder.h
  187. noinst_HEADERS += src/ccmain/werdit.h
  188. if !DISABLED_LEGACY_ENGINE
  189. noinst_HEADERS += src/ccmain/docqual.h
  190. noinst_HEADERS += src/ccmain/equationdetect.h
  191. noinst_HEADERS += src/ccmain/fixspace.h
  192. noinst_HEADERS += src/ccmain/reject.h
  193. endif
  194. libtesseract_la_SOURCES += src/ccmain/applybox.cpp
  195. libtesseract_la_SOURCES += src/ccmain/control.cpp
  196. libtesseract_la_SOURCES += src/ccmain/linerec.cpp
  197. libtesseract_la_SOURCES += src/ccmain/ltrresultiterator.cpp
  198. libtesseract_la_SOURCES += src/ccmain/mutableiterator.cpp
  199. libtesseract_la_SOURCES += src/ccmain/output.cpp
  200. libtesseract_la_SOURCES += src/ccmain/pageiterator.cpp
  201. libtesseract_la_SOURCES += src/ccmain/pagesegmain.cpp
  202. libtesseract_la_SOURCES += src/ccmain/pagewalk.cpp
  203. libtesseract_la_SOURCES += src/ccmain/paragraphs.cpp
  204. if !GRAPHICS_DISABLED
  205. libtesseract_la_SOURCES += src/ccmain/paramsd.cpp
  206. libtesseract_la_SOURCES += src/ccmain/pgedit.cpp
  207. endif
  208. libtesseract_la_SOURCES += src/ccmain/reject.cpp
  209. libtesseract_la_SOURCES += src/ccmain/resultiterator.cpp
  210. libtesseract_la_SOURCES += src/ccmain/tessedit.cpp
  211. libtesseract_la_SOURCES += src/ccmain/tesseractclass.cpp
  212. libtesseract_la_SOURCES += src/ccmain/tessvars.cpp
  213. libtesseract_la_SOURCES += src/ccmain/thresholder.cpp
  214. libtesseract_la_SOURCES += src/ccmain/werdit.cpp
  215. if !DISABLED_LEGACY_ENGINE
  216. libtesseract_la_SOURCES += src/ccmain/adaptions.cpp
  217. libtesseract_la_SOURCES += src/ccmain/docqual.cpp
  218. libtesseract_la_SOURCES += src/ccmain/equationdetect.cpp
  219. libtesseract_la_SOURCES += src/ccmain/fixspace.cpp
  220. libtesseract_la_SOURCES += src/ccmain/fixxht.cpp
  221. libtesseract_la_SOURCES += src/ccmain/osdetect.cpp
  222. libtesseract_la_SOURCES += src/ccmain/par_control.cpp
  223. libtesseract_la_SOURCES += src/ccmain/recogtraining.cpp
  224. libtesseract_la_SOURCES += src/ccmain/superscript.cpp
  225. libtesseract_la_SOURCES += src/ccmain/tessbox.cpp
  226. libtesseract_la_SOURCES += src/ccmain/tfacepp.cpp
  227. endif
  228. # Rules for src/ccstruct.
  229. noinst_HEADERS += src/ccstruct/blamer.h
  230. noinst_HEADERS += src/ccstruct/blobbox.h
  231. noinst_HEADERS += src/ccstruct/blobs.h
  232. noinst_HEADERS += src/ccstruct/blread.h
  233. noinst_HEADERS += src/ccstruct/boxread.h
  234. noinst_HEADERS += src/ccstruct/boxword.h
  235. noinst_HEADERS += src/ccstruct/ccstruct.h
  236. noinst_HEADERS += src/ccstruct/coutln.h
  237. noinst_HEADERS += src/ccstruct/crakedge.h
  238. noinst_HEADERS += src/ccstruct/debugpixa.h
  239. noinst_HEADERS += src/ccstruct/detlinefit.h
  240. noinst_HEADERS += src/ccstruct/dppoint.h
  241. noinst_HEADERS += src/ccstruct/image.h
  242. noinst_HEADERS += src/ccstruct/imagedata.h
  243. noinst_HEADERS += src/ccstruct/linlsq.h
  244. noinst_HEADERS += src/ccstruct/matrix.h
  245. noinst_HEADERS += src/ccstruct/mod128.h
  246. noinst_HEADERS += src/ccstruct/normalis.h
  247. noinst_HEADERS += src/ccstruct/ocrblock.h
  248. noinst_HEADERS += src/ccstruct/ocrpara.h
  249. noinst_HEADERS += src/ccstruct/ocrrow.h
  250. noinst_HEADERS += src/ccstruct/otsuthr.h
  251. noinst_HEADERS += src/ccstruct/pageres.h
  252. noinst_HEADERS += src/ccstruct/pdblock.h
  253. noinst_HEADERS += src/ccstruct/points.h
  254. noinst_HEADERS += src/ccstruct/polyaprx.h
  255. noinst_HEADERS += src/ccstruct/polyblk.h
  256. noinst_HEADERS += src/ccstruct/quadlsq.h
  257. noinst_HEADERS += src/ccstruct/quadratc.h
  258. noinst_HEADERS += src/ccstruct/quspline.h
  259. noinst_HEADERS += src/ccstruct/ratngs.h
  260. noinst_HEADERS += src/ccstruct/rect.h
  261. noinst_HEADERS += src/ccstruct/rejctmap.h
  262. noinst_HEADERS += src/ccstruct/seam.h
  263. noinst_HEADERS += src/ccstruct/split.h
  264. noinst_HEADERS += src/ccstruct/statistc.h
  265. noinst_HEADERS += src/ccstruct/stepblob.h
  266. noinst_HEADERS += src/ccstruct/werd.h
  267. if !DISABLED_LEGACY_ENGINE
  268. noinst_HEADERS += src/ccstruct/fontinfo.h
  269. noinst_HEADERS += src/ccstruct/params_training_featdef.h
  270. endif
  271. libtesseract_la_SOURCES += src/ccstruct/blamer.cpp
  272. libtesseract_la_SOURCES += src/ccstruct/blobbox.cpp
  273. libtesseract_la_SOURCES += src/ccstruct/blobs.cpp
  274. libtesseract_la_SOURCES += src/ccstruct/blread.cpp
  275. libtesseract_la_SOURCES += src/ccstruct/boxread.cpp
  276. libtesseract_la_SOURCES += src/ccstruct/boxword.cpp
  277. libtesseract_la_SOURCES += src/ccstruct/ccstruct.cpp
  278. libtesseract_la_SOURCES += src/ccstruct/coutln.cpp
  279. libtesseract_la_SOURCES += src/ccstruct/detlinefit.cpp
  280. libtesseract_la_SOURCES += src/ccstruct/dppoint.cpp
  281. libtesseract_la_SOURCES += src/ccstruct/image.cpp
  282. libtesseract_la_SOURCES += src/ccstruct/imagedata.cpp
  283. libtesseract_la_SOURCES += src/ccstruct/linlsq.cpp
  284. libtesseract_la_SOURCES += src/ccstruct/matrix.cpp
  285. libtesseract_la_SOURCES += src/ccstruct/mod128.cpp
  286. libtesseract_la_SOURCES += src/ccstruct/normalis.cpp
  287. libtesseract_la_SOURCES += src/ccstruct/ocrblock.cpp
  288. libtesseract_la_SOURCES += src/ccstruct/ocrpara.cpp
  289. libtesseract_la_SOURCES += src/ccstruct/ocrrow.cpp
  290. libtesseract_la_SOURCES += src/ccstruct/otsuthr.cpp
  291. libtesseract_la_SOURCES += src/ccstruct/pageres.cpp
  292. libtesseract_la_SOURCES += src/ccstruct/pdblock.cpp
  293. libtesseract_la_SOURCES += src/ccstruct/points.cpp
  294. libtesseract_la_SOURCES += src/ccstruct/polyaprx.cpp
  295. libtesseract_la_SOURCES += src/ccstruct/polyblk.cpp
  296. libtesseract_la_SOURCES += src/ccstruct/quadlsq.cpp
  297. libtesseract_la_SOURCES += src/ccstruct/quspline.cpp
  298. libtesseract_la_SOURCES += src/ccstruct/ratngs.cpp
  299. libtesseract_la_SOURCES += src/ccstruct/rect.cpp
  300. libtesseract_la_SOURCES += src/ccstruct/rejctmap.cpp
  301. libtesseract_la_SOURCES += src/ccstruct/seam.cpp
  302. libtesseract_la_SOURCES += src/ccstruct/split.cpp
  303. libtesseract_la_SOURCES += src/ccstruct/statistc.cpp
  304. libtesseract_la_SOURCES += src/ccstruct/stepblob.cpp
  305. libtesseract_la_SOURCES += src/ccstruct/werd.cpp
  306. if !DISABLED_LEGACY_ENGINE
  307. libtesseract_la_SOURCES += src/ccstruct/fontinfo.cpp
  308. libtesseract_la_SOURCES += src/ccstruct/params_training_featdef.cpp
  309. endif
  310. # Rules for src/ccutil
  311. libtesseract_ccutil_la_CPPFLAGS = $(AM_CPPFLAGS)
  312. libtesseract_ccutil_la_CPPFLAGS += $(libarchive_CFLAGS)
  313. if !NO_TESSDATA_PREFIX
  314. libtesseract_ccutil_la_CPPFLAGS += -DTESSDATA_PREFIX='"@datadir@"'
  315. endif
  316. noinst_HEADERS += src/ccutil/ccutil.h
  317. noinst_HEADERS += src/ccutil/clst.h
  318. noinst_HEADERS += src/ccutil/elst2.h
  319. noinst_HEADERS += src/ccutil/elst.h
  320. noinst_HEADERS += src/ccutil/errcode.h
  321. noinst_HEADERS += src/ccutil/fileerr.h
  322. noinst_HEADERS += src/ccutil/genericheap.h
  323. noinst_HEADERS += src/ccutil/genericvector.h
  324. noinst_HEADERS += src/ccutil/helpers.h
  325. noinst_HEADERS += src/ccutil/host.h
  326. noinst_HEADERS += src/ccutil/kdpair.h
  327. noinst_HEADERS += src/ccutil/lsterr.h
  328. noinst_HEADERS += src/ccutil/object_cache.h
  329. noinst_HEADERS += src/ccutil/params.h
  330. noinst_HEADERS += src/ccutil/qrsequence.h
  331. noinst_HEADERS += src/ccutil/sorthelper.h
  332. noinst_HEADERS += src/ccutil/scanutils.h
  333. noinst_HEADERS += src/ccutil/serialis.h
  334. noinst_HEADERS += src/ccutil/tessdatamanager.h
  335. noinst_HEADERS += src/ccutil/tprintf.h
  336. noinst_HEADERS += src/ccutil/unicharcompress.h
  337. noinst_HEADERS += src/ccutil/unicharmap.h
  338. noinst_HEADERS += src/ccutil/unicharset.h
  339. noinst_HEADERS += src/ccutil/unicity_table.h
  340. if !DISABLED_LEGACY_ENGINE
  341. noinst_HEADERS += src/ccutil/ambigs.h
  342. noinst_HEADERS += src/ccutil/bitvector.h
  343. noinst_HEADERS += src/ccutil/indexmapbidi.h
  344. noinst_HEADERS += src/ccutil/universalambigs.h
  345. endif
  346. noinst_LTLIBRARIES += libtesseract_ccutil.la
  347. libtesseract_ccutil_la_SOURCES = src/ccutil/ccutil.cpp
  348. libtesseract_ccutil_la_SOURCES += src/ccutil/clst.cpp
  349. libtesseract_ccutil_la_SOURCES += src/ccutil/elst2.cpp
  350. libtesseract_ccutil_la_SOURCES += src/ccutil/elst.cpp
  351. libtesseract_ccutil_la_SOURCES += src/ccutil/errcode.cpp
  352. libtesseract_ccutil_la_SOURCES += src/ccutil/serialis.cpp
  353. libtesseract_ccutil_la_SOURCES += src/ccutil/scanutils.cpp
  354. libtesseract_ccutil_la_SOURCES += src/ccutil/tessdatamanager.cpp
  355. libtesseract_ccutil_la_SOURCES += src/ccutil/tprintf.cpp
  356. libtesseract_ccutil_la_SOURCES += src/ccutil/unichar.cpp
  357. libtesseract_ccutil_la_SOURCES += src/ccutil/unicharcompress.cpp
  358. libtesseract_ccutil_la_SOURCES += src/ccutil/unicharmap.cpp
  359. libtesseract_ccutil_la_SOURCES += src/ccutil/unicharset.cpp
  360. libtesseract_ccutil_la_SOURCES += src/ccutil/params.cpp
  361. if !DISABLED_LEGACY_ENGINE
  362. libtesseract_ccutil_la_SOURCES += src/ccutil/ambigs.cpp
  363. libtesseract_ccutil_la_SOURCES += src/ccutil/bitvector.cpp
  364. libtesseract_ccutil_la_SOURCES += src/ccutil/indexmapbidi.cpp
  365. endif
  366. # Rules for src/classify.
  367. noinst_HEADERS += src/classify/classify.h
  368. if !DISABLED_LEGACY_ENGINE
  369. noinst_HEADERS += src/classify/adaptive.h
  370. noinst_HEADERS += src/classify/cluster.h
  371. noinst_HEADERS += src/classify/clusttool.h
  372. noinst_HEADERS += src/classify/featdefs.h
  373. noinst_HEADERS += src/classify/float2int.h
  374. noinst_HEADERS += src/classify/fpoint.h
  375. noinst_HEADERS += src/classify/intfeaturespace.h
  376. noinst_HEADERS += src/classify/intfx.h
  377. noinst_HEADERS += src/classify/intmatcher.h
  378. noinst_HEADERS += src/classify/intproto.h
  379. noinst_HEADERS += src/classify/kdtree.h
  380. noinst_HEADERS += src/classify/mf.h
  381. noinst_HEADERS += src/classify/mfdefs.h
  382. noinst_HEADERS += src/classify/mfoutline.h
  383. noinst_HEADERS += src/classify/mfx.h
  384. noinst_HEADERS += src/classify/normfeat.h
  385. noinst_HEADERS += src/classify/normmatch.h
  386. noinst_HEADERS += src/classify/ocrfeatures.h
  387. noinst_HEADERS += src/classify/outfeat.h
  388. noinst_HEADERS += src/classify/picofeat.h
  389. noinst_HEADERS += src/classify/protos.h
  390. noinst_HEADERS += src/classify/shapeclassifier.h
  391. noinst_HEADERS += src/classify/shapetable.h
  392. noinst_HEADERS += src/classify/tessclassifier.h
  393. noinst_HEADERS += src/classify/trainingsample.h
  394. endif
  395. libtesseract_la_SOURCES += src/classify/classify.cpp
  396. if !DISABLED_LEGACY_ENGINE
  397. libtesseract_la_SOURCES += src/classify/adaptive.cpp
  398. libtesseract_la_SOURCES += src/classify/adaptmatch.cpp
  399. libtesseract_la_SOURCES += src/classify/blobclass.cpp
  400. libtesseract_la_SOURCES += src/classify/cluster.cpp
  401. libtesseract_la_SOURCES += src/classify/clusttool.cpp
  402. libtesseract_la_SOURCES += src/classify/cutoffs.cpp
  403. libtesseract_la_SOURCES += src/classify/featdefs.cpp
  404. libtesseract_la_SOURCES += src/classify/float2int.cpp
  405. libtesseract_la_SOURCES += src/classify/fpoint.cpp
  406. libtesseract_la_SOURCES += src/classify/intfeaturespace.cpp
  407. libtesseract_la_SOURCES += src/classify/intfx.cpp
  408. libtesseract_la_SOURCES += src/classify/intmatcher.cpp
  409. libtesseract_la_SOURCES += src/classify/intproto.cpp
  410. libtesseract_la_SOURCES += src/classify/kdtree.cpp
  411. libtesseract_la_SOURCES += src/classify/mf.cpp
  412. libtesseract_la_SOURCES += src/classify/mfoutline.cpp
  413. libtesseract_la_SOURCES += src/classify/mfx.cpp
  414. libtesseract_la_SOURCES += src/classify/normfeat.cpp
  415. libtesseract_la_SOURCES += src/classify/normmatch.cpp
  416. libtesseract_la_SOURCES += src/classify/ocrfeatures.cpp
  417. libtesseract_la_SOURCES += src/classify/outfeat.cpp
  418. libtesseract_la_SOURCES += src/classify/picofeat.cpp
  419. libtesseract_la_SOURCES += src/classify/protos.cpp
  420. libtesseract_la_SOURCES += src/classify/shapeclassifier.cpp
  421. libtesseract_la_SOURCES += src/classify/shapetable.cpp
  422. libtesseract_la_SOURCES += src/classify/tessclassifier.cpp
  423. libtesseract_la_SOURCES += src/classify/trainingsample.cpp
  424. endif
  425. # Rules for src/cutil.
  426. if !DISABLED_LEGACY_ENGINE
  427. noinst_HEADERS += src/cutil/bitvec.h
  428. noinst_HEADERS += src/cutil/oldlist.h
  429. endif
  430. if !DISABLED_LEGACY_ENGINE
  431. libtesseract_la_SOURCES += src/cutil/oldlist.cpp
  432. endif
  433. # Rules for src/dict.
  434. noinst_HEADERS += src/dict/dawg.h
  435. noinst_HEADERS += src/dict/dawg_cache.h
  436. noinst_HEADERS += src/dict/dict.h
  437. noinst_HEADERS += src/dict/matchdefs.h
  438. noinst_HEADERS += src/dict/stopper.h
  439. noinst_HEADERS += src/dict/trie.h
  440. libtesseract_la_SOURCES += src/dict/context.cpp
  441. libtesseract_la_SOURCES += src/dict/dawg.cpp
  442. libtesseract_la_SOURCES += src/dict/dawg_cache.cpp
  443. libtesseract_la_SOURCES += src/dict/dict.cpp
  444. libtesseract_la_SOURCES += src/dict/stopper.cpp
  445. libtesseract_la_SOURCES += src/dict/trie.cpp
  446. if !DISABLED_LEGACY_ENGINE
  447. libtesseract_la_SOURCES += src/dict/hyphen.cpp
  448. libtesseract_la_SOURCES += src/dict/permdawg.cpp
  449. endif
  450. # Rules for src/lstm.
  451. libtesseract_lstm_la_CPPFLAGS = $(AM_CPPFLAGS)
  452. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/arch
  453. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/ccstruct
  454. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/ccutil
  455. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/classify
  456. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/cutil
  457. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/dict
  458. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/lstm
  459. libtesseract_lstm_la_CPPFLAGS += -I$(top_srcdir)/src/viewer
  460. if !NO_TESSDATA_PREFIX
  461. libtesseract_lstm_la_CPPFLAGS += -DTESSDATA_PREFIX='"@datadir@"'
  462. endif
  463. noinst_HEADERS += src/lstm/convolve.h
  464. noinst_HEADERS += src/lstm/fullyconnected.h
  465. noinst_HEADERS += src/lstm/functions.h
  466. noinst_HEADERS += src/lstm/input.h
  467. noinst_HEADERS += src/lstm/lstm.h
  468. noinst_HEADERS += src/lstm/lstmrecognizer.h
  469. noinst_HEADERS += src/lstm/maxpool.h
  470. noinst_HEADERS += src/lstm/network.h
  471. noinst_HEADERS += src/lstm/networkio.h
  472. noinst_HEADERS += src/lstm/networkscratch.h
  473. noinst_HEADERS += src/lstm/parallel.h
  474. noinst_HEADERS += src/lstm/plumbing.h
  475. noinst_HEADERS += src/lstm/recodebeam.h
  476. noinst_HEADERS += src/lstm/reconfig.h
  477. noinst_HEADERS += src/lstm/reversed.h
  478. noinst_HEADERS += src/lstm/series.h
  479. noinst_HEADERS += src/lstm/static_shape.h
  480. noinst_HEADERS += src/lstm/stridemap.h
  481. noinst_HEADERS += src/lstm/weightmatrix.h
  482. noinst_LTLIBRARIES += libtesseract_lstm.la
  483. libtesseract_lstm_la_SOURCES = src/lstm/convolve.cpp
  484. libtesseract_lstm_la_SOURCES += src/lstm/fullyconnected.cpp
  485. libtesseract_lstm_la_SOURCES += src/lstm/functions.cpp
  486. libtesseract_lstm_la_SOURCES += src/lstm/input.cpp
  487. libtesseract_lstm_la_SOURCES += src/lstm/lstm.cpp
  488. libtesseract_lstm_la_SOURCES += src/lstm/lstmrecognizer.cpp
  489. libtesseract_lstm_la_SOURCES += src/lstm/maxpool.cpp
  490. libtesseract_lstm_la_SOURCES += src/lstm/network.cpp
  491. libtesseract_lstm_la_SOURCES += src/lstm/networkio.cpp
  492. libtesseract_lstm_la_SOURCES += src/lstm/parallel.cpp
  493. libtesseract_lstm_la_SOURCES += src/lstm/plumbing.cpp
  494. libtesseract_lstm_la_SOURCES += src/lstm/recodebeam.cpp
  495. libtesseract_lstm_la_SOURCES += src/lstm/reconfig.cpp
  496. libtesseract_lstm_la_SOURCES += src/lstm/reversed.cpp
  497. libtesseract_lstm_la_SOURCES += src/lstm/series.cpp
  498. libtesseract_lstm_la_SOURCES += src/lstm/stridemap.cpp
  499. libtesseract_lstm_la_SOURCES += src/lstm/weightmatrix.cpp
  500. # Rules for src/textord.
  501. noinst_HEADERS += src/textord/alignedblob.h
  502. noinst_HEADERS += src/textord/baselinedetect.h
  503. noinst_HEADERS += src/textord/bbgrid.h
  504. noinst_HEADERS += src/textord/blkocc.h
  505. noinst_HEADERS += src/textord/blobgrid.h
  506. noinst_HEADERS += src/textord/ccnontextdetect.h
  507. noinst_HEADERS += src/textord/cjkpitch.h
  508. noinst_HEADERS += src/textord/colfind.h
  509. noinst_HEADERS += src/textord/colpartition.h
  510. noinst_HEADERS += src/textord/colpartitionset.h
  511. noinst_HEADERS += src/textord/colpartitiongrid.h
  512. noinst_HEADERS += src/textord/devanagari_processing.h
  513. noinst_HEADERS += src/textord/drawtord.h
  514. noinst_HEADERS += src/textord/edgblob.h
  515. noinst_HEADERS += src/textord/edgloop.h
  516. noinst_HEADERS += src/textord/fpchop.h
  517. noinst_HEADERS += src/textord/gap_map.h
  518. noinst_HEADERS += src/textord/imagefind.h
  519. noinst_HEADERS += src/textord/linefind.h
  520. noinst_HEADERS += src/textord/makerow.h
  521. noinst_HEADERS += src/textord/oldbasel.h
  522. noinst_HEADERS += src/textord/pithsync.h
  523. noinst_HEADERS += src/textord/pitsync1.h
  524. noinst_HEADERS += src/textord/scanedg.h
  525. noinst_HEADERS += src/textord/sortflts.h
  526. noinst_HEADERS += src/textord/strokewidth.h
  527. noinst_HEADERS += src/textord/tabfind.h
  528. noinst_HEADERS += src/textord/tablefind.h
  529. noinst_HEADERS += src/textord/tabvector.h
  530. noinst_HEADERS += src/textord/tablerecog.h
  531. noinst_HEADERS += src/textord/textlineprojection.h
  532. noinst_HEADERS += src/textord/textord.h
  533. noinst_HEADERS += src/textord/topitch.h
  534. noinst_HEADERS += src/textord/tordmain.h
  535. noinst_HEADERS += src/textord/tovars.h
  536. noinst_HEADERS += src/textord/underlin.h
  537. noinst_HEADERS += src/textord/wordseg.h
  538. noinst_HEADERS += src/textord/workingpartset.h
  539. if !DISABLED_LEGACY_ENGINE
  540. noinst_HEADERS += src/textord/equationdetectbase.h
  541. endif
  542. libtesseract_la_SOURCES += src/textord/alignedblob.cpp
  543. libtesseract_la_SOURCES += src/textord/baselinedetect.cpp
  544. libtesseract_la_SOURCES += src/textord/bbgrid.cpp
  545. libtesseract_la_SOURCES += src/textord/blkocc.cpp
  546. libtesseract_la_SOURCES += src/textord/blobgrid.cpp
  547. libtesseract_la_SOURCES += src/textord/ccnontextdetect.cpp
  548. libtesseract_la_SOURCES += src/textord/cjkpitch.cpp
  549. libtesseract_la_SOURCES += src/textord/colfind.cpp
  550. libtesseract_la_SOURCES += src/textord/colpartition.cpp
  551. libtesseract_la_SOURCES += src/textord/colpartitionset.cpp
  552. libtesseract_la_SOURCES += src/textord/colpartitiongrid.cpp
  553. libtesseract_la_SOURCES += src/textord/devanagari_processing.cpp
  554. libtesseract_la_SOURCES += src/textord/drawtord.cpp
  555. libtesseract_la_SOURCES += src/textord/edgblob.cpp
  556. libtesseract_la_SOURCES += src/textord/edgloop.cpp
  557. libtesseract_la_SOURCES += src/textord/fpchop.cpp
  558. libtesseract_la_SOURCES += src/textord/gap_map.cpp
  559. libtesseract_la_SOURCES += src/textord/imagefind.cpp
  560. libtesseract_la_SOURCES += src/textord/linefind.cpp
  561. libtesseract_la_SOURCES += src/textord/makerow.cpp
  562. libtesseract_la_SOURCES += src/textord/oldbasel.cpp
  563. libtesseract_la_SOURCES += src/textord/pithsync.cpp
  564. libtesseract_la_SOURCES += src/textord/pitsync1.cpp
  565. libtesseract_la_SOURCES += src/textord/scanedg.cpp
  566. libtesseract_la_SOURCES += src/textord/sortflts.cpp
  567. libtesseract_la_SOURCES += src/textord/strokewidth.cpp
  568. libtesseract_la_SOURCES += src/textord/tabfind.cpp
  569. libtesseract_la_SOURCES += src/textord/tablefind.cpp
  570. libtesseract_la_SOURCES += src/textord/tabvector.cpp
  571. libtesseract_la_SOURCES += src/textord/tablerecog.cpp
  572. libtesseract_la_SOURCES += src/textord/textlineprojection.cpp
  573. libtesseract_la_SOURCES += src/textord/textord.cpp
  574. libtesseract_la_SOURCES += src/textord/topitch.cpp
  575. libtesseract_la_SOURCES += src/textord/tordmain.cpp
  576. libtesseract_la_SOURCES += src/textord/tospace.cpp
  577. libtesseract_la_SOURCES += src/textord/tovars.cpp
  578. libtesseract_la_SOURCES += src/textord/underlin.cpp
  579. libtesseract_la_SOURCES += src/textord/wordseg.cpp
  580. libtesseract_la_SOURCES += src/textord/workingpartset.cpp
  581. if !DISABLED_LEGACY_ENGINE
  582. libtesseract_la_SOURCES += src/textord/equationdetectbase.cpp
  583. endif
  584. # Rules for src/viewer.
  585. if !GRAPHICS_DISABLED
  586. noinst_HEADERS += src/viewer/scrollview.h
  587. noinst_HEADERS += src/viewer/svmnode.h
  588. noinst_HEADERS += src/viewer/svutil.h
  589. libtesseract_la_SOURCES += src/viewer/scrollview.cpp
  590. libtesseract_la_SOURCES += src/viewer/svmnode.cpp
  591. libtesseract_la_SOURCES += src/viewer/svutil.cpp
  592. EXTRA_PROGRAMS += svpaint
  593. svpaint_CPPFLAGS = $(AM_CPPFLAGS)
  594. svpaint_CPPFLAGS += -I$(top_srcdir)/src/ccstruct
  595. svpaint_CPPFLAGS += -I$(top_srcdir)/src/viewer
  596. svpaint_SOURCES = src/svpaint.cpp
  597. svpaint_LDADD = libtesseract.la
  598. endif
  599. # Rules for src/wordrec.
  600. noinst_HEADERS += src/wordrec/wordrec.h
  601. if !DISABLED_LEGACY_ENGINE
  602. noinst_HEADERS += src/wordrec/associate.h
  603. noinst_HEADERS += src/wordrec/chop.h
  604. noinst_HEADERS += src/wordrec/drawfx.h
  605. noinst_HEADERS += src/wordrec/findseam.h
  606. noinst_HEADERS += src/wordrec/language_model.h
  607. noinst_HEADERS += src/wordrec/lm_consistency.h
  608. noinst_HEADERS += src/wordrec/lm_pain_points.h
  609. noinst_HEADERS += src/wordrec/lm_state.h
  610. noinst_HEADERS += src/wordrec/outlines.h
  611. noinst_HEADERS += src/wordrec/params_model.h
  612. noinst_HEADERS += src/wordrec/plotedges.h
  613. noinst_HEADERS += src/wordrec/render.h
  614. endif
  615. libtesseract_la_SOURCES += src/wordrec/tface.cpp
  616. libtesseract_la_SOURCES += src/wordrec/wordrec.cpp
  617. if !DISABLED_LEGACY_ENGINE
  618. libtesseract_la_SOURCES += src/wordrec/associate.cpp
  619. libtesseract_la_SOURCES += src/wordrec/chop.cpp
  620. libtesseract_la_SOURCES += src/wordrec/chopper.cpp
  621. libtesseract_la_SOURCES += src/wordrec/drawfx.cpp
  622. libtesseract_la_SOURCES += src/wordrec/findseam.cpp
  623. libtesseract_la_SOURCES += src/wordrec/gradechop.cpp
  624. libtesseract_la_SOURCES += src/wordrec/language_model.cpp
  625. libtesseract_la_SOURCES += src/wordrec/lm_consistency.cpp
  626. libtesseract_la_SOURCES += src/wordrec/lm_pain_points.cpp
  627. libtesseract_la_SOURCES += src/wordrec/lm_state.cpp
  628. libtesseract_la_SOURCES += src/wordrec/outlines.cpp
  629. libtesseract_la_SOURCES += src/wordrec/params_model.cpp
  630. libtesseract_la_SOURCES += src/wordrec/pieces.cpp
  631. if !GRAPHICS_DISABLED
  632. libtesseract_la_SOURCES += src/wordrec/plotedges.cpp
  633. endif
  634. libtesseract_la_SOURCES += src/wordrec/render.cpp
  635. libtesseract_la_SOURCES += src/wordrec/segsearch.cpp
  636. libtesseract_la_SOURCES += src/wordrec/wordclass.cpp
  637. endif
  638. # Rules for tesseract executable.
  639. bin_PROGRAMS = tesseract
  640. tesseract_SOURCES = src/tesseract.cpp
  641. tesseract_CPPFLAGS = $(AM_CPPFLAGS)
  642. tesseract_CPPFLAGS += -I$(top_srcdir)/src/arch
  643. tesseract_CPPFLAGS += -I$(top_srcdir)/src/ccmain
  644. tesseract_CPPFLAGS += -I$(top_srcdir)/src/ccstruct
  645. tesseract_CPPFLAGS += -I$(top_srcdir)/src/ccutil
  646. tesseract_CPPFLAGS += -I$(top_srcdir)/src/classify
  647. tesseract_CPPFLAGS += -I$(top_srcdir)/src/cutil
  648. tesseract_CPPFLAGS += -I$(top_srcdir)/src/dict
  649. tesseract_CPPFLAGS += -I$(top_srcdir)/src/textord
  650. tesseract_CPPFLAGS += -I$(top_srcdir)/src/viewer
  651. tesseract_CPPFLAGS += -I$(top_srcdir)/src/wordrec
  652. tesseract_LDFLAGS = $(OPENMP_CXXFLAGS)
  653. tesseract_LDADD = libtesseract.la
  654. tesseract_LDADD += $(LEPTONICA_LIBS)
  655. tesseract_LDADD += $(libarchive_LIBS)
  656. tesseract_LDADD += $(libcurl_LIBS)
  657. if T_WIN
  658. tesseract_LDADD += -ltiff
  659. tesseract_LDADD += -lws2_32
  660. endif
  661. if ADD_RT
  662. tesseract_LDADD += -lrt
  663. endif
  664. # Rules for training tools.
  665. if ENABLE_TRAINING
  666. training: $(trainingtools) | $(PROGRAMS)
  667. training-install: $(trainingtools)
  668. mkdir -p $(DESTDIR)$(bindir)
  669. $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install \
  670. $(INSTALL) $(INSTALL_STRIP_FLAG) $(trainingtools) $(DESTDIR)$(bindir)
  671. training-uninstall:
  672. # Some unit tests use code from training.
  673. check: libtesseract_training.la
  674. # dawg_test runs dawg2wordlist and wordlist2dawg.
  675. check: dawg2wordlist wordlist2dawg
  676. else
  677. training:
  678. @echo "Need to reconfigure project, so there are no errors"
  679. endif
  680. CLEANFILES += $(EXTRA_PROGRAMS)
  681. training_CPPFLAGS = $(AM_CPPFLAGS)
  682. training_CPPFLAGS += -DPANGO_ENABLE_ENGINE
  683. training_CPPFLAGS += -DTESS_COMMON_TRAINING_API=
  684. training_CPPFLAGS += -DTESS_PANGO_TRAINING_API=
  685. training_CPPFLAGS += -DTESS_UNICHARSET_TRAINING_API=
  686. training_CPPFLAGS += -I$(top_srcdir)/src/training
  687. training_CPPFLAGS += -I$(top_srcdir)/src/training/common
  688. training_CPPFLAGS += -I$(top_srcdir)/src/training/pango
  689. training_CPPFLAGS += -I$(top_srcdir)/src/training/unicharset
  690. training_CPPFLAGS += -I$(top_srcdir)/src/api
  691. training_CPPFLAGS += -I$(top_srcdir)/src/ccmain
  692. training_CPPFLAGS += -I$(top_srcdir)/src/ccutil
  693. training_CPPFLAGS += -I$(top_srcdir)/src/ccstruct
  694. training_CPPFLAGS += -I$(top_srcdir)/src/lstm
  695. training_CPPFLAGS += -I$(top_srcdir)/src/arch
  696. training_CPPFLAGS += -I$(top_srcdir)/src/viewer
  697. training_CPPFLAGS += -I$(top_srcdir)/src/textord
  698. training_CPPFLAGS += -I$(top_srcdir)/src/dict
  699. training_CPPFLAGS += -I$(top_srcdir)/src/classify
  700. training_CPPFLAGS += -I$(top_srcdir)/src/wordrec
  701. training_CPPFLAGS += -I$(top_srcdir)/src/cutil
  702. training_CPPFLAGS += $(ICU_UC_CFLAGS) $(ICU_I18N_CFLAGS)
  703. training_CPPFLAGS += $(pango_CFLAGS)
  704. training_CPPFLAGS += $(cairo_CFLAGS)
  705. if DISABLED_LEGACY_ENGINE
  706. training_CPPFLAGS += -DDISABLED_LEGACY_ENGINE
  707. endif
  708. # TODO: training programs cannot be linked to shared library created
  709. # with -fvisibility
  710. if VISIBILITY
  711. AM_LDFLAGS += -all-static
  712. endif
  713. noinst_HEADERS += src/training/pango/boxchar.h
  714. noinst_HEADERS += src/training/common/commandlineflags.h
  715. noinst_HEADERS += src/training/common/commontraining.h
  716. noinst_HEADERS += src/training/common/ctc.h
  717. noinst_HEADERS += src/training/common/networkbuilder.h
  718. noinst_HEADERS += src/training/degradeimage.h
  719. noinst_HEADERS += src/training/pango/ligature_table.h
  720. noinst_HEADERS += src/training/pango/pango_font_info.h
  721. noinst_HEADERS += src/training/pango/stringrenderer.h
  722. noinst_HEADERS += src/training/pango/tlog.h
  723. noinst_HEADERS += src/training/unicharset/icuerrorcode.h
  724. noinst_HEADERS += src/training/unicharset/fileio.h
  725. noinst_HEADERS += src/training/unicharset/lang_model_helpers.h
  726. noinst_HEADERS += src/training/unicharset/lstmtester.h
  727. noinst_HEADERS += src/training/unicharset/lstmtrainer.h
  728. noinst_HEADERS += src/training/unicharset/normstrngs.h
  729. noinst_HEADERS += src/training/unicharset/unicharset_training_utils.h
  730. noinst_HEADERS += src/training/unicharset/validate_grapheme.h
  731. noinst_HEADERS += src/training/unicharset/validate_indic.h
  732. noinst_HEADERS += src/training/unicharset/validate_javanese.h
  733. noinst_HEADERS += src/training/unicharset/validate_khmer.h
  734. noinst_HEADERS += src/training/unicharset/validate_myanmar.h
  735. noinst_HEADERS += src/training/unicharset/validator.h
  736. if !DISABLED_LEGACY_ENGINE
  737. noinst_HEADERS += src/training/common/errorcounter.h
  738. noinst_HEADERS += src/training/common/intfeaturedist.h
  739. noinst_HEADERS += src/training/common/intfeaturemap.h
  740. noinst_HEADERS += src/training/common/mastertrainer.h
  741. noinst_HEADERS += src/training/common/sampleiterator.h
  742. noinst_HEADERS += src/training/common/trainingsampleset.h
  743. noinst_HEADERS += src/training/mergenf.h
  744. endif
  745. CLEANFILES += libtesseract_training.la
  746. EXTRA_LTLIBRARIES = libtesseract_training.la
  747. libtesseract_training_la_CPPFLAGS = $(training_CPPFLAGS)
  748. libtesseract_training_la_SOURCES = src/training/pango/boxchar.cpp
  749. libtesseract_training_la_SOURCES += src/training/common/commandlineflags.cpp
  750. libtesseract_training_la_SOURCES += src/training/common/commontraining.cpp
  751. libtesseract_training_la_SOURCES += src/training/common/ctc.cpp
  752. libtesseract_training_la_SOURCES += src/training/common/networkbuilder.cpp
  753. libtesseract_training_la_SOURCES += src/training/degradeimage.cpp
  754. libtesseract_training_la_SOURCES += src/training/pango/ligature_table.cpp
  755. libtesseract_training_la_SOURCES += src/training/pango/pango_font_info.cpp
  756. libtesseract_training_la_SOURCES += src/training/pango/stringrenderer.cpp
  757. libtesseract_training_la_SOURCES += src/training/pango/tlog.cpp
  758. libtesseract_training_la_SOURCES += src/training/unicharset/icuerrorcode.cpp
  759. libtesseract_training_la_SOURCES += src/training/unicharset/fileio.cpp
  760. libtesseract_training_la_SOURCES += src/training/unicharset/lang_model_helpers.cpp
  761. libtesseract_training_la_SOURCES += src/training/unicharset/lstmtester.cpp
  762. libtesseract_training_la_SOURCES += src/training/unicharset/lstmtrainer.cpp
  763. libtesseract_training_la_SOURCES += src/training/unicharset/normstrngs.cpp
  764. libtesseract_training_la_SOURCES += src/training/unicharset/unicharset_training_utils.cpp
  765. libtesseract_training_la_SOURCES += src/training/unicharset/validate_grapheme.cpp
  766. libtesseract_training_la_SOURCES += src/training/unicharset/validate_indic.cpp
  767. libtesseract_training_la_SOURCES += src/training/unicharset/validate_javanese.cpp
  768. libtesseract_training_la_SOURCES += src/training/unicharset/validate_khmer.cpp
  769. libtesseract_training_la_SOURCES += src/training/unicharset/validate_myanmar.cpp
  770. libtesseract_training_la_SOURCES += src/training/unicharset/validator.cpp
  771. if !DISABLED_LEGACY_ENGINE
  772. libtesseract_training_la_SOURCES += src/training/common/errorcounter.cpp
  773. libtesseract_training_la_SOURCES += src/training/common/intfeaturedist.cpp
  774. libtesseract_training_la_SOURCES += src/training/common/intfeaturemap.cpp
  775. libtesseract_training_la_SOURCES += src/training/common/mastertrainer.cpp
  776. libtesseract_training_la_SOURCES += src/training/common/sampleiterator.cpp
  777. libtesseract_training_la_SOURCES += src/training/common/trainingsampleset.cpp
  778. endif
  779. trainingtools = combine_lang_model$(EXEEXT)
  780. trainingtools += combine_tessdata$(EXEEXT)
  781. trainingtools += dawg2wordlist$(EXEEXT)
  782. trainingtools += lstmeval$(EXEEXT)
  783. trainingtools += lstmtraining$(EXEEXT)
  784. trainingtools += merge_unicharsets$(EXEEXT)
  785. trainingtools += set_unicharset_properties$(EXEEXT)
  786. trainingtools += text2image$(EXEEXT)
  787. trainingtools += unicharset_extractor$(EXEEXT)
  788. trainingtools += wordlist2dawg$(EXEEXT)
  789. if !DISABLED_LEGACY_ENGINE
  790. trainingtools += ambiguous_words$(EXEEXT)
  791. trainingtools += classifier_tester$(EXEEXT)
  792. trainingtools += cntraining$(EXEEXT)
  793. trainingtools += mftraining$(EXEEXT)
  794. trainingtools += shapeclustering$(EXEEXT)
  795. endif
  796. $(trainingtools): libtesseract.la
  797. EXTRA_PROGRAMS += $(trainingtools)
  798. extralib = libtesseract.la
  799. extralib += $(libarchive_LIBS)
  800. extralib += $(LEPTONICA_LIBS)
  801. if T_WIN
  802. extralib += -lws2_32
  803. endif
  804. if !DISABLED_LEGACY_ENGINE
  805. ambiguous_words_CPPFLAGS = $(training_CPPFLAGS)
  806. ambiguous_words_SOURCES = src/training/ambiguous_words.cpp
  807. ambiguous_words_LDADD = libtesseract_training.la
  808. ambiguous_words_LDADD += $(extralib)
  809. classifier_tester_CPPFLAGS = $(training_CPPFLAGS)
  810. classifier_tester_SOURCES = src/training/classifier_tester.cpp
  811. classifier_tester_LDADD = libtesseract_training.la
  812. classifier_tester_LDADD += $(extralib)
  813. cntraining_CPPFLAGS = $(training_CPPFLAGS)
  814. cntraining_SOURCES = src/training/cntraining.cpp
  815. cntraining_LDADD = libtesseract_training.la
  816. cntraining_LDADD += $(extralib)
  817. mftraining_CPPFLAGS = $(training_CPPFLAGS)
  818. mftraining_SOURCES = src/training/mftraining.cpp src/training/mergenf.cpp
  819. mftraining_LDADD = libtesseract_training.la
  820. mftraining_LDADD += $(ICU_UC_LIBS)
  821. mftraining_LDADD += $(extralib)
  822. shapeclustering_CPPFLAGS = $(training_CPPFLAGS)
  823. shapeclustering_SOURCES = src/training/shapeclustering.cpp
  824. shapeclustering_LDADD = libtesseract_training.la
  825. shapeclustering_LDADD += $(extralib)
  826. endif
  827. combine_lang_model_CPPFLAGS = $(training_CPPFLAGS)
  828. combine_lang_model_SOURCES = src/training/combine_lang_model.cpp
  829. combine_lang_model_LDADD = libtesseract_training.la
  830. combine_lang_model_LDADD += $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  831. combine_lang_model_LDADD += $(extralib)
  832. combine_tessdata_CPPFLAGS = $(training_CPPFLAGS)
  833. combine_tessdata_SOURCES = src/training/combine_tessdata.cpp
  834. combine_tessdata_LDADD = $(extralib)
  835. dawg2wordlist_CPPFLAGS = $(training_CPPFLAGS)
  836. dawg2wordlist_SOURCES = src/training/dawg2wordlist.cpp
  837. dawg2wordlist_LDADD = $(extralib)
  838. lstmeval_CPPFLAGS = $(training_CPPFLAGS)
  839. lstmeval_SOURCES = src/training/lstmeval.cpp
  840. lstmeval_LDADD = libtesseract_training.la
  841. lstmeval_LDADD += $(ICU_UC_LIBS)
  842. lstmeval_LDADD += $(extralib)
  843. lstmtraining_CPPFLAGS = $(training_CPPFLAGS)
  844. lstmtraining_SOURCES = src/training/lstmtraining.cpp
  845. lstmtraining_LDADD = libtesseract_training.la
  846. lstmtraining_LDADD += $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  847. lstmtraining_LDADD += $(extralib)
  848. merge_unicharsets_CPPFLAGS = $(training_CPPFLAGS)
  849. merge_unicharsets_SOURCES = src/training/merge_unicharsets.cpp
  850. merge_unicharsets_LDADD = $(extralib)
  851. set_unicharset_properties_CPPFLAGS = $(training_CPPFLAGS)
  852. set_unicharset_properties_SOURCES = src/training/set_unicharset_properties.cpp
  853. set_unicharset_properties_LDADD = libtesseract_training.la
  854. set_unicharset_properties_LDADD += $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  855. set_unicharset_properties_LDADD += $(extralib)
  856. text2image_CPPFLAGS = $(training_CPPFLAGS)
  857. text2image_SOURCES = src/training/text2image.cpp
  858. text2image_LDADD = libtesseract_training.la
  859. text2image_LDADD += $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  860. text2image_LDADD += $(extralib)
  861. text2image_LDADD += $(ICU_UC_LIBS) $(cairo_LIBS)
  862. text2image_LDADD += $(pango_LIBS) $(pangocairo_LIBS) $(pangoft2_LIBS)
  863. unicharset_extractor_CPPFLAGS = $(training_CPPFLAGS)
  864. unicharset_extractor_SOURCES = src/training/unicharset_extractor.cpp
  865. unicharset_extractor_LDADD = libtesseract_training.la
  866. unicharset_extractor_LDADD += $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  867. unicharset_extractor_LDADD += $(extralib)
  868. wordlist2dawg_CPPFLAGS = $(training_CPPFLAGS)
  869. wordlist2dawg_SOURCES = src/training/wordlist2dawg.cpp
  870. wordlist2dawg_LDADD = $(extralib)
  871. # fuzzer-api is used for fuzzing tests.
  872. # They are run by OSS-Fuzz https://oss-fuzz.com/, but can also be run locally.
  873. # Note: -fsanitize=fuzzer currently requires the clang++ compiler.
  874. # LIB_FUZZING_ENGINE can be overridden by the caller.
  875. # This is used by OSS-Fuzz.
  876. LIB_FUZZING_ENGINE ?= -fsanitize=fuzzer
  877. fuzzer-api: libtesseract.la
  878. fuzzer-api: unittest/fuzzers/fuzzer-api.cpp
  879. $(CXX) $(CXXFLAGS) -g $(LIB_FUZZING_ENGINE) \
  880. -I $(top_srcdir)/include \
  881. -I $(builddir)/include \
  882. -I $(top_srcdir)/src/ccmain \
  883. -I $(top_srcdir)/src/ccstruct \
  884. -I $(top_srcdir)/src/ccutil \
  885. $(LEPTONICA_CFLAGS) \
  886. $(OPENMP_CXXFLAGS) \
  887. $< \
  888. $(builddir)/.libs/libtesseract.a \
  889. $(LEPTONICA_LIBS) \
  890. $(libarchive_LIBS) \
  891. $(libcurl_LIBS) \
  892. -o $@
  893. fuzzer-api-512x256: libtesseract.la
  894. fuzzer-api-512x256: unittest/fuzzers/fuzzer-api.cpp
  895. $(CXX) $(CXXFLAGS) -g $(LIB_FUZZING_ENGINE) \
  896. -DTESSERACT_FUZZER_WIDTH=512 \
  897. -DTESSERACT_FUZZER_HEIGHT=256 \
  898. -I $(top_srcdir)/include \
  899. -I $(builddir)/include \
  900. -I $(top_srcdir)/src/ccmain \
  901. -I $(top_srcdir)/src/ccstruct \
  902. -I $(top_srcdir)/src/ccutil \
  903. $(LEPTONICA_CFLAGS) \
  904. $(OPENMP_CXXFLAGS) \
  905. $< \
  906. $(builddir)/.libs/libtesseract.a \
  907. $(LEPTONICA_LIBS) \
  908. $(libarchive_LIBS) \
  909. $(libcurl_LIBS) \
  910. -o $@
  911. CLEANFILES += fuzzer-api fuzzer-api-512x256
  912. if ASCIIDOC
  913. man_MANS = doc/combine_lang_model.1
  914. man_MANS += doc/combine_tessdata.1
  915. man_MANS += doc/dawg2wordlist.1
  916. man_MANS += doc/lstmeval.1
  917. man_MANS += doc/lstmtraining.1
  918. man_MANS += doc/merge_unicharsets.1
  919. man_MANS += doc/set_unicharset_properties.1
  920. man_MANS += doc/tesseract.1
  921. man_MANS += doc/text2image.1
  922. man_MANS += doc/unicharset.5
  923. man_MANS += doc/unicharset_extractor.1
  924. man_MANS += doc/wordlist2dawg.1
  925. if !DISABLED_LEGACY_ENGINE
  926. man_MANS += doc/ambiguous_words.1
  927. man_MANS += doc/classifier_tester.1
  928. man_MANS += doc/cntraining.1
  929. man_MANS += doc/mftraining.1
  930. man_MANS += doc/shapeclustering.1
  931. man_MANS += doc/unicharambigs.5
  932. endif
  933. man_xslt = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
  934. EXTRA_DIST += $(man_MANS) doc/Doxyfile
  935. html: ${man_MANS:%=%.html}
  936. pdf: ${man_MANS:%=%.pdf}
  937. SUFFIXES = .asc .html .pdf
  938. .asc:
  939. if HAVE_XML_CATALOG_FILES
  940. asciidoc -b docbook -d manpage -o - $< | \
  941. XML_CATALOG_FILES=$(XML_CATALOG_FILES) xsltproc --nonet -o $@ $(man_xslt) -
  942. else
  943. asciidoc -b docbook -d manpage -o - $< | \
  944. xsltproc --nonet -o $@ $(man_xslt) -
  945. endif
  946. .asc.html:
  947. asciidoc -b html5 -o $@ $<
  948. .asc.pdf:
  949. asciidoc -b docbook -d manpage -o $*.dbk $<
  950. docbook2pdf -o doc $*.dbk
  951. MAINTAINERCLEANFILES = $(man_MANS) Doxyfile
  952. endif
  953. # Absolute path of directory 'langdata'.
  954. LANGDATA_DIR=$(shell cd $(top_srcdir) && cd .. && pwd)/langdata_lstm
  955. # Absolute path of directory 'tessdata' with traineddata files
  956. # (must be on same level as top source directory).
  957. TESSDATA_DIR=$(shell cd $(top_srcdir) && cd .. && pwd)/tessdata
  958. # Absolute path of directory 'testing' with test images and ground truth texts
  959. # (using submodule test).
  960. TESTING_DIR=$(shell cd $(top_srcdir) && pwd)/test/testing
  961. # Absolute path of directory 'testdata' with test unicharset etc.
  962. # (using submodule test).
  963. TESTDATA_DIR=$(shell cd $(top_srcdir) && pwd)/test/testdata
  964. # Suppress some memory leaks reported by LeakSanitizer.
  965. export LSAN_OPTIONS=suppressions=$(top_srcdir)/unittest/tesseract_leaksanitizer.supp
  966. unittest_CPPFLAGS = $(AM_CPPFLAGS)
  967. unittest_CPPFLAGS += -DTESSBIN_DIR="\"$(abs_top_builddir)\""
  968. unittest_CPPFLAGS += -DLANGDATA_DIR="\"$(LANGDATA_DIR)\""
  969. unittest_CPPFLAGS += -DTESSDATA_DIR="\"$(TESSDATA_DIR)\""
  970. unittest_CPPFLAGS += -DTESTING_DIR="\"$(TESTING_DIR)\""
  971. unittest_CPPFLAGS += -DTESTDATA_DIR="\"$(TESTDATA_DIR)\""
  972. unittest_CPPFLAGS += -DPANGO_ENABLE_ENGINE
  973. if DISABLED_LEGACY_ENGINE
  974. unittest_CPPFLAGS += -DDISABLED_LEGACY_ENGINE
  975. endif # DISABLED_LEGACY_ENGINE
  976. unittest_CPPFLAGS += -DTESS_COMMON_TRAINING_API=
  977. unittest_CPPFLAGS += -DTESS_PANGO_TRAINING_API=
  978. unittest_CPPFLAGS += -DTESS_UNICHARSET_TRAINING_API=
  979. unittest_CPPFLAGS += -I$(top_srcdir)/src/arch
  980. unittest_CPPFLAGS += -I$(top_srcdir)/src/ccmain
  981. unittest_CPPFLAGS += -I$(top_srcdir)/src/ccstruct
  982. unittest_CPPFLAGS += -I$(top_srcdir)/src/ccutil
  983. unittest_CPPFLAGS += -I$(top_srcdir)/src/classify
  984. unittest_CPPFLAGS += -I$(top_srcdir)/src/cutil
  985. unittest_CPPFLAGS += -I$(top_srcdir)/src/dict
  986. unittest_CPPFLAGS += -I$(top_srcdir)/src/display
  987. unittest_CPPFLAGS += -I$(top_srcdir)/src/lstm
  988. unittest_CPPFLAGS += -I$(top_srcdir)/src/textord
  989. unittest_CPPFLAGS += -I$(top_srcdir)/unittest/base
  990. unittest_CPPFLAGS += -I$(top_srcdir)/unittest/util
  991. unittest_CPPFLAGS += $(LEPTONICA_CFLAGS)
  992. if ENABLE_TRAINING
  993. unittest_CPPFLAGS += -I$(top_srcdir)/src/training
  994. unittest_CPPFLAGS += -I$(top_srcdir)/src/training/common
  995. unittest_CPPFLAGS += -I$(top_srcdir)/src/training/pango
  996. unittest_CPPFLAGS += -I$(top_srcdir)/src/training/unicharset
  997. unittest_CPPFLAGS += $(pangocairo_CFLAGS)
  998. endif # ENABLE_TRAINING
  999. unittest_CPPFLAGS += -I$(top_srcdir)/src/viewer
  1000. unittest_CPPFLAGS += -I$(top_srcdir)/src/wordrec
  1001. unittest_CPPFLAGS += -I$(top_srcdir)/unittest
  1002. # Build googletest:
  1003. check_LTLIBRARIES = libgtest.la libgtest_main.la libgmock.la libgmock_main.la
  1004. libgtest_la_SOURCES = unittest/third_party/googletest/googletest/src/gtest-all.cc
  1005. libgtest_la_CPPFLAGS = -I$(top_srcdir)/unittest/third_party/googletest/googletest/include
  1006. libgtest_la_CPPFLAGS += -I$(top_srcdir)/unittest/third_party/googletest/googletest
  1007. libgtest_la_CPPFLAGS += -pthread
  1008. libgtest_main_la_SOURCES = unittest/third_party/googletest/googletest/src/gtest_main.cc
  1009. libgtest_main_la_CPPFLAGS = $(libgtest_la_CPPFLAGS)
  1010. GMOCK_INCLUDES = -I$(top_srcdir)/unittest/third_party/googletest/googlemock/include \
  1011. -I$(top_srcdir)/unittest/third_party/googletest/googlemock \
  1012. -I$(top_srcdir)/unittest/third_party/googletest/googletest/include \
  1013. -I$(top_srcdir)/unittest/third_party/googletest/googletest
  1014. libgmock_la_SOURCES = unittest/third_party/googletest/googlemock/src/gmock-all.cc
  1015. libgmock_la_CPPFLAGS = $(GMOCK_INCLUDES) \
  1016. -pthread
  1017. libgmock_main_la_SOURCES = unittest/third_party/googletest/googlemock/src/gmock_main.cc
  1018. libgmock_main_la_CPPFLAGS = $(GMOCK_INCLUDES) \
  1019. -pthread
  1020. # Build unittests
  1021. GTEST_LIBS = libgtest.la libgtest_main.la -lpthread
  1022. GMOCK_LIBS = libgmock.la libgmock_main.la
  1023. TESS_LIBS = $(GTEST_LIBS)
  1024. TESS_LIBS += libtesseract.la $(libarchive_LIBS)
  1025. TRAINING_LIBS = libtesseract_training.la
  1026. TRAINING_LIBS += $(TESS_LIBS)
  1027. unittest_CPPFLAGS += -isystem $(top_srcdir)/unittest/third_party/googletest/googletest/include
  1028. unittest_CPPFLAGS += -isystem $(top_srcdir)/unittest/third_party/googletest/googlemock/include
  1029. check_PROGRAMS = apiexample_test
  1030. if ENABLE_TRAINING
  1031. if !DISABLED_LEGACY_ENGINE
  1032. check_PROGRAMS += applybox_test
  1033. endif # !DISABLED_LEGACY_ENGINE
  1034. check_PROGRAMS += baseapi_test
  1035. check_PROGRAMS += baseapi_thread_test
  1036. if !DISABLED_LEGACY_ENGINE
  1037. check_PROGRAMS += bitvector_test
  1038. endif # !DISABLED_LEGACY_ENGINE
  1039. endif # ENABLE_TRAINING
  1040. check_PROGRAMS += cleanapi_test
  1041. check_PROGRAMS += colpartition_test
  1042. if ENABLE_TRAINING
  1043. check_PROGRAMS += commandlineflags_test
  1044. check_PROGRAMS += dawg_test
  1045. endif # ENABLE_TRAINING
  1046. check_PROGRAMS += denorm_test
  1047. if !DISABLED_LEGACY_ENGINE
  1048. check_PROGRAMS += equationdetect_test
  1049. endif # !DISABLED_LEGACY_ENGINE
  1050. check_PROGRAMS += fileio_test
  1051. check_PROGRAMS += heap_test
  1052. check_PROGRAMS += imagedata_test
  1053. if !DISABLED_LEGACY_ENGINE
  1054. check_PROGRAMS += indexmapbidi_test
  1055. check_PROGRAMS += intfeaturemap_test
  1056. endif # !DISABLED_LEGACY_ENGINE
  1057. check_PROGRAMS += intsimdmatrix_test
  1058. check_PROGRAMS += lang_model_test
  1059. check_PROGRAMS += layout_test
  1060. check_PROGRAMS += ligature_table_test
  1061. check_PROGRAMS += linlsq_test
  1062. check_PROGRAMS += list_test
  1063. if ENABLE_TRAINING
  1064. check_PROGRAMS += lstm_recode_test
  1065. check_PROGRAMS += lstm_squashed_test
  1066. check_PROGRAMS += lstm_test
  1067. check_PROGRAMS += lstmtrainer_test
  1068. endif # ENABLE_TRAINING
  1069. check_PROGRAMS += loadlang_test
  1070. if !DISABLED_LEGACY_ENGINE
  1071. check_PROGRAMS += mastertrainer_test
  1072. endif # !DISABLED_LEGACY_ENGINE
  1073. check_PROGRAMS += matrix_test
  1074. check_PROGRAMS += networkio_test
  1075. if ENABLE_TRAINING
  1076. check_PROGRAMS += normstrngs_test
  1077. endif # ENABLE_TRAINING
  1078. check_PROGRAMS += nthitem_test
  1079. if !DISABLED_LEGACY_ENGINE
  1080. check_PROGRAMS += osd_test
  1081. endif # !DISABLED_LEGACY_ENGINE
  1082. check_PROGRAMS += pagesegmode_test
  1083. if ENABLE_TRAINING
  1084. check_PROGRAMS += pango_font_info_test
  1085. endif # ENABLE_TRAINING
  1086. check_PROGRAMS += paragraphs_test
  1087. if !DISABLED_LEGACY_ENGINE
  1088. check_PROGRAMS += params_model_test
  1089. endif # !DISABLED_LEGACY_ENGINE
  1090. check_PROGRAMS += progress_test
  1091. check_PROGRAMS += qrsequence_test
  1092. check_PROGRAMS += recodebeam_test
  1093. check_PROGRAMS += rect_test
  1094. check_PROGRAMS += resultiterator_test
  1095. check_PROGRAMS += scanutils_test
  1096. if !DISABLED_LEGACY_ENGINE
  1097. check_PROGRAMS += shapetable_test
  1098. endif # !DISABLED_LEGACY_ENGINE
  1099. check_PROGRAMS += stats_test
  1100. check_PROGRAMS += stridemap_test
  1101. check_PROGRAMS += stringrenderer_test
  1102. check_PROGRAMS += tablefind_test
  1103. check_PROGRAMS += tablerecog_test
  1104. check_PROGRAMS += tabvector_test
  1105. check_PROGRAMS += tatweel_test
  1106. if !DISABLED_LEGACY_ENGINE
  1107. check_PROGRAMS += textlineprojection_test
  1108. endif # !DISABLED_LEGACY_ENGINE
  1109. check_PROGRAMS += tfile_test
  1110. if ENABLE_TRAINING
  1111. check_PROGRAMS += unichar_test
  1112. check_PROGRAMS += unicharcompress_test
  1113. check_PROGRAMS += unicharset_test
  1114. check_PROGRAMS += validate_grapheme_test
  1115. check_PROGRAMS += validate_indic_test
  1116. check_PROGRAMS += validate_khmer_test
  1117. check_PROGRAMS += validate_myanmar_test
  1118. check_PROGRAMS += validator_test
  1119. endif # ENABLE_TRAINING
  1120. check_PROGRAMS: libtesseract.la libtesseract_training.la
  1121. TESTS = $(check_PROGRAMS)
  1122. # List of source files needed to build the executable:
  1123. apiexample_test_SOURCES = unittest/apiexample_test.cc
  1124. apiexample_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1125. apiexample_test_LDFLAGS = $(LEPTONICA_LIBS)
  1126. apiexample_test_LDADD = $(TESS_LIBS) $(LEPTONICA_LIBS)
  1127. if !DISABLED_LEGACY_ENGINE
  1128. applybox_test_SOURCES = unittest/applybox_test.cc
  1129. applybox_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1130. applybox_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1131. endif # !DISABLED_LEGACY_ENGINE
  1132. baseapi_test_SOURCES = unittest/baseapi_test.cc
  1133. baseapi_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1134. baseapi_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1135. baseapi_thread_test_SOURCES = unittest/baseapi_thread_test.cc
  1136. baseapi_thread_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1137. baseapi_thread_test_LDADD = $(TESS_LIBS) $(LEPTONICA_LIBS)
  1138. if !DISABLED_LEGACY_ENGINE
  1139. bitvector_test_SOURCES = unittest/bitvector_test.cc
  1140. bitvector_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1141. bitvector_test_LDADD = $(TRAINING_LIBS)
  1142. endif # !DISABLED_LEGACY_ENGINE
  1143. cleanapi_test_SOURCES = unittest/cleanapi_test.cc
  1144. cleanapi_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1145. cleanapi_test_LDADD = $(TESS_LIBS)
  1146. colpartition_test_SOURCES = unittest/colpartition_test.cc
  1147. colpartition_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1148. colpartition_test_LDADD = $(TESS_LIBS)
  1149. commandlineflags_test_SOURCES = unittest/commandlineflags_test.cc
  1150. commandlineflags_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1151. commandlineflags_test_LDADD = $(TRAINING_LIBS) $(ICU_UC_LIBS)
  1152. dawg_test_SOURCES = unittest/dawg_test.cc
  1153. dawg_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1154. dawg_test_LDADD = $(TRAINING_LIBS)
  1155. denorm_test_SOURCES = unittest/denorm_test.cc
  1156. denorm_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1157. denorm_test_LDADD = $(TESS_LIBS)
  1158. if !DISABLED_LEGACY_ENGINE
  1159. equationdetect_test_SOURCES = unittest/equationdetect_test.cc
  1160. equationdetect_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1161. equationdetect_test_LDADD = $(TESS_LIBS) $(LEPTONICA_LIBS)
  1162. endif # !DISABLED_LEGACY_ENGINE
  1163. fileio_test_SOURCES = unittest/fileio_test.cc
  1164. fileio_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1165. fileio_test_LDADD = $(TRAINING_LIBS)
  1166. heap_test_SOURCES = unittest/heap_test.cc
  1167. heap_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1168. heap_test_LDADD = $(TESS_LIBS)
  1169. imagedata_test_SOURCES = unittest/imagedata_test.cc
  1170. imagedata_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1171. imagedata_test_LDADD = $(TRAINING_LIBS)
  1172. if !DISABLED_LEGACY_ENGINE
  1173. indexmapbidi_test_SOURCES = unittest/indexmapbidi_test.cc
  1174. indexmapbidi_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1175. indexmapbidi_test_LDADD = $(TRAINING_LIBS)
  1176. endif # !DISABLED_LEGACY_ENGINE
  1177. if !DISABLED_LEGACY_ENGINE
  1178. intfeaturemap_test_SOURCES = unittest/intfeaturemap_test.cc
  1179. intfeaturemap_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1180. intfeaturemap_test_LDADD = $(TRAINING_LIBS)
  1181. endif # !DISABLED_LEGACY_ENGINE
  1182. intsimdmatrix_test_SOURCES = unittest/intsimdmatrix_test.cc
  1183. intsimdmatrix_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1184. if HAVE_AVX2
  1185. intsimdmatrix_test_CPPFLAGS += -DHAVE_AVX2
  1186. endif
  1187. if HAVE_SSE4_1
  1188. intsimdmatrix_test_CPPFLAGS += -DHAVE_SSE4_1
  1189. endif
  1190. intsimdmatrix_test_LDADD = $(TESS_LIBS)
  1191. lang_model_test_SOURCES = unittest/lang_model_test.cc
  1192. lang_model_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1193. lang_model_test_LDADD = $(TRAINING_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1194. layout_test_SOURCES = unittest/layout_test.cc
  1195. layout_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1196. layout_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1197. ligature_table_test_SOURCES = unittest/ligature_table_test.cc
  1198. ligature_table_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1199. ligature_table_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1200. ligature_table_test_LDADD += $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1201. ligature_table_test_LDADD += $(pangocairo_LIBS) $(pangoft2_LIBS)
  1202. ligature_table_test_LDADD += $(cairo_LIBS) $(pango_LIBS)
  1203. linlsq_test_SOURCES = unittest/linlsq_test.cc
  1204. linlsq_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1205. linlsq_test_LDADD = $(TESS_LIBS)
  1206. list_test_SOURCES = unittest/list_test.cc
  1207. list_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1208. list_test_LDADD = $(TESS_LIBS)
  1209. loadlang_test_SOURCES = unittest/loadlang_test.cc
  1210. loadlang_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1211. loadlang_test_LDADD = $(TESS_LIBS) $(LEPTONICA_LIBS)
  1212. lstm_recode_test_SOURCES = unittest/lstm_recode_test.cc
  1213. lstm_recode_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1214. lstm_recode_test_LDADD = $(TRAINING_LIBS)
  1215. lstm_squashed_test_SOURCES = unittest/lstm_squashed_test.cc
  1216. lstm_squashed_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1217. lstm_squashed_test_LDADD = $(TRAINING_LIBS)
  1218. lstm_test_SOURCES = unittest/lstm_test.cc
  1219. lstm_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1220. lstm_test_LDADD = $(TRAINING_LIBS)
  1221. lstmtrainer_test_SOURCES = unittest/lstmtrainer_test.cc
  1222. lstmtrainer_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1223. lstmtrainer_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1224. if !DISABLED_LEGACY_ENGINE
  1225. mastertrainer_test_SOURCES = unittest/mastertrainer_test.cc
  1226. mastertrainer_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1227. mastertrainer_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1228. endif # !DISABLED_LEGACY_ENGINE
  1229. matrix_test_SOURCES = unittest/matrix_test.cc
  1230. matrix_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1231. matrix_test_LDADD = $(TESS_LIBS)
  1232. networkio_test_SOURCES = unittest/networkio_test.cc
  1233. networkio_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1234. networkio_test_LDADD = $(TESS_LIBS)
  1235. normstrngs_test_SOURCES = unittest/normstrngs_test.cc
  1236. normstrngs_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1237. normstrngs_test_LDADD = $(TRAINING_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1238. nthitem_test_SOURCES = unittest/nthitem_test.cc
  1239. nthitem_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1240. nthitem_test_LDADD = $(TESS_LIBS)
  1241. if !DISABLED_LEGACY_ENGINE
  1242. osd_test_SOURCES = unittest/osd_test.cc
  1243. osd_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1244. osd_test_LDADD = $(TESS_LIBS) $(LEPTONICA_LIBS)
  1245. endif # !DISABLED_LEGACY_ENGINE
  1246. pagesegmode_test_SOURCES = unittest/pagesegmode_test.cc
  1247. pagesegmode_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1248. pagesegmode_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1249. pango_font_info_test_SOURCES = unittest/pango_font_info_test.cc
  1250. pango_font_info_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1251. pango_font_info_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1252. pango_font_info_test_LDADD += $(ICU_I18N_LIBS)
  1253. pango_font_info_test_LDADD += $(pangocairo_LIBS)
  1254. pango_font_info_test_LDADD += $(pangoft2_LIBS)
  1255. paragraphs_test_SOURCES = unittest/paragraphs_test.cc
  1256. paragraphs_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1257. paragraphs_test_LDADD = $(TESS_LIBS)
  1258. if !DISABLED_LEGACY_ENGINE
  1259. params_model_test_SOURCES = unittest/params_model_test.cc
  1260. params_model_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1261. params_model_test_LDADD = $(TRAINING_LIBS)
  1262. endif # !DISABLED_LEGACY_ENGINE
  1263. progress_test_SOURCES = unittest/progress_test.cc
  1264. progress_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1265. progress_test_LDFLAGS = $(LEPTONICA_LIBS)
  1266. progress_test_LDADD = $(GTEST_LIBS) $(GMOCK_LIBS) $(TESS_LIBS) $(LEPTONICA_LIBS)
  1267. qrsequence_test_SOURCES = unittest/qrsequence_test.cc
  1268. qrsequence_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1269. qrsequence_test_LDADD = $(TESS_LIBS)
  1270. recodebeam_test_SOURCES = unittest/recodebeam_test.cc
  1271. recodebeam_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1272. recodebeam_test_LDADD = $(TRAINING_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1273. rect_test_SOURCES = unittest/rect_test.cc
  1274. rect_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1275. rect_test_LDADD = $(TESS_LIBS)
  1276. resultiterator_test_SOURCES = unittest/resultiterator_test.cc
  1277. resultiterator_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1278. resultiterator_test_LDADD = $(TRAINING_LIBS)
  1279. resultiterator_test_LDADD += $(LEPTONICA_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1280. scanutils_test_SOURCES = unittest/scanutils_test.cc
  1281. scanutils_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1282. scanutils_test_LDADD = $(TRAINING_LIBS)
  1283. if !DISABLED_LEGACY_ENGINE
  1284. shapetable_test_SOURCES = unittest/shapetable_test.cc
  1285. shapetable_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1286. shapetable_test_LDADD = $(TRAINING_LIBS)
  1287. endif # !DISABLED_LEGACY_ENGINE
  1288. stats_test_SOURCES = unittest/stats_test.cc
  1289. stats_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1290. stats_test_LDADD = $(TESS_LIBS)
  1291. stridemap_test_SOURCES = unittest/stridemap_test.cc
  1292. stridemap_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1293. stridemap_test_LDADD = $(TESS_LIBS)
  1294. stringrenderer_test_SOURCES = unittest/stringrenderer_test.cc
  1295. stringrenderer_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1296. stringrenderer_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1297. stringrenderer_test_LDADD += $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1298. stringrenderer_test_LDADD += $(pangocairo_LIBS) $(pangoft2_LIBS)
  1299. stringrenderer_test_LDADD += $(cairo_LIBS) $(pango_LIBS)
  1300. tablefind_test_SOURCES = unittest/tablefind_test.cc
  1301. tablefind_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1302. tablefind_test_LDADD = $(TESS_LIBS)
  1303. tablerecog_test_SOURCES = unittest/tablerecog_test.cc
  1304. tablerecog_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1305. tablerecog_test_LDADD = $(TESS_LIBS)
  1306. tabvector_test_SOURCES = unittest/tabvector_test.cc
  1307. tabvector_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1308. tabvector_test_LDADD = $(TESS_LIBS)
  1309. tatweel_test_SOURCES = unittest/tatweel_test.cc
  1310. tatweel_test_SOURCES += unittest/third_party/utf/rune.c
  1311. tatweel_test_SOURCES += unittest/util/utf8/unicodetext.cc
  1312. tatweel_test_SOURCES += unittest/util/utf8/unilib.cc
  1313. tatweel_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1314. tatweel_test_LDADD = $(TRAINING_LIBS)
  1315. textlineprojection_test_SOURCES = unittest/textlineprojection_test.cc
  1316. textlineprojection_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1317. textlineprojection_test_LDADD = $(TRAINING_LIBS) $(LEPTONICA_LIBS)
  1318. tfile_test_SOURCES = unittest/tfile_test.cc
  1319. tfile_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1320. tfile_test_LDADD = $(TESS_LIBS)
  1321. unichar_test_SOURCES = unittest/unichar_test.cc
  1322. unichar_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1323. unichar_test_LDADD = $(TRAINING_LIBS) $(ICU_UC_LIBS)
  1324. unicharcompress_test_SOURCES = unittest/unicharcompress_test.cc
  1325. unicharcompress_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1326. unicharcompress_test_LDADD = $(TRAINING_LIBS) $(ICU_UC_LIBS)
  1327. unicharset_test_SOURCES = unittest/unicharset_test.cc
  1328. unicharset_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1329. unicharset_test_LDADD = $(TRAINING_LIBS) $(ICU_UC_LIBS)
  1330. validate_grapheme_test_SOURCES = unittest/validate_grapheme_test.cc
  1331. validate_grapheme_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1332. validate_grapheme_test_LDADD = $(TRAINING_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1333. validate_indic_test_SOURCES = unittest/validate_indic_test.cc
  1334. validate_indic_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1335. validate_indic_test_LDADD = $(TRAINING_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1336. validate_khmer_test_SOURCES = unittest/validate_khmer_test.cc
  1337. validate_khmer_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1338. validate_khmer_test_LDADD = $(TRAINING_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1339. validate_myanmar_test_SOURCES = unittest/validate_myanmar_test.cc
  1340. validate_myanmar_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1341. validate_myanmar_test_LDADD = $(TRAINING_LIBS) $(ICU_I18N_LIBS) $(ICU_UC_LIBS)
  1342. validator_test_SOURCES = unittest/validator_test.cc
  1343. validator_test_CPPFLAGS = $(unittest_CPPFLAGS)
  1344. validator_test_LDADD = $(TRAINING_LIBS) $(ICU_UC_LIBS)
  1345. # for windows
  1346. if T_WIN
  1347. apiexample_test_LDADD += -lws2_32
  1348. intsimdmatrix_test_LDADD += -lws2_32
  1349. matrix_test_LDADD += -lws2_32
  1350. if !DISABLED_LEGACY_ENGINE
  1351. osd_test_LDADD += -lws2_32
  1352. endif # !DISABLED_LEGACY_ENGINE
  1353. loadlang_test_LDADD += -lws2_32
  1354. endif
  1355. EXTRA_apiexample_test_DEPENDENCIES = $(abs_top_builddir)/test/testing/phototest.tif
  1356. EXTRA_apiexample_test_DEPENDENCIES += $(abs_top_builddir)/test/testing/phototest.txt
  1357. $(abs_top_builddir)/test/testing/phototest.tif:
  1358. mkdir -p $(top_builddir)/test/testing
  1359. ln -s $(TESTING_DIR)/phototest.tif $(top_builddir)/test/testing/phototest.tif
  1360. $(abs_top_builddir)/test/testing/phototest.txt:
  1361. mkdir -p $(top_builddir)/test/testing
  1362. ln -s $(TESTING_DIR)/phototest.txt $(top_builddir)/test/testing/phototest.txt
  1363. # Some tests require a local tmp directory.
  1364. $(check_PROGRAMS): | tmp
  1365. tmp:
  1366. mkdir -p tmp
  1367. # Some tests require a well defined set of the following font files.
  1368. fonts = ae_Arab.ttf
  1369. fonts += Arial_Bold_Italic.ttf
  1370. fonts += DejaVuSans-ExtraLight.ttf
  1371. fonts += Lohit-Hindi.ttf
  1372. fonts += Times_New_Roman.ttf
  1373. fonts += UnBatang.ttf
  1374. fonts += Verdana.ttf
  1375. # These tests depend on installed model files and fonts:
  1376. #
  1377. # apiexample_test baseapi_test lang_model_test layout_test
  1378. # ligature_table_test loadlang_test lstm_recode_test lstm_squashed_test
  1379. # lstm_test lstmtrainer_test mastertrainer_test osd_test
  1380. # pagesegmode_test pango_font_info_test progress_test
  1381. # recodebeam_test resultiterator_test stringrenderer_test
  1382. # textlineprojection_test unicharcompress_test
  1383. #
  1384. # Instead of fine-tuned dependencies the following lines
  1385. # simply require those dependencies for all tests.
  1386. # That can be improved if necessary.
  1387. $(check_PROGRAMS): | $(LANGDATA_DIR)
  1388. $(check_PROGRAMS): | $(TESSDATA_DIR)
  1389. $(check_PROGRAMS): | $(TESSDATA_BEST_DIR)
  1390. $(check_PROGRAMS): | $(TESSDATA_FAST_DIR)
  1391. $(check_PROGRAMS): | $(fonts:%=$(TESTING_DIR)/%)
  1392. $(LANGDATA_DIR) $(TESSDATA_DIR) $(TESSDATA_BEST_DIR) $(TESSDATA_FAST_DIR):
  1393. @echo "Some unit tests require $@."
  1394. @echo "It can be installed manually by running this command:"
  1395. @echo " git clone https://github.com/tesseract-ocr/$$(basename $@).git $@"
  1396. @exit 1
  1397. $(TESTING_DIR)/Arial_Bold_Italic.ttf:
  1398. curl -sSL -o Arial.exe https://sourceforge.net/projects/corefonts/files/the%20fonts/final/arial32.exe/download
  1399. cabextract -F Arialbi.TTF -q Arial.exe
  1400. rm Arial.exe
  1401. mv Arialbi.TTF $@
  1402. $(TESTING_DIR)/DejaVuSans-ExtraLight.ttf:
  1403. curl -sSL http://sourceforge.net/projects/dejavu/files/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2 | \
  1404. tar -xjO dejavu-fonts-ttf-2.37/ttf/DejaVuSans-ExtraLight.ttf >$@
  1405. $(TESTING_DIR)/Lohit-Hindi.ttf:
  1406. curl -sSL https://releases.pagure.org/lohit/lohit-hindi-ttf-2.4.3.tar.gz | \
  1407. tar -xzO lohit-hindi-ttf-2.4.3/Lohit-Hindi.ttf >$@
  1408. $(TESTING_DIR)/Times_New_Roman.ttf:
  1409. curl -sSL -o Times.exe https://sourceforge.net/projects/corefonts/files/the%20fonts/final/times32.exe/download
  1410. cabextract -F Times.TTF -q Times.exe
  1411. rm Times.exe
  1412. mv Times.TTF $@
  1413. $(TESTING_DIR)/UnBatang.ttf:
  1414. curl -sSL -o $@ https://salsa.debian.org/fonts-team/fonts-unfonts-core/-/raw/master/UnBatang.ttf
  1415. $(TESTING_DIR)/Verdana.ttf:
  1416. curl -sSL -o Verdana.exe https://sourceforge.net/projects/corefonts/files/the%20fonts/final/verdan32.exe/download
  1417. cabextract -F Verdana.TTF -q Verdana.exe
  1418. rm Verdana.exe
  1419. mv Verdana.TTF $@
  1420. $(TESTING_DIR)/ae_Arab.ttf:
  1421. curl -sSL -o $@ https://salsa.debian.org/fonts-team/fonts-arabeyes/-/raw/master/ae_Arab.ttf