diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 361 |
1 files changed, 361 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..25cdcc9 --- /dev/null +++ b/configure.ac @@ -0,0 +1,361 @@ +# -*-Shell-script-*- +# +# Copyright (c) Luc Vincent + +# ---------------------------------------- +# Initialization +# ---------------------------------------- + +AC_PREREQ(2.50) +AC_INIT(tesseract, 2.03, theraysmith@gmail.com) +AC_REVISION($Id: configure.ac,v 1.4 2007/02/02 22:38:17 theraysmith Exp $) +AC_CONFIG_AUX_DIR(config) +AC_CONFIG_SRCDIR(ccmain/tesseractmain.cpp) +AC_PREFIX_DEFAULT(/usr/local) +AC_CANONICAL_HOST + +# Define date of package, etc. Could be useful in auto-generated +# documentation. +# TODO(luc) Generate good documentation using doxygen or equivalent +PACKAGE_YEAR=2008 +PACKAGE_DATE="04/22" + +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) + +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 ] ) + +# 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 + +# 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: +AC_PROG_RANLIB +# 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(z,deflate) +AC_CHECK_LIB(png,png_read_png) +AC_CHECK_LIB(jpeg,jpeg_read_scanlines) +AC_CHECK_LIB(pthread,sem_init) + +# Check location of leptonica/liblept headers. +have_lept=no +for incd in /usr/local/include /usr/include +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_CHECK_LIB(lept,pixCreate) +fi + +# ---------------------------------------- +# 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 +# ---------------------------------------- + +# Search JPEG library - not needed at the moment +# AC_PATH_JPEG(, +# [ no_jpeg=yes +# AC_MSG_WARN([JPEG support is disabled]) ]) + +# Search LIBTIFF library +AC_PATH_LIBTIFF(, +[ no_libtiff=yes + AC_MSG_WARN([TIFF support is disabled]) ]) + + +# ---------------------------------------- +# 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) +AC_CONFIG_FILES(ccmain/Makefile) +AC_CONFIG_FILES(ccstruct/Makefile) +AC_CONFIG_FILES(ccutil/Makefile) +AC_CONFIG_FILES(classify/Makefile) +AC_CONFIG_FILES(cutil/Makefile) +AC_CONFIG_FILES(dict/Makefile) +AC_CONFIG_FILES(pageseg/Makefile) +AC_CONFIG_FILES(image/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) +AC_CONFIG_FILES(dlltest/Makefile) +AC_CONFIG_FILES(java/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 + +/* config_auto.h: end */ +#endif +]) + |