mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-11-27 20:59:36 +08:00
cf5d4ab675
git-svn-id: https://tesseract-ocr.googlecode.com/svn/trunk@20 d0cd1f9f-072b-0410-8dd7-cf729c803f20
157 lines
7.1 KiB
Plaintext
157 lines
7.1 KiB
Plaintext
dnl ------------------------------------------------------------------
|
|
dnl @synopsis AC_PATH_LIBTIFF([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
dnl Process option --with-libtiff.
|
|
dnl Search LIBTIFF along the extra
|
|
dnl Define HAVE_LIBTIFF.
|
|
dnl Set output variable LIBTIFF_CFLAGS and LIBTIFF_LIBS
|
|
dnl -- inspired from previous AC_PATH_JPEG
|
|
dnl ------------------------------------------------------------------
|
|
AC_DEFUN([AC_PATH_LIBTIFF],
|
|
[
|
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
case $host in
|
|
*msdos* | *go32* | *mingw32* | *cygwin* | *windows*)
|
|
USING_WIN=yes
|
|
;;
|
|
*)
|
|
USING_WIN=no
|
|
esac
|
|
AC_ARG_VAR(LIBTIFF_LIBS,[Tiff library to link against])
|
|
AC_ARG_VAR(LIBTIFF_CFLAGS,[Compile flags needed for TIFF support])
|
|
ac_libtiff=no
|
|
AC_ARG_WITH(libtiff,
|
|
AC_HELP_STRING([--with-libtiff=DIR],
|
|
[where the www.libtiff.org libtiff library is located]),
|
|
[ac_libtiff=$withval], [ac_libtiff=yes] )
|
|
AC_MSG_CHECKING([for Leffler libtiff library])
|
|
# Need to define TOP_SRCDIR for the cases where the LIBTIFF library
|
|
# is checked in with the code, at the top-level
|
|
TOP_SRCDIR=`cd $srcdir; pwd`
|
|
LOCAL_LIBTIFFDIR=$TOP_SRCDIR/libtiff
|
|
# First of all, deal with the case when 'cl.exe' is used as compiler
|
|
# indeed, when this is the case, we can only rely on finding
|
|
# the right library and includes, but we can't try compiling
|
|
# and linking. In addition, library needs to be specifically
|
|
# supplied on the link line and special flags are needed...
|
|
if test "x$CXX" = "xcl.exe" ; then
|
|
if test "x$ac_libtiff" = "xyes" ; then
|
|
# If LIBTIFF_LIBS has been set on configure command line
|
|
# or as environment variable, just use it if it exists
|
|
if test "x$LIBTIFF_LIBS" != "x" ; then
|
|
AC_MSG_RESULT(user specified as $LIBTIFF_LIBS)
|
|
if test "x$LIBTIFF_CFLAGS" = "x" ; then
|
|
AC_MSG_WARN(LIBTIFF_CFLAGS is empty)
|
|
fi
|
|
fi
|
|
# Otherwise, test if libtiff is at top level directory, under libtiff
|
|
if test "x$LIBTIFF_LIBS" = "x" && test -r "$LOCAL_LIBTIFFDIR/lib/libtiff.a" && test -r "$LOCAL_LIBTIFFDIR/lib/libjpeg.a" && test -r "$LOCAL_LIBTIFFDIR/lib/libz.a" ; then
|
|
AC_MSG_RESULT($LOCAL_LIBTIFFDIR/lib/libtiff.a)
|
|
LIBTIFF_LIBS="$LOCAL_LIBTIFFDIR/lib/libtiff.a $LOCAL_LIBTIFFDIR/lib/libjpeg.a $LOCAL_LIBTIFFDIR/lib/libz.a user32.lib"
|
|
LIBTIFF_CFLAGS="-I$LOCAL_LIBTIFFDIR/include"
|
|
fi
|
|
# Otherwise, if GnuWin32 was previously located
|
|
if test "x$LIBTIFF_LIBS" = "x" && test -r "$GNUWIN32_BASE/lib/libtiff.a" && test -r "$GNUWIN32_BASE/lib/libjpeg.a" && test -r "$GNUWIN32_BASE/lib/libz.a" ; then
|
|
AC_MSG_RESULT($GNUWIN32_BASE/lib/libtiff.a)
|
|
AC_MSG_WARN($GNUWIN32_BASE/lib/libtiff.a version 3.5.7 works. Some versions like 3.6.1 do not!)
|
|
LIBTIFF_LIBS="$GNUWIN32_BASE/lib/libtiff.a $GNUWIN32_BASE/lib/libjpeg.a $GNUWIN32_BASE/lib/libz.a user32.lib"
|
|
fi
|
|
if test "x$LIBTIFF_LIBS" = "x" ; then
|
|
AC_MSG_RESULT(not found or incomplete)
|
|
ac_libtiff=no
|
|
fi
|
|
elif test "x$ac_libtiff" != "xno" ; then
|
|
test x${LIBTIFF_LIBS+set} != xset && LIBTIFF_LIBS="$ac_libtiff/libtiff"
|
|
test x${LIBTIFF_CFLAGS+set} != xset && LIBTIFF_CFLAGS="-I$ac_libtiff"
|
|
fi
|
|
# If we are not using CL, that is we are either using gcc/cygwin
|
|
# or we are not running under Windows:
|
|
else
|
|
# Process specification
|
|
if test "x$ac_libtiff" = "xyes" ; then
|
|
if test "x$LIBTIFF_LIBS" = "x" ; then
|
|
# If local libtiff exists at top level, and we are running windows, use it first:
|
|
if test "x$USING_WIN" = "xyes" && test -r "$LOCAL_LIBTIFFDIR/lib/libtiff.a" && test -r "$LOCAL_LIBTIFFDIR/lib/libjpeg.a" && test -r "$LOCAL_LIBTIFFDIR/lib/libz.a" ; then
|
|
AC_MSG_RESULT($LOCAL_LIBTIFFDIR/lib/libtiff.a)
|
|
LIBTIFF_LIBS="$LOCAL_LIBTIFFDIR/lib/libtiff.a $LOCAL_LIBTIFFDIR/lib/libjpeg.a $LOCAL_LIBTIFFDIR/lib/libz.a -lole32 -luuid -lwsock32"
|
|
LIBTIFF_CFLAGS="-I$LOCAL_LIBTIFFDIR/include"
|
|
fi
|
|
# If GNUWIN32_BASE is defined, it means we are running under
|
|
# Windows and we should use these builds if available because
|
|
# they are the best bet
|
|
if test "x$LIBTIFF_LIBS" = "x" && test "x$GNUWIN32_BASE" != "x" ; then
|
|
# With version 3.5.7 of gnuwin32 libtiff, we do not need to link
|
|
# against "$GNUWIN32_BASE/lib/libgw32c.a", so no need to test
|
|
if test -r "$GNUWIN32_BASE/lib/libtiff.a" && test -r "$GNUWIN32_BASE/lib/libjpeg.a" && test -r "$GNUWIN32_BASE/lib/libz.a" ; then
|
|
AC_MSG_RESULT($GNUWIN32_BASE/lib/libtiff.a)
|
|
# With 3.5.7 version of libtiff, no need to add
|
|
# $GNUWIN32_BASE/lib/libgw32c.a after $GNUWIN32_BASE/lib/libz.a
|
|
LIBTIFF_LIBS="$GNUWIN32_BASE/lib/libtiff.a $GNUWIN32_BASE/lib/libjpeg.a $GNUWIN32_BASE/lib/libz.a -lole32 -luuid -lwsock32"
|
|
else
|
|
AC_MSG_RESULT([GNUWIN32 not found or incomplete. Trying something else])
|
|
fi
|
|
fi
|
|
# If LIBTIFF_LIBS is still not defined after potentially going
|
|
# the GNUWIN32 route, then try using home built versions
|
|
if test "x$LIBTIFF_LIBS" = "x" ; then
|
|
TIFF_PACKAGE="$HOME_UNIX/packages/libtiff/libtiff"
|
|
if test -d "$TIFF_PACKAGE" ; then
|
|
LIBTIFF_LIBS="$TIFF_PACKAGE/libtiff.a"
|
|
LIBTIFF_CFLAGS="-I$TIFF_PACKAGE"
|
|
else
|
|
LIBTIFF_LIBS="-ltiff"
|
|
fi
|
|
fi
|
|
fi
|
|
elif test "x$ac_libtiff" != "xno" ; then
|
|
test "x${LIBTIFF_LIBS+set}" != "xset" && LIBTIFF_LIBS="$ac_libtiff/libtiff.a"
|
|
test "x${LIBTIFF_CFLAGS+set}" != "xset" && LIBTIFF_CFLAGS="-I$ac_libtiff"
|
|
fi
|
|
# Try linking - recall that -Wall is typically on, and any warning
|
|
# will cause this test to fail... This, by the way, is one of the
|
|
# reasons we cannot run this test when using the Microsoft compiler (cl),
|
|
# which outputs tons of "garbage" on stdout:
|
|
if test "x$ac_libtiff" != "xno" ; then
|
|
AC_MSG_CHECKING([linking with $LIBTIFF_LIBS])
|
|
save_CFLAGS="$CFLAGS"
|
|
save_CXXFLAGS="$CXXFLAGS"
|
|
save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $LIBTIFF_CFLAGS"
|
|
CXXFLAGS="$CXXFLAGS $LIBTIFF_CFLAGS"
|
|
LIBS="$LIBS $LIBTIFF_LIBS -lm"
|
|
AC_TRY_LINK([
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#include <stdio.h>
|
|
#include <tiffio.h>
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif ],[
|
|
TIFFClose((TIFF *) 0);],
|
|
[ac_libtiff=ok],[ac_libtiff=no])
|
|
CFLAGS="$save_CFLAGS"
|
|
CXXFLAGS="$save_CXXFLAGS"
|
|
LIBS="$save_LIBS"
|
|
AC_MSG_RESULT($ac_libtiff)
|
|
fi
|
|
fi
|
|
# Finish
|
|
if test "x$ac_libtiff" = "xno"; then
|
|
LIBTIFF_CFLAGS= ; LIBTIFF_LIBS=
|
|
ifelse([$2],,:,[$2])
|
|
else
|
|
AC_DEFINE(HAVE_LIBTIFF,1,[Define if you have the www.libtiff.org LIBTIFF library.])
|
|
AC_MSG_RESULT([setting LIBTIFF_CFLAGS=$LIBTIFF_CFLAGS])
|
|
AC_MSG_RESULT([setting LIBTIFF_LIBS=$LIBTIFF_LIBS])
|
|
CFLAGS="$LIBTIFF_CFLAGS $CFLAGS"
|
|
CXXFLAGS="$LIBTIFF_CFLAGS $CXXFLAGS"
|
|
if test "x$CXX" = "xcl.exe" ; then
|
|
LIBS="$LIBTIFF_LIBS $LIBS"
|
|
else
|
|
LIBS="$LIBTIFF_LIBS $LIBS -lm"
|
|
fi
|
|
ifelse([$1],,:,[$1])
|
|
fi
|
|
AM_CONDITIONAL(HAVE_LIBTIFF, test x$ac_libtiff != xno)
|
|
])
|