diff --git a/Makefile.in b/Makefile.in index 623b3735d6..901388b22e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,224 +10,133 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +# TODO(luc) Add 'doc' to this list when ready + + +SHELL = @SHELL@ + srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = . -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/config/config.h.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - config/config.guess config/config.sub config/depcomp \ - config/install-sh config/missing config/mkinstalldirs -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = config_auto.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -# TODO(luc) Add 'doc' to this list when ready -SUBDIRS = ccstruct ccutil classify cutil dict display image textord viewer wordrec ccmain training tessdata dlltest -EXTRA_DIST = tessdata phototest.tif tesseract.dsp tesseract.dsw StdAfx.cpp StdAfx.h tessdll.cpp tessdll.h tessdll.dsp tessdll.dll tessdll.lib tesseract.exe dlltest.exe ReleaseNotes -all: config_auto.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive +SUBDIRS = ccstruct ccutil classify cutil dict display image textord viewer wordrec ccmain training tessdata testing dlltest + +EXTRA_DIST = eurotext.tif phototest.tif ReleaseNotes tesseract.spec config tesseract.dsp tesseract.dsw tesseract.vcproj tesseract.sln StdAfx.cpp StdAfx.h tessdll.cpp tessdll.h tessdll.dsp tessdll.vcproj + +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = config_auto.h +CONFIG_CLEAN_FILES = +DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ +Makefile.in NEWS acinclude.m4 aclocal.m4 config/config.h.in \ +config/stamp-h.in configure configure.ac + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect .SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ - cd $(srcdir) && $(AUTOMAKE) --gnu \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac acinclude.m4 + cd $(srcdir) && $(ACLOCAL) -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -config_auto.h: stamp-h1 +config_auto.h: stamp-h @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ + rm -f stamp-h; \ + $(MAKE) stamp-h; \ else :; fi - -stamp-h1: $(top_srcdir)/config/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config_auto.h -$(top_srcdir)/config/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +stamp-h: $(srcdir)/config/config.h.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=config_auto.h:config/config.h.in \ + $(SHELL) ./config.status + @echo timestamp > stamp-h 2> /dev/null +$(srcdir)/config/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in + @if test ! -f $@; then \ + rm -f $(srcdir)/stamp-h.in; \ + $(MAKE) $(srcdir)/stamp-h.in; \ + else :; fi +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) - rm -f stamp-h1 - touch $@ + @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null + +mostlyclean-hdr: + +clean-hdr: distclean-hdr: - -rm -f config_auto.h stamp-h1 -uninstall-info-am: + -rm -f config_auto.h + +maintainer-clean-hdr: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -237,14 +144,13 @@ uninstall-info-am: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -256,7 +162,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -264,24 +170,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -291,317 +186,183 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: +distdir = $(PACKAGE_NAME)-$(PACKAGE_VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) distdir: $(DISTFILES) - $(am__remove_distdir) + -rm -rf $(distdir) mkdir $(distdir) - $(mkdir_p) $(distdir)/config - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile config_auto.h -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +all-recursive-am: config_auto.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +install-exec-am: install-exec: install-exec-recursive + +install-data-am: install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile config_auto.h +all-redirect: all-recursive-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: +clean-am: clean-hdr clean-tags clean-generic mostlyclean-am -ps: ps-recursive +clean: clean-recursive -ps-am: +distclean-am: distclean-hdr distclean-tags distclean-generic clean-am -uninstall-am: uninstall-info-am +distclean: distclean-recursive + -rm -f config.status -uninstall-info: uninstall-info-recursive +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ - check-am clean clean-generic clean-recursive ctags \ - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \ - dist-shar dist-tarZ dist-zip distcheck distclean \ - distclean-generic distclean-hdr distclean-recursive \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-info-am +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +install-data-recursive uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean #EXTRA_DIST = doc/html doc/@PACKAGE_NAME@_@PACKAGE_VERSION@.pdf doc/@PACKAGE_NAME@_@PACKAGE_VERSION@.ps.gz @@ -615,6 +376,7 @@ dist-hook: rm -rf `find $(distdir) -name configure.ac` rm -rf `find $(distdir) -name acinclude.m4` rm -rf `find $(distdir) -name aclocal.m4` + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/ccmain/Makefile.in b/ccmain/Makefile.in index 5c887defca..50baaf6669 100644 --- a/ccmain/Makefile.in +++ b/ccmain/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,397 +10,243 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ - +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -bin_PROGRAMS = tesseract$(EXEEXT) -subdir = ccmain -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_main_a_AR = $(AR) $(ARFLAGS) -libtesseract_main_a_LIBADD = -am_libtesseract_main_a_OBJECTS = tessedit.$(OBJEXT) \ - adaptions.$(OBJEXT) applybox.$(OBJEXT) baseapi.$(OBJEXT) \ - blobcmp.$(OBJEXT) callnet.$(OBJEXT) charcut.$(OBJEXT) \ - charsample.$(OBJEXT) control.$(OBJEXT) docqual.$(OBJEXT) \ - expandblob.$(OBJEXT) fixspace.$(OBJEXT) fixxht.$(OBJEXT) \ - imgscale.$(OBJEXT) matmatch.$(OBJEXT) output.$(OBJEXT) \ - paircmp.$(OBJEXT) reject.$(OBJEXT) scaleimg.$(OBJEXT) \ - tessbox.$(OBJEXT) tessvars.$(OBJEXT) tfacepp.$(OBJEXT) \ - tstruct.$(OBJEXT) werdit.$(OBJEXT) -libtesseract_main_a_OBJECTS = $(am_libtesseract_main_a_OBJECTS) -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -PROGRAMS = $(bin_PROGRAMS) -am_tesseract_OBJECTS = tesseractmain.$(OBJEXT) -tesseract_OBJECTS = $(am_tesseract_OBJECTS) -tesseract_DEPENDENCIES = libtesseract_main.a \ - ../display/libtesseract_display.a \ - ../textord/libtesseract_textord.a \ - ../wordrec/libtesseract_wordrec.a \ - ../classify/libtesseract_classify.a \ - ../dict/libtesseract_dict.a ../viewer/libtesseract_viewer.a \ - ../image/libtesseract_image.a ../cutil/libtesseract_cutil.a \ - ../ccstruct/libtesseract_ccstruct.a \ - ../ccutil/libtesseract_ccutil.a -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_main_a_SOURCES) $(tesseract_SOURCES) -DIST_SOURCES = $(libtesseract_main_a_SOURCES) $(tesseract_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = -AM_CPPFLAGS = \ - -I$(top_srcdir)/ccutil -I$(top_srcdir)/ccstruct \ - -I$(top_srcdir)/image -I$(top_srcdir)/viewer \ - -I$(top_srcdir)/ccops -I$(top_srcdir)/dict \ - -I$(top_srcdir)/classify -I$(top_srcdir)/display \ - -I$(top_srcdir)/wordrec -I$(top_srcdir)/cutil \ - -I$(top_srcdir)/textord - -include_HEADERS = \ - adaptions.h applybox.h baseapi.h blobcmp.h \ - callnet.h charcut.h \ - control.h docqual.h expandblob.h fixspace.h fixxht.h \ - imgscale.h matmatch.h output.h paircmp.h reject.h scaleimg.h \ - tessbox.h tessedit.h tesseractmain.h tessvars.h tfacep.h \ - tessembedded.h tfacepp.h tstruct.h werdit.h - -lib_LIBRARIES = libtesseract_main.a -libtesseract_main_a_SOURCES = \ - tessedit.cpp adaptions.cpp applybox.cpp \ - baseapi.cpp blobcmp.cpp \ - callnet.cpp charcut.cpp charsample.cpp control.cpp \ - docqual.cpp expandblob.cpp fixspace.cpp fixxht.cpp \ - imgscale.cpp matmatch.cpp output.cpp paircmp.cpp \ - reject.cpp scaleimg.cpp tessbox.cpp tessvars.cpp \ - tfacepp.cpp tstruct.cpp werdit.cpp +AM_CPPFLAGS = -I$(top_srcdir)/ccutil -I$(top_srcdir)/ccstruct -I$(top_srcdir)/image -I$(top_srcdir)/viewer -I$(top_srcdir)/ccops -I$(top_srcdir)/dict -I$(top_srcdir)/classify -I$(top_srcdir)/display -I$(top_srcdir)/wordrec -I$(top_srcdir)/cutil -I$(top_srcdir)/textord + + +include_HEADERS = adaptions.h applybox.h baseapi.h blobcmp.h callnet.h charcut.h control.h docqual.h expandblob.h fixspace.h fixxht.h imgscale.h matmatch.h output.h paircmp.h reject.h scaleimg.h tessbox.h tessedit.h tesseractmain.h tessvars.h tfacep.h tessembedded.h tfacepp.h tstruct.h werdit.h + +lib_LIBRARIES = libtesseract_main.a libtesseract_full.a +libtesseract_main_a_SOURCES = tessedit.cpp adaptions.cpp applybox.cpp baseapi.cpp blobcmp.cpp callnet.cpp charcut.cpp charsample.cpp control.cpp docqual.cpp expandblob.cpp fixspace.cpp fixxht.cpp imgscale.cpp matmatch.cpp output.cpp paircmp.cpp reject.cpp scaleimg.cpp tessbox.cpp tessvars.cpp tfacepp.cpp tstruct.cpp werdit.cpp + +libtesseract_full_a_SOURCES = tesseractfull.cc + +bin_PROGRAMS = tesseract tesseract_SOURCES = tesseractmain.cpp -tesseract_LDADD = \ - libtesseract_main.a \ - ../display/libtesseract_display.a \ - ../textord/libtesseract_textord.a \ - ../wordrec/libtesseract_wordrec.a \ - ../classify/libtesseract_classify.a \ - ../dict/libtesseract_dict.a \ - ../viewer/libtesseract_viewer.a \ - ../image/libtesseract_image.a \ - ../cutil/libtesseract_cutil.a \ - ../ccstruct/libtesseract_ccstruct.a \ - ../ccutil/libtesseract_ccutil.a +tesseract_LDADD = libtesseract_full.a + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_main_a_LIBADD = +libtesseract_main_a_OBJECTS = tessedit.o adaptions.o applybox.o \ +baseapi.o blobcmp.o callnet.o charcut.o charsample.o control.o \ +docqual.o expandblob.o fixspace.o fixxht.o imgscale.o matmatch.o \ +output.o paircmp.o reject.o scaleimg.o tessbox.o tessvars.o tfacepp.o \ +tstruct.o werdit.o +libtesseract_full_a_LIBADD = +libtesseract_full_a_OBJECTS = tesseractfull.o +AR = ar +PROGRAMS = $(bin_PROGRAMS) + +tesseract_OBJECTS = tesseractmain.o +tesseract_DEPENDENCIES = libtesseract_full.a +tesseract_LDFLAGS = +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) -all: all-recursive +DIST_COMMON = Makefile.am Makefile.in + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/adaptions.P .deps/applybox.P .deps/baseapi.P \ +.deps/blobcmp.P .deps/callnet.P .deps/charcut.P .deps/charsample.P \ +.deps/control.P .deps/docqual.P .deps/expandblob.P .deps/fixspace.P \ +.deps/fixxht.P .deps/imgscale.P .deps/matmatch.P .deps/output.P \ +.deps/paircmp.P .deps/reject.P .deps/scaleimg.P .deps/tessbox.P \ +.deps/tessedit.P .deps/tesseractfull.P .deps/tesseractmain.P \ +.deps/tessvars.P .deps/tfacepp.P .deps/tstruct.P .deps/werdit.P +SOURCES = $(libtesseract_main_a_SOURCES) $(libtesseract_full_a_SOURCES) $(tesseract_SOURCES) +OBJECTS = $(libtesseract_main_a_OBJECTS) $(libtesseract_full_a_OBJECTS) $(tesseract_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ccmain/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu ccmain/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cc .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu ccmain/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_main.a: $(libtesseract_main_a_OBJECTS) $(libtesseract_main_a_DEPENDENCIES) +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libtesseract_main.a: $(libtesseract_main_a_OBJECTS) $(libtesseract_main_a_DEPENDENCIES) -rm -f libtesseract_main.a - $(libtesseract_main_a_AR) libtesseract_main.a $(libtesseract_main_a_OBJECTS) $(libtesseract_main_a_LIBADD) + $(AR) cru libtesseract_main.a $(libtesseract_main_a_OBJECTS) $(libtesseract_main_a_LIBADD) $(RANLIB) libtesseract_main.a + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ done -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -tesseract$(EXEEXT): $(tesseract_OBJECTS) $(tesseract_DEPENDENCIES) - @rm -f tesseract$(EXEEXT) +tesseract: $(tesseract_OBJECTS) $(tesseract_DEPENDENCIES) + @rm -f tesseract $(CXXLINK) $(tesseract_LDFLAGS) $(tesseract_OBJECTS) $(tesseract_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adaptions.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/applybox.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baseapi.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blobcmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callnet.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charcut.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charsample.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/docqual.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expandblob.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fixspace.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fixxht.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imgscale.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/output.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paircmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reject.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scaleimg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tessbox.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tessedit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tesseractmain.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tessvars.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tfacepp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstruct.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/werdit.Po@am__quote@ - +.cc.o: + $(CXXCOMPILE) -c $< .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -411,14 +255,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -430,7 +273,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -438,24 +281,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -465,221 +297,260 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +mostlyclean-tags: + +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = ccmain distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu ccmain/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cc + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cc + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-binPROGRAMS install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-binPROGRAMS \ + uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \ + $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-binPROGRAMS clean-generic clean-libLIBRARIES \ - mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-binPROGRAMS install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-binPROGRAMS mostlyclean-tags \ + mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-binPROGRAMS clean-tags \ + clean-depend clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile \ + distclean-binPROGRAMS distclean-tags distclean-depend \ + distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-binPROGRAMS \ + maintainer-clean-tags maintainer-clean-depend \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile mostlyclean-binPROGRAMS \ +distclean-binPROGRAMS clean-binPROGRAMS maintainer-clean-binPROGRAMS \ +uninstall-binPROGRAMS install-binPROGRAMS uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + +libtesseract_full.o: tesseractfull.o \ + libtesseract_main.a \ + ../display/libtesseract_display.a \ + ../textord/libtesseract_textord.a \ + ../wordrec/libtesseract_wordrec.a \ + ../classify/libtesseract_classify.a \ + ../dict/libtesseract_dict.a \ + ../viewer/libtesseract_viewer.a \ + ../image/libtesseract_image.a \ + ../cutil/libtesseract_cutil.a \ + ../ccstruct/libtesseract_ccstruct.a \ + ../ccutil/libtesseract_ccutil.a + ld -r -o libtesseract_full.o tesseractfull.o \ + libtesseract_main.a \ + ../display/libtesseract_display.a \ + ../textord/libtesseract_textord.a \ + ../wordrec/libtesseract_wordrec.a \ + ../classify/libtesseract_classify.a \ + ../dict/libtesseract_dict.a \ + ../viewer/libtesseract_viewer.a \ + ../image/libtesseract_image.a \ + ../cutil/libtesseract_cutil.a \ + ../ccstruct/libtesseract_ccstruct.a \ + ../ccutil/libtesseract_ccutil.a -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-binPROGRAMS clean-generic clean-libLIBRARIES \ - clean-recursive ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-recursive \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +libtesseract_full.a : libtesseract_full.o + ar cru libtesseract_full.a libtesseract_full.o ; ranlib libtesseract_full.a # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/ccmain/adaptions.cpp b/ccmain/adaptions.cpp index 913dd43b2b..9182df7b3c 100644 --- a/ccmain/adaptions.cpp +++ b/ccmain/adaptions.cpp @@ -137,7 +137,9 @@ BOOL8 word_adaptable( //should we adapt? // if (flags.bit (CHECK_AMBIG_WERD) && test_ambig_word (word)) if (flags.bit (CHECK_AMBIG_WERD) && - !NoDangerousAmbig(word->best_choice->string().string(), NULL)) + !NoDangerousAmbig(word->best_choice->string().string(), + word->best_choice->lengths().string(), + NULL)) return FALSE; return status; diff --git a/ccmain/applybox.h b/ccmain/applybox.h index 14533f2f59..a2fe175677 100644 --- a/ccmain/applybox.h +++ b/ccmain/applybox.h @@ -24,6 +24,7 @@ #include "ocrblock.h" #include "ocrrow.h" #include "notdll.h" +#include "unichar.h" extern BOOL_VAR_H (applybox_rebalance, TRUE, "Drop dead"); extern INT_VAR_H (applybox_debug, 0, "Debug level"); @@ -37,7 +38,7 @@ void clear_any_old_text( //remove correct text ); BOOL8 read_next_box(FILE* box_file, // BOX *box, - char *ch); + UNICHAR_ID *uch_id); ROW *find_row_of_box( // BLOCK_LIST *block_list, //real blocks BOX box, //from boxfile @@ -46,7 +47,7 @@ ROW *find_row_of_box( // INT16 resegment_box( // ROW *row, BOX box, - char *ch, + UNICHAR_ID uch_id, INT16 block_id, INT16 row_id, INT16 boxfile_lineno, @@ -58,13 +59,13 @@ void tidy_up( // INT16 &unlabelled_words, INT16 *tgt_char_counts, INT16 &rebalance_count, - char &min_char, + UNICHAR_ID *min_uch_id, INT16 &min_samples, INT16 &final_labelled_blob_count); void report_failed_box(INT16 boxfile_lineno, INT16 boxfile_charno, BOX box, - char *box_ch, + const char *box_ch, const char *err_msg); void apply_box_training(BLOCK_LIST *block_list); void apply_box_testing(BLOCK_LIST *block_list); diff --git a/ccmain/blobcmp.cpp b/ccmain/blobcmp.cpp index c0c8e34e86..ebfff6d536 100644 --- a/ccmain/blobcmp.cpp +++ b/ccmain/blobcmp.cpp @@ -27,7 +27,7 @@ #include "const.h" #include "tessvars.h" -#define CMP_CLASS 'x' +#define CMP_CLASS 1 /********************************************************************** * compare_tess_blobs diff --git a/ccmain/control.h b/ccmain/control.h index 5656aac8b2..5a2be2dbb2 100644 --- a/ccmain/control.h +++ b/ccmain/control.h @@ -155,11 +155,11 @@ void fix_rep_char( //Repeated char word WERD_RES *word //word to do ); void fix_quotes( //make double quotes - char *string, //string to fix + WERD_CHOICE *choice, //string to fix WERD *word, //word to do //char choices BLOB_CHOICE_LIST_CLIST *blob_choices); void fix_hyphens( //crunch double hyphens - char *string, //string to fix + WERD_CHOICE *choice, //string to fix WERD *word, //word to do //char choices BLOB_CHOICE_LIST_CLIST *blob_choices); void merge_blobs( //combine 2 blobs @@ -175,7 +175,8 @@ void choice_dump_tester( //dump chars in word BLOB_CHOICE_LIST *ratings //list of results ); WERD *make_bln_copy(WERD *src_word, ROW *row, float x_height, DENORM *denorm); -ACCEPTABLE_WERD_TYPE acceptable_word_string(const char *s); +ACCEPTABLE_WERD_TYPE acceptable_word_string(const char *s, + const char *lengths); BOOL8 check_debug_pt(WERD_RES *word, int location); void set_word_fonts( //good chars in word WERD_RES *word, //word to adapt to //detailed results diff --git a/ccmain/docqual.cpp b/ccmain/docqual.cpp index a889ca4ca5..1e72b29d05 100644 --- a/ccmain/docqual.cpp +++ b/ccmain/docqual.cpp @@ -26,6 +26,7 @@ #include "tessvars.h" #include "genblob.h" #include "secname.h" +#include "globals.h" #define EXTERN @@ -206,7 +207,7 @@ INT16 word_blob_quality( //Blob seg changes * crude_match_blobs() * Check bounding boxes are the same and the number of outlines are the same. *************************************************************************/ -BOOL8 crude_match_blobs(PBLOB *blob1, PBLOB *blob2) { +BOOL8 crude_match_blobs(PBLOB *blob1, PBLOB *blob2) { BOX box1 = blob1->bounding_box (); BOX box2 = blob2->bounding_box (); @@ -332,7 +333,7 @@ void word_char_quality( //Blob seg changes * unrej_good_chs() * Unreject POTENTIAL rejects if the blob passes the blob and outline checks *************************************************************************/ -void unrej_good_chs(WERD_RES *word, ROW *row) { +void unrej_good_chs(WERD_RES *word, ROW *row) { WERD *bln_word; //BL norm init word TWERD *tessword; //tess format WERD *init_word; //BL norm init word @@ -406,7 +407,7 @@ void unrej_good_chs(WERD_RES *word, ROW *row) { } -void print_boxes(WERD *word) { +void print_boxes(WERD *word) { PBLOB_IT it; BOX box; @@ -418,7 +419,7 @@ void print_boxes(WERD *word) { } -INT16 count_outline_errs(char c, INT16 outline_count) { +INT16 count_outline_errs(char c, INT16 outline_count) { int expected_outline_count; if (STRING (outlines_odd).contains (c)) @@ -434,8 +435,8 @@ INT16 count_outline_errs(char c, INT16 outline_count) { void quality_based_rejection(PAGE_RES_IT &page_res_it, BOOL8 good_quality_doc) { if ((tessedit_good_quality_unrej && good_quality_doc)) - unrej_good_quality_words(page_res_it); - doc_and_block_rejection(page_res_it, good_quality_doc); + unrej_good_quality_words(page_res_it); + doc_and_block_rejection(page_res_it, good_quality_doc); page_res_it.restart_page (); while (page_res_it.word () != NULL) { @@ -444,8 +445,8 @@ void quality_based_rejection(PAGE_RES_IT &page_res_it, } if (unlv_tilde_crunching) { - tilde_crunch(page_res_it); - tilde_delete(page_res_it); + tilde_crunch(page_res_it); + tilde_delete(page_res_it); } } @@ -486,7 +487,8 @@ void unrej_good_quality_words( //unreject potential word = page_res_it.word (); if (word->reject_map.quality_recoverable_rejects () && (tessedit_unrej_any_wd || - acceptable_word_string (word->best_choice->string ().string ()) + acceptable_word_string (word->best_choice->string ().string (), + word->best_choice->lengths().string()) != AC_UNACCEPTABLE)) { unrej_good_chs (word, page_res_it.row ()->row); } @@ -546,7 +548,7 @@ void doc_and_block_rejection( //reject big chunks if ((page_res_it.page_res->rej_count * 100.0 / page_res_it.page_res->char_count) > tessedit_reject_doc_percent) { - reject_whole_page(page_res_it); + reject_whole_page(page_res_it); #ifndef SECURE_NAMES if (tessedit_debug_doc_rejection) { tprintf ("REJECT ALL #chars: %d #Rejects: %d; \n", @@ -596,7 +598,9 @@ void doc_and_block_rejection( //reject big chunks tessedit_preserve_min_wd_len) && (acceptable_word_string - (page_res_it.word ()->best_choice->string (). + (page_res_it.word ()->best_choice->string (). + string (), + page_res_it.word ()->best_choice->lengths (). string ()) != AC_UNACCEPTABLE)) { word_char_quality (page_res_it.word (), page_res_it.row ()->row, @@ -684,7 +688,9 @@ void doc_and_block_rejection( //reject big chunks && (acceptable_word_string (page_res_it.word ()->best_choice-> - string ().string ()) != AC_UNACCEPTABLE)) { + string ().string (), + page_res_it.word ()->best_choice-> + lengths ().string ()) != AC_UNACCEPTABLE)) { word_char_quality (page_res_it.word (), page_res_it.row ()->row, &char_quality, @@ -709,7 +715,7 @@ void doc_and_block_rejection( //reject big chunks 1)) page_res_it.word ()->reject_spaces = TRUE; page_res_it.word ()->reject_map. - rej_word_row_rej(); + rej_word_row_rej(); } prev_word_rejected = rej_word; page_res_it.forward (); @@ -740,7 +746,7 @@ void doc_and_block_rejection( //reject big chunks * *************************************************************************/ -void reject_whole_page(PAGE_RES_IT &page_res_it) { +void reject_whole_page(PAGE_RES_IT &page_res_it) { page_res_it.restart_page (); while (page_res_it.word () != NULL) { page_res_it.word ()->reject_map.rej_word_doc_rej (); @@ -751,7 +757,7 @@ void reject_whole_page(PAGE_RES_IT &page_res_it) { } -void tilde_crunch(PAGE_RES_IT &page_res_it) { +void tilde_crunch(PAGE_RES_IT &page_res_it) { WERD_RES *word; GARBAGE_LEVEL garbage_level; PAGE_RES_IT copy_it; @@ -765,10 +771,10 @@ void tilde_crunch(PAGE_RES_IT &page_res_it) { word = page_res_it.word (); if (crunch_early_convert_bad_unlv_chs) - convert_bad_unlv_chs(word); + convert_bad_unlv_chs(word); if (crunch_early_merge_tess_fails) - merge_tess_fails(word); + merge_tess_fails(word); if (word->reject_map.accept_count () != 0) { found_terrible_word = FALSE; @@ -835,7 +841,7 @@ void tilde_crunch(PAGE_RES_IT &page_res_it) { } -BOOL8 terrible_word_crunch(WERD_RES *word, GARBAGE_LEVEL garbage_level) { +BOOL8 terrible_word_crunch(WERD_RES *word, GARBAGE_LEVEL garbage_level) { float rating_per_ch; int adjusted_len; int crunch_mode = 0; @@ -878,14 +884,16 @@ BOOL8 potential_word_crunch(WERD_RES *word, BOOL8 ok_dict_word) { float rating_per_ch; int adjusted_len; - char *str = (char *) word->best_choice->string ().string (); + const char *str = word->best_choice->string ().string (); + const char *lengths = word->best_choice->lengths ().string (); BOOL8 word_crunchable; int poor_indicator_count = 0; word_crunchable = !crunch_leave_accept_strings || (word->reject_map.length () < 3) || - ((acceptable_word_string (str) == AC_UNACCEPTABLE) && !ok_dict_word); + ((acceptable_word_string (str, lengths) == AC_UNACCEPTABLE) && + !ok_dict_word); adjusted_len = word->reject_map.length (); if (adjusted_len > 10) @@ -920,7 +928,7 @@ BOOL8 potential_word_crunch(WERD_RES *word, } -void tilde_delete(PAGE_RES_IT &page_res_it) { +void tilde_delete(PAGE_RES_IT &page_res_it) { WERD_RES *word; PAGE_RES_IT copy_it; BOOL8 deleting_from_bol = FALSE; @@ -986,7 +994,7 @@ void tilde_delete(PAGE_RES_IT &page_res_it) { determine if the word is deletable. */ if (!crunch_early_merge_tess_fails) - merge_tess_fails(word); + merge_tess_fails(word); page_res_it.forward (); } } @@ -996,16 +1004,20 @@ void convert_bad_unlv_chs( //word to do WERD_RES *word_res) { char *ptr; //string ptr int i; + int offset; ptr = (char *) word_res->best_choice->string ().string (); - for (i = 0; i < word_res->reject_map.length (); i++) { - if (ptr[i] == '~') { - ptr[i] = '-'; + for (i = 0, offset = 0; i < word_res->reject_map.length (); + offset += word_res->best_choice->lengths ()[i++]) { + if (word_res->best_choice->lengths ()[i] == 1 && + ptr[offset] == '~') { + ptr[offset] = '-'; if (word_res->reject_map[i].accepted ()) word_res->reject_map[i].setrej_unlv_rej (); } - if (ptr[i] == '^') { - ptr[i] = ' '; + if (word_res->best_choice->lengths ()[i] == 1 && + ptr[offset] == '^') { + ptr[offset] = ' '; if (word_res->reject_map[i].accepted ()) word_res->reject_map[i].setrej_unlv_rej (); } @@ -1022,36 +1034,39 @@ void convert_bad_unlv_chs( //word to do void merge_tess_fails( //word to do WERD_RES *word_res) { char *ptr; //string ptr + char *ptr_lengths; //lengths ptr PBLOB_IT blob_it; //blobs int i = 0; int len; - len = strlen (word_res->best_choice->string ().string ()); + len = strlen (word_res->best_choice->lengths ().string ()); ASSERT_HOST (word_res->reject_map.length () == len); ASSERT_HOST (word_res->outword->blob_list ()->length () == len); ptr = (char *) word_res->best_choice->string ().string (); + ptr_lengths = (char *) word_res->best_choice->lengths ().string (); blob_it = word_res->outword->blob_list (); while (*ptr != '\0') { if ((*ptr == ' ') && (*(ptr + 1) == ' ')) { strcpy (ptr + 1, ptr + 2); //shuffle up + strcpy (ptr_lengths + 1, ptr_lengths + 2); //shuffle up word_res->reject_map.remove_pos (i); merge_blobs (blob_it.data_relative (1), blob_it.data ()); delete blob_it.extract (); //get rid of spare } else { i++; - ptr++; + ptr += *(ptr_lengths++); } blob_it.forward (); } - len = strlen (word_res->best_choice->string ().string ()); + len = strlen (word_res->best_choice->lengths ().string ()); ASSERT_HOST (word_res->reject_map.length () == len); ASSERT_HOST (word_res->outword->blob_list ()->length () == len); } -GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { +GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { enum STATES { JUNK, @@ -1062,7 +1077,8 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { SUBSEQUENT_LOWER, SUBSEQUENT_NUM }; - char *str = (char *) word->best_choice->string ().string (); + const char *str = word->best_choice->string ().string (); + const char *lengths = word->best_choice->lengths ().string (); STATES state = JUNK; int len = 0; int isolated_digits = 0; @@ -1071,7 +1087,7 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { int tess_rejs = 0; int dodgy_chars = 0; int ok_chars; - char last_char = ' '; + UNICHAR_ID last_char = -1; int alpha_repetition_count = 0; int longest_alpha_repetition_count = 0; int longest_lower_run_len = 0; @@ -1081,9 +1097,9 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { int total_alpha_count = 0; int total_digit_count = 0; - for (; *str != '\0'; str++) { + for (; *str != '\0'; str += *(lengths++)) { len++; - if (isupper (*str)) { + if (unicharset.get_isupper (str, *lengths)) { total_alpha_count++; switch (state) { case SUBSEQUENT_UPPER: @@ -1092,14 +1108,14 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { upper_string_count++; if (longest_upper_run_len < upper_string_count) longest_upper_run_len = upper_string_count; - if (last_char == *str) { + if (last_char == unicharset.unichar_to_id(str, *lengths)) { alpha_repetition_count++; if (longest_alpha_repetition_count < alpha_repetition_count) { longest_alpha_repetition_count = alpha_repetition_count; } } else { - last_char = *str; + last_char = unicharset.unichar_to_id(str, *lengths); alpha_repetition_count = 1; } break; @@ -1107,13 +1123,13 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { isolated_digits++; default: state = FIRST_UPPER; - last_char = *str; + last_char = unicharset.unichar_to_id(str, *lengths); alpha_repetition_count = 1; upper_string_count = 1; break; } } - else if (islower (*str)) { + else if (unicharset.get_islower (str, *lengths)) { total_alpha_count++; switch (state) { case SUBSEQUENT_LOWER: @@ -1122,14 +1138,14 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { lower_string_count++; if (longest_lower_run_len < lower_string_count) longest_lower_run_len = lower_string_count; - if (last_char == *str) { + if (last_char == unicharset.unichar_to_id(str, *lengths)) { alpha_repetition_count++; if (longest_alpha_repetition_count < alpha_repetition_count) { longest_alpha_repetition_count = alpha_repetition_count; } } else { - last_char = *str; + last_char = unicharset.unichar_to_id(str, *lengths); alpha_repetition_count = 1; } break; @@ -1137,13 +1153,13 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { isolated_digits++; default: state = FIRST_LOWER; - last_char = *str; + last_char = unicharset.unichar_to_id(str, *lengths); alpha_repetition_count = 1; lower_string_count = 1; break; } } - else if (isdigit (*str)) { + else if (unicharset.get_isdigit (str, *lengths)) { total_digit_count++; switch (state) { case FIRST_NUM: @@ -1159,7 +1175,7 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { } } else { - if (*str == ' ') + if (*lengths == 1 && *str == ' ') tess_rejs++; else bad_char_count++; @@ -1197,7 +1213,7 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { (2 * (total_alpha_count - isolated_alphas) > len) && (longest_alpha_repetition_count < crunch_long_repetitions)) { if ((crunch_accept_ok && - (acceptable_word_string (str) != AC_UNACCEPTABLE)) || + (acceptable_word_string (str, lengths) != AC_UNACCEPTABLE)) || (longest_lower_run_len > crunch_leave_lc_strings) || (longest_upper_run_len > crunch_leave_uc_strings)) return G_NEVER_CRUNCH; @@ -1208,7 +1224,7 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { (word->best_choice->permuter () == FREQ_DAWG_PERM) || (word->best_choice->permuter () == USER_DAWG_PERM) || (word->best_choice->permuter () == NUMBER_PERM) || - (acceptable_word_string (str) != AC_UNACCEPTABLE) || ok_dict_word)) + (acceptable_word_string (str, lengths) != AC_UNACCEPTABLE) || ok_dict_word)) return G_OK; ok_chars = len - bad_char_count - isolated_digits - @@ -1265,7 +1281,7 @@ GARBAGE_LEVEL garbage_word(WERD_RES *word, BOOL8 ok_dict_word) { * >75% of the outline BBs have longest dimension < 0.5xht *************************************************************************/ -CRUNCH_MODE word_deletable(WERD_RES *word, INT16 &delete_mode) { +CRUNCH_MODE word_deletable(WERD_RES *word, INT16 &delete_mode) { int word_len = word->reject_map.length (); float rating_per_ch; BOX box; //BB of word @@ -1334,7 +1350,7 @@ CRUNCH_MODE word_deletable(WERD_RES *word, INT16 &delete_mode) { } -INT16 failure_count(WERD_RES *word) { +INT16 failure_count(WERD_RES *word) { char *str = (char *) word->best_choice->string ().string (); int tess_rejs = 0; @@ -1346,7 +1362,7 @@ INT16 failure_count(WERD_RES *word) { } -BOOL8 noise_outlines(WERD *word) { +BOOL8 noise_outlines(WERD *word) { PBLOB_IT blob_it; OUTLINE_IT outline_it; BOX box; //BB of outline @@ -1384,13 +1400,17 @@ void insert_rej_cblobs( //word to do WERD_RES *word) { PBLOB_IT blob_it; //blob iterator PBLOB_IT rej_blob_it; - const STRING *wordstr; + const STRING *word_str; + const STRING *word_lengths; int old_len; int rej_len; - char new_str[512]; + char new_str[512 * UNICHAR_LEN]; + char new_lengths[512]; REJMAP new_map; int i = 0; //new_str index int j = 0; //old_str index + int i_offset = 0; //new_str offset + int j_offset = 0; //old_str offset int new_len; gblob_sort_list (word->outword->rej_blob_list (), TRUE); @@ -1399,8 +1419,9 @@ void insert_rej_cblobs( //word to do return; rej_len = rej_blob_it.length (); blob_it.set_to_list (word->outword->blob_list ()); - wordstr = &(word->best_choice->string ()); - old_len = wordstr->length (); + word_str = &(word->best_choice->string ()); + word_lengths = &(word->best_choice->lengths ()); + old_len = word->best_choice->lengths().length (); ASSERT_HOST (word->reject_map.length () == old_len); ASSERT_HOST (blob_it.length () == old_len); if ((old_len + rej_len) > 511) @@ -1418,26 +1439,32 @@ void insert_rej_cblobs( //word to do blob_it.add_before_stay_put (rej_blob_it.extract ()); if (!rej_blob_it.empty ()) rej_blob_it.forward (); - new_str[i] = ' '; + new_str[i_offset] = ' '; + new_lengths[i] = 1; new_map[i].setrej_rej_cblob (); - i++; + i_offset += new_lengths[i++]; } else { - new_str[i] = (*wordstr)[j]; + strncpy(new_str + i_offset, &(*word_str)[j_offset], + (*word_lengths)[j]); + new_lengths[i] = (*word_lengths)[j]; new_map[i] = word->reject_map[j]; - i++; - j++; + i_offset += new_lengths[i++]; + j_offset += (*word_lengths)[j++]; blob_it.forward (); } } /* Add any extra normal blobs to strings */ - while (j < wordstr->length ()) { - new_str[i] = (*wordstr)[j]; + while (j < word_lengths->length ()) { + strncpy(new_str + i_offset, &(*word_str)[j_offset], + (*word_lengths)[j]); + new_lengths[i] = (*word_lengths)[j]; new_map[i] = word->reject_map[j]; - i++; - j++; + i_offset += new_lengths[i++]; + j_offset += (*word_lengths)[j++]; } - new_str[i] = '\0'; + new_str[i_offset] = '\0'; + new_lengths[i] = 0; /* tprintf( "\nOld len %d; New len %d; New str \"%s\"; New map \"%s\"\n", @@ -1446,8 +1473,9 @@ void insert_rej_cblobs( //word to do ASSERT_HOST (i == blob_it.length ()); ASSERT_HOST (i == old_len + rej_len); word->reject_map = new_map; - *((STRING *) wordstr) = new_str; - new_len = strlen (word->best_choice->string ().string ()); + *((STRING *) word_str) = new_str; + *((STRING *) word_lengths) = new_lengths; + new_len = word->best_choice->lengths ().length (); ASSERT_HOST (word->reject_map.length () == new_len); ASSERT_HOST (word->outword->blob_list ()->length () == new_len); } diff --git a/ccmain/fixspace.cpp b/ccmain/fixspace.cpp index c3e8439a30..b9fe9479df 100644 --- a/ccmain/fixspace.cpp +++ b/ccmain/fixspace.cpp @@ -20,15 +20,16 @@ **********************************************************************/ #include "mfcpch.h" -#include -#include "reject.h" -#include "statistc.h" -#include "genblob.h" -#include "control.h" -#include "fixspace.h" -#include "tessvars.h" -#include "tessbox.h" -#include "secname.h" +#include +#include "reject.h" +#include "statistc.h" +#include "genblob.h" +#include "control.h" +#include "fixspace.h" +#include "tessvars.h" +#include "tessbox.h" +#include "secname.h" +#include "globals.h" #define EXTERN @@ -168,10 +169,10 @@ void fix_fuzzy_space_list( //space explorer dump_words (best_perm, best_score, 1, improved); if (best_score != PERFECT_WERDS) - initialise_search(best_perm, current_perm); + initialise_search(best_perm, current_perm); while ((best_score != PERFECT_WERDS) && !current_perm.empty ()) { - match_current_words(current_perm, row); + match_current_words(current_perm, row); current_score = eval_word_spacing (current_perm); dump_words (current_perm, current_score, 2, improved); if (current_score > best_score) { @@ -181,15 +182,15 @@ void fix_fuzzy_space_list( //space explorer improved = TRUE; } if (current_score < PERFECT_WERDS) - transform_to_next_perm(current_perm); + transform_to_next_perm(current_perm); } dump_words (best_perm, best_score, 3, improved); } -void initialise_search(WERD_RES_LIST &src_list, WERD_RES_LIST &new_list) { - WERD_RES_IT src_it(&src_list); - WERD_RES_IT new_it(&new_list); +void initialise_search(WERD_RES_LIST &src_list, WERD_RES_LIST &new_list) { + WERD_RES_IT src_it(&src_list); + WERD_RES_IT new_it(&new_list); WERD_RES *src_wd; WERD_RES *new_wd; @@ -205,14 +206,14 @@ void initialise_search(WERD_RES_LIST &src_list, WERD_RES_LIST &new_list) { } -void match_current_words(WERD_RES_LIST &words, ROW *row) { - WERD_RES_IT word_it(&words); +void match_current_words(WERD_RES_LIST &words, ROW *row) { + WERD_RES_IT word_it(&words); WERD_RES *word; for (word_it.mark_cycle_pt (); !word_it.cycled_list (); word_it.forward ()) { word = word_it.data (); if ((!word->part_of_combo) && (word->outword == NULL)) - classify_word_pass2(word, row); + classify_word_pass2(word, row); } } @@ -242,13 +243,14 @@ void match_current_words(WERD_RES_LIST &words, ROW *row) { * confirmed. The only score is from the joined 1. "PS7a713/7a" scores 2. * *************************************************************************/ -INT16 eval_word_spacing(WERD_RES_LIST &word_res_list) { - WERD_RES_IT word_res_it(&word_res_list); +INT16 eval_word_spacing(WERD_RES_LIST &word_res_list) { + WERD_RES_IT word_res_it(&word_res_list); INT16 total_score = 0; INT16 word_count = 0; INT16 done_word_count = 0; INT16 word_len; INT16 i; + INT16 offset; WERD_RES *word; //current word INT16 prev_word_score = 0; BOOL8 prev_word_done = FALSE; @@ -283,11 +285,11 @@ INT16 eval_word_spacing(WERD_RES_LIST &word_res_list) { word_len = word->reject_map.length (); current_word_ok_so_far = FALSE; if (!((prev_char_1 && - digit_or_numeric_punct (word, - word->best_choice->string ()[0])) || + digit_or_numeric_punct (word, 0)) || (prev_char_digit && ((word_done && - (word->best_choice->string ()[0] == '1')) || + (word->best_choice->lengths().string()[0] == 1 && + word->best_choice->string ()[0] == '1')) || (!word_done && STRING (conflict_set_I_l_1).contains (word->best_choice-> string ()[0])))))) { @@ -323,24 +325,24 @@ INT16 eval_word_spacing(WERD_RES_LIST &word_res_list) { /* Add 1 to total score for every joined punctuation regardless of context and rejtn */ if (tessedit_prefer_joined_punct) { - for (i = 0, prev_char_punct = FALSE; i < word_len; i++) { + for (i = 0, offset = 0, prev_char_punct = FALSE; i < word_len; + offset += word->best_choice->lengths()[i++]) { current_char_punct = - punct_chars.contains (word->best_choice->string ()[i]); + punct_chars.contains (word->best_choice->string ()[offset]); if (prev_char_punct || (current_char_punct && (i > 0))) total_score++; prev_char_punct = current_char_punct; } } - prev_char_digit = digit_or_numeric_punct (word, - word->best_choice-> - string ()[word_len - 1]); + prev_char_digit = digit_or_numeric_punct (word, word_len - 1); + for (i = 0, offset = 0; i < word_len - 1; + offset += word->best_choice->lengths()[i++]); prev_char_1 = ((word_done - && (word->best_choice->string ()[word_len - 1] == '1')) + && (word->best_choice->string ()[offset] == '1')) || (!word_done && STRING (conflict_set_I_l_1).contains (word->best_choice-> - string ()[word_len - - 1]))); + string ()[offset]))); } /* Find next word */ do @@ -358,11 +360,18 @@ INT16 eval_word_spacing(WERD_RES_LIST &word_res_list) { } -BOOL8 digit_or_numeric_punct(WERD_RES *word, char ch) { - return (isdigit (ch) || +BOOL8 digit_or_numeric_punct(WERD_RES *word, int char_position) { + int i; + int offset; + + for (i = 0, offset = 0; i < char_position; + offset += word->best_choice->lengths()[i++]); + return (unicharset.get_isdigit(word->best_choice->string().string() + offset, + word->best_choice->lengths()[i]) || (fixsp_numeric_fix && (word->best_choice->permuter () == NUMBER_PERM) && - STRING (numeric_punctuation).contains (ch))); + STRING (numeric_punctuation).contains + (word->best_choice->string().string()[offset]))); } @@ -377,9 +386,9 @@ BOOL8 digit_or_numeric_punct(WERD_RES *word, char ch) { * If there are no more gaps then it DELETES the entire list and returns the * empty list to cause termination. *************************************************************************/ -void transform_to_next_perm(WERD_RES_LIST &words) { - WERD_RES_IT word_it(&words); - WERD_RES_IT prev_word_it(&words); +void transform_to_next_perm(WERD_RES_LIST &words) { + WERD_RES_IT word_it(&words); + WERD_RES_IT prev_word_it(&words); WERD_RES *word; WERD_RES *prev_word; WERD_RES *combo; @@ -460,8 +469,8 @@ void transform_to_next_perm(WERD_RES_LIST &words) { } -void dump_words(WERD_RES_LIST &perm, INT16 score, INT16 mode, BOOL8 improved) { - WERD_RES_IT word_res_it(&perm); +void dump_words(WERD_RES_LIST &perm, INT16 score, INT16 mode, BOOL8 improved) { + WERD_RES_IT word_res_it(&perm); static STRING initial_str; if (debug_fix_space_level > 0) { @@ -539,6 +548,7 @@ BOOL8 uniformly_spaced( //sensible word float max_non_space; float normalised_max_nonspace; INT16 i = 0; + INT16 offset = 0; STRING punct_chars = "\"`',.:;"; blob_it.set_to_list (word->outword->blob_list ()); @@ -547,8 +557,9 @@ BOOL8 uniformly_spaced( //sensible word box = blob_it.data ()->bounding_box (); if ((prev_right > -MAX_INT16) && (!fixsp_ignore_punct || - (!punct_chars.contains (word->best_choice->string ()[i - 1]) && - !punct_chars.contains (word->best_choice->string ()[i])))) { + (!punct_chars.contains (word->best_choice->string () + [offset - word->best_choice->lengths()[i - 1]]) && + !punct_chars.contains (word->best_choice->string ()[offset])))) { gap = box.left () - prev_right; if (gap < max_gap) gap_stats.add (gap, 1); @@ -562,7 +573,7 @@ BOOL8 uniformly_spaced( //sensible word } } prev_right = box.right (); - i++; + offset += word->best_choice->lengths()[i++]; } max_non_space = (row->space () + 3 * row->kern ()) / 4; @@ -595,7 +606,7 @@ BOOL8 uniformly_spaced( //sensible word } -BOOL8 fixspace_thinks_word_done(WERD_RES *word) { +BOOL8 fixspace_thinks_word_done(WERD_RES *word) { if (word->done) return TRUE; @@ -627,10 +638,10 @@ BOOL8 fixspace_thinks_word_done(WERD_RES *word) { * Return with the iterator pointing to the same place if the word is unchanged, * or the last of the replacement words. *************************************************************************/ -void fix_sp_fp_word(WERD_RES_IT &word_res_it, ROW *row) { +void fix_sp_fp_word(WERD_RES_IT &word_res_it, ROW *row) { WERD_RES *word_res; WERD_RES_LIST sub_word_list; - WERD_RES_IT sub_word_list_it(&sub_word_list); + WERD_RES_IT sub_word_list_it(&sub_word_list); INT16 blob_index; INT16 new_length; float junk; @@ -654,7 +665,7 @@ void fix_sp_fp_word(WERD_RES_IT &word_res_it, ROW *row) { #endif gblob_sort_list ((PBLOB_LIST *) word_res->word->rej_cblob_list (), FALSE); sub_word_list_it.add_after_stay_put (word_res_it.extract ()); - fix_noisy_space_list(sub_word_list, row); + fix_noisy_space_list(sub_word_list, row); new_length = sub_word_list.length (); word_res_it.add_list_before (&sub_word_list); for (; (!word_res_it.at_last () && (new_length > 1)); new_length--) { @@ -663,11 +674,11 @@ void fix_sp_fp_word(WERD_RES_IT &word_res_it, ROW *row) { } -void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row) { +void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row) { INT16 best_score; - WERD_RES_IT best_perm_it(&best_perm); + WERD_RES_IT best_perm_it(&best_perm); WERD_RES_LIST current_perm; - WERD_RES_IT current_perm_it(¤t_perm); + WERD_RES_IT current_perm_it(¤t_perm); WERD_RES *old_word_res; WERD_RES *new_word_res; INT16 current_score; @@ -689,10 +700,10 @@ void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row) { new_word_res->combination = FALSE; current_perm_it.add_to_end (new_word_res); - break_noisiest_blob_word(current_perm); + break_noisiest_blob_word(current_perm); while ((best_score != PERFECT_WERDS) && !current_perm.empty ()) { - match_current_words(current_perm, row); + match_current_words(current_perm, row); current_score = fp_eval_word_spacing (current_perm); dump_words (current_perm, current_score, 2, improved); if (current_score > best_score) { @@ -702,7 +713,7 @@ void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row) { improved = TRUE; } if (current_score < PERFECT_WERDS) - break_noisiest_blob_word(current_perm); + break_noisiest_blob_word(current_perm); } dump_words (best_perm, best_score, 3, improved); } @@ -713,8 +724,8 @@ void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row) { * Find the word with the blob which looks like the worst noise. * Break the word into two, deleting the noise blob. *************************************************************************/ -void break_noisiest_blob_word(WERD_RES_LIST &words) { - WERD_RES_IT word_it(&words); +void break_noisiest_blob_word(WERD_RES_LIST &words) { + WERD_RES_IT word_it(&words); WERD_RES_IT worst_word_it; float worst_noise_score = 9999; int worst_blob_index = -1; //noisiest blb of noisiest wd @@ -785,7 +796,7 @@ void break_noisiest_blob_word(WERD_RES_LIST &words) { } -INT16 worst_noise_blob(WERD_RES *word_res, float *worst_noise_score) { +INT16 worst_noise_blob(WERD_RES *word_res, float *worst_noise_score) { PBLOB_IT blob_it; INT16 blob_count; float noise_score[512]; @@ -860,7 +871,7 @@ INT16 worst_noise_blob(WERD_RES *word_res, float *worst_noise_score) { } -float blob_noise_score(PBLOB *blob) { +float blob_noise_score(PBLOB *blob) { OUTLINE_IT outline_it; BOX box; //BB of outline INT16 outline_count = 0; @@ -897,7 +908,7 @@ float blob_noise_score(PBLOB *blob) { } -void fixspace_dbg(WERD_RES *word) { +void fixspace_dbg(WERD_RES *word) { BOX box = word->word->bounding_box (); BOOL8 show_map_detail = FALSE; INT16 i; @@ -934,13 +945,14 @@ void fixspace_dbg(WERD_RES *word) { * Penalise any potential noise chars *************************************************************************/ -INT16 fp_eval_word_spacing(WERD_RES_LIST &word_res_list) { - WERD_RES_IT word_it(&word_res_list); +INT16 fp_eval_word_spacing(WERD_RES_LIST &word_res_list) { + WERD_RES_IT word_it(&word_res_list); WERD_RES *word; PBLOB_IT blob_it; INT16 word_length; INT16 score = 0; INT16 i; + INT16 offset; const char *chs; float small_limit = bln_x_height * fixsp_small_outlines_size; @@ -958,8 +970,9 @@ INT16 fp_eval_word_spacing(WERD_RES_LIST &word_res_list) { (word->best_choice->permuter () == USER_DAWG_PERM) || (safe_dict_word (chs) > 0)) { blob_it.set_to_list (word->outword->blob_list ()); - for (i = 0; i < word_length; i++, blob_it.forward ()) { - if ((chs[i] == ' ') || + for (i = 0, offset = 0; i < word_length; + offset += word->best_choice->lengths()[i++], blob_it.forward ()) { + if ((chs[offset] == ' ') || (blob_noise_score (blob_it.data ()) < small_limit)) score -= 1; //penalise possibly erroneous non-space diff --git a/ccmain/fixspace.h b/ccmain/fixspace.h index 75a2892c1b..696af94bc4 100644 --- a/ccmain/fixspace.h +++ b/ccmain/fixspace.h @@ -53,20 +53,20 @@ void fix_fuzzy_spaces( //find fuzzy words void fix_fuzzy_space_list( //space explorer WERD_RES_LIST &best_perm, ROW *row); -void initialise_search(WERD_RES_LIST &src_list, WERD_RES_LIST &new_list); -void match_current_words(WERD_RES_LIST &words, ROW *row); -INT16 eval_word_spacing(WERD_RES_LIST &word_res_list); -BOOL8 digit_or_numeric_punct(WERD_RES *word, char ch); -void transform_to_next_perm(WERD_RES_LIST &words); -void dump_words(WERD_RES_LIST &perm, INT16 score, INT16 mode, BOOL8 improved); +void initialise_search(WERD_RES_LIST &src_list, WERD_RES_LIST &new_list); +void match_current_words(WERD_RES_LIST &words, ROW *row); +INT16 eval_word_spacing(WERD_RES_LIST &word_res_list); +BOOL8 digit_or_numeric_punct(WERD_RES *word, int char_position); +void transform_to_next_perm(WERD_RES_LIST &words); +void dump_words(WERD_RES_LIST &perm, INT16 score, INT16 mode, BOOL8 improved); BOOL8 uniformly_spaced( //sensible word WERD_RES *word); -BOOL8 fixspace_thinks_word_done(WERD_RES *word); -void fix_sp_fp_word(WERD_RES_IT &word_res_it, ROW *row); -void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row); -void break_noisiest_blob_word(WERD_RES_LIST &words); -INT16 worst_noise_blob(WERD_RES *word_res, float *worst_noise_score); -float blob_noise_score(PBLOB *blob); -void fixspace_dbg(WERD_RES *word); -INT16 fp_eval_word_spacing(WERD_RES_LIST &word_res_list); +BOOL8 fixspace_thinks_word_done(WERD_RES *word); +void fix_sp_fp_word(WERD_RES_IT &word_res_it, ROW *row); +void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row); +void break_noisiest_blob_word(WERD_RES_LIST &words); +INT16 worst_noise_blob(WERD_RES *word_res, float *worst_noise_score); +float blob_noise_score(PBLOB *blob); +void fixspace_dbg(WERD_RES *word); +INT16 fp_eval_word_spacing(WERD_RES_LIST &word_res_list); #endif diff --git a/ccmain/fixxht.h b/ccmain/fixxht.h index 95ac5ec5d4..e159ff4ace 100644 --- a/ccmain/fixxht.h +++ b/ccmain/fixxht.h @@ -69,12 +69,13 @@ void re_estimate_x_ht( //improve for 1 word WERD_RES *word_res, //word to do float *trial_x_ht //new match value ); -void check_block_occ(WERD_RES *word_res); -char check_blob_occ(char proposed_char, +void check_block_occ(WERD_RES *word_res); +void check_blob_occ(char *proposed_char, INT16 blob_ht_above_baseline, float x_ht, - float caps_ht); -float estimate_from_stats(STATS &stats); + float caps_ht, + char *confirmed_char); +float estimate_from_stats(STATS &stats); void improve_estimate(WERD_RES *word_res, float &est_x_ht, float &est_caps_ht, @@ -88,5 +89,5 @@ void est_ambigs(WERD_RES *word_res, float *ambig_lc_x_est, //xht est float *ambig_uc_caps_est //caps est ); -BOOL8 dodgy_blob(PBLOB *blob); +BOOL8 dodgy_blob(PBLOB *blob); #endif diff --git a/ccmain/output.h b/ccmain/output.h index ac396297ff..1c54a146b5 100644 --- a/ccmain/output.h +++ b/ccmain/output.h @@ -93,7 +93,8 @@ void write_shm_text( //write output WERD_RES *word, //word to do BLOCK *block, //block it is from ROW_RES *row, //row it is from - const STRING &text //text to write + const STRING &text, //text to write + const STRING &text_lengths ); void write_map( //output a map file FILE *mapfile, //mapfile to write to @@ -101,13 +102,15 @@ void write_map( //output a map file FILE *open_outfile( //open .map & .unlv file const char *extension); void write_unlv_text(WERD_RES *word); -char get_rep_char( // what char is repeated? - WERD_RES *word); +UNICHAR_ID get_rep_char(WERD_RES *word); // what char is repeated? void ensure_rep_chars_are_consistent(WERD_RES *word); void set_unlv_suspects(WERD_RES *word); INT16 count_alphas( //how many alphas - const char *s); + const char *s, + const char *lengths); INT16 count_alphanums( //how many alphanums - const char *s); -BOOL8 acceptable_number_string(const char *s); + const char *s, + const char *lengths); +BOOL8 acceptable_number_string(const char *s, + const char *lengths); #endif diff --git a/ccmain/reject.cpp b/ccmain/reject.cpp index 808af8e839..fcc8e94f91 100644 --- a/ccmain/reject.cpp +++ b/ccmain/reject.cpp @@ -37,6 +37,7 @@ #include "control.h" #include "docqual.h" #include "secname.h" +#include "globals.h" /* #define SECURE_NAMES done in secnames.h when necessary */ @@ -337,12 +338,13 @@ void make_reject_map( //make rej map for wd //detailed results ROW *row, INT16 pass //1st or 2nd? ) { - INT16 i; + int i; + int offset; flip_0O(word); check_debug_pt (word, -1); //For trap only set_done(word, pass); //Set acceptance - word->reject_map.initialise (word->best_choice->string ().length ()); + word->reject_map.initialise (word->best_choice->lengths ().length ()); reject_blanks(word); /* 0: Rays original heuristic - the baseline @@ -380,16 +382,20 @@ void make_reject_map( //make rej map for wd //detailed results (word->best_choice->permuter () == USER_DAWG_PERM)) && (!rej_use_sensible_wd || (acceptable_word_string - (word->best_choice->string ().string ()) != + (word->best_choice->string ().string (), + word->best_choice->lengths ().string ()) != AC_UNACCEPTABLE))) { //PASSED TEST } else if (word->best_choice->permuter () == NUMBER_PERM) { if (rej_alphas_in_number_perm) { - for (i = 0; word->best_choice->string ()[i] != '\0'; - i++) { + for (i = 0, offset = 0; + word->best_choice->string ()[offset] != '\0'; + offset += word->best_choice->lengths()[i++]) { if (word->reject_map[i].accepted () && - isalpha (word->best_choice->string ()[i])) + unicharset.get_isalpha (word->best_choice->string ().string() + + offset, + word->best_choice->lengths()[i])) word->reject_map[i].setrej_bad_permuter (); //rej alpha } @@ -433,9 +439,11 @@ void make_reject_map( //make rej map for wd //detailed results void reject_blanks(WERD_RES *word) { INT16 i; + INT16 offset; - for (i = 0; word->best_choice->string ()[i] != '\0'; i++) { - if (word->best_choice->string ()[i] == ' ') + for (i = 0, offset = 0; word->best_choice->string ()[offset] != '\0'; + offset += word->best_choice->lengths ()[i], i += 1) { + if (word->best_choice->string ()[offset] == ' ') //rej unrecognised blobs word->reject_map[i].setrej_tess_failure (); } @@ -444,10 +452,12 @@ void reject_blanks(WERD_RES *word) { void reject_I_1_L(WERD_RES *word) { INT16 i; + INT16 offset; - for (i = 0; word->best_choice->string ()[i] != '\0'; i++) { + for (i = 0, offset = 0; word->best_choice->string ()[offset] != '\0'; + offset += word->best_choice->lengths ()[i], i += 1) { if (STRING (conflict_set_I_l_1). - contains (word->best_choice->string ()[i])) { + contains (word->best_choice->string ()[offset])) { //rej 1Il conflict word->reject_map[i].setrej_1Il_conflict (); } @@ -460,30 +470,32 @@ void reject_poor_matches( //detailed results BLOB_CHOICE_LIST_CLIST *blob_choices) { float threshold; INT16 i = 0; + INT16 offset = 0; //super iterator BLOB_CHOICE_LIST_C_IT list_it = blob_choices; BLOB_CHOICE_IT choice_it; //real iterator #ifndef SECURE_NAMES - if (strlen (word->best_choice->string ().string ()) != list_it.length ()) { + if (strlen (word->best_choice->lengths ().string ()) != list_it.length ()) { tprintf ("ASSERT FAIL string:\"%s\"; strlen=%d; choices len=%d; blob len=%d\n", word->best_choice->string ().string (), - strlen (word->best_choice->string ().string ()), list_it.length (), + strlen (word->best_choice->lengths ().string ()), list_it.length (), word->outword->blob_list ()->length ()); } #endif - ASSERT_HOST (strlen (word->best_choice->string ().string ()) == + ASSERT_HOST (strlen (word->best_choice->lengths ().string ()) == list_it.length ()); ASSERT_HOST (word->outword->blob_list ()->length () == list_it.length ()); threshold = compute_reject_threshold (blob_choices); for (list_it.mark_cycle_pt (); - !list_it.cycled_list (); list_it.forward (), i++) { + !list_it.cycled_list (); list_it.forward (), i++, + offset += word->best_choice->lengths ()[i]) { /* NB - only compares the threshold against the TOP choice char in the choices list for a blob !! - the selected one may be below the threshold */ choice_it.set_to_list (list_it.data ()); - if ((word->best_choice->string ()[i] == ' ') || + if ((word->best_choice->string ()[offset] == ' ') || (choice_it.length () == 0)) //rej unrecognised blobs word->reject_map[i].setrej_tess_failure (); @@ -622,9 +634,12 @@ void reject_edge_blobs(WERD_RES *word) { BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { const char *word; + const char *lengths; INT16 word_len; //its length - INT16 first_alphanum_idx; + INT16 first_alphanum_index_; + INT16 first_alphanum_offset_; INT16 i; + INT16 offset; BOOL8 non_conflict_set_char; //non conf set a/n? BOOL8 conflict = FALSE; BOOL8 allow_1s; @@ -634,7 +649,8 @@ BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { int dict_word_type; word = word_res->best_choice->string ().string (); - word_len = strlen (word); + lengths = word_res->best_choice->lengths().string(); + word_len = strlen (lengths); /* If there are no occurrences of the conflict set characters then the word is OK. @@ -647,10 +663,12 @@ BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { from those in the conflict set. */ - for (i = 0, non_conflict_set_char = FALSE; - (i < word_len) && !non_conflict_set_char; i++) - non_conflict_set_char = isalnum (word[i]) && - !STRING (conflict_set_I_l_1).contains (word[i]); + for (i = 0, offset = 0, non_conflict_set_char = FALSE; + (i < word_len) && !non_conflict_set_char; offset += lengths[i++]) + non_conflict_set_char = + (unicharset.get_isalpha(word + offset, lengths[i]) || + unicharset.get_isdigit(word + offset, lengths[i])) && + !STRING (conflict_set_I_l_1).contains (word[offset]); if (!non_conflict_set_char) { if (update_map) reject_I_1_L(word_res); @@ -675,33 +693,36 @@ BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { if ((rej_1Il_use_dict_word && dict_word_ok) || (rej_1Il_trust_permuter_type && dict_perm_type) || (dict_perm_type && dict_word_ok)) { - first_alphanum_idx = first_alphanum_pos (word); - if (word[first_alphanum_idx] == 'I') { - word_res->best_choice->string ()[first_alphanum_idx] = 'l'; + first_alphanum_index_ = first_alphanum_index (word, lengths); + first_alphanum_offset_ = first_alphanum_offset (word, lengths); + if (lengths[first_alphanum_index_] == 1 && + word[first_alphanum_offset_] == 'I') { + word_res->best_choice->string ()[first_alphanum_offset_] = 'l'; if (safe_dict_word (word) > 0) { - word_res->best_choice->string ()[first_alphanum_idx] = 'I'; + word_res->best_choice->string ()[first_alphanum_offset_] = 'I'; if (update_map) - word_res->reject_map[first_alphanum_idx]. + word_res->reject_map[first_alphanum_index_]. setrej_1Il_conflict(); return TRUE; } else { - word_res->best_choice->string ()[first_alphanum_idx] = 'I'; + word_res->best_choice->string ()[first_alphanum_offset_] = 'I'; return FALSE; } } - if (word[first_alphanum_idx] == 'l') { - word_res->best_choice->string ()[first_alphanum_idx] = 'I'; + if (lengths[first_alphanum_index_] == 1 && + word[first_alphanum_offset_] == 'l') { + word_res->best_choice->string ()[first_alphanum_offset_] = 'I'; if (safe_dict_word (word) > 0) { - word_res->best_choice->string ()[first_alphanum_idx] = 'l'; + word_res->best_choice->string ()[first_alphanum_offset_] = 'l'; if (update_map) - word_res->reject_map[first_alphanum_idx]. + word_res->reject_map[first_alphanum_index_]. setrej_1Il_conflict(); return TRUE; } else { - word_res->best_choice->string ()[first_alphanum_idx] = 'l'; + word_res->best_choice->string ()[first_alphanum_offset_] = 'l'; return FALSE; } } @@ -719,20 +740,23 @@ BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { REGARDLESS OF PERMUTER, see if flipping a leading I/l generates a dictionary word. */ - first_alphanum_idx = first_alphanum_pos (word); - if (word[first_alphanum_idx] == 'l') { - word_res->best_choice->string ()[first_alphanum_idx] = 'I'; + first_alphanum_index_ = first_alphanum_index (word, lengths); + first_alphanum_offset_ = first_alphanum_offset (word, lengths); + if (lengths[first_alphanum_index_] == 1 && + word[first_alphanum_offset_] == 'l') { + word_res->best_choice->string ()[first_alphanum_offset_] = 'I'; if (safe_dict_word (word) > 0) return FALSE; else - word_res->best_choice->string ()[first_alphanum_idx] = 'l'; + word_res->best_choice->string ()[first_alphanum_offset_] = 'l'; } - else if (word[first_alphanum_idx] == 'I') { - word_res->best_choice->string ()[first_alphanum_idx] = 'l'; + else if (lengths[first_alphanum_index_] == 1 && + word[first_alphanum_offset_] == 'I') { + word_res->best_choice->string ()[first_alphanum_offset_] = 'l'; if (safe_dict_word (word) > 0) return FALSE; else - word_res->best_choice->string ()[first_alphanum_idx] = 'I'; + word_res->best_choice->string ()[first_alphanum_offset_] = 'I'; } /* For strings containing digits: @@ -740,14 +764,16 @@ BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { reject any non 1 conflict chs Else reject all conflict chs */ - if (word_contains_non_1_digit (word)) { - allow_1s = (alpha_count (word) == 0) || + if (word_contains_non_1_digit (word, lengths)) { + allow_1s = (alpha_count (word, lengths) == 0) || (word_res->best_choice->permuter () == NUMBER_PERM); + INT16 offset; conflict = FALSE; - for (i = 0; i < word_len; i++) { - if ((!allow_1s || (word[i] != '1')) && - STRING (conflict_set_I_l_1).contains (word[i])) { + for (i = 0, offset = 0; word[offset] != '\0'; + offset += word_res->best_choice->lengths ()[i++]) { + if ((!allow_1s || (word[offset] != '1')) && + STRING (conflict_set_I_l_1).contains (word[offset])) { if (update_map) word_res->reject_map[i].setrej_1Il_conflict (); conflict = TRUE; @@ -759,12 +785,14 @@ BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { For anything else. See if it conforms to an acceptable word type. If so, treat accordingly. */ - word_type = acceptable_word_string (word); + word_type = acceptable_word_string (word, lengths); if ((word_type == AC_LOWER_CASE) || (word_type == AC_INITIAL_CAP)) { - first_alphanum_idx = first_alphanum_pos (word); - if (STRING (conflict_set_I_l_1).contains (word[first_alphanum_idx])) { + first_alphanum_index_ = first_alphanum_index (word, lengths); + first_alphanum_offset_ = first_alphanum_offset (word, lengths); + if (STRING (conflict_set_I_l_1).contains (word[first_alphanum_offset_])) { if (update_map) - word_res->reject_map[first_alphanum_idx].setrej_1Il_conflict (); + word_res->reject_map[first_alphanum_index_]. + setrej_1Il_conflict (); return TRUE; } else @@ -781,34 +809,54 @@ BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map) { } -INT16 first_alphanum_pos(const char *word) { +INT16 first_alphanum_index(const char *word, + const char *word_lengths) { INT16 i; + INT16 offset; - for (i = 0; word[i] != '\0'; i++) { - if (isalnum (word[i])) + for (i = 0, offset = 0; word[offset] != '\0'; offset += word_lengths[i++]) { + if (unicharset.get_isalpha(word + offset, word_lengths[i]) || + unicharset.get_isdigit(word + offset, word_lengths[i])) return i; } return -1; } +INT16 first_alphanum_offset(const char *word, + const char *word_lengths) { + INT16 i; + INT16 offset; + + for (i = 0, offset = 0; word[offset] != '\0'; offset += word_lengths[i++]) { + if (unicharset.get_isalpha(word + offset, word_lengths[i]) || + unicharset.get_isdigit(word + offset, word_lengths[i])) + return offset; + } + return -1; +} -INT16 alpha_count(const char *word) { +INT16 alpha_count(const char *word, + const char *word_lengths) { INT16 i; + INT16 offset; INT16 count = 0; - for (i = 0; word[i] != '\0'; i++) { - if (isalpha (word[i])) + for (i = 0, offset = 0; word[offset] != '\0'; offset += word_lengths[i++]) { + if (unicharset.get_isalpha (word + offset, word_lengths[i])) count++; } return count; } -BOOL8 word_contains_non_1_digit(const char *word) { +BOOL8 word_contains_non_1_digit(const char *word, + const char *word_lengths) { INT16 i; + INT16 offset; - for (i = 0; word[i] != '\0'; i++) { - if (isdigit (word[i]) && word[i] != '1') + for (i = 0, offset = 0; word[offset] != '\0'; offset += word_lengths[i++]) { + if (unicharset.get_isdigit (word + offset, word_lengths[i]) && + (word_lengths[i] != 1 || word[offset] != '1')) return TRUE; } return FALSE; @@ -822,7 +870,9 @@ BOOL8 test_ambig_word( //test for ambiguity if ((word->best_choice->permuter () == SYSTEM_DAWG_PERM) || (word->best_choice->permuter () == FREQ_DAWG_PERM) || (word->best_choice->permuter () == USER_DAWG_PERM)) { - ambig = !NoDangerousAmbig(word->best_choice->string().string(), NULL); + ambig = !NoDangerousAmbig(word->best_choice->string().string(), + word->best_choice->lengths().string(), + NULL); } return ambig; } @@ -975,7 +1025,7 @@ void nn_recover_rejects(WERD_RES *word, ROW *row) { */ if (no_unrej_no_alphanum_wds && (count_alphanums (word) < 1) && - !((word->best_choice->string ().length () == 1) && + !((word->best_choice->lengths ().length () == 1) && STRING (ok_single_ch_non_alphanum_wds).contains (word->best_choice-> string ()[0])) && !repeated_nonalphanum_wd (word, row)) @@ -1015,6 +1065,7 @@ void nn_match_word( //Match a word INT16 i; const char *word_string; + const char *word_string_lengths; BOOL8 word_in_dict; //Tess wd in dict BOOL8 checked_dict_word; //Tess wd definitely in dict BOOL8 sensible_word; //OK char string @@ -1027,18 +1078,24 @@ void nn_match_word( //Match a word //1:DODGY ACCEPT //2:DICT ACCEPT //3:CLEAR ACCEPT - INT16 first_alphanum_idx; + INT16 first_alphanum_index_; + INT16 first_alphanum_offset_; word_string = word->best_choice->string ().string (); - first_alphanum_idx = first_alphanum_pos (word_string); + word_string_lengths = word->best_choice->lengths ().string (); + first_alphanum_index_ = first_alphanum_index (word_string, + word_string_lengths); + first_alphanum_offset_ = first_alphanum_offset (word_string, + word_string_lengths); word_in_dict = ((word->best_choice->permuter () == SYSTEM_DAWG_PERM) || (word->best_choice->permuter () == FREQ_DAWG_PERM) || (word->best_choice->permuter () == USER_DAWG_PERM)); checked_dict_word = word_in_dict && (safe_dict_word (word_string) > 0); - sensible_word = acceptable_word_string (word_string) != AC_UNACCEPTABLE; + sensible_word = acceptable_word_string (word_string, word_string_lengths) != + AC_UNACCEPTABLE; word_char_quality(word, row, &char_quality, &accepted_char_quality); - good_quality_word = word->best_choice->string ().length () == char_quality; + good_quality_word = word->best_choice->lengths ().length () == char_quality; #ifndef SECURE_NAMES if (nn_reject_debug) { @@ -1049,7 +1106,7 @@ void nn_match_word( //Match a word } #endif - if (word->best_choice->string ().length () != + if (word->best_choice->lengths ().length () != word->outword->blob_list ()->length ()) { #ifndef SECURE_NAMES tprintf ("nn_match_word ASSERT FAIL String:\"%s\"; #Blobs=%d\n", @@ -1112,8 +1169,10 @@ void nn_match_word( //Match a word sensible_word, centre, good_quality_word, word_string[i]); if (word->reject_map[i].recoverable ()) { - if ((i == first_alphanum_idx) && - ((word_string[i] == 'I') || (word_string[i] == 'i'))) { + if ((i == first_alphanum_index_) && + word_string_lengths[first_alphanum_index_] == 1 && + ((word_string[first_alphanum_offset_] == 'I') || + (word_string[first_alphanum_offset_] == 'i'))) { if (conf_level >= nn_conf_initial_i_level) word->reject_map[i].setrej_nn_accept (); //un-reject char @@ -1356,6 +1415,7 @@ INT16 evaluate_net_match(char top, *************************************************************************/ void dont_allow_dubious_chars(WERD_RES *word) { int i = 0; + int offset = 0; int rej_pos; int word_len = word->reject_map.length (); @@ -1363,25 +1423,31 @@ void dont_allow_dubious_chars(WERD_RES *word) { /* Find next reject */ while ((i < word_len) && (word->reject_map[i].accepted ())) + { + offset += word->best_choice->lengths()[i]; i++; + } if (i < word_len) { rej_pos = i; /* Reject dubious chars to the left */ i--; + offset -= word->best_choice->lengths()[i]; while ((i >= 0) && STRING (dubious_chars_left_of_reject).contains (word-> best_choice-> string () - [i])) { + [offset])) { word->reject_map[i--].setrej_dubious (); + offset -= word->best_choice->lengths()[i]; } /* Skip adjacent rejects */ for (i = rej_pos; - (i < word_len) && (word->reject_map[i].rejected ()); i++); + (i < word_len) && (word->reject_map[i].rejected ()); + offset += word->best_choice->lengths()[i++]); /* Reject dubious chars to the right */ @@ -1389,7 +1455,8 @@ void dont_allow_dubious_chars(WERD_RES *word) { STRING (dubious_chars_right_of_reject).contains (word-> best_choice-> string () - [i])) { + [offset])) { + offset += word->best_choice->lengths()[i]; word->reject_map[i++].setrej_dubious (); } } @@ -1403,16 +1470,20 @@ void dont_allow_dubious_chars(WERD_RES *word) { *************************************************************************/ void dont_allow_1Il(WERD_RES *word) { int i = 0; + int offset; int word_len = word->reject_map.length (); const char *s = word->best_choice->string ().string (); + const char *lengths = word->best_choice->lengths ().string (); BOOL8 accepted_1Il = FALSE; - for (i = 0; i < word_len; i++) { + for (i = 0, offset = 0; i < word_len; + offset += word->best_choice->lengths()[i++]) { if (word->reject_map[i].accepted ()) { - if (STRING (conflict_set_I_l_1).contains (s[i])) + if (STRING (conflict_set_I_l_1).contains (s[offset])) accepted_1Il = TRUE; else { - if (isalnum (s[i])) + if (unicharset.get_isalpha (s + offset, lengths[i]) || + unicharset.get_isdigit (s + offset, lengths[i])) return; // >=1 non 1Il ch accepted } } @@ -1420,8 +1491,9 @@ void dont_allow_1Il(WERD_RES *word) { if (!accepted_1Il) return; //Nothing to worry about - for (i = 0; i < word_len; i++) { - if (STRING (conflict_set_I_l_1).contains (s[i]) && + for (i = 0, offset = 0; i < word_len; + offset += word->best_choice->lengths()[i++]) { + if (STRING (conflict_set_I_l_1).contains (s[offset]) && word->reject_map[i].accepted ()) word->reject_map[i].setrej_postNN_1Il (); } @@ -1432,10 +1504,15 @@ INT16 count_alphanums( //how many alphanums WERD_RES *word) { int count = 0; int i; + int offset; - for (i = 0; i < word->reject_map.length (); i++) { + for (i = 0, offset = 0; i < word->reject_map.length (); + offset += word->best_choice->lengths()[i++]) { if ((word->reject_map[i].accepted ()) && - (isalnum (word->best_choice->string ()[i]))) + (unicharset.get_isalpha (word->best_choice->string ().string() + offset, + word->best_choice->lengths ()[i]) || + unicharset.get_isdigit (word->best_choice->string ().string() + offset, + word->best_choice->lengths ()[i]))) count++; } return count; @@ -1456,19 +1533,20 @@ BOOL8 repeated_nonalphanum_wd(WERD_RES *word, ROW *row) { INT16 char_quality; INT16 accepted_char_quality; - if (word->best_choice->string ().length () <= 1) + if (word->best_choice->lengths ().length () <= 1) return FALSE; if (!STRING (ok_repeated_ch_non_alphanum_wds). contains (word->best_choice->string ()[0])) return FALSE; - if (!repeated_ch_string (word->best_choice->string ().string ())) + if (!repeated_ch_string (word->best_choice->string ().string (), + word->best_choice->lengths ().string ())) return FALSE; word_char_quality(word, row, &char_quality, &accepted_char_quality); - if ((word->best_choice->string ().length () == char_quality) && + if ((word->best_choice->lengths ().length () == char_quality) && (char_quality == accepted_char_quality)) return TRUE; else @@ -1476,16 +1554,18 @@ BOOL8 repeated_nonalphanum_wd(WERD_RES *word, ROW *row) { } -BOOL8 repeated_ch_string(const char *rep_ch_str) { - char c; +BOOL8 repeated_ch_string(const char *rep_ch_str, + const char *lengths) { + UNICHAR_ID c; if ((rep_ch_str == NULL) || (*rep_ch_str == '\0')) { return FALSE; } - c = *rep_ch_str; - rep_ch_str++; - while (*rep_ch_str == c) { + c = unicharset.unichar_to_id(rep_ch_str, *lengths); + rep_ch_str += *(lengths++); + while (*rep_ch_str != '\0' && + unicharset.unichar_to_id(rep_ch_str, *lengths) == c) { rep_ch_str++; } if (*rep_ch_str == '\0') @@ -1508,6 +1588,7 @@ INT16 safe_dict_word(const char *s) { void flip_hyphens(WERD_RES *word) { char *str = (char *) word->best_choice->string ().string (); int i = 0; + int offset = 0; PBLOB_IT outword_it; int prev_right = -9999; int next_left; @@ -1520,7 +1601,8 @@ void flip_hyphens(WERD_RES *word) { outword_it.set_to_list (word->outword->blob_list ()); for (outword_it.mark_cycle_pt (); - !outword_it.cycled_list (); outword_it.forward (), i++) { + !outword_it.cycled_list (); outword_it.forward (), + offset += word->best_choice->lengths()[i++]) { out_box = outword_it.data ()->bounding_box (); if (outword_it.at_last ()) next_left = 9999; @@ -1532,10 +1614,10 @@ void flip_hyphens(WERD_RES *word) { if ((out_box.width () > 8 * word->denorm.scale ()) && (out_box.left () > prev_right) && (out_box.right () < next_left)) { aspect_ratio = out_box.width () / (float) out_box.height (); - if (str[i] == '.') { + if (str[offset] == '.') { if (aspect_ratio >= tessedit_upper_flip_hyphen) { /* Certain HYPHEN */ - str[i] = '-'; + str[offset] = '-'; if (word->reject_map[i].rejected ()) word->reject_map[i].setrej_hyphen_accept (); } @@ -1544,7 +1626,7 @@ void flip_hyphens(WERD_RES *word) { //Suspected HYPHEN word->reject_map[i].setrej_hyphen (); } - else if (str[i] == '-') { + else if (str[offset] == '-') { if ((aspect_ratio >= tessedit_upper_flip_hyphen) && (word->reject_map[i].rejected ())) word->reject_map[i].setrej_hyphen_accept (); @@ -1563,7 +1645,9 @@ void flip_hyphens(WERD_RES *word) { void flip_0O(WERD_RES *word) { char *str = (char *) word->best_choice->string ().string (); + char *lengths = (char *) word->best_choice->lengths ().string (); int i; + int offset; PBLOB_IT outword_it; BOX out_box; @@ -1572,9 +1656,10 @@ void flip_0O(WERD_RES *word) { outword_it.set_to_list (word->outword->blob_list ()); - for (i = 0, outword_it.mark_cycle_pt (); - !outword_it.cycled_list (); i++, outword_it.forward ()) { - if (isupper (str[i]) || isdigit (str[i])) { + for (i = 0, offset = 0, outword_it.mark_cycle_pt (); + !outword_it.cycled_list (); offset += lengths[i++], outword_it.forward ()) { + if (unicharset.get_isupper (str + offset, lengths[i]) || + unicharset.get_isdigit (str + offset, lengths[i])) { out_box = outword_it.data ()->bounding_box (); if ((out_box.top () < bln_baseline_offset + bln_x_height) || (out_box.bottom () > bln_baseline_offset + bln_x_height / 4)) @@ -1582,74 +1667,107 @@ void flip_0O(WERD_RES *word) { } } - for (i = 1; str[i] != '\0'; i++, outword_it.forward ()) { - if ((str[i] == '0') || (str[i] == 'O')) { + for (i = 1, offset = lengths[0]; str[offset] != '\0'; + offset += lengths[i++], outword_it.forward ()) { + if (lengths[i] == 1 && + ((str[offset] == '0') || (str[offset] == 'O'))) { /* A0A */ - if (non_O_upper (str[i - 1]) && non_O_upper (str[i + 1])) { - str[i] = 'O'; + if (non_O_upper (str + offset - lengths[i - 1], lengths[i - 1]) && + lengths[i + 1] > 0 && + non_O_upper (str + offset + lengths[i], lengths[i + 1])) { + str[offset] = 'O'; } /* A00A */ - if (non_O_upper (str[i - 1]) && - ((str[i + 1] == '0') || (str[i + 1] == 'O')) && - non_O_upper (str[i + 2])) { - str[i] = 'O'; - str[i + 1] = 'O'; - i++; + if (non_O_upper (str + offset - lengths[i - 1], lengths[i - 1]) && + ((lengths[i + 1] == 1 && str[offset + lengths[i]] == '0') || + (lengths[i + 1] == 1 && str[offset + lengths[i]] == 'O')) && + lengths[i + 2] > 0 && + non_O_upper (str + offset + lengths[i] + lengths[i + 1], + lengths[i + 2])) { + str[offset] = 'O'; + str[offset + lengths[i]] = 'O'; + offset += lengths[i++]; } /* AA0 */ if ((i > 1) && - non_O_upper (str[i - 2]) && - non_O_upper (str[i - 1]) && - !isdigit (str[i + 1]) && - (str[i + 1] != 'l') && (str[i + 1] != 'I')) { - str[i] = 'O'; + non_O_upper (str + offset - lengths[i - 1] - lengths[i - 2], + lengths[i - 2]) && + non_O_upper (str + offset - lengths[i - 1], lengths[i - 1]) && + lengths[i + 1] > 0 && + !unicharset.get_isdigit (str + offset + lengths[i], lengths[i + 1]) && + (lengths[i + 1] != 1 || str[offset + lengths[i]] != 'l') && + (lengths[i + 1] != 1 || str[offset + lengths[i]] != 'I')) { + str[offset] = 'O'; } /* 9O9 */ - if (non_0_digit (str[i - 1]) && non_0_digit (str[i + 1])) { - str[i] = '0'; + if (non_0_digit (str + offset - lengths[i - 1], lengths[i - 1]) && + lengths[i + 1] > 0 && + non_0_digit (str + offset + lengths[i], lengths[i + 1])) { + str[offset] = '0'; } /* 9OOO */ - if (non_0_digit (str[i - 1]) && - ((str[i + 1] == '0') || (str[i + 1] == 'O')) && - ((str[i + 2] == '0') || (str[i + 2] == 'O'))) { - str[i] = '0'; - str[i + 1] = '0'; - str[i + 2] = '0'; - i += 2; + if (non_0_digit (str + offset - lengths[i - 1], lengths[i - 1]) && + ((lengths[i + 1] == 1 && str[offset + lengths[i]] == '0') || + (lengths[i + 1] == 1 && str[offset + lengths[i]] == 'O')) && + ((lengths[i + 2] == 1 && + str[offset + lengths[i] + lengths[i + 1]] == '0') || + (lengths[i + 2] == 1 && + str[offset + lengths[i] + lengths[i + 1]] == 'O'))) { + str[offset] = '0'; + str[offset + lengths[i]] = '0'; + str[offset + lengths[i] + lengths[i + 1]] = '0'; + offset += lengths[i++]; + offset += lengths[i++]; } /* 9OO */ - if (non_0_digit (str[i - 1]) && - ((str[i + 1] == '0') || (str[i + 1] == 'O')) && - !isupper (str[i + 2])) { - str[i] = '0'; - str[i + 1] = '0'; - i++; + if (non_0_digit (str + offset - lengths[i - 1], lengths[i - 1]) && + ((lengths[i + 1] == 1 && str[offset + lengths[i]] == '0') || + (lengths[i + 1] == 1 && str[offset + lengths[i]] == 'O')) && + lengths[i + 2] > 0 && + !unicharset.get_isupper (str + offset + lengths[i] + lengths[i + 1], + lengths[i + 2])) { + str[offset] = '0'; + str[offset + lengths[i]] = '0'; + offset += lengths[i++]; } /* 9O */ - if (non_0_digit (str[i - 1]) && !isupper (str[i + 1])) { - str[i] = '0'; + if (non_0_digit (str + offset - lengths[i - 1], lengths[i - 1]) && + lengths[i + 1] > 0 && + !unicharset.get_isupper (str + offset + lengths[i], lengths[i + 1])) { + str[offset] = '0'; } /* 9[.,]OOO.. */ if ((i > 1) && - ((str[i - 1] == '.') || (str[i - 1] == ',')) && - (isdigit (str[i - 2]) || (str[i - 2] == 'O'))) { - if (str[i - 2] == 'O') - str[i - 2] = '0'; - while ((str[i] == 'O') || (str[i] == '0')) { - str[i++] = '0'; + ((lengths[i - 1] == 1 && str[offset - lengths[i - 1]] == '.') || + (lengths[i - 1] == 1 && str[offset - lengths[i - 1]] == ',')) && + (unicharset.get_isdigit (str + offset - + lengths[i - 1] - lengths[i - 2], + lengths[i - 2]) || + (lengths[i - 2] == 1 && + str[offset - lengths[i - 1] - lengths[i - 2]] == 'O'))) { + if (lengths[i - 2] == 1 && + str[offset - lengths[i - 1] - lengths[i - 2]] == 'O') + str[offset - lengths[i - 1] - lengths[i - 2]] = '0'; + while (lengths[i] == 1 && + (str[offset] == 'O') || (str[offset] == '0')) { + str[offset] = '0'; + offset += lengths[i++]; } i--; + offset -= lengths[i]; } } } } -BOOL8 non_O_upper(char c) { - return isupper (c) && (c != 'O'); +BOOL8 non_O_upper(const char* str, int length) { + return unicharset.get_isupper (str, length) && + (!unicharset.eq(unicharset.unichar_to_id(str, length), "O")); } -BOOL8 non_0_digit(char c) { - return isdigit (c) && (c != '0'); +BOOL8 non_0_digit(const char* str, int length) { + return unicharset.get_isdigit (str, length) && + (!unicharset.eq(unicharset.unichar_to_id(str, length), "0")); } diff --git a/ccmain/reject.h b/ccmain/reject.h index 6aeebde914..9ecd2dc593 100644 --- a/ccmain/reject.h +++ b/ccmain/reject.h @@ -106,20 +106,25 @@ void make_reject_map( //make rej map for wd //detailed results ROW *row, INT16 pass //1st or 2nd? ); -void reject_blanks(WERD_RES *word); -void reject_I_1_L(WERD_RES *word); +void reject_blanks(WERD_RES *word); +void reject_I_1_L(WERD_RES *word); //detailed results -void reject_poor_matches(WERD_RES *word, BLOB_CHOICE_LIST_CLIST *blob_choices); +void reject_poor_matches(WERD_RES *word, BLOB_CHOICE_LIST_CLIST *blob_choices); float compute_reject_threshold( //compute threshold //detailed results BLOB_CHOICE_LIST_CLIST *blob_choices); int sort_floats( //qsort function const void *arg1, //ptrs to floats const void *arg2); -void reject_edge_blobs(WERD_RES *word); -BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map); -INT16 first_alphanum_pos(const char *word); -INT16 alpha_count(const char *word); -BOOL8 word_contains_non_1_digit(const char *word); +void reject_edge_blobs(WERD_RES *word); +BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map); +INT16 first_alphanum_offset(const char *word, + const char *word_lengths); +INT16 first_alphanum_index(const char *word, + const char *word_lengths); +INT16 alpha_count(const char *word, + const char *word_lengths); +BOOL8 word_contains_non_1_digit(const char *word, + const char *word_lengths); BOOL8 test_ambig_word( //test for ambiguity WERD_RES *word); //original word @@ -127,13 +132,13 @@ BOOL8 ambig_word(const char *start_word, char *temp_word, //alterable copy INT16 test_char_pos //idx to char to alter ); -const char *char_ambiguities(char c); +const char *char_ambiguities(char c); #ifndef EMBEDDED void test_ambigs(const char *word); #endif - -void nn_recover_rejects(WERD_RES *word, ROW *row); + +void nn_recover_rejects(WERD_RES *word, ROW *row); void nn_match_word( //Match a word WERD_RES *word, ROW *row); @@ -157,19 +162,20 @@ INT16 evaluate_net_match(char top, BOOL8 sensible_word, BOOL8 centre, BOOL8 good_quality_word); -void dont_allow_dubious_chars(WERD_RES *word); +void dont_allow_dubious_chars(WERD_RES *word); -void dont_allow_1Il(WERD_RES *word); +void dont_allow_1Il(WERD_RES *word); INT16 count_alphanums( //how many alphanums WERD_RES *word); void reject_mostly_rejects( //rej all if most rejectd WERD_RES *word); -BOOL8 repeated_nonalphanum_wd(WERD_RES *word, ROW *row); -BOOL8 repeated_ch_string(const char *rep_ch_str); -INT16 safe_dict_word(const char *s); -void flip_hyphens(WERD_RES *word); -void flip_0O(WERD_RES *word); -BOOL8 non_O_upper(char c); -BOOL8 non_0_digit(char c); +BOOL8 repeated_nonalphanum_wd(WERD_RES *word, ROW *row); +BOOL8 repeated_ch_string(const char *rep_ch_str, + const char *lengths); +INT16 safe_dict_word(const char *s); +void flip_hyphens(WERD_RES *word); +void flip_0O(WERD_RES *word); +BOOL8 non_O_upper(const char* str, int length); +BOOL8 non_0_digit(const char* str, int length); #endif diff --git a/ccmain/tessbox.cpp b/ccmain/tessbox.cpp index 99ae8da0c2..1c24fbcbda 100644 --- a/ccmain/tessbox.cpp +++ b/ccmain/tessbox.cpp @@ -166,9 +166,11 @@ BOOL8 tess_acceptable_word( //test acceptability choice.rating = word_choice->rating (); choice.certainty = word_choice->certainty (); choice.string = (char *) word_choice->string ().string (); + choice.lengths = (char *) word_choice->lengths ().string (); tess_raw.rating = raw_choice->rating (); tess_raw.certainty = raw_choice->certainty (); tess_raw.string = (char *) raw_choice->string ().string (); + tess_raw.lengths = (char *) raw_choice->lengths ().string (); //call tess return AcceptableResult (&choice, &tess_raw); } @@ -190,7 +192,9 @@ BOOL8 tess_adaptable_word( //test adaptability tessword = make_tess_word (word, NULL); result = AdaptableWord (tessword, word_choice->string ().string (), - raw_choice->string ().string ()); + word_choice->lengths ().string (), + raw_choice->string ().string (), + raw_choice->lengths ().string ()); delete_word(tessword); return result != 0; } @@ -320,7 +324,7 @@ void tess_training_tester( //call tess //make dummy row make_tess_row(denorm, &tessrow); //learn it - LearnBlob(tessblob, &tessrow, text, count); + LearnBlob(tessblob, &tessrow, text); free_blob(tessblob); } } @@ -335,8 +339,8 @@ void tess_training_tester( //call tess void tess_adapter( //adapt to word WERD *word, //bln word DENORM *denorm, //de-normalise - const char *string, //string for word - const char *raw_string, //before context + const WERD_CHOICE& choice, //string for word + const WERD_CHOICE& raw_choice, //before context const char *rejmap //reject map ) { TWERD *tessword; //converted word @@ -346,7 +350,7 @@ void tess_adapter( //adapt to word make_tess_row(denorm, &tessrow); //make a word tessword = make_tess_word (word, &tessrow); - AdaptToWord(tessword, &tessrow, string, raw_string, rejmap); + AdaptToWord(tessword, &tessrow, choice, raw_choice, rejmap); //adapt to it delete_word(tessword); //free it } @@ -366,5 +370,6 @@ void tess_add_doc_word( //test acceptability choice.rating = word_choice->rating (); choice.certainty = word_choice->certainty (); choice.string = (char *) word_choice->string ().string (); + choice.lengths = (char *) word_choice->lengths ().string (); add_document_word(&choice); } diff --git a/ccmain/tessbox.h b/ccmain/tessbox.h index fd8dd45271..aa48516a8b 100644 --- a/ccmain/tessbox.h +++ b/ccmain/tessbox.h @@ -101,8 +101,8 @@ void tess_training_tester( //call tess void tess_adapter( //adapt to word WERD *word, //bln word DENORM *denorm, //de-normalise - const char *string, //string for word - const char *raw_string, //before context + const WERD_CHOICE& choice, //string for word + const WERD_CHOICE& raw_choice, //before context const char *rejmap); void tess_add_doc_word( //test acceptability WERD_CHOICE *word_choice //after context diff --git a/ccmain/tessedit.cpp b/ccmain/tessedit.cpp index 6c8f11088e..40c7aabb8d 100644 --- a/ccmain/tessedit.cpp +++ b/ccmain/tessedit.cpp @@ -122,19 +122,24 @@ int init_tesseract(const char *arg0, // Set the language data path prefix language_data_path_prefix = datadir; - if (language != NULL) { + if (language != NULL) language_data_path_prefix += language; - language_data_path_prefix += "."; - } else - language_data_path_prefix += "eng."; + language_data_path_prefix += "eng"; + language_data_path_prefix += "."; // Load the unichar set STRING unicharpath = language_data_path_prefix; unicharpath += "unicharset"; if (!unicharset.load_from_file(unicharpath.string())) { - DoError(FOPENERROR, "Unable to open unicharset"); + cprintf("Unable to load unicharset file %s\n", unicharpath.string()); + exit(1); + } + if (unicharset.size() > MAX_NUM_CLASSES) { + cprintf("Error: Size of unicharset is greater than MAX_NUM_CLASSES\n"); + exit(1); } + start_recog(configfile, textbase); ReliableConfigThreshold = tweak_ReliableConfigThreshold; diff --git a/ccmain/tfacepp.cpp b/ccmain/tfacepp.cpp index b43d8bdd39..a34bf3e663 100644 --- a/ccmain/tfacepp.cpp +++ b/ccmain/tfacepp.cpp @@ -64,25 +64,28 @@ WERD_CHOICE *recog_word( //recog one owrd UINT8 real_dict_perm_type; if (word->blob_list ()->empty ()) { - word_choice = new WERD_CHOICE ("", 10.0f, -1.0f, TOP_CHOICE_PERM); - raw_choice = new WERD_CHOICE ("", 10.0f, -1.0f, TOP_CHOICE_PERM); + char empty_lengths[] = {0}; + word_choice = new WERD_CHOICE ("", empty_lengths, + 10.0f, -1.0f, TOP_CHOICE_PERM); + raw_choice = new WERD_CHOICE ("", empty_lengths, + 10.0f, -1.0f, TOP_CHOICE_PERM); outword = word->poly_copy (denorm->row ()->x_height ()); } else word_choice = recog_word_recursive (word, denorm, matcher, tester, trainer, testing, raw_choice, blob_choices, outword); - if ((word_choice->string ().length () != + if ((word_choice->lengths ().length () != outword->blob_list ()->length ()) || - (word_choice->string ().length () != blob_choices->length ())) { + (word_choice->lengths ().length () != blob_choices->length ())) { tprintf ("recog_word ASSERT FAIL String:\"%s\"; Strlen=%d; #Blobs=%d; #Choices=%d\n", - word_choice->string ().string (), word_choice->string ().length (), + word_choice->string ().string (), word_choice->lengths ().length (), outword->blob_list ()->length (), blob_choices->length ()); } - ASSERT_HOST (word_choice->string ().length () == + ASSERT_HOST (word_choice->lengths ().length () == outword->blob_list ()->length ()); - ASSERT_HOST (word_choice->string ().length () == blob_choices->length ()); + ASSERT_HOST (word_choice->lengths ().length () == blob_choices->length ()); /* Copy any reject blobs into the outword */ outword->rej_blob_list ()->deep_copy (word->rej_blob_list ()); @@ -96,7 +99,8 @@ WERD_CHOICE *recog_word( //recog one owrd if (((real_dict_perm_type == SYSTEM_DAWG_PERM) || (real_dict_perm_type == FREQ_DAWG_PERM) || (real_dict_perm_type == USER_DAWG_PERM)) && - (alpha_count (word_choice->string ().string ()) > 0)) + (alpha_count (word_choice->string ().string (), + word_choice->lengths ().string ()) > 0)) word_choice->set_permuter (real_dict_perm_type); //Use dict perm } @@ -131,6 +135,7 @@ WERD_CHOICE *recog_word_recursive( //recog one owrd INT32 initial_blob_choice_len; INT32 word_length; //no of blobs STRING word_string; //converted from tess + STRING word_string_lengths; ARRAY tess_ratings; //tess results A_CHOICE tess_choice; //best word A_CHOICE tess_raw; //raw result @@ -175,19 +180,27 @@ WERD_CHOICE *recog_word_recursive( //recog one owrd convert_choice_lists(tess_ratings, blob_choices); //copy string word_string = tess_raw.string; - while (word_string.length () < word_length) + word_string_lengths = tess_raw.lengths; + while (word_string_lengths.length () < word_length) { word_string += " "; //pad with blanks + word_string_lengths += 1; + } raw_choice = new WERD_CHOICE (word_string.string (), - tess_raw.rating, tess_raw.certainty, - tess_raw.permuter); + word_string_lengths.string (), + tess_raw.rating, tess_raw.certainty, + tess_raw.permuter); word_string = tess_choice.string; - if (word_string.length () > word_length) { - tprintf ("recog_word: Discarded long string \"%s\"\n", - word_string.string ()); + word_string_lengths = tess_choice.lengths; + if (word_string_lengths.length () > word_length) { + tprintf ("recog_word: Discarded long string \"%s\"" + " (%d characters vs %d blobs)\n", + word_string.string (), word_string_lengths.length(), word_length); word_string = NULL; //should never happen + word_string_lengths = NULL; } if (blob_choices->length () - initial_blob_choice_len != word_length) { word_string = NULL; //force rejection + word_string_lengths = NULL; tprintf ("recog_word: Choices list len:%d; blob lists len:%d\n", blob_choices->length (), word_length); //list of lists @@ -208,17 +221,24 @@ WERD_CHOICE *recog_word_recursive( //recog one owrd tprintf ("recog_word: Deleted choice list\n"); } } - while (word_string.length () < word_length) + while (word_string_lengths.length () < word_length) { word_string += " "; //pad with blanks + word_string_lengths += 1; + } assert (raw_choice != NULL); - if (tess_choice.string) + if (tess_choice.string) { strfree(tess_choice.string); - if (tess_raw.string) + strfree(tess_choice.lengths); + } + if (tess_raw.string) { strfree(tess_raw.string); + strfree(tess_raw.lengths); + } return new WERD_CHOICE (word_string.string (), - tess_choice.rating, tess_choice.certainty, - tess_choice.permuter); + word_string_lengths.string (), + tess_choice.rating, tess_choice.certainty, + tess_choice.permuter); } } @@ -323,9 +343,9 @@ LIST call_matcher( //call a matcher PBLOB *nblob; //converted blob LIST result; //tess output BLOB_CHOICE *choice; //current choice - char string[2]; //char converted BLOB_CHOICE_LIST ratings; //matcher result BLOB_CHOICE_IT it; //iterator + char choice_lengths[2] = {0, 0}; blob = make_ed_blob (tessblob);//convert blob if (blob == NULL) @@ -341,13 +361,12 @@ LIST call_matcher( //call a matcher delete nblob; it.set_to_list (&ratings); //get list result = NULL; - string[1] = '\0'; for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) { choice = it.data (); - string[0] = choice->char_class (); - result = append_choice (result, string, - choice->rating (), choice->certainty (), - choice->config ()); + choice_lengths[0] = strlen(choice->unichar ()); + result = append_choice (result, choice->unichar (), + choice_lengths, choice->rating (), + choice->certainty (), choice->config ()); } return result; //converted list } diff --git a/ccmain/tstruct.cpp b/ccmain/tstruct.cpp index 6d2ebb5bb9..12a9285cb2 100644 --- a/ccmain/tstruct.cpp +++ b/ccmain/tstruct.cpp @@ -59,8 +59,9 @@ WERD *make_ed_word( //construct word for (tblob = tessword->blobs; tblob != NULL; tblob = tblob->next) { blob = make_ed_blob (tblob); - if (blob != NULL) + if (blob != NULL) { blob_it.add_after_then_move (blob); + } } if (!blobs.empty ()) word = new WERD (&blobs, clone); @@ -91,8 +92,9 @@ PBLOB *make_ed_blob( //construct blob } while (!fragments.empty ()) { outline = make_ed_outline (&fragments); - if (outline != NULL) + if (outline != NULL) { out_it.add_after_then_move (outline); + } } if (out_it.empty()) return NULL; //couldn't do it @@ -138,28 +140,29 @@ OUTLINE *make_ed_outline( //constructoutline delete fragment_it.extract (); if (tailpos != headpos) { if (fragment_it.empty ()) { - // tprintf("Bad tailpos (%d,%d), Head=(%d,%d), no fragments.\n", - // fragment->head.x(),fragment->head.y(), - // headpos.x(),headpos.y()); + tprintf("Bad tailpos (%d,%d), Head=(%d,%d), no fragments.\n", + fragment->head.x(),fragment->head.y(), + headpos.x(),headpos.y()); return NULL; } fragment_it.forward (); //find next segment - for (fragment_it.mark_cycle_pt (); !fragment_it.cycled_list () && fragment_it.data ()->head != tailpos; + for (fragment_it.mark_cycle_pt (); !fragment_it.cycled_list () && + fragment_it.data ()->head != tailpos; fragment_it.forward ()); if (fragment_it.data ()->head != tailpos) { - // tprintf("Bad tailpos (%d,%d), Fragments are:\n", - // tailpos.x(),tailpos.y()); + tprintf("Bad tailpos (%d,%d), Fragments are:\n", + tailpos.x(),tailpos.y()); for (fragment_it.mark_cycle_pt (); !fragment_it.cycled_list (); fragment_it.forward ()) { fragment = fragment_it.extract (); - // tprintf("Head=(%d,%d), tail=(%d,%d)\n", - // fragment->head.x(),fragment->head.y(), - // fragment->tail.x(),fragment->tail.y()); + tprintf("Head=(%d,%d), tail=(%d,%d)\n", + fragment->head.x(),fragment->head.y(), + fragment->tail.x(),fragment->tail.y()); delete fragment; } return NULL; //can't do it - // BADFRAGMENTS.error("make_ed_blob",ABORT,NULL); +// BADFRAGMENTS.error("make_ed_blob",ABORT,NULL); } } } @@ -266,7 +269,8 @@ void convert_choice_list( //convert lists //traverse list tesschoice = (A_CHOICE *) result->node; //make one - choice = new BLOB_CHOICE (tesschoice->string[0], tesschoice->rating, tesschoice->certainty, tesschoice->config); + choice = new BLOB_CHOICE (tesschoice->string, tesschoice->rating, + tesschoice->certainty, tesschoice->config); it.add_after_then_move (choice); } destroy_nodes (list, (void (*)(void *)) free_choice); diff --git a/ccstruct/Makefile.in b/ccstruct/Makefile.in index 362d6aaf94..af50688f0d 100644 --- a/ccstruct/Makefile.in +++ b/ccstruct/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,353 +10,202 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = ccstruct -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_ccstruct_a_AR = $(AR) $(ARFLAGS) -libtesseract_ccstruct_a_LIBADD = -am_libtesseract_ccstruct_a_OBJECTS = blobbox.$(OBJEXT) blobs.$(OBJEXT) \ - blread.$(OBJEXT) callcpp.$(OBJEXT) coutln.$(OBJEXT) \ - genblob.$(OBJEXT) labls.$(OBJEXT) linlsq.$(OBJEXT) \ - lmedsq.$(OBJEXT) mod128.$(OBJEXT) normalis.$(OBJEXT) \ - ocrblock.$(OBJEXT) ocrrow.$(OBJEXT) pageblk.$(OBJEXT) \ - pageres.$(OBJEXT) pdblock.$(OBJEXT) points.$(OBJEXT) \ - polyaprx.$(OBJEXT) polyblk.$(OBJEXT) polyblob.$(OBJEXT) \ - polyvert.$(OBJEXT) poutline.$(OBJEXT) quadlsq.$(OBJEXT) \ - quadratc.$(OBJEXT) quspline.$(OBJEXT) ratngs.$(OBJEXT) \ - rect.$(OBJEXT) rejctmap.$(OBJEXT) rwpoly.$(OBJEXT) \ - statistc.$(OBJEXT) stepblob.$(OBJEXT) txtregn.$(OBJEXT) \ - vecfuncs.$(OBJEXT) werd.$(OBJEXT) -libtesseract_ccstruct_a_OBJECTS = \ - $(am_libtesseract_ccstruct_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_ccstruct_a_SOURCES) -DIST_SOURCES = $(libtesseract_ccstruct_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = -AM_CPPFLAGS = \ - -I$(top_srcdir)/ccutil -I$(top_srcdir)/cutil \ - -I$(top_srcdir)/image -I$(top_srcdir)/viewer - -include_HEADERS = \ - blckerr.h blobbox.h blobs.h blread.h coutln.h crakedge.h \ - genblob.h hpddef.h hpdsizes.h ipoints.h labls.h linlsq.h \ - lmedsq.h mod128.h normalis.h ocrblock.h ocrrow.h pageblk.h \ - pageres.h pdblock.h pdclass.h points.h polyaprx.h polyblk.h \ - polyblob.h polyvert.h poutline.h quadlsq.h quadratc.h \ - quspline.h ratngs.h rect.h rejctmap.h rwpoly.h statistc.h \ - stepblob.h txtregn.h vecfuncs.h werd.h +AM_CPPFLAGS = -I$(top_srcdir)/ccutil -I$(top_srcdir)/cutil -I$(top_srcdir)/image -I$(top_srcdir)/viewer + + +include_HEADERS = blckerr.h blobbox.h blobs.h blread.h coutln.h crakedge.h genblob.h hpddef.h hpdsizes.h ipoints.h labls.h linlsq.h lmedsq.h mod128.h normalis.h ocrblock.h ocrrow.h pageblk.h pageres.h pdblock.h pdclass.h points.h polyaprx.h polyblk.h polyblob.h polyvert.h poutline.h quadlsq.h quadratc.h quspline.h ratngs.h rect.h rejctmap.h rwpoly.h statistc.h stepblob.h txtregn.h vecfuncs.h werd.h + lib_LIBRARIES = libtesseract_ccstruct.a -libtesseract_ccstruct_a_SOURCES = \ - blobbox.cpp blobs.cpp blread.cpp callcpp.cpp \ - coutln.cpp genblob.cpp labls.cpp linlsq.cpp \ - lmedsq.cpp mod128.cpp normalis.cpp ocrblock.cpp \ - ocrrow.cpp pageblk.cpp pageres.cpp pdblock.cpp \ - points.cpp polyaprx.cpp polyblk.cpp polyblob.cpp \ - polyvert.cpp poutline.cpp quadlsq.cpp quadratc.cpp \ - quspline.cpp ratngs.cpp rect.cpp rejctmap.cpp \ - rwpoly.cpp statistc.cpp stepblob.cpp txtregn.cpp \ - vecfuncs.cpp werd.cpp - -all: all-recursive +libtesseract_ccstruct_a_SOURCES = blobbox.cpp blobs.cpp blread.cpp callcpp.cpp coutln.cpp genblob.cpp labls.cpp linlsq.cpp lmedsq.cpp mod128.cpp normalis.cpp ocrblock.cpp ocrrow.cpp pageblk.cpp pageres.cpp pdblock.cpp points.cpp polyaprx.cpp polyblk.cpp polyblob.cpp polyvert.cpp poutline.cpp quadlsq.cpp quadratc.cpp quspline.cpp ratngs.cpp rect.cpp rejctmap.cpp rwpoly.cpp statistc.cpp stepblob.cpp txtregn.cpp vecfuncs.cpp werd.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_ccstruct_a_LIBADD = +libtesseract_ccstruct_a_OBJECTS = blobbox.o blobs.o blread.o callcpp.o \ +coutln.o genblob.o labls.o linlsq.o lmedsq.o mod128.o normalis.o \ +ocrblock.o ocrrow.o pageblk.o pageres.o pdblock.o points.o polyaprx.o \ +polyblk.o polyblob.o polyvert.o poutline.o quadlsq.o quadratc.o \ +quspline.o ratngs.o rect.o rejctmap.o rwpoly.o statistc.o stepblob.o \ +txtregn.o vecfuncs.o werd.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/blobbox.P .deps/blobs.P .deps/blread.P \ +.deps/callcpp.P .deps/coutln.P .deps/genblob.P .deps/labls.P \ +.deps/linlsq.P .deps/lmedsq.P .deps/mod128.P .deps/normalis.P \ +.deps/ocrblock.P .deps/ocrrow.P .deps/pageblk.P .deps/pageres.P \ +.deps/pdblock.P .deps/points.P .deps/polyaprx.P .deps/polyblk.P \ +.deps/polyblob.P .deps/polyvert.P .deps/poutline.P .deps/quadlsq.P \ +.deps/quadratc.P .deps/quspline.P .deps/ratngs.P .deps/rect.P \ +.deps/rejctmap.P .deps/rwpoly.P .deps/statistc.P .deps/stepblob.P \ +.deps/txtregn.P .deps/vecfuncs.P .deps/werd.P +SOURCES = $(libtesseract_ccstruct_a_SOURCES) +OBJECTS = $(libtesseract_ccstruct_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ccstruct/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu ccstruct/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu ccstruct/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_ccstruct.a: $(libtesseract_ccstruct_a_OBJECTS) $(libtesseract_ccstruct_a_DEPENDENCIES) - -rm -f libtesseract_ccstruct.a - $(libtesseract_ccstruct_a_AR) libtesseract_ccstruct.a $(libtesseract_ccstruct_a_OBJECTS) $(libtesseract_ccstruct_a_LIBADD) - $(RANLIB) libtesseract_ccstruct.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blobbox.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blobs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blread.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callcpp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coutln.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genblob.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/labls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linlsq.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmedsq.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod128.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/normalis.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocrblock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocrrow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pageblk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pageres.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pdblock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/points.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/polyaprx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/polyblk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/polyblob.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/polyvert.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poutline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quadlsq.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quadratc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quspline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ratngs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rejctmap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rwpoly.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statistc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stepblob.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/txtregn.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vecfuncs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/werd.Po@am__quote@ +maintainer-clean-compile: +libtesseract_ccstruct.a: $(libtesseract_ccstruct_a_OBJECTS) $(libtesseract_ccstruct_a_DEPENDENCIES) + -rm -f libtesseract_ccstruct.a + $(AR) cru libtesseract_ccstruct.a $(libtesseract_ccstruct_a_OBJECTS) $(libtesseract_ccstruct_a_LIBADD) + $(RANLIB) libtesseract_ccstruct.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -367,14 +214,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -386,7 +232,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -394,24 +240,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -421,218 +256,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = ccstruct distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu ccstruct/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/ccstruct/callcpp.cpp b/ccstruct/callcpp.cpp index af67d75c14..bcb3e31942 100644 --- a/ccstruct/callcpp.cpp +++ b/ccstruct/callcpp.cpp @@ -32,6 +32,7 @@ #include "tprintf.h" //#include "strace.h" #include "host.h" +#include "unichar.h" //extern "C" { @@ -60,11 +61,11 @@ INT32 cp_ratings[2]; INT32 cp_confs[2]; INT32 cp_maps[4]; //Global info to control writes of matcher info -INT32 blob_type; //write control -char blob_answer; //correct char -char *word_answer; //correct word -INT32 matcher_pass; //pass in chopper.c -INT32 bits_in_states; //no of bits in states +INT32 blob_type; //write control +char blob_answer[UNICHAR_LEN + 1]; //correct char +char *word_answer; //correct word +INT32 matcher_pass; //pass in chopper.c +INT32 bits_in_states; //no of bits in states #ifndef __UNIX__ /********************************************************************** @@ -76,11 +77,11 @@ INT32 bits_in_states; //no of bits in states void assert( //recog one owrd int testing //assert fail if false ) { - ASSERT_HOST(testing); + ASSERT_HOST(testing); } #endif -void setup_cp_maps() { +void setup_cp_maps() { cp_maps[0] = tess_cp_mapping0; cp_maps[1] = tess_cp_mapping1; cp_maps[2] = tess_cp_mapping2; @@ -101,7 +102,7 @@ const char *format, ... //special message va_start(args, format); //variable list vsprintf(msg, format, args); //Format into msg - va_end(args); + va_end(args); tprintf ("%s", msg); } @@ -117,7 +118,7 @@ char *c_alloc_string( //allocate string void c_free_string( //free a string char *string //string to free ) { - free_string(string); + free_string(string); } @@ -134,7 +135,7 @@ void c_free_struct( //free a structure INT32 count, //no of bytes const char *name //class name ) { - free_struct(deadstruct, count, name); + free_struct(deadstruct, count, name); } @@ -155,7 +156,7 @@ void *c_alloc_mem( //get some memory void c_free_mem( //free mem from alloc_mem void *oldchunk //chunk to free ) { - free_mem(oldchunk); + free_mem(oldchunk); } @@ -163,7 +164,7 @@ void c_check_mem( //check consistency const char *string, //context message INT8 level //level of check ) { - check_mem(string, level); + check_mem(string, level); } #ifndef GRAPHICS_DISABLED @@ -236,7 +237,7 @@ char window_wait( /*move pen */ WINDOW window = (WINDOW) win; GRAPHICS_EVENT event; - await_event(window, TRUE, ANY_EVENT, &event); + await_event(window, TRUE, ANY_EVENT, &event); if (event.type == KEYPRESS_EVENT) return event.key; else @@ -244,7 +245,7 @@ char window_wait( /*move pen */ } #endif -void reverse32(void *ptr) { +void reverse32(void *ptr) { char tmp; char *cptr = (char *) ptr; @@ -257,7 +258,7 @@ void reverse32(void *ptr) { } -void reverse16(void *ptr) { +void reverse16(void *ptr) { char tmp; char *cptr = (char *) ptr; diff --git a/ccstruct/ratngs.cpp b/ccstruct/ratngs.cpp index f06f276c6c..12f0721678 100644 --- a/ccstruct/ratngs.cpp +++ b/ccstruct/ratngs.cpp @@ -32,12 +32,12 @@ ELISTIZE (BLOB_CHOICE) CLISTIZE (BLOB_CHOICE_LIST) CLISTIZE (WERD_CHOICE) * Constructor to build a BLOB_CHOICE from a char, rating and certainty. **********************************************************************/ BLOB_CHOICE::BLOB_CHOICE( //constructor - char src_class, //character + char *src_unichar, //character float src_rating, //rating float src_cert, //certainty INT8 src_config //config (font) ) { - blob_class = src_class; + strcpy(blob_unichar, src_unichar); blob_rating = src_rating; blob_certainty = src_cert; //just copy them blob_config = src_config; @@ -53,11 +53,13 @@ BLOB_CHOICE::BLOB_CHOICE( //constructor WERD_CHOICE::WERD_CHOICE ( //constructor const char *src_string, //word string +const char *src_lengths, //unichar lengths float src_rating, //rating float src_cert, //certainty UINT8 src_permuter //permuter code ): -word_string(src_string) { +word_string(src_string), +word_lengths(src_lengths) { word_rating = src_rating; word_certainty = src_cert; word_permuter = src_permuter; //just copy them @@ -78,6 +80,7 @@ const WERD_CHOICE & second //second word ) { if (word_string.length () == 0 || second.word_string.length () == 0) { word_string = NULL; //make it empty + word_lengths = NULL; } else { //add ratings @@ -87,6 +90,7 @@ const WERD_CHOICE & second //second word word_certainty = second.word_certainty; //cat strings word_string += second.word_string; + word_lengths += second.word_lengths; if (second.word_permuter != word_permuter) word_permuter = COMPOUND_PERM; } @@ -113,61 +117,61 @@ void print_ratings_list( //print whole list tprintf ("%s:", msg); break; case 1: - tprintf ("%s:%c/%g/%g", msg, - c_it.data ()->char_class (), + tprintf ("%s:%s/%g/%g", msg, + c_it.data ()->unichar (), c_it.data ()->rating (), c_it.data ()->certainty ()); break; case 2: - tprintf ("%s:%c/%g/%g %c/%g/%g", msg, - c_it.data ()->char_class (), + tprintf ("%s:%s/%g/%g %s/%g/%g", msg, + c_it.data ()->unichar (), c_it.data ()->rating (), c_it.data ()->certainty (), - c_it.data_relative (1)->char_class (), + c_it.data_relative (1)->unichar (), c_it.data_relative (1)->rating (), c_it.data_relative (1)->certainty ()); break; case 3: - tprintf ("%s:%c/%g/%g %c/%g/%g %c/%g/%g", msg, - c_it.data ()->char_class (), + tprintf ("%s:%s/%g/%g %s/%g/%g %s/%g/%g", msg, + c_it.data ()->unichar (), c_it.data ()->rating (), c_it.data ()->certainty (), - c_it.data_relative (1)->char_class (), + c_it.data_relative (1)->unichar (), c_it.data_relative (1)->rating (), c_it.data_relative (1)->certainty (), - c_it.data_relative (2)->char_class (), + c_it.data_relative (2)->unichar (), c_it.data_relative (2)->rating (), c_it.data_relative (2)->certainty ()); break; case 4: - tprintf ("%s:%c/%g/%g %c/%g/%g %c/%g/%g %c/%g/%g", msg, - c_it.data ()->char_class (), + tprintf ("%s:%s/%g/%g %s/%g/%g %s/%g/%g %s/%g/%g", msg, + c_it.data ()->unichar (), c_it.data ()->rating (), c_it.data ()->certainty (), - c_it.data_relative (1)->char_class (), + c_it.data_relative (1)->unichar (), c_it.data_relative (1)->rating (), c_it.data_relative (1)->certainty (), - c_it.data_relative (2)->char_class (), + c_it.data_relative (2)->unichar (), c_it.data_relative (2)->rating (), c_it.data_relative (2)->certainty (), - c_it.data_relative (3)->char_class (), + c_it.data_relative (3)->unichar (), c_it.data_relative (3)->rating (), c_it.data_relative (3)->certainty ()); break; default: - tprintf ("%s:%c/%g/%g %c/%g/%g %c/%g/%g %c/%g/%g %c/%g/%g", msg, - c_it.data ()->char_class (), + tprintf ("%s:%s/%g/%g %s/%g/%g %s/%g/%g %s/%g/%g %s/%g/%g", msg, + c_it.data ()->unichar (), c_it.data ()->rating (), c_it.data ()->certainty (), - c_it.data_relative (1)->char_class (), + c_it.data_relative (1)->unichar (), c_it.data_relative (1)->rating (), c_it.data_relative (1)->certainty (), - c_it.data_relative (2)->char_class (), + c_it.data_relative (2)->unichar (), c_it.data_relative (2)->rating (), c_it.data_relative (2)->certainty (), - c_it.data_relative (3)->char_class (), + c_it.data_relative (3)->unichar (), c_it.data_relative (3)->rating (), c_it.data_relative (3)->certainty (), - c_it.data_relative (4)->char_class (), + c_it.data_relative (4)->unichar (), c_it.data_relative (4)->rating (), c_it.data_relative (4)->certainty ()); c_it.forward (); @@ -176,8 +180,8 @@ void print_ratings_list( //print whole list c_it.forward (); while (!c_it.at_last ()) { c_it.forward (); - tprintf ("%c/%g/%g", - c_it.data ()->char_class (), + tprintf ("%s/%g/%g", + c_it.data ()->unichar (), c_it.data ()->rating (), c_it.data ()->certainty ()); } @@ -204,14 +208,14 @@ void print_ratings_info( //print summary info best_rat; //rating FLOAT32 best_cert; //certainty - char - first_char; //character + const char* + first_char = NULL; //character FLOAT32 first_rat; //rating FLOAT32 first_cert; //certainty - char - sec_char = 0; //character + const char* + sec_char = NULL; //character FLOAT32 sec_rat = 0.0f; //rating FLOAT32 @@ -221,22 +225,22 @@ void print_ratings_info( //print summary info index = ratings->length (); if (index > 0) { - first_char = c_it.data ()->char_class (); + first_char = c_it.data ()->unichar (); first_rat = c_it.data ()->rating (); first_cert = -c_it.data ()->certainty (); if (index > 1) { - sec_char = c_it.data_relative (1)->char_class (); + sec_char = c_it.data_relative (1)->unichar (); sec_rat = c_it.data_relative (1)->rating (); sec_cert = -c_it.data_relative (1)->certainty (); } else { - sec_char = '~'; + sec_char = NULL; sec_rat = -1; sec_cert = -1; } } else { - first_char = '~'; + first_char = NULL; first_rat = -1; first_cert = -1; } @@ -245,18 +249,18 @@ void print_ratings_info( //print summary info best_cert = -1; for (index = 0, c_it.mark_cycle_pt (); !c_it.cycled_list (); c_it.forward (), index++) { - if (c_it.data ()->char_class () == blob_answer) { + if (strcmp(c_it.data ()->unichar (), blob_answer) == 0) { best_index = index; best_rat = c_it.data ()->rating (); best_cert = -c_it.data ()->certainty (); } } - if (first_char == '\0' || first_char == ' ') - first_char = '~'; - if (sec_char == '\0' || sec_char == ' ') - sec_char = '~'; + if (first_char != NULL && (*first_char == '\0' || *first_char == ' ')) + first_char = NULL; + if (sec_char != NULL && (*sec_char == '\0' || *sec_char == ' ')) + sec_char = NULL; fprintf (matcher_fp, - " " INT32FORMAT " " INT32FORMAT " %g %g %c %g %g %c %g %g\n", - ratings->length (), best_index, best_rat, best_cert, first_char, - first_rat, first_cert, sec_char, sec_rat, sec_cert); + " " INT32FORMAT " " INT32FORMAT " %g %g %s %g %g %s %g %g\n", + ratings->length (), best_index, best_rat, best_cert, first_char != NULL ? first_char : "~", + first_rat, first_cert, sec_char != NULL ? sec_char : "~", sec_rat, sec_cert); } diff --git a/ccstruct/ratngs.h b/ccstruct/ratngs.h index 6cae9b5877..5d7d58b2f3 100644 --- a/ccstruct/ratngs.h +++ b/ccstruct/ratngs.h @@ -20,24 +20,25 @@ #ifndef RATNGS_H #define RATNGS_H -#include "clst.h" -#include "werd.h" -#include "notdll.h" +#include "clst.h" +#include "werd.h" +#include "notdll.h" +#include "unichar.h" class BLOB_CHOICE:public ELIST_LINK { public: BLOB_CHOICE() { //empty } - BLOB_CHOICE( //constructor - char src_class, //character - float src_rating, //rating - float src_cert, //certainty - INT8 src_config); //config (font) + BLOB_CHOICE( //constructor + char *src_unichar, //character + float src_rating, //rating + float src_cert, //certainty + INT8 src_config); //config (font) - void set_class( //change it - char newchar) { - blob_class = newchar; + void set_unichar( //change it + char *newunichar) { + strcpy(blob_unichar, newunichar); } void set_rating( //change it float newrat) { @@ -52,8 +53,8 @@ class BLOB_CHOICE:public ELIST_LINK blob_config = newfont; } - char char_class() const { //access function - return blob_class; + const char* const unichar() const { //access function + return blob_unichar; } float rating() const { //access function return blob_rating; @@ -66,11 +67,11 @@ class BLOB_CHOICE:public ELIST_LINK } NEWDELETE private: - char blob_class; //char code - char blob_config; //char config (font) + char blob_unichar[UNICHAR_LEN + 1]; //unichar + char blob_config; //char config (font) INT16 junk2; - float blob_rating; //size related - float blob_certainty; //absolute + float blob_rating; //size related + float blob_certainty; //absolute }; //make them listable @@ -97,14 +98,19 @@ WERD_CHOICE } WERD_CHOICE( //constructor const char *src_string, //word string + const char *src_lengths, //unichar lengths float src_rating, //rating float src_cert, //certainty UINT8 src_permuter); //permuter code //access function - const STRING &string() const { + const STRING &string() const { return word_string; } + //access function + const STRING &lengths() const { + return word_lengths; + } float rating() const { //access function return word_rating; @@ -125,6 +131,7 @@ WERD_CHOICE NEWDELETE private: STRING word_string; //text + STRING word_lengths; //unichar lengths for the string float word_rating; //size related float word_certainty; //absolute UINT8 word_permuter; //permuter code diff --git a/ccutil/Makefile.in b/ccutil/Makefile.in index 6a084f5c79..29fcc30e05 100644 --- a/ccutil/Makefile.in +++ b/ccutil/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,328 +10,196 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = ccutil -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_ccutil_a_AR = $(AR) $(ARFLAGS) -libtesseract_ccutil_a_LIBADD = -am_libtesseract_ccutil_a_OBJECTS = basedir.$(OBJEXT) bits16.$(OBJEXT) \ - clst.$(OBJEXT) debugwin.$(OBJEXT) elst.$(OBJEXT) \ - elst2.$(OBJEXT) errcode.$(OBJEXT) globaloc.$(OBJEXT) \ - hashfn.$(OBJEXT) mainblk.$(OBJEXT) memblk.$(OBJEXT) \ - memry.$(OBJEXT) ocrshell.$(OBJEXT) serialis.$(OBJEXT) \ - strngs.$(OBJEXT) tprintf.$(OBJEXT) varable.$(OBJEXT) \ - unichar.$(OBJEXT) tessopt.$(OBJEXT) unicharmap.$(OBJEXT) \ - unicharset.$(OBJEXT) -libtesseract_ccutil_a_OBJECTS = $(am_libtesseract_ccutil_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_ccutil_a_SOURCES) -DIST_SOURCES = $(libtesseract_ccutil_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = AM_CXXFLAGS = -DTESSDATA_PREFIX=@datadir@/ -include_HEADERS = \ - basedir.h bits16.h clst.h debugwin.h elst2.h elst.h errcode.h \ - fileerr.h tessopt.h globaloc.h hashfn.h host.h hosthplb.h lsterr.h \ - mainblk.h memblk.h memryerr.h memry.h mfcpch.h ndminx.h notdll.h \ - nwmain.h ocrclass.h ocrshell.h platform.h secname.h serialis.h \ - stderr.h strngs.h tessclas.h tprintf.h varable.h \ - mfcpch.cpp scanutils.cpp scanutils.h unichar.h \ - unicharmap.h unicharset.h + +include_HEADERS = basedir.h bits16.h clst.h debugwin.h elst2.h elst.h errcode.h fileerr.h tessopt.h globaloc.h hashfn.h host.h hosthplb.h lsterr.h mainblk.h memblk.h memryerr.h memry.h mfcpch.h ndminx.h notdll.h nwmain.h ocrclass.h ocrshell.h platform.h secname.h serialis.h stderr.h strngs.h tessclas.h tprintf.h varable.h mfcpch.cpp scanutils.cpp scanutils.h unichar.h unicharmap.h unicharset.h + lib_LIBRARIES = libtesseract_ccutil.a -libtesseract_ccutil_a_SOURCES = \ - basedir.cpp bits16.cpp clst.cpp debugwin.cpp elst.cpp \ - elst2.cpp errcode.cpp globaloc.cpp hashfn.cpp mainblk.cpp \ - memblk.cpp memry.cpp ocrshell.cpp serialis.cpp strngs.cpp \ - tprintf.cpp varable.cpp unichar.cpp tessopt.cpp \ - unicharmap.cpp unicharset.cpp +libtesseract_ccutil_a_SOURCES = basedir.cpp bits16.cpp clst.cpp debugwin.cpp elst.cpp elst2.cpp errcode.cpp globaloc.cpp hashfn.cpp mainblk.cpp memblk.cpp memry.cpp ocrshell.cpp serialis.cpp strngs.cpp tprintf.cpp varable.cpp unichar.cpp tessopt.cpp unicharmap.cpp unicharset.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) -all: all-recursive +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_ccutil_a_LIBADD = +libtesseract_ccutil_a_OBJECTS = basedir.o bits16.o clst.o debugwin.o \ +elst.o elst2.o errcode.o globaloc.o hashfn.o mainblk.o memblk.o memry.o \ +ocrshell.o serialis.o strngs.o tprintf.o varable.o unichar.o tessopt.o \ +unicharmap.o unicharset.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/basedir.P .deps/bits16.P .deps/clst.P \ +.deps/debugwin.P .deps/elst.P .deps/elst2.P .deps/errcode.P \ +.deps/globaloc.P .deps/hashfn.P .deps/mainblk.P .deps/memblk.P \ +.deps/memry.P .deps/ocrshell.P .deps/serialis.P .deps/strngs.P \ +.deps/tessopt.P .deps/tprintf.P .deps/unichar.P .deps/unicharmap.P \ +.deps/unicharset.P .deps/varable.P +SOURCES = $(libtesseract_ccutil_a_SOURCES) +OBJECTS = $(libtesseract_ccutil_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ccutil/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu ccutil/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu ccutil/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_ccutil.a: $(libtesseract_ccutil_a_OBJECTS) $(libtesseract_ccutil_a_DEPENDENCIES) - -rm -f libtesseract_ccutil.a - $(libtesseract_ccutil_a_AR) libtesseract_ccutil.a $(libtesseract_ccutil_a_OBJECTS) $(libtesseract_ccutil_a_LIBADD) - $(RANLIB) libtesseract_ccutil.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basedir.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bits16.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clst.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debugwin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elst.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elst2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/errcode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globaloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashfn.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mainblk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memblk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memry.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocrshell.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serialis.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strngs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tessopt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unichar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unicharmap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unicharset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/varable.Po@am__quote@ +maintainer-clean-compile: +libtesseract_ccutil.a: $(libtesseract_ccutil_a_OBJECTS) $(libtesseract_ccutil_a_DEPENDENCIES) + -rm -f libtesseract_ccutil.a + $(AR) cru libtesseract_ccutil.a $(libtesseract_ccutil_a_OBJECTS) $(libtesseract_ccutil_a_LIBADD) + $(RANLIB) libtesseract_ccutil.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -342,14 +208,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -361,7 +226,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -369,24 +234,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -396,218 +250,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = ccutil distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu ccutil/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/ccutil/host.h b/ccutil/host.h index 6b2a3c2c19..877c5d5b83 100644 --- a/ccutil/host.h +++ b/ccutil/host.h @@ -159,6 +159,8 @@ typedef unsigned short UINT16; #if (_MSC_VER < 1200) //%%% vkr for VC 6.0 typedef int INT32; typedef unsigned int UINT32; +typedef long long int INT64; +typedef unsigned long long int UINT64; #endif //%%% vkr for VC 6.0 typedef float FLOAT32; typedef double FLOAT64; @@ -192,6 +194,7 @@ typedef const double *PCFLOAT64; typedef void *PVOID; #define INT32FORMAT "%d" +#define INT64FORMAT "%lld" #define MAX_INT8 0x7f #define MAX_INT16 0x7fff diff --git a/ccutil/ocrshell.cpp b/ccutil/ocrshell.cpp index 1b70ea0672..63b5897fb7 100644 --- a/ccutil/ocrshell.cpp +++ b/ccutil/ocrshell.cpp @@ -467,6 +467,9 @@ INT32 ocr_char_space() { /*put char into shm */ /*progress info */ buf = (ETEXT_DESC *) shm.shm_mem; + if (buf == NULL) + return 0; + result = (shm.shm_size - sizeof (ETEXT_DESC)) / sizeof (EANYCODE_CHAR) - buf->count + 1; @@ -735,8 +738,8 @@ INT16 release_ocr() { /*release semaphore */ timeout = RELEASE_TIMEOUT * TICKS; #ifdef __MSW32__ - -//jetsoft + +//jetsoft // this stuff is old and no longer applies return OKAY; diff --git a/ccutil/unicharset.cpp b/ccutil/unicharset.cpp index 71d4e00913..27727b9098 100644 --- a/ccutil/unicharset.cpp +++ b/ccutil/unicharset.cpp @@ -25,6 +25,11 @@ #include "unichar.h" #include "unicharset.h" +static const int ISALPHA_MASK = 0x1; +static const int ISLOWER_MASK = 0x2; +static const int ISUPPER_MASK = 0x4; +static const int ISDIGIT_MASK = 0x8; + UNICHARSET::UNICHARSET() : unichars(NULL), ids(), @@ -43,7 +48,7 @@ void UNICHARSET::reserve(int unichars_number) { { UNICHAR_SLOT* unichars_new = new UNICHAR_SLOT[unichars_number]; for (int i = 0; i < size_used; ++i) - memcpy(unichars_new[i], unichars[i], sizeof (UNICHAR_SLOT)); + memcpy(&unichars_new[i], &unichars[i], sizeof (UNICHAR_SLOT)); delete[] unichars; unichars = unichars_new; size_reserved = unichars_number; @@ -65,7 +70,7 @@ const UNICHAR_ID UNICHARSET::unichar_to_id(const char* const unichar_repr, const char* const UNICHARSET::id_to_unichar(UNICHAR_ID id) const { assert(id < this->size()); - return unichars[id]; + return unichars[id].representation; } void UNICHARSET::unichar_insert(const char* const unichar_repr) { @@ -78,7 +83,7 @@ void UNICHARSET::unichar_insert(const char* const unichar_repr) { reserve(2 * size_used); } - strcpy(unichars[size_used], unichar_repr); + strcpy(unichars[size_used].representation, unichar_repr); ids.insert(unichar_repr, size_used); ++size_used; } @@ -100,10 +105,21 @@ bool UNICHARSET::save_to_file(const char* filename) const { fprintf(file, "%d\n", this->size()); for (UNICHAR_ID id = 0; id < this->size(); ++id) { + unsigned int properties = 0; + + if (this->get_isalpha(id)) + properties |= ISALPHA_MASK; + if (this->get_islower(id)) + properties |= ISLOWER_MASK; + if (this->get_isupper(id)) + properties |= ISUPPER_MASK; + if (this->get_isdigit(id)) + properties |= ISDIGIT_MASK; + if (strcmp(this->id_to_unichar(id), " ") == 0) - fprintf(file, "%s\n", "NULL"); + fprintf(file, "%s %x\n", "NULL", properties); else - fprintf(file, "%s\n", this->id_to_unichar(id)); + fprintf(file, "%s %x\n", this->id_to_unichar(id), properties); } fclose(file); return true; @@ -127,9 +143,10 @@ bool UNICHARSET::load_from_file(const char* filename) { this->reserve(unicharset_size); for (UNICHAR_ID id = 0; id < unicharset_size; ++id) { char unichar[256]; + unsigned int properties; if (fgets(buffer, sizeof (buffer), file) == NULL || - sscanf(buffer, "%s", unichar) != 1) + sscanf(buffer, "%s %x", unichar, &properties) != 2) { fclose(file); return false; @@ -138,6 +155,11 @@ bool UNICHARSET::load_from_file(const char* filename) { this->unichar_insert(" "); else this->unichar_insert(unichar); + + this->set_isalpha(id, properties & ISALPHA_MASK); + this->set_islower(id, properties & ISLOWER_MASK); + this->set_isupper(id, properties & ISUPPER_MASK); + this->set_isdigit(id, properties & ISDIGIT_MASK); } fclose(file); return true; diff --git a/ccutil/unicharset.h b/ccutil/unicharset.h index c20aa4916a..9f9b0c8573 100644 --- a/ccutil/unicharset.h +++ b/ccutil/unicharset.h @@ -84,9 +84,107 @@ class UNICHARSET { // true if the operation is successful. bool load_from_file(const char* const filename); + // Set the isalpha property of the given unichar to the given value. + void set_isalpha(UNICHAR_ID unichar_id, bool value) { + unichars[unichar_id].properties.isalpha = value; + } + + // Set the islower property of the given unichar to the given value. + void set_islower(UNICHAR_ID unichar_id, bool value) { + unichars[unichar_id].properties.islower = value; + } + + // Set the isupper property of the given unichar to the given value. + void set_isupper(UNICHAR_ID unichar_id, bool value) { + unichars[unichar_id].properties.isupper = value; + } + + // Set the isdigit property of the given unichar to the given value. + void set_isdigit(UNICHAR_ID unichar_id, bool value) { + unichars[unichar_id].properties.isdigit = value; + } + + // Return the isalpha property of the given unichar. + bool get_isalpha(UNICHAR_ID unichar_id) const { + return unichars[unichar_id].properties.isalpha; + } + + // Return the islower property of the given unichar. + bool get_islower(UNICHAR_ID unichar_id) const { + return unichars[unichar_id].properties.islower; + } + + // Return the isupper property of the given unichar. + bool get_isupper(UNICHAR_ID unichar_id) const { + return unichars[unichar_id].properties.isupper; + } + + // Return the isdigit property of the given unichar. + bool get_isdigit(UNICHAR_ID unichar_id) const { + return unichars[unichar_id].properties.isdigit; + } + + // Return the isalpha property of the given unichar representation. + bool get_isalpha(const char* const unichar_repr) const { + return get_isalpha(unichar_to_id(unichar_repr)); + } + + // Return the islower property of the given unichar representation. + bool get_islower(const char* const unichar_repr) const { + return get_islower(unichar_to_id(unichar_repr)); + } + + // Return the isupper property of the given unichar representation. + bool get_isupper(const char* const unichar_repr) const { + return get_isupper(unichar_to_id(unichar_repr)); + } + + // Return the isdigit property of the given unichar representation. + bool get_isdigit(const char* const unichar_repr) const { + return get_isdigit(unichar_to_id(unichar_repr)); + } + + // Return the isalpha property of the given unichar representation. + // Only the first length characters from unichar_repr are used. + bool get_isalpha(const char* const unichar_repr, + int length) const { + return get_isalpha(unichar_to_id(unichar_repr, length)); + } + + // Return the islower property of the given unichar representation. + // Only the first length characters from unichar_repr are used. + bool get_islower(const char* const unichar_repr, + int length) const { + return get_islower(unichar_to_id(unichar_repr, length)); + } + + // Return the isupper property of the given unichar representation. + // Only the first length characters from unichar_repr are used. + bool get_isupper(const char* const unichar_repr, + int length) const { + return get_isupper(unichar_to_id(unichar_repr, length)); + } + + // Return the isdigit property of the given unichar representation. + // Only the first length characters from unichar_repr are used. + bool get_isdigit(const char* const unichar_repr, + int length) const { + return get_isdigit(unichar_to_id(unichar_repr, length)); + } + private: - typedef char UNICHAR_SLOT[UNICHAR_LEN + 1]; + struct UNICHAR_PROPERTIES { + bool isalpha; + bool islower; + bool isupper; + bool isdigit; + }; + + struct UNICHAR_SLOT { + char representation[UNICHAR_LEN + 1]; + UNICHAR_PROPERTIES properties; + }; UNICHAR_SLOT* unichars; UNICHARMAP ids; diff --git a/classify/Makefile.in b/classify/Makefile.in index 91cdf7433c..d69f5544fe 100644 --- a/classify/Makefile.in +++ b/classify/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,350 +10,202 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = classify -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_classify_a_AR = $(AR) $(ARFLAGS) -libtesseract_classify_a_LIBADD = -am_libtesseract_classify_a_OBJECTS = adaptive.$(OBJEXT) \ - adaptmatch.$(OBJEXT) baseline.$(OBJEXT) blobclass.$(OBJEXT) \ - chartoname.$(OBJEXT) cluster.$(OBJEXT) clusttool.$(OBJEXT) \ - cutoffs.$(OBJEXT) extract.$(OBJEXT) featdefs.$(OBJEXT) \ - flexfx.$(OBJEXT) float2int.$(OBJEXT) fpoint.$(OBJEXT) \ - fxdefs.$(OBJEXT) hideedge.$(OBJEXT) intfx.$(OBJEXT) \ - intmatcher.$(OBJEXT) intproto.$(OBJEXT) kdtree.$(OBJEXT) \ - mf.$(OBJEXT) mfdefs.$(OBJEXT) mfoutline.$(OBJEXT) \ - mfx.$(OBJEXT) normfeat.$(OBJEXT) normmatch.$(OBJEXT) \ - ocrfeatures.$(OBJEXT) outfeat.$(OBJEXT) picofeat.$(OBJEXT) \ - protos.$(OBJEXT) sigmenu.$(OBJEXT) speckle.$(OBJEXT) \ - xform2d.$(OBJEXT) -libtesseract_classify_a_OBJECTS = \ - $(am_libtesseract_classify_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_classify_a_SOURCES) -DIST_SOURCES = $(libtesseract_classify_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = -AM_CPPFLAGS = \ - -I$(top_srcdir)/cutil -I$(top_srcdir)/ccutil \ - -I$(top_srcdir)/ccstruct -I$(top_srcdir)/dict \ - -I$(top_srcdir)/viewer - -include_HEADERS = \ - adaptive.h adaptmatch.h baseline.h blobclass.h chartoname.h \ - cluster.h clusttool.h cutoffs.h extern.h extract.h featdefs.h \ - flexfx.h float2int.h fpoint.h fxdefs.h fxid.h hideedge.h \ - intfx.h intmatcher.h intproto.h kdtree.h mfdefs.h mf.h \ - mfoutline.h mfx.h normfeat.h normmatch.h ocrfeatures.h \ - outfeat.h picofeat.h protos.h sigmenu.h speckle.h xform2d.h +AM_CPPFLAGS = -I$(top_srcdir)/cutil -I$(top_srcdir)/ccutil -I$(top_srcdir)/ccstruct -I$(top_srcdir)/dict -I$(top_srcdir)/viewer + + +include_HEADERS = adaptive.h adaptmatch.h baseline.h blobclass.h chartoname.h cluster.h clusttool.h cutoffs.h extern.h extract.h featdefs.h flexfx.h float2int.h fpoint.h fxdefs.h fxid.h hideedge.h intfx.h intmatcher.h intproto.h kdtree.h mfdefs.h mf.h mfoutline.h mfx.h normfeat.h normmatch.h ocrfeatures.h outfeat.h picofeat.h protos.h sigmenu.h speckle.h xform2d.h + lib_LIBRARIES = libtesseract_classify.a -libtesseract_classify_a_SOURCES = \ - adaptive.cpp adaptmatch.cpp baseline.cpp blobclass.cpp \ - chartoname.cpp cluster.cpp clusttool.cpp cutoffs.cpp \ - extract.cpp featdefs.cpp flexfx.cpp float2int.cpp \ - fpoint.cpp fxdefs.cpp hideedge.cpp intfx.cpp intmatcher.cpp \ - intproto.cpp kdtree.cpp mf.cpp mfdefs.cpp mfoutline.cpp \ - mfx.cpp normfeat.cpp normmatch.cpp ocrfeatures.cpp \ - outfeat.cpp picofeat.cpp protos.cpp sigmenu.cpp speckle.cpp \ - xform2d.cpp - -all: all-recursive +libtesseract_classify_a_SOURCES = adaptive.cpp adaptmatch.cpp baseline.cpp blobclass.cpp chartoname.cpp cluster.cpp clusttool.cpp cutoffs.cpp extract.cpp featdefs.cpp flexfx.cpp float2int.cpp fpoint.cpp fxdefs.cpp hideedge.cpp intfx.cpp intmatcher.cpp intproto.cpp kdtree.cpp mf.cpp mfdefs.cpp mfoutline.cpp mfx.cpp normfeat.cpp normmatch.cpp ocrfeatures.cpp outfeat.cpp picofeat.cpp protos.cpp sigmenu.cpp speckle.cpp xform2d.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_classify_a_LIBADD = +libtesseract_classify_a_OBJECTS = adaptive.o adaptmatch.o baseline.o \ +blobclass.o chartoname.o cluster.o clusttool.o cutoffs.o extract.o \ +featdefs.o flexfx.o float2int.o fpoint.o fxdefs.o hideedge.o intfx.o \ +intmatcher.o intproto.o kdtree.o mf.o mfdefs.o mfoutline.o mfx.o \ +normfeat.o normmatch.o ocrfeatures.o outfeat.o picofeat.o protos.o \ +sigmenu.o speckle.o xform2d.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/adaptive.P .deps/adaptmatch.P .deps/baseline.P \ +.deps/blobclass.P .deps/chartoname.P .deps/cluster.P .deps/clusttool.P \ +.deps/cutoffs.P .deps/extract.P .deps/featdefs.P .deps/flexfx.P \ +.deps/float2int.P .deps/fpoint.P .deps/fxdefs.P .deps/hideedge.P \ +.deps/intfx.P .deps/intmatcher.P .deps/intproto.P .deps/kdtree.P \ +.deps/mf.P .deps/mfdefs.P .deps/mfoutline.P .deps/mfx.P \ +.deps/normfeat.P .deps/normmatch.P .deps/ocrfeatures.P .deps/outfeat.P \ +.deps/picofeat.P .deps/protos.P .deps/sigmenu.P .deps/speckle.P \ +.deps/xform2d.P +SOURCES = $(libtesseract_classify_a_SOURCES) +OBJECTS = $(libtesseract_classify_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu classify/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu classify/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu classify/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_classify.a: $(libtesseract_classify_a_OBJECTS) $(libtesseract_classify_a_DEPENDENCIES) - -rm -f libtesseract_classify.a - $(libtesseract_classify_a_AR) libtesseract_classify.a $(libtesseract_classify_a_OBJECTS) $(libtesseract_classify_a_LIBADD) - $(RANLIB) libtesseract_classify.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adaptive.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adaptmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baseline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blobclass.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chartoname.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cluster.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clusttool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cutoffs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/featdefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flexfx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float2int.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpoint.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fxdefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hideedge.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intfx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intmatcher.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intproto.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kdtree.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mfdefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mfoutline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mfx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/normfeat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/normmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocrfeatures.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/outfeat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/picofeat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protos.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigmenu.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/speckle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xform2d.Po@am__quote@ +maintainer-clean-compile: +libtesseract_classify.a: $(libtesseract_classify_a_OBJECTS) $(libtesseract_classify_a_DEPENDENCIES) + -rm -f libtesseract_classify.a + $(AR) cru libtesseract_classify.a $(libtesseract_classify_a_OBJECTS) $(libtesseract_classify_a_LIBADD) + $(RANLIB) libtesseract_classify.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -364,14 +214,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -383,7 +232,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -391,24 +240,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -418,218 +256,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = classify distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu classify/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/classify/adaptive.cpp b/classify/adaptive.cpp index 3e6023bc3b..50f3d31316 100644 --- a/classify/adaptive.cpp +++ b/classify/adaptive.cpp @@ -22,6 +22,7 @@ #include "adaptive.h" #include "emalloc.h" #include "freelist.h" +#include "globals.h" #ifdef __UNIX__ #include @@ -260,8 +261,8 @@ void PrintAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates) { IClass = ClassForIndex (Templates->Templates, i); AClass = Templates->Class[i]; - fprintf (File, "%5d %c %3d %3d %3d %3d\n", - i, ClassIdForIndex (Templates->Templates, i), + fprintf (File, "%5d %s %3d %3d %3d %3d\n", + i, unicharset.id_to_unichar(ClassIdForIndex (Templates->Templates, i)), NumIntConfigsIn (IClass), AClass->NumPermConfigs, NumIntProtosIn (IClass), NumIntProtosIn (IClass) - count (AClass->TempProtos)); @@ -374,8 +375,8 @@ PERM_CONFIG ReadPermConfig(FILE *File) { fread ((char *) &NumAmbigs, sizeof (UINT8), 1, File); Config = (PERM_CONFIG) Emalloc (sizeof (char) * (NumAmbigs + 1)); - fread (Config, sizeof (char), NumAmbigs, File); - Config[NumAmbigs] = '\0'; + fread (Config, sizeof (UNICHAR_ID), NumAmbigs, File); + Config[NumAmbigs] = -1; return (Config); @@ -475,7 +476,7 @@ void WriteAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates) { fwrite ((char *) Templates, sizeof (ADAPT_TEMPLATES_STRUCT), 1, File); /* then write out the basic integer templates */ - WriteIntTemplates (File, Templates->Templates); + WriteIntTemplates (File, Templates->Templates, unicharset); /* then write out the adaptive info for each class */ for (i = 0; i < NumClassesIn (Templates->Templates); i++) { @@ -499,13 +500,14 @@ void WritePermConfig(FILE *File, PERM_CONFIG Config) { ** Exceptions: none ** History: Tue Mar 19 13:55:44 1991, DSJ, Created. */ - UINT8 NumAmbigs; + UINT8 NumAmbigs = 0; assert (Config != NULL); + while (Config[NumAmbigs] > 0) + ++NumAmbigs; - NumAmbigs = strlen (Config); fwrite ((char *) &NumAmbigs, sizeof (UINT8), 1, File); - fwrite (Config, sizeof (char), NumAmbigs, File); + fwrite (Config, sizeof (UNICHAR_ID), NumAmbigs, File); } /* WritePermConfig */ diff --git a/classify/adaptive.h b/classify/adaptive.h index 17c8f52d95..ee1160e2cd 100644 --- a/classify/adaptive.h +++ b/classify/adaptive.h @@ -46,7 +46,7 @@ typedef struct } TEMP_CONFIG_STRUCT; typedef TEMP_CONFIG_STRUCT *TEMP_CONFIG; -typedef char *PERM_CONFIG; +typedef UNICHAR_ID *PERM_CONFIG; typedef union { @@ -99,39 +99,39 @@ int AddAdaptedClass(ADAPT_TEMPLATES Templates, ADAPT_CLASS Class, CLASS_ID ClassId); -void FreeTempProto(void *arg); +void FreeTempProto(void *arg); -void FreeTempConfig(TEMP_CONFIG Config); +void FreeTempConfig(TEMP_CONFIG Config); -ADAPT_CLASS NewAdaptedClass(); +ADAPT_CLASS NewAdaptedClass(); -void free_adapted_class(ADAPT_CLASS adapt_class); +void free_adapted_class(ADAPT_CLASS adapt_class); -ADAPT_TEMPLATES NewAdaptedTemplates(); +ADAPT_TEMPLATES NewAdaptedTemplates(); -void free_adapted_templates(ADAPT_TEMPLATES templates); +void free_adapted_templates(ADAPT_TEMPLATES templates); -TEMP_CONFIG NewTempConfig(int MaxProtoId); +TEMP_CONFIG NewTempConfig(int MaxProtoId); -TEMP_PROTO NewTempProto(); +TEMP_PROTO NewTempProto(); -void PrintAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates); +void PrintAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates); -ADAPT_CLASS ReadAdaptedClass(FILE *File); +ADAPT_CLASS ReadAdaptedClass(FILE *File); -ADAPT_TEMPLATES ReadAdaptedTemplates(FILE *File); +ADAPT_TEMPLATES ReadAdaptedTemplates(FILE *File); -PERM_CONFIG ReadPermConfig(FILE *File); +PERM_CONFIG ReadPermConfig(FILE *File); -TEMP_CONFIG ReadTempConfig(FILE *File); +TEMP_CONFIG ReadTempConfig(FILE *File); -void WriteAdaptedClass(FILE *File, ADAPT_CLASS Class, int NumConfigs); +void WriteAdaptedClass(FILE *File, ADAPT_CLASS Class, int NumConfigs); -void WriteAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates); +void WriteAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates); -void WritePermConfig(FILE *File, PERM_CONFIG Config); +void WritePermConfig(FILE *File, PERM_CONFIG Config); -void WriteTempConfig(FILE *File, TEMP_CONFIG Config); +void WriteTempConfig(FILE *File, TEMP_CONFIG Config); /* #if defined(__STDC__) || defined(__cplusplus) diff --git a/classify/adaptmatch.h b/classify/adaptmatch.h index 6c020ce636..af5b646de9 100644 --- a/classify/adaptmatch.h +++ b/classify/adaptmatch.h @@ -27,6 +27,7 @@ #include "matchdefs.h" #include "adaptive.h" #include "ocrfeatures.h" +#include "ratngs.h" /*--------------------------------------------------------------------------- Variables @@ -41,27 +42,27 @@ extern int LearningDebugLevel; /**---------------------------------------------------------------------------- Public Function Prototypes ----------------------------------------------------------------------------**/ -LIST AdaptiveClassifier(TBLOB *Blob, TBLOB *DotBlob, TEXTROW *Row); +LIST AdaptiveClassifier(TBLOB *Blob, TBLOB *DotBlob, TEXTROW *Row); /**/ void AdaptToWord(TWERD *Word, TEXTROW *Row, - const char *BestChoice, - const char *BestRawChoice, + const WERD_CHOICE& BestChoice, + const WERD_CHOICE& BestRawChoice, const char *rejmap); -void EndAdaptiveClassifier(); +void EndAdaptiveClassifier(); -void InitAdaptiveClassifier(); +void InitAdaptiveClassifier(); void ResetAdaptiveClassifier(); -void InitAdaptiveClassifierVars(); +void InitAdaptiveClassifierVars(); -void PrintAdaptiveStatistics(FILE *File); +void PrintAdaptiveStatistics(FILE *File); -void SettupPass1(); +void SettupPass1(); -void SettupPass2(); +void SettupPass2(); void MakeNewAdaptedClass(TBLOB *Blob, LINE_STATS *LineStats, @@ -75,7 +76,9 @@ int GetAdaptiveFeatures(TBLOB *Blob, int AdaptableWord(TWERD *Word, const char *BestChoice, - const char *BestRawChoice); + const char *BestChoice_lengths, + const char *BestRawChoice, + const char *BestRawChoice_lengths); /**---------------------------------------------------------------------------- Global Data Definitions and Declarations diff --git a/classify/blobclass.cpp b/classify/blobclass.cpp index a086de0f18..7ad4c1ae5c 100644 --- a/classify/blobclass.cpp +++ b/classify/blobclass.cpp @@ -50,7 +50,7 @@ static const char *FontName = FONT_NAME; Public Code ----------------------------------------------------------------------------**/ /*---------------------------------------------------------------------------*/ -void InitBlobClassifierVars() { +void InitBlobClassifierVars() { /* ** Parameters: none ** Globals: @@ -70,7 +70,7 @@ void InitBlobClassifierVars() { /*---------------------------------------------------------------------------*/ void -LearnBlob (TBLOB * Blob, TEXTROW * Row, char BlobText[], int TextLength) +LearnBlob (TBLOB * Blob, TEXTROW * Row, char BlobText[]) /* ** Parameters: ** Blob blob whose micro-features are to be learned @@ -94,38 +94,30 @@ LearnBlob (TBLOB * Blob, TEXTROW * Row, char BlobText[], int TextLength) { static FILE *FeatureFile = NULL; char Filename[MAXFILENAME]; - char CharName[MAXCHARNAME]; CHAR_DESC CharDesc; LINE_STATS LineStats; EnterLearnMode; - // throw out blobs which do not represent only one character - if (TextLength != 1) - return; - - GetLineStatsFromRow(Row, &LineStats); + GetLineStatsFromRow(Row, &LineStats); CharDesc = ExtractBlobFeatures (Blob, &LineStats); // if a feature file is not yet open, open it // the name of the file is the name of the image plus TRAIN_SUFFIX if (FeatureFile == NULL) { - strcpy(Filename, imagefile); - strcat(Filename, TRAIN_SUFFIX); + strcpy(Filename, imagefile); + strcat(Filename, TRAIN_SUFFIX); FeatureFile = Efopen (Filename, "w"); cprintf ("TRAINING ... Font name = %s.\n", FontName); } - // get the name of the character for this blob - chartoname (CharName, BlobText[0], ""); - // label the features with a class name and font name - fprintf (FeatureFile, "\n%s %s ", FontName, CharName); + fprintf (FeatureFile, "\n%s %s ", FontName, BlobText); // write micro-features to file and clean up - WriteCharDescription(FeatureFile, CharDesc); - FreeCharDescription(CharDesc); + WriteCharDescription(FeatureFile, CharDesc); + FreeCharDescription(CharDesc); } // LearnBlob diff --git a/classify/blobclass.h b/classify/blobclass.h index 478ca35ec6..80e603c19e 100644 --- a/classify/blobclass.h +++ b/classify/blobclass.h @@ -38,9 +38,9 @@ /**---------------------------------------------------------------------------- Public Function Prototypes ----------------------------------------------------------------------------**/ -void InitBlobClassifierVars(); +void InitBlobClassifierVars(); -void LearnBlob (TBLOB * Blob, TEXTROW * Row, char BlobText[], int TextLength); +void LearnBlob (TBLOB * Blob, TEXTROW * Row, char BlobText[]); /**---------------------------------------------------------------------------- Global Data Definitions and Declarations diff --git a/classify/cutoffs.cpp b/classify/cutoffs.cpp index 6e15da3663..328a58b668 100644 --- a/classify/cutoffs.cpp +++ b/classify/cutoffs.cpp @@ -21,8 +21,13 @@ #include "cutoffs.h" #include "efio.h" #include "scanutils.h" +#include "serialis.h" +#include "unichar.h" +#include "globals.h" #include +#define REALLY_QUOTE_IT(x) QUOTE_IT(x) + #define MAX_CUTOFF 1000 /**---------------------------------------------------------------------------- @@ -35,7 +40,7 @@ void ReadNewCutoffs(const char *Filename, /* ** Parameters: ** Filename name of file containing cutoff definitions - ** ClassMapper array which maps class id's to class indexes + ** ClassMapper array which maps class id's to class indexes ** Cutoffs array to put cutoffs into ** Globals: none ** Operation: Open Filename, read in all of the class-id/cutoff pairs @@ -48,7 +53,7 @@ void ReadNewCutoffs(const char *Filename, ** History: Wed Feb 20 09:38:26 1991, DSJ, Created. */ FILE *CutoffFile; - char Class[2]; + char Class[UNICHAR_LEN + 1]; CLASS_ID ClassId; int Cutoff; int i; @@ -58,8 +63,9 @@ void ReadNewCutoffs(const char *Filename, for (i = 0; i < MAX_NUM_CLASSES; i++) Cutoffs[i] = MAX_CUTOFF; - while (fscanf (CutoffFile, "%1s %d", Class, &Cutoff) == 2) { - ClassId = Class[0]; + while (fscanf (CutoffFile, "%" REALLY_QUOTE_IT(UNICHAR_LEN) "s %d", + Class, &Cutoff) == 2) { + ClassId = unicharset.unichar_to_id(Class); Cutoffs[ClassMapper[ClassId]] = Cutoff; } fclose(CutoffFile); diff --git a/classify/intproto.h b/classify/intproto.h index 1d8e7516e6..7f8b86f577 100644 --- a/classify/intproto.h +++ b/classify/intproto.h @@ -24,6 +24,7 @@ #include "matchdefs.h" #include "protos.h" #include "callcpp.h" +#include "unicharset.h" /* define order of params in pruners */ #define PRUNER_X 0 @@ -107,8 +108,8 @@ typedef struct { int NumClasses; int NumClassPruners; - CLASS_TO_INDEX IndexFor; /*int16[256] */ - INDEX_TO_CLASS ClassIdFor; /*unit8[100 */ + CLASS_TO_INDEX IndexFor; + INDEX_TO_CLASS ClassIdFor; INT_CLASS Class[MAX_NUM_CLASSES]; CLASS_PRUNER ClassPruner[MAX_NUM_CLASS_PRUNERS]; } @@ -164,7 +165,7 @@ typedef INT_FEATURE_STRUCT INT_FEATURE_ARRAY[MAX_NUM_INT_FEATURES]; #define MaxNumClassesIn(T) (NumClassPrunersIn (T) * CLASSES_PER_CP) #define ClassIdForIndex(T,I) ((T)->ClassIdFor[I]) #define IndexForClassId(T,C) ((T)->IndexFor[C]) -#define LegalClassId(C) ((C) > 0 && (C) < MAX_CLASS_ID) +#define LegalClassId(C) ((C) > 0 && (C) <= MAX_CLASS_ID) #define UnusedClassIdIn(T,C) (IndexForClassId (T,C) == ILLEGAL_CLASS) #define ClassForIndex(T,I) ((T)->Class[I]) #define ClassForClassId(T,C) (ClassForIndex (T, IndexForClassId (T, C))) @@ -194,51 +195,53 @@ typedef INT_FEATURE_STRUCT INT_FEATURE_ARRAY[MAX_NUM_INT_FEATURES]; /**---------------------------------------------------------------------------- Public Function Prototypes ----------------------------------------------------------------------------**/ -int AddIntClass(INT_TEMPLATES Templates, CLASS_ID ClassId, INT_CLASS Class); +int AddIntClass(INT_TEMPLATES Templates, CLASS_ID ClassId, INT_CLASS Class); -int AddIntConfig(INT_CLASS Class); +int AddIntConfig(INT_CLASS Class); -int AddIntProto(INT_CLASS Class); +int AddIntProto(INT_CLASS Class); void AddProtoToClassPruner(PROTO Proto, CLASS_ID ClassId, INT_TEMPLATES Templates); -void AddProtoToProtoPruner(PROTO Proto, int ProtoId, INT_CLASS Class); +void AddProtoToProtoPruner(PROTO Proto, int ProtoId, INT_CLASS Class); -int BucketFor(FLOAT32 Param, FLOAT32 Offset, int NumBuckets); +int BucketFor(FLOAT32 Param, FLOAT32 Offset, int NumBuckets); -int CircBucketFor(FLOAT32 Param, FLOAT32 Offset, int NumBuckets); +int CircBucketFor(FLOAT32 Param, FLOAT32 Offset, int NumBuckets); -void UpdateMatchDisplay(); +void UpdateMatchDisplay(); -void ConvertConfig(BIT_VECTOR Config, int ConfigId, INT_CLASS Class); +void ConvertConfig(BIT_VECTOR Config, int ConfigId, INT_CLASS Class); -void ConvertProto(PROTO Proto, int ProtoId, INT_CLASS Class); +void ConvertProto(PROTO Proto, int ProtoId, INT_CLASS Class); -INT_TEMPLATES CreateIntTemplates(CLASSES FloatProtos); +INT_TEMPLATES CreateIntTemplates(CLASSES FloatProtos, + const UNICHARSET& target_unicharset); -void DisplayIntFeature(INT_FEATURE Feature, FLOAT32 Evidence); +void DisplayIntFeature(INT_FEATURE Feature, FLOAT32 Evidence); -void DisplayIntProto(INT_CLASS Class, PROTO_ID ProtoId, FLOAT32 Evidence); +void DisplayIntProto(INT_CLASS Class, PROTO_ID ProtoId, FLOAT32 Evidence); -void InitIntProtoVars(); +void InitIntProtoVars(); -INT_CLASS NewIntClass(int MaxNumProtos, int MaxNumConfigs); +INT_CLASS NewIntClass(int MaxNumProtos, int MaxNumConfigs); -void free_int_class(INT_CLASS int_class); +void free_int_class(INT_CLASS int_class); -INT_TEMPLATES NewIntTemplates(); +INT_TEMPLATES NewIntTemplates(); -void free_int_templates(INT_TEMPLATES templates); +void free_int_templates(INT_TEMPLATES templates); -INT_TEMPLATES ReadIntTemplates(FILE *File, BOOL8 swap); +INT_TEMPLATES ReadIntTemplates(FILE *File, BOOL8 swap); -void ShowMatchDisplay(); +void ShowMatchDisplay(); -CLASS_ID GetClassToDebug(const char *Prompt); +CLASS_ID GetClassToDebug(const char *Prompt); -void WriteIntTemplates(FILE *File, INT_TEMPLATES Templates); +void WriteIntTemplates(FILE *File, INT_TEMPLATES Templates, + const UNICHARSET& target_unicharset); /* #if defined(__STDC__) || defined(__cplusplus) diff --git a/classify/normmatch.cpp b/classify/normmatch.cpp index c8c1af96c1..bc24333efc 100644 --- a/classify/normmatch.cpp +++ b/classify/normmatch.cpp @@ -38,11 +38,9 @@ typedef struct { int NumParams; PARAM_DESC *ParamDesc; - LIST Protos[MAX_CLASS_ID + 1]; -} - - -NORM_PROTOS; + LIST* Protos; + int NumProtos; +} NORM_PROTOS; /**---------------------------------------------------------------------------- Private Function Prototypes @@ -168,8 +166,9 @@ void GetNormProtos() { void FreeNormProtos() { if (NormProtos != NULL) { - for (int i = 0; i <= MAX_CLASS_ID; i++) + for (int i = 0; i < NormProtos->NumProtos; i++) FreeProtoList(&NormProtos->Protos[i]); + Efree(NormProtos->Protos); Efree(NormProtos->ParamDesc); Efree(NormProtos); NormProtos = NULL; @@ -272,13 +271,16 @@ NORM_PROTOS *ReadNormProtos(FILE *File) { */ NORM_PROTOS *NormProtos; int i; - char ClassId[2]; + char unichar[UNICHAR_LEN + 1]; + UNICHAR_ID unichar_id; LIST Protos; int NumProtos; /* allocate and initialization data structure */ NormProtos = (NORM_PROTOS *) Emalloc (sizeof (NORM_PROTOS)); - for (i = 0; i <= MAX_CLASS_ID; i++) + NormProtos->NumProtos = unicharset.size(); + NormProtos->Protos = (LIST *) Emalloc (NormProtos->NumProtos * sizeof(LIST)); + for (i = 0; i < NormProtos->NumProtos; i++) NormProtos->Protos[i] = NIL; /* read file header and save in data structure */ @@ -286,12 +288,16 @@ NORM_PROTOS *ReadNormProtos(FILE *File) { NormProtos->ParamDesc = ReadParamDesc (File, NormProtos->NumParams); /* read protos for each class into a separate list */ - while (fscanf (File, "%1s %d", ClassId, &NumProtos) == 2) { - Protos = NormProtos->Protos[ClassId[0]]; - for (i = 0; i < NumProtos; i++) - Protos = - push_last (Protos, ReadPrototype (File, NormProtos->NumParams)); - NormProtos->Protos[ClassId[0]] = Protos; + while (fscanf (File, "%s %d", unichar, &NumProtos) == 2) { + if (unicharset.contains_unichar(unichar)) { + unichar_id = unicharset.unichar_to_id(unichar); + Protos = NormProtos->Protos[unichar_id]; + for (i = 0; i < NumProtos; i++) + Protos = + push_last (Protos, ReadPrototype (File, NormProtos->NumParams)); + NormProtos->Protos[unichar_id] = Protos; + } else + cprintf("Error: unichar %s in normproto file is not in unichar set.\n"); } return (NormProtos); diff --git a/classify/protos.cpp b/classify/protos.cpp index 752d84523b..b2cbf21f0c 100644 --- a/classify/protos.cpp +++ b/classify/protos.cpp @@ -33,6 +33,7 @@ #include "callcpp.h" #include "adaptmatch.h" #include "scanutils.h" +#include "globals.h" #include #include @@ -288,42 +289,41 @@ void PrintProtos(CLASS_TYPE Class) { * in. The results are stored in the global variable, 'TrainingData'. **********************************************************************/ void ReadClassFile() { - FILE *File; - char TextLine[CHARS_PER_LINE]; - - cprintf ("Reading training data from '%s' ...", TrainingFile); - fflush(stdout); - - File = open_file (TrainingFile, "r"); - while (fgets (TextLine, CHARS_PER_LINE, File) != NULL) { - - ReadClassFromFile (File, TextLine[0]); - fgets(TextLine, CHARS_PER_LINE, File); - fgets(TextLine, CHARS_PER_LINE, File); - } - fclose(File); - - new_line(); + FILE *File; + char TextLine[CHARS_PER_LINE]; + char unichar[CHARS_PER_LINE]; + + cprintf ("Reading training data from '%s' ...", TrainingFile); + fflush(stdout); + + File = open_file (TrainingFile, "r"); + while (fgets (TextLine, CHARS_PER_LINE, File) != NULL) { + + sscanf(TextLine, "%s", unichar); + ReadClassFromFile (File, unicharset.unichar_to_id(unichar)); + fgets(TextLine, CHARS_PER_LINE, File); + fgets(TextLine, CHARS_PER_LINE, File); + } + fclose(File); + new_line(); } - /********************************************************************** * ReadClassFromFile * * Read in a class description (protos and configs) from a file. Update * the class structure record. **********************************************************************/ -void ReadClassFromFile(FILE *File, char ClassChar) { +void ReadClassFromFile(FILE *File, UNICHAR_ID unichar_id) { CLASS_TYPE Class; - Class = &TrainingData[ClassChar]; + Class = &TrainingData[unichar_id]; ReadProtos(File, Class); ReadConfigs(File, Class); } - /********************************************************************** * ReadConfigs * diff --git a/classify/protos.h b/classify/protos.h index b669cd7fbc..e3b015713b 100644 --- a/classify/protos.h +++ b/classify/protos.h @@ -30,6 +30,7 @@ ----------------------------------------------------------------------*/ #include "bitvec.h" #include "cutil.h" +#include "unichar.h" /*---------------------------------------------------------------------- T y p e s @@ -63,7 +64,7 @@ typedef CLASS_STRUCT *CLASSES; /*---------------------------------------------------------------------- C o n s t a n t s ----------------------------------------------------------------------*/ -#define NUMBER_OF_CLASSES 256 +#define NUMBER_OF_CLASSES MAX_NUM_CLASSES #define Y_OFFSET -40.0 #define FEATURE_SCALE 100.0 @@ -248,41 +249,41 @@ extern CLASS_STRUCT TrainingData[]; /*---------------------------------------------------------------------- F u n c t i o n s ----------------------------------------------------------------------*/ -int AddConfigToClass(CLASS_TYPE Class); +int AddConfigToClass(CLASS_TYPE Class); -int AddProtoToClass(CLASS_TYPE Class); +int AddProtoToClass(CLASS_TYPE Class); -FLOAT32 ClassConfigLength(CLASS_TYPE Class, BIT_VECTOR Config); +FLOAT32 ClassConfigLength(CLASS_TYPE Class, BIT_VECTOR Config); -FLOAT32 ClassProtoLength(CLASS_TYPE Class); +FLOAT32 ClassProtoLength(CLASS_TYPE Class); -void CopyProto(PROTO Src, PROTO Dest); +void CopyProto(PROTO Src, PROTO Dest); -void FillABC(PROTO Proto); +void FillABC(PROTO Proto); -void FreeClass(CLASS_TYPE Class); +void FreeClass(CLASS_TYPE Class); -void FreeClassFields(CLASS_TYPE Class); +void FreeClassFields(CLASS_TYPE Class); -void InitPrototypes(); +void InitPrototypes(); -CLASS_TYPE NewClass(int NumProtos, int NumConfigs); +CLASS_TYPE NewClass(int NumProtos, int NumConfigs); -void PrintProtos(CLASS_TYPE Class); +void PrintProtos(CLASS_TYPE Class); -void ReadClassFile(); +void ReadClassFile(); -void ReadClassFromFile(FILE *File, char ClassChar); +void ReadClassFromFile(FILE *File, UNICHAR_ID unichar_id); -void ReadConfigs(register FILE *File, CLASS_TYPE Class); +void ReadConfigs(register FILE *File, CLASS_TYPE Class); -void ReadProtos(register FILE *File, CLASS_TYPE Class); +void ReadProtos(register FILE *File, CLASS_TYPE Class); -int SplitProto(CLASS_TYPE Class, int OldPid); +int SplitProto(CLASS_TYPE Class, int OldPid); -void WriteOldConfigFile(FILE *File, CLASS_TYPE Class); +void WriteOldConfigFile(FILE *File, CLASS_TYPE Class); -void WriteOldProtoFile(FILE *File, CLASS_TYPE Class); +void WriteOldProtoFile(FILE *File, CLASS_TYPE Class); /* #if defined(__STDC__) || defined(__cplusplus) diff --git a/classify/speckle.cpp b/classify/speckle.cpp index 69106df15b..471b4a39a6 100644 --- a/classify/speckle.cpp +++ b/classify/speckle.cpp @@ -43,7 +43,7 @@ make_float_var (SmallSpeckleCertainty, -1.0, MakeSmallSpeckleCertainty, Public Code ----------------------------------------------------------------------------**/ /*---------------------------------------------------------------------------*/ -LIST AddLargeSpeckleTo(LIST Choices) { +LIST AddLargeSpeckleTo(LIST Choices) { /* ** Parameters: ** Choices choices to add a speckle choice to @@ -61,17 +61,18 @@ LIST AddLargeSpeckleTo(LIST Choices) { ** History: Mon Mar 11 11:08:11 1991, DSJ, Created. */ LIST WorstChoice; + char empty_lengths[] = {0}; /* if there are no other choices, use the small speckle penalty plus the large speckle penalty */ if (Choices == NIL) - return (append_choice (NIL, "", SmallSpecklePenalty + LargeSpecklePenalty, + return (append_choice (NIL, "", empty_lengths, SmallSpecklePenalty + LargeSpecklePenalty, SmallSpeckleCertainty, -1)); /* if there are other choices, add a null choice that is slightly worse than the worst choice so far */ WorstChoice = last (Choices); - return (append_choice (Choices, "", + return (append_choice (Choices, "", empty_lengths, best_probability (WorstChoice) + LargeSpecklePenalty, best_certainty (WorstChoice), -1)); @@ -79,7 +80,7 @@ LIST AddLargeSpeckleTo(LIST Choices) { /*---------------------------------------------------------------------------*/ -void InitSpeckleVars() { +void InitSpeckleVars() { /* ** Parameters: none ** Globals: none @@ -89,15 +90,15 @@ void InitSpeckleVars() { ** Exceptions: none ** History: Mon Mar 11 12:04:59 1991, DSJ, Created. */ - MakeMaxLargeSpeckleSize(); - MakeSmallSpecklePenalty(); - MakeLargeSpecklePenalty(); - MakeSmallSpeckleCertainty(); + MakeMaxLargeSpeckleSize(); + MakeSmallSpecklePenalty(); + MakeLargeSpecklePenalty(); + MakeSmallSpeckleCertainty(); } /* InitSpeckleVars */ /*---------------------------------------------------------------------------*/ -BOOL8 LargeSpeckle(TBLOB *Blob, TEXTROW *Row) { +BOOL8 LargeSpeckle(TBLOB *Blob, TEXTROW *Row) { /* ** Parameters: ** Blob blob to test against speckle criteria @@ -115,7 +116,7 @@ BOOL8 LargeSpeckle(TBLOB *Blob, TEXTROW *Row) { TPOINT BottomRight; SpeckleSize = RowHeight (Row) * MaxLargeSpeckleSize; - blob_bounding_box(Blob, &TopLeft, &BottomRight); + blob_bounding_box(Blob, &TopLeft, &BottomRight); if (TopLeft.y - BottomRight.y < SpeckleSize && BottomRight.x - TopLeft.x < SpeckleSize) diff --git a/configure b/configure index 1ffd9a87d3..39f00a89d9 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for Tesseract 1.04. +# Generated by GNU Autoconf 2.59 for tesseract 2.00. # # Report bugs to . # @@ -268,10 +268,10 @@ SHELL=${CONFIG_SHELL-/bin/sh} : ${ac_max_here_lines=38} # Identity of this package. -PACKAGE_NAME='Tesseract' +PACKAGE_NAME='tesseract' PACKAGE_TARNAME='tesseract' -PACKAGE_VERSION='1.04' -PACKAGE_STRING='Tesseract 1.04' +PACKAGE_VERSION='2.00' +PACKAGE_STRING='tesseract 2.00' PACKAGE_BUGREPORT='theraysmith@gmail.com' ac_unique_file="ccmain/tesseractmain.cpp" @@ -313,7 +313,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os PACKAGE_YEAR PACKAGE_DATE CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT USING_CL_TRUE USING_CL_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CXXCPP EGREP LIBTIFF_LIBS LIBTIFF_CFLAGS HAVE_LIBTIFF_TRUE HAVE_LIBTIFF_FALSE LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os PACKAGE_YEAR PACKAGE_DATE CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT USING_CL_TRUE USING_CL_FALSE CC CFLAGS ac_ct_CC RANLIB ac_ct_RANLIB CXXCPP EGREP LIBTIFF_LIBS LIBTIFF_CFLAGS HAVE_LIBTIFF_TRUE HAVE_LIBTIFF_FALSE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -798,7 +798,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Tesseract 1.04 to adapt to many kinds of systems. +\`configure' configures tesseract 2.00 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -864,17 +864,15 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Tesseract 1.04:";; + short | recursive ) echo "Configuration of tesseract 2.00:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer --disable-largefile omit support for large files Optional Packages: @@ -993,14 +991,14 @@ esac else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi - cd $ac_popdir + cd "$ac_popdir" done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -Tesseract configure 1.04 +tesseract configure 2.00 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1014,7 +1012,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Tesseract $as_me 1.04, which was +It was created by tesseract $as_me 2.00, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1437,7 +1435,7 @@ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # documentation. # TODO(luc) Generate good documentation using doxygen or equivalent PACKAGE_YEAR=2007 -PACKAGE_DATE="05/2007" +PACKAGE_DATE="07/2007" cat >>confdefs.h <<_ACEOF @@ -1868,8 +1866,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -1927,8 +1924,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -1999,8 +1995,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2044,8 +2039,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2089,7 +2083,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # archives. # TODO(luc) Resolve this issue. #AM_INIT_AUTOMAKE(dist-zip) -am__api_version="1.9" +am__api_version="1.4" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -2173,21 +2167,20 @@ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 -echo timestamp > conftest.file +echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` + set X `ls -t $srcdir/configure conftestfile` fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a @@ -2200,7 +2193,7 @@ alias in your environment" >&2;} { (exit 1); exit 1; }; } fi - test "$2" = conftest.file + test "$2" = conftestfile ) then # Ok. @@ -2212,6 +2205,7 @@ echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi +rm -f conftest* echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && @@ -2227,92 +2221,6 @@ _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` @@ -2342,103 +2250,17 @@ echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -DEPDIR="${am__leading_dot}deps" - - ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval="$enable_dependency_tracking" - -fi; -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi +PACKAGE= +VERSION= - -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='tesseract' - VERSION='1.04' - - cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF @@ -2448,235 +2270,90 @@ cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 +missing_dir=`cd $ac_aux_dir && pwd` +echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5 +echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal-${am__api_version} + echo "$as_me:$LINENO: result: found" >&5 +echo "${ECHO_T}found" >&6 else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" + echo "$as_me:$LINENO: result: missing" >&5 +echo "${ECHO_T}missing" >&6 fi -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +echo "$as_me:$LINENO: checking for working autoconf" >&5 +echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$as_me:$LINENO: result: found" >&5 +echo "${ECHO_T}found" >&6 else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + AUTOCONF="$missing_dir/missing autoconf" + echo "$as_me:$LINENO: result: missing" >&5 +echo "${ECHO_T}missing" >&6 fi - STRIP=$ac_ct_STRIP +echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5 +echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake-${am__api_version} + echo "$as_me:$LINENO: result: found" >&5 +echo "${ECHO_T}found" >&6 else - STRIP="$ac_cv_prog_STRIP" + AUTOMAKE="$missing_dir/missing automake-${am__api_version}" + echo "$as_me:$LINENO: result: missing" >&5 +echo "${ECHO_T}missing" >&6 fi -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - -depcc="$CXX" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +echo "$as_me:$LINENO: checking for working autoheader" >&5 +echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$as_me:$LINENO: result: found" >&5 +echo "${ECHO_T}found" >&6 else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - + AUTOHEADER="$missing_dir/missing autoheader" + echo "$as_me:$LINENO: result: missing" >&5 +echo "${ECHO_T}missing" >&6 fi -echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' +echo "$as_me:$LINENO: checking for working makeinfo" >&5 +echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$as_me:$LINENO: result: found" >&5 +echo "${ECHO_T}found" >&6 else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= + MAKEINFO="$missing_dir/missing makeinfo" + echo "$as_me:$LINENO: result: missing" >&5 +echo "${ECHO_T}missing" >&6 fi ac_config_headers="$ac_config_headers config_auto.h:config/config.h.in" + ac_config_commands="$ac_config_commands default-1" + #AM_PROG_CC_C_O echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 @@ -2698,7 +2375,6 @@ else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi - MAINT=$MAINTAINER_MODE_TRUE @@ -2713,7 +2389,6 @@ else USING_CL_FALSE= fi - # Additional checking of compiler characteristics # ---------------------------------------- @@ -3087,8 +2762,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3146,8 +2820,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3263,8 +2936,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3318,8 +2990,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3364,8 +3035,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3409,8 +3079,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3449,115 +3118,6 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -depcc="$CC" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 @@ -3594,8 +3154,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3637,8 +3196,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3695,8 +3253,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4267,8 +3824,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4433,8 +3989,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4504,8 +4059,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4574,8 +4128,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4643,8 +4196,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4794,8 +4346,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4972,8 +4523,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5028,8 +4578,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5142,8 +4691,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5172,8 +4720,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5243,8 +4790,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5296,8 +4842,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5368,8 +4913,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5421,8 +4965,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5494,8 +5037,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5559,8 +5101,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5625,8 +5166,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5693,8 +5233,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5769,8 +5308,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5954,8 +5492,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6194,8 +5731,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6263,8 +5799,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6449,8 +5984,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6492,18 +6026,24 @@ else ac_cv_func_fork_works=cross else cat >conftest.$ac_ext <<_ACEOF -/* By Ruediger Kuhlmann. */ - #include - #if HAVE_UNISTD_H - # include - #endif - /* Some systems only have a dummy stub for fork() */ - int main () - { - if (fork() < 0) - exit (1); - exit (0); - } +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* By Ruediger Kuhlmann. */ + if (fork() < 0) + exit (1); + exit (0); + + ; + return 0; +} _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 @@ -6783,8 +6323,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6885,8 +6424,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6988,8 +6526,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7091,8 +6628,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7294,8 +6830,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7360,7 +6895,6 @@ fi - # ---------------------------------------- # Final Tasks and Output # ---------------------------------------- @@ -7399,6 +6933,12 @@ fi ac_config_files="$ac_config_files tessdata/Makefile" + ac_config_files="$ac_config_files tessdata/configs/Makefile" + + ac_config_files="$ac_config_files tessdata/tessconfigs/Makefile" + + ac_config_files="$ac_config_files testing/Makefile" + ac_config_files="$ac_config_files dlltest/Makefile" # AC_CONFIG_FILES(doc/Doxyfile) @@ -7498,48 +7038,6 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${USING_CL_TRUE}" && test -z "${USING_CL_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"USING_CL\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"USING_CL\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_LIBTIFF_TRUE}" && test -z "${HAVE_LIBTIFF_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_LIBTIFF\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_LIBTIFF\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files @@ -7811,7 +7309,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by Tesseract $as_me 1.04, which was +This file was extended by tesseract $as_me 2.00, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7874,7 +7372,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -Tesseract config.status 1.04 +tesseract config.status 2.00 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" @@ -7973,7 +7471,7 @@ cat >>$CONFIG_STATUS <<_ACEOF # INIT-COMMANDS section. # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + _ACEOF @@ -7998,8 +7496,11 @@ do "wordrec/Makefile" ) CONFIG_FILES="$CONFIG_FILES wordrec/Makefile" ;; "training/Makefile" ) CONFIG_FILES="$CONFIG_FILES training/Makefile" ;; "tessdata/Makefile" ) CONFIG_FILES="$CONFIG_FILES tessdata/Makefile" ;; + "tessdata/configs/Makefile" ) CONFIG_FILES="$CONFIG_FILES tessdata/configs/Makefile" ;; + "tessdata/tessconfigs/Makefile" ) CONFIG_FILES="$CONFIG_FILES tessdata/tessconfigs/Makefile" ;; + "testing/Makefile" ) CONFIG_FILES="$CONFIG_FILES testing/Makefile" ;; "dlltest/Makefile" ) CONFIG_FILES="$CONFIG_FILES dlltest/Makefile" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "config_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config_auto.h:config/config.h.in" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} @@ -8106,7 +7607,6 @@ s,@OBJEXT@,$OBJEXT,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t @@ -8114,26 +7614,7 @@ s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CXXDEPMODE@,$CXXDEPMODE,;t t -s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t -s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t @@ -8142,9 +7623,6 @@ s,@USING_CL_FALSE@,$USING_CL_FALSE,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CXXCPP@,$CXXCPP,;t t @@ -8321,11 +7799,6 @@ esac *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ @@ -8364,6 +7837,12 @@ echo "$as_me: error: cannot find input file: $f" >&2;} fi;; esac done` || { (exit 1); exit 1; } + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub @@ -8614,28 +8093,6 @@ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} cat $tmp/config.h rm -f $tmp/config.h fi -# Compute $ac_file's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $ac_file | $ac_file:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X$ac_file | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'`/stamp-h$_am_stamp_count done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF @@ -8752,91 +8209,7 @@ esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`(dirname "$mf") 2>/dev/null || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} - { (exit 1); exit 1; }; }; } - - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; + default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;; esac done _ACEOF diff --git a/cutil/Makefile.in b/cutil/Makefile.in index 98ea3cb242..6c500bb7c2 100644 --- a/cutil/Makefile.in +++ b/cutil/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,315 +10,193 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = cutil -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_cutil_a_AR = $(AR) $(ARFLAGS) -libtesseract_cutil_a_LIBADD = -am_libtesseract_cutil_a_OBJECTS = tessarray.$(OBJEXT) bitvec.$(OBJEXT) \ - cutil.$(OBJEXT) danerror.$(OBJEXT) debug.$(OBJEXT) \ - efio.$(OBJEXT) emalloc.$(OBJEXT) freelist.$(OBJEXT) \ - globals.$(OBJEXT) listio.$(OBJEXT) oldheap.$(OBJEXT) \ - oldlist.$(OBJEXT) structures.$(OBJEXT) tordvars.$(OBJEXT) \ - variables.$(OBJEXT) -libtesseract_cutil_a_OBJECTS = $(am_libtesseract_cutil_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_cutil_a_SOURCES) -DIST_SOURCES = $(libtesseract_cutil_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = AM_CPPFLAGS = -I$(top_srcdir)/ccutil -include_HEADERS = \ - bitvec.h callcpp.h const.h cutil.h danerror.h debug.h efio.h \ - emalloc.h freelist.h funcdefs.h general.h globals.h listio.h \ - minmax.h oldheap.h oldlist.h structures.h tessarray.h \ - tordvars.h variables.h + +include_HEADERS = bitvec.h callcpp.h const.h cutil.h danerror.h debug.h efio.h emalloc.h freelist.h funcdefs.h general.h globals.h listio.h minmax.h oldheap.h oldlist.h structures.h tessarray.h tordvars.h variables.h + lib_LIBRARIES = libtesseract_cutil.a -libtesseract_cutil_a_SOURCES = \ - tessarray.cpp bitvec.cpp cutil.cpp danerror.cpp debug.cpp efio.cpp \ - emalloc.cpp freelist.cpp globals.cpp listio.cpp oldheap.cpp \ - oldlist.cpp structures.cpp tordvars.cpp variables.cpp +libtesseract_cutil_a_SOURCES = tessarray.cpp bitvec.cpp cutil.cpp danerror.cpp debug.cpp efio.cpp emalloc.cpp freelist.cpp globals.cpp listio.cpp oldheap.cpp oldlist.cpp structures.cpp tordvars.cpp variables.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) -all: all-recursive +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_cutil_a_LIBADD = +libtesseract_cutil_a_OBJECTS = tessarray.o bitvec.o cutil.o danerror.o \ +debug.o efio.o emalloc.o freelist.o globals.o listio.o oldheap.o \ +oldlist.o structures.o tordvars.o variables.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/bitvec.P .deps/cutil.P .deps/danerror.P .deps/debug.P \ +.deps/efio.P .deps/emalloc.P .deps/freelist.P .deps/globals.P \ +.deps/listio.P .deps/oldheap.P .deps/oldlist.P .deps/structures.P \ +.deps/tessarray.P .deps/tordvars.P .deps/variables.P +SOURCES = $(libtesseract_cutil_a_SOURCES) +OBJECTS = $(libtesseract_cutil_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu cutil/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu cutil/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu cutil/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_cutil.a: $(libtesseract_cutil_a_OBJECTS) $(libtesseract_cutil_a_DEPENDENCIES) - -rm -f libtesseract_cutil.a - $(libtesseract_cutil_a_AR) libtesseract_cutil.a $(libtesseract_cutil_a_OBJECTS) $(libtesseract_cutil_a_LIBADD) - $(RANLIB) libtesseract_cutil.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitvec.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/danerror.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/efio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emalloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freelist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globals.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/listio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldheap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldlist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/structures.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tessarray.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tordvars.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/variables.Po@am__quote@ +maintainer-clean-compile: +libtesseract_cutil.a: $(libtesseract_cutil_a_OBJECTS) $(libtesseract_cutil_a_DEPENDENCIES) + -rm -f libtesseract_cutil.a + $(AR) cru libtesseract_cutil.a $(libtesseract_cutil_a_OBJECTS) $(libtesseract_cutil_a_LIBADD) + $(RANLIB) libtesseract_cutil.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -329,14 +205,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -348,7 +223,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -356,24 +231,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -383,218 +247,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = cutil distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu cutil/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/cutil/callcpp.h b/cutil/callcpp.h index 4e7a0609a5..cca1dffae7 100644 --- a/cutil/callcpp.h +++ b/cutil/callcpp.h @@ -22,6 +22,7 @@ #include "host.h" #include "varable.h" +#include "unichar.h" #ifdef __cplusplus //extern "C" { @@ -110,7 +111,7 @@ extern INT32 cp_confs[2]; extern INT32 cp_maps[4]; //Global info to control writes of matcher info extern INT32 blob_type; //write control -extern char blob_answer; //correct char +extern char blob_answer[UNICHAR_LEN + 1]; //correct char extern char *word_answer; //correct word extern INT32 matcher_pass; //pass in chopper.c extern INT32 bits_in_states; //no of bits in states @@ -120,7 +121,7 @@ void assert( //recog one owrd int testing //assert fail if false ); #endif -void setup_cp_maps(); +void setup_cp_maps(); void trace_stack(); //Trace current stack void cprintf ( //Trace printf const char *format, ... //special message @@ -181,8 +182,8 @@ void c_clear_window( /*move pen */ void *win); char window_wait( /*move pen */ void *win); -void reverse32(void *ptr); -void reverse16(void *ptr); +void reverse32(void *ptr); +void reverse16(void *ptr); #ifdef __cplusplus //}; diff --git a/cutil/const.h b/cutil/const.h index 397f170f62..defdf5e458 100644 --- a/cutil/const.h +++ b/cutil/const.h @@ -19,10 +19,11 @@ #define OUTLINESIZE 256 /*max elements in aprroximated path */ #define BLOBSIZE 10000 /*max no of blobs on a page */ +#if 0 #define FIRSTCHAR '!' /*first char in set */ #define LASTCHAR '~' /*last char in set */ #define CHARSETSIZE (LASTCHAR-FIRSTCHAR+1) - /*no of chars in set */ + no of chars in set #define MERGESIZE 10 /*max chars in a class */ #define MAXCHARSIZE 159 /*max size of any char */ #define CLASSIZE 256 /*max no of classes */ @@ -30,6 +31,8 @@ #define BADCLASS 255 /*null class */ #define BADMATCH 255 /*no match */ #define CLASSLENGTH 16 /*max chars in a class string */ +#endif + #define VECSCALE 3 /*vector scaling factor in fx */ #define REALSCALE ((double)(1</dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = dict distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu dict/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/dict/choices.cpp b/dict/choices.cpp index 1bf342df06..ca8dd452fe 100644 --- a/dict/choices.cpp +++ b/dict/choices.cpp @@ -50,12 +50,13 @@ freechoice, CHOICEBLOCK, "A_CHOICE", choicecount) **********************************************************************/ CHOICES append_choice(CHOICES ratings, const char *string, + const char *lengths, float rating, float certainty, INT8 config) { A_CHOICE *this_choice; - this_choice = new_choice (string, rating, certainty, config, NO_PERM); + this_choice = new_choice (string, lengths, rating, certainty, config, NO_PERM); ratings = push_last (ratings, (LIST) this_choice); return (ratings); } @@ -74,10 +75,11 @@ CHOICES copy_choices(CHOICES choices) { iterate_list(l, choices) { result = push (result, (LIST) new_choice (class_string (first_node (l)), - class_probability (first_node (l)), - class_certainty (first_node (l)), - class_config (first_node (l)), - class_permuter (first_node (l)))); + class_lengths (first_node (l)), + class_probability (first_node (l)), + class_certainty (first_node (l)), + class_config (first_node (l)), + class_permuter (first_node (l)))); } return (reverse_d (result)); } @@ -96,6 +98,8 @@ void free_choice(void *arg) { //LIST choice) if (this_choice) { if (this_choice->string) strfree (this_choice->string); + if (this_choice->lengths) + strfree (this_choice->lengths); oldchoice(this_choice); } } @@ -107,6 +111,7 @@ void free_choice(void *arg) { //LIST choice) * Create a new choice record. Store the string value in a safe place. **********************************************************************/ A_CHOICE *new_choice(const char *string, + const char *lengths, float rating, float certainty, INT8 config, @@ -115,6 +120,7 @@ A_CHOICE *new_choice(const char *string, this_choice = newchoice (); this_choice->string = strsave (string); + this_choice->lengths = strsave (lengths); this_choice->rating = rating; this_choice->certainty = certainty; this_choice->config = config; diff --git a/dict/choices.h b/dict/choices.h index 4edf36a396..f839e0e599 100644 --- a/dict/choices.h +++ b/dict/choices.h @@ -68,6 +68,7 @@ typedef struct choicestruct char permuter; INT8 config; char *string; + char *lengths; //Length of each unichar in the string } A_CHOICE; /*---------------------------------------------------------------------- @@ -81,6 +82,14 @@ typedef struct choicestruct #define best_string(choices) \ (first_node (choices) ? ((A_CHOICE*) (first_node (choices)))->string : NULL) +/********************************************************************** + * best_lengths + * + * Return the lengths corresponding to the best choice. + **********************************************************************/ +#define best_lengths(choices) \ +(first_node (choices) ? ((A_CHOICE*) (first_node (choices)))->lengths : NULL) + /********************************************************************** * best_probability * @@ -116,11 +125,19 @@ typedef struct choicestruct /********************************************************************** * class_string * - * Return the probability of a given character class. + * Return the string of a given character class. **********************************************************************/ #define class_string(choice) \ (((A_CHOICE*) (choice))->string) +/********************************************************************** + * class_lengths + * + * Return the lengths of a given character class. + **********************************************************************/ +#define class_lengths(choice) \ +(((A_CHOICE*) (choice))->lengths) + /********************************************************************** * class_permuter * @@ -145,10 +162,12 @@ typedef struct choicestruct **********************************************************************/ #define clone_choice(choice_2,choice_1) \ if (class_string (choice_2)) strfree (class_string (choice_2)); \ +if (class_lengths (choice_2)) strfree (class_lengths (choice_2)); \ class_probability (choice_2) = class_probability (choice_1); \ class_certainty (choice_2) = class_certainty (choice_1); \ class_permuter (choice_2) = class_permuter (choice_1); \ -class_string (choice_2) = strsave (class_string (choice_1)) \ +class_string (choice_2) = strsave (class_string (choice_1)); \ +class_lengths (choice_2) = strsave (class_lengths (choice_1)) \ /********************************************************************** @@ -173,6 +192,7 @@ destroy_nodes ((c), free_choice) ----------------------------------------------------------------------*/ CHOICES append_choice(CHOICES ratings, const char *string, + const char *lengths, float rating, float certainty, INT8 config); @@ -182,6 +202,7 @@ CHOICES copy_choices(CHOICES choices); void free_choice(void *arg); //LIST choice); A_CHOICE *new_choice(const char *string, + const char *lengths, float rating, float certainty, INT8 config, diff --git a/dict/context.cpp b/dict/context.cpp index 20920dc4fe..43c3b975cf 100644 --- a/dict/context.cpp +++ b/dict/context.cpp @@ -25,6 +25,7 @@ #include "context.h" #include "tordvars.h" #include "callcpp.h" +#include "globals.h" #include #include @@ -44,9 +45,9 @@ static FILE *choice_file = NULL; /* File to save choices */ * * Close the choices file. **********************************************************************/ -void close_choices() { +void close_choices() { if (choice_file) - fclose(choice_file); + fclose(choice_file); } @@ -55,7 +56,7 @@ void close_choices() { * * Fix up two single quote to make them two double quotes. **********************************************************************/ -void fix_quotes(char *str) { +void fix_quotes(char *str) { int i; for (i = 0; i < strlen (str); i++) { @@ -73,69 +74,86 @@ void fix_quotes(char *str) { * * Check a string to see if it matches a set of punctuation rules. **********************************************************************/ -int punctuation_ok(const char *word) { +int punctuation_ok(const char *word, const char *lengths) { int punctuation_types[5]; int trailing = 0; int num_puncts = 0; register int x; - register char ch; + int offset; + UNICHAR_ID ch_id; for (x = 0; x < 5; x++) punctuation_types[x] = 0; - for (x = 0; x < strlen (word); x++) { + for (x = 0, offset = 0; x < strlen (lengths); offset += lengths[x++]) { - if (isalpha (word[x])) { + if (unicharset.get_isalpha (word + offset, lengths[x])) { if (trailing && - !(isalpha (word[x - 1]) || + !(unicharset.get_isalpha (word + offset - lengths[x - 1], lengths[x - 1]) +#if 0 + || (word[x - 1] == '\'' && (word[x] == 's' || word[x] == 'd' || word[x] == 'l')) || - (word[x - 1] == '-'))) + (word[x - 1] == '-') +#endif + )) return (-1); trailing = 1; } else { - ch = word[x]; + ch_id = unicharset.unichar_to_id(word + offset, lengths[x]); - if (ch == '.' && trailing) { + if (unicharset.eq(ch_id, ".") && trailing) { if (punctuation_types[0]) return (-1); (punctuation_types[0])++; } - else if (((ch == '{') || (ch == '[') || (ch == '(')) && !trailing) { + else if (((unicharset.eq(ch_id, "{")) || + (unicharset.eq(ch_id, "[")) || + (unicharset.eq(ch_id, "("))) && !trailing) { if (punctuation_types[1]) return (-1); (punctuation_types[1])++; } - else if (((ch == '}') || (ch == ']') || (ch == ')')) && trailing) { + else if (((unicharset.eq(ch_id, "}")) || + (unicharset.eq(ch_id, "]")) || + (unicharset.eq(ch_id, ")"))) && trailing) { if (punctuation_types[2]) return (-1); (punctuation_types[2])++; } - else if (((ch == ':') || - (ch == ';') || - (ch == '!') || - (ch == '-') || (ch == ',') || (ch == '?')) && trailing) { + else if (((unicharset.eq(ch_id, ":")) || + (unicharset.eq(ch_id, ";")) || + (unicharset.eq(ch_id, "!")) || + (unicharset.eq(ch_id, "-")) || + (unicharset.eq(ch_id, ",")) || + (unicharset.eq(ch_id, "?"))) && trailing) { if (punctuation_types[3]) return (-1); (punctuation_types[3])++; - if (ch == '-') + if (unicharset.eq(ch_id, "-")) punctuation_types[3] = 0; } - else if ((ch == '`') || (ch == '\"') || (ch == '\'')) { - if ((word[x + 1] == '`') || (word[x + 1] == '\'')) { - x++; + else if (x < strlen(lengths) - 1 && + ((unicharset.eq(ch_id, "`")) || + (unicharset.eq(ch_id, "\"")) || + (unicharset.eq(ch_id, "\'")))) { + UNICHAR_ID ch_id2 = unicharset.unichar_to_id(word + offset + lengths[x], + lengths[x + 1]); + if ((unicharset.eq(ch_id2, "`")) || + (unicharset.eq(ch_id2, "\'"))) { + offset += lengths[x++]; } (punctuation_types[4])++; if (punctuation_types[4] > 2) return (-1); } - else if (!isdigit (ch)) + else if (!unicharset.get_isdigit (ch_id)) return (-1); } } @@ -154,7 +172,7 @@ int punctuation_ok(const char *word) { * * Check a string to see if it matches a set of lexical rules. **********************************************************************/ -int case_ok(const char *word) { +int case_ok(const char *word, const char *lengths) { static int case_state_table[6][4] = { { /* 0. Begining of word */ /* P U L D */ @@ -181,27 +199,32 @@ int case_ok(const char *word) { register int last_state = 0; register int state = 0; register int x; + int offset; + UNICHAR_ID ch_id; - for (x = 0; x < strlen (word); x++) { + for (x = 0, offset = 0; x < strlen (lengths); offset += lengths[x++]) { - if (islower (word[x])) + ch_id = unicharset.unichar_to_id(word + offset, lengths[x]); + if (unicharset.get_islower (ch_id)) state = case_state_table[state][2]; - else if (isupper (word[x])) + else if (unicharset.get_isupper (ch_id)) state = case_state_table[state][1]; - else if (isdigit (word[x])) + else if (unicharset.get_isdigit (ch_id)) state = case_state_table[state][3]; else state = case_state_table[state][0]; if (debug_3) - cprintf ("Case state = %d, char = %c\n", state, word[x]); - + cprintf ("Case state = %d, char = %s\n", state, + unicharset.id_to_unichar(ch_id)); if (state == -1) { /* Handle ACCRONYMs */ +#if 0 if (word[x] == 's' && !isalpha (word[x + 1]) && !isdigit (word[x + 1])) state = last_state; else +#endif return (FALSE); } @@ -217,9 +240,9 @@ int case_ok(const char *word) { * Write a blank line to the choices file. This will indicate that * there is a new word that is following. **********************************************************************/ -void write_choice_line() { +void write_choice_line() { if (choice_file) { fprintf (choice_file, "\n"); - fflush(choice_file); + fflush(choice_file); } } diff --git a/dict/context.h b/dict/context.h index abf98810de..7be6b423d6 100644 --- a/dict/context.h +++ b/dict/context.h @@ -32,15 +32,15 @@ /*---------------------------------------------------------------------- F u n c t i o n s ----------------------------------------------------------------------*/ -void close_choices(); +void close_choices(); -void fix_quotes(char *str); +void fix_quotes(char *str); -int punctuation_ok(const char *word); +int punctuation_ok(const char *word, const char *lengths); -int case_ok(const char *word); +int case_ok(const char *word, const char *lengths); -void write_choice_line(); +void write_choice_line(); /* #if defined(__STDC__) || defined(__cplusplus) diff --git a/dict/dawg.cpp b/dict/dawg.cpp index 39937c766d..09c2a35a10 100644 --- a/dict/dawg.cpp +++ b/dict/dawg.cpp @@ -35,12 +35,13 @@ #include "callcpp.h" #include "context.h" #include "strngs.h" +#include "emalloc.h" /*---------------------------------------------------------------------- V a r i a b l e s ----------------------------------------------------------------------*/ INT32 debug = 0; -INT32 case_sensative = 0; +INT32 case_sensative = 1; /*---------------------------------------------------------------------- F u n c t i o n s @@ -108,6 +109,8 @@ LETTER_OK_FUNC letter_is_okay = &def_letter_is_okay; * Default way to check this letter in light of the current state. If * everything is still OK then return TRUE. **********************************************************************/ +// TODO(tkielbus) Change the prevchar argument to make it unicode safe. +// We might want to get rid of def_letter_is_okay at some point though. INT32 def_letter_is_okay(EDGE_ARRAY dawg, NODE_REF *node, INT32 char_index, @@ -116,11 +119,19 @@ INT32 def_letter_is_okay(EDGE_ARRAY dawg, INT32 word_end) { EDGE_REF edge; STRING dummy_word(word); // Auto-deleting string fixes memory leak. + STRING word_single_lengths; //Lengths of single UTF-8 characters of the word. + const char *ptr; + + for (ptr = word; *ptr != '\0';) { + word_single_lengths += UNICHAR::utf8_step(ptr); + ptr += UNICHAR::utf8_step(ptr); + } if (*node == NO_EDGE) { /* Trailing punctuation */ if (trailing_punc (dummy_word [char_index]) && (!trailing_punc (prevchar) - || punctuation_ok(dummy_word.string())>=0)) + || punctuation_ok(dummy_word.string(), + word_single_lengths.string())>=0)) return (TRUE); else return (FALSE); @@ -129,17 +140,21 @@ INT32 def_letter_is_okay(EDGE_ARRAY dawg, /* Leading punctuation */ if (*node == 0 && char_index != 0 && - isalpha (dummy_word [char_index]) && + // TODO(tkielbus) Replace islalpha by unicode versions. + // However the lengths information is not available at this point in the + // code. We will probably get rid of the dictionaries at some point anyway. + isalpha (dummy_word [char_index]) && ! leading_punc (dummy_word [char_index-1]) && dummy_word [char_index-1] != '-') { return (FALSE); } } /* Handle compund words */ +#if 0 if (dummy_word [char_index] == '-') { if (char_index>0 && !word_end - && word [char_index-1] == '-' - && word [char_index+1] == '-') + && word [char_index-1] == '-' + && word [char_index+1] == '-') return FALSE; /*not allowed*/ dummy_word [char_index] = (char) 0; if (word_in_dawg (dawg, dummy_word.string())) { @@ -152,13 +167,14 @@ INT32 def_letter_is_okay(EDGE_ARRAY dawg, return (FALSE); } } +#endif /* Check the DAWG */ edge = edge_char_of (dawg, *node, dummy_word [char_index], word_end); if (edge != NO_EDGE) { /* Normal edge in DAWG */ if (case_sensative || case_is_okay (dummy_word, char_index)) { //next_node (dawg, edge); - *node = (dawg)[edge] & NO_EDGE; + *node = next_node(dawg, edge); return (TRUE); } else { @@ -170,7 +186,8 @@ INT32 def_letter_is_okay(EDGE_ARRAY dawg, if (leading_punc (word [char_index]) && (char_index == 0 || leading_punc (dummy_word [char_index-1]))) { *node = 0; - if (leading_punc (prevchar) || punctuation_ok (word)>=0) + if (leading_punc (prevchar) || + punctuation_ok (word, word_single_lengths.string())>=0) return (TRUE); else return FALSE; @@ -239,11 +256,11 @@ void print_dawg_node(EDGE_ARRAY dawg, NODE_REF node) { else eow = not_eow_string; ch = edge_letter (dawg, edge); - cprintf ("%7d : next = %7d, char = '%c', %s %s %s\n", - (int) edge, (int) next_node (dawg, edge), ch, + cprintf (REFFORMAT " : next = " REFFORMAT ", char = '%c', %s %s %s\n", + edge, next_node (dawg, edge), ch, direction, is_last, eow); - if (edge - node > MAX_NODE_EDGES) return; + if (edge - node > MAX_NODE_EDGES_DISPLAY) return; } edge_loop (dawg, edge); if (edge_occupied (dawg, edge) && backward_edge (dawg, edge)) { @@ -258,25 +275,25 @@ void print_dawg_node(EDGE_ARRAY dawg, NODE_REF node) { else eow = not_eow_string; ch = edge_letter (dawg, edge); - cprintf ("%7d : next = %7d, char = '%c', %s %s %s\n", - (int) edge, (int) next_node (dawg, edge), ch, + cprintf (REFFORMAT " : next = " REFFORMAT ", char = '%c', %s %s %s\n", + edge, next_node (dawg, edge), ch, direction, is_last, eow); - if (edge - node > MAX_NODE_EDGES) return; + if (edge - node > MAX_NODE_EDGES_DISPLAY) return; } edge_loop (dawg, edge); } } else { - cprintf ("%5d : no edges in this node\n", node); + cprintf (REFFORMAT " : no edges in this node\n", node); } - new_line(); + cprintf("\n"); } /********************************************************************** * read_squished_dawg * - * Write the DAWG out to a file + * Read the DAWG from a file **********************************************************************/ void read_squished_dawg(const char *filename, EDGE_ARRAY dawg, INT32 max_num_edges) { @@ -294,14 +311,24 @@ void read_squished_dawg(const char *filename, EDGE_ARRAY dawg, #else file = open_file (filename, "rb"); #endif - fread (&num_edges, sizeof (int), 1, file); + fread (&num_edges, sizeof (INT32), 1, file); num_edges = ntohl(num_edges); - fread (&dawg[0], sizeof (EDGE_RECORD), num_edges, file); + if (num_edges > max_num_edges || num_edges < 0) { + cprintf("Error: trying to read a DAWG '%s' that contains \ +%d edges while the maximum is %d.\n", filename, num_edges, max_num_edges); + exit(1); + } + + UINT32 *dawg_32 = (UINT32*) Emalloc(num_edges * sizeof (UINT32)); + fread(&dawg_32[0], sizeof (UINT32), num_edges, file); fclose(file); - for (edge=0;edge 1) { print_dawg_node(dawg, node); new_line(); } - - if (! letter_is_okay (dawg, &node, i,'\0', string, (string[i+1]==0))) { + if (! letter_is_okay (dawg, &node, i, '\0', string, (string[i+1]==0))) { return (FALSE); } } diff --git a/dict/hyphen.cpp b/dict/hyphen.cpp index 1fcc2e8a8b..5cc37e9901 100644 --- a/dict/hyphen.cpp +++ b/dict/hyphen.cpp @@ -36,6 +36,8 @@ ----------------------------------------------------------------------*/ int last_word_on_line = 0; char *hyphen_string = 0; +char *hyphen_unichar_lengths = 0; +int *hyphen_unichar_offsets = NULL; float hyphen_rating = MAXFLOAT; int hyphen_state = 0; @@ -49,22 +51,34 @@ int hyphen_state = 0; * it as the new word choice. This string can be used on the next * line to permute the other half of the word. **********************************************************************/ -void set_hyphen_word(char *word, float rating, int state) { - int char_index = strlen (word) - 1; +void set_hyphen_word(char *word, char *unichar_lengths, int *unichar_offsets, + float rating, int state) { + int char_index = strlen (unichar_lengths) - 1; if (display_ratings) cprintf ("set hyphen word = %s\n", word); if (hyphen_rating > rating && char_index > 0) { - word[char_index] = '\0'; + word[unichar_offsets[char_index]] = '\0'; + unichar_lengths[char_index] = 0; if (hyphen_string) - strfree(hyphen_string); + { + strfree(hyphen_string); + strfree(hyphen_unichar_lengths); + Efree(hyphen_unichar_offsets); + } hyphen_string = strsave (word); + hyphen_unichar_lengths = strsave (unichar_lengths); + hyphen_unichar_offsets = (int *) + Emalloc((strlen(unichar_lengths)) * sizeof (int)); + memcpy(hyphen_unichar_offsets, unichar_offsets, + (strlen(unichar_lengths)) * sizeof (int)); hyphen_state = state; hyphen_rating = rating; - word[char_index] = '-'; + word[unichar_offsets[char_index]] = '-'; + unichar_lengths[char_index] = 1; } } diff --git a/dict/hyphen.h b/dict/hyphen.h index ea978e5858..148e02c590 100644 --- a/dict/hyphen.h +++ b/dict/hyphen.h @@ -29,12 +29,15 @@ I n c l u d e s ----------------------------------------------------------------------*/ #include "choices.h" +#include "emalloc.h" /*---------------------------------------------------------------------- V a r i a b l e s ----------------------------------------------------------------------*/ extern int last_word_on_line; extern char *hyphen_string; +extern char *hyphen_unichar_lengths; +extern int *hyphen_unichar_offsets; extern float hyphen_rating; extern int hyphen_state; @@ -59,7 +62,11 @@ last_word_on_line = TRUE #define reset_hyphen_word() \ if (last_word_on_line == FALSE) { \ if (hyphen_string) strfree (hyphen_string); \ + if (hyphen_unichar_lengths) strfree (hyphen_unichar_lengths); \ + if (hyphen_unichar_offsets) Efree (hyphen_unichar_offsets); \ hyphen_string = NULL; \ + hyphen_unichar_lengths = NULL; \ + hyphen_unichar_offsets = NULL; \ hyphen_rating = MAX_FLOAT32; \ hyphen_state = 0; \ } \ @@ -92,7 +99,7 @@ last_word_on_line = FALSE #define hyphen_base_size() \ ((! is_last_word () && hyphen_string) ? \ - (strlen (hyphen_string)) : \ + (strlen (hyphen_unichar_lengths)) : \ (0)) \ @@ -105,10 +112,13 @@ last_word_on_line = FALSE **********************************************************************/ #define hyphen_tail(word) \ -(& word [hyphen_base_size()]) \ +(&word[hyphen_base_size() > 0 ? \ + (hyphen_unichar_offsets[hyphen_base_size() - 1] + \ + hyphen_unichar_lengths[hyphen_base_size() - 1]) : 0]) \ /*---------------------------------------------------------------------- Public Function Prototypes ----------------------------------------------------------------------*/ -void set_hyphen_word(char *word, float rating, int state); +void set_hyphen_word(char *word, char *unichar_lengths, int *unichar_offsets, + float rating, int state); #endif diff --git a/dict/lookdawg.cpp b/dict/lookdawg.cpp new file mode 100644 index 0000000000..d0bebd730d --- /dev/null +++ b/dict/lookdawg.cpp @@ -0,0 +1,218 @@ +/* -*-C-*- +******************************************************************************** +* +* File: lookdawg.cpp +* Description: Look up words in a Directed Accyclic Word Graph +* Author: Mark Seaman, OCR Technology +* Created: Fri Oct 16 14:37:00 1987 +* Modified: Thu Jul 25 17:09:55 1991 (Mark Seaman) marks@hpgrlt +* Language: C +* Package: N/A +* Status: Reusable Software Component +* +* (c) Copyright 1987, Hewlett-Packard Company, all rights reserved. +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** http://www.apache.org/licenses/LICENSE-2.0 +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +* +******************************************************************************** +*/ + + +/* +---------------------------------------------------------------------- + I n c l u d e s +---------------------------------------------------------------------- +*/ + +#include "lookdawg.h" + +#include "cutil.h" +#include "trie.h" +#ifdef __UNIX__ +#include +#endif + +/* +---------------------------------------------------------------------- + V a r i a b l e s +---------------------------------------------------------------------- +*/ + +/* +---------------------------------------------------------------------- + F u n c t i o n s +---------------------------------------------------------------------- +*/ + +/********************************************************************** +* check_for_words +* +* Check the DAWG for the words that are listed in the requested file. +* A file name of NULL will cause the words to be read from stdin. +**********************************************************************/ + +void check_for_words (EDGE_ARRAY dawg, + char *filename) { + FILE *word_file; + char string [CHARS_PER_LINE]; + + word_file = open_file (filename, "r"); + + if (filename == NULL) { + printf ("? "); + fflush (stdout); + } + + while (fgets (string, CHARS_PER_LINE, word_file) != NULL) { + string [strlen (string) - 1] = (char) 0; + + if (strlen (string)) { + if (debug) { + debug=0; + if (! word_in_dawg (dawg, string)) { + puts (string); + if (filename == NULL) { + debug = 1; + word_in_dawg (dawg, string); + } + } + debug = 1; + } + else { + match_words (dawg, string, 0, 0); + } + } + + if (filename == NULL) { + printf ("? "); + fflush (stdout); + } + } + fclose (word_file); +} + +#if 0 +/********************************************************************** +* main +* +* Test the DAWG functions. +**********************************************************************/ + +int main (argc, argv) + int argc; + char **argv; +{ + INT32 max_num_edges = 700000; + EDGE_ARRAY dawg; + int argnum = 1; + int show_nodes = FALSE; + + dawg = (EDGE_ARRAY) malloc (sizeof (EDGE_RECORD) * max_num_edges); + if (dawg == NULL) { + printf ("error: Could not allocate enough memory for DAWG "); + printf ("(%ld,%03ld bytes needed)\n", + sizeof (EDGE_RECORD) * max_num_edges / 1000, + sizeof (EDGE_RECORD) * max_num_edges % 1000); + exit (1); + } + + if (! strcmp (argv[argnum], "-v")) { + show_nodes = TRUE; + argnum++; + } + + if (strcmp (argv[argnum], "-f")) { + read_squished_dawg (argv[argnum++], dawg, max_num_edges); + } + else { + argnum++; + read_full_dawg (argv[argnum++], dawg, max_num_edges); + } + + printf ("argc = %d\n", argc); + print_int ("argnum", argnum); + print_string (argv[argnum]); + + if (argc < argnum + 1) { + printf ("Type in words to search for: (use * for wildcard)\n"); + debug = show_nodes; + check_for_words (dawg, NULL); + new_line (); + } + else { + print_lost_words (dawg, argv[argnum]); + } +} +#endif + +/********************************************************************** +* match_words +* +* Match all of the words that are specified with this string. The *'s +* in this string are wildcards. +**********************************************************************/ + +void match_words (EDGE_ARRAY dawg, + char *string, + INT32 index, + NODE_REF node) { + EDGE_REF edge; + INT32 word_end; + + if (string[index] == '*') { + edge = node; + do { + string[index] = edge_letter (dawg, edge); + match_words (dawg, string, index, node); + } edge_loop (dawg, edge); + string[index] = '*'; + } + else { + word_end = (string[index+1] == (char) 0); + edge = edge_char_of (dawg, node, string[index], word_end); + if (edge != NO_EDGE) { /* Normal edge in DAWG */ + node = next_node (dawg, edge); + if (word_end) { + printf ("%s\n", string); + } + else if (node != 0) { + match_words (dawg, string, index+1, node); + } + } + } +} + + +/********************************************************************** +* print_lost_words +* +* Check the DAWG for the words that are listed in the requested file. +* A file name of NULL will cause the words to be read from stdin. Print +* each of the words that can not be found in the DAWG. +**********************************************************************/ + +void print_lost_words (EDGE_ARRAY dawg, + char *filename) { + FILE *word_file; + char string [CHARS_PER_LINE]; + + word_file = open_file (filename, "r"); + + while (fgets (string, CHARS_PER_LINE, word_file) != NULL) { + string [strlen (string) - 1] = (char) 0; + + if (strlen (string)) { + if (! word_in_dawg (dawg, string)) { + puts (string); + } + } + } + fclose (word_file); +} diff --git a/dict/lookdawg.h b/dict/lookdawg.h new file mode 100644 index 0000000000..b09aa7c125 --- /dev/null +++ b/dict/lookdawg.h @@ -0,0 +1,76 @@ +/* -*-C-*- +******************************************************************************** +* +* File: lookdawg.h +* Description: Look up words in a Directed Accyclic Word Graph +* Author: Mark Seaman, SW Productivity +* Created: Fri Oct 16 14:37:00 1987 +* Modified: Wed Jul 17 17:38:57 1991 (Mark Seaman) marks@hpgrlt +* Language: C +* Package: N/A +* Status: Reusable Software Component +* +* (c) Copyright 1987, Hewlett-Packard Company, all rights reserved. +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** http://www.apache.org/licenses/LICENSE-2.0 +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +* +******************************************************************************** +*/ + +#ifndef LOOKDAWG_H +#define LOOKDAWG_H + +/* +---------------------------------------------------------------------- + I n c l u d e s +---------------------------------------------------------------------- +*/ + +#include "general.h" +#include "dawg.h" + +/* +---------------------------------------------------------------------- + T y p e s +---------------------------------------------------------------------- +*/ + +/* +---------------------------------------------------------------------- + V a r i a b l e s +---------------------------------------------------------------------- +*/ + + +/* +---------------------------------------------------------------------- + M a c r o s +---------------------------------------------------------------------- +*/ + +/* +---------------------------------------------------------------------- + F u n c t i o n s +---------------------------------------------------------------------- +*/ + +void check_for_words(EDGE_ARRAY dawg, + char *filename); + +void match_words(EDGE_ARRAY dawg, + char *string, + INT32 index, + NODE_REF node); + +void print_lost_words(EDGE_ARRAY dawg, + char *filename); + + +#endif diff --git a/dict/makedawg.cpp b/dict/makedawg.cpp new file mode 100644 index 0000000000..7b86048741 --- /dev/null +++ b/dict/makedawg.cpp @@ -0,0 +1,445 @@ +/* -*-C-*- +******************************************************************************** +* +* File: makedawg.cpp +* Description: Create a Directed Accyclic Word Graph +* Author: Mark Seaman, OCR Technology +* Created: Fri Oct 16 14:37:00 1987 +* Modified: Fri Jul 26 12:18:12 1991 (Mark Seaman) marks@hpgrlt +* Language: C +* Package: N/A +* Status: Reusable Software Component +* +* (c) Copyright 1987, Hewlett-Packard Company, all rights reserved. +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** http://www.apache.org/licenses/LICENSE-2.0 +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +* +******************************************************************************** +*/ + + +/* +---------------------------------------------------------------------- + I n c l u d e s +---------------------------------------------------------------------- +*/ +#ifdef __MSW32__ +#include +#else +#include +#endif + +#include "makedawg.h" + +#include "reduce.h" +#include "cutil.h" +#include "callcpp.h" + +#ifdef __UNIX__ +#include +#endif +#include + + +/* +---------------------------------------------------------------------- + V a r i a b l e s +---------------------------------------------------------------------- +*/ + +/* +---------------------------------------------------------------------- + F u n c t i o n s +---------------------------------------------------------------------- +*/ + +/********************************************************************** +* build_node_map +* +* Create a node map that will help translate the indices of the DAWG +* into a compacted form. +* Construct in memory a mapping from the memory node values into the +* disk node values. Return the values in this map as requested. If +* a new value mapping is requested assign the next sequential number +* to it. +**********************************************************************/ + +NODE_MAP build_node_map (EDGE_ARRAY dawg, + INT32 *num_nodes, + INT32 both_links, + INT32 max_num_edges, + INT32 reserved_edges) { + EDGE_REF edge; + NODE_MAP node_map; + INT32 node_counter; + INT32 num_edges; + + node_map = (NODE_MAP) malloc (sizeof (EDGE_REF) * max_num_edges); + + for (edge=0; edge= 0 && + the_next_node < max_num_edges && + node_map [the_next_node] >= 0 && + node_map [the_next_node] < max_num_edges); + + /* Map each edge in node */ + if (debug) cprintf (" " REFFORMAT " --> ", next_node (dawg, edge)); + set_next_edge (dawg, edge, node_map [next_node (dawg, edge)]); + if (debug) cprintf (REFFORMAT "\n", next_node (dawg, edge)); + } + + if (destination != 0) next_node_space = edge; + edge = node + num_edges; + } + else { + edge++; + } + } + + cprintf ("Compacting node from " REFFORMAT " to " REFFORMAT " (%d)\n", + node, next_node_space, num_edges); + free (node_map); +} + + +/********************************************************************** +* delete_node +* +* Remove all the edges that are currently used within this node in the +* DAWG. +**********************************************************************/ + +void delete_node (EDGE_ARRAY dawg, + NODE_REF node) { + EDGE_REF edge = node; + INT32 counter = edges_in_node (dawg, node); + + /* + printf ("node deleted = %d (%d)\n", node, counter); + */ + while (counter--) + set_empty_edge (dawg, edge++); +} + + +/********************************************************************** +* write_squished_dawg +* +* Write the DAWG out to a file +**********************************************************************/ + +void write_squished_dawg (const char *filename, + EDGE_ARRAY dawg, + INT32 max_num_edges, + INT32 reserved_edges) { + FILE *file; + EDGE_REF edge; + INT32 num_edges; + INT32 node_count = 0; + NODE_MAP node_map; + EDGE_REF old_index; + UINT32 temp_record_32; + + if (debug) print_string ("write_squished_dawg"); + + node_map = build_node_map (dawg, &node_count, FALSE, max_num_edges, + reserved_edges); + + file = open_file (filename, "w"); + + num_edges = 0; /* Count number of edges */ + for (edge=0; edge MAX_NUM_EDGES_IN_SQUISHED_DAWG_FILE) { + cprintf("Error: squished DAWG is too big to be written (%d edges > %d).\n", + num_edges, MAX_NUM_EDGES_IN_SQUISHED_DAWG_FILE); + exit(1); + } + + for (edge=0; edge 1) { + strcpy (filename, argv[1]); + } + else { + strcpy (filename, "WORDS"); + } + + baselength = strlen (filename); + +/* strcpy (filename+baselength, ".ful"); + read_full_dawg (filename, dawg, max_num_edges); +*/ + strcpy (filename+baselength, ".lst"); + printf ("Building Dawg from word list in file, '%s'\n", filename); + read_word_list (filename, dawg, max_num_edges, reserved_edges); + + strcpy (filename+baselength, ".ful"); + printf ("Writing full Trie file, '%s'\n", filename); + write_full_dawg (filename, dawg, max_num_edges); + + strcpy (filename+baselength, ".opt"); + trie_to_dawg (dawg, max_num_edges, reserved_edges); + printf ("Writing full DAWG file, '%s'\n", filename); + write_full_dawg (filename, dawg, max_num_edges); + + strcpy (filename+baselength, ".squ"); + printf ("Writing squished file, '%s'\n", filename); + write_squished_dawg (filename, dawg, max_num_edges, reserved_edges); + + end_time = time (&end_time); + printf ("Seconds Elapsed = %4.1lf\n", + difftime (end_time, start_time)); + + + while ((option = getopt (argc, argv, "e:c:d:n:s:t:v")) != EOF) + switch (option) { + + case 'c' : { + printf ("makedawg -c %s %s\n", optarg, argv[optind]); + + printf ("Reading Dawg file, '%s'\n", optarg); + read_dawg (optarg, dawg, max_num_edges); + + max_new_attempts = 1000; + compact_dawg (dawg, max_num_edges, reserved_edges); + + printf ("Writing full file, '%s'\n", argv[optind]); + write_full_dawg (argv[optind++], dawg, max_num_edges); + + break; + } + + case 'd' : { + printf ("makedawg -d %s %s\n", optarg, argv[optind]); + + printf ("Reading Dawg file, '%s'\n", optarg); + read_dawg (optarg, dawg, max_num_edges); + trie_to_dawg (dawg, max_num_edges, reserved_edges); + + printf ("Writing full file, '%s'\n", argv[optind]); + write_full_dawg (argv[optind++], dawg, max_num_edges); + + break; + } + + case 'n' : { + printf ("makedawg -n %s %s\n", optarg, argv[optind]); + + printf ("Building Dawg from word list in file, '%s'\n", optarg); + read_word_list (optarg, dawg, max_num_edges, reserved_edges); + + printf ("Writing full Dawg file, '%s'\n", argv[optind]); + write_full_dawg (argv[optind++], dawg, max_num_edges); + + break; + } + + case 's' : { + printf ("makedawg -s %s %s\n", optarg, argv[optind]); + + printf ("Reading Dawg file, '%s'\n", optarg); + read_dawg (optarg, dawg, max_num_edges); + + printf ("Writing squished file, '%s'\n", argv[optind]); + write_squished_dawg (argv[optind++], dawg, max_num_edges, reserved_edges); + + break; + } + + case 'v' : { + debug = 1; + break; + } + + case 't' : { + read_squished_dawg (optarg, dawg, max_num_edges); + + if (optind < argc) + check_for_words (dawg, argv[optind++]); + else + check_for_words (dawg, NULL); + + break; + } + + case 'e' : { + read_dawg (optarg, dawg, max_num_edges); + + if (optind < argc) + check_for_words (dawg, argv[optind++]); + else + check_for_words (dawg, NULL); + + break; + } + + default : { + printf ("usage: makedawg -c \n"); + printf (" -d \n"); + printf (" -n \n"); + printf (" -s \n"); + printf (" -e \n"); + printf (" -t \n"); + printf (" -v \n"); + } + } +} + +#endif diff --git a/dict/makedawg.h b/dict/makedawg.h new file mode 100644 index 0000000000..e0a63388bf --- /dev/null +++ b/dict/makedawg.h @@ -0,0 +1,83 @@ +/* -*-C-*- +******************************************************************************** +* +* File: makedawg.h +* Description: Create a Directed Accyclic Word Graph +* Author: Mark Seaman, SW Productivity +* Created: Fri Oct 16 14:37:00 1987 +* Modified: Wed Jul 17 17:18:49 1991 (Mark Seaman) marks@hpgrlt +* Language: C +* Package: N/A +* Status: Reusable Software Component +* +* (c) Copyright 1987, Hewlett-Packard Company, all rights reserved. +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** http://www.apache.org/licenses/LICENSE-2.0 +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +* +******************************************************************************** +*/ + +#ifndef MAKEDAWG_H +#define MAKEDAWG_H + +/* +---------------------------------------------------------------------- + I n c l u d e s +---------------------------------------------------------------------- +*/ + +#include "general.h" +#include "dawg.h" +#include "trie.h" + +/* +---------------------------------------------------------------------- + T y p e s +---------------------------------------------------------------------- +*/ + +/* +---------------------------------------------------------------------- + V a r i a b l e s +---------------------------------------------------------------------- +*/ + + +/* +---------------------------------------------------------------------- + M a c r o s +---------------------------------------------------------------------- +*/ + +/* +---------------------------------------------------------------------- + F u n c t i o n s +---------------------------------------------------------------------- +*/ + +NODE_MAP build_node_map(EDGE_ARRAY dawg, + INT32 *num_nodes, + INT32 both_links, + INT32 max_num_edges, + INT32 reserved_edges); + +void compact_dawg(EDGE_ARRAY dawg, + INT32 max_num_edges, + INT32 reserved_edges); + +void delete_node(EDGE_ARRAY dawg, + NODE_REF node); + +void write_squished_dawg(const char *filename, + EDGE_ARRAY dawg, + INT32 max_num_edges, + INT32 reserved_edges); + +#endif diff --git a/dict/matchdefs.h b/dict/matchdefs.h index 0620f0c5f9..3421e9103e 100644 --- a/dict/matchdefs.h +++ b/dict/matchdefs.h @@ -23,15 +23,17 @@ ----------------------------------------------------------------------------**/ #include "general.h" #include +#include "unichar.h" /* define the maximum number of classes defined for any matcher - and the maximum class id for any matcher */ -#define MAX_NUM_CLASSES 100 -#define MAX_CLASS_ID 255 + and the maximum class id for any matcher. This must be changed + if more different classes need to be classified */ +#define MAX_NUM_CLASSES 256 +#define MAX_CLASS_ID (MAX_NUM_CLASSES - 1) /* a CLASS_ID is the ascii character to be associated with a class */ -typedef UINT8 CLASS_ID; -#define NO_CLASS 0 +typedef UNICHAR_ID CLASS_ID; +#define NO_CLASS (0) /* define a type for the index (rather than the class id) of a class. Class indexes are sequentially defined, while class id's are defined diff --git a/dict/permdawg.cpp b/dict/permdawg.cpp index 7c9202023f..f319dd620e 100644 --- a/dict/permdawg.cpp +++ b/dict/permdawg.cpp @@ -34,6 +34,7 @@ #include "stopper.h" #include "freelist.h" #include "globals.h" +#include "cutil.h" #include "dawg.h" #include @@ -43,7 +44,7 @@ #define FREQ_WERD 1.0 #define GOOD_WERD 1.1 #define OK_WERD 1.25 -#define MAX_FREQ_EDGES 1000 +#define MAX_FREQ_EDGES 1500 #define NO_RATING -1 /*---------------------------------------------------------------------- @@ -84,10 +85,11 @@ void adjust_word(A_CHOICE *best_choice, float *certainty_array) { class_string (best_choice), class_probability (best_choice)); this_word = class_string (best_choice); - punct_status = punctuation_ok (this_word); + punct_status = punctuation_ok (this_word, class_lengths (best_choice)); class_probability (best_choice) += RATING_PAD; - if (case_ok (this_word) && punct_status != -1) { + if (case_ok (this_word, class_lengths (best_choice)) + && punct_status != -1) { if (punct_status < 1 && word_in_dawg (frequent_words, this_word)) { class_probability (best_choice) *= freq_word; class_permuter (best_choice) = FREQ_DAWG_PERM; @@ -106,9 +108,9 @@ void adjust_word(A_CHOICE *best_choice, float *certainty_array) { class_probability (best_choice) *= ok_word; adjust_factor = ok_word; if (adjust_debug) { - if (!case_ok (this_word)) + if (!case_ok (this_word, class_lengths (best_choice))) cprintf (", C"); - if (punctuation_ok (this_word) == -1) + if (punctuation_ok (this_word, class_lengths (best_choice)) == -1) cprintf (", P"); cprintf (", %4.2f ", ok_word); } @@ -135,10 +137,12 @@ void append_next_choice( /*previous option */ NODE_REF node, char permuter, char *word, + char unichar_lengths[], + int unichar_offsets[], CHOICES_LIST choices, int char_index, A_CHOICE *this_choice, - char prevchar, + const char *prevchar, float *limit, float rating, float certainty, @@ -149,10 +153,20 @@ void append_next_choice( /*previous option */ CHOICES *result) { A_CHOICE *better_choice; /* Add new character */ - word[char_index] = class_string (this_choice)[0]; - word[char_index + 1] = 0; - if (word[char_index] == 0) - word[char_index] = ' '; + strcpy(word + unichar_offsets[char_index], class_string (this_choice)); + + unichar_lengths[char_index] = strlen(class_string (this_choice)); + unichar_lengths[char_index + 1] = 0; + unichar_offsets[char_index + 1] = unichar_offsets[char_index] + + unichar_lengths[char_index]; + if (word[unichar_offsets[char_index]] == '\0') { + word[unichar_offsets[char_index]] = ' '; + word[unichar_offsets[char_index] + 1] = '\0'; + unichar_lengths[char_index] = 1; + unichar_lengths[char_index + 1] = 0; + unichar_offsets[char_index + 1] = unichar_offsets[char_index] + + unichar_lengths[char_index]; + } certainty_array[char_index] = class_certainty (this_choice); rating += class_probability (this_choice); @@ -172,37 +186,50 @@ void append_next_choice( /*previous option */ } /* Deal with hyphens */ - if (word_ending && last_word && word[char_index] == '-' && char_index > 0) { + if (word_ending && last_word && word[unichar_offsets[char_index]] == '-' && + char_index > 0) { *limit = rating; if (dawg_debug) cprintf ("new hyphen choice = %s\n", word); - - better_choice = new_choice (word, rating, certainty, -1, permuter); + better_choice = new_choice (word, unichar_lengths, rating, certainty, -1, permuter); adjust_word(better_choice, certainty_array); push_on(*result, better_choice); - set_hyphen_word(word, rating, node); + set_hyphen_word(word, unichar_lengths, unichar_offsets, rating, node); } /* Look up char in DAWG */ - else if (letter_is_okay (dawg, &node, char_index, prevchar, - word, word_ending)) { - /* Add a new word choice */ - if (word_ending) { - if (dawg_debug == 1) - cprintf ("new choice = %s\n", word); - *limit = rating; - - better_choice = new_choice (hyphen_tail (word), rating, certainty, - -1, permuter); - adjust_word (better_choice, &certainty_array[hyphen_base_size ()]); - push_on(*result, better_choice); - } - else { - /* Search the next letter */ - JOIN_ON (*result, - dawg_permute (dawg, node, permuter, - choices, char_index + 1, limit, - word, rating, certainty, - rating_array, certainty_array, last_word)); + else { + int sub_offset = 0; + NODE_REF node_saved = node; + while (sub_offset < unichar_lengths[char_index] && + letter_is_okay (dawg, &node, unichar_offsets[char_index] + + sub_offset, *prevchar, word, word_ending && + sub_offset == unichar_lengths[char_index] - 1)) + ++sub_offset; + if (sub_offset == unichar_lengths[char_index]) { + /* Add a new word choice */ + if (word_ending) { + if (dawg_debug == 1) + cprintf ("new choice = %s\n", word); + *limit = rating; + + better_choice = new_choice (hyphen_tail (word), unichar_lengths + + hyphen_base_size(), + rating, certainty, + -1, permuter); + adjust_word (better_choice, &certainty_array[hyphen_base_size ()]); + push_on(*result, better_choice); + } + else { + /* Search the next letter */ + JOIN_ON (*result, + dawg_permute (dawg, node, permuter, + choices, char_index + 1, limit, + word, unichar_lengths, unichar_offsets, rating, certainty, + rating_array, certainty_array, last_word)); + } + } else { + if (node != 0) + node = node_saved; } } } @@ -222,6 +249,8 @@ CHOICES dawg_permute(EDGE_ARRAY dawg, int char_index, float *limit, char *word, + char unichar_lengths[], + int unichar_offsets[], float rating, float certainty, float *rating_array, @@ -233,11 +262,12 @@ CHOICES dawg_permute(EDGE_ARRAY dawg, int word_ending = FALSE; if (dawg_debug) { - cprintf ("dawg_permute (node=%d, char_index=%d, limit=%4.2f, ", + cprintf ("dawg_permute (node=" REFFORMAT ", char_index=%d, limit=%f, ", node, char_index, *limit); cprintf ("word=%s, rating=%4.2f, certainty=%4.2f)\n", word, rating, certainty); } + /* Check for EOW */ if (1 + char_index == array_count (choices) + hyphen_base_size ()) word_ending = TRUE; @@ -247,15 +277,15 @@ CHOICES dawg_permute(EDGE_ARRAY dawg, iterate_list (c, (CHOICES) array_index (choices, char_index - hyphen_base_size ())) { - append_next_choice (dawg, node, permuter, word, choices, char_index, - (A_CHOICE *) first_node (c), - prevchar != NULL ? *prevchar : '\0', limit, - rating, certainty, rating_array, certainty_array, - word_ending, last_word, &result); + append_next_choice (dawg, node, permuter, word, unichar_lengths, + unichar_offsets, choices, char_index, + (A_CHOICE *) first_node (c), + prevchar != NULL ? prevchar : "", limit, + rating, certainty, rating_array, certainty_array, + word_ending, last_word, &result); prevchar = best_string (c); } } - if (result && (dawg_debug == 1)) print_choices ("dawg_permute", result); return (result); @@ -276,7 +306,9 @@ void dawg_permute_and_select(const char *string, A_CHOICE *best_choice, INT16 system_words) { CHOICES result = NIL; - char word[MAX_WERD_LENGTH + 1]; + char word[UNICHAR_LEN * MAX_WERD_LENGTH + 1]; + char unichar_lengths[MAX_WERD_LENGTH + 1]; + int unichar_offsets[MAX_WERD_LENGTH + 1]; float certainty_array[MAX_WERD_LENGTH + 1]; float rating_array[MAX_WERD_LENGTH + 1]; float rating; @@ -287,6 +319,8 @@ void dawg_permute_and_select(const char *string, rating_margin = ok_word / good_word; word[0] = '\0'; + unichar_lengths[0] = 0; + unichar_offsets[0] = 0; rating = class_probability (best_choice); for (char_index = 0; char_index < MAX_WERD_LENGTH + 1; char_index++) @@ -295,12 +329,19 @@ void dawg_permute_and_select(const char *string, if (!is_last_word () && hyphen_string) { strcpy(word, hyphen_string); - char_index = strlen (hyphen_string); + strcpy(unichar_lengths, hyphen_unichar_lengths); + memcpy(unichar_offsets, hyphen_unichar_offsets, + (hyphen_base_size()) * sizeof (int)); + unichar_offsets[hyphen_base_size()] = + unichar_offsets[hyphen_base_size() - 1] + + unichar_lengths[hyphen_base_size() - 1]; + char_index = strlen (hyphen_unichar_lengths); if (system_words) dawg_node = hyphen_state; } + result = dawg_permute (dawg, dawg_node, permuter, character_choices, - char_index, &rating, word, 0.0, 0.0, + char_index, &rating, word, unichar_lengths, unichar_offsets, 0.0, 0.0, rating_array, certainty_array, is_last_word ()); if (display_ratings && result) diff --git a/dict/permdawg.h b/dict/permdawg.h index 0f41732107..a9abfa1881 100644 --- a/dict/permdawg.h +++ b/dict/permdawg.h @@ -54,10 +54,12 @@ void append_next_choice(EDGE_ARRAY dawg, NODE_REF node, char permuter, char *word, + char unichar_lengths[], + int unichar_offsets[], CHOICES_LIST choices, int char_index, A_CHOICE *this_choice, - char prevchar, + const char *prevchar, float *limit, float rating, float certainty, @@ -74,6 +76,8 @@ CHOICES dawg_permute(EDGE_ARRAY dawg, int char_index, float *limit, char *word, + char unichar_lengths[], + int unichar_offsets[], float rating, float certainty, float *rating_array, diff --git a/dict/permnum.cpp b/dict/permnum.cpp index bad2d619d6..c3eb7e8923 100644 --- a/dict/permnum.cpp +++ b/dict/permnum.cpp @@ -32,6 +32,7 @@ #include "dawg.h" #include "tordvars.h" #include "stopper.h" +#include "globals.h" #include #include @@ -39,14 +40,18 @@ /*---------------------------------------------------------------------- V a r i a b l e s ----------------------------------------------------------------------*/ +#if 0 static const char *allowed_alpha_strs[] = { "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec", NULL }; +#endif +#if 0 static const char *allowed_char_strs[] = { "adfjmnos", "aceopu", "bcglnrptvy" }; +#endif const int kNumStates = 7; @@ -165,7 +170,7 @@ void adjust_number(A_CHOICE *best_choice, float *certainty_array) { class_string (best_choice), class_probability (best_choice)); class_probability (best_choice) += RATING_PAD; - if (pure_number (class_string (best_choice))) { + if (pure_number (class_string (best_choice), class_lengths (best_choice))) { class_probability (best_choice) *= good_number; adjust_factor = good_number; if (adjust_debug) @@ -194,6 +199,8 @@ void adjust_number(A_CHOICE *best_choice, float *certainty_array) { **********************************************************************/ void append_number_choices(int state, char *word, + char unichar_lengths[], + int unichar_offsets[], CHOICES_LIST choices, int char_index, A_CHOICE *this_choice, @@ -204,14 +211,26 @@ void append_number_choices(int state, CHOICES *result) { int word_ending = FALSE; int x; + int offset; if (char_index == (array_count (choices) - 1)) word_ending = TRUE; + strcpy(word + unichar_offsets[char_index], class_string (this_choice)); + + unichar_lengths[char_index] = strlen(class_string (this_choice)); + unichar_lengths[char_index + 1] = 0; + unichar_offsets[char_index + 1] = unichar_offsets[char_index] + + unichar_lengths[char_index]; + + if (word[unichar_offsets[char_index]] == '\0') { + word[unichar_offsets[char_index]] = ' '; + word[unichar_offsets[char_index] + 1] = '\0'; + unichar_lengths[char_index] = 1; + unichar_lengths[char_index + 1] = 0; + unichar_offsets[char_index + 1] = unichar_offsets[char_index] + + unichar_lengths[char_index]; + } - word[char_index] = class_string (this_choice)[0]; - word[char_index + 1] = '\0'; - if (word[char_index] == '\0') - word[char_index] = ' '; certainty_array[char_index] = class_certainty (this_choice); rating += class_probability (this_choice); @@ -219,9 +238,10 @@ void append_number_choices(int state, if (rating < *limit) { - state = number_state_change (state, word + char_index); + state = number_state_change (state, word + unichar_offsets[char_index], + unichar_lengths + char_index); if (number_debug) - cprintf ("%-20s prob=%4.2f state=%d\n", word, rating, state); + cprintf ("%s prob=%4.2f state=%d\n", word, rating, state); if (state != -1) { @@ -231,11 +251,11 @@ void append_number_choices(int state, } if (word_ending) { - for (x = 0; x <= char_index; x++) { - if (isdigit (word[x])) { + for (x = 0, offset = 0; x <= char_index; offset += unichar_lengths[x++]) { + if (unicharset.get_isdigit (word + offset, unichar_lengths[x])) { if (number_debug) cprintf ("new choice = %s\n", word); - push_on (*result, new_choice (word, rating, certainty, + push_on (*result, new_choice (word, unichar_lengths, rating, certainty, -1, NUMBER_PERM)); adjust_number ((A_CHOICE *) first_node (*result), certainty_array); @@ -253,7 +273,7 @@ void append_number_choices(int state, else { JOIN_ON (*result, number_permute (state, choices, char_index + 1, limit, - word, rating, certainty, + word, unichar_lengths, unichar_offsets, rating, certainty, certainty_array)); } } @@ -287,28 +307,30 @@ void init_permnum() { * table) we are looking at. **********************************************************************/ int number_character_type( //current state - char ch, + const char* ch, + int length, int state) { - char lower_char = tolower (ch); - - if (isalpha (ch)) { - if (state < 4 && strchr (allowed_char_strs[0], lower_char) != NULL) + if (unicharset.get_isalpha (ch, length)) { +#if 0 + if (state < 4 + && strchr (allowed_char_strs[0], lower_char) != NULL) return 5; else if (state == 4 - && strchr (allowed_char_strs[1], lower_char) != NULL) + && strchr (allowed_char_strs[1], lower_char) != NULL) return 6; else if (state == 5 - && strchr (allowed_char_strs[2], lower_char) != NULL) + && strchr (allowed_char_strs[2], lower_char) != NULL) return 7; +#endif return 3; } - else if (isdigit (ch)) + else if (unicharset.get_isdigit (ch, length)) return (1); - else if (isoperator (ch)) + else if (length == 1 && isoperator (*ch)) return (2); - else if (istrailing (ch)) + else if (length == 1 && istrailing (*ch)) return (4); - else if (isleading (ch)) + else if (length == 1 && isleading (*ch)) return (0); else return (-1); @@ -321,16 +343,19 @@ int number_character_type( //current state * Execute a state transition according to the state table and * additional rules. **********************************************************************/ -int number_state_change(int state, //current state - const char *word) { //current char +int number_state_change(int state, //current state + const char *word, //current char + const char *lengths) { //length of current char int char_type; //type of char int new_state; //state to return int old_state = state >> kStateShift; int repeats = state & kRepeatMask; +#if 0 int index; char copy_word[4]; //tolowered chars +#endif - char_type = number_character_type (*word, old_state); + char_type = number_character_type (word, *lengths, old_state); if (char_type == -1) return -1; new_state = number_state_table[old_state][char_type]; @@ -351,6 +376,7 @@ int number_state_change(int state, //current state //are allowed if (old_state != 6) return -1; //only 3 letters now +#if 0 copy_word[0] = tolower (word[-3]); copy_word[1] = tolower (word[-2]); copy_word[2] = tolower (word[-1]); @@ -359,6 +385,7 @@ int number_state_change(int state, //current state if (strcmp (copy_word, allowed_alpha_strs[index]) == 0) return (-new_state) << kStateShift; } +#endif return -1; //not a good word } @@ -376,6 +403,8 @@ CHOICES number_permute(int state, int char_index, float *limit, char *word, + char unichar_lengths[], + int unichar_offsets[], float rating, float certainty, float *certainty_array) { @@ -392,9 +421,10 @@ CHOICES number_permute(int state, if (char_index < array_count (choices)) { iterate_list (c, (CHOICES) array_index (choices, char_index)) { if (depth++ < number_depth) - append_number_choices (state, word, choices, char_index, - (A_CHOICE *) first_node (c), limit, rating, - certainty, certainty_array, &result); + append_number_choices (state, word, unichar_lengths, unichar_offsets, + choices, char_index, + (A_CHOICE *) first_node (c), limit, rating, + certainty, certainty_array, &result); } } if (result && number_debug == 1) @@ -412,17 +442,21 @@ CHOICES number_permute(int state, A_CHOICE *number_permute_and_select(CHOICES_LIST char_choices, float rating_limit) { CHOICES result = NIL; - char word[MAX_WERD_LENGTH + 1]; + char word[UNICHAR_LEN * MAX_WERD_LENGTH + 1]; + char unichar_lengths[MAX_WERD_LENGTH + 1]; + int unichar_offsets[MAX_WERD_LENGTH + 1]; float certainty_array[MAX_WERD_LENGTH + 1]; float rating = rating_limit; A_CHOICE *best_choice; - best_choice = new_choice (NULL, MAXFLOAT, -MAXFLOAT, -1, NO_PERM); + best_choice = new_choice (NULL, NULL, MAXFLOAT, -MAXFLOAT, -1, NO_PERM); if (array_count (char_choices) <= MAX_WERD_LENGTH) { word[0] = '\0'; + unichar_lengths[0] = 0; + unichar_offsets[0] = 0; result = number_permute (0, char_choices, 0, &rating, - word, 0.0, 0.0, certainty_array); + word, unichar_lengths, unichar_offsets, 0.0, 0.0, certainty_array); if (display_ratings && result) print_choices ("number_permuter", result); @@ -445,14 +479,17 @@ A_CHOICE *number_permute_and_select(CHOICES_LIST char_choices, * Check to see if this string is a pure number (one that does not end * with alphabetic characters). **********************************************************************/ -int pure_number(const char *string) { +int pure_number(const char *string, const char *lengths) { int x; + int offset; - for (x = strlen (string) - 1; x >= 0; x--) { - if (isdigit (string[x])) { + x = strlen (lengths) - 1; + offset = strlen (string) - lengths[x]; + for (;x >= 0; offset -= lengths[--x]) { + if (unicharset.get_isdigit (string + offset, lengths[x])) { return (TRUE); } - else if (isalpha (string[x])) + else if (unicharset.get_isalpha (string + offset, lengths[x])) return (FALSE); } return (FALSE); @@ -465,18 +502,20 @@ int pure_number(const char *string) { * Check this string to see if it is a valid number. Return TRUE if * it is. **********************************************************************/ -int valid_number(const char *string) { +int valid_number(const char *string, const char *lengths) { int state = 0; int char_index; - int num_chars = strlen (string); + int offset; + int num_chars = strlen (lengths); int num_digits = 0; - for (char_index = 0; char_index < num_chars; char_index++) { + for (char_index = 0, offset = 0; char_index < num_chars; + offset += lengths[char_index++]) { - state = number_state_change (state, string + char_index); + state = number_state_change (state, string + offset, lengths + char_index); if (state == -1) return (FALSE); - if (isdigit (string[char_index])) + if (unicharset.get_isdigit (string + offset, lengths[char_index])) num_digits++; } return num_digits > num_chars - num_digits; diff --git a/dict/permnum.h b/dict/permnum.h index 0b097173fe..dafb912cf2 100644 --- a/dict/permnum.h +++ b/dict/permnum.h @@ -41,10 +41,12 @@ extern float good_number; /*---------------------------------------------------------------------- F u n c t i o n s ----------------------------------------------------------------------*/ -void adjust_number(A_CHOICE *best_choice, float *certainty_array); +void adjust_number(A_CHOICE *best_choice, float *certainty_array); void append_number_choices(int state, char *word, + char unichar_lengths[], + int unichar_offsets[], CHOICES_LIST choices, int char_index, A_CHOICE *this_choice, @@ -54,18 +56,20 @@ void append_number_choices(int state, float *certainty_array, CHOICES *result); -void init_permnum(); +void init_permnum(); -int number_character_type(char ch, int state); +int number_character_type(char ch, int length, int state); //current state -int number_state_change(int state, const char *word); +int number_state_change(int state, const char *word, const char* lengths); CHOICES number_permute(int state, CHOICES_LIST choices, int char_index, float *limit, char *word, + char unichar_lengths[], + int unichar_offsets[], float rating, float certainty, float *certainty_array); @@ -73,7 +77,7 @@ CHOICES number_permute(int state, A_CHOICE *number_permute_and_select(CHOICES_LIST char_choices, float rating_limit); -int pure_number(const char *string); +int pure_number(const char *string, const char *lengths); -int valid_number(const char *string); +int valid_number(const char *string, const char *lengths); #endif diff --git a/dict/permute.cpp b/dict/permute.cpp index a7d8370a6a..6deadf1496 100644 --- a/dict/permute.cpp +++ b/dict/permute.cpp @@ -44,7 +44,9 @@ int permutation_count; // Used in metrics.cpp. /*---------------------------------------------------------------------- V a r i a b l e s ----------------------------------------------------------------------*/ -#define MAX_NUM_EDGES 60000 +// TODO(tkielbus) Choose a value for the MAX_NUM_EDGES constant +// (or make it dynamic) +#define MAX_NUM_EDGES 2000000 #define MAX_DOC_EDGES 250000 #define RESERVED_DOC_EDGES 10000 #define MAX_USER_EDGES 20000 @@ -80,6 +82,7 @@ make_toggle_var (doc_dict_enable, 1, make_doc_dict, int permute_only_top = 0; +#if 0 //0x0=. static INT32 bigram_counts[256][3] = { { 0, 0, 0 @@ -850,6 +853,7 @@ static INT32 bigram_counts[256][3] = { { 0, 0, 0 }, }; +#endif //extern "C" double permuter_pending_threshold; @@ -904,10 +908,12 @@ void add_document_word(A_CHOICE *best_choice) { char filename[CHARS_PER_LINE]; FILE *doc_word_file; char *string; + char *lengths; int stringlen; //length of word string = class_string (best_choice); - stringlen = strlen (string); + lengths = class_lengths (best_choice); + stringlen = strlen (lengths); // Skip if using external dictionary. if (letter_is_okay != &def_letter_is_okay) return; @@ -920,7 +926,9 @@ void add_document_word(A_CHOICE *best_choice) { if (class_certainty (best_choice) < permuter_pending_threshold) return; if (!word_in_dawg (pending_words, string)) { - if (stringlen > 2 || isupper (string[0]) && isupper (string[1])) + if (stringlen > 2 || + (stringlen >= 2 && unicharset.get_isupper (string, lengths[0]) && + unicharset.get_isupper (string + lengths[0], lengths[1]))) add_word_to_dawg(pending_words, string, MAX_DOC_EDGES, @@ -937,7 +945,6 @@ void add_document_word(A_CHOICE *best_choice) { fclose(doc_word_file); } add_word_to_dawg(document_words, string, MAX_DOC_EDGES, RESERVED_DOC_EDGES); - case_sensative = FALSE; } @@ -959,7 +966,8 @@ adjust_non_word (A_CHOICE * best_choice, float certainties[]) { this_word = class_string (best_choice); class_probability (best_choice) += RATING_PAD; - if (case_ok (this_word) && punctuation_ok (this_word) != -1) { + if (case_ok (this_word, class_lengths (best_choice)) + && punctuation_ok (this_word, class_lengths (best_choice)) != -1) { class_probability (best_choice) *= non_word; adjust_factor = non_word; if (adjust_debug) @@ -969,9 +977,9 @@ adjust_non_word (A_CHOICE * best_choice, float certainties[]) { class_probability (best_choice) *= garbage; adjust_factor = garbage; if (adjust_debug) { - if (!case_ok (this_word)) + if (!case_ok (this_word, class_lengths (best_choice))) cprintf (", C"); - if (punctuation_ok (this_word) == -1) + if (punctuation_ok (this_word, class_lengths (best_choice)) == -1) cprintf (", P"); cprintf (", %4.2f ", garbage); } @@ -1021,7 +1029,6 @@ void init_permute() { name = language_data_path_prefix; name += "user-words"; read_word_list(name.string(), user_words, MAX_USER_EDGES, USER_RESERVED_EDGES); - case_sensative = FALSE; } void end_permute() { @@ -1051,13 +1058,13 @@ A_CHOICE *permute_all(CHOICES_LIST char_choices, result_1 = permute_top_choice (char_choices, rating_limit, raw_choice, &any_alpha); + if (result_1 == NULL) return (NULL); if (permute_only_top) return result_1; - if (any_alpha && array_count (char_choices) <= 20) { + if (any_alpha && array_count (char_choices) <= MAX_WERD_LENGTH) { result_2 = permute_words (char_choices, rating_limit); - if (class_probability (result_1) < class_probability (result_2) || class_string (result_2) == NULL) { free_choice(result_2); @@ -1133,7 +1140,8 @@ A_CHOICE *permute_compound_words(CHOICES_LIST character_choices, float rating_limit) { A_CHOICE *first_choice; A_CHOICE *best_choice = NULL; - char word[MAX_WERD_LENGTH + 1]; + char word[UNICHAR_LEN * MAX_WERD_LENGTH + 1]; + char unichar_lengths[MAX_WERD_LENGTH + 1]; float rating = 0; float certainty = 10000; char char_choice; @@ -1142,9 +1150,10 @@ A_CHOICE *permute_compound_words(CHOICES_LIST character_choices, char *ptr; word[0] = '\0'; + unichar_lengths[0] = 0; if (array_count (character_choices) > MAX_WERD_LENGTH) { - return (new_choice (NULL, MAX_FLOAT32, -MAX_FLOAT32, -1, NO_PERM)); + return (new_choice (NULL, NULL, MAX_FLOAT32, -MAX_FLOAT32, -1, NO_PERM)); } array_loop(character_choices, x) { @@ -1159,12 +1168,16 @@ A_CHOICE *permute_compound_words(CHOICES_LIST character_choices, cprintf ("Hyphenated word found\n"); permute_subword (character_choices, rating_limit, - first_index, x - 1, word, &rating, &certainty); + first_index, x - 1, word, unichar_lengths, + &rating, &certainty); if (rating > rating_limit) break; first_index = x + 1; - strcat (word, class_string (first_choice)); + + strcat(word, class_string (first_choice)); + char length[] = {strlen(class_string (first_choice)), 0}; + strcat(unichar_lengths + x, length); rating += class_probability (first_choice); certainty = min (class_certainty (first_choice), certainty); } @@ -1172,9 +1185,11 @@ A_CHOICE *permute_compound_words(CHOICES_LIST character_choices, if (first_index > 0 && first_index < x && rating <= rating_limit) { permute_subword (character_choices, rating_limit, - first_index, x - 1, word, &rating, &certainty); + first_index, x - 1, word, unichar_lengths, + &rating, &certainty); - best_choice = new_choice (word, rating, certainty, -1, COMPOUND_PERM); + best_choice = new_choice (word, unichar_lengths, rating, + certainty, -1, COMPOUND_PERM); } return (best_choice); } @@ -1194,6 +1209,7 @@ void permute_subword(CHOICES_LIST character_choices, int start, int end, char *word, + char unichar_lengths[], float *rating, float *certainty) { int x; @@ -1206,6 +1222,7 @@ void permute_subword(CHOICES_LIST character_choices, DisableChoiceAccum(); raw_choice.string = NULL; + raw_choice.lengths = NULL; raw_choice.rating = MAX_INT16; raw_choice.certainty = -MAX_INT16; @@ -1218,7 +1235,9 @@ void permute_subword(CHOICES_LIST character_choices, subchoices = array_push (subchoices, choices); } else { const char* str = best_string(choices); - strcat (word, str); + strcat(word, str); + char length[] = {strlen(str), 0}; + strcat(unichar_lengths + x, length); } } @@ -1231,6 +1250,7 @@ void permute_subword(CHOICES_LIST character_choices, if (best_choice && class_string (best_choice)) { strcat (word, class_string (best_choice)); + strcat (unichar_lengths, class_lengths (best_choice)); *rating += class_probability (best_choice); *certainty = min (class_certainty (best_choice), *certainty); } @@ -1252,6 +1272,8 @@ void permute_subword(CHOICES_LIST character_choices, } if (raw_choice.string) strfree(raw_choice.string); + if (raw_choice.lengths) + strfree(raw_choice.lengths); EnableChoiceAccum(); } @@ -1273,18 +1295,26 @@ A_CHOICE *permute_top_choice(CHOICES_LIST character_choices, A_CHOICE *first_choice; A_CHOICE *best_choice; A_CHOICE *other_choice; - char *ptr; - char first_char; //first choice - char second_char; //second choice - char third_char; //third choice - char prev_char = '\0'; //prev in word - char next_char = '\0'; //next in word - char next_next_char = '\0'; //after next next in word - - char word[MAX_PERM_LENGTH + 1]; - char capital_word[MAX_PERM_LENGTH + 1]; - char lower_word[MAX_PERM_LENGTH + 1]; + const char *ptr; + const char *first_char; //first choice + const char *second_char; //second choice + const char *third_char; //third choice + char prev_char[UNICHAR_LEN + 1]; //prev in word + const char *next_char = ""; //next in word + const char *next_next_char = ""; //after next next in word + + char word[UNICHAR_LEN * MAX_PERM_LENGTH + 1]; + char capital_word[UNICHAR_LEN * MAX_PERM_LENGTH + 1]; + char lower_word[UNICHAR_LEN * MAX_PERM_LENGTH + 1]; + + char word_lengths[MAX_PERM_LENGTH + 1]; + char capital_word_lengths[MAX_PERM_LENGTH + 1]; + char lower_word_lengths[MAX_PERM_LENGTH + 1]; + int x; + int x_word = 0; + int x_capital_word = 0; + int x_lower_word = 0; BOOL8 char_alpha; float rating = 0; @@ -1301,10 +1331,12 @@ A_CHOICE *permute_top_choice(CHOICES_LIST character_choices, float upper_certainties[MAX_PERM_LENGTH + 1]; register CHOICES this_char; - register char ch; + register const char* ch; register INT8 lower_done; register INT8 upper_done; + prev_char[0] = '\0'; + if (any_alpha != NULL) *any_alpha = FALSE; @@ -1318,29 +1350,48 @@ A_CHOICE *permute_top_choice(CHOICES_LIST character_choices, first_choice = (A_CHOICE *) first_node (char_list); ptr = class_string (first_choice); - next_char = (ptr != NULL && *ptr != '\0') ? *ptr : ' '; + next_char = (ptr != NULL && *ptr != '\0') ? ptr : " "; } else - next_char = '\0'; + next_char = ""; if (x + 2 < array_count (character_choices)) { char_list = (CHOICES) array_value (character_choices, x + 2); first_choice = (A_CHOICE *) first_node (char_list); ptr = class_string (first_choice); - next_next_char = (ptr != NULL && *ptr != '\0') ? *ptr : ' '; + next_next_char = (ptr != NULL && *ptr != '\0') ? ptr : " "; } else - next_next_char = '\0'; + next_next_char = ""; char_list = (CHOICES) array_value (character_choices, x); first_choice = (A_CHOICE *) first_node (char_list); ptr = class_string (first_choice); - word[x] = (ptr != NULL && *ptr != '\0') ? *ptr : ' '; + if (ptr != NULL && *ptr != '\0') + { + strcpy(word + x_word, ptr); + word_lengths[x] = strlen(ptr); + + strcpy(capital_word + x_capital_word, ptr); + capital_word_lengths[x] = strlen(ptr); + + strcpy(lower_word + x_lower_word, ptr); + lower_word_lengths[x] = strlen(ptr); + } + else + { + word[x_word] = ' '; + word_lengths[x] = 1; + + capital_word[x_capital_word] = ' '; + capital_word_lengths[x] = 1; - lower_word[x] = word[x]; - capital_word[x] = word[x]; - first_char = word[x]; + lower_word[x_lower_word] = ' '; + lower_word_lengths[x] = 1; + } + + first_char = (ptr != NULL && *ptr != '\0') ? ptr : " "; first_rating = class_probability (first_choice); upper_rating += class_probability (first_choice); lower_rating += class_probability (first_choice); @@ -1354,64 +1405,72 @@ A_CHOICE *permute_top_choice(CHOICES_LIST character_choices, lower_done = FALSE; upper_done = FALSE; char_alpha = FALSE; - second_char = '\0'; - third_char = '\0'; + second_char = ""; + third_char = ""; iterate_list(this_char, char_list) { ptr = best_string (this_char); - ch = ptr != NULL ? *ptr : '\0'; - if (ch == 'l' && rest (this_char) != NULL + ch = ptr != NULL ? ptr : ""; + if (strcmp(ch, "l") == 0 && rest (this_char) != NULL && best_probability (rest (this_char)) == first_rating) { ptr = best_string (rest (this_char)); - if (ptr != NULL && (*ptr == '1' || *ptr == 'I')) { - second_char = *ptr; + if (ptr != NULL && (strcmp(ptr, "1") == 0 || strcmp(ptr, "I") == 0)) { + second_char = ptr; this_char = rest (this_char); if (rest (this_char) != NULL && best_probability (rest (this_char)) == first_rating) { ptr = best_string (rest (this_char)); - if (ptr != NULL && (*ptr == '1' || *ptr == 'I')) { - third_char = *ptr; + if (ptr != NULL && (strcmp(ptr, "1") == 0 || strcmp(ptr, "I") == 0)) { + third_char = ptr; this_char = rest (this_char); } } ch = choose_il1 (first_char, second_char, third_char, prev_char, next_char, next_next_char); - if (ch != 'l' && word[x] == 'l') { - word[x] = ch; - lower_word[x] = ch; - capital_word[x] = ch; + if (strcmp(ch, "l") != 0 && word_lengths[x] == 1 && + word[x_word] == 'l') { + word[x_word] = *ch; + lower_word[x_lower_word] = *ch; + capital_word[x_capital_word] = *ch; } } } - /* Find lower case */ - if (!lower_done && (islower (ch) || (isupper (ch) && x == 0))) { - lower_word[x] = ch; - lower_rating += best_probability (this_char); - lower_rating -= class_probability (first_choice); - lower_certainty = min (best_certainty (this_char), lower_certainty); - lower_certainties[x] = best_certainty (this_char); - lower_done = TRUE; - } - /* Find upper case */ - if (!upper_done && isupper (ch)) { - capital_word[x] = ch; - upper_rating += best_probability (this_char); - upper_rating -= class_probability (first_choice); - upper_certainty = min (best_certainty (this_char), upper_certainty); - upper_certainties[x] = best_certainty (this_char); - upper_done = TRUE; + if (ch != NULL && *ch != '\0') { + /* Find lower case */ + if (!lower_done && (unicharset.get_islower(ch) || + (unicharset.get_isupper(ch) && x == 0))) { + strcpy(lower_word + x_lower_word, ch); + lower_word_lengths[x] = strlen(ch); + lower_rating += best_probability (this_char); + lower_rating -= class_probability (first_choice); + lower_certainty = min (best_certainty (this_char), lower_certainty); + lower_certainties[x] = best_certainty (this_char); + lower_done = TRUE; + } + /* Find upper case */ + if (!upper_done && unicharset.get_isupper(ch)) { + strcpy(capital_word + x_capital_word, ch); + capital_word_lengths[x] = strlen(ch); + upper_rating += best_probability (this_char); + upper_rating -= class_probability (first_choice); + upper_certainty = min (best_certainty (this_char), upper_certainty); + upper_certainties[x] = best_certainty (this_char); + upper_done = TRUE; + } + if (!char_alpha && unicharset.get_isalpha(ch)) + char_alpha = TRUE; + if (lower_done && upper_done) + break; } - if (!char_alpha && isalpha (ch)) - char_alpha = TRUE; - if (lower_done && upper_done) - break; } if (char_alpha && any_alpha != NULL) *any_alpha = TRUE; if (first_choice == NULL) { cprintf ("Permuter giving up due to null choices list"); - word[x + 1] = '$'; - word[x + 2] = '\0'; + word[x_word + 1] = '$'; + word[x_word + 2] = '\0'; + word_lengths[x + 1] = 1; + word_lengths[x + 2] = 0; cprintf (" word=%s\n", word); return (NULL); } @@ -1421,44 +1480,60 @@ A_CHOICE *permute_top_choice(CHOICES_LIST character_choices, return (NULL); certainty = min (class_certainty (first_choice), certainty); - prev_char = word[x]; + + strncpy(prev_char, word + x_word, word_lengths[x]); + prev_char[word_lengths[x]] = '\0'; + + x_word += word_lengths[x]; + x_capital_word += capital_word_lengths[x]; + x_lower_word += lower_word_lengths[x]; } - lower_word[x] = '\0'; - capital_word[x] = '\0'; - word[x] = '\0'; + word[x_word] = '\0'; + word_lengths[x] = 0; + + capital_word[x_capital_word] = '\0'; + capital_word_lengths[x] = 0; + + lower_word[x_lower_word] = '\0'; + lower_word_lengths[x] = 0; if (rating < class_probability (raw_choice)) { if (class_string (raw_choice)) strfree (class_string (raw_choice)); + if (class_lengths (raw_choice)) + strfree (class_lengths (raw_choice)); class_probability (raw_choice) = rating; class_certainty (raw_choice) = certainty; class_string (raw_choice) = strsave (word); + class_lengths (raw_choice) = strsave (word_lengths); class_permuter (raw_choice) = TOP_CHOICE_PERM; LogNewRawChoice (raw_choice, 1.0, certainties); } - best_choice = new_choice (word, rating, certainty, -1, TOP_CHOICE_PERM); + best_choice = new_choice (word, word_lengths, + rating, certainty, -1, TOP_CHOICE_PERM); adjust_non_word(best_choice, certainties); - other_choice = new_choice (lower_word, lower_rating, lower_certainty, - -1, LOWER_CASE_PERM); + other_choice = new_choice (lower_word, lower_word_lengths, + lower_rating, lower_certainty, + -1, LOWER_CASE_PERM); adjust_non_word(other_choice, lower_certainties); if (class_probability (best_choice) > class_probability (other_choice)) { clone_choice(best_choice, other_choice); } free_choice(other_choice); - other_choice = new_choice (capital_word, upper_rating, upper_certainty, - -1, UPPER_CASE_PERM); + other_choice = new_choice (capital_word, capital_word_lengths, + upper_rating, upper_certainty, + -1, UPPER_CASE_PERM); adjust_non_word(other_choice, upper_certainties); if (class_probability (best_choice) > class_probability (other_choice)) { clone_choice(best_choice, other_choice); } free_choice(other_choice); - return (best_choice); } @@ -1468,67 +1543,95 @@ A_CHOICE *permute_top_choice(CHOICES_LIST character_choices, * * Choose between the candidate il1 chars. **********************************************************************/ -char choose_il1(char first_char, //first choice - char second_char, //second choice - char third_char, //third choice - char prev_char, //prev in word - char next_char, //next in word - char next_next_char) { //after next next in word +const char* choose_il1(const char *first_char, //first choice + const char *second_char, //second choice + const char *third_char, //third choice + const char *prev_char, //prev in word + const char *next_char, //next in word + const char *next_next_char) { //after next next in word INT32 type1; //1/I/l type of first choice INT32 type2; //1/I/l type of second choice INT32 type3; //1/I/l type of third choice - if (first_char == 'l' && second_char != '\0') { - if (second_char == 'I' - && (isupper (prev_char) && !islower (next_char) - && !isdigit (next_char) || isupper (next_char) - && !islower (prev_char) && !isdigit (prev_char))) + int first_char_length = strlen(first_char); + int prev_char_length = strlen(prev_char); + int next_char_length = strlen(next_char); + int next_next_char_length = strlen(next_next_char); + + if (*first_char == 'l' && *second_char != '\0') { + if (*second_char == 'I' + && ((prev_char_length != 0 && + unicharset.get_isupper (prev_char, prev_char_length)) && + (next_char_length == 0 || + !unicharset.get_islower (next_char, next_char_length)) && + (next_char_length == 0 || + !unicharset.get_isdigit (next_char, next_char_length)) || + (next_char_length != 0 && + unicharset.get_isupper (next_char, next_char_length)) && + (prev_char_length == 0 || + !unicharset.get_islower (prev_char, prev_char_length)) && + (prev_char_length == 0 || + !unicharset.get_isdigit (prev_char, prev_char_length)))) first_char = second_char; //override - else if (second_char == '1' || third_char == '1') { - if (isdigit (next_char) || isdigit (prev_char) - || next_char == 'l' && isdigit (next_next_char)) { - first_char = '1'; + else if (*second_char == '1' || *third_char == '1') { + if ((next_char_length != 0 && + unicharset.get_isdigit (next_char, next_char_length)) || + (prev_char_length != 0 && + unicharset.get_isdigit (prev_char, prev_char_length)) + || *next_char == 'l' && + (next_next_char_length != 0 && + unicharset.get_isdigit (next_next_char, next_next_char_length))) { + first_char = "1"; + first_char_length = 1; } - else if (!islower (prev_char) - && (!islower (next_char) || next_char == 's' - && next_next_char == 't')) { - if ((prev_char != '\'' && prev_char != '`' || next_char != '\0') - && (next_char != '\'' && next_char != '`' - || prev_char != '\0')) { - first_char = '1'; + else if ((prev_char_length == 0 || + !unicharset.get_islower (prev_char, prev_char_length)) && + ((next_char_length == 0 || + !unicharset.get_islower (next_char, next_char_length)) || + *next_char == 's' && + *next_next_char == 't')) { + if ((*prev_char != '\'' && *prev_char != '`' || *next_char != '\0') + && (*next_char != '\'' && *next_char != '`' + || *prev_char != '\0')) { + first_char = "1"; + first_char_length = 1; } } } - if (first_char == 'l' && next_char != '\0' && !isalpha (prev_char)) { + if (*first_char == 'l' && *next_char != '\0' && + (prev_char_length == 0 || + !unicharset.get_isalpha (prev_char, prev_char_length))) { type1 = 2; - if (second_char == '1') + if (*second_char == '1') type2 = 0; - else if (second_char == 'I') + else if (*second_char == 'I') type2 = 1; - else if (second_char == 'l') + else if (*second_char == 'l') type2 = 2; else type2 = type1; - if (third_char == '1') + if (*third_char == '1') type3 = 0; - else if (third_char == 'I') + else if (*third_char == 'I') type3 = 1; - else if (third_char == 'l') + else if (*third_char == 'l') type3 = 2; else type3 = type1; - if (bigram_counts[next_char][type2] > - bigram_counts[next_char][type1]) { +#if 0 + if (bigram_counts[*next_char][type2] > + bigram_counts[*next_char][type1]) { first_char = second_char; type1 = type2; } - if (bigram_counts[next_char][type3] > - bigram_counts[next_char][type1]) { + if (bigram_counts[*next_char][type3] > + bigram_counts[*next_char][type1]) { first_char = third_char; } +#endif } } return first_char; @@ -1543,12 +1646,10 @@ char choose_il1(char first_char, //first choice **********************************************************************/ A_CHOICE *permute_words(CHOICES_LIST char_choices, float rating_limit) { A_CHOICE *best_choice; - int hyphen_len; - best_choice = new_choice (NULL, rating_limit, -MAX_FLOAT32, -1, NO_PERM); + best_choice = new_choice (NULL, NULL, rating_limit, -MAX_FLOAT32, -1, NO_PERM); - hyphen_len = hyphen_string != NULL ? strlen (hyphen_string) : 0; - if (hyphen_len + array_count (char_choices) > MAX_WERD_LENGTH) { + if (hyphen_base_size() + array_count (char_choices) > MAX_WERD_LENGTH) { class_probability (best_choice) = MAX_FLOAT32; } else { @@ -1562,7 +1663,6 @@ A_CHOICE *permute_words(CHOICES_LIST char_choices, float rating_limit) { dawg_permute_and_select ("user words", user_words, USER_DAWG_PERM, char_choices, best_choice, FALSE); - case_sensative = FALSE; } return (best_choice); @@ -1584,7 +1684,6 @@ int valid_word(const char *string) { result = DOC_DAWG_PERM; else if (word_in_dawg (user_words, string)) result = USER_DAWG_PERM; - case_sensative = FALSE; } return (result); } diff --git a/dict/permute.h b/dict/permute.h index d7ae6caa01..11295bd763 100644 --- a/dict/permute.h +++ b/dict/permute.h @@ -70,6 +70,7 @@ void permute_subword(CHOICES_LIST character_choices, int start, int end, char *word, + char unichar_lengths[], float *rating, float *certainty); @@ -78,12 +79,12 @@ A_CHOICE *permute_top_choice(CHOICES_LIST character_choices, A_CHOICE *raw_choice, BOOL8 *any_alpha); -char choose_il1(char first_char, //first choice - char second_char, //second choice - char third_char, //third choice - char prev_char, //prev in word - char next_char, //next in word - char next_next_char); +const char* choose_il1(const char *first_char, //first choice + const char *second_char, //second choice + const char *third_char, //third choice + const char *prev_char, //prev in word + const char *next_char, //next in word + const char *next_next_char); A_CHOICE *permute_words(CHOICES_LIST char_choices, float rating_limit); diff --git a/dict/reduce.cpp b/dict/reduce.cpp new file mode 100644 index 0000000000..786e64d74e --- /dev/null +++ b/dict/reduce.cpp @@ -0,0 +1,424 @@ +/* -*-C-*- +******************************************************************************** +* +* File: reduce.cpp +* Description: Functions to reduce a TRIE into a DAWG +* Author: Mark Seaman, OCR Technology +* Created: Fri Oct 16 14:37:00 1987 +* Modified: Wed Jun 19 16:51:29 1991 (Mark Seaman) marks@hpgrlt +* Language: C +* Package: N/A +* Status: Reusable Software Component +* +* (c) Copyright 1987, Hewlett-Packard Company, all rights reserved. +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** http://www.apache.org/licenses/LICENSE-2.0 +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +* +******************************************************************************** +*/ + + +/* +---------------------------------------------------------------------- + I n c l u d e s +---------------------------------------------------------------------- +*/ + +#include "reduce.h" + +#include "makedawg.h" +#include "cutil.h" + +#ifdef __UNIX__ +#include +#endif + +/* +---------------------------------------------------------------------- + T y p e s +---------------------------------------------------------------------- +*/ + + + +/* +---------------------------------------------------------------------- + V a r i a b l e s +---------------------------------------------------------------------- +*/ + +static INT32 debug_1 = 0; + +/* +---------------------------------------------------------------------- + M a c r o s +---------------------------------------------------------------------- +*/ + + +/* +---------------------------------------------------------------------- + F u n c t i o n s +---------------------------------------------------------------------- +*/ + +/********************************************************************** +* collapse_source_nodes +* +* A pair of edges has been found that can be reduced. This function +* accomplishes that reduction by collapsing the two nodes into a +* single node. +**********************************************************************/ + +void collapse_source_nodes (EDGE_ARRAY dawg, + NODE_REF source_node_1, + NODE_REF source_node_2, + NODE_REF dest_node, + INT32 max_num_edges, + INT32 reserved_edges) { + INT32 num_links; + EDGE_REF edge; + /* NODE_REF new_source_1; */ + + num_links = num_forward_edges (dawg, source_node_2); + + /* if (debug_1) + printf ("Node = %d, Input 1 = %d, Input 2 = %6d, num_links = %d\n", + dest_node, source_node_1, source_node_2, num_links); + + if (debug) { + printf ("Node = %d, Input 1 = %d, Input 2 = %6d, num_links = %d\n", + dest_node, source_node_1, source_node_2, num_links); + print_dawg_node (dawg, source_node_1); + print_dawg_node (dawg, source_node_2); + new_line (); + } + */ + /* Remove forward links in */ + edge = source_node_2; /* source_node_2 - dest_node */ + if (forward_edge (dawg, edge)) { + do { + remove_edge_linkage (dawg, dest_node, source_node_2, + BACKWARD_EDGE, + edge_letter (dawg, edge), + end_of_word (dawg, edge)); + } edge_loop (dawg, edge); + } + /* Fix backward links */ + edge = source_node_2; /* in source_node_2 */ + edge += num_forward_edges (dawg, source_node_2); + if (backward_edge (dawg, edge)) { + do { + move_node_if_needed (dawg, source_node_1, + max_num_edges, reserved_edges); + + add_edge_linkage (dawg, source_node_1, next_node (dawg, edge), + BACKWARD_EDGE, + edge_letter (dawg, edge), + end_of_word (dawg, edge)); + /* Node moved */ + relocate_edge (dawg, next_node (dawg, edge), + source_node_2, source_node_1); + } edge_loop (dawg, edge); + } + delete_node (dawg, source_node_2); + + /* if (debug) { + printf ("Number of edges source = %d, dest = %d\n", + edges_in_node (dawg, new_source_1), + edges_in_node (dawg, dest_node)); + print_int ("Number of edges = ", edges_in_node (dawg, dest_node)); + print_dawg_node (dawg, new_source_1); + + print_string ("_________________________________________"); + new_line (); + } + */ +} + + +/********************************************************************** +* eliminate_redundant_edges +* +* Compare these two edges in this node to see if they point to two +* nodes that could be collapsed. If they do, then perform the +* reduction and return TRUE. If not, return FALSE. +**********************************************************************/ + +INT32 eliminate_redundant_edges (EDGE_ARRAY dawg, + NODE_REF node, + EDGE_REF edge_1, + EDGE_REF edge_2, + INT32 max_num_edges, + INT32 reserved_edges) { + static INT32 elim_count = 0; + static INT32 keep_count = 0; + + if (same_output (dawg, + next_node (dawg, edge_1), + next_node (dawg, edge_2))) { + elim_count++; + + collapse_source_nodes (dawg, + next_node (dawg, edge_1), + next_node (dawg, edge_2), + node, + max_num_edges, reserved_edges); + /* if (debug_1) { + printf ("Collapsing node %d\n", node); + print_dawg_node (dawg, node); + printf ("Candidate edges = %d, %d\n", edge_1, edge_2); + printf ("Candidate nodes = %d, %d\n\n", + next_node (dawg, edge_1), next_node (dawg, edge_2)); + new_line (); + } + */ + return (TRUE); + } + else { + keep_count++; + } + return (FALSE); +} + + +/********************************************************************** +* letter_order +* +* Compare two edges to see which one of the letters is larger. +**********************************************************************/ + +INT32 letter_order (const void* edge1_ptr, + const void* edge2_ptr) { + + if (letter_of_edge(*((EDGE_RECORD*) edge1_ptr)) < + letter_of_edge(*((EDGE_RECORD*) edge2_ptr))) + return (-1); + + if (letter_of_edge(*((EDGE_RECORD*) edge1_ptr)) > + letter_of_edge(*((EDGE_RECORD*) edge2_ptr))) + return (1); + + return (0); +} + + +/* + printf ("%c%c %c%c ", + edge1.letter, (edge1.flags & WORD_END_FLAG ? '*' : ' '), + edge2.letter, (edge2.flags & WORD_END_FLAG ? '*' : ' ')); + printf ("\n"); + printf ("+\n"); + printf ("-\n"); +*/ + +void print_n_edges (EDGE_RECORD *edge1, + INT32 n) { + EDGE_RECORD *edge; + + edge = edge1; + while (n-- > 0) { + printf ("%c ", letter_of_edge(edge[0])); + edge++; + } + + new_line (); +} + +/********************************************************************** +* reduce_lettered_edges +* +* The edge parameter is pointing to the first edge in a group of edges +* in this node with a particular letter value. Look through these edges +* to see if any of them can be collapsed. If so do it. When all edges +* with this letter have been reduced then return to the caller. +* If further reduction is possible with this same letter then the +* edge parameter is not incremented. When no further reduction is +* possible then FALSE is returned. +**********************************************************************/ + +INT32 reduce_lettered_edges (EDGE_ARRAY dawg, + EDGE_REF *edge, + NODE_REF node, + NODE_MARKER reduced_nodes, + INT32 max_num_edges, + INT32 reserved_edges) { + EDGE_REF edge_1; + EDGE_REF edge_2; + INT32 fixed_one; + INT32 did_something = FALSE; + + if (debug_1) + printf ("reduce_lettered_edges (edge=" REFFORMAT ")\n", *edge); + + /* Loop for each back edge */ + edge_1 = *edge; + while ((! last_edge (dawg, edge_1)) && + edge_letter (dawg, edge_1) == edge_letter (dawg, *edge)) { + + edge_2 = edge_1 + 1; /* Compare all back edges */ + do { + + if (edge_letter (dawg, edge_1) < edge_letter (dawg, edge_2)) + break; + + if (debug_1) { + printf (REFFORMAT " (%c), " REFFORMAT " (%c) ", + edge_1, edge_letter (dawg, edge_1), + edge_2, edge_letter (dawg, edge_2)); + } + + if (edge_2 != edge_1 && + edge_letter (dawg, edge_2) == edge_letter (dawg, edge_1) && + end_of_word (dawg, edge_2) == end_of_word (dawg, edge_1) && + eliminate_redundant_edges (dawg, node, edge_1, edge_2, + max_num_edges, reserved_edges)) { + reduced_nodes [next_node (dawg, edge_1)] = 0; + fixed_one = TRUE; + did_something = TRUE; + } + else { + if (debug_1) printf (" ."); + fixed_one = FALSE; + } + if (debug_1) printf ("\n"); + + } while (fixed_one ? + edge_occupied (dawg, edge_2) : + (! last_edge (dawg, edge_2++))); + edge_1++; + } + + if (! did_something) { + if (last_edge (dawg, edge_1)) + return (FALSE); + else + *edge = edge_1; + } + return (TRUE); +} + + +/********************************************************************** +* reduce_node_input +* +* Eliminate any redundant edges from this node in the DAWG. +**********************************************************************/ + +void reduce_node_input (EDGE_ARRAY dawg, + NODE_REF node, + NODE_MARKER reduced_nodes, + INT32 max_num_edges, + INT32 reserved_edges) { + EDGE_REF edge_1; + INT32 forward_edges = num_forward_edges (dawg, node); + INT32 backward_edges = edges_in_node (dawg, node) - forward_edges; + + static INT32 num_nodes_reduced = 0; + + if (debug_1) { + printf ("reduce_node_input (node=" REFFORMAT ")\n", node); + print_dawg_node (dawg, node); + } + + if (++num_nodes_reduced % 100 == 0) { + printf ("%d nodes reduced\n", num_nodes_reduced); + if (debug_1 && num_nodes_reduced % 1000 == 0) { + write_full_dawg ("temp-save", dawg, max_num_edges); + } + } + + qsort ((void *) &edge_of (dawg, node + forward_edges), + backward_edges, + sizeof (EDGE_RECORD), + letter_order); + + /* if (debug_1) { + printf ("__________________________\n"); + print_dawg_node (dawg, node); + } + */ + edge_1 = node + forward_edges; + while (reduce_lettered_edges (dawg, &edge_1, node, reduced_nodes, + max_num_edges, reserved_edges)); + + reduced_nodes [node] = 1; /* Mark as reduced */ + + if (debug_1) { + printf ("After reduction:\n"); + print_dawg_node (dawg, node); + } + + edge_1 = node + num_forward_edges (dawg, node); /* Reduce next level */ + if (backward_edge (dawg, edge_1)) { + do { + if (next_node (dawg, edge_1) && + reduced_nodes [next_node (dawg, edge_1)] == 0) + reduce_node_input (dawg, next_node (dawg, edge_1), reduced_nodes, + max_num_edges, reserved_edges); + } edge_loop (dawg, edge_1); + } +} + + +/********************************************************************** +* same_output +* +* Check to see if these two nodes have identical output. If so then +* they can be collapsed into a single node. +**********************************************************************/ + +INT32 same_output (EDGE_ARRAY dawg, + NODE_REF node1, + NODE_REF node2) { + if (debug_1) printf ("Edge nodes = " REFFORMAT " , " \ + REFFORMAT " \n", node1, node2); + + if (num_forward_edges (dawg, node1) == 1 && + num_forward_edges (dawg, node2) == 1) { + if (debug_1) printf (" * "); + return (TRUE); + } + else { + if (debug_1) { + printf (" %d,%d \n", + num_forward_edges (dawg, node1), + num_forward_edges (dawg, node2)); + print_dawg_node (dawg, node1); + print_dawg_node (dawg, node2); + } + + return (FALSE); + } +} + + +/********************************************************************** +* trie_to_dawg +* +* Change a Trie data structure into a DAWG by eliminating the redund +**********************************************************************/ + +void trie_to_dawg (EDGE_ARRAY dawg, + INT32 max_num_edges, + INT32 reserved_edges) { + NODE_MARKER reduced_nodes; + INT32 x; + + max_new_attempts = 100000; + compact_dawg (dawg, max_num_edges, reserved_edges); + + reduced_nodes = (NODE_MARKER) malloc (max_num_edges); + for (x=0; x #include @@ -52,7 +53,7 @@ typedef LIST AMBIG_TABLE; typedef struct { - UINT8 Class; + UNICHAR_ID Class; UINT16 NumChunks; float Certainty; } @@ -74,12 +75,18 @@ typedef struct { VIABLE_CHOICE Choice; float ChunkCertainty[MAX_NUM_CHUNKS]; - UINT8 ChunkClass[MAX_NUM_CHUNKS]; + UNICHAR_ID ChunkClass[MAX_NUM_CHUNKS]; } EXPANDED_CHOICE; +typedef struct +{ + char ambig[2 * (UNICHAR_LEN * MAX_AMBIG_SIZE) + 2]; + char lengths[2 * (MAX_AMBIG_SIZE) + 2]; +} AMBIG_SPEC; + /**---------------------------------------------------------------------------- Macros ----------------------------------------------------------------------------**/ @@ -98,6 +105,7 @@ void AddNewChunk(VIABLE_CHOICE Choice, int Blob); int AmbigsFound(char *Word, char *CurrentChar, const char *Tail, + const char *Tail_lengths, LIST Ambigs, DANGERR *fixpt); @@ -113,7 +121,7 @@ AMBIG_TABLE *FillAmbigTable(); int FreeBadChoice(void *item1, //VIABLE_CHOICE Choice, void *item2); //EXPANDED_CHOICE *BestChoice); -int LengthOfShortestAlphaRun(register char *Word); +int LengthOfShortestAlphaRun(register char *Word, const char *Word_lengths); VIABLE_CHOICE NewViableChoice (A_CHOICE * Choice, FLOAT32 AdjustFactor, float Certainties[]); @@ -124,7 +132,9 @@ void ReplaceDuplicateChoice (VIABLE_CHOICE OldChoice, A_CHOICE * NewChoice, FLOAT32 AdjustFactor, float Certainties[]); -int StringSameAs(const char *String, VIABLE_CHOICE ViableChoice); +int StringSameAs(const char *String, + const char *String_lengths, + VIABLE_CHOICE ViableChoice); int UniformCertainties(CHOICES_LIST Choices, A_CHOICE *BestChoice); @@ -136,6 +146,7 @@ static const char *DangerousAmbigs = DANGEROUS_AMBIGS; /* Word for which stopper debug information should be printed to stdout */ static char *WordToDebug = NULL; +static char *WordToDebug_lengths = NULL; /* flag used to disable accumulation of word choices during compound word permutation */ @@ -217,20 +228,25 @@ int AcceptableChoice(CHOICES_LIST Choices, cprintf ("\nStopper: %s (word=%c, case=%c, punct=%c)\n", class_string (BestChoice), (valid_word (class_string (BestChoice)) ? 'y' : 'n'), - (case_ok (class_string (BestChoice)) ? 'y' : 'n'), - ((punctuation_ok (class_string (BestChoice)) != + (case_ok (class_string (BestChoice), + class_lengths (BestChoice)) ? 'y' : 'n'), + ((punctuation_ok (class_string (BestChoice), + class_lengths (BestChoice)) != -1) ? 'y' : 'n')); if (valid_word (class_string (BestChoice)) && - case_ok (class_string (BestChoice)) && - punctuation_ok (class_string (BestChoice)) != -1) { - WordSize = LengthOfShortestAlphaRun (class_string (BestChoice)); + case_ok (class_string (BestChoice), class_lengths (BestChoice)) && + punctuation_ok (class_string (BestChoice), + class_lengths (BestChoice)) != -1) { + WordSize = LengthOfShortestAlphaRun (class_string (BestChoice), + class_lengths (BestChoice)); WordSize -= SmallWordSize; if (WordSize < 0) WordSize = 0; CertaintyThreshold += WordSize * CertaintyPerChar; } - else if (stopper_numbers_on && valid_number (class_string (BestChoice))) { + else if (stopper_numbers_on && valid_number (class_string (BestChoice), + class_lengths (BestChoice))) { CertaintyThreshold += stopper_numbers_on * CertaintyPerChar; } @@ -238,7 +254,8 @@ int AcceptableChoice(CHOICES_LIST Choices, cprintf ("Stopper: Certainty = %4.1f, Threshold = %4.1f\n", class_certainty (BestChoice), CertaintyThreshold); - if (NoDangerousAmbig (class_string (BestChoice), fixpt) + if (NoDangerousAmbig (class_string (BestChoice), + class_lengths (BestChoice), fixpt) && class_certainty (BestChoice) > CertaintyThreshold && UniformCertainties (Choices, BestChoice)) return (TRUE); @@ -274,8 +291,10 @@ int AcceptableResult(A_CHOICE *BestChoice, A_CHOICE *RawChoice) { cprintf ("\nRejecter: %s (word=%c, case=%c, punct=%c, unambig=%c)\n", class_string (BestChoice), (valid_word (class_string (BestChoice)) ? 'y' : 'n'), - (case_ok (class_string (BestChoice)) ? 'y' : 'n'), - ((punctuation_ok (class_string (BestChoice)) != -1) ? 'y' : 'n'), + (case_ok (class_string (BestChoice), + class_lengths (BestChoice)) ? 'y' : 'n'), + ((punctuation_ok (class_string (BestChoice), + class_lengths (BestChoice)) != -1) ? 'y' : 'n'), ((rest (BestChoices) != NIL) ? 'n' : 'y')); if ((BestChoice == NULL) || @@ -283,9 +302,11 @@ int AcceptableResult(A_CHOICE *BestChoice, A_CHOICE *RawChoice) { return (FALSE); if (valid_word (class_string (BestChoice)) && - case_ok (class_string (BestChoice)) && - punctuation_ok (class_string (BestChoice)) != -1) { - WordSize = LengthOfShortestAlphaRun (class_string (BestChoice)); + case_ok (class_string (BestChoice), class_lengths (BestChoice)) && + punctuation_ok (class_string (BestChoice), + class_lengths (BestChoice)) != -1) { + WordSize = LengthOfShortestAlphaRun (class_string (BestChoice), + class_lengths (BestChoice)); WordSize -= SmallWordSize; if (WordSize < 0) WordSize = 0; @@ -339,10 +360,11 @@ int AlternativeChoicesWorseThan(FLOAT32 Threshold) { /*---------------------------------------------------------------------------*/ -int CurrentBestChoiceIs(const char *Word) { +int CurrentBestChoiceIs(const char *Word, const char *Word_lengths) { /* ** Parameters: - ** Word string to compare to current best choice + ** Word string to compare to current best choice + ** Word_lengths lengths of unichars in Word ** Globals: ** BestChoices set of best choices for current word ** Operation: Returns TRUE if Word is the same as the current best @@ -352,7 +374,8 @@ int CurrentBestChoiceIs(const char *Word) { ** History: Thu May 30 14:44:22 1991, DSJ, Created. */ return (BestChoices != NIL && - StringSameAs (Word, (VIABLE_CHOICE) first_node (BestChoices))); + StringSameAs (Word, Word_lengths, + (VIABLE_CHOICE) first_node (BestChoices))); } /* CurrentBestChoiceIs */ @@ -415,9 +438,10 @@ void DebugWordChoices() { if (StopperDebugLevel >= 1 || WordToDebug && BestChoices && - StringSameAs (WordToDebug, (VIABLE_CHOICE) first_node (BestChoices))) { + StringSameAs (WordToDebug, WordToDebug_lengths, + (VIABLE_CHOICE) first_node (BestChoices))) { if (BestRawChoice) - PrintViableChoice (stdout, "\nBest Raw Choice: ", BestRawChoice); + PrintViableChoice (stderr, "\nBest Raw Choice: ", BestRawChoice); i = 1; Choices = BestChoices; @@ -425,7 +449,7 @@ void DebugWordChoices() { cprintf ("\nBest Cooked Choices:\n"); iterate(Choices) { sprintf (LabelString, "Cooked Choice #%d: ", i); - PrintViableChoice (stdout, LabelString, + PrintViableChoice (stderr, LabelString, (VIABLE_CHOICE) first_node (Choices)); i++; } @@ -541,6 +565,7 @@ void InitStopperVars() { string_variable (DangerousAmbigs, "DangerousAmbigs", DANGEROUS_AMBIGS); string_variable (WordToDebug, "WordToDebug", ""); + string_variable (WordToDebug_lengths, "WordToDebug_lengths", ""); MakeNonDictCertainty(); MakeRejectCertaintyOffset(); @@ -723,7 +748,7 @@ FLOAT32 AdjustFactor, float Certainties[]) { BestChoices = s_adjoin (BestChoices, NewChoice, CmpChoiceRatings); if (StopperDebugLevel >= 2) - PrintViableChoice (stdout, "New Word Choice: ", NewChoice); + PrintViableChoice (stderr, "New Word Choice: ", NewChoice); if (count (BestChoices) > tessedit_truncate_wordchoice_log) { Choices = (LIST) nth_cell (BestChoices, tessedit_truncate_wordchoice_log); @@ -737,10 +762,13 @@ FLOAT32 AdjustFactor, float Certainties[]) { /*---------------------------------------------------------------------------*/ static AMBIG_TABLE *AmbigFor = NULL; -int NoDangerousAmbig(const char *Word, DANGERR *fixpt) { +int NoDangerousAmbig(const char *Word, + const char *Word_lengths, + DANGERR *fixpt) { /* ** Parameters: ** Word word to check for dangerous ambiguities + ** Word_lengths lengths of unichars in Word ** Globals: none ** Operation: This word checks each letter in word against a list ** of potentially ambiguous characters. If a match is found @@ -754,7 +782,7 @@ int NoDangerousAmbig(const char *Word, DANGERR *fixpt) { ** History: Mon May 6 16:28:56 1991, DSJ, Created. */ - char NewWord[MAX_WERD_SIZE]; + char NewWord[MAX_WERD_SIZE * UNICHAR_LEN + 1]; char *NextNewChar; int bad_index = 0; @@ -763,13 +791,19 @@ int NoDangerousAmbig(const char *Word, DANGERR *fixpt) { NextNewChar = NewWord; while (*Word) - if (AmbigsFound (NewWord, NextNewChar, Word + 1, AmbigFor[*Word], fixpt)) { + if (AmbigsFound (NewWord, NextNewChar, + Word + *Word_lengths, Word_lengths + 1, + AmbigFor[unicharset.unichar_to_id(Word, *Word_lengths)], + fixpt)) { if (fixpt != NULL) fixpt->index = bad_index; return (FALSE); } else { - *NextNewChar++ = *Word++; + strncpy(NextNewChar, Word, *Word_lengths); + NextNewChar += *Word_lengths; + Word += *Word_lengths; + Word_lengths++; bad_index++; } @@ -856,6 +890,7 @@ void AddNewChunk(VIABLE_CHOICE Choice, int Blob) { int AmbigsFound(char *Word, char *CurrentChar, const char *Tail, + const char *Tail_lengths, LIST Ambigs, DANGERR *fixpt) { /* @@ -863,6 +898,7 @@ int AmbigsFound(char *Word, ** Word word being tested for ambiguities ** CurrentChar position in Word to put ambig replacement ** Tail end of word to place after ambiguity + ** Tail_lengths lengths of the unichars in Tail ** Ambigs list of ambiguities to test at this position ** Globals: none ** Operation: For each ambiguity in Ambigs, see if the remainder of @@ -877,37 +913,44 @@ int AmbigsFound(char *Word, ** Exceptions: none ** History: Thu May 9 10:10:28 1991, DSJ, Created. */ - char *AmbigSpec; + AMBIG_SPEC *AmbigSpec; + char *ambig; + char *ambig_lengths; const char *UnmatchedTail; + const char *UnmatchedTail_lengths; int Matches; int bad_length; iterate(Ambigs) { - AmbigSpec = (char *) first_node (Ambigs); + AmbigSpec = (AMBIG_SPEC *) first_node (Ambigs); + ambig = AmbigSpec->ambig; + ambig_lengths = AmbigSpec->lengths; bad_length = 1; UnmatchedTail = Tail; + UnmatchedTail_lengths = Tail_lengths; Matches = TRUE; - while (*AmbigSpec != ' ' && Matches) - if (*AmbigSpec == *UnmatchedTail) { - AmbigSpec++; - UnmatchedTail++; - bad_length++; - } - else - Matches = FALSE; + while (*ambig != ' ' && Matches) + if (*UnmatchedTail_lengths == *ambig_lengths && + strncmp(ambig, UnmatchedTail, *ambig_lengths) == 0) { + ambig += *(ambig_lengths++); + UnmatchedTail += *(UnmatchedTail_lengths++); + bad_length++; + } + else + Matches = FALSE; if (Matches) { - AmbigSpec++; /* skip over the space */ - /* insert replacement string */ - strcpy(CurrentChar, AmbigSpec); - /* add tail */ + ambig += *(ambig_lengths++); /* skip over the space */ + /* insert replacement string */ + strcpy(CurrentChar, ambig); + /* add tail */ strcat(Word, UnmatchedTail); if (valid_word (Word)) { if (StopperDebugLevel >= 1) cprintf ("Stopper: Possible ambiguous word = %s\n", Word); if (fixpt != NULL) { - fixpt->good_length = strlen (AmbigSpec); + fixpt->good_length = strlen (ambig_lengths); fixpt->bad_length = bad_length; } return (TRUE); @@ -933,7 +976,8 @@ int ChoiceSameAs(A_CHOICE *Choice, VIABLE_CHOICE ViableChoice) { ** Exceptions: none ** History: Fri May 17 08:48:04 1991, DSJ, Created. */ - return (StringSameAs (class_string (Choice), ViableChoice)); + return (StringSameAs (class_string (Choice), class_lengths (Choice), + ViableChoice)); } /* ChoiceSameAs */ @@ -1017,11 +1061,18 @@ AMBIG_TABLE *FillAmbigTable() { FILE *AmbigFile; AMBIG_TABLE *NewTable; int i; - char TestString[256]; - char ReplacementString[256]; + int AmbigPartSize; + char buffer[256 * UNICHAR_LEN]; + char TestString[256 * UNICHAR_LEN]; + char TestString_lengths[256]; + char ReplacementString[256 * UNICHAR_LEN]; + char ReplacementString_lengths[256]; STRING name; - char *AmbigSpec; - int AmbigSize; + char lengths[2]; + AMBIG_SPEC *AmbigSpec; + UNICHAR_ID unichar_id; + + lengths[1] = 0; name = language_data_path_prefix; name += DangerousAmbigs; @@ -1031,21 +1082,43 @@ AMBIG_TABLE *FillAmbigTable() { for (i = 0; i <= MAX_CLASS_ID; i++) NewTable[i] = NIL; - while (fscanf (AmbigFile, "%s", TestString) == 1 && - fscanf (AmbigFile, "%s", ReplacementString) == 1) { - if (strlen (TestString) > MAX_AMBIG_SIZE || - strlen (ReplacementString) > MAX_AMBIG_SIZE) + while (fscanf (AmbigFile, "%d", &AmbigPartSize) == 1) { + TestString[0] = '\0'; + TestString_lengths[0] = 0; + ReplacementString[0] = '\0'; + ReplacementString_lengths[0] = 0; + for (i = 0; i < AmbigPartSize; ++i) { + fscanf (AmbigFile, "%s", buffer); + strcat(TestString, buffer); + lengths[0] = strlen(buffer); + strcat(TestString_lengths, lengths); + } + fscanf (AmbigFile, "%d", &AmbigPartSize); + for (i = 0; i < AmbigPartSize; ++i) { + fscanf (AmbigFile, "%s", buffer); + strcat(ReplacementString, buffer); + lengths[0] = strlen(buffer); + strcat(ReplacementString_lengths, lengths); + } + + if (strlen (TestString_lengths) > MAX_AMBIG_SIZE || + strlen (ReplacementString_lengths) > MAX_AMBIG_SIZE) DoError (0, "Illegal ambiguity specification!"); - AmbigSize = strlen (TestString) + strlen (ReplacementString) + 1; - AmbigSpec = (char *) Emalloc (sizeof (char) * AmbigSize); + AmbigSpec = (AMBIG_SPEC *) Emalloc (sizeof (AMBIG_SPEC)); + + strcpy(AmbigSpec->ambig, TestString + TestString_lengths[0]); + strcat(AmbigSpec->ambig, " "); + strcat(AmbigSpec->ambig, ReplacementString); - strcpy (AmbigSpec, &(TestString[1])); - strcat (AmbigSpec, " "); - strcat(AmbigSpec, ReplacementString); - NewTable[TestString[0]] = - push_last (NewTable[TestString[0]], AmbigSpec); + strcpy(AmbigSpec->lengths, TestString_lengths + 1); + lengths[0] = 1; + strcat(AmbigSpec->lengths, lengths); + strcat(AmbigSpec->lengths, ReplacementString_lengths); + unichar_id = unicharset.unichar_to_id(TestString, TestString_lengths[0]); + NewTable[unichar_id] = push_last (NewTable[unichar_id], AmbigSpec); } + fclose(AmbigFile); return (NewTable); @@ -1095,10 +1168,11 @@ int FreeBadChoice(void *item1, //VIABLE_CHOICE Choice, /*---------------------------------------------------------------------------*/ -int LengthOfShortestAlphaRun(register char *Word) { +int LengthOfShortestAlphaRun(register char *Word, const char *Word_lengths) { /* ** Parameters: - ** Word word to be tested + ** Word word to be tested + ** Word_lengths lengths of the unichars in Word ** Globals: none ** Operation: Return the length of the shortest alpha run in Word. ** Return: Return the length of the shortest alpha run in Word. @@ -1108,9 +1182,11 @@ int LengthOfShortestAlphaRun(register char *Word) { register int Shortest = MAXINT; register int Length; - for (; *Word; Word++) - if (isalpha (*Word)) { - for (Length = 1, Word++; isalpha (*Word); Word++, Length++); + for (; *Word; Word += *(Word_lengths++)) + if (unicharset.get_isalpha(Word, *Word_lengths)) { + for (Length = 1, Word += *(Word_lengths++); + *Word && unicharset.get_isalpha(Word, *Word_lengths); + Word += *(Word_lengths++), Length++); if (Length < Shortest) Shortest = Length; @@ -1145,10 +1221,11 @@ NewViableChoice (A_CHOICE * Choice, FLOAT32 AdjustFactor, float Certainties[]) { VIABLE_CHOICE NewChoice; int Length; char *Word; + char *Word_lengths; CHAR_CHOICE *NewChar; BLOB_WIDTH *BlobWidth; - Length = strlen (class_string (Choice)); + Length = strlen (class_lengths (Choice)); assert (Length <= MAX_NUM_CHUNKS && Length > 0); NewChoice = (VIABLE_CHOICE) Emalloc (sizeof (VIABLE_CHOICE_STRUCT) + @@ -1158,12 +1235,13 @@ NewViableChoice (A_CHOICE * Choice, FLOAT32 AdjustFactor, float Certainties[]) { NewChoice->Certainty = class_certainty (Choice); NewChoice->AdjustFactor = AdjustFactor; NewChoice->Length = Length; - for (Word = class_string (Choice), - NewChar = &(NewChoice->Blob[0]), - BlobWidth = CurrentSegmentation; - *Word; Word++, NewChar++, Certainties++, BlobWidth++) { - NewChar->Class = *Word; + Word_lengths = class_lengths (Choice), + NewChar = &(NewChoice->Blob[0]), + BlobWidth = CurrentSegmentation; + *Word; + Word += *(Word_lengths++), NewChar++, Certainties++, BlobWidth++) { + NewChar->Class = unicharset.unichar_to_id(Word, *Word_lengths); NewChar->NumChunks = *BlobWidth; NewChar->Certainty = *Certainties; } @@ -1195,11 +1273,11 @@ void PrintViableChoice(FILE *File, const char *Label, VIABLE_CHOICE Choice) { Choice->Rating, Choice->Certainty, Choice->AdjustFactor); for (i = 0; i < Choice->Length; i++) - fprintf (File, "%c", Choice->Blob[i].Class); + fprintf (File, "%s", unicharset.id_to_unichar(Choice->Blob[i].Class)); fprintf (File, "\n"); for (i = 0; i < Choice->Length; i++) { - fprintf (File, " %c", Choice->Blob[i].Class); + fprintf (File, " %s", unicharset.id_to_unichar(Choice->Blob[i].Class)); for (j = 0; j < Choice->Blob[i].NumChunks - 1; j++) fprintf (File, " "); } @@ -1238,6 +1316,7 @@ FLOAT32 AdjustFactor, float Certainties[]) { ** History: Fri May 17 13:35:58 1991, DSJ, Created. */ char *Word; + char *Word_lengths; CHAR_CHOICE *NewChar; BLOB_WIDTH *BlobWidth; @@ -1246,9 +1325,11 @@ FLOAT32 AdjustFactor, float Certainties[]) { OldChoice->AdjustFactor = AdjustFactor; for (Word = class_string (NewChoice), - NewChar = &(OldChoice->Blob[0]), - BlobWidth = CurrentSegmentation; - *Word; Word++, NewChar++, Certainties++, BlobWidth++) { + Word_lengths = class_lengths (NewChoice), + NewChar = &(OldChoice->Blob[0]), + BlobWidth = CurrentSegmentation; + *Word; + Word += *(Word_lengths++), NewChar++, Certainties++, BlobWidth++) { NewChar->NumChunks = *BlobWidth; NewChar->Certainty = *Certainties; } @@ -1256,10 +1337,13 @@ FLOAT32 AdjustFactor, float Certainties[]) { /*---------------------------------------------------------------------------*/ -int StringSameAs(const char *String, VIABLE_CHOICE ViableChoice) { +int StringSameAs(const char *String, + const char *String_lengths, + VIABLE_CHOICE ViableChoice) { /* ** Parameters: ** String string to compare to ViableChoice + ** String_lengths lengths of unichars in String ** ViableChoice viable choice to compare to String ** Globals: none ** Operation: This routine compares String to ViableChoice and @@ -1270,11 +1354,17 @@ int StringSameAs(const char *String, VIABLE_CHOICE ViableChoice) { */ CHAR_CHOICE *Char; int i; + int current_unichar_length; for (Char = &(ViableChoice->Blob[0]), i = 0; - i < ViableChoice->Length; String++, Char++, i++) - if (*String != Char->Class) + i < ViableChoice->Length; + String += *(String_lengths++), Char++, i++) { + current_unichar_length = strlen(unicharset.id_to_unichar(Char->Class)); + if (current_unichar_length != *String_lengths || + strncmp(String, unicharset.id_to_unichar(Char->Class), + current_unichar_length) != 0) return (FALSE); + } if (*String == 0) return (TRUE); diff --git a/dict/stopper.h b/dict/stopper.h index 5101c378d9..96bd87d182 100644 --- a/dict/stopper.h +++ b/dict/stopper.h @@ -59,7 +59,7 @@ int AcceptableResult(A_CHOICE *BestChoice, A_CHOICE *RawChoice); int AlternativeChoicesWorseThan(FLOAT32 Threshold); -int CurrentBestChoiceIs(const char *Word); +int CurrentBestChoiceIs(const char *Word, const char *Word_lengths); FLOAT32 CurrentBestChoiceAdjustFactor(); @@ -87,7 +87,9 @@ void LogNewSplit(int Blob); void LogNewWordChoice (A_CHOICE * Choice, FLOAT32 AdjustFactor, float Certainties[]); -int NoDangerousAmbig(const char *Word, DANGERR *fixpt); +int NoDangerousAmbig(const char *Word, + const char *Word_lengths, + DANGERR *fixpt); void EndDangerousAmbigs(); void SettupStopperPass1(); diff --git a/display/Makefile.in b/display/Makefile.in index 16fd17b899..bee589bcf2 100644 --- a/display/Makefile.in +++ b/display/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,305 +10,191 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = display -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_display_a_AR = $(AR) $(ARFLAGS) -libtesseract_display_a_LIBADD = -am_libtesseract_display_a_OBJECTS = cmndwin.$(OBJEXT) \ - pagewalk.$(OBJEXT) pgedit.$(OBJEXT) sbdmenu.$(OBJEXT) \ - varabled.$(OBJEXT) varblmen.$(OBJEXT) varblwin.$(OBJEXT) -libtesseract_display_a_OBJECTS = $(am_libtesseract_display_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_display_a_SOURCES) -DIST_SOURCES = $(libtesseract_display_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = -AM_CPPFLAGS = \ - -I$(top_srcdir)/image -I$(top_srcdir)/ccstruct \ - -I$(top_srcdir)/viewer -I$(top_srcdir)/textord \ - -I$(top_srcdir)/ccutil +AM_CPPFLAGS = -I$(top_srcdir)/image -I$(top_srcdir)/ccstruct -I$(top_srcdir)/viewer -I$(top_srcdir)/textord -I$(top_srcdir)/ccutil + + +include_HEADERS = cmndwin.h pagewalk.h pgedit.h pgeditx.h sbdmenu.h submen.h tessio.h varabled.h varblmen.h varblwin.h -include_HEADERS = \ - cmndwin.h pagewalk.h pgedit.h pgeditx.h sbdmenu.h submen.h \ - tessio.h varabled.h varblmen.h varblwin.h lib_LIBRARIES = libtesseract_display.a -libtesseract_display_a_SOURCES = \ - cmndwin.cpp pagewalk.cpp pgedit.cpp sbdmenu.cpp varabled.cpp \ - varblmen.cpp varblwin.cpp +libtesseract_display_a_SOURCES = cmndwin.cpp pagewalk.cpp pgedit.cpp sbdmenu.cpp varabled.cpp varblmen.cpp varblwin.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) -all: all-recursive +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_display_a_LIBADD = +libtesseract_display_a_OBJECTS = cmndwin.o pagewalk.o pgedit.o \ +sbdmenu.o varabled.o varblmen.o varblwin.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/cmndwin.P .deps/pagewalk.P .deps/pgedit.P \ +.deps/sbdmenu.P .deps/varabled.P .deps/varblmen.P .deps/varblwin.P +SOURCES = $(libtesseract_display_a_SOURCES) +OBJECTS = $(libtesseract_display_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu display/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu display/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu display/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_display.a: $(libtesseract_display_a_OBJECTS) $(libtesseract_display_a_DEPENDENCIES) - -rm -f libtesseract_display.a - $(libtesseract_display_a_AR) libtesseract_display.a $(libtesseract_display_a_OBJECTS) $(libtesseract_display_a_LIBADD) - $(RANLIB) libtesseract_display.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmndwin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pagewalk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgedit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sbdmenu.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/varabled.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/varblmen.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/varblwin.Po@am__quote@ +maintainer-clean-compile: +libtesseract_display.a: $(libtesseract_display_a_OBJECTS) $(libtesseract_display_a_DEPENDENCIES) + -rm -f libtesseract_display.a + $(AR) cru libtesseract_display.a $(libtesseract_display_a_OBJECTS) $(libtesseract_display_a_LIBADD) + $(RANLIB) libtesseract_display.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -319,14 +203,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -338,7 +221,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -346,24 +229,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -373,218 +245,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = display distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu display/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/dlltest/Makefile.in b/dlltest/Makefile.in index 6392268d00..8dea7b32b2 100644 --- a/dlltest/Makefile.in +++ b/dlltest/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,367 +10,220 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ + +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = dlltest -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(includedir)" -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -include_HEADERS = dlltest.cpp dlltest.dsp -all: all-am +include_HEADERS = dlltest.cpp dlltest.dsp dlltest.vcproj +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu dlltest/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu dlltest/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -uninstall-info-am: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu dlltest/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +mostlyclean-tags: + +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = dlltest distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu dlltest/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done +info-am: +info: info-am +dvi-am: +dvi: dvi-am check-am: all-am check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-exec: install-exec-am + +install-data-am: install-includeHEADERS install-data: install-data-am -uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am +install: install-am +uninstall-am: uninstall-includeHEADERS +uninstall: uninstall-am +all-am: Makefile $(HEADERS) +all-redirect: all-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am +mostlyclean-am: mostlyclean-tags mostlyclean-generic -info-am: +mostlyclean: mostlyclean-am -install-data-am: install-includeHEADERS +clean-am: clean-tags clean-generic mostlyclean-am -install-exec-am: +clean: clean-am -install-info: install-info-am +distclean-am: distclean-tags distclean-generic clean-am -install-man: +distclean: distclean-am -installcheck-am: +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: -uninstall-am: uninstall-includeHEADERS uninstall-info-am +.PHONY: uninstall-includeHEADERS install-includeHEADERS tags \ +mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \ +distdir info-am info dvi-am dvi check check-am installcheck-am \ +installcheck install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - ctags distclean distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-man install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/image/Makefile.in b/image/Makefile.in index 6114af62c1..a16f51424e 100644 --- a/image/Makefile.in +++ b/image/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,297 +10,190 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = image -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_image_a_AR = $(AR) $(ARFLAGS) -libtesseract_image_a_LIBADD = -am_libtesseract_image_a_OBJECTS = imgbmp.$(OBJEXT) imgio.$(OBJEXT) \ - imgs.$(OBJEXT) imgtiff.$(OBJEXT) bitstrm.$(OBJEXT) -libtesseract_image_a_OBJECTS = $(am_libtesseract_image_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_image_a_SOURCES) -DIST_SOURCES = $(libtesseract_image_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = AM_CPPFLAGS = -I$(top_srcdir)/ccutil -include_HEADERS = \ - bitstrm.h imgbmp.h imgerrs.h img.h imgio.h imgs.h \ - imgtiff.h imgunpk.h + +include_HEADERS = bitstrm.h imgbmp.h imgerrs.h img.h imgio.h imgs.h imgtiff.h imgunpk.h + lib_LIBRARIES = libtesseract_image.a -libtesseract_image_a_SOURCES = \ - imgbmp.cpp imgio.cpp imgs.cpp imgtiff.cpp bitstrm.cpp +libtesseract_image_a_SOURCES = imgbmp.cpp imgio.cpp imgs.cpp imgtiff.cpp bitstrm.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) -all: all-recursive +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_image_a_LIBADD = +libtesseract_image_a_OBJECTS = imgbmp.o imgio.o imgs.o imgtiff.o \ +bitstrm.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/bitstrm.P .deps/imgbmp.P .deps/imgio.P .deps/imgs.P \ +.deps/imgtiff.P +SOURCES = $(libtesseract_image_a_SOURCES) +OBJECTS = $(libtesseract_image_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu image/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu image/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu image/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_image.a: $(libtesseract_image_a_OBJECTS) $(libtesseract_image_a_DEPENDENCIES) - -rm -f libtesseract_image.a - $(libtesseract_image_a_AR) libtesseract_image.a $(libtesseract_image_a_OBJECTS) $(libtesseract_image_a_LIBADD) - $(RANLIB) libtesseract_image.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitstrm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imgbmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imgio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imgs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imgtiff.Po@am__quote@ +maintainer-clean-compile: +libtesseract_image.a: $(libtesseract_image_a_OBJECTS) $(libtesseract_image_a_DEPENDENCIES) + -rm -f libtesseract_image.a + $(AR) cru libtesseract_image.a $(libtesseract_image_a_OBJECTS) $(libtesseract_image_a_LIBADD) + $(RANLIB) libtesseract_image.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -311,14 +202,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -330,7 +220,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -338,24 +228,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -365,218 +244,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = image distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu image/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tessdata/Makefile.in b/tessdata/Makefile.in index 3f0f7ddba8..4af199704a 100644 --- a/tessdata/Makefile.in +++ b/tessdata/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,321 +10,318 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ + +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = tessdata -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(datadir)" -dataDATA_INSTALL = $(INSTALL_DATA) -DATA = $(data_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ + datadir = @datadir@/tessdata -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -data_DATA = confsets eng.DangAmbigs eng.freq-dawg eng.inttemp eng.normproto eng.pffmtable eng.user-words eng.word-dawg eng.unicharset -all: all-am +data_DATA = confsets fra.DangAmbigs fra.freq-dawg fra.inttemp fra.normproto fra.pffmtable fra.user-words fra.word-dawg fra.unicharset ita.DangAmbigs ita.freq-dawg ita.inttemp ita.normproto ita.pffmtable ita.user-words ita.word-dawg ita.unicharset deu.DangAmbigs deu.freq-dawg deu.inttemp deu.normproto deu.pffmtable deu.user-words deu.word-dawg deu.unicharset spa.DangAmbigs spa.freq-dawg spa.inttemp spa.normproto spa.pffmtable spa.user-words spa.word-dawg spa.unicharset nld.DangAmbigs nld.freq-dawg nld.inttemp nld.normproto nld.pffmtable nld.user-words nld.word-dawg nld.unicharset eng.DangAmbigs eng.freq-dawg eng.inttemp eng.normproto eng.pffmtable eng.user-words eng.word-dawg eng.unicharset + + +SUBDIRS = configs tessconfigs + +EXTRA_DIST = confsets makedummies +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +DATA = $(data_DATA) + +DIST_COMMON = Makefile.am Makefile.in + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tessdata/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tessdata/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -uninstall-info-am: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu tessdata/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + install-dataDATA: $(data_DATA) @$(NORMAL_INSTALL) - test -z "$(datadir)" || $(mkdir_p) "$(DESTDIR)$(datadir)" + $(mkinstalldirs) $(DESTDIR)$(datadir) @list='$(data_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(dataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(datadir)/$$f'"; \ - $(dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(datadir)/$$f"; \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p; \ + fi; fi; \ done uninstall-dataDATA: @$(NORMAL_UNINSTALL) - @list='$(data_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(datadir)/$$f'"; \ - rm -f "$(DESTDIR)$(datadir)/$$f"; \ + list='$(data_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(datadir)/$$p; \ done -tags: TAGS -TAGS: -ctags: CTAGS -CTAGS: +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +@SET_MAKE@ -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ else \ - dir=''; \ + local_target="$$target"; \ fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + local_target="$$target"; \ fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(datadir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) +tags: TAGS -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) -clean-am: clean-generic mostlyclean-am +mostlyclean-tags: -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic +clean-tags: -dvi: dvi-am +distclean-tags: + -rm -f TAGS ID -dvi-am: +maintainer-clean-tags: -html: html-am +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) -info: info-am +subdir = tessdata +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tessdata/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: +install-exec: install-exec-recursive install-data-am: install-dataDATA +install-data: install-data-recursive -install-exec-am: +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: uninstall-dataDATA +uninstall: uninstall-recursive +all-am: Makefile $(DATA) +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(datadir) -install-info: install-info-am -install-man: +mostlyclean-generic: -installcheck-am: +clean-generic: -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* -mostlyclean: mostlyclean-am +maintainer-clean-generic: +mostlyclean-am: mostlyclean-tags mostlyclean-generic -mostlyclean-am: mostlyclean-generic +mostlyclean: mostlyclean-recursive -pdf: pdf-am +clean-am: clean-tags clean-generic mostlyclean-am -pdf-am: +clean: clean-recursive -ps: ps-am +distclean-am: distclean-tags distclean-generic clean-am -ps-am: +distclean: distclean-recursive -uninstall-am: uninstall-dataDATA uninstall-info-am +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am \ - install-dataDATA install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am uninstall uninstall-am uninstall-dataDATA \ - uninstall-info-am +maintainer-clean: maintainer-clean-recursive + +.PHONY: uninstall-dataDATA install-dataDATA install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +eng.DangAmbigs eng.freq-dawg eng.inttemp eng.normproto eng.pffmtable eng.user-words eng.word-dawg eng.unicharset : makedummies + ./makedummies eng +fra.DangAmbigs fra.freq-dawg fra.inttemp fra.normproto fra.pffmtable fra.user-words fra.word-dawg fra.unicharset : makedummies + ./makedummies fra +ita.DangAmbigs ita.freq-dawg ita.inttemp ita.normproto ita.pffmtable ita.user-words ita.word-dawg ita.unicharset : makedummies + ./makedummies ita +deu.DangAmbigs deu.freq-dawg deu.inttemp deu.normproto deu.pffmtable deu.user-words deu.word-dawg deu.unicharset : makedummies + ./makedummies deu +spa.DangAmbigs spa.freq-dawg spa.inttemp spa.normproto spa.pffmtable spa.user-words spa.word-dawg spa.unicharset : makedummies + ./makedummies spa +nld.DangAmbigs nld.freq-dawg nld.inttemp nld.normproto nld.pffmtable nld.user-words nld.word-dawg nld.unicharset : makedummies + ./makedummies nld # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tessdata/configs/api_config b/tessdata/configs/api_config deleted file mode 100644 index a3f1adabb9..0000000000 --- a/tessdata/configs/api_config +++ /dev/null @@ -1,45 +0,0 @@ -file_type .bl -expiry_day 20000 -tessedit_make_ep T -tessedit_use_nn F -textord_fast_pitch_test T -tessedit_single_match 0 -newcp_ratings_on 0 -tessedit_zero_rejection T -tessedit_minimal_rejection F -tessedit_write_rep_codes F -ignore_weird_blocks F -tessedit_tweaking_tess_vars T -il1_adaption_test 1 -edges_children_fix T -edges_childarea 0.65 -edges_boxarea 0.9 -mm_fast_clip T -mm_shift_cogs T -mm_debug F -mm_dotcom_enabled F -mm_dotcom_thr 0.2 -mm_test 2 -mm_bl_enabled T -mm_cog_enabled T -mm_junk_offset 1.0 -mm_Il1_enabled T -mm_Il1b_enabled T -mm_Il1_serif_ratio 1.5 -mm_Il1_lr_ratio 2.0 -mm_clean_cog_samples F -mm_use_original F -mm_wiggle_enabled F -mm_truncate_adaption F -tessedit_cp_ratio 2.0 -stopper_numbers_on 3 -permuter_pending_threshold -4.0 -save_doc_words T -doc_dict_enable T -MinNormScaleX 0.0 -MaxNormScaleX 0.325 -MinNormScaleY 0.0 -MaxNormScaleY 0.325 -EnableLearning F -acts_fx 0x800 -acts_ocr 0x20 \ No newline at end of file diff --git a/tessdata/configs/api_resaljet b/tessdata/configs/api_resaljet deleted file mode 100644 index b245d5e424..0000000000 --- a/tessdata/configs/api_resaljet +++ /dev/null @@ -1,34 +0,0 @@ -file_type .bl -expiry_day 20000 -tessedit_make_ep T -tessedit_use_nn T -textord_fast_pitch_test T -tessedit_single_match 0 -newcp_ratings_on 0 -tessedit_zero_rejection F -tessedit_minimal_rejection F -tessedit_write_rep_codes F -ignore_weird_blocks F -tessedit_tweaking_tess_vars T -il1_adaption_test 1 -edges_children_fix T -edges_childarea 0.65 -edges_boxarea 0.9 -mm_fast_clip T -mm_shift_cogs T -mm_debug F -mm_dotcom_enabled F -mm_dotcom_thr 0.2 -mm_test 2 -mm_bl_enabled T -mm_cog_enabled T -mm_junk_offset 1.0 -mm_Il1_enabled T -mm_Il1b_enabled T -mm_Il1_serif_ratio 1.5 -mm_Il1_lr_ratio 2.0 -mm_clean_cog_samples F -mm_use_original F -mm_wiggle_enabled F -mm_truncate_adaption F -tessedit_cp_ratio 2.0 diff --git a/tessdata/configs/oldapi_config b/tessdata/configs/oldapi_config deleted file mode 100644 index 9df3a853b3..0000000000 --- a/tessdata/configs/oldapi_config +++ /dev/null @@ -1,36 +0,0 @@ -file_type .bl -expiry_day 20000 -tessedit_make_ep T -tessedit_use_nn F -textord_fast_pitch_test T -tessedit_single_match 0 -newcp_ratings_on 0 -tessedit_zero_rejection T -tessedit_minimal_rejection F -tessedit_write_rep_codes F -ignore_weird_blocks F -tessedit_tweaking_tess_vars T -il1_adaption_test 1 -edges_children_fix T -edges_childarea 0.65 -edges_boxarea 0.9 -mm_fast_clip T -mm_shift_cogs T -mm_debug F -mm_dotcom_enabled F -mm_dotcom_thr 0.2 -mm_test 2 -mm_bl_enabled T -mm_cog_enabled T -mm_junk_offset 1.0 -mm_Il1_enabled T -mm_Il1b_enabled T -mm_Il1_serif_ratio 1.5 -mm_Il1_lr_ratio 2.0 -mm_clean_cog_samples F -mm_use_original F -mm_wiggle_enabled F -mm_truncate_adaption F -tessedit_cp_ratio 2.0 -stopper_numbers_on 3 -permuter_pending_threshold -4.0 diff --git a/tessdata/configs/oldbox.train b/tessdata/configs/oldbox.train deleted file mode 100644 index 29ca71fe27..0000000000 --- a/tessdata/configs/oldbox.train +++ /dev/null @@ -1,36 +0,0 @@ -file_type .bl -expiry_day 20000 -tessedit_make_ep T -tessedit_use_nn F -textord_fast_pitch_test T -tessedit_single_match 0 -newcp_ratings_on 0 -tessedit_zero_rejection T -tessedit_minimal_rejection F -tessedit_write_rep_codes F -ignore_weird_blocks F -tessedit_tweaking_tess_vars T -il1_adaption_test 1 -edges_children_fix T -edges_childarea 0.65 -edges_boxarea 0.9 -mm_fast_clip T -mm_shift_cogs T -mm_debug F -mm_dotcom_enabled F -mm_dotcom_thr 0.2 -mm_test 2 -mm_bl_enabled T -mm_cog_enabled T -mm_junk_offset 1.0 -mm_Il1_enabled T -mm_Il1b_enabled T -mm_Il1_serif_ratio 1.5 -mm_Il1_lr_ratio 2.0 -mm_clean_cog_samples F -mm_use_original F -mm_wiggle_enabled F -mm_truncate_adaption F -tessedit_resegment_from_boxes T -tessedit_train_from_boxes T -mm_bl_enabled F diff --git a/tessdata/configs/var_api_config b/tessdata/configs/var_api_config deleted file mode 100644 index 455afefb3a..0000000000 --- a/tessdata/configs/var_api_config +++ /dev/null @@ -1,47 +0,0 @@ -file_type .bl -expiry_day 20000 -tessedit_make_ep T -tessedit_use_nn F -textord_fast_pitch_test T -tessedit_single_match 0 -newcp_ratings_on 0 -tessedit_zero_rejection T -tessedit_minimal_rejection F -tessedit_write_rep_codes F -ignore_weird_blocks F -tessedit_tweaking_tess_vars T -il1_adaption_test 1 -edges_children_fix T -edges_childarea 0.65 -edges_boxarea 0.9 -mm_fast_clip T -mm_shift_cogs T -mm_debug F -mm_dotcom_enabled F -mm_dotcom_thr 0.2 -mm_test 2 -mm_bl_enabled T -mm_cog_enabled T -mm_junk_offset 1.0 -mm_Il1_enabled T -mm_Il1b_enabled T -mm_Il1_serif_ratio 1.5 -mm_Il1_lr_ratio 2.0 -mm_clean_cog_samples F -mm_use_original F -mm_wiggle_enabled F -mm_truncate_adaption F -tessedit_cp_ratio 2.0 -stopper_numbers_on 3 -permuter_pending_threshold -4.0 -save_doc_words T -doc_dict_enable T -MinNormScaleX 0.0 -MaxNormScaleX 0.325 -MinNormScaleY 0.0 -MaxNormScaleY 0.325 -EnableLearning F -acts_fx 0x800 -acts_ocr 0x20 -EnableMicroFeatures T -EnableCharNormFeatures T \ No newline at end of file diff --git a/tessdata/configs/var_box.train b/tessdata/configs/var_box.train deleted file mode 100644 index ab123d35b9..0000000000 --- a/tessdata/configs/var_box.train +++ /dev/null @@ -1,47 +0,0 @@ -file_type .bl -expiry_day 20000 -tessedit_make_ep T -tessedit_use_nn F -textord_fast_pitch_test T -tessedit_single_match 0 -newcp_ratings_on 0 -tessedit_zero_rejection T -tessedit_minimal_rejection F -tessedit_write_rep_codes F -ignore_weird_blocks F -tessedit_tweaking_tess_vars T -il1_adaption_test 1 -edges_children_fix T -edges_childarea 0.65 -edges_boxarea 0.9 -mm_fast_clip T -mm_shift_cogs T -mm_debug F -mm_dotcom_enabled F -mm_dotcom_thr 0.2 -mm_test 2 -mm_bl_enabled T -mm_cog_enabled T -mm_junk_offset 1.0 -mm_Il1_enabled T -mm_Il1b_enabled T -mm_Il1_serif_ratio 1.5 -mm_Il1_lr_ratio 2.0 -mm_clean_cog_samples F -mm_use_original F -mm_wiggle_enabled F -mm_truncate_adaption F -tessedit_resegment_from_boxes T -tessedit_train_from_boxes T -mm_bl_enabled F -save_doc_words T -doc_dict_enable T -MinNormScaleX 0.0 -MaxNormScaleX 0.325 -MinNormScaleY 0.0 -MaxNormScaleY 0.325 -EnableLearning F -acts_fx 0x800 -acts_ocr 0x20 -EnableMicroFeatures T -EnableCharNormFeatures T diff --git a/tessdata/configs/variable_config b/tessdata/configs/variable_config deleted file mode 100644 index 86b271faa2..0000000000 --- a/tessdata/configs/variable_config +++ /dev/null @@ -1,72 +0,0 @@ -file_type .bl -expiry_day 20000 -tessedit_make_ep T -tessedit_use_nn F -textord_fast_pitch_test T -tessedit_single_match 0 -newcp_ratings_on 0 -tessedit_zero_rejection T -tessedit_minimal_rejection F -tessedit_write_rep_codes F -ignore_weird_blocks F -tessedit_tweaking_tess_vars T -il1_adaption_test 1 -edges_children_fix T -edges_childarea 0.65 -edges_boxarea 0.9 -mm_fast_clip T -mm_shift_cogs T -mm_debug F -mm_dotcom_enabled F -mm_dotcom_thr 0.2 -mm_test 2 -mm_bl_enabled T -mm_cog_enabled T -mm_junk_offset 1.0 -mm_Il1_enabled T -mm_Il1b_enabled T -mm_Il1_serif_ratio 1.5 -mm_Il1_lr_ratio 2.0 -mm_clean_cog_samples F -mm_use_original F -mm_wiggle_enabled F -mm_truncate_adaption F -tessedit_resegment_from_boxes T -tessedit_train_from_boxes T -mm_bl_enabled F -acts_fx 0x800 -acts_ocr 0x20 -RatingScale 30.0 -CertaintyScale 20.0 -MinSlope 0.414213562 -MaxSlope 2.414213562 -EnableAdaptiveMatcher 1 -NormAdjMidpoint 32.0 -NormAdjCurl 2.0 -MinNormScaleX 0.0 -MaxNormScaleX 0.325 -MinNormScaleY 0.0 -MaxNormScaleY 0.325 -BuiltInTemplatesFile data/inttemp -BuiltInCutoffsFile data/pffmtable -SaveAdaptedTemplates 0 -UsePreAdaptedTemplates 0 -ReliableConfigThreshold 2 -MinNumPermClasses 3 -GoodAdaptiveMatch 0.125 -GreatAdaptiveMatch 0.0 -EnableIntFX 1 -EnableNewAdaptRules 1 -save_doc_words 1 -doc_dict_enable 1 -ClassPrunerThreshold 229 -ClassPrunerMultiplier 15 -IntegerMatcherMultiplier 7 -IntThetaFudge 128 -CPCutoffStrength 0.15 -EvidenceTableBits 9 -IntEvidenceTruncBits 14 -SEExponentialMultiplier 0 -SimilarityCenter 0.0075 -SaveAdaptedTemplates 0 -UsePreAdaptedTemplates 0 \ No newline at end of file diff --git a/tessdata/eng.DangAmbigs b/tessdata/eng.DangAmbigs index c0d766d0c2..f27f0b3ca1 100755 --- a/tessdata/eng.DangAmbigs +++ b/tessdata/eng.DangAmbigs @@ -1,39 +1,39 @@ -m rn -rn m -m in -in m -d cl -cl d -nn rm -rm nn -n ri -ri n -li h -lr h -ii u -ii n -ni m -iii m -ll H -I-I H -vv w -VV W -t f -f t -a o -o a -e c -c e -rr n -E fi -l< k -ld ki -lx h -xn m -ux in -r t -d tl -di th -ur in -un im -u a +1 m 2 r n +2 r n 1 m +1 m 2 i n +2 i n 1 m +1 d 2 c l +2 c l 1 d +2 n n 2 r m +2 r m 2 n n +1 n 2 r i +2 r i 1 n +2 l i 1 h +2 l r 1 h +2 i i 1 u +2 i i 1 n +2 n i 1 m +3 i i i 1 m +2 l l 1 H +3 I - I 1 H +2 v v 1 w +2 V V 1 W +1 t 1 f +1 f 1 t +1 a 1 o +1 o 1 a +1 e 1 c +1 c 1 e +2 r r 1 n +1 E 2 f i +2 l < 1 k +2 l d 2 k i +2 l x 1 h +2 x n 1 m +2 u x 2 i n +1 r 1 t +1 d 2 t l +2 d i 2 t h +2 u r 2 i n +2 u n 2 i m +1 u 1 a diff --git a/tessdata/eng.freq-dawg b/tessdata/eng.freq-dawg index 433e468f70..8ac2c73465 100755 Binary files a/tessdata/eng.freq-dawg and b/tessdata/eng.freq-dawg differ diff --git a/tessdata/eng.inttemp b/tessdata/eng.inttemp index 37835e304d..3410634424 100755 Binary files a/tessdata/eng.inttemp and b/tessdata/eng.inttemp differ diff --git a/tessdata/eng.normproto b/tessdata/eng.normproto index 0b2cc5fc51..23fecd21fe 100755 --- a/tessdata/eng.normproto +++ b/tessdata/eng.normproto @@ -1,1179 +1,1247 @@ 4 linear essential -0.250000 0.750000 -linear non-essential 0.000000 1.000000 linear essential 0.000000 1.000000 -linear non-essential 0.000000 1.000000 +linear essential 0.000000 1.000000 +linear essential 0.000000 1.000000 -0 2 -significant elliptical 288 - 0.318846 0.290495 0.195702 0.142236 - 0.000090 0.000282 0.000033 0.000233 -significant elliptical 348 - 0.345446 0.319894 0.213860 0.149429 - 0.000121 0.000359 0.000076 0.000142 - -1 2 -significant elliptical 392 - 0.304545 0.207693 0.232139 0.099862 - 0.000324 0.000385 0.000122 0.000262 -significant elliptical 244 - 0.350724 0.169451 0.212060 0.081235 - 0.000171 0.000159 0.000121 0.000260 - -2 6 -significant elliptical 153 - 0.310424 0.275265 0.215929 0.131091 - 0.000025 0.000883 0.000047 0.000170 -significant elliptical 26 - 0.294140 0.277187 0.210862 0.133591 - 0.000017 0.000334 0.000022 0.000099 -significant elliptical 69 - 0.296168 0.339358 0.194093 0.146740 - 0.000062 0.000246 0.000012 0.000067 -significant elliptical 24 - 0.362177 0.308165 0.243823 0.149779 - 0.000038 0.001627 0.000131 0.000180 -significant elliptical 200 - 0.325442 0.281881 0.226315 0.134555 - 0.000039 0.000978 0.000046 0.000141 -significant elliptical 158 - 0.341765 0.303741 0.233599 0.139534 - 0.000073 0.001316 0.000058 0.000118 - -3 2 -significant elliptical 283 - 0.311447 0.279358 0.209289 0.130291 - 0.000092 0.001479 0.000105 0.000239 -significant elliptical 352 - 0.340944 0.289556 0.227974 0.133208 - 0.000139 0.001152 0.000056 0.000141 - -4 1 -significant elliptical 636 - 0.306944 0.247093 0.190616 0.136465 - 0.000554 0.001132 0.000190 0.000184 +t 2 +significant elliptical 8610 + 0.299435 0.184164 0.200277 0.096446 + 0.000175 0.000302 0.000108 0.000266 +significant elliptical 1211 + 0.302144 0.253395 0.202977 0.142957 + 0.000170 0.000172 0.000113 0.000282 + +h 4 +significant elliptical 2370 + 0.306469 0.319058 0.223216 0.162562 + 0.000289 0.000279 0.000154 0.000398 +significant elliptical 768 + 0.291382 0.279694 0.206041 0.160267 + 0.000106 0.000100 0.000120 0.000147 +significant elliptical 661 + 0.294002 0.268437 0.191557 0.141566 + 0.000100 0.000100 0.000112 0.000100 +significant elliptical 105 + 0.287551 0.304908 0.208618 0.133593 + 0.000100 0.000119 0.000100 0.000100 + +r 7 +significant elliptical 370 + 0.252681 0.237623 0.185248 0.139956 + 0.000137 0.000184 0.000102 0.000100 +significant elliptical 430 + 0.278177 0.208926 0.172354 0.148990 + 0.000102 0.000100 0.000100 0.000100 +significant elliptical 235 + 0.255656 0.274913 0.185362 0.197751 + 0.000115 0.000100 0.000100 0.000100 +significant elliptical 332 + 0.248713 0.254659 0.178532 0.176183 + 0.000100 0.000117 0.000100 0.000105 +significant elliptical 383 + 0.271088 0.153671 0.172946 0.088653 + 0.000100 0.000115 0.000100 0.000100 +significant elliptical 495 + 0.297427 0.187667 0.158936 0.154356 + 0.000121 0.000100 0.000123 0.000132 +significant elliptical 270 + 0.302829 0.158276 0.151350 0.127814 + 0.000100 0.000100 0.000100 0.000100 + +o 1 +significant elliptical 9440 + 0.249447 0.243556 0.159045 0.152329 + 0.000123 0.000229 0.000101 0.000276 + +u 1 +significant elliptical 3409 + 0.247496 0.257385 0.165278 0.158632 + 0.000193 0.000390 0.000117 0.000281 + +g 6 +significant elliptical 264 + 0.174040 0.367248 0.231986 0.181129 + 0.000101 0.000154 0.000100 0.000254 +significant elliptical 121 + 0.145169 0.348122 0.245504 0.173756 + 0.000109 0.000218 0.000100 0.000134 +significant elliptical 295 + 0.147021 0.349669 0.215877 0.131475 + 0.000117 0.000151 0.000100 0.000133 +significant elliptical 363 + 0.149628 0.365700 0.223867 0.154998 + 0.000168 0.000110 0.000101 0.000115 +significant elliptical 1163 + 0.165745 0.314322 0.214687 0.150981 + 0.000141 0.000385 0.000171 0.000304 +significant elliptical 141 + 0.133941 0.400174 0.239066 0.145788 + 0.000123 0.000100 0.000100 0.000119 + +N 3 +significant elliptical 194 + 0.372916 0.429994 0.228078 0.226703 + 0.000353 0.000291 0.000182 0.000268 +significant elliptical 221 + 0.345566 0.389373 0.214482 0.195290 + 0.000181 0.000287 0.000132 0.000179 +significant elliptical 225 + 0.328708 0.335850 0.202029 0.188135 + 0.000164 0.000245 0.000180 0.000209 + +e 3 +significant elliptical 12197 + 0.247356 0.243955 0.157609 0.135625 + 0.000140 0.000229 0.000101 0.000212 +significant elliptical 1696 + 0.250370 0.296180 0.154856 0.155235 + 0.000159 0.000267 0.000110 0.000288 +significant elliptical 447 + 0.224680 0.260822 0.162254 0.190152 + 0.000106 0.000118 0.000107 0.000100 + +w 4 +significant elliptical 316 + 0.254699 0.375592 0.162218 0.227753 + 0.000220 0.000271 0.000100 0.000279 +significant elliptical 280 + 0.282811 0.328077 0.159947 0.217574 + 0.000244 0.000201 0.000118 0.000225 +significant elliptical 516 + 0.287197 0.297470 0.162288 0.202954 + 0.000143 0.000170 0.000144 0.000230 +significant elliptical 493 + 0.272697 0.311736 0.146631 0.183159 + 0.000131 0.000232 0.000100 0.000138 + +S 6 +significant elliptical 49 + 0.345498 0.396425 0.228345 0.165566 + 0.000100 0.000100 0.000100 0.000100 +significant elliptical 136 + 0.361266 0.409660 0.240134 0.181895 + 0.000115 0.000173 0.000100 0.000129 +significant elliptical 214 + 0.325209 0.378737 0.223069 0.182323 + 0.000137 0.000122 0.000125 0.000160 +significant elliptical 85 + 0.371446 0.364198 0.256071 0.171205 + 0.000100 0.000100 0.000100 0.000132 +significant elliptical 735 + 0.325255 0.332417 0.213602 0.157740 + 0.000176 0.000256 0.000199 0.000252 +significant elliptical 176 + 0.332164 0.255031 0.223884 0.123973 + 0.000114 0.000188 0.000100 0.000130 -5 2 -significant elliptical 329 - 0.321523 0.301852 0.208950 0.133222 - 0.000123 0.001405 0.000063 0.000163 +F 4 +significant elliptical 103 + 0.423271 0.363987 0.235636 0.189107 + 0.000175 0.000377 0.000113 0.000214 +significant elliptical 113 + 0.369277 0.335304 0.217047 0.186483 + 0.000390 0.000402 0.000125 0.000241 +significant elliptical 143 + 0.388568 0.321729 0.219516 0.155372 + 0.000201 0.000200 0.000110 0.000135 +significant elliptical 217 + 0.392000 0.251433 0.200758 0.153752 + 0.000286 0.000223 0.000194 0.000305 + +i 5 +significant elliptical 356 + 0.326672 0.208622 0.223728 0.080844 + 0.000100 0.000100 0.000100 0.000108 +significant elliptical 234 + 0.317264 0.190190 0.231090 0.099605 + 0.000105 0.000100 0.000112 0.000114 +significant elliptical 5771 + 0.338480 0.171874 0.213238 0.065962 + 0.000403 0.000265 0.000196 0.000181 +significant elliptical 500 + 0.280936 0.248295 0.235692 0.115160 + 0.000142 0.000100 0.000145 0.000112 +significant elliptical 486 + 0.296189 0.265423 0.231922 0.140003 + 0.000117 0.000100 0.000103 0.000135 + +n 3 +significant elliptical 634 + 0.237099 0.294436 0.177506 0.195898 + 0.000104 0.000100 0.000100 0.000126 significant elliptical 307 - 0.350979 0.307068 0.231493 0.141976 - 0.000149 0.000906 0.000102 0.000148 + 0.230110 0.245470 0.167303 0.140916 + 0.000100 0.000100 0.000100 0.000116 +significant elliptical 293 + 0.259299 0.272558 0.158367 0.146043 + 0.000108 0.000100 0.000100 0.000100 -6 3 -significant elliptical 91 - 0.281702 0.258208 0.189777 0.127966 - 0.000057 0.000399 0.000021 0.000053 -significant elliptical 313 - 0.314844 0.295526 0.202147 0.136239 - 0.000109 0.000660 0.000066 0.000132 -significant elliptical 229 - 0.345528 0.326737 0.217373 0.144567 - 0.000149 0.000685 0.000066 0.000102 - -7 4 -significant elliptical 149 - 0.431994 0.244414 0.224243 0.129643 - 0.000084 0.000096 0.000064 0.000108 -significant elliptical 224 - 0.402071 0.229203 0.218777 0.130081 - 0.000089 0.000179 0.000061 0.000178 -significant elliptical 183 - 0.371363 0.201152 0.208206 0.113405 - 0.000109 0.000205 0.000032 0.000191 -significant elliptical 71 - 0.376610 0.240061 0.187744 0.130601 - 0.000102 0.000133 0.000025 0.000068 - -8 2 -significant elliptical 235 - 0.310908 0.304590 0.200339 0.133824 - 0.000079 0.000666 0.000030 0.000121 -significant elliptical 391 - 0.338318 0.334376 0.216574 0.142083 - 0.000128 0.000873 0.000119 0.000141 - -9 1 -significant elliptical 640 - 0.346514 0.300717 0.206569 0.138103 - 0.000485 0.001384 0.000125 0.000141 - -A 4 -significant elliptical 60 - 0.295317 0.291135 0.197958 0.173142 - 0.000084 0.001030 0.000062 0.000247 -significant elliptical 309 - 0.269117 0.289609 0.210508 0.172803 - 0.000108 0.002740 0.000081 0.000471 -significant elliptical 96 - 0.223682 0.303950 0.194928 0.167332 - 0.000147 0.000433 0.000070 0.000068 -significant elliptical 171 - 0.262423 0.265798 0.186835 0.160956 - 0.000150 0.000873 0.000062 0.000300 +d 3 +significant elliptical 1773 + 0.314511 0.333182 0.221473 0.174463 + 0.000271 0.000299 0.000166 0.000360 +significant elliptical 259 + 0.287463 0.273171 0.197717 0.169064 + 0.000100 0.000100 0.000100 0.000100 +significant elliptical 407 + 0.304750 0.293347 0.211861 0.178309 + 0.000111 0.000180 0.000100 0.000102 + +f 7 +significant elliptical 134 + 0.288501 0.236666 0.278269 0.128410 + 0.000100 0.000117 0.000100 0.000146 +significant elliptical 134 + 0.340366 0.268187 0.281541 0.153156 + 0.000114 0.000108 0.000111 0.000175 +significant elliptical 412 + 0.274232 0.287445 0.307079 0.184270 + 0.000259 0.000157 0.000256 0.000323 +significant elliptical 201 + 0.350857 0.311729 0.241736 0.153722 + 0.000158 0.000220 0.000143 0.000364 +significant elliptical 70 + 0.344230 0.344292 0.238106 0.197935 + 0.000131 0.000124 0.000120 0.000139 +significant elliptical 935 + 0.368457 0.196126 0.215046 0.102575 + 0.000209 0.000317 0.000295 0.000318 +significant elliptical 290 + 0.375742 0.244231 0.238671 0.124777 + 0.000284 0.000167 0.000112 0.000152 -B 3 -significant elliptical 237 - 0.331420 0.345272 0.216151 0.156055 - 0.000074 0.002468 0.000084 0.000321 -significant elliptical 272 - 0.306253 0.329640 0.202478 0.147694 - 0.000075 0.001864 0.000036 0.000370 -significant elliptical 130 - 0.356162 0.407484 0.235516 0.176441 - 0.000109 0.001776 0.000108 0.000296 - -C 3 -significant elliptical 273 - 0.362437 0.319370 0.242108 0.185750 - 0.000204 0.000858 0.000152 0.000267 -significant elliptical 47 - 0.399123 0.362039 0.256187 0.206893 - 0.000121 0.000761 0.000050 0.000112 -significant elliptical 313 - 0.320724 0.288399 0.210263 0.165915 - 0.000130 0.001137 0.000093 0.000600 +a 1 +significant elliptical 9536 + 0.240516 0.258173 0.164388 0.147620 + 0.000146 0.000433 0.000108 0.000387 + +m 1 +significant elliptical 3040 + 0.246481 0.381567 0.167138 0.234080 + 0.000193 0.000589 0.000122 0.000389 + +l 4 +significant elliptical 2014 + 0.330579 0.156485 0.213800 0.066361 + 0.000122 0.000157 0.000170 0.000186 +significant elliptical 1153 + 0.349382 0.181020 0.236686 0.073104 + 0.000210 0.000144 0.000100 0.000155 +significant elliptical 264 + 0.321312 0.184586 0.230401 0.097251 + 0.000100 0.000138 0.000154 0.000127 +significant elliptical 641 + 0.300769 0.255178 0.253408 0.132180 + 0.000152 0.000201 0.000125 0.000382 + +y 5 +significant elliptical 434 + 0.172164 0.333322 0.227291 0.169859 + 0.000481 0.000251 0.000274 0.000305 +significant elliptical 56 + 0.207561 0.362032 0.251222 0.218853 + 0.000156 0.000130 0.000146 0.000116 +significant elliptical 686 + 0.208353 0.246933 0.215863 0.136459 + 0.000160 0.000154 0.000127 0.000231 +significant elliptical 223 + 0.221578 0.221637 0.196472 0.126159 + 0.000219 0.000100 0.000136 0.000158 +significant elliptical 767 + 0.195547 0.283833 0.223610 0.150127 + 0.000257 0.000203 0.000161 0.000183 + +s 4 +significant elliptical 802 + 0.249032 0.290493 0.158683 0.147099 + 0.000117 0.000112 0.000100 0.000188 +significant elliptical 199 + 0.248646 0.256870 0.170179 0.177279 + 0.000137 0.000269 0.000107 0.000100 +significant elliptical 1025 + 0.250281 0.202114 0.164019 0.106339 + 0.000114 0.000129 0.000100 0.000132 +significant elliptical 287 + 0.236911 0.228487 0.172795 0.120707 + 0.000100 0.000100 0.000100 0.000100 -D 5 -significant elliptical 99 - 0.351165 0.410284 0.244188 0.209579 - 0.000054 0.000118 0.000019 0.000091 -significant elliptical 20 - 0.357471 0.375001 0.228367 0.200333 - 0.000026 0.000074 0.000012 0.000024 +¢ 5 +significant elliptical 179 + 0.248059 0.273152 0.196994 0.128750 + 0.000173 0.000332 0.000336 0.000249 +significant elliptical 36 + 0.263512 0.177072 0.179446 0.114134 + 0.000362 0.000239 0.000309 0.000125 +significant elliptical 28 + 0.373267 0.274081 0.207873 0.144128 + 0.000227 0.000152 0.000234 0.000220 +significant elliptical 10 + 0.347706 0.280916 0.176378 0.123427 + 0.000253 0.000200 0.000100 0.000100 significant elliptical 34 - 0.374195 0.424893 0.256904 0.216720 - 0.000064 0.000540 0.000107 0.000090 -significant elliptical 270 - 0.331887 0.351728 0.217483 0.183960 - 0.000095 0.001013 0.000089 0.000501 -significant elliptical 216 - 0.307222 0.329480 0.204058 0.169656 - 0.000049 0.000669 0.000050 0.000392 - -E 6 -significant elliptical 263 - 0.336000 0.322877 0.229263 0.148080 - 0.000079 0.004662 0.000052 0.000481 -significant elliptical 58 - 0.356175 0.398808 0.240245 0.170828 - 0.000010 0.006082 0.000019 0.000435 -significant elliptical 25 - 0.368631 0.388224 0.245500 0.168056 - 0.000022 0.007474 0.000023 0.000446 -significant elliptical 16 - 0.359910 0.432941 0.256521 0.179215 - 0.000013 0.001808 0.000007 0.000101 -significant elliptical 196 - 0.314755 0.319304 0.211461 0.141241 - 0.000050 0.005128 0.000056 0.000635 -significant elliptical 48 - 0.300947 0.397229 0.197197 0.157860 - 0.000059 0.001248 0.000026 0.000168 + 0.340423 0.219668 0.170886 0.114953 + 0.000256 0.000337 0.000277 0.000169 -F 4 -significant elliptical 35 - 0.389726 0.217505 0.199265 0.122331 - 0.000055 0.000048 0.000034 0.000092 -significant elliptical 280 - 0.372756 0.250254 0.201145 0.136829 - 0.000185 0.002175 0.000081 0.000517 -significant elliptical 104 - 0.334166 0.314517 0.199804 0.152319 - 0.000056 0.000924 0.000054 0.000241 -significant elliptical 193 - 0.409500 0.325012 0.226656 0.166058 - 0.000153 0.002850 0.000152 0.000297 +¥ 2 +significant elliptical 197 + 0.371851 0.349770 0.216614 0.167153 + 0.000655 0.000804 0.000220 0.000466 +significant elliptical 91 + 0.381075 0.253022 0.209125 0.148389 + 0.000437 0.000177 0.000266 0.000338 -G 4 -significant elliptical 126 - 0.334257 0.354859 0.221870 0.187992 - 0.000119 0.000389 0.000128 0.000519 -significant elliptical 301 - 0.307960 0.345713 0.197583 0.168543 - 0.000086 0.001279 0.000056 0.000561 -significant elliptical 21 - 0.331917 0.400075 0.207798 0.195615 - 0.000054 0.000313 0.000069 0.000043 -significant elliptical 191 - 0.360213 0.411850 0.236862 0.205326 - 0.000213 0.000524 0.000067 0.000097 - -H 2 -significant elliptical 438 - 0.323232 0.337900 0.207226 0.181311 - 0.000309 0.002471 0.000150 0.000731 -significant elliptical 128 - 0.359868 0.457742 0.250487 0.217008 - 0.000184 0.000990 0.000103 0.000162 +q 2 +significant elliptical 254 + 0.188991 0.294598 0.208909 0.149868 + 0.000381 0.000509 0.000234 0.000239 +significant elliptical 34 + 0.179094 0.370109 0.231123 0.189550 + 0.000100 0.000139 0.000111 0.000354 -I 4 -significant elliptical 446 - 0.322057 0.185283 0.218852 0.088663 - 0.000169 0.001594 0.000193 0.000877 -significant elliptical 53 - 0.356535 0.175547 0.226608 0.085736 - 0.000064 0.000566 0.000062 0.000401 -significant elliptical 116 - 0.356625 0.220825 0.256705 0.107650 - 0.000102 0.000283 0.000047 0.000289 -significant elliptical 22 - 0.384536 0.227324 0.269152 0.121914 - 0.000118 0.000125 0.000083 0.000156 +V 2 +significant elliptical 124 + 0.379595 0.262776 0.195243 0.163874 + 0.000438 0.000263 0.000109 0.000203 +significant elliptical 158 + 0.435941 0.310063 0.207916 0.184003 + 0.000638 0.000333 0.000210 0.000189 + +L 2 +significant elliptical 376 + 0.286288 0.287162 0.238861 0.166300 + 0.000309 0.000460 0.000241 0.000348 +significant elliptical 232 + 0.259265 0.207656 0.216676 0.125588 + 0.000186 0.000167 0.000145 0.000320 + +U 2 +significant elliptical 163 + 0.372090 0.377436 0.233523 0.205798 + 0.000502 0.000508 0.000168 0.000268 +significant elliptical 125 + 0.329946 0.311169 0.208336 0.186348 + 0.000270 0.000225 0.000136 0.000155 + +v 3 +significant elliptical 921 + 0.297052 0.199373 0.149484 0.135523 + 0.000216 0.000187 0.000125 0.000226 +significant elliptical 254 + 0.264111 0.248093 0.156969 0.144730 + 0.000167 0.000177 0.000100 0.000201 +significant elliptical 165 + 0.315996 0.253227 0.159152 0.183831 + 0.000170 0.000201 0.000100 0.000489 -J 7 -significant elliptical 17 - 0.389382 0.214380 0.259519 0.109430 - 0.000542 0.001663 0.000481 0.001308 -significant elliptical 78 - 0.273468 0.210507 0.261378 0.101218 - 0.000275 0.001177 0.000190 0.000648 -significant elliptical 86 - 0.308849 0.262402 0.209846 0.160450 - 0.000116 0.000970 0.000057 0.000642 -significant elliptical 68 - 0.322921 0.262029 0.232657 0.143799 - 0.000128 0.001955 0.000117 0.000887 -significant elliptical 75 - 0.336729 0.273457 0.242610 0.149696 - 0.000230 0.002835 0.000046 0.001711 -significant elliptical 207 - 0.281798 0.228827 0.205787 0.138667 - 0.000083 0.001209 0.000031 0.000527 -significant elliptical 42 - 0.255344 0.205205 0.203199 0.127943 - 0.000043 0.000501 0.000064 0.000679 +E 4 +significant elliptical 354 + 0.331066 0.398682 0.226139 0.176520 + 0.000192 0.000272 0.000135 0.000303 +significant elliptical 149 + 0.364265 0.443744 0.248242 0.189161 + 0.000186 0.000516 0.000150 0.000176 +significant elliptical 120 + 0.341846 0.301588 0.230205 0.146241 + 0.000179 0.000100 0.000140 0.000101 +significant elliptical 173 + 0.325695 0.332097 0.219901 0.161580 + 0.000108 0.000315 0.000110 0.000120 -K 2 -significant elliptical 133 - 0.361854 0.427578 0.256950 0.199465 - 0.000201 0.002140 0.000086 0.000139 -significant elliptical 502 - 0.324520 0.323561 0.220265 0.164182 - 0.000248 0.003542 0.000152 0.000598 - -L 3 -significant elliptical 155 - 0.292148 0.290278 0.249502 0.166207 - 0.000155 0.001431 0.000094 0.000539 -significant elliptical 22 - 0.233466 0.177916 0.197641 0.099307 - 0.000025 0.000072 0.000041 0.000103 -significant elliptical 461 - 0.264958 0.227055 0.215267 0.126636 - 0.000160 0.002218 0.000086 0.000973 - -M 1 -significant elliptical 633 - 0.305688 0.439220 0.206972 0.227820 - 0.000380 0.007449 0.000287 0.001094 - -N 2 -significant elliptical 483 - 0.325608 0.351061 0.200671 0.184343 - 0.000242 0.002271 0.000134 0.000696 -significant elliptical 134 - 0.377818 0.427549 0.230610 0.226265 - 0.000141 0.001021 0.000102 0.000215 +H 3 +significant elliptical 186 + 0.333408 0.398587 0.229259 0.200292 + 0.000170 0.000372 0.000115 0.000346 +significant elliptical 131 + 0.363158 0.458496 0.249098 0.226753 + 0.000226 0.000443 0.000167 0.000153 +significant elliptical 194 + 0.328353 0.317880 0.206903 0.192272 + 0.000150 0.000139 0.000197 0.000172 -O 4 -significant elliptical 66 - 0.331905 0.367717 0.222514 0.206667 - 0.000034 0.000210 0.000014 0.000196 -significant elliptical 153 - 0.324999 0.325504 0.205302 0.176982 - 0.000080 0.000854 0.000030 0.000758 -significant elliptical 174 - 0.306470 0.307732 0.193817 0.168686 - 0.000058 0.000159 0.000024 0.000272 -significant elliptical 247 - 0.356705 0.381356 0.232853 0.209108 - 0.000164 0.000409 0.000073 0.000221 - -P 6 -significant elliptical 197 - 0.391887 0.273217 0.196445 0.156036 - 0.000151 0.000425 0.000128 0.000229 -significant elliptical 147 - 0.404152 0.336509 0.228668 0.174680 - 0.000215 0.000687 0.000110 0.000220 -significant elliptical 108 - 0.365895 0.236510 0.184232 0.133395 - 0.000049 0.000326 0.000052 0.000205 -significant elliptical 116 - 0.351031 0.311655 0.202745 0.162444 - 0.000093 0.000277 0.000031 0.000119 -significant elliptical 22 - 0.349532 0.242767 0.178135 0.132613 - 0.000058 0.000424 0.000030 0.000228 -significant elliptical 36 - 0.323145 0.294749 0.199192 0.154595 - 0.000039 0.000117 0.000025 0.000051 - -Q 6 -significant elliptical 145 - 0.247434 0.376216 0.231609 0.174751 - 0.000216 0.000397 0.000069 0.000192 -significant elliptical 213 - 0.293870 0.442806 0.262442 0.209334 - 0.000227 0.002002 0.000119 0.000208 -significant elliptical 58 - 0.295001 0.375931 0.202084 0.183128 - 0.000126 0.003478 0.000023 0.000870 -significant elliptical 103 - 0.319993 0.349013 0.208729 0.168949 - 0.000087 0.004217 0.000029 0.001194 -significant elliptical 67 - 0.334749 0.356339 0.226434 0.188035 - 0.000094 0.000879 0.000056 0.000605 +` 1 +significant elliptical 288 + 0.619304 0.058689 0.059023 0.057821 + 0.000761 0.000121 0.000130 0.000215 + +¤ 2 +significant elliptical 179 + 0.298016 0.220661 0.145871 0.145345 + 0.000722 0.000479 0.000272 0.000297 +significant elliptical 109 + 0.349746 0.264535 0.163871 0.164140 + 0.000303 0.000469 0.000137 0.000103 + +B 2 +significant elliptical 442 + 0.327377 0.343773 0.216951 0.170454 + 0.000232 0.000815 0.000178 0.000454 +significant elliptical 166 + 0.352845 0.410658 0.238114 0.190093 + 0.000263 0.000198 0.000193 0.000215 + +P 7 +significant elliptical 25 + 0.425730 0.364276 0.247181 0.202974 + 0.000142 0.000131 0.000100 0.000164 +significant elliptical 181 + 0.406567 0.333371 0.229338 0.190101 + 0.000215 0.000138 0.000170 0.000300 +significant elliptical 27 + 0.352245 0.344026 0.220108 0.202865 + 0.000119 0.000100 0.000100 0.000100 significant elliptical 39 - 0.243414 0.507446 0.292352 0.203621 - 0.000073 0.000939 0.000272 0.000084 + 0.348588 0.288632 0.218683 0.191509 + 0.000104 0.000100 0.000100 0.000100 +significant elliptical 117 + 0.354583 0.317250 0.216915 0.161307 + 0.000222 0.000188 0.000105 0.000346 +significant elliptical 279 + 0.388201 0.293509 0.209713 0.161749 + 0.000100 0.000196 0.000265 0.000207 +significant elliptical 260 + 0.373487 0.257023 0.195565 0.162758 + 0.000210 0.000165 0.000153 0.000425 + +c 2 +significant elliptical 131 + 0.260410 0.209701 0.155375 0.119929 + 0.000100 0.000100 0.000100 0.000100 +significant elliptical 278 + 0.253520 0.271040 0.162558 0.177558 + 0.000100 0.000100 0.000101 0.000100 -R 2 -significant elliptical 303 - 0.344237 0.370775 0.227930 0.174130 - 0.000192 0.002895 0.000191 0.000347 +O 2 +significant elliptical 254 + 0.353659 0.375198 0.232203 0.210551 + 0.000284 0.000236 0.000157 0.000153 significant elliptical 322 - 0.309842 0.323667 0.204315 0.152571 - 0.000165 0.001731 0.000072 0.000426 + 0.326946 0.323537 0.207821 0.192162 + 0.000173 0.000157 0.000100 0.000196 -S 3 -significant elliptical 29 - 0.386699 0.367816 0.249920 0.164740 - 0.000063 0.004082 0.000177 0.000462 -significant elliptical 200 - 0.353651 0.340052 0.238898 0.153711 - 0.000095 0.003130 0.000071 0.000414 -significant elliptical 391 - 0.321460 0.306240 0.211646 0.138986 - 0.000204 0.001845 0.000169 0.000394 - -T 2 -significant elliptical 340 - 0.373288 0.252468 0.207323 0.134260 - 0.000417 0.003913 0.000044 0.000906 -significant elliptical 299 - 0.428225 0.283477 0.234075 0.159355 - 0.000242 0.003124 0.000177 0.000464 - -U 5 -significant elliptical 141 - 0.384893 0.393738 0.243227 0.209320 - 0.000157 0.000420 0.000079 0.000157 -significant elliptical 70 - 0.305733 0.286175 0.196826 0.150917 - 0.000043 0.000116 0.000022 0.000388 -significant elliptical 37 - 0.336843 0.308984 0.199727 0.162204 - 0.000015 0.000583 0.000010 0.000310 -significant elliptical 160 - 0.322979 0.313158 0.209934 0.181585 - 0.000053 0.000406 0.000076 0.000700 +J 2 +significant elliptical 144 + 0.293160 0.202826 0.213794 0.124992 + 0.000383 0.000151 0.000199 0.000481 +significant elliptical 208 + 0.318053 0.272236 0.231288 0.167749 + 0.000529 0.000742 0.000226 0.000536 + +( 1 +significant elliptical 416 + 0.281162 0.194951 0.256889 0.089038 + 0.001012 0.000195 0.000180 0.000382 + +€ 2 +significant elliptical 148 + 0.355886 0.359081 0.222782 0.168586 + 0.000510 0.000345 0.000260 0.000425 +significant elliptical 140 + 0.335891 0.302855 0.210691 0.147260 + 0.000211 0.000317 0.000187 0.000250 + +1 6 +significant elliptical 176 + 0.297414 0.187207 0.220708 0.083397 + 0.000278 0.000119 0.000214 0.000165 +significant elliptical 163 + 0.309646 0.243477 0.244988 0.123511 + 0.000135 0.000175 0.000133 0.000245 significant elliptical 216 - 0.353749 0.344881 0.215413 0.187599 - 0.000103 0.000435 0.000072 0.000270 + 0.324136 0.211226 0.241782 0.102876 + 0.000249 0.000138 0.000163 0.000123 +significant elliptical 150 + 0.289242 0.209675 0.222679 0.123873 + 0.000117 0.000113 0.000100 0.000127 +significant elliptical 322 + 0.344111 0.175519 0.205360 0.089188 + 0.000126 0.000151 0.000188 0.000187 +significant elliptical 153 + 0.246927 0.170598 0.183659 0.100021 + 0.000148 0.000149 0.000108 0.000304 -V 8 -significant elliptical 79 - 0.377781 0.266237 0.189623 0.159885 - 0.000013 0.000639 0.000035 0.000476 -significant elliptical 122 - 0.362693 0.245200 0.188026 0.146523 - 0.000034 0.000652 0.000037 0.000655 -significant elliptical 28 - 0.386884 0.249268 0.194369 0.165236 - 0.000031 0.000158 0.000025 0.000401 -significant elliptical 57 - 0.345545 0.241030 0.180924 0.140658 - 0.000027 0.000392 0.000035 0.000626 -significant elliptical 174 - 0.398155 0.286342 0.192975 0.168610 - 0.000071 0.000250 0.000059 0.000128 -significant elliptical 58 - 0.423963 0.289968 0.202626 0.173805 - 0.000077 0.000263 0.000036 0.000093 -significant elliptical 22 - 0.481122 0.330803 0.224107 0.189034 - 0.000090 0.000232 0.000037 0.000083 -significant elliptical 97 - 0.452654 0.317746 0.214176 0.178190 - 0.000079 0.000263 0.000020 0.000087 +, 4 +significant elliptical 87 + -0.004136 0.059980 0.072556 0.037795 + 0.000100 0.000100 0.000112 0.000100 +significant elliptical 43 + 0.060585 0.078767 0.094337 0.069454 + 0.000100 0.000100 0.000100 0.000100 +significant elliptical 149 + 0.036143 0.065449 0.075109 0.050010 + 0.000192 0.000100 0.000100 0.000125 +significant elliptical 997 + 0.018339 0.088500 0.101800 0.065396 + 0.000286 0.000172 0.000199 0.000199 -W 4 -significant elliptical 155 - 0.430206 0.491588 0.220413 0.238618 - 0.000399 0.001052 0.000081 0.000289 -significant elliptical 234 - 0.340371 0.371117 0.192385 0.199310 - 0.000130 0.004933 0.000104 0.001401 -significant elliptical 59 - 0.390083 0.452136 0.199475 0.237455 - 0.000039 0.000414 0.000070 0.000759 -significant elliptical 169 - 0.368663 0.429648 0.194138 0.228796 - 0.000040 0.001544 0.000114 0.000934 - -X 4 -significant elliptical 405 - 0.314408 0.309117 0.223767 0.162894 - 0.000126 0.003023 0.000068 0.000620 -significant elliptical 28 - 0.384005 0.399214 0.275533 0.190603 - 0.000055 0.000896 0.000055 0.000214 +0 2 +significant elliptical 197 + 0.268265 0.280394 0.176815 0.165093 + 0.000110 0.000156 0.000100 0.000139 +significant elliptical 1371 + 0.341524 0.304330 0.209667 0.153723 + 0.000330 0.000490 0.000175 0.000238 + +. 1 +significant elliptical 1790 + 0.080711 0.054708 0.057149 0.055236 + 0.000286 0.000168 0.000186 0.000195 + +) 1 +significant elliptical 448 + 0.267757 0.194753 0.256991 0.088425 + 0.000844 0.000185 0.000163 0.000393 + +“ 4 +significant elliptical 60 + 0.561725 0.182958 0.113234 0.134326 + 0.000169 0.000121 0.000139 0.000119 significant elliptical 108 - 0.354567 0.402094 0.261455 0.193293 - 0.000099 0.001357 0.000056 0.000130 -significant elliptical 96 - 0.341968 0.319510 0.238352 0.177133 - 0.000064 0.001362 0.000045 0.000257 - -Y 2 -significant elliptical 246 - 0.418942 0.295175 0.236138 0.163411 - 0.000223 0.001797 0.000276 0.000143 -significant elliptical 386 - 0.379923 0.246897 0.205108 0.141586 - 0.000295 0.001904 0.000170 0.000490 + 0.510490 0.160415 0.098537 0.121543 + 0.000273 0.000346 0.000162 0.000133 +significant elliptical 110 + 0.560698 0.131738 0.082508 0.098854 + 0.000439 0.000469 0.000167 0.000238 +significant elliptical 9 + 0.624640 0.125744 0.069178 0.120031 + 0.000100 0.000138 0.000100 0.000176 + +R 3 +significant elliptical 260 + 0.327619 0.313176 0.213664 0.168485 + 0.000208 0.000251 0.000174 0.000319 +significant elliptical 363 + 0.327662 0.368769 0.226330 0.187044 + 0.000283 0.000235 0.000179 0.000335 +significant elliptical 142 + 0.352927 0.425589 0.247536 0.201593 + 0.000198 0.000464 0.000186 0.000276 + +” 4 +significant elliptical 86 + 0.558016 0.184446 0.108827 0.135031 + 0.000290 0.000146 0.000170 0.000181 +significant elliptical 120 + 0.531227 0.146232 0.089125 0.106566 + 0.000198 0.000462 0.000161 0.000313 +significant elliptical 11 + 0.490581 0.180448 0.111153 0.129969 + 0.000211 0.000117 0.000113 0.000100 +significant elliptical 71 + 0.594113 0.134120 0.082039 0.106544 + 0.000458 0.000396 0.000165 0.000175 -Z 4 +D 3 significant elliptical 272 - 0.334833 0.318358 0.242311 0.158239 - 0.000095 0.002135 0.000069 0.000397 + 0.336003 0.368128 0.225444 0.199587 + 0.000165 0.000353 0.000100 0.000272 +significant elliptical 296 + 0.325443 0.324785 0.210569 0.181665 + 0.000228 0.000188 0.000116 0.000191 +significant elliptical 136 + 0.362165 0.408268 0.246438 0.217666 + 0.000231 0.000187 0.000100 0.000135 + +M 4 +significant elliptical 359 + 0.323311 0.530016 0.224585 0.257275 + 0.000247 0.000547 0.000287 0.000319 +significant elliptical 180 + 0.312063 0.368062 0.203142 0.210615 + 0.000243 0.000179 0.000359 0.000340 significant elliptical 73 - 0.360911 0.374730 0.260379 0.178154 - 0.000064 0.001297 0.000090 0.000180 -significant elliptical 199 - 0.312178 0.279416 0.220893 0.134996 - 0.000074 0.002950 0.000055 0.000443 -significant elliptical 86 - 0.303930 0.334053 0.204256 0.151017 - 0.000051 0.000500 0.000012 0.000101 + 0.300633 0.459189 0.220175 0.241570 + 0.000258 0.000324 0.000124 0.000287 +significant elliptical 220 + 0.302061 0.421563 0.206626 0.217006 + 0.000187 0.000298 0.000198 0.000183 + +b 5 +significant elliptical 258 + 0.314697 0.290644 0.211381 0.132579 + 0.000109 0.000100 0.000146 0.000100 +significant elliptical 258 + 0.325667 0.303362 0.226725 0.145865 + 0.000158 0.000111 0.000100 0.000162 +significant elliptical 712 + 0.294378 0.275363 0.200608 0.150342 + 0.000144 0.000121 0.000139 0.000213 +significant elliptical 94 + 0.302427 0.318484 0.200849 0.163558 + 0.000106 0.000100 0.000100 0.000122 +significant elliptical 295 + 0.313925 0.335453 0.223099 0.183966 + 0.000280 0.000255 0.000161 0.000362 + +- 2 +significant elliptical 756 + 0.262049 0.072347 0.051407 0.089215 + 0.000380 0.000143 0.000160 0.000218 +significant elliptical 108 + 0.331545 0.113022 0.050201 0.155353 + 0.000153 0.000180 0.000239 0.000194 -a 1 -significant elliptical 637 - 0.233354 0.251547 0.161230 0.142984 - 0.000199 0.001258 0.000069 0.000415 +; 1 +significant elliptical 288 + 0.177865 0.137251 0.204295 0.067639 + 0.000503 0.000546 0.000195 0.000350 -& 3 -significant elliptical 262 - 0.315604 0.398104 0.218209 0.179905 - 0.000128 0.006317 0.000091 0.000399 -significant elliptical 226 - 0.284468 0.314591 0.205687 0.153445 - 0.000141 0.003791 0.000067 0.000566 -significant elliptical 137 - 0.273864 0.340313 0.181402 0.174428 - 0.000088 0.002015 0.000030 0.000588 - -* 5 -significant elliptical 103 - 0.450644 0.132755 0.114076 0.116726 - 0.000056 0.000208 0.000148 0.000179 -significant elliptical 71 - 0.419567 0.137041 0.115418 0.116413 - 0.000135 0.000063 0.000045 0.000048 -significant elliptical 100 - 0.518593 0.108533 0.091930 0.087753 - 0.000208 0.000549 0.000054 0.000126 -significant elliptical 225 - 0.481850 0.157880 0.122050 0.123796 - 0.000100 0.000796 0.000122 0.000161 -significant elliptical 127 - 0.511726 0.164415 0.122738 0.124260 - 0.000083 0.001016 0.000118 0.000173 +W 6 +significant elliptical 196 + 0.369400 0.415018 0.203485 0.228035 + 0.000299 0.000356 0.000183 0.000770 +significant elliptical 36 + 0.351413 0.465443 0.194468 0.254846 + 0.000152 0.000226 0.000100 0.000126 +significant elliptical 78 + 0.396292 0.468906 0.205688 0.244038 + 0.000133 0.000148 0.000138 0.000129 +significant elliptical 24 + 0.371521 0.365595 0.221784 0.199869 + 0.000121 0.000100 0.000215 0.000110 +significant elliptical 73 + 0.438548 0.494998 0.227245 0.236997 + 0.000223 0.000596 0.000208 0.000116 +significant elliptical 41 + 0.413933 0.496028 0.212129 0.287041 + 0.000302 0.000163 0.000137 0.000113 -@ 7 -significant elliptical 30 - 0.317959 0.429413 0.228978 0.221312 - 0.000042 0.040083 0.000111 0.000471 -significant elliptical 270 - 0.322822 0.458187 0.189195 0.169200 - 0.000074 0.006241 0.000061 0.000130 -significant elliptical 197 - 0.350188 0.501287 0.204643 0.186594 - 0.000103 0.010684 0.000043 0.000177 -significant elliptical 45 - 0.358445 0.322309 0.251813 0.235711 - 0.000426 0.010659 0.000245 0.000482 +® 4 +significant elliptical 47 + 0.360168 0.624399 0.215847 0.203763 + 0.000260 0.000872 0.000130 0.000215 +significant elliptical 83 + 0.341191 0.549754 0.198328 0.193431 + 0.000379 0.000435 0.000133 0.000101 +significant elliptical 122 + 0.323296 0.467935 0.187016 0.188099 + 0.000293 0.001012 0.000170 0.000163 +significant elliptical 36 + 0.284849 0.679955 0.235974 0.230298 + 0.000100 0.000136 0.000100 0.000100 + +? 1 +significant elliptical 288 + 0.389368 0.237071 0.212633 0.113079 + 0.000695 0.000508 0.000177 0.000311 + +~ 6 +significant elliptical 15 + 0.293392 0.190737 0.103384 0.188426 + 0.000100 0.000106 0.000100 0.000100 +significant elliptical 23 + 0.281142 0.165659 0.077966 0.173677 + 0.000100 0.000151 0.000109 0.000100 +significant elliptical 138 + 0.271295 0.118609 0.056892 0.154917 + 0.000384 0.000182 0.000144 0.000365 +significant elliptical 79 + 0.322709 0.120346 0.066937 0.154534 + 0.000204 0.000146 0.000117 0.000125 significant elliptical 16 - 0.386341 0.633730 0.228163 0.214108 - 0.000060 0.000866 0.000060 0.000148 -significant elliptical 44 - 0.366754 0.585792 0.212737 0.196277 - 0.000048 0.008805 0.000023 0.000047 -significant elliptical 31 - 0.342910 0.662457 0.239315 0.229741 - 0.000088 0.001355 0.000082 0.000204 - -b 2 -significant elliptical 384 - 0.283991 0.288488 0.193843 0.147596 - 0.000125 0.000583 0.000072 0.000294 -significant elliptical 250 - 0.312248 0.309609 0.218169 0.150781 - 0.000157 0.000558 0.000112 0.000353 + 0.328554 0.149818 0.081357 0.173093 + 0.000100 0.000100 0.000100 0.000120 +significant elliptical 14 + 0.335993 0.090718 0.054658 0.111547 + 0.000146 0.000102 0.000194 0.000109 -\ 3 -significant elliptical 272 - 0.363305 0.172220 0.226357 0.102810 - 0.000179 0.000063 0.000064 0.000462 -significant elliptical 131 - 0.310157 0.144095 0.193624 0.075187 - 0.000038 0.000016 0.000027 0.000270 -significant elliptical 227 - 0.326673 0.155965 0.211055 0.078384 - 0.000094 0.000082 0.000101 0.000393 +# 1 +significant elliptical 288 + 0.336012 0.310834 0.208749 0.144690 + 0.000595 0.000771 0.000806 0.000278 -! 4 -significant elliptical 160 - 0.346216 0.165118 0.225065 0.065635 - 0.000039 0.000066 0.000038 0.000194 -significant elliptical 56 - 0.366786 0.172613 0.235305 0.074989 - 0.000059 0.000106 0.000061 0.000213 -significant elliptical 270 - 0.303881 0.152900 0.199710 0.058633 - 0.000118 0.000101 0.000046 0.000108 -significant elliptical 143 - 0.327683 0.158261 0.210570 0.064868 - 0.000032 0.000087 0.000063 0.000179 - -c 1 -significant elliptical 639 - 0.248247 0.222283 0.160367 0.134508 - 0.000156 0.000444 0.000037 0.000268 - -: 2 -significant elliptical 291 - 0.216809 0.103314 0.152953 0.057817 - 0.000069 0.000357 0.000065 0.000163 -significant elliptical 342 - 0.242681 0.110191 0.173392 0.064314 - 0.000101 0.000263 0.000115 0.000130 - -, 5 -significant elliptical 294 - 0.021151 0.080123 0.095117 0.062497 - 0.000098 0.000099 0.000125 0.000127 -significant elliptical 85 - 0.049466 0.081748 0.095288 0.069758 - 0.000098 0.000072 0.000084 0.000156 -significant elliptical 50 - 0.039684 0.057450 0.066739 0.049777 - 0.000092 0.000030 0.000046 0.000038 -significant elliptical 30 - -0.022895 0.090486 0.103946 0.065098 - 0.000044 0.000134 0.000096 0.000148 -significant elliptical 84 - -0.003030 0.080111 0.094504 0.058128 - 0.000034 0.000113 0.000097 0.000099 +z 1 +significant elliptical 288 + 0.242588 0.238635 0.171763 0.136074 + 0.000155 0.000548 0.000160 0.000296 -d 3 -significant elliptical 20 - 0.340370 0.340991 0.236804 0.174992 - 0.000054 0.000985 0.000050 0.000194 -significant elliptical 388 - 0.309519 0.313876 0.211977 0.160371 - 0.000137 0.000976 0.000134 0.000214 -significant elliptical 226 - 0.276437 0.281996 0.188853 0.146486 - 0.000139 0.000463 0.000026 0.000242 - -$ 6 -significant elliptical 43 - 0.399100 0.329827 0.246828 0.136272 - 0.000358 0.004925 0.000106 0.000071 -significant elliptical 193 - 0.342356 0.330095 0.246215 0.134128 - 0.000394 0.005918 0.000258 0.000216 -significant elliptical 203 - 0.329310 0.230339 0.199154 0.113864 - 0.000250 0.001755 0.000096 0.000150 -significant elliptical 40 - 0.321435 0.381088 0.241895 0.138996 - 0.000020 0.001780 0.000009 0.000102 -significant elliptical 113 - 0.310198 0.340346 0.228925 0.136503 - 0.000095 0.003308 0.000039 0.000205 -significant elliptical 48 - 0.296014 0.373516 0.217431 0.137046 - 0.000067 0.003154 0.000055 0.000082 +] 1 +significant elliptical 288 + 0.272585 0.225214 0.286127 0.092610 + 0.000957 0.000299 0.000287 0.000406 -. 2 -significant elliptical 21 - 0.124395 0.058629 0.062725 0.061468 - 0.000281 0.000070 0.000078 0.000099 -significant elliptical 618 - 0.078244 0.051716 0.054854 0.054216 - 0.000200 0.000082 0.000086 0.000144 - -e 1 -significant elliptical 625 - 0.244195 0.244558 0.154216 0.132900 - 0.000174 0.000806 0.000051 0.000211 - -= 3 -significant elliptical 42 - 0.201548 0.225105 0.114890 0.166300 - 0.000348 0.000820 0.000115 0.000163 -significant elliptical 38 - 0.267091 0.223469 0.126144 0.180550 - 0.000046 0.001845 0.000022 0.000105 -significant elliptical 475 - 0.261742 0.219701 0.100742 0.157173 - 0.000221 0.000493 0.000087 0.000160 +x 1 +significant elliptical 384 + 0.244144 0.244244 0.175200 0.153284 + 0.000144 0.000795 0.000146 0.000521 -f 11 -significant elliptical 39 - 0.271675 0.280558 0.303388 0.163255 - 0.000087 0.000163 0.000197 0.000112 +5 2 +significant elliptical 533 + 0.340403 0.302213 0.221162 0.141770 + 0.000329 0.000937 0.000242 0.000325 +significant elliptical 61 + 0.189473 0.335171 0.215676 0.150686 + 0.000119 0.000237 0.000100 0.000227 + +p 1 +significant elliptical 2656 + 0.186508 0.307129 0.211073 0.167320 + 0.000291 0.001069 0.000266 0.000460 + +Q 5 +significant elliptical 36 + 0.240543 0.526158 0.290277 0.214326 + 0.000212 0.000132 0.000455 0.000100 +significant elliptical 18 + 0.211992 0.446851 0.263622 0.214047 + 0.000105 0.000745 0.000100 0.000132 +significant elliptical 35 + 0.314069 0.456601 0.263940 0.207727 + 0.000122 0.000308 0.000144 0.000164 +significant elliptical 36 + 0.317126 0.350291 0.212762 0.192934 + 0.000400 0.000177 0.000100 0.000100 +significant elliptical 163 + 0.271992 0.391528 0.251635 0.196311 + 0.000261 0.000593 0.000215 0.000200 + +9 2 +significant elliptical 478 + 0.348285 0.301641 0.209244 0.145368 + 0.000620 0.001283 0.000158 0.000301 +significant elliptical 66 + 0.217165 0.309996 0.211075 0.150744 + 0.000100 0.000170 0.000104 0.000212 + +2 3 +significant elliptical 380 + 0.334993 0.330455 0.227142 0.152832 + 0.000269 0.000283 0.000240 0.000221 +significant elliptical 516 + 0.317230 0.264343 0.228024 0.130944 + 0.000217 0.000214 0.000167 0.000176 +significant elliptical 128 + 0.264708 0.283506 0.173086 0.146028 + 0.000107 0.000137 0.000100 0.000253 + +@ 8 +significant elliptical 20 + 0.249904 0.834790 0.284222 0.262598 + 0.000256 0.000772 0.000196 0.000233 +significant elliptical 35 + 0.216471 0.703660 0.243990 0.240698 + 0.000205 0.000148 0.000100 0.000100 +significant elliptical 12 + 0.264268 0.749883 0.265446 0.241557 + 0.000220 0.000307 0.000100 0.000164 +significant elliptical 42 + 0.264202 0.636970 0.230557 0.212433 + 0.000283 0.000451 0.000189 0.000207 +significant elliptical 36 + 0.329359 0.403732 0.236996 0.149458 + 0.000477 0.000889 0.000102 0.000120 +significant elliptical 9 + 0.300567 0.431240 0.177930 0.170240 + 0.000103 0.000146 0.000100 0.000128 significant elliptical 70 - 0.317847 0.228550 0.213079 0.122138 - 0.000037 0.001338 0.000067 0.000504 -significant elliptical 23 - 0.359566 0.260323 0.239966 0.131342 - 0.000019 0.001076 0.000048 0.000434 -significant elliptical 21 - 0.345946 0.275043 0.236450 0.139564 - 0.000013 0.000988 0.000011 0.000341 -significant elliptical 28 - 0.336082 0.280577 0.227341 0.143115 - 0.000009 0.000355 0.000015 0.000294 -significant elliptical 67 - 0.333286 0.184281 0.204272 0.097052 - 0.000035 0.000661 0.000027 0.000309 -significant elliptical 19 - 0.372940 0.238719 0.235006 0.106585 - 0.000014 0.000192 0.000013 0.000056 -significant elliptical 86 - 0.364220 0.191834 0.215868 0.102239 - 0.000084 0.000308 0.000053 0.000266 -significant elliptical 133 - 0.364672 0.186794 0.194268 0.101954 - 0.000197 0.000203 0.000042 0.000342 -significant elliptical 107 - 0.401069 0.212153 0.234294 0.108049 - 0.000226 0.000617 0.000152 0.000248 -significant elliptical 41 - 0.341583 0.271438 0.283773 0.144464 - 0.000228 0.000219 0.000099 0.000281 + 0.346522 0.569636 0.208444 0.193662 + 0.000804 0.000461 0.000132 0.000100 +significant elliptical 64 + 0.296477 0.515080 0.199772 0.186691 + 0.000559 0.000545 0.000161 0.000122 -g 1 -significant elliptical 604 - 0.168422 0.329618 0.210773 0.146473 - 0.000703 0.002074 0.000156 0.000325 +< 5 +significant elliptical 16 + 0.366348 0.222794 0.146254 0.156614 + 0.000186 0.000100 0.000100 0.000178 +significant elliptical 17 + 0.332133 0.248820 0.195016 0.182890 + 0.000308 0.000141 0.000100 0.000100 +significant elliptical 126 + 0.318533 0.198177 0.142138 0.144002 + 0.000366 0.000248 0.000297 0.000122 +significant elliptical 99 + 0.267392 0.196145 0.143221 0.147864 + 0.000170 0.000230 0.000169 0.000291 +significant elliptical 27 + 0.306923 0.144458 0.111213 0.108733 + 0.000246 0.000130 0.000100 0.000147 -` 8 -significant elliptical 48 - 0.580671 0.056521 0.059270 0.057491 - 0.000133 0.000072 0.000105 0.000140 -significant elliptical 74 - 0.584962 0.081105 0.093365 0.060219 - 0.000132 0.000051 0.000074 0.000060 -significant elliptical 40 - 0.559296 0.101706 0.116034 0.073287 - 0.000089 0.000026 0.000035 0.000036 -significant elliptical 100 - 0.480698 0.072876 0.090075 0.050723 - 0.000232 0.000047 0.000076 0.000069 -significant elliptical 86 - 0.543431 0.054620 0.061542 0.049971 - 0.000134 0.000064 0.000115 0.000098 -significant elliptical 21 - 0.554305 0.072779 0.084105 0.057668 - 0.000042 0.000008 0.000018 0.000060 -significant elliptical 65 - 0.523189 0.069279 0.082231 0.057370 - 0.000084 0.000019 0.000030 0.000090 -significant elliptical 40 - 0.526960 0.093796 0.108069 0.066044 - 0.000083 0.000069 0.000058 0.000038 +T 4 +significant elliptical 146 + 0.434609 0.346006 0.241824 0.187286 + 0.000193 0.000195 0.000114 0.000205 +significant elliptical 309 + 0.420888 0.298170 0.233287 0.167188 + 0.000278 0.000173 0.000179 0.000187 +significant elliptical 183 + 0.368373 0.316646 0.218647 0.173401 + 0.000234 0.000457 0.000116 0.000251 +significant elliptical 386 + 0.416850 0.226566 0.217843 0.142803 + 0.000302 0.000153 0.000150 0.000173 -> 4 -significant elliptical 98 - 0.281632 0.222804 0.157402 0.164141 - 0.000062 0.000102 0.000039 0.000068 -significant elliptical 174 - 0.235604 0.181000 0.131518 0.134828 - 0.000075 0.000162 0.000043 0.000117 -significant elliptical 287 - 0.256385 0.202272 0.143844 0.148978 - 0.000080 0.000140 0.000042 0.000098 -significant elliptical 80 - 0.315982 0.177652 0.193077 0.105489 - 0.000132 0.000029 0.000047 0.000034 +» 1 +significant elliptical 288 + 0.254586 0.197817 0.118702 0.119078 + 0.000485 0.002182 0.000647 0.000586 + +6 1 +significant elliptical 480 + 0.330092 0.303583 0.208542 0.145514 + 0.000450 0.000964 0.000196 0.000274 + +C 4 +significant elliptical 403 + 0.344862 0.324767 0.234668 0.191717 + 0.000172 0.000224 0.000168 0.000168 +significant elliptical 238 + 0.377970 0.355299 0.250995 0.205305 + 0.000183 0.000180 0.000156 0.000151 +significant elliptical 378 + 0.324321 0.287418 0.215542 0.173073 + 0.000105 0.000241 0.000134 0.000128 +significant elliptical 131 + 0.335282 0.247679 0.233143 0.148688 + 0.000150 0.000108 0.000100 0.000136 -h 5 -significant elliptical 91 - 0.333944 0.305505 0.231239 0.152469 - 0.000130 0.000664 0.000120 0.000088 -significant elliptical 193 - 0.287168 0.259506 0.188408 0.141111 - 0.000129 0.000192 0.000042 0.000166 -significant elliptical 88 - 0.250656 0.289334 0.190826 0.148177 - 0.000063 0.000507 0.000020 0.000088 -significant elliptical 55 - 0.267381 0.314258 0.204407 0.160264 - 0.000021 0.000419 0.000029 0.000163 -significant elliptical 208 - 0.298389 0.313250 0.218687 0.155580 - 0.000154 0.000721 0.000095 0.000281 +k 1 +significant elliptical 992 + 0.307151 0.294997 0.217222 0.149488 + 0.000307 0.000983 0.000238 0.000479 -# 1 -significant elliptical 633 - 0.333119 0.306886 0.205136 0.144635 - 0.000439 0.001878 0.000371 0.000298 - -i 3 -significant elliptical 59 - 0.290579 0.241577 0.228792 0.119944 - 0.000069 0.000074 0.000039 0.000117 -significant elliptical 127 - 0.294744 0.166868 0.199790 0.064340 - 0.000223 0.000268 0.000067 0.000144 -significant elliptical 445 - 0.340434 0.177919 0.213800 0.072450 - 0.000267 0.000610 0.000242 0.000264 +‘ 3 +significant elliptical 160 + 0.518893 0.077510 0.089680 0.057513 + 0.000334 0.000185 0.000239 0.000182 +significant elliptical 61 + 0.555114 0.096821 0.113071 0.070363 + 0.000188 0.000130 0.000100 0.000127 +significant elliptical 65 + 0.575494 0.073230 0.079449 0.051768 + 0.000202 0.000198 0.000213 0.000113 -j 6 -significant elliptical 76 - 0.193618 0.219655 0.249009 0.102132 - 0.000128 0.000096 0.000028 0.000224 -significant elliptical 154 - 0.246919 0.247668 0.283461 0.108393 - 0.000120 0.000708 0.000069 0.000663 -significant elliptical 254 - 0.248374 0.214245 0.253480 0.091694 - 0.000301 0.000779 0.000099 0.000639 -significant elliptical 67 - 0.212235 0.228824 0.276882 0.090111 - 0.000152 0.000165 0.000051 0.000332 -significant elliptical 22 - 0.224574 0.257417 0.305783 0.128845 - 0.000120 0.000105 0.000064 0.000212 -significant elliptical 47 - 0.288986 0.238297 0.286240 0.102478 - 0.000355 0.000745 0.000381 0.000716 ++ 4 +significant elliptical 86 + 0.333845 0.169873 0.128122 0.129775 + 0.000261 0.000198 0.000118 0.000141 +significant elliptical 38 + 0.301968 0.139847 0.111541 0.113953 + 0.000162 0.000105 0.000100 0.000104 +significant elliptical 116 + 0.274382 0.185224 0.138728 0.135722 + 0.000168 0.000230 0.000230 0.000224 +significant elliptical 48 + 0.338938 0.206838 0.158518 0.150578 + 0.000594 0.000159 0.000172 0.000211 -k 2 -significant elliptical 499 - 0.291232 0.279034 0.205081 0.138877 - 0.000312 0.001797 0.000153 0.000365 -significant elliptical 138 - 0.340772 0.292329 0.235794 0.145799 - 0.000310 0.001498 0.000117 0.000201 +A 2 +significant elliptical 733 + 0.263104 0.320777 0.208646 0.183225 + 0.000333 0.000374 0.000185 0.000264 +significant elliptical 483 + 0.275080 0.265304 0.195401 0.163095 + 0.000143 0.000165 0.000149 0.000313 -l 9 -significant elliptical 26 - 0.410063 0.185063 0.254191 0.079622 - 0.000088 0.000083 0.000117 0.000083 -significant elliptical 126 - 0.372518 0.187673 0.243312 0.076234 - 0.000145 0.000315 0.000098 0.000144 -significant elliptical 84 - 0.336687 0.198974 0.241152 0.081915 - 0.000125 0.000511 0.000076 0.000386 -significant elliptical 112 - 0.350419 0.160249 0.212562 0.070170 - 0.000142 0.000056 0.000046 0.000143 -significant elliptical 27 - 0.317483 0.172352 0.221586 0.071099 - 0.000031 0.000084 0.000019 0.000120 -significant elliptical 76 - 0.322225 0.147454 0.203912 0.061106 - 0.000033 0.000028 0.000028 0.000127 -significant elliptical 121 - 0.296051 0.158236 0.205481 0.064890 - 0.000082 0.000177 0.000071 0.000160 -significant elliptical 31 - 0.303626 0.238079 0.244653 0.120279 - 0.000029 0.000169 0.000024 0.000159 -significant elliptical 34 - 0.287216 0.235816 0.235344 0.122200 - 0.000035 0.000038 0.000011 0.000078 +{ 1 +significant elliptical 288 + 0.279831 0.217309 0.264463 0.093693 + 0.000950 0.000525 0.000282 0.000521 + += 6 +significant elliptical 15 + 0.361832 0.263801 0.102818 0.184528 + 0.000114 0.000110 0.000100 0.000100 +significant elliptical 7 + 0.322200 0.281085 0.106359 0.197719 + 0.000100 0.000100 0.000100 0.000100 +significant elliptical 65 + 0.275111 0.221977 0.096697 0.152448 + 0.000147 0.000123 0.000101 0.000115 +significant elliptical 46 + 0.285130 0.252268 0.116635 0.172653 + 0.000144 0.000154 0.000152 0.000146 +significant elliptical 124 + 0.333728 0.226434 0.100598 0.154977 + 0.000281 0.000223 0.000191 0.000189 +significant elliptical 18 + 0.298087 0.188550 0.088370 0.122793 + 0.000100 0.000100 0.000144 0.000100 -{ 7 -significant elliptical 29 - 0.398345 0.203188 0.267112 0.090245 - 0.000260 0.000086 0.000102 0.000121 -significant elliptical 173 - 0.291204 0.184886 0.240086 0.073775 - 0.000117 0.000167 0.000142 0.000245 +& 3 +significant elliptical 135 + 0.311712 0.436084 0.217607 0.196789 + 0.000337 0.000546 0.000126 0.000443 significant elliptical 81 - 0.264736 0.172055 0.227416 0.063600 - 0.000049 0.000095 0.000057 0.000217 -significant elliptical 62 - 0.302109 0.210209 0.269688 0.093870 - 0.000160 0.000111 0.000139 0.000166 -significant elliptical 86 - 0.342628 0.204155 0.267689 0.088644 - 0.000245 0.000116 0.000143 0.000161 -significant elliptical 71 - 0.334882 0.170782 0.227213 0.066081 - 0.000304 0.000042 0.000043 0.000143 -significant elliptical 137 - 0.263040 0.227921 0.290832 0.095109 - 0.000292 0.000212 0.000184 0.000418 - -< 3 -significant elliptical 335 - 0.250990 0.189502 0.138358 0.140789 - 0.000106 0.000193 0.000067 0.000115 -significant elliptical 227 - 0.279632 0.216093 0.154837 0.159516 - 0.000130 0.000210 0.000067 0.000175 -significant elliptical 77 - 0.333171 0.185913 0.192668 0.114284 - 0.000203 0.000126 0.000065 0.000129 + 0.309238 0.346045 0.210812 0.174997 + 0.000490 0.000323 0.000133 0.000540 +significant elliptical 72 + 0.286446 0.282625 0.197995 0.151148 + 0.000199 0.000267 0.000185 0.000331 + +’ 3 +significant elliptical 61 + 0.587007 0.065707 0.074519 0.048244 + 0.000341 0.000115 0.000113 0.000144 +significant elliptical 218 + 0.546426 0.084285 0.098144 0.065425 + 0.000453 0.000239 0.000264 0.000260 +significant elliptical 9 + 0.490568 0.088595 0.107553 0.058814 + 0.000205 0.000148 0.000144 0.000100 + +* 2 +significant elliptical 107 + 0.503116 0.119650 0.106114 0.104111 + 0.000585 0.000201 0.000178 0.000203 +significant elliptical 181 + 0.486828 0.178110 0.122801 0.124755 + 0.000940 0.000348 0.000254 0.000296 + +3 3 +significant elliptical 72 + 0.194483 0.324775 0.222391 0.147129 + 0.000148 0.000327 0.000100 0.000270 +significant elliptical 299 + 0.340292 0.314075 0.225348 0.148500 + 0.000327 0.000597 0.000188 0.000237 +significant elliptical 233 + 0.326687 0.254421 0.217526 0.124409 + 0.000161 0.000212 0.000205 0.000201 -( 6 -significant elliptical 165 - 0.290294 0.188119 0.247744 0.082120 - 0.000161 0.000107 0.000184 0.000108 -significant elliptical 108 - 0.260563 0.187189 0.227544 0.094273 - 0.000104 0.000187 0.000065 0.000227 -significant elliptical 149 - 0.332481 0.165451 0.218673 0.076262 - 0.000269 0.000073 0.000102 0.000119 -significant elliptical 90 - 0.336951 0.195401 0.258480 0.086412 - 0.000197 0.000064 0.000058 0.000154 -significant elliptical 97 - 0.389052 0.188168 0.245315 0.088715 - 0.000408 0.000156 0.000272 0.000184 -significant elliptical 22 - 0.461612 0.197903 0.261322 0.089354 - 0.000293 0.000121 0.000166 0.000140 +$ 1 +significant elliptical 320 + 0.325912 0.329152 0.228488 0.140373 + 0.000948 0.002116 0.000285 0.000326 + +j 2 +significant elliptical 11 + 0.251501 0.327611 0.295766 0.161100 + 0.000100 0.000100 0.000116 0.000118 +significant elliptical 274 + 0.230946 0.243525 0.280947 0.108628 + 0.000638 0.000742 0.000256 0.000643 + +4 2 +significant elliptical 504 + 0.315526 0.246587 0.192488 0.142272 + 0.000303 0.000723 0.000309 0.000327 +significant elliptical 72 + 0.189749 0.261661 0.192682 0.148334 + 0.000196 0.000123 0.000227 0.000226 + +| 2 +significant elliptical 217 + 0.258903 0.184587 0.261144 0.051644 + 0.000471 0.000186 0.000325 0.000191 +significant elliptical 70 + 0.361702 0.156299 0.222299 0.053920 + 0.000298 0.000114 0.000145 0.000197 -[ 2 -significant elliptical 99 - 0.357152 0.203227 0.254760 0.091556 - 0.000384 0.000227 0.000134 0.000335 -significant elliptical 452 - 0.297166 0.210485 0.268712 0.084354 - 0.000607 0.000342 0.000408 0.000318 - -m 5 -significant elliptical 29 - 0.233528 0.296680 0.184001 0.211086 - 0.000130 0.010952 0.000046 0.000869 -significant elliptical 128 - 0.259874 0.373509 0.159451 0.231394 - 0.000025 0.000638 0.000020 0.000287 -significant elliptical 240 - 0.241860 0.359991 0.160016 0.215954 - 0.000044 0.001232 0.000051 0.000746 -significant elliptical 66 - 0.211034 0.409874 0.158716 0.222350 - 0.000031 0.000431 0.000015 0.000190 -significant elliptical 153 - 0.225164 0.372966 0.160210 0.204914 - 0.000015 0.002240 0.000052 0.001039 +7 2 +significant elliptical 364 + 0.407474 0.229578 0.217275 0.130939 + 0.000704 0.000299 0.000154 0.000323 +significant elliptical 43 + 0.262905 0.237114 0.210003 0.131347 + 0.000123 0.000149 0.000112 0.000167 -- 5 -significant elliptical 51 - 0.227232 0.062052 0.045462 0.078213 - 0.000038 0.000032 0.000056 0.000048 -significant elliptical 173 - 0.248704 0.061441 0.043531 0.078484 - 0.000052 0.000020 0.000026 0.000037 -significant elliptical 109 - 0.240713 0.076562 0.062603 0.093625 - 0.000063 0.000025 0.000031 0.000052 -significant elliptical 193 - 0.273098 0.076724 0.050509 0.099693 - 0.000092 0.000272 0.000080 0.000589 -significant elliptical 111 - 0.314401 0.068818 0.045223 0.089966 - 0.000256 0.000442 0.000123 0.000891 - -n 1 -significant elliptical 636 - 0.239332 0.257083 0.162513 0.154298 - 0.000227 0.000781 0.000070 0.000200 - -o 2 -significant elliptical 70 - 0.270632 0.254284 0.164075 0.155057 - 0.000034 0.000348 0.000029 0.000202 -significant elliptical 566 - 0.244845 0.245970 0.156272 0.144596 - 0.000082 0.000305 0.000037 0.000233 - -p 3 -significant elliptical 267 - 0.183653 0.316133 0.209733 0.162461 - 0.000151 0.000617 0.000058 0.000225 -significant elliptical 231 - 0.198747 0.277798 0.186358 0.147656 - 0.000119 0.000735 0.000050 0.000306 -significant elliptical 100 - 0.229948 0.292703 0.199403 0.158464 - 0.000177 0.000821 0.000154 0.000273 +8 1 +significant elliptical 448 + 0.334320 0.314354 0.217384 0.151127 + 0.000287 0.001074 0.000184 0.000332 -% 5 +_ 6 +significant elliptical 38 + -0.165293 0.120387 0.041152 0.164122 + 0.000669 0.000182 0.000153 0.000295 +significant elliptical 63 + -0.079760 0.137710 0.039673 0.188969 + 0.000100 0.000165 0.000100 0.000180 +significant elliptical 33 + -0.104437 0.125113 0.058661 0.176231 + 0.000192 0.000100 0.000100 0.000114 +significant elliptical 113 + -0.082753 0.113366 0.042481 0.152003 + 0.000343 0.000108 0.000152 0.000107 +significant elliptical 18 + -0.259965 0.144730 0.041144 0.205147 + 0.000147 0.000100 0.000100 0.000108 +significant elliptical 18 + -0.262294 0.173043 0.068173 0.242876 + 0.000154 0.000100 0.000100 0.000146 + +\ 5 +significant elliptical 24 + 0.337483 0.210728 0.282541 0.118268 + 0.000161 0.000153 0.000140 0.000517 significant elliptical 21 - 0.358987 0.307843 0.237889 0.195256 - 0.000074 0.008177 0.000077 0.001547 -significant elliptical 97 - 0.327262 0.261495 0.224972 0.159225 - 0.000164 0.004804 0.000046 0.001582 -significant elliptical 109 - 0.361352 0.545608 0.208876 0.205846 - 0.000118 0.002669 0.000051 0.000185 -significant elliptical 235 - 0.338706 0.467290 0.198261 0.185091 - 0.000067 0.006953 0.000047 0.000602 -significant elliptical 178 - 0.314620 0.434499 0.189620 0.178236 - 0.000085 0.002948 0.000062 0.000493 - -+ 1 -significant elliptical 625 - 0.262680 0.173990 0.135041 0.130994 - 0.000395 0.000232 0.000152 0.000139 - -q 3 -significant elliptical 35 - 0.246861 0.277601 0.193582 0.149681 - 0.000184 0.000990 0.000141 0.000285 -significant elliptical 161 - 0.209216 0.268783 0.186384 0.139683 - 0.000089 0.000608 0.000038 0.000280 -significant elliptical 330 - 0.181605 0.308012 0.205872 0.151479 - 0.000177 0.000623 0.000115 0.000240 - -? 3 -significant elliptical 377 - 0.360372 0.208830 0.205193 0.103750 - 0.000202 0.000373 0.000110 0.000223 -significant elliptical 78 - 0.367927 0.241648 0.174797 0.117292 - 0.000092 0.000058 0.000017 0.000030 -significant elliptical 169 - 0.410893 0.243463 0.224818 0.102440 - 0.000238 0.000520 0.000053 0.000091 - -' 4 -significant elliptical 169 - 0.570494 0.071590 0.090491 0.051550 - 0.000181 0.000125 0.000195 0.000171 -significant elliptical 60 - 0.608460 0.063110 0.079688 0.045543 - 0.000174 0.000056 0.000077 0.000095 -significant elliptical 202 - 0.530821 0.063473 0.077768 0.049788 - 0.000150 0.000166 0.000174 0.000301 -significant elliptical 204 - 0.487237 0.077494 0.094782 0.058817 - 0.000227 0.000037 0.000068 0.000079 - -r 4 -significant elliptical 53 - 0.273045 0.227264 0.185012 0.153642 - 0.000033 0.001142 0.000019 0.000615 -significant elliptical 352 - 0.265015 0.173308 0.164367 0.115196 - 0.000085 0.001569 0.000075 0.000715 + 0.262991 0.198327 0.270551 0.063097 + 0.000111 0.000102 0.000106 0.000168 +significant elliptical 22 + 0.269717 0.174175 0.235798 0.075240 + 0.000166 0.000100 0.000158 0.000176 +significant elliptical 28 + 0.268447 0.195798 0.263993 0.108134 + 0.000100 0.000132 0.000268 0.000155 significant elliptical 193 - 0.289524 0.156183 0.162701 0.113876 - 0.000043 0.000392 0.000065 0.000403 -significant elliptical 34 - 0.306912 0.163010 0.169389 0.125540 - 0.000045 0.000221 0.000047 0.000297 + 0.347678 0.163910 0.216416 0.089563 + 0.000413 0.000200 0.000213 0.000790 -} 5 -significant elliptical 172 - 0.250847 0.222965 0.283932 0.092085 - 0.000282 0.000237 0.000245 0.000385 -significant elliptical 201 - 0.270419 0.177619 0.232381 0.068713 - 0.000186 0.000158 0.000061 0.000273 -significant elliptical 118 - 0.302050 0.198324 0.259131 0.080625 - 0.000146 0.000076 0.000056 0.000213 -significant elliptical 71 - 0.329161 0.174648 0.228855 0.070712 - 0.000141 0.000035 0.000034 0.000115 -significant elliptical 62 - 0.353735 0.202930 0.263197 0.084049 - 0.000481 0.000958 0.000112 0.000415 +: 1 +significant elliptical 672 + 0.244851 0.110139 0.173228 0.061299 + 0.000139 0.000419 0.000202 0.000197 -) 7 -significant elliptical 52 - 0.341344 0.194430 0.259021 0.086611 - 0.000144 0.000060 0.000084 0.000152 -significant elliptical 144 - 0.331478 0.169722 0.225193 0.076676 - 0.000185 0.000054 0.000060 0.000142 -significant elliptical 115 - 0.289713 0.174047 0.230087 0.075603 - 0.000189 0.000083 0.000132 0.000099 -significant elliptical 92 - 0.275550 0.197463 0.260401 0.086004 - 0.000096 0.000090 0.000153 0.000074 -significant elliptical 83 - 0.305625 0.195463 0.257930 0.085290 - 0.000078 0.000051 0.000052 0.000140 -significant elliptical 124 - 0.250793 0.187394 0.227722 0.095209 - 0.000104 0.000124 0.000042 0.000136 -significant elliptical 29 - 0.387880 0.192209 0.256911 0.082400 - 0.000130 0.000063 0.000096 0.000110 +X 2 +significant elliptical 126 + 0.326066 0.293667 0.225645 0.169245 + 0.000224 0.000257 0.000171 0.000318 +significant elliptical 194 + 0.341289 0.386709 0.249266 0.196062 + 0.000467 0.000603 0.000242 0.000320 -] 5 -significant elliptical 41 - 0.427015 0.219709 0.280652 0.087408 - 0.000386 0.000148 0.000126 0.000241 -significant elliptical 86 - 0.365446 0.204988 0.260486 0.086787 - 0.000191 0.000184 0.000152 0.000286 -significant elliptical 16 - 0.396721 0.182680 0.237607 0.068525 - 0.000204 0.000279 0.000197 0.000211 -significant elliptical 297 - 0.306760 0.213303 0.270200 0.087420 - 0.000444 0.000221 0.000363 0.000283 +K 2 +significant elliptical 176 + 0.346857 0.403332 0.243937 0.198567 + 0.000464 0.000796 0.000261 0.000338 significant elliptical 112 - 0.270863 0.190238 0.244829 0.074670 - 0.000216 0.000159 0.000079 0.000256 + 0.331205 0.305311 0.220615 0.167140 + 0.000144 0.000213 0.000207 0.000340 -s 1 -significant elliptical 637 - 0.244088 0.228902 0.161654 0.120423 - 0.000133 0.001159 0.000058 0.000308 +} 2 +significant elliptical 61 + 0.325667 0.192135 0.254088 0.073709 + 0.000936 0.000103 0.000139 0.000401 +significant elliptical 227 + 0.259956 0.224229 0.267288 0.099576 + 0.000381 0.000437 0.000329 0.000454 -; 2 -significant elliptical 21 - 0.260456 0.131133 0.194874 0.075360 - 0.000182 0.000390 0.000176 0.000430 -significant elliptical 539 - 0.165605 0.131213 0.197472 0.068188 - 0.000641 0.000441 0.000240 0.000256 +" 3 +significant elliptical 118 + 0.525152 0.139215 0.089528 0.100412 + 0.000456 0.000311 0.000161 0.000270 +significant elliptical 95 + 0.568000 0.170034 0.106749 0.122736 + 0.000535 0.000192 0.000138 0.000185 +significant elliptical 75 + 0.602830 0.121148 0.073272 0.092547 + 0.000429 0.000178 0.000135 0.000123 -/ 6 -significant elliptical 85 - 0.267252 0.177119 0.230006 0.110530 - 0.000185 0.000079 0.000077 0.000494 -significant elliptical 220 - 0.342780 0.171268 0.222184 0.107073 - 0.000089 0.000096 0.000056 0.000713 -significant elliptical 28 - 0.314043 0.174559 0.230352 0.102568 - 0.000091 0.000028 0.000076 0.000233 -significant elliptical 73 - 0.316247 0.156535 0.201314 0.103781 - 0.000082 0.000059 0.000034 0.000349 -significant elliptical 82 - 0.322551 0.194536 0.248478 0.129960 - 0.000183 0.000117 0.000298 0.000531 -significant elliptical 128 - 0.378140 0.180570 0.238258 0.105054 - 0.000181 0.000116 0.000138 0.000446 +é 1 +significant elliptical 288 + 0.316832 0.304068 0.206443 0.132181 + 0.000258 0.000655 0.000209 0.000263 -t 2 -significant elliptical 583 - 0.291134 0.190937 0.193078 0.100389 - 0.000255 0.000828 0.000088 0.000366 -significant elliptical 57 - 0.339090 0.174326 0.194378 0.084102 - 0.000116 0.000414 0.000141 0.000429 - -~ 2 +£ 4 +significant elliptical 16 + 0.358344 0.276693 0.243890 0.150169 + 0.000100 0.000181 0.000138 0.000161 +significant elliptical 155 + 0.304664 0.273134 0.219036 0.140802 + 0.000189 0.000326 0.000156 0.000241 +significant elliptical 98 + 0.326010 0.335393 0.223833 0.165543 + 0.000416 0.000259 0.000138 0.000392 +significant elliptical 19 + 0.304597 0.409216 0.218642 0.177245 + 0.000133 0.000219 0.000103 0.000178 + +! 1 significant elliptical 320 - 0.261140 0.116162 0.058461 0.148148 - 0.000519 0.000070 0.000080 0.000103 -significant elliptical 80 - 0.581353 0.086597 0.053718 0.109318 - 0.000745 0.000033 0.000079 0.000052 - -u 3 -significant elliptical 405 - 0.234926 0.241295 0.156408 0.146973 - 0.000069 0.000508 0.000036 0.000156 -significant elliptical 201 - 0.255415 0.263480 0.167510 0.161020 - 0.000073 0.000390 0.000027 0.000149 -significant elliptical 24 - 0.210606 0.219534 0.146129 0.137077 - 0.000018 0.000192 0.000048 0.000186 + 0.337575 0.166996 0.219864 0.066314 + 0.000513 0.000228 0.000209 0.000257 -_ 9 -significant elliptical 83 - -0.176219 0.107712 0.037824 0.150783 - 0.000758 0.000075 0.000143 0.000129 -significant elliptical 124 - -0.089273 0.120124 0.050328 0.166633 - 0.000095 0.000170 0.000033 0.000369 -significant elliptical 55 - -0.095009 0.126274 0.033823 0.178707 - 0.000038 0.000188 0.000021 0.000395 -significant elliptical 60 - -0.074176 0.104458 0.033514 0.146840 - 0.000036 0.000068 0.000023 0.000147 -significant elliptical 70 - -0.056322 0.109460 0.037122 0.153553 - 0.000015 0.000079 0.000022 0.000160 -significant elliptical 74 - -0.049055 0.109308 0.045872 0.151519 - 0.000022 0.000102 0.000021 0.000219 -significant elliptical 97 - -0.065350 0.112271 0.044407 0.156304 - 0.000026 0.000295 0.000028 0.000619 -significant elliptical 23 - -0.067418 0.125733 0.064109 0.172536 - 0.000035 0.000325 0.000013 0.000714 -significant elliptical 50 - -0.030036 0.114855 0.047891 0.159488 - 0.000113 0.000180 0.000127 0.000301 +> 4 +significant elliptical 206 + 0.286487 0.198711 0.144179 0.145041 + 0.000613 0.000245 0.000244 0.000203 +significant elliptical 33 + 0.300195 0.147312 0.113107 0.109099 + 0.000144 0.000139 0.000129 0.000141 +significant elliptical 35 + 0.357140 0.213231 0.139543 0.152212 + 0.000250 0.000227 0.000158 0.000138 +significant elliptical 14 + 0.320393 0.245383 0.188920 0.187935 + 0.000165 0.000130 0.000126 0.000100 -^ 6 -significant elliptical 79 - 0.558222 0.076427 0.054828 0.090347 - 0.000597 0.000045 0.000079 0.000087 -significant elliptical 34 - 0.501872 0.133686 0.091306 0.135354 - 0.000193 0.000020 0.000050 0.000041 -significant elliptical 39 - 0.506849 0.164867 0.121266 0.132542 - 0.000188 0.000116 0.000086 0.000071 +I 4 +significant elliptical 100 + 0.369921 0.228860 0.262610 0.126354 + 0.000119 0.000100 0.000119 0.000185 +significant elliptical 458 + 0.334451 0.202475 0.237364 0.101167 + 0.000321 0.000316 0.000188 0.000466 +significant elliptical 95 + 0.334920 0.269020 0.248741 0.142052 + 0.000130 0.000102 0.000114 0.000340 +significant elliptical 211 + 0.332292 0.154462 0.212755 0.065638 + 0.000117 0.000111 0.000105 0.000143 + +· 2 +significant elliptical 170 + 0.273224 0.055911 0.060518 0.056366 + 0.000455 0.000165 0.000152 0.000200 +significant elliptical 118 + 0.342795 0.053696 0.055410 0.055717 + 0.000341 0.000177 0.000244 0.000252 + +Y 2 +significant elliptical 200 + 0.407162 0.304907 0.235144 0.166894 + 0.000907 0.000501 0.000271 0.000327 +significant elliptical 120 + 0.400594 0.230678 0.203605 0.147477 + 0.000230 0.000127 0.000178 0.000233 + +/ 6 +significant elliptical 126 + 0.340247 0.161867 0.217410 0.091000 + 0.000314 0.000136 0.000238 0.000240 +significant elliptical 9 + 0.374872 0.166941 0.206020 0.127764 + 0.000177 0.000105 0.000100 0.000100 +significant elliptical 9 + 0.368936 0.189908 0.219573 0.154703 + 0.000100 0.000114 0.000100 0.000100 +significant elliptical 10 + 0.376519 0.204534 0.257743 0.139414 + 0.000157 0.000100 0.000100 0.000387 significant elliptical 108 - 0.472142 0.163577 0.119919 0.129286 - 0.000077 0.000097 0.000045 0.000079 -significant elliptical 94 - 0.430134 0.142877 0.114053 0.115289 - 0.000174 0.000085 0.000047 0.000079 -significant elliptical 40 - 0.367571 0.198585 0.139560 0.135962 - 0.000096 0.000018 0.000020 0.000018 - -v 1 -significant elliptical 630 - 0.292634 0.203086 0.148552 0.134961 - 0.000463 0.000705 0.000077 0.000328 - -w 1 -significant elliptical 634 - 0.272351 0.300050 0.154160 0.193189 - 0.000368 0.002315 0.000122 0.000537 + 0.270932 0.196028 0.254064 0.127075 + 0.000203 0.000282 0.000317 0.000513 +significant elliptical 18 + 0.341905 0.226779 0.282814 0.165467 + 0.000170 0.000183 0.000145 0.000562 + +G 2 +significant elliptical 334 + 0.328982 0.361021 0.209077 0.185441 + 0.000220 0.000498 0.000181 0.000228 +significant elliptical 114 + 0.362640 0.416731 0.236585 0.211665 + 0.000234 0.000241 0.000167 0.000102 + +[ 1 +significant elliptical 288 + 0.276709 0.225362 0.287311 0.092513 + 0.000835 0.000318 0.000309 0.000415 -x 1 -significant elliptical 634 - 0.241075 0.236781 0.172612 0.148433 - 0.000178 0.001371 0.000093 0.000463 +§ 7 +significant elliptical 36 + 0.331848 0.256041 0.217870 0.117209 + 0.000160 0.000115 0.000100 0.000159 +significant elliptical 9 + 0.258902 0.455453 0.264042 0.163095 + 0.000100 0.000100 0.000100 0.000100 +significant elliptical 9 + 0.253466 0.418245 0.263946 0.134264 + 0.000100 0.000114 0.000100 0.000110 +significant elliptical 35 + 0.300978 0.415326 0.241891 0.160312 + 0.000160 0.000241 0.000100 0.000160 +significant elliptical 18 + 0.264785 0.390905 0.304334 0.145993 + 0.000108 0.000220 0.000100 0.000119 +significant elliptical 66 + 0.310569 0.362624 0.254930 0.128521 + 0.000236 0.000319 0.000192 0.000258 +significant elliptical 105 + 0.245085 0.349755 0.252551 0.136251 + 0.000246 0.000266 0.000145 0.000435 + +• 4 +significant elliptical 156 + 0.355899 0.105613 0.117755 0.115571 + 0.000608 0.000182 0.000244 0.000230 +significant elliptical 37 + 0.319949 0.081493 0.089194 0.084999 + 0.000148 0.000100 0.000136 0.000133 +significant elliptical 76 + 0.279740 0.097919 0.104983 0.106424 + 0.000257 0.000100 0.000107 0.000100 +significant elliptical 18 + 0.262194 0.138969 0.153827 0.155420 + 0.000567 0.000100 0.000117 0.000100 + +° 5 +significant elliptical 33 + 0.577503 0.085878 0.076395 0.072477 + 0.000240 0.000150 0.000204 0.000228 +significant elliptical 171 + 0.518801 0.138401 0.096861 0.095760 + 0.000336 0.000290 0.000162 0.000154 +significant elliptical 30 + 0.473224 0.152147 0.111605 0.110378 + 0.000267 0.000100 0.000106 0.000116 +significant elliptical 26 + 0.659193 0.143555 0.102341 0.105025 + 0.000500 0.000157 0.000152 0.000119 +significant elliptical 8 + 0.626633 0.174346 0.141848 0.140370 + 0.000239 0.000177 0.000100 0.000100 -y 1 -significant elliptical 525 - 0.209765 0.255096 0.210389 0.144287 - 0.000440 0.001435 0.000201 0.000460 +' 4 +significant elliptical 62 + 0.594490 0.055853 0.069057 0.044007 + 0.000439 0.000100 0.000100 0.000103 +significant elliptical 103 + 0.574833 0.083580 0.102211 0.055597 + 0.000294 0.000110 0.000208 0.000147 +significant elliptical 88 + 0.528897 0.071947 0.086509 0.047411 + 0.000101 0.000106 0.000154 0.000162 +significant elliptical 30 + 0.494151 0.087373 0.110645 0.057465 + 0.000191 0.000105 0.000164 0.000103 -z 1 -significant elliptical 616 - 0.237871 0.226094 0.169354 0.129572 - 0.000197 0.000977 0.000087 0.000235 +Z 3 +significant elliptical 74 + 0.356956 0.380354 0.250838 0.186121 + 0.000358 0.000299 0.000187 0.000283 +significant elliptical 127 + 0.328196 0.348733 0.228632 0.162133 + 0.000194 0.000280 0.000243 0.000285 +significant elliptical 119 + 0.324082 0.285687 0.236960 0.151876 + 0.000251 0.000229 0.000180 0.000306 + +% 5 +significant elliptical 22 + 0.357460 0.293031 0.213844 0.149624 + 0.000234 0.000161 0.000117 0.000128 +significant elliptical 18 + 0.355021 0.357128 0.202069 0.127497 + 0.000165 0.000128 0.000152 0.000127 +significant elliptical 152 + 0.346504 0.517085 0.195774 0.213496 + 0.000396 0.000302 0.000132 0.000516 +significant elliptical 14 + 0.367654 0.585160 0.221010 0.229924 + 0.000114 0.000168 0.000100 0.000134 +significant elliptical 106 + 0.328303 0.439945 0.203276 0.185024 + 0.000220 0.000847 0.000210 0.000423 + +— 4 +significant elliptical 109 + 0.277959 0.158229 0.050761 0.220254 + 0.000131 0.000179 0.000161 0.000344 +significant elliptical 13 + 0.335809 0.171334 0.070379 0.238941 + 0.000136 0.000100 0.000100 0.000130 +significant elliptical 20 + 0.327479 0.150107 0.045131 0.212334 + 0.000156 0.000121 0.000102 0.000122 +significant elliptical 144 + 0.252291 0.206262 0.050085 0.291316 + 0.000172 0.000139 0.000154 0.000227 + +© 5 +significant elliptical 25 + 0.281477 0.430811 0.179902 0.182424 + 0.000377 0.000319 0.000100 0.000137 +significant elliptical 92 + 0.347553 0.586926 0.210408 0.199201 + 0.000325 0.000266 0.000109 0.000111 +significant elliptical 148 + 0.325530 0.525922 0.188627 0.184978 + 0.000307 0.000538 0.000151 0.000146 +significant elliptical 39 + 0.291477 0.681156 0.236553 0.230687 + 0.000102 0.000100 0.000100 0.000100 +significant elliptical 15 + 0.379610 0.647426 0.222926 0.225449 + 0.000100 0.000100 0.000100 0.000100 diff --git a/tessdata/eng.pffmtable b/tessdata/eng.pffmtable index be615c8b15..245ea476b7 100755 --- a/tessdata/eng.pffmtable +++ b/tessdata/eng.pffmtable @@ -1,92 +1,111 @@ -! 27 -# 44 -$ 45 -% 46 -& 46 -' 7 -( 28 -) 27 -* 14 -+ 26 -, 10 -- 9 -. 5 -/ 26 -0 53 -1 28 -2 50 -3 47 -4 34 -5 50 -6 46 -7 37 -8 50 -9 47 -: 10 -; 17 -< 29 -= 29 -> 31 -? 32 -@ 54 -A 45 -B 52 -C 47 -D 57 -E 49 -F 41 -G 58 -H 56 -I 26 -J 33 -K 51 -L 34 -M 55 -N 53 -O 56 -P 44 -Q 60 -R 53 -S 49 -T 34 -U 55 -V 44 -W 49 -X 47 -Y 38 -Z 46 -[ 35 -\ 26 -] 35 -^ 18 -_ 17 -` 8 -a 39 -b 51 -c 36 -d 51 -e 35 -f 29 -g 56 -h 49 -i 24 -j 34 -k 45 -l 27 -m 59 -n 42 -o 43 -p 50 -q 49 -r 24 -s 35 -t 28 -u 43 -v 33 -w 40 -x 37 -y 41 -z 36 -{ 34 -} 34 -~ 18 +t 66 +h 77 +r 51 +o 59 +u 81 +g 100 +N 79 +e 65 +w 94 +S 90 +F 79 +i 68 +n 74 +d 84 +f 71 +a 76 +m 111 +l 58 +y 83 +s 82 +¢ 84 +¥ 88 +q 87 +V 73 +L 65 +U 74 +v 82 +E 92 +H 102 +` 58 +¤ 92 +B 84 +P 72 +c 69 +O 76 +J 63 +( 66 +€ 99 +1 68 +, 58 +0 73 +. 51 +) 63 +“ 92 +R 87 +” 90 +D 74 +M 100 +b 74 +- 43 +; 78 +W 95 +® 145 +? 94 +~ 73 +# 88 +z 93 +] 65 +x 80 +5 85 +p 82 +Q 90 +9 84 +2 86 +@ 148 +< 65 +T 70 +» 85 +6 84 +C 69 +k 80 +‘ 70 ++ 64 +A 72 +{ 72 += 82 +& 105 +’ 62 +* 75 +3 87 +$ 99 +j 77 +4 74 +| 56 +7 67 +8 84 +_ 57 +\ 60 +: 76 +X 82 +K 87 +} 75 +" 76 +é 99 +£ 98 +! 72 +> 60 +I 63 +· 58 +Y 77 +/ 44 +G 93 +[ 66 +§ 117 +• 41 +° 71 +' 54 +Z 87 +% 124 +— 68 +© 132 diff --git a/tessdata/eng.unicharset b/tessdata/eng.unicharset index 0f8058e537..4fb382f78e 100644 --- a/tessdata/eng.unicharset +++ b/tessdata/eng.unicharset @@ -1,95 +1,113 @@ -94 -NULL -! -" -# -$ -% -& -' -( -) -* -+ -, -- -. -/ -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -: -; -< -= -> -? -@ -A -B -C -D -E -F -G -H -I -J -K -L -M -N -O -P -Q -R -S -T -U -V -W -X -Y -Z -[ -\ -] -_ -` -a -b -c -d -e -f -g -h -i -j -k -l -m -n -o -p -q -r -s -t -u -v -w -x -y -z -{ -| -} -~ +112 +NULL 0 +t 3 +h 3 +r 3 +o 3 +u 3 +g 3 +N 5 +e 3 +w 3 +S 5 +F 5 +i 3 +n 3 +d 3 +f 3 +a 3 +m 3 +l 3 +y 3 +s 3 +¢ 0 +¥ 0 +q 3 +V 5 +L 5 +U 5 +v 3 +E 5 +H 5 +` 0 +¤ 0 +B 5 +P 5 +c 3 +O 5 +J 5 +( 0 +€ 0 +1 8 +, 0 +0 8 +. 0 +) 0 +“ 0 +R 5 +” 0 +D 5 +M 5 +b 3 +- 0 +; 0 +W 5 +® 0 +? 0 +~ 0 +# 0 +z 3 +] 0 +x 3 +5 8 +p 3 +Q 5 +9 8 +2 8 +@ 0 +< 0 +T 5 +» 0 +6 8 +C 5 +k 3 +‘ 0 ++ 0 +A 5 +{ 0 += 0 +& 0 +’ 0 +* 0 +3 8 +$ 0 +j 3 +4 8 +| 0 +7 8 +8 8 +_ 0 +\ 0 +: 0 +X 5 +K 5 +} 0 +" 0 +é 3 +£ 0 +! 0 +> 0 +I 5 +· 0 +Y 5 +/ 0 +G 5 +[ 0 +§ 0 +• 0 +° 0 +' 0 +Z 5 +% 0 +— 0 +© 0 diff --git a/tessdata/eng.word-dawg b/tessdata/eng.word-dawg index e86fab6945..19278b9dd6 100755 Binary files a/tessdata/eng.word-dawg and b/tessdata/eng.word-dawg differ diff --git a/tessdata/tessconfigs/old_batch b/tessdata/tessconfigs/old_batch deleted file mode 100755 index 89de538488..0000000000 --- a/tessdata/tessconfigs/old_batch +++ /dev/null @@ -1,82 +0,0 @@ -################################################# -# Adaptive Matcher Using PreAdapted Templates -################################################# - -acts_fx 0x800 -acts_ocr 0x20 - -RatingScale 30.0 -CertaintyScale 20.0 - -#EnableMatcher 0 -CurrentFx 2 -EnableMicroFeatures 1 -EnableCharNormFeatures 1 -MinSlope 0.414213562 -MaxSlope 2.414213562 -ExtremityMode 1 -NormMethod 1 -EnableAdaptiveMatcher 1 - -NormAdjMidpoint 32.0 -NormAdjCurl 2.0 - -MinNormScaleX 0.0 -MaxNormScaleX 0.325 -MinNormScaleY 0.0 -MaxNormScaleY 0.325 - -BuiltInTemplatesFile data/inttemp -BuiltInCutoffsFile data/pffmtable - -EnableLearning 0 -SaveAdaptedTemplates 0 -UsePreAdaptedTemplates 0 -ReliableConfigThreshold 2 -MinNumPermClasses 3 - -EnableStopper 1 -GoodAdaptiveMatch 0.125 -GreatAdaptiveMatch 0.0 - -EnableIntFX 1 -EnableNewAdaptRules 1 -################################################################################ -# -# File: marks/configs/knobs -# RCS: $Header: /cvsroot/tesseract-ocr/tesseract/tessdata/tessconfigs/old_batch,v 1.1 2006/06/16 22:17:08 lvincent Exp $ -# Description: Control variables for 'marks' code -# Author: Mark Seaman, OCR Technology -# Created: Wed Feb 27 11:27:27 1991 -# Modified: Tue Jul 30 16:25:37 1991 (Mark Seaman) marks@hpgrlt -# Language: Text -# Package: N/A -# Status: Experimental (Do Not Distribute) -# -# (c) Copyright 1991, Hewlett-Packard Company, all rights reserved. -# -################################################################################ - -#hidden_edges 1 - -save_doc_words 1 -doc_dict_enable 1 -ClassPrunerThreshold 229 -ClassPrunerMultiplier 15 -IntegerMatcherMultiplier 7 -IntThetaFudge 128 -CPCutoffStrength 0.15 -EvidenceTableBits 9 -IntEvidenceTruncBits 14 -SEExponentialMultiplier 0 -SimilarityCenter 0.0075 -################################################# -# Adaptive Matcher Using 2 Passes -################################################# - -EnableLearning 1 -SaveAdaptedTemplates 0 -UsePreAdaptedTemplates 0 - -save_errors 0 - diff --git a/tessdata/tessconfigs/var_batch b/tessdata/tessconfigs/var_batch deleted file mode 100755 index 1918b9ac90..0000000000 --- a/tessdata/tessconfigs/var_batch +++ /dev/null @@ -1,82 +0,0 @@ -################################################# -# Adaptive Matcher Using PreAdapted Templates -################################################# - -#acts_fx 0x800 -#acts_ocr 0x20 - -#RatingScale 30.0 -#CertaintyScale 20.0 - -#EnableMatcher 0 -#CurrentFx 2 -#EnableMicroFeatures 1 -#EnableCharNormFeatures 1 -#MinSlope 0.414213562 -#MaxSlope 2.414213562 -#ExtremityMode 1 -#NormMethod 1 -#EnableAdaptiveMatcher 1 - -#NormAdjMidpoint 32.0 -#NormAdjCurl 2.0 - -#MinNormScaleX 0.0 -#MaxNormScaleX 0.325 -#MinNormScaleY 0.0 -#MaxNormScaleY 0.325 - -#BuiltInTemplatesFile data/inttemp -#BuiltInCutoffsFile data/pffmtable - -#EnableLearning 0 -#SaveAdaptedTemplates 0 -#UsePreAdaptedTemplates 0 -#ReliableConfigThreshold 2 -#MinNumPermClasses 3 - -#EnableStopper 1 -#GoodAdaptiveMatch 0.125 -#GreatAdaptiveMatch 0.0 - -#EnableIntFX 1 -#EnableNewAdaptRules 1 -################################################################################ -# -# File: marks/configs/knobs -# RCS: $Header: /cvsroot/tesseract-ocr/tesseract/tessdata/tessconfigs/var_batch,v 1.1 2006/06/16 22:17:08 lvincent Exp $ -# Description: Control variables for 'marks' code -# Author: Mark Seaman, OCR Technology -# Created: Wed Feb 27 11:27:27 1991 -# Modified: Tue Jul 30 16:25:37 1991 (Mark Seaman) marks@hpgrlt -# Language: Text -# Package: N/A -# Status: Experimental (Do Not Distribute) -# -# (c) Copyright 1991, Hewlett-Packard Company, all rights reserved. -# -################################################################################ - -#hidden_edges 1 - -#save_doc_words 1 -#doc_dict_enable 1 -#ClassPrunerThreshold 229 -#ClassPrunerMultiplier 15 -#IntegerMatcherMultiplier 7 -#IntThetaFudge 128 -#CPCutoffStrength 0.15 -#EvidenceTableBits 9 -#IntEvidenceTruncBits 14 -#SEExponentialMultiplier 0 -#SimilarityCenter 0.0075 -################################################# -# Adaptive Matcher Using 2 Passes -################################################# - -#EnableLearning 1 -#SaveAdaptedTemplates 0 -#UsePreAdaptedTemplates 0 - -#save_errors 0 - diff --git a/textord/Makefile.in b/textord/Makefile.in index c3991ed0c4..3a148d3514 100644 --- a/textord/Makefile.in +++ b/textord/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,326 +10,196 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = textord -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_textord_a_AR = $(AR) $(ARFLAGS) -libtesseract_textord_a_LIBADD = -am_libtesseract_textord_a_OBJECTS = blkocc.$(OBJEXT) drawedg.$(OBJEXT) \ - drawtord.$(OBJEXT) edgblob.$(OBJEXT) edgloop.$(OBJEXT) \ - fpchop.$(OBJEXT) gap_map.$(OBJEXT) makerow.$(OBJEXT) \ - oldbasel.$(OBJEXT) pithsync.$(OBJEXT) pitsync1.$(OBJEXT) \ - scanedg.$(OBJEXT) sortflts.$(OBJEXT) topitch.$(OBJEXT) \ - tordmain.$(OBJEXT) tospace.$(OBJEXT) tovars.$(OBJEXT) \ - underlin.$(OBJEXT) wordseg.$(OBJEXT) -libtesseract_textord_a_OBJECTS = $(am_libtesseract_textord_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_textord_a_SOURCES) -DIST_SOURCES = $(libtesseract_textord_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = -AM_CPPFLAGS = \ - -I$(top_srcdir)/ccstruct -I$(top_srcdir)/ccutil \ - -I$(top_srcdir)/image -I$(top_srcdir)/viewer +AM_CPPFLAGS = -I$(top_srcdir)/ccstruct -I$(top_srcdir)/ccutil -I$(top_srcdir)/image -I$(top_srcdir)/viewer + + +include_HEADERS = blkocc.h blobcmpl.h drawedg.h drawtord.h edgblob.h edgloop.h fpchop.h gap_map.h makerow.h oldbasel.h pithsync.h pitsync1.h scanedg.h sortflts.h tessout.h topitch.h tordmain.h tospace.h tovars.h underlin.h wordseg.h -include_HEADERS = \ - blkocc.h blobcmpl.h drawedg.h drawtord.h edgblob.h \ - edgloop.h fpchop.h gap_map.h makerow.h oldbasel.h \ - pithsync.h pitsync1.h scanedg.h sortflts.h tessout.h \ - topitch.h tordmain.h tospace.h tovars.h underlin.h \ - wordseg.h lib_LIBRARIES = libtesseract_textord.a -libtesseract_textord_a_SOURCES = \ - blkocc.cpp drawedg.cpp drawtord.cpp edgblob.cpp \ - edgloop.cpp fpchop.cpp gap_map.cpp makerow.cpp oldbasel.cpp \ - pithsync.cpp pitsync1.cpp scanedg.cpp sortflts.cpp \ - topitch.cpp tordmain.cpp tospace.cpp tovars.cpp underlin.cpp \ - wordseg.cpp +libtesseract_textord_a_SOURCES = blkocc.cpp drawedg.cpp drawtord.cpp edgblob.cpp edgloop.cpp fpchop.cpp gap_map.cpp makerow.cpp oldbasel.cpp pithsync.cpp pitsync1.cpp scanedg.cpp sortflts.cpp topitch.cpp tordmain.cpp tospace.cpp tovars.cpp underlin.cpp wordseg.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) -all: all-recursive +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_textord_a_LIBADD = +libtesseract_textord_a_OBJECTS = blkocc.o drawedg.o drawtord.o \ +edgblob.o edgloop.o fpchop.o gap_map.o makerow.o oldbasel.o pithsync.o \ +pitsync1.o scanedg.o sortflts.o topitch.o tordmain.o tospace.o tovars.o \ +underlin.o wordseg.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/blkocc.P .deps/drawedg.P .deps/drawtord.P \ +.deps/edgblob.P .deps/edgloop.P .deps/fpchop.P .deps/gap_map.P \ +.deps/makerow.P .deps/oldbasel.P .deps/pithsync.P .deps/pitsync1.P \ +.deps/scanedg.P .deps/sortflts.P .deps/topitch.P .deps/tordmain.P \ +.deps/tospace.P .deps/tovars.P .deps/underlin.P .deps/wordseg.P +SOURCES = $(libtesseract_textord_a_SOURCES) +OBJECTS = $(libtesseract_textord_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu textord/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu textord/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu textord/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_textord.a: $(libtesseract_textord_a_OBJECTS) $(libtesseract_textord_a_DEPENDENCIES) - -rm -f libtesseract_textord.a - $(libtesseract_textord_a_AR) libtesseract_textord.a $(libtesseract_textord_a_OBJECTS) $(libtesseract_textord_a_LIBADD) - $(RANLIB) libtesseract_textord.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blkocc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drawedg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drawtord.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edgblob.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edgloop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpchop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gap_map.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makerow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldbasel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pithsync.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pitsync1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanedg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sortflts.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/topitch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tordmain.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tospace.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tovars.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/underlin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wordseg.Po@am__quote@ +maintainer-clean-compile: +libtesseract_textord.a: $(libtesseract_textord_a_OBJECTS) $(libtesseract_textord_a_DEPENDENCIES) + -rm -f libtesseract_textord.a + $(AR) cru libtesseract_textord.a $(libtesseract_textord_a_OBJECTS) $(libtesseract_textord_a_LIBADD) + $(RANLIB) libtesseract_textord.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -340,14 +208,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -359,7 +226,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -367,24 +234,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -394,218 +250,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = textord distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu textord/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/textord/edgblob.cpp b/textord/edgblob.cpp index 7eabfa1fc2..460f0ca5ce 100644 --- a/textord/edgblob.cpp +++ b/textord/edgblob.cpp @@ -37,7 +37,7 @@ EXTERN INT_VAR (edges_patharea_ratio, 40, "Max lensq/area for acceptable child outline"); EXTERN double_VAR (edges_childarea, 0.5, "Max area fraction of child outline"); -EXTERN double_VAR (edges_boxarea, 0.8, +EXTERN double_VAR (edges_boxarea, 0.875, "Min area fraction of grandchild for box"); /********************************************************************** @@ -119,12 +119,15 @@ INT32 OL_BUCKETS::count_children( //recursive count child = child_it.data (); if (child != outline && *child < *outline) { child_count++; - if (child_count <= max_count) - grandchild_count += count_children (child, - (max_count - - child_count) / - edges_children_per_grandchild) - * edges_children_per_grandchild; + if (child_count <= max_count) { + int max_grand = (max_count - child_count) / + edges_children_per_grandchild; + if (max_grand > 0) + grandchild_count += count_children (child, max_grand) * + edges_children_per_grandchild; + else + grandchild_count += count_children(child, 1); + } if (child_count + grandchild_count > max_count) { /* err.log(RESULT_OKAY,E_LOC,ERR_OCR, ERR_SCROLLING,ERR_CONTINUE,ERR_DEBUG, @@ -253,7 +256,7 @@ void extract_edges( //find blobs //block box block->bounding_box (bleft, tright); //make blobs - outlines_to_blobs(block, bleft, tright, &outlines); + outlines_to_blobs(block, bleft, tright, &outlines); } @@ -270,10 +273,10 @@ void outlines_to_blobs( //find blobs ICOORD tright, C_OUTLINE_LIST *outlines) { //make buckets - OL_BUCKETS buckets(bleft, tright); + OL_BUCKETS buckets(bleft, tright); - fill_buckets(outlines, &buckets); - empty_buckets(block, &buckets); + fill_buckets(outlines, &buckets); + empty_buckets(block, &buckets); } @@ -360,14 +363,8 @@ BOOL8 capture_children( //find children C_BLOB_IT *reject_it, //dead grandchildren C_OUTLINE_IT *blob_it //output outlines ) { - BOOL8 anydone; //anything canned C_OUTLINE *outline; //master outline - C_OUTLINE *child; //child under test - C_OUTLINE_IT test_it; //for grandchildren INT32 child_count; //no of children - C_BLOB *blob; //reject - C_OUTLINE_LIST r_list; //rejects - C_OUTLINE_IT r_it; //iterator outline = blob_it->data (); child_count = buckets->count_children (outline, edges_children_count_limit); @@ -377,6 +374,13 @@ BOOL8 capture_children( //find children return TRUE; //get single level buckets->extract_children (outline, blob_it); +#if 0 + C_BLOB *blob; //reject + C_OUTLINE *child; //child under test + C_OUTLINE_LIST r_list; //rejects + C_OUTLINE_IT r_it; //iterator + C_OUTLINE_IT test_it; //for grandchildren + BOOL8 anydone; //anything canned if (child_count == 1) return TRUE; do { @@ -403,5 +407,6 @@ BOOL8 capture_children( //find children } } while (anydone); //got to restart +#endif return TRUE; } diff --git a/textord/makerow.cpp b/textord/makerow.cpp index 78fea0ca74..d464eb5951 100644 --- a/textord/makerow.cpp +++ b/textord/makerow.cpp @@ -67,6 +67,7 @@ EXTERN BOOL_VAR (textord_biased_skewcalc, TRUE, "Bias skew estimates with line length"); EXTERN BOOL_VAR (textord_interpolating_skew, TRUE, "Interpolate across gaps"); EXTERN INT_VAR (textord_skewsmooth_offset, 2, "For smooth factor"); +EXTERN INT_VAR (textord_skewsmooth_offset2, 1, "For smooth factor"); EXTERN INT_VAR (textord_test_x, 0, "coord of test pt"); EXTERN INT_VAR (textord_test_y, 0, "coord of test pt"); EXTERN INT_VAR (textord_min_blobs_in_row, 4, @@ -87,6 +88,10 @@ EXTERN double_VAR (textord_linespace_iqrlimit, 0.2, "Max iqr/median for linespace"); EXTERN double_VAR (textord_width_limit, 8, "Max width of blobs to make rows"); EXTERN double_VAR (textord_chop_width, 1.5, "Max width before chopping"); +EXTERN double_VAR (textord_expansion_factor, 1.0, +"Factor to expand rows by in expand_rows"); +EXTERN double_VAR (textord_overlap_x, 0.5, +"Fraction of linespace for good overlap"); EXTERN double_VAR (textord_merge_desc, 0.25, "Fraction of linespace for desc drop"); EXTERN double_VAR (textord_merge_x, 0.5, @@ -505,7 +510,7 @@ void cleanup_rows( //find lines for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) blob_it.add_list_after (row_it.data ()->blob_list ()); //give blobs back - assign_blobs_to_rows (block, &gradient, 1, TRUE, TRUE, FALSE); + assign_blobs_to_rows (block, &gradient, 1, FALSE, FALSE, FALSE); //now new rows must be genuine blob_it.set_to_list (&block->blobs); blob_it.add_list_after (&block->large_blobs); @@ -1016,10 +1021,14 @@ void expand_rows( //find lines row = row_it.data (); y_max = row->max_y (); //get current limits y_min = row->min_y (); - y_bottom = row->intercept () - block->line_size * textord_merge_desc; - y_top = row->intercept () + block->line_size - * (textord_merge_x + textord_merge_asc); + y_bottom = row->intercept () - block->line_size * textord_expansion_factor * + textord_merge_desc; + y_top = row->intercept () + block->line_size * textord_expansion_factor * + (textord_merge_x + textord_merge_asc); if (y_min > y_bottom) { //expansion allowed + if (textord_show_expanded_rows && testing_on) + tprintf("Expanding bottom of row at %f from %f to %f\n", + row->intercept(), y_min, y_bottom); //expandable swallowed_row = TRUE; while (swallowed_row && !row_it.at_last ()) { @@ -1029,6 +1038,8 @@ void expand_rows( //find lines //overlaps space if (test_row->max_y () > y_bottom) { if (test_row->min_y () > y_bottom) { + if (textord_show_expanded_rows && testing_on) + tprintf("Eating row below at %f\n", test_row->intercept()); row_it.forward (); #ifndef GRAPHICS_DISABLED if (textord_show_expanded_rows && testing_on) @@ -1045,16 +1056,27 @@ void expand_rows( //find lines row_it.backward (); swallowed_row = TRUE; } - else if (test_row->max_y () < y_min) + else if (test_row->max_y () < y_min) { //shorter limit y_bottom = test_row->max_y (); - else + if (textord_show_expanded_rows && testing_on) + tprintf("Truncating limit to %f due to touching row at %f\n", + y_bottom, test_row->intercept()); + } + else { y_bottom = y_min; //can't expand it + if (textord_show_expanded_rows && testing_on) + tprintf("Not expanding limit beyond %f due to touching row at %f\n", + y_bottom, test_row->intercept()); + } } } y_min = y_bottom; //expand it } if (y_max < y_top) { //expansion allowed + if (textord_show_expanded_rows && testing_on) + tprintf("Expanding top of row at %f from %f to %f\n", + row->intercept(), y_max, y_top); swallowed_row = TRUE; while (swallowed_row && !row_it.at_first ()) { swallowed_row = FALSE; @@ -1062,6 +1084,8 @@ void expand_rows( //find lines test_row = row_it.data_relative (-1); if (test_row->min_y () < y_top) { if (test_row->max_y () < y_top) { + if (textord_show_expanded_rows && testing_on) + tprintf("Eating row above at %f\n", test_row->intercept()); row_it.backward (); blob_it.set_to_list (row->blob_list ()); #ifndef GRAPHICS_DISABLED @@ -1078,12 +1102,19 @@ void expand_rows( //find lines row_it.forward (); swallowed_row = TRUE; } - else if (test_row->min_y () < y_max) + else if (test_row->min_y () < y_max) { //shorter limit y_top = test_row->min_y (); - else + if (textord_show_expanded_rows && testing_on) + tprintf("Truncating limit to %f due to touching row at %f\n", + y_top, test_row->intercept()); + } + else { y_top = y_max; //can't expand it - + if (textord_show_expanded_rows && testing_on) + tprintf("Not expanding limit beyond %f due to touching row at %f\n", + y_top, test_row->intercept()); + } } } y_max = y_top; @@ -1111,9 +1142,16 @@ void adjust_row_limits( //tidy limits float ymin; //bottom of row TO_ROW_IT row_it = block->get_rows (); + if (textord_show_expanded_rows) + tprintf("Adjusting row limits for block(%d,%d)\n", + block->block->bounding_box().left(), + block->block->bounding_box().top()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); size = row->max_y () - row->min_y (); + if (textord_show_expanded_rows) + tprintf("Row at %f has min %f, max %f, size %f\n", + row->intercept(), row->min_y(), row->max_y(), size); size /= textord_merge_x + textord_merge_asc + textord_merge_desc; ymax = size * (textord_merge_x + textord_merge_asc); ymin = -size * textord_merge_desc; @@ -2343,7 +2381,7 @@ void assign_blobs_to_rows( //find lines else { if (top - row->max_y () <= (block->line_spacing - - block->line_size) * (textord_merge_x + + block->line_size) * (textord_overlap_x + textord_merge_asc)) { //done it overlap_result = ASSIGN; @@ -2380,7 +2418,8 @@ void assign_blobs_to_rows( //find lines new TO_ROW (blob_it.extract (), top, bottom, block->line_size); row_count++; row_it.add_after_then_move (dest_row); - smooth_factor = 1.0 / (row_count * textord_skew_lag + 1); + smooth_factor = 1.0 / (row_count * textord_skew_lag + + textord_skewsmooth_offset2); } else overlap_result = REJECT; @@ -2509,7 +2548,8 @@ OVERLAP_STATE most_overlapping_row( //find best row while (row_it->data () != row) row_it->backward (); //make it point to row //doesn't overlap much - if (top - bottom - bestover > rowsize * textord_merge_x && (!textord_fix_makerow_bug || bestover < rowsize * textord_merge_x) + if (top - bottom - bestover > rowsize * textord_overlap_x && + (!textord_fix_makerow_bug || bestover < rowsize * textord_overlap_x) && result == ASSIGN) result = NEW_ROW; //doesn't overlap enough best_row = row; diff --git a/textord/oldbasel.cpp b/textord/oldbasel.cpp index 1d1954f4ed..17c0443e8a 100644 --- a/textord/oldbasel.cpp +++ b/textord/oldbasel.cpp @@ -38,6 +38,7 @@ EXTERN BOOL_VAR (textord_oldbl_merge_parts, TRUE, "Merge suspect partitions"); EXTERN BOOL_VAR (oldbl_corrfix, TRUE, "Improve correlation of heights"); EXTERN BOOL_VAR (oldbl_xhfix, FALSE, "Fix bug in modes threshold for xheights"); +EXTERN BOOL_VAR(textord_ocropus_mode, FALSE, "Make baselines for ocropus"); EXTERN double_VAR (oldbl_xhfract, 0.4, "Fraction of est allowed in calc"); EXTERN INT_VAR (oldbl_holed_losscount, 10, "Max lost before fallback line used"); @@ -1405,7 +1406,7 @@ int bestpart /*biggest partition */ //by jetsoft divide by zero possible if (partsizes[partition]==0) partsteps[partition]=0; - else + else partsteps[partition] /= partsizes[partition]; // @@ -1557,8 +1558,9 @@ float jumplimit /*min ascender height */ blobcoords[blobindex].right ()) / 2; float base = baseline->y(xcenter); float bottomdiff = fabs(base - blobcoords[blobindex].bottom()); - int strength = bottomdiff <= kBaselineTouch ? kGoodStrength : 1; - int height = static_cast(blobcoords[blobindex].top () - base); + int strength = textord_ocropus_mode && + bottomdiff <= kBaselineTouch ? kGoodStrength : 1; + int height = static_cast(blobcoords[blobindex].top () - base + 0.5); if (blobcoords[blobindex].height () > init_lineheight * kMinHeight) { if (height > lineheight * oldbl_xhfract && height > textord_min_xheight) { @@ -1606,7 +1608,8 @@ float jumplimit /*min ascender height */ * input distribution. **********************************************************************/ -const int kMinModeFactor = 32; +const int kMinModeFactorOcropus = 32; +const int kMinModeFactor = 12; void find_top_modes ( //get modes @@ -1620,6 +1623,8 @@ int modelist[], int modenum //no of modes to get int i; int mode; int total_max = 0; + int mode_factor = textord_ocropus_mode ? + kMinModeFactorOcropus : kMinModeFactor; for (mode_count = 0; mode_count < modenum; mode_count++) { mode = 0; @@ -1634,7 +1639,7 @@ int modelist[], int modenum //no of modes to get last_i = mode; last_max = stats->pile_count (last_i); total_max += last_max; - if (last_max <= total_max / kMinModeFactor) + if (last_max <= total_max / mode_factor) mode = 0; modelist[mode_count] = mode; } @@ -1666,8 +1671,9 @@ void pick_x_height(TO_ROW * row, //row to do /* Check for two modes */ if (modelist[x] && modelist[y] && heightstat->pile_count (modelist[x]) > mode_threshold && - MIN(rights[modelist[x]], rights[modelist[y]]) > - MAX(lefts[modelist[x]], lefts[modelist[y]])) { + (!textord_ocropus_mode || + MIN(rights[modelist[x]], rights[modelist[y]]) > + MAX(lefts[modelist[x]], lefts[modelist[y]]))) { ratio = (float) modelist[y] / (float) modelist[x]; if (1.2 < ratio && ratio < 1.8) { /* Two modes found */ @@ -1679,8 +1685,9 @@ void pick_x_height(TO_ROW * row, //row to do found_one_bigger = FALSE; for (z = 0; z < MODENUM; z++) { if (modelist[z] == best_x_height + 1 && - MIN(rights[modelist[x]], rights[modelist[y]]) > - MAX(lefts[modelist[x]], lefts[modelist[y]])) { + (!textord_ocropus_mode || + MIN(rights[modelist[x]], rights[modelist[y]]) > + MAX(lefts[modelist[x]], lefts[modelist[y]]))) { ratio = (float) modelist[y] / (float) modelist[z]; if ((1.2 < ratio && ratio < 1.8) && /* Should be half of best */ @@ -1705,8 +1712,9 @@ void pick_x_height(TO_ROW * row, //row to do found_one_bigger = FALSE; for (z = 0; z < MODENUM; z++) { if (modelist[z] > best_asc && - MIN(rights[modelist[x]], rights[modelist[y]]) > - MAX(lefts[modelist[x]], lefts[modelist[y]])) { + (!textord_ocropus_mode || + MIN(rights[modelist[x]], rights[modelist[y]]) > + MAX(lefts[modelist[x]], lefts[modelist[y]]))) { ratio = (float) modelist[z] / (float) best_x_height; if ((1.2 < ratio && ratio < 1.8) && /* Should be half of best */ diff --git a/training/Makefile.in b/training/Makefile.in index 8083f3335d..1250957cda 100644 --- a/training/Makefile.in +++ b/training/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,385 +10,272 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ - +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -bin_PROGRAMS = cntraining$(EXEEXT) mftraining$(EXEEXT) -subdir = training -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_training_a_AR = $(AR) $(ARFLAGS) -libtesseract_training_a_LIBADD = -am_libtesseract_training_a_OBJECTS = name2char.$(OBJEXT) \ - training.$(OBJEXT) -libtesseract_training_a_OBJECTS = \ - $(am_libtesseract_training_a_OBJECTS) -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -PROGRAMS = $(bin_PROGRAMS) -am_cntraining_OBJECTS = cnTraining.$(OBJEXT) -cntraining_OBJECTS = $(am_cntraining_OBJECTS) -cntraining_DEPENDENCIES = libtesseract_training.a \ - ../textord/libtesseract_textord.a \ - ../classify/libtesseract_classify.a \ - ../dict/libtesseract_dict.a ../image/libtesseract_image.a \ - ../cutil/libtesseract_cutil.a \ - ../ccstruct/libtesseract_ccstruct.a \ - ../viewer/libtesseract_viewer.a \ - ../ccutil/libtesseract_ccutil.a -am_mftraining_OBJECTS = mfTraining.$(OBJEXT) mergenf.$(OBJEXT) -mftraining_OBJECTS = $(am_mftraining_OBJECTS) -mftraining_DEPENDENCIES = libtesseract_training.a \ - ../textord/libtesseract_textord.a \ - ../classify/libtesseract_classify.a \ - ../dict/libtesseract_dict.a ../image/libtesseract_image.a \ - ../cutil/libtesseract_cutil.a \ - ../ccstruct/libtesseract_ccstruct.a \ - ../viewer/libtesseract_viewer.a \ - ../ccutil/libtesseract_ccutil.a -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_training_a_SOURCES) $(cntraining_SOURCES) \ - $(mftraining_SOURCES) -DIST_SOURCES = $(libtesseract_training_a_SOURCES) \ - $(cntraining_SOURCES) $(mftraining_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = -AM_CPPFLAGS = \ - -I$(top_srcdir)/ccutil -I$(top_srcdir)/ccstruct \ - -I$(top_srcdir)/image -I$(top_srcdir)/viewer \ - -I$(top_srcdir)/ccops -I$(top_srcdir)/dict \ - -I$(top_srcdir)/classify -I$(top_srcdir)/display \ - -I$(top_srcdir)/wordrec -I$(top_srcdir)/cutil \ - -I$(top_srcdir)/textord - -include_HEADERS = \ - cnTraining.dsp mfTraining.dsp \ - mergenf.h name2char.h training.h +AM_CPPFLAGS = -I$(top_srcdir)/ccutil -I$(top_srcdir)/ccstruct -I$(top_srcdir)/image -I$(top_srcdir)/viewer -I$(top_srcdir)/ccops -I$(top_srcdir)/dict -I$(top_srcdir)/classify -I$(top_srcdir)/display -I$(top_srcdir)/wordrec -I$(top_srcdir)/cutil -I$(top_srcdir)/textord + + +EXTRA_DIST = training.cpp unicharset_extractor.dsp wordlist2dawg.dsp cnTraining.dsp mfTraining.dsp unicharset_extractor.vcproj wordlist2dawg.vcproj cnTraining.vcproj mfTraining.vcproj + + +include_HEADERS = mergenf.h name2char.h training.h + lib_LIBRARIES = libtesseract_training.a -libtesseract_training_a_SOURCES = \ - name2char.cpp training.cpp +libtesseract_training_a_SOURCES = name2char.cpp + +bin_PROGRAMS = cntraining mftraining unicharset_extractor wordlist2dawg cntraining_SOURCES = cnTraining.cpp -cntraining_LDADD = \ - libtesseract_training.a \ - ../textord/libtesseract_textord.a \ - ../classify/libtesseract_classify.a \ - ../dict/libtesseract_dict.a \ - ../image/libtesseract_image.a \ - ../cutil/libtesseract_cutil.a \ - ../ccstruct/libtesseract_ccstruct.a \ - ../viewer/libtesseract_viewer.a \ - ../ccutil/libtesseract_ccutil.a +cntraining_LDADD = libtesseract_training.a ../textord/libtesseract_textord.a ../classify/libtesseract_classify.a ../dict/libtesseract_dict.a ../image/libtesseract_image.a ../cutil/libtesseract_cutil.a ../ccstruct/libtesseract_ccstruct.a ../viewer/libtesseract_viewer.a ../ccutil/libtesseract_ccutil.a mftraining_SOURCES = mfTraining.cpp mergenf.cpp -mftraining_LDADD = \ - libtesseract_training.a \ - ../textord/libtesseract_textord.a \ - ../classify/libtesseract_classify.a \ - ../dict/libtesseract_dict.a \ - ../image/libtesseract_image.a \ - ../cutil/libtesseract_cutil.a \ - ../ccstruct/libtesseract_ccstruct.a \ - ../viewer/libtesseract_viewer.a \ - ../ccutil/libtesseract_ccutil.a - -all: all-recursive +mftraining_LDADD = libtesseract_training.a ../textord/libtesseract_textord.a ../classify/libtesseract_classify.a ../dict/libtesseract_dict.a ../image/libtesseract_image.a ../cutil/libtesseract_cutil.a ../ccstruct/libtesseract_ccstruct.a ../viewer/libtesseract_viewer.a ../ccutil/libtesseract_ccutil.a + +unicharset_extractor_SOURCES = unicharset_extractor.cpp +unicharset_extractor_LDADD = ../ccutil/libtesseract_ccutil.a + +wordlist2dawg_SOURCES = wordlist2dawg.cpp +wordlist2dawg_LDADD = ../dict/libtesseract_dict.a ../cutil/libtesseract_cutil.a ../ccstruct/libtesseract_ccstruct.a ../viewer/libtesseract_viewer.a ../ccutil/libtesseract_ccutil.a + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_training_a_LIBADD = +libtesseract_training_a_OBJECTS = name2char.o +AR = ar +PROGRAMS = $(bin_PROGRAMS) + +cntraining_OBJECTS = cnTraining.o +cntraining_DEPENDENCIES = libtesseract_training.a \ +../textord/libtesseract_textord.a ../classify/libtesseract_classify.a \ +../dict/libtesseract_dict.a ../image/libtesseract_image.a \ +../cutil/libtesseract_cutil.a ../ccstruct/libtesseract_ccstruct.a \ +../viewer/libtesseract_viewer.a ../ccutil/libtesseract_ccutil.a +cntraining_LDFLAGS = +mftraining_OBJECTS = mfTraining.o mergenf.o +mftraining_DEPENDENCIES = libtesseract_training.a \ +../textord/libtesseract_textord.a ../classify/libtesseract_classify.a \ +../dict/libtesseract_dict.a ../image/libtesseract_image.a \ +../cutil/libtesseract_cutil.a ../ccstruct/libtesseract_ccstruct.a \ +../viewer/libtesseract_viewer.a ../ccutil/libtesseract_ccutil.a +mftraining_LDFLAGS = +unicharset_extractor_OBJECTS = unicharset_extractor.o +unicharset_extractor_DEPENDENCIES = ../ccutil/libtesseract_ccutil.a +unicharset_extractor_LDFLAGS = +wordlist2dawg_OBJECTS = wordlist2dawg.o +wordlist2dawg_DEPENDENCIES = ../dict/libtesseract_dict.a \ +../cutil/libtesseract_cutil.a ../ccstruct/libtesseract_ccstruct.a \ +../viewer/libtesseract_viewer.a ../ccutil/libtesseract_ccutil.a +wordlist2dawg_LDFLAGS = +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/cnTraining.P .deps/mergenf.P .deps/mfTraining.P \ +.deps/name2char.P .deps/unicharset_extractor.P .deps/wordlist2dawg.P +SOURCES = $(libtesseract_training_a_SOURCES) $(cntraining_SOURCES) $(mftraining_SOURCES) $(unicharset_extractor_SOURCES) $(wordlist2dawg_SOURCES) +OBJECTS = $(libtesseract_training_a_OBJECTS) $(cntraining_OBJECTS) $(mftraining_OBJECTS) $(unicharset_extractor_OBJECTS) $(wordlist2dawg_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu training/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu training/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu training/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_training.a: $(libtesseract_training_a_OBJECTS) $(libtesseract_training_a_DEPENDENCIES) +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libtesseract_training.a: $(libtesseract_training_a_OBJECTS) $(libtesseract_training_a_DEPENDENCIES) -rm -f libtesseract_training.a - $(libtesseract_training_a_AR) libtesseract_training.a $(libtesseract_training_a_OBJECTS) $(libtesseract_training_a_LIBADD) + $(AR) cru libtesseract_training.a $(libtesseract_training_a_OBJECTS) $(libtesseract_training_a_LIBADD) $(RANLIB) libtesseract_training.a + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ done -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -cntraining$(EXEEXT): $(cntraining_OBJECTS) $(cntraining_DEPENDENCIES) - @rm -f cntraining$(EXEEXT) +cntraining: $(cntraining_OBJECTS) $(cntraining_DEPENDENCIES) + @rm -f cntraining $(CXXLINK) $(cntraining_LDFLAGS) $(cntraining_OBJECTS) $(cntraining_LDADD) $(LIBS) -mftraining$(EXEEXT): $(mftraining_OBJECTS) $(mftraining_DEPENDENCIES) - @rm -f mftraining$(EXEEXT) - $(CXXLINK) $(mftraining_LDFLAGS) $(mftraining_OBJECTS) $(mftraining_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) -distclean-compile: - -rm -f *.tab.c +mftraining: $(mftraining_OBJECTS) $(mftraining_DEPENDENCIES) + @rm -f mftraining + $(CXXLINK) $(mftraining_LDFLAGS) $(mftraining_OBJECTS) $(mftraining_LDADD) $(LIBS) -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cnTraining.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mergenf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mfTraining.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/name2char.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/training.Po@am__quote@ +unicharset_extractor: $(unicharset_extractor_OBJECTS) $(unicharset_extractor_DEPENDENCIES) + @rm -f unicharset_extractor + $(CXXLINK) $(unicharset_extractor_LDFLAGS) $(unicharset_extractor_OBJECTS) $(unicharset_extractor_LDADD) $(LIBS) +wordlist2dawg: $(wordlist2dawg_OBJECTS) $(wordlist2dawg_DEPENDENCIES) + @rm -f wordlist2dawg + $(CXXLINK) $(wordlist2dawg_LDFLAGS) $(wordlist2dawg_OBJECTS) $(wordlist2dawg_LDADD) $(LIBS) .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -399,14 +284,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -418,7 +302,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -426,24 +310,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -453,221 +326,214 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = training distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu training/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-binPROGRAMS install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-binPROGRAMS \ + uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \ + $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-binPROGRAMS clean-generic clean-libLIBRARIES \ - mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-binPROGRAMS install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-binPROGRAMS mostlyclean-tags \ + mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-binPROGRAMS clean-tags \ + clean-depend clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile \ + distclean-binPROGRAMS distclean-tags distclean-depend \ + distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-binPROGRAMS \ + maintainer-clean-tags maintainer-clean-depend \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile mostlyclean-binPROGRAMS \ +distclean-binPROGRAMS clean-binPROGRAMS maintainer-clean-binPROGRAMS \ +uninstall-binPROGRAMS install-binPROGRAMS uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-binPROGRAMS clean-generic clean-libLIBRARIES \ - clean-recursive ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-recursive \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/training/wordlist2dawg.cpp b/training/wordlist2dawg.cpp new file mode 100644 index 0000000000..453244a28f --- /dev/null +++ b/training/wordlist2dawg.cpp @@ -0,0 +1,62 @@ +/////////////////////////////////////////////////////////////////////// +// File: wordlist2dawg.cpp +// Description: Program to generate a DAWG from a word list file +// Author: Thomas Kielbus +// Created: Thu May 10 18:11:42 PDT 2007 +// +// (C) Copyright 2006, Google Inc. +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/////////////////////////////////////////////////////////////////////// + +// Given a file that contains a list of words (one word per line) this program +// generates the corresponding squished DAWG file. + +#include + +#include "dawg.h" +#include "makedawg.h" +#include "reduce.h" +#include "emalloc.h" + +int main(int argc, char** argv) { + + if (argc != 3) { + printf("Usage: %s word_list_file dawg_file\n", argv[0]); + return 1; + } + + const char* wordlist_filename = argv[1]; + const char* dawg_filename = argv[2]; + + EDGE_ARRAY dawg; + INT32 max_num_edges = 20000000; + INT32 reserved_edges = 1000000; + + dawg = (EDGE_ARRAY) Emalloc(sizeof (EDGE_RECORD) * max_num_edges); + if (dawg == NULL) { + printf("error: Could not allocate enough memory for DAWG "); + printf("(%d,%d bytes needed)\n", + sizeof (EDGE_RECORD) * max_num_edges / 1000, + sizeof (EDGE_RECORD) * max_num_edges % 1000); + exit(1); + } + + printf("Building DAWG from word list in file, '%s'\n", wordlist_filename); + read_word_list(wordlist_filename, dawg, max_num_edges, reserved_edges); + + trie_to_dawg(dawg, max_num_edges, reserved_edges); + + printf("Writing squished DAWG file, '%s'\n", dawg_filename); + write_squished_dawg(dawg_filename, dawg, max_num_edges, reserved_edges); + + return 0; +} diff --git a/viewer/Makefile.in b/viewer/Makefile.in index d856b286d3..8626c21016 100644 --- a/viewer/Makefile.in +++ b/viewer/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,297 +10,190 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = viewer -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_viewer_a_AR = $(AR) $(ARFLAGS) -libtesseract_viewer_a_LIBADD = -am_libtesseract_viewer_a_OBJECTS = evntlst.$(OBJEXT) grphics.$(OBJEXT) \ - evnts.$(OBJEXT) showim.$(OBJEXT) grphshm.$(OBJEXT) -libtesseract_viewer_a_OBJECTS = $(am_libtesseract_viewer_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_viewer_a_SOURCES) -DIST_SOURCES = $(libtesseract_viewer_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = AM_CPPFLAGS = -I$(top_srcdir)/image -I$(top_srcdir)/ccutil -include_HEADERS = \ - evntlst.h evnts.h grphics.h grphshm.h sbgconst.h sbgdefs.h \ - sbgtypes.h showim.h + +include_HEADERS = evntlst.h evnts.h grphics.h grphshm.h sbgconst.h sbgdefs.h sbgtypes.h showim.h + lib_LIBRARIES = libtesseract_viewer.a -libtesseract_viewer_a_SOURCES = \ - evntlst.cpp grphics.cpp evnts.cpp showim.cpp grphshm.cpp +libtesseract_viewer_a_SOURCES = evntlst.cpp grphics.cpp evnts.cpp showim.cpp grphshm.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) -all: all-recursive +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_viewer_a_LIBADD = +libtesseract_viewer_a_OBJECTS = evntlst.o grphics.o evnts.o showim.o \ +grphshm.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/evntlst.P .deps/evnts.P .deps/grphics.P \ +.deps/grphshm.P .deps/showim.P +SOURCES = $(libtesseract_viewer_a_SOURCES) +OBJECTS = $(libtesseract_viewer_a_OBJECTS) + +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu viewer/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu viewer/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu viewer/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_viewer.a: $(libtesseract_viewer_a_OBJECTS) $(libtesseract_viewer_a_DEPENDENCIES) - -rm -f libtesseract_viewer.a - $(libtesseract_viewer_a_AR) libtesseract_viewer.a $(libtesseract_viewer_a_OBJECTS) $(libtesseract_viewer_a_LIBADD) - $(RANLIB) libtesseract_viewer.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evntlst.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evnts.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grphics.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grphshm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/showim.Po@am__quote@ +maintainer-clean-compile: +libtesseract_viewer.a: $(libtesseract_viewer_a_OBJECTS) $(libtesseract_viewer_a_DEPENDENCIES) + -rm -f libtesseract_viewer.a + $(AR) cru libtesseract_viewer.a $(libtesseract_viewer_a_OBJECTS) $(libtesseract_viewer_a_LIBADD) + $(RANLIB) libtesseract_viewer.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -311,14 +202,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -330,7 +220,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -338,24 +228,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -365,218 +244,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = viewer distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu viewer/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/wordrec/Makefile.in b/wordrec/Makefile.in index 2f445e3e4c..a12959c58a 100644 --- a/wordrec/Makefile.in +++ b/wordrec/Makefile.in @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,344 +10,200 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = wordrec -DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config_auto.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -libLIBRARIES_INSTALL = $(INSTALL_DATA) -LIBRARIES = $(lib_LIBRARIES) -AR = ar -ARFLAGS = cru -libtesseract_wordrec_a_AR = $(AR) $(ARFLAGS) -libtesseract_wordrec_a_LIBADD = -am_libtesseract_wordrec_a_OBJECTS = associate.$(OBJEXT) \ - badwords.$(OBJEXT) bestfirst.$(OBJEXT) chop.$(OBJEXT) \ - chopper.$(OBJEXT) closed.$(OBJEXT) djmenus.$(OBJEXT) \ - drawfx.$(OBJEXT) findseam.$(OBJEXT) gradechop.$(OBJEXT) \ - heuristic.$(OBJEXT) makechop.$(OBJEXT) matchtab.$(OBJEXT) \ - matrix.$(OBJEXT) metrics.$(OBJEXT) mfvars.$(OBJEXT) \ - msmenus.$(OBJEXT) olutil.$(OBJEXT) outlines.$(OBJEXT) \ - pieces.$(OBJEXT) plotedges.$(OBJEXT) plotseg.$(OBJEXT) \ - render.$(OBJEXT) seam.$(OBJEXT) split.$(OBJEXT) \ - tally.$(OBJEXT) tessinit.$(OBJEXT) tface.$(OBJEXT) \ - wordclass.$(OBJEXT) -libtesseract_wordrec_a_OBJECTS = $(am_libtesseract_wordrec_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -SOURCES = $(libtesseract_wordrec_a_SOURCES) -DIST_SOURCES = $(libtesseract_wordrec_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(include_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_LIBTIFF_FALSE = @HAVE_LIBTIFF_FALSE@ -HAVE_LIBTIFF_TRUE = @HAVE_LIBTIFF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@ -LIBTIFF_LIBS = @LIBTIFF_LIBS@ -LTLIBOBJS = @LTLIBOBJS@ +HAVE_LIB = @HAVE_LIB@ +LIB = @LIB@ +LTLIB = @LTLIB@ MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_DATE = @PACKAGE_DATE@ PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_YEAR = @PACKAGE_YEAR@ -PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USING_CL_FALSE = @USING_CL_FALSE@ -USING_CL_TRUE = @USING_CL_TRUE@ VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ + SUBDIRS = -AM_CPPFLAGS = \ - -I$(top_srcdir)/ccstruct -I$(top_srcdir)/ccutil \ - -I$(top_srcdir)/cutil -I$(top_srcdir)/classify \ - -I$(top_srcdir)/image -I$(top_srcdir)/dict \ - -I$(top_srcdir)/viewer - -include_HEADERS = \ - associate.h badwords.h bestfirst.h charsample.h chop.h \ - chopper.h closed.h djmenus.h drawfx.h findseam.h gradechop.h \ - heuristic.h makechop.h matchtab.h matrix.h measure.h metrics.h \ - mfvars.h msmenus.h olutil.h outlines.h pieces.h plotedges.h \ - plotseg.h render.h seam.h split.h tally.h tessinit.h tface.h \ - wordclass.h +AM_CPPFLAGS = -I$(top_srcdir)/ccstruct -I$(top_srcdir)/ccutil -I$(top_srcdir)/cutil -I$(top_srcdir)/classify -I$(top_srcdir)/image -I$(top_srcdir)/dict -I$(top_srcdir)/viewer + + +include_HEADERS = associate.h badwords.h bestfirst.h charsample.h chop.h chopper.h closed.h djmenus.h drawfx.h findseam.h gradechop.h heuristic.h makechop.h matchtab.h matrix.h measure.h metrics.h mfvars.h msmenus.h olutil.h outlines.h pieces.h plotedges.h plotseg.h render.h seam.h split.h tally.h tessinit.h tface.h wordclass.h + lib_LIBRARIES = libtesseract_wordrec.a -libtesseract_wordrec_a_SOURCES = \ - associate.cpp badwords.cpp bestfirst.cpp chop.cpp chopper.cpp \ - closed.cpp djmenus.cpp drawfx.cpp findseam.cpp gradechop.cpp \ - heuristic.cpp makechop.cpp matchtab.cpp matrix.cpp metrics.cpp \ - mfvars.cpp msmenus.cpp olutil.cpp outlines.cpp pieces.cpp \ - plotedges.cpp plotseg.cpp render.cpp seam.cpp split.cpp \ - tally.cpp tessinit.cpp tface.cpp wordclass.cpp +libtesseract_wordrec_a_SOURCES = associate.cpp badwords.cpp bestfirst.cpp chop.cpp chopper.cpp closed.cpp djmenus.cpp drawfx.cpp findseam.cpp gradechop.cpp heuristic.cpp makechop.cpp matchtab.cpp matrix.cpp metrics.cpp mfvars.cpp msmenus.cpp olutil.cpp outlines.cpp pieces.cpp plotedges.cpp plotseg.cpp render.cpp seam.cpp split.cpp tally.cpp tessinit.cpp tface.cpp wordclass.cpp + +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = ../config_auto.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + -all: all-recursive +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libtesseract_wordrec_a_LIBADD = +libtesseract_wordrec_a_OBJECTS = associate.o badwords.o bestfirst.o \ +chop.o chopper.o closed.o djmenus.o drawfx.o findseam.o gradechop.o \ +heuristic.o makechop.o matchtab.o matrix.o metrics.o mfvars.o msmenus.o \ +olutil.o outlines.o pieces.o plotedges.o plotseg.o render.o seam.o \ +split.o tally.o tessinit.o tface.o wordclass.o +AR = ar +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/associate.P .deps/badwords.P .deps/bestfirst.P \ +.deps/chop.P .deps/chopper.P .deps/closed.P .deps/djmenus.P \ +.deps/drawfx.P .deps/findseam.P .deps/gradechop.P .deps/heuristic.P \ +.deps/makechop.P .deps/matchtab.P .deps/matrix.P .deps/metrics.P \ +.deps/mfvars.P .deps/msmenus.P .deps/olutil.P .deps/outlines.P \ +.deps/pieces.P .deps/plotedges.P .deps/plotseg.P .deps/render.P \ +.deps/seam.P .deps/split.P .deps/tally.P .deps/tessinit.P .deps/tface.P \ +.deps/wordclass.P +SOURCES = $(libtesseract_wordrec_a_SOURCES) +OBJECTS = $(libtesseract_wordrec_a_OBJECTS) +all: all-redirect .SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu wordrec/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu wordrec/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +.SUFFIXES: .S .c .cpp .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu wordrec/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + install-libLIBRARIES: $(lib_LIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done @$(POST_INSTALL) @list='$(lib_LIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - p=$(am__strip_dir) \ - echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ - $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ else :; fi; \ done uninstall-libLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - rm -f "$(DESTDIR)$(libdir)/$$p"; \ + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ done -clean-libLIBRARIES: - -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) -libtesseract_wordrec.a: $(libtesseract_wordrec_a_OBJECTS) $(libtesseract_wordrec_a_DEPENDENCIES) - -rm -f libtesseract_wordrec.a - $(libtesseract_wordrec_a_AR) libtesseract_wordrec.a $(libtesseract_wordrec_a_OBJECTS) $(libtesseract_wordrec_a_LIBADD) - $(RANLIB) libtesseract_wordrec.a +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< mostlyclean-compile: - -rm -f *.$(OBJEXT) + -rm -f *.o core *.core + +clean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/associate.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/badwords.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bestfirst.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chopper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/djmenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drawfx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findseam.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gradechop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/heuristic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makechop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matchtab.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrix.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metrics.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mfvars.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msmenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/olutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/outlines.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pieces.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plotedges.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plotseg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/render.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seam.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/split.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tally.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tessinit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tface.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wordclass.Po@am__quote@ +maintainer-clean-compile: +libtesseract_wordrec.a: $(libtesseract_wordrec_a_OBJECTS) $(libtesseract_wordrec_a_DEPENDENCIES) + -rm -f libtesseract_wordrec.a + $(AR) cru libtesseract_wordrec.a $(libtesseract_wordrec_a_OBJECTS) $(libtesseract_wordrec_a_LIBADD) + $(RANLIB) libtesseract_wordrec.a .cpp.o: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -uninstall-info-am: + $(CXXCOMPILE) -c $< + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" + $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(includedir)/$$f"; \ + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -358,14 +212,13 @@ uninstall-includeHEADERS: # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -377,7 +230,7 @@ $(RECURSIVE_TARGETS): local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -385,24 +238,13 @@ $(RECURSIVE_TARGETS): mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -412,218 +254,208 @@ maintainer-clean-recursive: local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + +mostlyclean-tags: -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(subdir) + +subdir = wordrec distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu wordrec/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: install-libLIBRARIES install-exec: install-exec-recursive + +install-data-am: install-includeHEADERS install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS - -install-exec-am: install-libLIBRARIES - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am -pdf: pdf-recursive +clean: clean-recursive -pdf-am: +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am -ps: ps-recursive +distclean: distclean-recursive -ps-am: +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -uninstall-am: uninstall-includeHEADERS uninstall-info-am \ - uninstall-libLIBRARIES +maintainer-clean: maintainer-clean-recursive -uninstall-info: uninstall-info-recursive +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libLIBRARIES clean-recursive ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am \ - install-includeHEADERS install-info install-info-am \ - install-libLIBRARIES install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-info-am uninstall-libLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/wordrec/wordclass.cpp b/wordrec/wordclass.cpp index aad9d9d367..50ac525404 100644 --- a/wordrec/wordclass.cpp +++ b/wordrec/wordclass.cpp @@ -42,8 +42,9 @@ #include "context.h" #include "badwords.h" #include "callcpp.h" +#include -extern TBLOB *newblob(); +extern TBLOB *newblob(); /*---------------------------------------------------------------------- Variables @@ -97,7 +98,7 @@ CHOICES classify_blob(TBLOB *pblob, #ifndef GRAPHICS_DISABLED if (display_all_blobs) - display_blob(blob, color); + display_blob(blob, color); #endif rating = get_match (blob); if (rating == NIL) { @@ -105,6 +106,11 @@ CHOICES classify_blob(TBLOB *pblob, old_index = blob_index; //?cast to int* blob_type = compare_states (best_state, this_state, (int *) &blob_index); + // TODO(tkielbus) Remove this assert and reactivate code. + // Manage the blob_answer, word_answer mechanism. + // (convert or remove because it doesnt seem to be used anymore) + assert(0); +#if 0 blob_answer = word_answer[blob_index]; if (blob_answer < '!') fprintf (matcher_fp, @@ -113,21 +119,22 @@ CHOICES classify_blob(TBLOB *pblob, INT32FORMAT ", word=%s\n", best_state->part1, best_state->part2, this_state->part1, this_state->part2, bits_in_states, old_index, blob_index, word_answer); +#endif } else blob_type = 0; rating = /*(*blob_matchers [fx]) */ (CHOICES) call_matcher (pblob, blob, nblob, NULL, row); - put_match(blob, rating); + put_match(blob, rating); } #ifndef GRAPHICS_DISABLED if (display_ratings && string) - print_choices(string, rating); + print_choices(string, rating); if (blob_pause) - window_wait(blob_window); + window_wait(blob_window); #endif return (rating); @@ -152,7 +159,7 @@ void write_text_files(TWERD *word, fprintf (rawfile, "\n"); if (raw_choice && strlen (raw_choice)) { fprintf (rawfile, "%s ", raw_choice); - fflush(rawfile); + fflush(rawfile); } } /* Text file output */ @@ -163,15 +170,15 @@ void write_text_files(TWERD *word, for (x = 0; x < word->blanks; x++) fprintf (textfile, " "); if (!firstpass) - fprintf(textfile, BOLD_ON); + fprintf(textfile, BOLD_ON); if (!good_word) - fprintf(textfile, UNDERLINE_ON); + fprintf(textfile, UNDERLINE_ON); fprintf (textfile, "%s", word->guess); if (!good_word) - fprintf(textfile, UNDERLINE_OFF); + fprintf(textfile, UNDERLINE_OFF); if (!firstpass) - fprintf(textfile, BOLD_OFF); - fflush(textfile); + fprintf(textfile, BOLD_OFF); + fflush(textfile); } } /* Global counters */ @@ -209,7 +216,7 @@ void save_answer(TWERD *word, /* First pass */ if (string) { /* Got answer */ - add_document_word(best_choice); + add_document_word(best_choice); word->guess = string; fix_quotes (word->guess); @@ -224,7 +231,7 @@ void save_answer(TWERD *word, word->guess = strsave (raw_answer); word->guess[strlen (string)] = 0; if (string) { - strfree(string); + strfree(string); class_string (best_choice) = NULL; } } @@ -270,7 +277,7 @@ void save_answer(TWERD *word, cprintf ("%s ", word->guess); else cprintf ("%s ", raw_answer); - fflush(stdout); + fflush(stdout); } last_row = row;