mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-11-24 19:19:05 +08:00
d39cb38ab8
git-svn-id: https://tesseract-ocr.googlecode.com/svn/trunk@722 d0cd1f9f-072b-0410-8dd7-cf729c803f20
492 lines
14 KiB
Plaintext
492 lines
14 KiB
Plaintext
# -*-Shell-script-*-
|
|
#
|
|
# Copyright (c) Luc Vincent
|
|
|
|
# ----------------------------------------
|
|
# Initialization
|
|
# ----------------------------------------
|
|
|
|
AC_PREREQ(2.50)
|
|
AC_INIT([tesseract], [3.02], [http://code.google.com/p/tesseract-ocr/issues/list])
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AC_REVISION($Id: configure.ac,v 1.4 2007/02/02 22:38:17 theraysmith Exp $)
|
|
AC_CONFIG_AUX_DIR(config)
|
|
AC_CONFIG_SRCDIR(api/tesseractmain.cpp)
|
|
AC_PREFIX_DEFAULT(/usr/local)
|
|
|
|
# Define date of package, etc. Could be useful in auto-generated
|
|
# documentation.
|
|
# TODO(luc) Generate good documentation using doxygen or equivalent
|
|
PACKAGE_YEAR=2012
|
|
PACKAGE_DATE="02/01"
|
|
|
|
AC_DEFINE_UNQUOTED(PACKAGE_NAME,["${PACKAGE_NAME}"],[Name of package])
|
|
AC_DEFINE_UNQUOTED(PACKAGE_VERSION,["${PACKAGE_VERSION}"],[Version number])
|
|
AC_DEFINE_UNQUOTED(PACKAGE_YEAR,"$PACKAGE_YEAR",[Official year for this release])
|
|
AC_DEFINE_UNQUOTED(PACKAGE_DATE,"$PACKAGE_DATE",[Official date of release])
|
|
|
|
AC_SUBST(PACKAGE_NAME)
|
|
AC_SUBST(PACKAGE_VERSION)
|
|
AC_SUBST(PACKAGE_YEAR)
|
|
AC_SUBST(PACKAGE_DATE)
|
|
|
|
GENERIC_LIBRARY_NAME=tesseract
|
|
|
|
# Release versioning
|
|
GENERIC_MAJOR_VERSION=3
|
|
GENERIC_MINOR_VERSION=2
|
|
GENERIC_MICRO_VERSION=0
|
|
|
|
# API version (often = GENERIC_MAJOR_VERSION.GENERIC_MINOR_VERSION)
|
|
GENERIC_API_VERSION=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION
|
|
GENERIC_LIBRARY_VERSION=$GENERIC_MAJOR_VERSION:$GENERIC_MINOR_VERSION
|
|
AC_SUBST(GENERIC_API_VERSION)
|
|
AC_SUBST(GENERIC_MAJOR_VERSION)
|
|
|
|
AC_SUBST(GENERIC_LIBRARY_VERSION)
|
|
PACKAGE=$GENERIC_LIBRARY_NAME
|
|
AC_SUBST(GENERIC_LIBRARY_NAME)
|
|
|
|
GENERIC_VERSION=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION.$GENERIC_MICRO_VERSION
|
|
GENERIC_RELEASE=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION
|
|
AC_SUBST(GENERIC_RELEASE)
|
|
AC_SUBST(GENERIC_VERSION)
|
|
|
|
# default conditional
|
|
AM_CONDITIONAL(MINGW, false)
|
|
AM_CONDITIONAL(GRAPHICS_DISABLED, false)
|
|
|
|
#
|
|
# Platform specific setup
|
|
#
|
|
#############################
|
|
AC_CANONICAL_HOST
|
|
case $host_os in
|
|
mingw32*)
|
|
AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
|
|
AM_CONDITIONAL(MINGW, true)
|
|
#AC_SUBST([AM_CPPFLAGS], ["-DWINDLLNAME=\"lib$GENERIC_LIBRARY_NAME\""])
|
|
#AC_SUBST([AM_CPPFLAGS], ["-D__BLOB_T_DEFINED -DWINDLLNAME=\"lib$GENERIC_LIBRARY_NAME\""])
|
|
AC_SUBST([AM_CPPFLAGS], ["-D__BLOB_T_DEFINED"])
|
|
AC_SUBST([AM_LDFLAGS], ['-Wl,-no-undefined -Wl,--as-needed'])
|
|
#AM_LDFLAGS='-Wl,-no-undefined -Wl,--as-needed'
|
|
;;
|
|
*)
|
|
# default
|
|
;;
|
|
esac
|
|
|
|
includedir="${includedir}/tesseract"
|
|
|
|
AC_ARG_WITH(extra-includes,
|
|
AC_HELP_STRING([--with-extra-includes=DIR],
|
|
[Define an additional directory for include files]),
|
|
[ if test -d "$withval" ; then
|
|
CFLAGS="$CFLAGS -I$withval"
|
|
else
|
|
AC_MSG_ERROR([Cannot stat directory $withval])
|
|
fi ] )
|
|
|
|
AC_ARG_WITH(extra-libraries,
|
|
AC_HELP_STRING([--with-extra-libraries=DIR],
|
|
[Define an additional directory for library files]),
|
|
[ if test -d "$withval" ; then
|
|
LDFLAGS="$LDFLAGS -L$withval"
|
|
else
|
|
AC_MSG_ERROR([Cannot stat directory $withval])
|
|
fi ] )
|
|
|
|
AC_MSG_CHECKING(--enable-graphics argument)
|
|
AC_ARG_ENABLE([graphics],
|
|
[AC_HELP_STRING([--enable-graphics],[enable graphics (ScrollView) (default)])
|
|
AC_HELP_STRING([--disable-graphics],[disable graphics (ScrollView)])],
|
|
[enable_graphics=$enableval],
|
|
[enable_graphics="yes"])
|
|
AC_MSG_RESULT($enable_graphics)
|
|
if test "$enable_graphics" = "no"; then
|
|
AC_DEFINE([GRAPHICS_DISABLED], [], [Disable graphics])
|
|
AM_CONDITIONAL(GRAPHICS_DISABLED, true)
|
|
fi
|
|
|
|
# check whether to build embedded version
|
|
AC_MSG_CHECKING(--enable-embedded argument)
|
|
AC_ARG_ENABLE([embedded],
|
|
[ --enable-embedded enable embedded build (default=no)],
|
|
[enable_embedded=$enableval],
|
|
[enable_embedded="no"])
|
|
AC_MSG_RESULT($enable_embedded)
|
|
AM_CONDITIONAL([EMBEDDED], [test "$enable_embedded" = "yes"])
|
|
if test "$enable_embedded" = "yes"; then
|
|
AC_SUBST([AM_CPPFLAGS], [-DEMBEDDED])
|
|
fi
|
|
|
|
# check whether to build tesseract with -fvisibility=hidden -fvisibility-inlines-hidden
|
|
# http://gcc.gnu.org/wiki/Visibility
|
|
# http://groups.google.com/group/tesseract-dev/browse_thread/thread/976645ae98189127
|
|
AC_MSG_CHECKING(--enable-visibility argument)
|
|
AC_ARG_ENABLE([visibility],
|
|
[AC_HELP_STRING([--enable-visibility],[enable experimental build with fvisibility (default=no)])],
|
|
[enable_visibility=$enableval],
|
|
[enable_visibility="no"])
|
|
AC_MSG_RESULT($enable_visibility)
|
|
AM_CONDITIONAL([VISIBILITY], [test "$enable_visibility" = "yes"])
|
|
|
|
# check whether to build multiple libraries
|
|
AC_MSG_CHECKING(--enable-multiple-libraries argument)
|
|
AC_ARG_ENABLE([multiple-libraries],
|
|
[AC_HELP_STRING([--enable-multiple-libraries],[enable multiple libraries (default=no)])],
|
|
[enable_mlibs=$enableval],
|
|
[enable_mlibs="no"])
|
|
AC_MSG_RESULT($enable_mlibs)
|
|
AM_CONDITIONAL([USING_MULTIPLELIBS], [test "$enable_mlibs" = "yes"])
|
|
|
|
# Check if tessdata-prefix is disabled
|
|
AC_MSG_CHECKING(whether to use tessdata-prefix)
|
|
AC_ARG_ENABLE(tessdata-prefix,
|
|
[AC_HELP_STRING([--disable-tessdata-prefix],
|
|
[dont set TESSDATA-PREFIX during compile])],
|
|
[tessdata_prefix="no"], [tessdata_prefix="yes"])
|
|
AC_MSG_RESULT($tessdata_prefix)
|
|
AM_CONDITIONAL([NO_TESSDATA_PREFIX], [test "$tessdata_prefix" = "no"])
|
|
|
|
#localedir='${prefix}/share/locale'
|
|
|
|
# Not used yet, so disable
|
|
#AC_ARG_ENABLE([gettext],
|
|
# [ --enable-gettext Enable gettext (default).],
|
|
# [enable_gettext=$enableval],
|
|
# [enable_gettext="yes"])
|
|
#AC_MSG_RESULT($enable_gettext)
|
|
#if test "$enable_gettext" = "yes"; then
|
|
# AM_GNU_GETTEXT_VERSION([0.17])
|
|
# AM_GNU_GETTEXT([external])
|
|
# AC_SUBST(localedir)
|
|
#else
|
|
# AC_DEFINE([NO_GETTEXT], [], [Disable Gettext])
|
|
#fi
|
|
#AM_CONDITIONAL([USING_GETTEXT], [test "$enable_gettext" = "yes"])
|
|
|
|
# Always look into a "gnu" directory.
|
|
curwd=`pwd`
|
|
if test -d $curwd/gnu/include ; then
|
|
CPPFLAGS="$CPPFLAGS -I$curwd/gnu/include"
|
|
fi
|
|
if test -d $curwd/gnu/lib ; then
|
|
LDFLAGS="$LDFLAGS -L$curwd/gnu/lib"
|
|
fi
|
|
|
|
# Special cases
|
|
case "$host" in
|
|
*-darwin* | *-macos10*)
|
|
if test -d /opt/local ; then
|
|
CPPFLAGS="$CPPFLAGS -I/opt/local/include"
|
|
LDFLAGS="$LDFLAGS -L/opt/local/lib"
|
|
elif test -d /sw ; then
|
|
CPPFLAGS="$CPPFLAGS -I/sw/include"
|
|
LDFLAGS="$LDFLAGS -L/sw/lib"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# ----------------------------------------
|
|
# Check Compiler Characteristics and
|
|
# configure automake. The two appear to
|
|
# be intimately linked...
|
|
# ----------------------------------------
|
|
|
|
# Define order of compilers
|
|
AC_PROG_CXX(cl.exe g++)
|
|
# Not needed
|
|
# AC_PROG_CC
|
|
|
|
AC_PROG_LIBTOOL
|
|
|
|
# Automake configuration
|
|
# ----------------------------------------
|
|
|
|
# Note: may need to configure automake to use ZIP as a distribution
|
|
# format because of an apparent bug with GZIP, which results in bogus
|
|
# archives.
|
|
# TODO(luc) Resolve this issue.
|
|
#AM_INIT_AUTOMAKE(dist-zip)
|
|
AM_INIT_AUTOMAKE
|
|
AM_CONFIG_HEADER(config_auto.h:config/config.h.in)
|
|
#AM_PROG_CC_C_O
|
|
AM_MAINTAINER_MODE
|
|
# Need to tell automake if Visual C++ is being used:
|
|
AM_CONDITIONAL(USING_CL, test "x${CC}" = 'xcl.exe' )
|
|
|
|
# Additional checking of compiler characteristics
|
|
# ----------------------------------------
|
|
|
|
# Check Endianness. If Big Endian, this will define WORDS_BIGENDIAN
|
|
# See also at end of this file, where we define INTEL_BYTE_ORDER
|
|
# or MOTOROLA_BYTE_ORDER.
|
|
AC_C_BIGENDIAN
|
|
|
|
|
|
# ----------------------------------------
|
|
# Check for programs we need
|
|
# ----------------------------------------
|
|
|
|
# Check where all the following programs are and set
|
|
# variables accordingly:
|
|
LT_INIT
|
|
# AC_PROG_LN_S
|
|
# AC_PATH_PROG(MV, mv)
|
|
# AC_PATH_PROG(CP, cp)
|
|
# AC_PATH_PROG(RM, rm)
|
|
# AC_PATH_PROG(AR, ar)
|
|
# AC_PATH_PROG(TOUCH, touch)
|
|
# AC_PATH_PROG(SED, sed)
|
|
# AC_PATH_PROG(BASH, bash, ,[$PATH:/usr/bin:/util/tools/bin])
|
|
# # To use substitution in makefiles, use something like:
|
|
# AC_SUBST(BASH)
|
|
|
|
# TODO(luc) Handle documentation. None of the following
|
|
# is really needed until then
|
|
#
|
|
# AC_PROG_DOXYGEN_VERSION(1.3.2,[DOXYGEN_OK=1])
|
|
# AC_PATH_PROG(DOT, dot)
|
|
# AC_PATH_PROG(LATEX, latex)
|
|
# AC_PATH_PROG(DVIPS, dvips)
|
|
# AC_PATH_PROG(MAKEINDEX, makeindex)
|
|
# AC_PATH_PROG(PDFLATEX, pdflatex)
|
|
# AC_PATH_PROG(GZIP, gzip)
|
|
#
|
|
# if test -z "$DOXYGEN_OK" -o -z "$DOT"; then
|
|
# AC_MSG_WARN([------------------------------------
|
|
# *** Disabling automatic documentation generation for this
|
|
# *** package. Please check that you have 'doxygen' (version
|
|
# *** $ac_doxygen_version or later) and 'graphviz' (aka, 'dot')
|
|
# *** installed on your system. In addition, to generate
|
|
# *** PostScript and PDF documentation, you will need to have
|
|
# *** LaTeX and PdfLaTeX respectively. Re-run this configuration
|
|
# *** script after you have updated your environment.
|
|
# --------------------------------------------------------])
|
|
#
|
|
# # We have appropriate version of doxygen and dot, so we
|
|
# # can generate documentation. It remains to be seen whether
|
|
# # we can generate PDF and PostScript documentation..
|
|
# else
|
|
# GENERATE_DOCUMENTATION="true"
|
|
#
|
|
# # Determine if PostScript documentation is generated:
|
|
# if test -z "$LATEX" -o -z "$DVIPS" -o -z "$MAKEINDEX"; then
|
|
# AC_MSG_WARN([Disabling generation of PostScript documentation])
|
|
# else
|
|
# GENERATE_PS_DOCUMENTATION="true"
|
|
# fi
|
|
#
|
|
# # Determine if PDF documentation is generated:
|
|
# if test -z "$PDFLATEX" -o -z "$MAKEINDEX"; then
|
|
# AC_MSG_WARN([Disabling generation of PDF documentation])
|
|
# else
|
|
# GENERATE_PDF_DOCUMENTATION="true"
|
|
# fi
|
|
# fi
|
|
#
|
|
# # These substitutions could be inside the 'else'
|
|
# # conditionals above, but it is not necessary and would
|
|
# # only cause some confusion...
|
|
# AC_SUBST(DOXYGEN)
|
|
# AC_SUBST(DOT)
|
|
# AC_SUBST(LATEX)
|
|
# AC_SUBST(DVIPS)
|
|
# AC_SUBST(MAKEINDEX)
|
|
# AC_SUBST(PDFLATEX)
|
|
# AC_SUBST(GZIP)
|
|
#
|
|
# # Adjust makefiles based on the kind of documentation that
|
|
# # is being generated,
|
|
# AM_CONDITIONAL(GENERATE_DOCUMENTATION, test -n "$GENERATE_DOCUMENTATION")
|
|
# AM_CONDITIONAL(GENERATE_PS_DOCUMENTATION, test -n "$GENERATE_PS_DOCUMENTATION")
|
|
# AM_CONDITIONAL(GENERATE_PDF_DOCUMENTATION, test -n "$GENERATE_PDF_DOCUMENTATION")
|
|
|
|
|
|
# Test for GNUWIN32 tools (only useful under windows)
|
|
# AC_PATH_GNUWIN32
|
|
|
|
# ----------------------------------------
|
|
# C++ related options
|
|
# ----------------------------------------
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
# Enable --enable-debug or --disable-debug and set
|
|
# compile options accordingly. We are supposed to be either
|
|
# in debug mode or in optimize mode. Note that in debug mode,
|
|
# DEBUG_MODE will be set by this macro
|
|
# AC_CXX_OPTIMIZE
|
|
# AC_CXX_BOOL
|
|
# AC_CXX_TYPENAME
|
|
# AC_CXX_STDINCLUDES
|
|
# AC_CXX_RPO
|
|
|
|
# ----------------------------------------
|
|
# Check for libraries
|
|
# ----------------------------------------
|
|
|
|
# This option seems to always add -lm to the link line,
|
|
# which causes unnecessary warnings with Visual C++.
|
|
# Comment it out for now.
|
|
#AC_CHECK_LIB(m,sqrt)
|
|
AC_CHECK_LIB(pthread,sem_init)
|
|
|
|
# ----------------------------------------
|
|
# Checks for header files.
|
|
# ----------------------------------------
|
|
|
|
AC_HEADER_STDC
|
|
AC_HEADER_TIME
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
|
|
AC_CHECK_HEADERS(limits.h malloc.h)
|
|
AC_CHECK_HEADERS(allheaders.h)
|
|
# Enable use of system-defined bool type if available:
|
|
AC_HEADER_STDBOOL
|
|
|
|
# Misc
|
|
AC_SYS_INTERPRETER
|
|
AC_SYS_LARGEFILE
|
|
|
|
|
|
# ----------------------------------------
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
# ----------------------------------------
|
|
|
|
AC_CHECK_TYPES(wchar_t)
|
|
AC_CHECK_TYPES(long long int)
|
|
AC_CHECK_TYPES(mbstate_t,,,[#include "wchar.h"])
|
|
|
|
#AC_TYPE_MODE_T
|
|
#AC_TYPE_OFF_T
|
|
AC_TYPE_SIZE_T
|
|
#AC_TYPE_PID_T
|
|
|
|
|
|
# ----------------------------------------
|
|
# Checks for library functions.
|
|
# ----------------------------------------
|
|
|
|
AC_FUNC_MMAP
|
|
AC_FUNC_FORK
|
|
AC_CHECK_FUNCS(strerror vsnprintf)
|
|
AC_CHECK_FUNCS(gethostname)
|
|
AC_CHECK_FUNCS(strchr memcpy)
|
|
AC_CHECK_FUNCS(acos asin)
|
|
|
|
# ----------------------------------------
|
|
# Test auxilliary packages
|
|
# ----------------------------------------
|
|
|
|
# Check location of leptonica/liblept headers.
|
|
AC_MSG_CHECKING(for leptonica)
|
|
AC_ARG_VAR(LIBLEPT_HEADERSDIR,[Leptonica headers directory])
|
|
|
|
have_lept=no
|
|
if test "$LIBLEPT_HEADERSDIR" = "" ; then
|
|
LIBLEPT_HEADERSDIR="/usr/local/include /usr/include"
|
|
fi
|
|
for incd in $LIBLEPT_HEADERSDIR
|
|
do
|
|
for lept in . leptonica liblept
|
|
do
|
|
if test -r "$incd/$lept/allheaders.h" ; then
|
|
CPPFLAGS="$CPPFLAGS -I$incd/$lept"
|
|
have_lept=yes
|
|
fi
|
|
done
|
|
done
|
|
if test "$have_lept" = yes ; then
|
|
AC_MSG_RESULT(yes)
|
|
AC_CHECK_LIB(lept,pixCreate,[], AC_MSG_ERROR([leptonica library missing]))
|
|
else
|
|
AC_MSG_ERROR([leptonica not found])
|
|
fi
|
|
|
|
# ----------------------------------------
|
|
# Final Tasks and Output
|
|
# ----------------------------------------
|
|
|
|
# Define installation paths
|
|
# AC_DEFINE_INSTALL_PATHS
|
|
# Redundant with PACKAGE_VERSION - comment out
|
|
# AC_DEFINE_UNQUOTED(TESSERACT_VERSION,["${PACKAGE_VERSION}"],[version string])
|
|
|
|
# Output files
|
|
AC_CONFIG_FILES(Makefile)
|
|
#if test "$enable_gettext" = "yes"; then
|
|
#AC_CONFIG_FILES(po/Makefile.in)
|
|
#fi
|
|
AC_CONFIG_FILES(api/Makefile)
|
|
AC_CONFIG_FILES(ccmain/Makefile)
|
|
AC_CONFIG_FILES(ccstruct/Makefile)
|
|
AC_CONFIG_FILES(ccutil/Makefile)
|
|
AC_CONFIG_FILES(classify/Makefile)
|
|
AC_CONFIG_FILES(cube/Makefile)
|
|
AC_CONFIG_FILES(cutil/Makefile)
|
|
AC_CONFIG_FILES(dict/Makefile)
|
|
AC_CONFIG_FILES(image/Makefile)
|
|
AC_CONFIG_FILES(neural_networks/runtime/Makefile)
|
|
AC_CONFIG_FILES(textord/Makefile)
|
|
AC_CONFIG_FILES(viewer/Makefile)
|
|
AC_CONFIG_FILES(wordrec/Makefile)
|
|
AC_CONFIG_FILES(training/Makefile)
|
|
AC_CONFIG_FILES(tessdata/Makefile)
|
|
AC_CONFIG_FILES(tessdata/configs/Makefile)
|
|
AC_CONFIG_FILES(tessdata/tessconfigs/Makefile)
|
|
AC_CONFIG_FILES(testing/Makefile)
|
|
if test "$enable_graphics" = "yes"; then
|
|
AC_CONFIG_FILES(java/Makefile)
|
|
AC_CONFIG_FILES(java/com/Makefile)
|
|
AC_CONFIG_FILES(java/com/google/Makefile)
|
|
AC_CONFIG_FILES(java/com/google/scrollview/Makefile)
|
|
AC_CONFIG_FILES(java/com/google/scrollview/events/Makefile)
|
|
AC_CONFIG_FILES(java/com/google/scrollview/ui/Makefile)
|
|
fi
|
|
AC_CONFIG_FILES(doc/Makefile)
|
|
# AC_CONFIG_FILES(doc/Doxyfile)
|
|
# AC_CONFIG_FILES(doc/header.html)
|
|
# AC_CONFIG_FILES(doc/footer.html)
|
|
# AC_CONFIG_FILES(doc/header.tex)
|
|
# AC_CONFIG_FILES(doc/RTF_ExtensionFile)
|
|
# AC_CONFIG_FILES(doc/Makefile)
|
|
AC_OUTPUT
|
|
|
|
# Final message
|
|
echo ""
|
|
echo "Configuration is done."
|
|
echo "You can now build $PACKAGE_NAME by running:"
|
|
# test x$GXX = xyes && \
|
|
# echo "% make depend [optional]"
|
|
echo ""
|
|
echo "% make"
|
|
|
|
# ----------------------------------------
|
|
# CONFIG Template
|
|
# ----------------------------------------
|
|
|
|
# Fence added in configuration file
|
|
AH_TOP([
|
|
#ifndef CONFIG_AUTO_H
|
|
#define CONFIG_AUTO_H
|
|
/* config_auto.h: begin */
|
|
])
|
|
|
|
# Stuff added at bottom of file
|
|
AH_BOTTOM([
|
|
|
|
/* Miscellaneous defines */
|
|
#define AUTOCONF 1
|
|
|
|
/* Not used yet
|
|
#ifndef NO_GETTEXT
|
|
#define USING_GETTEXT
|
|
#endif
|
|
*/
|
|
|
|
/* config_auto.h: end */
|
|
#endif
|
|
])
|