Skip to content

Instantly share code, notes, and snippets.

@zhm
Last active December 14, 2015 07:29
Show Gist options
  • Save zhm/5051253 to your computer and use it in GitHub Desktop.
Save zhm/5051253 to your computer and use it in GitHub Desktop.
configure.in for GDAL 1.9.2
dnl ***************************************************************************
dnl $Id: configure.in 24333 2012-04-28 12:18:28Z rouault $
dnl
dnl Project: GDAL
dnl Purpose: Configure source file.
dnl Author: Frank Warmerdam, warmerdam@pobox.com
dnl
dnl ***************************************************************************
dnl Copyright (c) 2000, Frank Warmerdam
dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"),
dnl to deal in the Software without restriction, including without limitation
dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
dnl and/or sell copies of the Software, and to permit persons to whom the
dnl Software is furnished to do so, subject to the following conditions:
dnl
dnl The above copyright notice and this permission notice shall be included
dnl in all copies or substantial portions of the Software.
dnl
dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
dnl DEALINGS IN THE SOFTWARE.
dnl ***************************************************************************
dnl Disable configure caching ... it causes lots of hassles.
define([AC_CACHE_LOAD], )
define([AC_CACHE_SAVE], )
dnl Process this file with autoconf to produce a configure script.
AC_INIT(GDALmake.opt.in)
AC_CONFIG_MACRO_DIR(m4)
AC_CONFIG_HEADERS([port/cpl_config.h:port/cpl_config.h.in])
AH_BOTTOM([#include "cpl_config_extras.h"])
dnl We require autoconf 2.52+ for libtool support on cygwin/mingw hosts
AC_PREREQ(2.52)
dnl Compute the canonical host-system (the system we are building for)
dnl type variable $host
AC_CANONICAL_HOST
dnl Enable as much warnings as possible
AX_CFLAGS_WARN_ALL(C_WFLAGS)
AX_CXXFLAGS_WARN_ALL(CXX_WFLAGS)
AC_SUBST(CXX_WFLAGS,$CXX_WFLAGS)
AC_SUBST(C_WFLAGS,$C_WFLAGS)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CXX
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
dnl switch between libtool and native build system
AC_ARG_WITH(libtool, [ --without-libtool Don't use libtool to build the library],,)
if test "$with_libtool" = "no"; then
AC_PROG_RANLIB
dnl AC_COMPILER_PIC as expanded by autoconf-2.68 doesn't work for the C++ part with clang++ 3.0 that doesn't like compiling .c programs
dnl so we inline the expanded code and fix it at hand.
dnl AC_COMPILER_PIC
echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} $CFLAGS -fPIC -c conftest.c 2>&1`"; then
CFLAGS="$CFLAGS -fPIC"
fi
echo 'void f(){}' > conftest.cpp
if test -z "`${CXX-g++} $CXXFLAGS -fPIC -c conftest.cpp 2>&1`"; then
CXXFLAGS="$CXXFLAGS -fPIC"
fi
rm -f conftest*
AC_LD_SHARED
else
with_libtool=yes
fi
AC_SUBST(HAVE_LIBTOOL,$with_libtool)
dnl Checks for libraries.
AC_CHECK_LIB(dl,dlopen,,,)
dnl Needed on Solaris.
AC_CHECK_LIB(rt,nanosleep,,,)
dnl We don't need to add math library to all targets
case "${host_os}" in
cygwin* | mingw32* | pw32* | beos* | darwin*)
;;
*)
AC_CHECK_LIB(m,sin,,,)
;;
esac
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(assert.h fcntl.h unistd.h dbmalloc.h dlfcn.h stdint.h limits.h locale.h values.h float.h errno.h direct.h)
AC_C_BIGENDIAN
dnl Check for 64 bit file API
AC_HAVE_LONG_LONG
AC_UNIX_STDIO_64
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(unsigned long)
AC_CHECK_SIZEOF(void*)
dnl Some compilers (IBM VisualAge) has these types defined, so check it here.
dnl These types are used in internal libtiff.
AC_CHECK_TYPES([int8, int16, int32],,,
[
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
])
dnl We need the following lines for libtiff too.
HAVE_IEEEFP=1
AC_DEFINE_UNQUOTED(HAVE_IEEEFP, $HAVE_IEEEFP, [Define as 0 or 1 according to the floating point format suported by the machine])
dnl Check the native cpu bit order (also libtiff stuff).
AC_MSG_CHECKING([native cpu bit order])
case "$host_cpu" in
i*86*|x86_64*)
HOST_FILLORDER=FILLORDER_LSB2MSB
AC_MSG_RESULT([lsb2msb])
;;
*)
HOST_FILLORDER=FILLORDER_MSB2LSB
AC_MSG_RESULT([msb2lsb])
;;
esac
AC_DEFINE_UNQUOTED(HOST_FILLORDER, $HOST_FILLORDER, [Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB)])
dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(snprintf vsnprintf)
AC_CHECK_FUNCS(atoll)
AC_CHECK_FUNCS(strtof)
AC_CHECK_FUNCS(getcwd)
dnl Check for declarations
AC_CHECK_DECLS(strtof)
AC_CHECK_FUNCS(readlink)
dnl Make sure at least these are checked under C++. Prototypes missing on
dnl some platforms.
AC_LANG_PUSH(C++)
AC_CHECK_FUNC_CUSTOM(gmtime_r,[#include <time.h>],[time_t t; struct tm ltime; t = time(0); gmtime_r( &t, &ltime );])
AC_CHECK_FUNC_CUSTOM(localtime_r,[#include <time.h>],[time_t t; struct tm ltime; t = time(0); localtime_r( &t, &ltime );])
AC_LANG_POP(C++)
AC_CHECK_FUNC(setlocale)
OPT_GDAL_FORMATS=
EXTRA_INCLUDES=
dnl ---------------------------------------------------------------------------
dnl Check for --enable-debug
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([to enable debug build])
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],
[enable debugging (disabled by default)]),
[HAVE_DEBUG=$enableval], [HAVE_DEBUG=yes])
if test "x$enable_debug" = "xyes" ; then
dnl Try to strip out optimization.
CXXFLAGS=`echo "$CXXFLAGS " | sed "s/-O2 //"`
CFLAGS=`echo "$CFLAGS " | sed "s/-O2 //"`
CXXFLAGS=`echo "$CXXFLAGS" | sed "s/-O //"`
CFLAGS=`echo "$CFLAGS" | sed "s/-O //"`
dnl remove existing -g to avoid duplicates.
CXXFLAGS=`echo "$CXXFLAGS" | sed "s/-g //"`
CFLAGS=`echo "$CFLAGS" | sed "s/-g //"`
dnl add -g and -DDEBUG
CXXFLAGS="$CXXFLAGS -g -DDEBUG"
CFLAGS="$CFLAGS -g -DDEBUG"
AC_MSG_RESULT([yes, modified CFLAGS="$CFLAGS"])
else
AC_MSG_RESULT([no, CFLAGS="$CFLAGS"])
fi
dnl ---------------------------------------------------------------------------
dnl Check if GCC 4.1 atomic builtins are really available
dnl (some GCC versions are broken w.r.t this on some exotic architectures...)
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([whether GCC 4.1 atomic builtins are available])
rm -f atomicbuiltins.c
echo 'int main(int argc, char* argv[]) { int i; __sync_add_and_fetch(&i, 1); __sync_sub_and_fetch(&i, 1); return 0; } ' > atomicbuiltins.c
if test -z "`${CC} atomicbuiltins.c -o atomicbuiltins 2>&1`" ; then
HAVE_GCC_ATOMIC_BUILTINS=yes
AC_MSG_RESULT([yes])
AC_DEFINE_UNQUOTED(HAVE_GCC_ATOMIC_BUILTINS,1, [Define to 1 if GCC atomic builtins are available])
else
HAVE_GCC_ATOMIC_BUILTINS=no
AC_MSG_RESULT([no])
fi
rm -f atomicbuiltins.* atomicbuiltins
AC_SUBST(HAVE_GCC_ATOMIC_BUILTINS,$HAVE_GCC_ATOMIC_BUILTINS)
dnl ---------------------------------------------------------------------------
dnl Check if user requests hidding internal symbols
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(hide_internal_symbols,[ --with-hide-internal-symbols[=ARG] Try to hide internal symbols (ARG=yes/no)],,)
HAVE_HIDE_INTERNAL_SYMBOLS=no
if test "$with_hide_internal_symbols" = "yes"; then
AC_MSG_CHECKING([whether we should hide internal symbols])
rm -f hiddensymbols.c
echo 'int visible() { return 0; } __attribute__ ((visibility("default")))' >> hiddensymbols.c
echo 'int hidden() { return 0; }' >> hiddensymbols.c
if test -z "`${CC} -fvisibility=hidden -c hiddensymbols.c 2>&1`" ; then
HAVE_HIDE_INTERNAL_SYMBOLS=yes
else
HAVE_HIDE_INTERNAL_SYMBOLS=no
fi
if test "$HAVE_HIDE_INTERNAL_SYMBOLS" = "yes"; then
AC_MSG_RESULT([yes])
CFLAGS="$CFLAGS -fvisibility=hidden"
CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
else
AC_MSG_RESULT([no])
fi
rm -f hiddensymbols.*
else
AC_MSG_CHECKING([whether we should hide internal symbols])
AC_MSG_RESULT([no])
fi
if test "$HAVE_HIDE_INTERNAL_SYMBOLS" = "yes" ; then
AC_DEFINE_UNQUOTED(USE_GCC_VISIBILITY_FLAG,1, [Define to 1 if you want to use the -fvisibility GCC flag])
fi
AC_SUBST(HAVE_HIDE_INTERNAL_SYMBOLS,$HAVE_HIDE_INTERNAL_SYMBOLS)
dnl ---------------------------------------------------------------------------
dnl Check if user requests renaming internal libtiff symbols
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(rename_internal_libtiff_symbols,[ --with-rename-internal-libtiff-symbols[=ARG] Prefix internal libtiff symbols with gdal_ (ARG=yes/no)],,)
if test "$with_rename_internal_libtiff_symbols" = ""; then
with_rename_internal_libtiff_symbols=no
fi
AC_SUBST(RENAME_INTERNAL_LIBTIFF_SYMBOLS,$with_rename_internal_libtiff_symbols)
dnl ---------------------------------------------------------------------------
dnl Check if user requests renaming internal libgeotiff symbols
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(rename_internal_libgeotiff_symbols,[ --with-rename-internal-libgeotiff-symbols[=ARG] Prefix internal libgeotiff symbols with gdal_ (ARG=yes/no)],,)
if test "$with_rename_internal_libgeotiff_symbols" = ""; then
with_rename_internal_libgeotiff_symbols=no
fi
AC_SUBST(RENAME_INTERNAL_LIBGEOTIFF_SYMBOLS,$with_rename_internal_libgeotiff_symbols)
dnl ---------------------------------------------------------------------------
dnl Check if user requests /usr/local to be included.
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([for local include/lib path])
AC_ARG_WITH(local,[ --with-local[=dir] Include /usr/local or other local tree for INCLUDE/LIBS],,)
if test "$with_local" != "no" -a "$with_local" != "" ; then
if test "$with_local" = "yes" ; then
ADD_PREFIX=/usr/local
else
ADD_PREFIX=$with_local
fi
AC_MSG_RESULT(adding $ADD_PREFIX)
LIBS="$LIBS -L$ADD_PREFIX/lib"
CPPFLAGS="$CPPFLAGS -I$ADD_PREFIX/include"
else
AC_MSG_RESULT([none])
fi
dnl ---------------------------------------------------------------------
dnl ENABLE THREADS ONLY IF REQUESTED.
dnl ---------------------------------------------------------------------
THREAD_LIB=""
THREAD_FLAG=""
PTHREAD_ENABLED="no"
AC_ARG_WITH(threads,
[ --with-threads[=ARG] Include thread safe support (ARG=yes(default), no or linkopt)],,)
if test "$with_threads" = "yes" -o "$with_threads" = "" ; then
AC_CHECK_LIB(pthread,pthread_create,THREAD_FLAG=CPL_MULTIPROC_PTHREAD,,,)
if test -n "$THREAD_FLAG" ; then
THREAD_LIB="-lpthread"
fi
AC_MSG_CHECKING([for PTHREAD_MUTEX_RECURSIVE])
AC_TRY_COMPILE(
[
#define _GNU_SOURCE
#include <pthread.h>
], [
return (PTHREAD_MUTEX_RECURSIVE);
],
[
AC_MSG_RESULT([yes])
AC_DEFINE_UNQUOTED(HAVE_PTHREAD_MUTEX_RECURSIVE, 1,
[Define to 1 if you have the `PTHREAD_MUTEX_RECURSIVE' constant.])
], [
AC_MSG_RESULT([no])
])
PTHREAD_ENABLED="yes"
elif test "$with_threads" != "no" ; then
THREAD_FLAG=CPL_MULTIPROC_PTHREAD
THREAD_LIB="$with_threads"
AC_CHECKING(whether we should include thread/mutex support...)
AC_MSG_RESULT([ using threads with link options "$THREAD_LIB".])
PTHREAD_ENABLED="yes"
else
AC_CHECKING(whether we should include thread/mutex support...)
AC_MSG_RESULT([ thread safe support disabled.])
fi
if test "$THREAD_FLAG" = "CPL_MULTIPROC_PTHREAD" ; then
AC_DEFINE_UNQUOTED(CPL_MULTIPROC_PTHREAD,1, [Define if you want to use pthreads based multiprocessing support])
fi
LIBS="$THREAD_LIB $LIBS"
dnl ---------------------------------------------------------------------------
dnl Check if libz is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(libz,[ --with-libz[=ARG] Include libz support (ARG=internal or libz directory)],,)
if test "$with_libz" = "external" -o "$with_libz" = "" -o "$with_libz" = "yes" ; then
AC_CHECK_LIB(z,deflateInit_,LIBZ_SETTING=external,LIBZ_SETTING=internal,)
if test "$LIBZ_SETTING" = "external" ; then
AC_CHECK_LIB(z,inflateCopy,LIBZ_SETTING=external,LIBZ_SETTING=internal,)
if test "$LIBZ_SETTING" = "external" ; then
AC_MSG_RESULT([using pre-installed libz])
else
AC_MSG_RESULT([using internal libz code as inflateCopy is missing])
fi
else
AC_MSG_RESULT([using internal libz code as deflateInit_ is missing])
fi
elif test "$with_libz" != "no" -a "$with_libz" != "internal" ; then
LIBS="-L$with_libz -L$with_libz/lib $LIBS"
AC_CHECK_LIB(z,deflateInit_,LIBZ_SETTING=external,LIBZ_SETTING=internal,-L$with_libz -L$with_libz/lib -lz)
if test "$LIBZ_SETTING" = "external" ; then
AC_CHECK_LIB(z,inflateCopy,LIBZ_SETTING=external,LIBZ_SETTING=internal,-L$with_libz -L$with_libz/lib -lz)
if test "$LIBZ_SETTING" = "external" ; then
AC_MSG_RESULT([using libz library from $with_libz])
else
AC_MSG_RESULT([using internal libz code as inflateCopy from $with_libz is missing])
fi
else
AC_MSG_RESULT([using internal libz code as deflateInit_ from $with_libz is missing])
fi
fi
if test "$LIBZ_SETTING" = "external" ; then
LIBS="-lz $LIBS"
if test "$with_libz" != "" -a "$with_libz" != "yes" -a "$with_libz" != "external" ; then
EXTRA_INCLUDES="-I$with_libz -I$with_libz/include $EXTRA_INCLUDES"
fi
elif test "$with_libz" = "no" ; then
LIBZ_SETTING=no
AC_MSG_RESULT([not using libz at all.])
else
LIBZ_SETTING=internal
OPT_GDAL_FORMATS="zlib $OPT_GDAL_FORMATS"
AC_MSG_RESULT([using internal libz code.])
fi
AC_SUBST(LIBZ_SETTING,$LIBZ_SETTING)
dnl ---------------------------------------------------------------------------
dnl Check for iconv/libiconv.
dnl A rationale for this macro is described in "GNU `gettext' utilities"
dnl manual at
dnl http://www.gnu.org/software/gettext/manual/html_node/AM_005fICONV.html
dnl ---------------------------------------------------------------------------
AM_ICONV
dnl Extra test needed for GCC 4.5 on Solaris 11, where there is
dnl a different behaviour if the tests are compiled with gcc or g++.
dnl So we introduce a ICONV_CPP_CONST that must be used instead of
dnl ICONV_CONST when used from .cpp files.
if test "$am_func_iconv" = "yes"; then
rm -f testiconv.*
echo '#include <iconv.h>' > testiconv.cpp
echo 'int main(int argc, char** argv) { iconv_t cd; return iconv (cd, (const char **) 0, 0, 0, 0); } ' >> testiconv.cpp
if test -z "`${CXX} ${CPPFLAGS} testiconv.cpp -c 2>&1`" ; then
AC_MSG_RESULT([using ICONV_CPP_CONST="const"])
ICONV_CPP_CONST="const"
else
AC_MSG_RESULT([using ICONV_CPP_CONST=""])
ICONV_CPP_CONST=""
fi
rm -f testiconv.*
AC_DEFINE_UNQUOTED(ICONV_CPP_CONST,$ICONV_CPP_CONST, [For.cpp files, define as const if the declaration of iconv() needs const.])
fi
dnl ---------------------------------------------------------------------------
dnl Check if liblzma is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(liblzma,[ --with-liblzma[=ARG] Include liblzma support (ARG=yes/no)],,)
if test "$with_liblzma" = "yes" ; then
AC_CHECK_LIB(lzma,lzma_code,LIBLZMA_SETTING=yes,LIBLZMA_SETTING=no,)
if test "$LIBLZMA_SETTING" = "yes" ; then
LIBS="-llzma $LIBS"
fi
else
LIBLZMA_SETTING=no
fi
AC_SUBST(LIBLZMA_SETTING,$LIBLZMA_SETTING)
dnl ---------------------------------------------------------------------------
dnl Select an PostgreSQL Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
PG_CONFIG=no
AC_ARG_WITH(pg,
AS_HELP_STRING([--with-pg[=ARG]],
[Include PostgreSQL GDAL/OGR Support (ARG=path to pg_config)]),,)
if test "x$with_pg" = "xyes" -o "x$with_pg" = "x" ; then
AC_PATH_PROG(PG_CONFIG, pg_config, no)
else
PG_CONFIG=$with_pg
fi
AC_MSG_CHECKING([for PostgreSQL])
if test "x$PG_CONFIG" = "xno" ; then
HAVE_PG=no
PG_LIB=
PG_INC=
AC_MSG_RESULT([no])
else
if test -d ${PG_CONFIG} ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([--with-pg argument is a directory. It should be the path to the pg_config script, often somewhere like /usr/local/pgsql/bin/pg_config.])
fi
if test \! -x ${PG_CONFIG} ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([--with-pg argument is a not an executable file. It should be the path to the pg_config script, often somewhere like /usr/local/pgsql/bin/pg_config.])
fi
AC_MSG_RESULT([yes])
AC_CHECK_LIB(pq,PQconnectdb,HAVE_PG=yes,HAVE_PG=no,-L`$PG_CONFIG --libdir`)
if test "${HAVE_PG}" = "yes" ; then
LIBS=-L`$PG_CONFIG --libdir`" -lpq $LIBS"
PG_INC=-I`$PG_CONFIG --includedir`" -I"`$PG_CONFIG --includedir-server`
PG_EXTRA_DEC=""
saved_LIBS="$LIBS"
AC_CHECK_LIB(pq,PQputCopyData,,DEFINE_PG_PRE74=-DPG_PRE74,)
LIBS="$saved_LIBS"
if test "$DEFINE_PG_PRE74" != "" ; then
echo "The PostgreSQL client version is before 7.4. You will not be able to use binary cursors."
fi
saved_LIBS="$LIBS"
AC_CHECK_LIB(pq,PQescapeStringConn,DEFINE_PG_HAS_PQESCAPESTRINGCONN=-DPG_HAS_PQESCAPESTRINGCONN,,)
LIBS="$saved_LIBS"
if test "$DEFINE_PG_HAS_PQESCAPESTRINGCONN" = "" ; then
echo "falling back to using PQescapeString. You should upgrade at least to security releases 8.1.4, 8.0.8, 7.4.13, 7.3.15."
fi
PG_INC="${PG_INC} ${DEFINE_PG_PRE74} ${DEFINE_PG_HAS_PQESCAPESTRINGCONN}"
fi
fi
AC_SUBST(HAVE_PG,$HAVE_PG)
AC_SUBST(PG_INC,$PG_INC)
AC_SUBST(PG_LIB,$PG_LIB)
dnl ---------------------------------------------------------------------------
dnl Check if we should build with GRASS support.
dnl ---------------------------------------------------------------------------
GRASS_SETTING=no
GRASS_INCLUDE=
HAVE_GRASS=no
export GRASS_INCLUDE GRASS_SETTING
AC_ARG_WITH(grass,[ --with-grass[=ARG] Include GRASS support (GRASS 5.7+, ARG=GRASS install tree dir)],,)
AC_ARG_WITH(libgrass,[ --with-libgrass[=ARG] Include GRASS support based on libgrass (GRASS 5.0+)],,)
# default use of grass libraries off since we can't easily auto-find them.
if test "$with_grass" = "" ; then
with_grass=no
fi
# Check for GRASS 5.7.0 or later library use.
# TODO: separate libs for rasters and vectors
if test "$with_grass" != "yes" -a "$with_grass" != "no" ; then
AC_CHECK_LIB(grass_gis,G_asprintf,GRASS_SETTING=grass57+,GRASS_SETTING=no,-L$with_grass/lib -lgrass_datetime)
if test "$GRASS_SETTING" = "grass57+" ; then
G_RASTLIBS="-lgrass_I"
G_VECTLIBS="-lgrass_vect -lgrass_dig2 -lgrass_dgl -lgrass_rtree -lgrass_linkm -lgrass_dbmiclient -lgrass_dbmibase"
LIBS="-L$with_grass/lib $G_VECTLIBS $G_RASTLIBS -lgrass_gproj -lgrass_vask -lgrass_gmath -lgrass_gis -lgrass_datetime $LIBS"
GRASS_INCLUDE="-I$with_grass/include"
GRASS_GISBASE="$with_grass"
HAVE_GRASS=yes
else
AC_MSG_ERROR([--with-grass=$with_grass requested, but libraries not found!])
fi
# Check if libgrass is disabled.
elif test "$with_libgrass" = "no" ; then
echo "GRASS support disabled."
elif test "$with_libgrass" = "yes" -o "$with_libgrass" = "" ; then
AC_CHECK_LIB(grass5,G_gisinit_2,GRASS_SETTING=libgrass,GRASS_SETTING=no,)
if test "$GRASS_SETTING" = "libgrass" ; then
LIBS="-lgrass5 $LIBS"
fi
else
AC_CHECK_LIB(grass5,G_gisinit_2,GRASS_SETTING=libgrass,GRASS_SETTING=no,-L$with_libgrass/lib)
if test "$GRASS_SETTING" = "libgrass" ; then
LIBS="-L$with_libgrass -L$with_libgrass/lib -lgrass5 $LIBS"
GRASS_INCLUDE="-I$with_libgrass -I$with_libgrass/include $EXTRA_INCLUDES"
else
AC_MSG_ERROR([--with-libgrass=$with_grass requested, but libgrass5 not found!])
fi
fi
AC_SUBST(GRASS_SETTING,$GRASS_SETTING)
AC_SUBST(GRASS_INCLUDE,$GRASS_INCLUDE)
AC_SUBST(GRASS_GISBASE,$GRASS_GISBASE)
AC_SUBST(HAVE_GRASS)
if test "$GRASS_SETTING" != "no" ; then
OPT_GDAL_FORMATS="grass $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Check if cfitsio library is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(cfitsio,[ --with-cfitsio[=ARG] Include FITS support (ARG=no or libcfitsio path)],,)
if test "$with_cfitsio" = "no" ; then
FITS_SETTING=no
echo "FITS support disabled."
elif test "$with_cfitsio" = "yes" -o "$with_cfitsio" = "" ; then
AC_CHECK_LIB(cfitsio,ffopen,FITS_SETTING=external,FITS_SETTING=no,)
if test "$FITS_SETTING" = "external" ; then
LIBS="-lcfitsio $LIBS"
echo "using pre-installed libcfitsio."
else
echo "libcfitsio not found - FITS support disabled"
fi
dnl Fedora has cfitsio headers in /usr/include/cfitsio
if test "$FITS_SETTING" = "external" -a -d /usr/include/cfitsio ; then
EXTRA_INCLUDES="-I/usr/include/cfitsio $EXTRA_INCLUDES"
fi
else
FITS_SETTING=external
LIBS="-L$with_cfitsio -L$with_cfitsio/lib -lcfitsio $LIBS"
EXTRA_INCLUDES="-I$with_cfitsio -I$with_cfitsio/include $EXTRA_INCLUDES"
echo "using libcfitsio from $with_cfitsio."
fi
AC_SUBST(FITS_SETTING,$FITS_SETTING)
if test "$FITS_SETTING" != "no" ; then
OPT_GDAL_FORMATS="fits $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Check if PCRaster (libcsf) library is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(pcraster,[ --with-pcraster[=ARG] Include PCRaster (libcsf) support (ARG=internal, no or path)],,)
if test "$with_pcraster" = "no" ; then
PCRASTER_SETTING=no
echo "PCRaster support disabled."
elif test "$with_pcraster" = "yes" -o "$with_pcraster" = "" ; then
AC_CHECK_LIB(csf,Mopen,PCRASTER_SETTING=external,PCRASTER_SETTING=internal,$LIBS)
AC_CHECK_HEADERS(csf.h)
if test "$PCRASTER_SETTING" = "external" -a "$ac_cv_header_csf_h" = "no" ; then
PCRASTER_SETTING=internal
fi
if test "$PCRASTER_SETTING" = "external" ; then
LIBS="-lcsf $LIBS"
echo "using pre-installed libcsf."
else
echo "using internal csf code."
fi
elif test "$with_pcraster" = "internal" ; then
PCRASTER_SETTING=internal
echo "using internal csf code."
else
PCRASTER_SETTING=external
LIBS="-L$with_pcraster/lib -lcsf $LIBS"
EXTRA_INCLUDES="-I$with_pcraster/include $EXTRA_INCLUDES"
echo "using libcsf from $with_pcraster."
fi
AC_SUBST(PCRASTER_SETTING,$PCRASTER_SETTING)
if test "$PCRASTER_SETTING" != "no" ; then
OPT_GDAL_FORMATS="pcraster $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select a PNG Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([png], [ --with-png[=ARG] Include PNG support (ARG=internal, no or path)],,)
AC_MSG_CHECKING([for libpng])
if test "$with_png" = "no" ; then
PNG_SETTING=no
echo "png support disabled."
elif test "$with_png" = "yes" -o "$with_png" = "" ; then
AC_CHECK_LIB([png], [png_set_IHDR], [PNG_SETTING=external], [PNG_SETTING=internal], [$LIBS])
AC_CHECK_HEADERS([png.h])
if test "$PNG_SETTING" = "external" -a "$ac_cv_header_png_h" = "no" ; then
PNG_SETTING=internal
fi
if test "$PNG_SETTING" = "external" ; then
LIBS="-lpng $LIBS"
echo "using pre-installed libpng."
else
echo "using internal png code."
fi
elif test "$with_png" = "internal" ; then
PNG_SETTING=internal
echo "using internal png code."
else
PNG_SETTING=external
LIBS="-L$with_png -L$with_png/lib -lpng $LIBS"
EXTRA_INCLUDES="-I$with_png -I$with_png/include $EXTRA_INCLUDES"
echo "using libpng from $with_png."
fi
AC_SUBST([PNG_SETTING], [$PNG_SETTING])
if test "$PNG_SETTING" != "no" ; then
OPT_GDAL_FORMATS="png $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Check if GTA library is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([gta],[ --with-gta[=ARG] Include GTA support (ARG=no or libgta tree prefix)],,)
if test "$with_gta" = "no" ; then
GTA_SETTING=no
echo "GTA support disabled."
elif test "$with_gta" = "yes" -o "$with_gta" = "" ; then
AC_CHECK_LIB([gta], [gta_version], [GTA_SETTING=yes], [GTA_SETTING=no],)
if test "$GTA_SETTING" = "yes" ; then
LIBS="-lgta $LIBS"
echo "using pre-installed libgta."
else
echo "libgta not found - GTA support disabled"
fi
else
GTA_SETTING=yes
LIBS="-L$with_gta -L$with_gta/lib -lgta $LIBS"
EXTRA_INCLUDES="-I$with_gta -I$with_gta/include $EXTRA_INCLUDES"
echo "using libgta from $with_gta."
fi
AC_SUBST([GTA_SETTING], [$GTA_SETTING])
if test "$GTA_SETTING" != "no" ; then
OPT_GDAL_FORMATS="gta $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select PCIDSK options.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([pcidsk], [ --with-pcidsk[=ARG] Path to external PCIDSK SDK, or internal (default), or old],,)
AC_MSG_CHECKING([for PCIDSK])
PCIDSK_LIB=
PCIDSK_INCLUDE=
if test "$with_pcidsk" = "old" -o "$with_pcidsk" = "no" ; then
PCIDSK_SETTING=old
echo "pcidsk support using pre-PCIDSK SDK (old) implementation."
elif test "$with_pcidsk" = "" -o "$with_pcidsk" = "yes" -o "$with_pcidsk" = "internal" ; then
PCIDSK_SETTING=internal
echo "using internal libpcidsk."
else
PCIDSK_SETTING=external
PCIDSK_LIB="-L$with_pcidsk/lib -lpcidsk"
PCIDSK_INCLUDE="-I$with_pcidsk/include -I$with_pcidsk/include/pcidsk"
echo "using libpcidsk from $with_pcidsk."
fi
AC_SUBST([PCIDSK_SETTING], [$PCIDSK_SETTING])
AC_SUBST([PCIDSK_LIB], [$PCIDSK_LIB])
AC_SUBST([PCIDSK_INCLUDE], [$PCIDSK_INCLUDE])
dnl ---------------------------------------------------------------------------
dnl Select a libtiff library to use.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(libtiff,[ --with-libtiff=ARG Libtiff library to use (ARG=internal, yes or path)],,)
AC_MSG_CHECKING([for libtiff])
if test "x${with_libtiff}" = "xyes" -o "x${with_libtiff}" = "x" ; then
dnl Only automatically pick up the external libtiff if it is >= 4.0.
AC_CHECK_LIB(tiff,TIFFScanlineSize64,TIFF_SETTING=external HAVE_BIGTIFF=yes,TIFF_SETTING=internal HAVE_BIGTIFF=yes,)
if test "$TIFF_SETTING" = "external" ; then
dnl Cygwin takes a somewhat restrictive view of what should be exported
dnl from the dll, so don't use the external library if missing semi-private
dnl functions.
AC_CHECK_LIB(tiff,_TIFFsetDoubleArray,TIFF_SETTING=external,TIFF_SETTING=internal,)
fi
if test "$TIFF_SETTING" = "external" ; then
LIBS="-ltiff $LIBS"
AC_MSG_RESULT([using pre-installed libtiff.])
else
AC_MSG_RESULT([using internal TIFF code.])
fi
elif test "x${with_libtiff}" = "xinternal" ; then
TIFF_SETTING=internal
HAVE_BIGTIFF=yes
AC_MSG_RESULT([using internal TIFF code.])
else
TIFF_SETTING=external
if test -r "$with_libtiff/tiff.h" ; then
LIBS="-L$with_libtiff -ltiff $LIBS"
EXTRA_INCLUDES="-I$with_libtiff $EXTRA_INCLUDES"
else
LIBS="-L$with_libtiff/lib -ltiff $LIBS"
EXTRA_INCLUDES="-I$with_libtiff/include $EXTRA_INCLUDES"
fi
AC_MSG_RESULT([using libtiff from ${with_libtiff}.])
dnl Check for the BigTIFF enabled library (libtiff >= 4.0)
AC_CHECK_LIB(tiff,TIFFScanlineSize64,HAVE_BIGTIFF=yes,HAVE_BIGTIFF=no,)
fi
if test "${HAVE_BIGTIFF}" = "yes" ; then
TIFF_OPTS="-DBIGTIFF_SUPPORT"
LOC_MSG([BigTIFF support enabled.])
fi
AC_SUBST(TIFF_SETTING,${TIFF_SETTING})
AC_SUBST(TIFF_OPTS,${TIFF_OPTS})
dnl ---------------------------------------------------------------------------
dnl Select a libgeotiff library to use.
dnl ---------------------------------------------------------------------------
GEOTIFF_INCLUDE=
AC_ARG_WITH(geotiff,[ --with-geotiff=ARG Libgeotiff library to use (ARG=internal, yes or path)],,)
if test "$with_geotiff" = "yes" -o "$with_geotiff" = "" ; then
if test "$TIFF_SETTING" = "internal" ; then
GEOTIFF_SETTING=internal
else
dnl We now require libgeotiff 1.2.1 (for XTIFFClientOpen).
AC_CHECK_LIB(geotiff,XTIFFClientOpen,GEOTIFF_SETTING=external,GEOTIFF_SETTING=internal)
fi
if test "$GEOTIFF_SETTING" = "external" ; then
dnl Now search for headers
if test -r /usr/include/geotiff.h ; then
GEOTIFF_INCLUDE=
dnl Debian (at least some versions of it) install in /usr/include/geotiff
elif test -r /usr/include/geotiff/geotiff.h ; then
GEOTIFF_INCLUDE="-I/usr/include/geotiff"
dnl Fedora and OpenSuse in /usr/include/libgeotiff (#4706)
elif test -r /usr/include/libgeotiff/geotiff.h ; then
GEOTIFF_INCLUDE="-I/usr/include/libgeotiff"
else
AC_CHECK_HEADERS([geotiff.h])
if test "$ac_cv_header_geotiff_h" = "no" ; then
AC_MSG_ERROR([cannot find geotiff.h])
fi
fi
LIBS="-lgeotiff $LIBS"
echo "using pre-installed libgeotiff."
else
echo "using internal GeoTIFF code."
fi
elif test "$with_geotiff" = "internal" ; then
GEOTIFF_SETTING=internal
echo "using internal GeoTIFF code."
else
GEOTIFF_SETTING=external
dnl We now require libgeotiff 1.2.1 (for XTIFFClientOpen).
dnl first check if $with_geotiff/lib has the library:
AC_CHECK_LIB(geotiff,XTIFFClientOpen,GEOTIFF_SETTING=external,GEOTIFF_SETTING=not_found,-L$with_geotiff/lib)
if test $GEOTIFF_SETTING = "external" ; then
LIBS="-L$with_geotiff/lib -lgeotiff $LIBS"
if test -d $with_geotiff/include ; then
EXTRA_INCLUDES="-I$with_geotiff/include $EXTRA_INCLUDES"
fi
else
dnl check if $with_geotiff itself contains the header and library (e.g. as an uninstalled build directory would)
AC_CHECK_LIB(geotiff,XTIFFClientOpen,GEOTIFF_SETTING=external,AC_MSG_ERROR([We require at least GeoTIFF 1.2.1. Consider using the one supplied with GDAL]),-L$with_geotiff)
if test $GEOTIFF_SETTING = "external" ; then
LIBS="-L$with_geotiff -lgeotiff $LIBS"
EXTRA_INCLUDES="-I$with_geotiff $EXTRA_INCLUDES"
fi
fi
echo "using libgeotiff from $with_geotiff."
fi
AC_SUBST(GEOTIFF_SETTING,$GEOTIFF_SETTING)
AC_SUBST(GEOTIFF_INCLUDE,$GEOTIFF_INCLUDE)
dnl ---------------------------------------------------------------------------
dnl Select a JPEG Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(jpeg,[ --with-jpeg[=ARG] Include JPEG support (ARG=internal, no or path)],,)
if test "$with_jpeg" = "no" ; then
JPEG_SETTING=no
echo "jpeg support disabled."
elif test "$with_jpeg" = "yes" -o "$with_jpeg" = "" ; then
AC_CHECK_LIB(jpeg,jpeg_read_scanlines,JPEG_SETTING=external,JPEG_SETTING=internal,)
AC_CHECK_HEADERS(jpeglib.h)
if test "$JPEG_SETTING" = "external" -a "$ac_cv_header_jpeglib_h" = "no" ; then
JPEG_SETTING=internal
fi
if test "$JPEG_SETTING" = "external" -a "$TIFF_SETTING" = "internal" ; then
AC_MSG_CHECKING([for width_in_blocks in jpeglib.h])
rm -f conftest.c
echo '#include <stdio.h>' >> conftest.c
echo '#include "jpeglib.h"' >> conftest.c
echo 'int main() { jpeg_component_info *comptr=0; int i; i = comptr->width_in_blocks; }' >> conftest.c
if test -z "`${CC} -o conftest conftest.c 2>&1`" ; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
JPEG_SETTING=internal
fi
rm -f conftest*
fi
if test "$JPEG_SETTING" = "external" ; then
LIBS="-ljpeg $LIBS"
echo "using pre-installed libjpeg."
else
echo "using internal jpeg code."
fi
elif test "$with_jpeg" = "internal" ; then
JPEG_SETTING=internal
echo "using internal jpeg code."
else
JPEG_SETTING=external
LIBS="-L$with_jpeg -L$with_jpeg/lib -ljpeg $LIBS"
EXTRA_INCLUDES="-I$with_jpeg -I$with_jpeg/include $EXTRA_INCLUDES"
echo "using libjpeg from $with_jpeg."
fi
AC_SUBST(JPEG_SETTING,$JPEG_SETTING)
if test "$JPEG_SETTING" != "no" ; then
OPT_GDAL_FORMATS="jpeg $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Check for BSB in the local tree.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([jpeg12],
AS_HELP_STRING([--without-jpeg12],
[Disable JPEG 8/12bit TIFF support]),,)
AC_MSG_CHECKING([for jpeg12])
if test "$with_jpeg12" = yes ; then
AC_MSG_RESULT([enabled])
JPEG12_ENABLED=yes
elif test x"$with_jpeg12" = x ; then
if test "$JPEG_SETTING" = "internal" -a "$TIFF_SETTING" = "internal" ; then
AC_MSG_RESULT([enabled])
JPEG12_ENABLED=yes
else
JPEG12_ENABLED=no
AC_MSG_RESULT([disabled, libjpeg or libtiff not internal])
fi
else
JPEG12_ENABLED=no
AC_MSG_RESULT([disabled by user])
fi
AC_SUBST(JPEG12_ENABLED,$JPEG12_ENABLED)
dnl ---------------------------------------------------------------------------
dnl Select a GIF Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(gif,[ --with-gif[=ARG] Include GIF support (ARG=internal, no or path)],,)
if test "$with_gif" = "no" ; then
GIF_SETTING=no
echo "gif support disabled."
elif test "$with_gif" = "yes" -o "$with_gif" = "" ; then
AC_CHECK_LIB(gif,DGifOpenFileName,GIF_SETTING=external,GIF_SETTING=internal,)
AC_CHECK_HEADERS(gif_lib.h)
if test "$GIF_SETTING" = "external" ; then
LIBS="-lgif $LIBS"
echo "using pre-installed libgif."
else
echo "using internal gif code."
fi
elif test "$with_gif" = "internal" ; then
GIF_SETTING=internal
echo "using internal gif code."
else
GIF_SETTING=external
LIBS="-L$with_gif -L$with_gif/lib -lgif $LIBS"
EXTRA_INCLUDES="-I$with_gif -I$with_gif/include $EXTRA_INCLUDES"
echo "using libgif from $with_gif."
fi
AC_SUBST(GIF_SETTING,$GIF_SETTING)
if test "$GIF_SETTING" != "no" ; then
OPT_GDAL_FORMATS="gif $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select an OGDI Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
OGDI_INCLUDE=
export OGDI_INCLUDE
AC_ARG_WITH(ogdi,[ --with-ogdi[=ARG] Include OGDI support (ARG=path)],,)
if test "$with_ogdi" = "no" ; then
HAVE_OGDI=no
echo "ogdi support disabled."
elif test "$with_ogdi" = "yes" -o "$with_ogdi" = "" ; then
AC_CHECK_HEADERS(ecs.h)
if test "$ac_cv_header_ecs_h" = "no" ; then
if test -f "/usr/include/ogdi/ecs.h"; then
OGDI_INCLUDE="-I/usr/include/ogdi"
elif test -f "/usr/local/include/ogdi/ecs.h"; then
OGDI_INCLUDE="-I/usr/local/include/ogdi"
elif test -f "/usr/include/ecs.h"; then
OGDI_INCLUDE="-I/usr/include"
elif test -f "/usr/local/include/ecs.h"; then
OGDI_INCLUDE="-I/usr/local/include"
fi
fi
if test "$OGDI_INCLUDE" != "" -o "$ac_cv_header_ecs_h" = "yes"; then
AC_CHECK_LIB(ogdi,cln_GetLayerCapabilities,HAVE_OGDI=yes,HAVE_OGDI=no,)
if test "$HAVE_OGDI" = "yes" ; then
LIBS="-logdi $LIBS"
else
dnl For backward compatibility. Retry with ogdi31 as a name
AC_CHECK_LIB(ogdi31,cln_GetLayerCapabilities,HAVE_OGDI=yes,HAVE_OGDI=no,)
if test "$HAVE_OGDI" = "yes" ; then
LIBS="-logdi31 $LIBS"
fi
fi
else
HAVE_OGDI=no
fi
else
AC_CHECK_LIB(ogdi,cln_GetLayerCapabilities,HAVE_OGDI=yes,HAVE_OGDI=no,-L$with_ogdi -L$with_ogdi/lib -logdi)
if test "$HAVE_OGDI" = "yes" ; then
if test -f "$with_ogdi/ecs.h" -o -f "$with_ogdi/include/ecs.h"; then
LIBS="-L$with_ogdi -L$with_ogdi/lib -logdi $LIBS"
OGDI_INCLUDE="-I$with_ogdi -I$with_ogdi/include"
echo "using libogdi from $with_ogdi."
else
HAVE_OGDI=no
AC_MSG_ERROR([ecs.h not found.])
fi
else
dnl For backward compatibility. Retry with ogdi31 as a name
AC_CHECK_LIB(ogdi31,cln_GetLayerCapabilities,HAVE_OGDI=yes,HAVE_OGDI=no,-L$with_ogdi -L$with_ogdi/lib -logdi31)
if test "$HAVE_OGDI" = "yes" ; then
if test -f "$with_ogdi/ecs.h" -o -f "$with_ogdi/include/ecs.h"; then
LIBS="-L$with_ogdi -L$with_ogdi/lib -logdi31 $LIBS"
OGDI_INCLUDE="-I$with_ogdi -I$with_ogdi/include"
echo "using libogdi31 from $with_ogdi."
else
HAVE_OGDI=no
AC_MSG_ERROR([ecs.h not found.])
fi
else
AC_MSG_ERROR([libogdi not found.])
fi
fi
fi
AC_SUBST(HAVE_OGDI,$HAVE_OGDI)
AC_SUBST(OGDI_INCLUDE,$OGDI_INCLUDE)
if test "$HAVE_OGDI" != "no" ; then
OPT_GDAL_FORMATS="ogdi $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select FME_HOME or disable FME support.
dnl ---------------------------------------------------------------------------
X_FME_HOME=
export X_FME_HOME
AC_ARG_WITH(fme,[ --with-fme[=ARG] Include FMEObjects support (ARG=FME_HOME path)],,)
AC_MSG_CHECKING([for FMEObjects])
if test "$with_fme" = "no" ; then
AC_MSG_RESULT([disabled by user])
elif test "$with_fme" = "yes" ; then
if test "$FME_HOME" = "" ; then
AC_MSG_ERROR([no, FME_HOME not defined!])
elif test -f $FME_HOME/fmeobjects/cpp/isession.h ; then
AC_MSG_RESULT([yes])
X_FME_HOME=$FME_HOME
else
AC_MSG_ERROR([FME_HOME defined, but $FME_HOME/fmeobjects/cpp/issesion.h not found.])
fi
elif test "$with_fme" = "" ; then
if test "$FME_HOME" = "" ; then
AC_MSG_RESULT([no])
elif test -f $FME_HOME/fmeobjects/cpp/isession.h ; then
AC_MSG_RESULT([yes])
X_FME_HOME=$FME_HOME
else
AC_MSG_RESULT([no, FME_HOME defined, but $FME_HOME/fmeobjects/cpp/issesion.h not found.])
fi
else
if test -f $with_fme/fmeobjects/cpp/isession.h ; then
AC_MSG_RESULT([yes])
X_FME_HOME=$with_fme
else
AC_MSG_ERROR([$with_fme/fmeobjects/cpp/issesion.h not found!])
fi
fi
AC_SUBST(X_FME_HOME,$X_FME_HOME)
dnl ---------------------------------------------------------------------------
dnl Select an HDF4 Library to use, or disable driver.
dnl
dnl We assume the user will have libjpeg and libz from other sources when
dnl linking against static HDF4 libraries.
dnl ---------------------------------------------------------------------------
HDF4_INCLUDE=""
AC_ARG_WITH(hdf4,[ --with-hdf4[=ARG] Include HDF4 support (ARG=path)],,)
if test x"$with_hdf4" = x"no" ; then
HAVE_HDF4=no
echo "hdf4 support disabled."
else
if test x"$with_hdf4" = x"yes" -o x"$with_hdf4" = x"" ; then
dnl Fedora has hdf static libraries in /usr/lib/hdf
if test -d /usr/lib64/hdf; then
HDF_LIB_DIR="/usr/lib64/hdf"
elif test -d /usr/lib/hdf; then
HDF_LIB_DIR="/usr/lib/hdf"
else
HDF_LIB_DIR=""
fi
else
if test -d $with_hdf4/lib ; then
HDF_LIB_DIR="$with_hdf4/lib"
else
HDF_LIB_DIR="$with_hdf4"
fi
fi
ORIG_LIBS="$LIBS"
if test "$HDF_LIB_DIR" != "" ; then
LIBS="-L$HDF_LIB_DIR $LIBS"
fi
dnl Debian supplies the HDF4 library which does not conflict with NetCDF.
dnl Test for Debian flavor first. Hint: install the libhdf4-alt-dev package.
AC_CHECK_LIB(mfhdfalt,SDreaddata,HDF_LIB_NAME="-lmfhdfalt -ldfalt",HDF_LIB_NAME=missing,-ldfalt)
dnl If it fails, test again for normal libmfhdf/libdf
if test "$HDF_LIB_NAME" = "missing" ; then
unset ac_cv_lib_mfhdf_SDreaddata
AC_CHECK_LIB(mfhdf,SDreaddata,HDF_LIB_NAME="-lmfhdf -ldf",HDF_LIB_NAME=missing,-ldf)
if test "$HDF_LIB_NAME" = "missing" ; then
unset ac_cv_lib_mfhdf_SDreaddata
AC_CHECK_LIB(hdf4,SDreaddata,HDF_LIB_NAME=-lhdf4,HDF_LIB_NAME=missing,)
fi
fi
dnl Test again, with -ldf, -ljpeg and -lz this time.
if test "$HDF_LIB_NAME" = "missing" ; then
unset ac_cv_lib_mfhdf_SDreaddata
AC_CHECK_LIB(mfhdf,SDreaddata,HDF_LIB_NAME="-lmfhdf -ldf",HDF_LIB_NAME=missing,-ldf -ljpeg -lz)
fi
dnl Not found... again, with -lsz.
if test "$HDF_LIB_NAME" = "missing" ; then
unset ac_cv_lib_mfhdf_SDreaddata
AC_CHECK_LIB(mfhdf,SDreaddata,HDF_LIB_NAME="-lmfhdf -ldf -lsz",HDF_LIB_NAME=missing,-ldf -lsz -ljpeg -lz)
fi
if test "$HDF_LIB_NAME" != "missing" ; then
if test "$HDF_LIB_DIR" != "" ; then
LIBS="-L$HDF_LIB_DIR $HDF_LIB_NAME $ORIG_LIBS"
else
LIBS="$HDF_LIB_NAME $ORIG_LIBS"
fi
dnl Now search for headers
if test "$with_hdf4" = "yes" -o "$with_hdf4" = "" -a -r /usr/include/hdf/hdf.h ; then
HDF4_INCLUDE="-I/usr/include/hdf"
elif test -r "$with_hdf4/hdf/hdf.h" ; then
HDF4_INCLUDE="-I$with_hdf4/hdf"
elif test -r "$with_hdf4/include/hdf/hdf.h" ; then
HDF4_INCLUDE="-I$with_hdf4/include/hdf"
elif test -r "$with_hdf4/include/hdf.h" ; then
HDF4_INCLUDE="-I$with_hdf4/include"
elif test -r "$with_hdf4/hdf.h" ; then
HDF4_INCLUDE="-I$with_hdf4"
fi
HAVE_HDF4=yes
else
if test x"$with_hdf4" != x"" ; then
AC_MSG_ERROR([HDF4 support requested with arg "$with_hdf4", but neither hdf4 nor mfhdf lib found])
else
LIBS="$ORIG_LIBS"
HAVE_HDF4=no
fi
fi
fi
AC_SUBST(HAVE_HDF4,$HAVE_HDF4)
AC_SUBST(HDF4_INCLUDE,$HDF4_INCLUDE)
if test "$HAVE_HDF4" != "no" ; then
OPT_GDAL_FORMATS="hdf4 $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select an HDF5 Library to use, or disable driver.
dnl
dnl ---------------------------------------------------------------------------
HDF5_INCLUDE=""
AC_ARG_WITH(hdf5,[ --with-hdf5[=ARG] Include HDF5 support (ARG=path)],,)
if test "$with_hdf5" = "no" ; then
HAVE_HDF5=no
echo "hdf5 support disabled."
elif test "$with_hdf5" = "yes" -o "$with_hdf5" = "" ; then
AC_CHECK_LIB(hdf5,H5Fopen,HAVE_HDF5=yes,HAVE_HDF5=no,)
if test "$HAVE_HDF5" = "yes" ; then
LIBS="-lhdf5 $LIBS"
fi
dnl Some Linux distros install hdf include files here.
if test "$HAVE_HDF5" = "yes" -a -r /usr/include/hdf5.h ; then
HDF5_INCLUDE="-I/usr/include"
fi
else
if test -d $with_hdf5/lib ; then
HDF5_LIB_DIR=$with_hdf5/lib
else
HDF5_LIB_DIR=$with_hdf5
fi
ORIG_LIBS="$LIBS"
LIBS="-L$HDF5_LIB_DIR $LIBS -lhdf5"
AC_CHECK_LIB(hdf5,H5Fopen,HDF5_LIB_NAME="-lhdf5 ",HDF5_LIB_NAME=missing,-lhdf5)
if test "$HDF5_LIB_NAME" = "missing" ; then
AC_MSG_ERROR([HDF5 support requested with arg $with_hdf5, but no hdf5 lib found])
fi
LIBS="-L$HDF5_LIB_DIR $HDF5_LIB_NAME $ORIG_LIBS"
if test -r "$with_hdf5/hdf5/hdf5.h" ; then
HDF5_INCLUDE="-I$with_hdf5/hdf5"
elif test -r "$with_hdf5/include/hdf5/hdf5.h" ; then
HDF5_INCLUDE="-I$with_hdf5/include/hdf5"
elif test -r "$with_hdf5/include/hdf5.h" ; then
HDF5_INCLUDE="-I$with_hdf5/include"
elif test -r "$with_hdf5/hdf.h" ; then
HDF5_INCLUDE="-I$with_hdf5"
fi
HAVE_HDF5=yes
fi
AC_SUBST(HAVE_HDF5,$HAVE_HDF5)
AC_SUBST(HDF5_INCLUDE,$HDF5_INCLUDE)
if test "$HAVE_HDF5" != "no" ; then
OPT_GDAL_FORMATS="hdf5 $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Check if netcdf library is available.
dnl ---------------------------------------------------------------------------
NETCDF_SETTING=
NETCDF_ROOT=
NETCDF_HAS_NC4=
NETCDF_HAS_HDF4=
NETCDF_NCCONFIG=
AC_ARG_WITH([netcdf],[ --with-netcdf[=ARG] Include netCDF support (ARG=no or netCDF tree prefix)],,)
if test "$with_netcdf" = "no" ; then
NETCDF_SETTING=no
echo "netCDF support disabled."
else
dnl find nc-config location
unset ac_cv_path_NETCDF_NCCONFIG
if test "$with_netcdf" = "yes" -o "$with_netcdf" = "" ; then
AC_PATH_PROG(NETCDF_NCCONFIG, nc-config, no)
else
tmp_path="$with_netcdf/bin$PATH_SEPARATOR$with_netcdf"
AC_PATH_PROG(NETCDF_NCCONFIG, nc-config, no, $tmp_path)
fi
dnl test nc-config
if test "$NETCDF_NCCONFIG" = "no" ; then
echo " did not find nc-config, some features may be missing"
echo " use --with-netcdf=/path/to/netcdf or add nc-config to PATH"
NETCDF_NCCONFIG=
elif test "`$NETCDF_NCCONFIG --version`" = "" ; then
echo "did not get netCDF version from $NETCDF_NCCONFIG ... using fallback"
NETCDF_NCCONFIG=
fi
dnl test linking using flags from nc-config
if test "$NETCDF_NCCONFIG" != "" ; then
AC_MSG_CHECKING([libnetcdf compiler and linker flags with nc-config])
NETCDF_VERSION=`$NETCDF_NCCONFIG --version`
NETCDF_PREFIX=`$NETCDF_NCCONFIG --prefix`
NETCDF_INCLUDEDIR=`$NETCDF_NCCONFIG --includedir`
NETCDF_LIBS=`$NETCDF_NCCONFIG --libs`
echo ""
AC_MSG_RESULT([ got version="$NETCDF_VERSION", prefix="$NETCDF_PREFIX",
libs="$NETCDF_LIBS", includedir="$NETCDF_INCLUDEDIR"])
AC_CHECK_LIB([netcdf], [nc_open], [NETCDF_SETTING=yes], [NETCDF_SETTING=no], $NETCDF_LIBS)
if test "$NETCDF_SETTING" = "yes" ; then
EXTRA_INCLUDES="-I$NETCDF_INCLUDEDIR $EXTRA_INCLUDES"
NETCDF_ROOT=$NETCDF_PREFIX
LIBS="$NETCDF_LIBS $LIBS"
fi
dnl previous behaviour without nc-config
dnl test linking using default settings
elif test "$with_netcdf" = "yes" -o "$with_netcdf" = "" ; then
AC_CHECK_LIB([netcdf], [nc_open], [NETCDF_SETTING=yes], [NETCDF_SETTING=no],)
if test "$NETCDF_SETTING" = "yes" ; then
dnl Fedora has netcdf headers in /usr/include/netcdf
if test -d /usr/include/netcdf ; then
EXTRA_INCLUDES="-I/usr/include/netcdf $EXTRA_INCLUDES"
NETCDF_ROOT="/usr"
dnl RHEL 5 has netcdf headers in /usr/include/netcdf-3
elif test -d /usr/include/netcdf-3 ; then
EXTRA_INCLUDES="-I/usr/include/netcdf-3 $EXTRA_INCLUDES"
NETCDF_ROOT="/usr"
dnl ubuntu and fedora have netcdf headers in /usr/include
elif test -f /usr/include/netcdf.h ; then
NETCDF_ROOT="/usr"
dnl try /usr/local
elif test -f /usr/local/include/netcdf.h ; then
NETCDF_ROOT="/usr/local"
dnl print warning if include cannot be found
else
echo "using pre-installed libnetcdf."
echo -n "libnetcdf is installed but its location cannot be found, "
echo "use --with-netcdf=/path_to_netcdf for proper support"
fi
LIBS="-lnetcdf $LIBS"
if test "$NETCDF_ROOT" != "" ; then
echo "using pre-installed libnetcdf from "$NETCDF_ROOT
fi
else
echo "libnetcdf not found ... netCDF support disabled"
fi
dnl test linking using --with_netcdf dir
else
AC_CHECK_LIB([netcdf], [nc_open], [NETCDF_SETTING=yes], [NETCDF_SETTING=no],-L$with_netcdf -L$with_netcdf/lib)
if test "$NETCDF_SETTING" = "yes" ; then
NETCDF_SETTING=yes
NETCDF_ROOT="$with_netcdf"
if test -d $with_netcdf/lib ; then
LIBS="-L$with_netcdf/lib -lnetcdf $LIBS"
EXTRA_INCLUDES="-I$with_netcdf/include $EXTRA_INCLUDES"
else
LIBS="-L$with_netcdf -lnetcdf $LIBS"
EXTRA_INCLUDES="-I$with_netcdf $EXTRA_INCLUDES"
fi
echo "using libnetcdf from $with_netcdf"
else
echo "libnetcdf not found in "$with_netcdf" ... netCDF support disabled"
fi
fi
dnl test for NC4 and HDF4 support with nc-config
if test "$NETCDF_SETTING" = "yes" ; then
if test "$NETCDF_NCCONFIG" != "" ; then
AC_MSG_CHECKING([for netcdf-4 (and HDF5) support in libnetcdf])
if test "x$($NETCDF_NCCONFIG --has-nc4)" = "xyes"; then :
AC_MSG_RESULT([yes])
NETCDF_HAS_NC4=yes
else
AC_MSG_RESULT([no])
NETCDF_HAS_NC4=no
fi
AC_MSG_CHECKING([for HDF4 support in libnetcdf])
if test "x$($NETCDF_NCCONFIG --has-hdf4)" = "xyes"; then :
AC_MSG_RESULT([yes])
NETCDF_HAS_HDF4=yes
else
AC_MSG_RESULT([no])
NETCDF_HAS_HDF4=no
fi
else
NETCDF_HAS_NC4=no
NETCDF_HAS_HDF4=no
fi
fi
fi
dnl export results
AC_SUBST([NETCDF_SETTING], [$NETCDF_SETTING])
if test "$NETCDF_SETTING" != "no" ; then
AC_SUBST([NETCDF_ROOT], [$NETCDF_ROOT])
AC_SUBST([NETCDF_HAS_NC4], [$NETCDF_HAS_NC4])
AC_SUBST([NETCDF_HAS_HDF4], [$NETCDF_HAS_HDF4])
OPT_GDAL_FORMATS="netcdf $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select a JasPer Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(jasper,[ --with-jasper[=ARG] Include JPEG-2000 support via JasPer library (ARG=path)],,)
if test "$with_jasper" = "no" ; then
HAVE_JASPER=no
AC_MSG_NOTICE([JasPer (JPEG2000) support disabled.])
elif test "$with_jasper" = "yes" -o "$with_jasper" = "" ; then
AC_CHECK_LIB(jasper,jpc_decode,HAVE_JASPER=yes,HAVE_JASPER=no,)
AC_CHECK_LIB(jasper,jp2_decode,HAVE_JASPER=yes,HAVE_JASPER=no,)
AC_CHECK_LIB(jasper,pgx_decode,HAVE_JASPER=yes,HAVE_JASPER=no,)
if test "$HAVE_JASPER" = "yes" ; then
LIBS="-ljasper $LIBS"
fi
else
HAVE_JASPER=yes
LIBS="-L$with_jasper -L$with_jasper/lib -ljasper $LIBS"
EXTRA_INCLUDES="-I$with_jasper -I$with_jasper/include $EXTRA_INCLUDES"
AC_MSG_NOTICE([using JasPer library from $with_jasper.])
fi
if test "$HAVE_JASPER" != "no" ; then
OPT_GDAL_FORMATS="jpeg2000 $OPT_GDAL_FORMATS"
dnl Test whether we have UUID JasPer hack
AC_CHECK_LIB(jasper,jp2_encode_uuid,HAVE_JASPER_UUID=yes,HAVE_JASPER_UUID=no,)
if test "$HAVE_JASPER_UUID" = "yes" ; then
AC_MSG_NOTICE([hacked JasPer version found (JasPer UUID), GeoJP2 enabled.])
JASPER_FLAGS=-DHAVE_JASPER_UUID
else
AC_MSG_NOTICE([hacked JasPer version not found, GeoJP2 disabled.])
fi
fi
AC_SUBST([HAVE_JASPER],$HAVE_JASPER)
AC_SUBST([JASPER_FLAGS],$JASPER_FLAGS)
dnl ---------------------------------------------------------------------------
dnl Select a OpenJPEG Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(openjpeg,[ --with-openjpeg[=ARG] Include JPEG-2000 support via OpenJPEG v2 library (ARG=path)],,)
if test "$with_openjpeg" = "no" ; then
HAVE_OPENJPEG=no
AC_MSG_NOTICE([OpenJPEG (JPEG2000) support disabled.])
elif test "$with_openjpeg" = "yes" -o "$with_openjpeg" = "" ; then
AC_CHECK_LIB(openjpeg,opj_decode_tile_data,HAVE_OPENJPEG=yes,HAVE_OPENJPEG=no,)
AC_CHECK_HEADERS(openjpeg.h)
if test "$ac_cv_header_openjpeg_h" = "no"; then
HAVE_OPENJPEG=no
fi
if test "$HAVE_OPENJPEG" = "yes" ; then
LIBS="-lopenjpeg $LIBS"
fi
else
HAVE_OPENJPEG=yes
LIBS="-L$with_openjpeg -L$with_openjpeg/lib -lopenjpeg $LIBS"
if test -r $with_openjpeg/include/openjpeg-2.0/openjpeg.h ; then
EXTRA_INCLUDES="-I$with_openjpeg/include/openjpeg-2.0 $EXTRA_INCLUDES"
elif test -r $with_openjpeg/include/openjpeg.h ; then
EXTRA_INCLUDES="-I$with_openjpeg/include $EXTRA_INCLUDES"
elif test -r $with_openjpeg/openjpeg.h ; then
EXTRA_INCLUDES="-I$with_openjpeg $EXTRA_INCLUDES"
else
AC_MSG_ERROR([openjpeg.h not found in $with_openjpeg/include or $with_openjpeg/include/openjpeg-2.0])
fi
AC_CHECK_LIB(openjpeg,opj_decode_tile_data,HAVE_OPENJPEG=yes,HAVE_OPENJPEG=no,)
if test "$HAVE_OPENJPEG" = "yes" ; then
AC_MSG_NOTICE([using OpenJPEG library from $with_openjpeg.])
fi
fi
if test "$HAVE_OPENJPEG" != "no" ; then
OPT_GDAL_FORMATS="openjpeg $OPT_GDAL_FORMATS"
fi
AC_SUBST([HAVE_OPENJPEG],$HAVE_OPENJPEG)
dnl ---------------------------------------------------------------------------
dnl Select a FGDB API to use, or disable driver.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(fgdb,[ --with-fgdb[=ARG] Include ESRI File Geodatabase support (ARG=FGDP API Path, yes or no)],,)
if test "$with_fgdb" = "no" ; then
FGDB_ENABLED=no
echo "FGDB support disabled."
elif test "$with_fgdb" = "yes" -o "$with_fgdb" = "" ; then
AC_MSG_CHECKING([for FileGDBAPI])
rm -f testfgdb.*
rm -f testfgdb
echo "#include <FileGDBAPI.h>" > testfgdb.cpp
echo "using namespace FileGDBAPI;" >> testfgdb.cpp
echo "int main() { Geodatabase oDB; std::wstring osStr; ::OpenGeodatabase(osStr, oDB); return 0; }" >> testfgdb.cpp
if test -z "`${CXX} ${CPPFLAGS} testfgdb.cpp -lFileGDBAPI -o testfgdb 2>&1`" ; then
AC_MSG_RESULT([FileGDBAPI found])
FGDB_ENABLED="yes"
FGDB_LIB="-lFileGDBAPI"
else
if test "$with_fgdb" = "yes"; then
AC_MSG_ERROR([FileGDBAPI not found.])
else
AC_MSG_RESULT([FileGDBAPI not found.])
fi
fi
rm -f testfgdb.*
rm -f testfgdb
else
case "${host_os}" in
*darwin*)
AC_MSG_CHECKING([for libFileGDBAPI.dylib in in $with_fgdb/lib])
FGDB_ENABLED=yes
if test -r $with_fgdb/lib/libFileGDBAPI.dylib ; then
AC_MSG_RESULT([found.])
FGDB_LIB="-L$with_fgdb/lib -lFileGDBAPI -lfgdbunixrtl"
else
AC_MSG_ERROR([not found.])
fi
;;
*)
AC_MSG_CHECKING([for libFileGDBAPI.so in in $with_fgdb/lib])
FGDB_ENABLED=yes
if test -r $with_fgdb/lib/libFileGDBAPI.so ; then
AC_MSG_RESULT([found.])
FGDB_LIB="-L$with_fgdb/lib -lFileGDBAPI -lfgdblinuxrtl"
else
AC_MSG_ERROR([not found.])
fi
;;
esac
#AC_MSG_CHECKING([for libFileGDBAPI.so in in $with_fgdb/lib])
#FGDB_ENABLED=yes
#if test -r $with_fgdb/lib/libFileGDBAPI.so ; then
#AC_MSG_RESULT([found.])
#FGDB_LIB="-L$with_fgdb/lib -lFileGDBAPI"
#else
#AC_MSG_ERROR([not found.])
#fi
AC_MSG_CHECKING([for FileGDBAPI.h in $with_fgdb/include])
if test -r $with_fgdb/include/FileGDBAPI.h ; then
AC_MSG_RESULT([found.])
FGDB_INC="-I$with_fgdb/include"
else
AC_MSG_ERROR([not found.])
fi
fi
AC_SUBST(FGDB_ENABLED, $FGDB_ENABLED)
AC_SUBST(FGDB_LIB, $FGDB_LIB)
AC_SUBST(FGDB_INC, $FGDB_INC)
dnl ---------------------------------------------------------------------------
dnl Select a ECW Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(ecw,[ --with-ecw[=ARG] Include ECW support (ARG=ECW SDK Path, yes or no)],,)
if test ! -z "`uname | grep Darwin`" ; then
CARBON_FRAMEWORK="-framework Carbon"
else
CARBON_FRAMEWORK=
fi
if test "$with_ecw" = "no" ; then
ECW_SETTING=no
echo "ECW support disabled."
elif test "$with_ecw" = "yes" -o "$with_ecw" = "" ; then
AC_CHECK_LIB(NCSEcw,NCScbmOpenFileView,ECW_SETTING=yes,ECW_SETTING=no,-lNCSCnet -lNCSUtil)
if test "$ECW_SETTING" = "yes" ; then
LIBS="-lNCSEcw -lNCSEcwC -lNCSCnet -lNCSUtil $LIBS"
fi
if test "$ECW_SETTING" = "no" ; then
AC_CHECK_LIB(ecwj2,NCScbmOpenFileView,ECW_SETTING=yes,ECW_SETTING=no,$CARBON_FRAMEWORK)
if test "$ECW_SETTING" = "yes" ; then
LIBS="-lecwj2 $CARBON_FRAMEWORK $LIBS"
fi
fi
else
AC_MSG_CHECKING([for libNCSEcw.so or libecwj2])
ECW_SETTING=yes
if test -r $with_ecw/lib/libNCSCnet.so -o -r $with_ecw/lib/libNCSCnet.dylib ; then
LIBS="-L$with_ecw/lib -lNCSEcw -lNCSEcwC -lNCSCnet -lNCSUtil $LIBS"
AC_MSG_RESULT([found in $with_ecw/lib.])
elif test -r $with_ecw/lib/libNCSCNet.so -o -r $with_ecw/lib/libNCSCNet.dylib ; then
LIBS="-L$with_ecw/lib -lNCSEcw -lNCSEcwC -lNCSCNet -lNCSUtil $LIBS"
AC_MSG_RESULT([found in $with_ecw/lib.])
elif test -r $with_ecw/bin/libNCSEcw.so -o -r $with_ecw/bin/libNCSEcw.dylib ; then
LIBS="-L$with_ecw/bin -lNCSEcw -lNCSEcwC -lNCSCnet -lNCSUtil $LIBS"
AC_MSG_RESULT([found in $with_ecw/bin.])
elif test -r $with_ecw/lib/libecwj2.dylib ; then
LIBS="-L$with_ecw/lib -lecwj2 $CARBON_FRAMEWORK $LIBS"
AC_MSG_RESULT([found libecwj2 in $with_ecw/lib.])
else
AC_MSG_ERROR([not found in $with_ecw/lib or $with_ecw/bin.])
fi
AC_MSG_CHECKING([for NCSECWClient.h in $with_ecw/include])
if test -r $with_ecw/include/NCSECWClient.h ; then
AC_MSG_RESULT([found.])
EXTRA_INCLUDES="-I$with_ecw/include $EXTRA_INCLUDES"
else
AC_MSG_ERROR([not found.])
fi
fi
AC_SUBST(ECW_SETTING,$ECW_SETTING)
if test "$ECW_SETTING" != "no" ; then
OPT_GDAL_FORMATS="ecw $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select Kakadu library or disable driver.
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([for Kakadu JPEG2000 support])
AC_ARG_WITH(kakadu,[ --with-kakadu[=ARG] Include Kakadu/JPEG2000 support],,)
if test "$with_kakadu" = "no" -o "$with_kakadu" = "" ; then
KAKDIR=
AC_MSG_RESULT([not requested.])
HAVE_KAKADU=no
elif test "$with_kakadu" = "yes" ; then
AC_MSG_ERROR([
For JPEG2000 support using Kakadu you need provide the path to the Kakadu
build directory. Note that Kakadu is *not* free software.])
else
KAKDIR=$with_kakadu
OPT_GDAL_FORMATS="jp2kak jpipkak $OPT_GDAL_FORMATS"
LIBS="$LIBS -L$with_kakadu/lib -lkdu"
AC_MSG_RESULT([requested.])
HAVE_KAKADU=yes
fi
AC_SUBST(KAKDIR,$KAKDIR)
dnl ---------------------------------------------------------------------------
dnl Select MrSID library or disable driver.
dnl ---------------------------------------------------------------------------
MRSID_FLAGS=
HAVE_MRSID=no
AC_ARG_WITH(mrsid,[ --with-mrsid[=ARG] Include MrSID support (ARG=path to MrSID DSDK or no)],,)
AC_ARG_WITH(jp2mrsid,[ --with-jp2mrsid[=ARG] Enable MrSID JPEG2000 support (ARG=yes/no)],,)
if test "x$with_mrsid" = "xno" -o "x$with_mrsid" = "x" ; then
HAVE_MRSID=no
AC_MSG_NOTICE([MrSID support disabled.])
else
MRSID_BASE="$with_mrsid/include"
AC_MSG_CHECKING([for lt_base.h in $MRSID_BASE/support])
if test -r "$MRSID_BASE/support/lt_base.h" ; then
AC_MSG_RESULT([found MrSID DSDK version 4.x or newer.])
HAVE_MRSID=yes
MRSID_INCLUDE="-I$MRSID_BASE/base -I$MRSID_BASE/metadata -I$MRSID_BASE/mrsid_readers -I$MRSID_BASE/j2k_readers -I$MRSID_BASE/support"
else
AC_MSG_RESULT([not found.])
AC_MSG_CHECKING([for lt_base.h in $MRSID_BASE])
if test -r "$MRSID_BASE/lt_base.h" ; then
AC_MSG_RESULT([found MrSID DSDK version 7.x or newer.]);
HAVE_MRSID=yes
MRSID_INCLUDE="-I$MRSID_BASE"
fi
fi
if test $HAVE_MRSID = yes ; then
MRSID_LIBS="-lpthread"
if test -r "$with_mrsid/lib/libltiesdk.a" ; then # v8+ esdk contains dsdk
_LIBPART=lib
MRSID_LIBS="-lltiesdk $MRSID_LIBS"
elif test -e "$with_mrsid/lib/libltidsdk.a" \
-o -e "$with_mrsid/lib/libltidsdk.so" \
-o -e "$with_mrsid/lib/libltidsdk.dylib" ; then
_LIBPART=lib
MRSID_LIBS="-lltidsdk $MRSID_LIBS"
else
_LIBPART=lib/Release
MRSID_LIBS="-lltidsdk $MRSID_LIBS"
fi
AC_MSG_CHECKING([for MG3ImageWriter.h in $with_mrsid/include/mrsid_writers])
if test -r "$with_mrsid/include/mrsid_writers/MG3ImageWriter.h" ; then
AC_MSG_RESULT([found MrSID ESDK version 4.x or newer.])
MRSID_FLAGS="-DMRSID_ESDK $MRSID_FLAGS"
MRSID_INCLUDE="-I$with_mrsid/include/mrsid_writers -I$with_mrsid/include/j2k_writers $MRSID_INCLUDE"
if test -r $with_mrsid/3rd-party/lib/Release/libcryptopp.a ; then
MRSID_LIBS="-lltiesdk -lcryptopp -lxmlparse $MRSID_LIBS"
else
MRSID_LIBS="-lltiesdk -lxmlparse $MRSID_LIBS"
fi
else
AC_MSG_RESULT([no encoding support.])
fi
AC_MSG_CHECKING([for MrSID JPEG2000 support])
if test "x$with_jp2mrsid" = "xyes" -a "$HAVE_KAKADU" = "yes" ; then
AC_MSG_ERROR([MrSID JPEG2000 support requested, but this is incompatible with use of standalone Kakadu])
fi
MRSID_KAKADU_LIB=""
if test "$HAVE_KAKADU" = "no" ; then
if test x"$with_jp2mrsid" = x"" -o x"$with_jp2mrsid" = x"yes" ; then
if test -r "$with_mrsid/3rd-party/$_LIBPART/libltikdu.a" ; then
with_jp2mrsid=yes
MRSID_KAKADU_LIB=-lltikdu
elif test -r "$with_mrsid/3rd-party/$_LIBPART/liblt_kakadu.a" ; then
with_jp2mrsid=yes
MRSID_KAKADU_LIB=-llt_kakadu
elif test -e "$with_mrsid/lib/libltidsdk.so" \
-o -e "$with_mrsid/lib/libltidsdk.dylib"; then # v8+ .so has kdu
with_jp2mrsid=yes
elif test x"$with_jp2mrsid" = x"yes" ; then
AC_MSG_ERROR([MrSID JPEG2000 support requested, but libltikdu.a not found.])
else
with_jp2mrsid=no
fi
fi
fi
if test "x$with_jp2mrsid" = "xyes" ; then
MRSID_LIBS="$MRSID_LIBS $MRSID_KAKADU_LIB"
MRSID_FLAGS="-DMRSID_J2K $MRSID_FLAGS"
AC_MSG_RESULT([enabled])
else
AC_MSG_RESULT([disabled])
fi
MRSID_LIBS="-L$with_mrsid/$_LIBPART $MRSID_LIBS"
MRSID_LIBS="-L$with_mrsid/3rd-party/$_LIBPART $MRSID_LIBS"
else
HAVE_MRSID=no
AC_MSG_RESULT([not found.])
AC_MSG_ERROR([ MrSID requested, but components not found.])
fi
fi
AC_SUBST(MRSID_INCLUDE,$MRSID_INCLUDE)
AC_SUBST(MRSID_FLAGS,$MRSID_FLAGS)
AC_SUBST(MRSID_LIBS,$MRSID_LIBS)
if test "$HAVE_MRSID" != "no" ; then
CPPFLAGS="-D_REENTRANT $CPPFLAGS"
OPT_GDAL_FORMATS="mrsid $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Select MrSID/MG4 Lidar library or disable driver.
dnl ---------------------------------------------------------------------------
MRSID_LIDAR_FLAGS=
HAVE_MRSID_LIDAR=no
AC_ARG_WITH(mrsid_lidar,[ --with-mrsid_lidar[=ARG] Include MrSID/MG4 LiDAR support (ARG=path to LizardTech LiDAR SDK or no)],,)
if test "x$with_mrsid_lidar" = "xno" -o "x$with_mrsid_lidar" = "x" ; then
HAVE_MRSID_LIDAR=no
AC_MSG_NOTICE([MrSID/MG4 Lidar support disabled.])
else
MRSID_LIDAR_BASE="$with_mrsid_lidar"
if test -r "$MRSID_LIDAR_BASE/include/lidar/Version.h" ; then
AC_MSG_RESULT([found LizardTech LiDAR SDK 1.1 or newer.])
HAVE_MRSID_LIDAR=yes
else
HAVE_MRSID_LIDAR=no
AC_MSG_RESULT([not found.])
AC_MSG_ERROR([ MrSID/MG4 Lidar requested, but components not found.])
fi
if test $HAVE_MRSID_LIDAR = yes ; then
if test -e "$MRSID_LIDAR_BASE/lib/liblti_lidar_dsdk.so" \
-o -e "$MRSID_LIDAR_BASE/lib/liblti_lidar_dsdk.dylib"; then
MRSID_LIDAR_LIBS="-L$MRSID_LIDAR_BASE/lib -llti_lidar_dsdk"
MRSID_LIDAR_INCLUDE="-I$MRSID_LIDAR_BASE/include"
else
MRSID_LIDAR_LIBS="-L$MRSID_LIDAR_BASE/lib/Release -llti_lidar_dsdk"
MRSID_LIDAR_INCLUDE="-I$MRSID_LIDAR_BASE/include"
fi
fi
fi
AC_SUBST(MRSID_LIDAR_INCLUDE,$MRSID_LIDAR_INCLUDE)
AC_SUBST(MRSID_LIDAR_LIBS,$MRSID_LIDAR_LIBS)
if test "$HAVE_MRSID_LIDAR" != "no" ; then
OPT_GDAL_FORMATS="mrsid_lidar $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Enable MSG format if EUMETSAT Wavelet Transform Software
dnl available in the local tree
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([msg],
AS_HELP_STRING([--with-msg[=ARG]],
[Enable MSG driver (ARG=yes or no)]),,)
HAVE_MSG=no
HAVE_EUMETSATWT=no
if test "x$with_msg" = "xyes" ; then
AC_MSG_CHECKING([for EUMETSAT Wavelet Transformation Software])
if test -d "frmts/msg/PublicDecompWT" -a \
-f "frmts/msg/PublicDecompWT/COMP/Inc/CImage.h"; then
HAVE_EUMETSATWT=yes
else
HAVE_EUMETSATWT=no
fi
AC_MSG_RESULT([$HAVE_EUMETSATWT])
fi
AC_MSG_CHECKING([for MSG])
if test "x$with_msg" = "xyes" -o "x$with_msg" = "x" \
-a "x$HAVE_EUMETSATWT" = "xyes"; then
OPT_GDAL_FORMATS="msg $OPT_GDAL_FORMATS"
HAVE_MSG=yes
AC_MSG_RESULT([enabled])
else
HAVE_MSG=no
AC_MSG_RESULT([not requested])
fi
dnl ---------------------------------------------------------------------------
dnl Check for BSB in the local tree.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([bsb],
AS_HELP_STRING([--without-bsb],
[Disable BSB driver (legal issues pending]),,)
AC_MSG_CHECKING([for BSB])
if test "$with_bsb" = yes -o x"$with_bsb" = x ; then
OPT_GDAL_FORMATS="bsb $OPT_GDAL_FORMATS"
AC_MSG_RESULT([enabled])
else
AC_MSG_RESULT([disabled by user])
fi
dnl ---------------------------------------------------------------------------
dnl Check for GeoRaster in the local tree.
dnl ---------------------------------------------------------------------------
ORACLE_OCI_REQ_VERSION="10.0.1"
AX_LIB_ORACLE_OCI($ORACLE_OCI_REQ_VERSION)
if test "$HAVE_ORACLE_OCI" = "yes"; then
OPT_GDAL_FORMATS="georaster $OPT_GDAL_FORMATS"
HAVE_GEORASTER=yes
else
HAVE_GEORASTER=no
fi
dnl ---------------------------------------------------------------------------
dnl Check for GRIB in the local tree.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([grib],
AS_HELP_STRING([--without-grib],
[Disable GRIB driver]),,)
AC_MSG_CHECKING([for GRIB])
if test "$with_grib" = yes -o x"$with_grib" = x ; then
OPT_GDAL_FORMATS="grib $OPT_GDAL_FORMATS"
HAVE_GRIB=yes
AC_MSG_RESULT([enabled])
else
HAVE_GRIB=no
AC_MSG_RESULT([disabled by user])
fi
dnl ---------------------------------------------------------------------------
AC_SUBST([OPT_GDAL_FORMATS], [$OPT_GDAL_FORMATS])
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(ogr,[ --without-ogr Don't build OGR into shared library],,)
if test "$with_ogr" = yes -o x"$with_ogr" = x ; then
echo checking for OGR ... enabled
OGR_ENABLED=yes
else
echo checking for OGR ... disabled by user
OGR_ENABLED=no
fi
AC_SUBST(OGR_ENABLED,$OGR_ENABLED)
dnl ---------------------------------------------------------------------------
dnl Select an MySQL Library to use, or disable driver.
dnl ---------------------------------------------------------------------------
MYSQL_CONFIG=no
AC_ARG_WITH(mysql,[ --with-mysql[=ARG] Include MySQL (ARG=path to mysql_config) [[default=no]]],,)
if test "$with_mysql" = "yes" ; then
AC_PATH_PROG(MYSQL_CONFIG, mysql_config, no)
else
if test "x$with_mysql" != "x" ; then
MYSQL_CONFIG=$with_mysql
fi
fi
AC_MSG_CHECKING([for MySQL])
if test "$MYSQL_CONFIG" = "no" ; then
HAVE_MYSQL=no
MYSQL_LIB=
MYSQL_INC=
AC_MSG_RESULT([no])
else
if test -d $MYSQL_CONFIG ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([--with-mysql argument is a directory. It should be the path to the mysql_config script, often somewhere like /usr/local/bin/mysql_config.])
fi
if test \! -x $MYSQL_CONFIG ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([--with-mysql argument is a not an executable file. It should be the path to the mysql_config script, often somewhere like /usr/local/bin/mysql_config.])
fi
MYSQL_VERSION="`$MYSQL_CONFIG --version`"
case ${MYSQL_VERSION} in
[[0-3]*])
HAVE_MYSQL=no
AC_MSG_RESULT([no, mysql is pre-4.x])
;;
*)
HAVE_MYSQL=yes
MYSQL_LIB="`$MYSQL_CONFIG --libs`"
MYSQL_INC="`$MYSQL_CONFIG --include`"
AC_MSG_RESULT([yes])
;;
esac
fi
AC_SUBST(HAVE_MYSQL,$HAVE_MYSQL)
AC_SUBST(MYSQL_INC,$MYSQL_INC)
AC_SUBST(MYSQL_LIB,$MYSQL_LIB)
dnl ---------------------------------------------------------------------------
dnl INGRES support.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(ingres,[ --with-ingres=ARG Include Ingres (ARG=$II_SYSTEM)],,)
AC_MSG_CHECKING([for Ingres])
if test "$with_ingres" = "no" -o "x$with_ingres" = "x" ; then
HAVE_INGRES=no
II_SYSTEM=
INGRES_LIB=
INGRES_INC=
AC_MSG_RESULT([no])
elif test "$with_ingres" = "yes" ; then
AC_MSG_ERROR([--with-ingres requires a path argument ($II_SYSTEM)])
else
HAVE_INGRES=yes
II_SYSTEM=$with_ingres
INGRES_LIB="-L$II_SYSTEM/ingres/lib \
$II_SYSTEM/ingres/lib/iiclsadt.o \
$II_SYSTEM/ingres/lib/iiuseradt.o \
-liiapi.1 -lcompat.1 -lq.1 -lframe.1"
INGRES_INC=-I$II_SYSTEM/ingres/files
fi
AC_SUBST(HAVE_INGRES,$HAVE_INGRES)
AC_SUBST(II_SYSTEM,$II_SYSTEM)
AC_SUBST(INGRES_LIB,$INGRES_LIB)
AC_SUBST(INGRES_INC,$INGRES_INC)
dnl ---------------------------------------------------------------------------
dnl Check for Xerces C++ Parser support.
dnl ---------------------------------------------------------------------------
XERCES_REQ_VERSION="2.7.0"
AX_LIB_XERCES($XERCES_REQ_VERSION)
if test "$HAVE_XERCES" = "yes"; then
LIBS="$XERCES_LDFLAGS $LIBS"
fi
AC_SUBST([HAVE_XERCES], $HAVE_XERCES)
AC_SUBST([XERCES_INCLUDE], $XERCES_CFLAGS)
dnl ---------------------------------------------------------------------------
dnl Enable NAS if we have Xerces.
dnl ---------------------------------------------------------------------------
if test "$HAVE_XERCES" = "yes" ; then
HAVE_NAS=yes
else
HAVE_NAS=no
fi
AC_SUBST([HAVE_NAS], $HAVE_NAS)
dnl ---------------------------------------------------------------------------
dnl Check for Expat configuration.
dnl ---------------------------------------------------------------------------
dnl Expat 1.95.0 released in 2000-09-28
EXPAT_REQ_VERSION="1.95.0"
AX_LIB_EXPAT($EXPAT_REQ_VERSION)
if test "$HAVE_EXPAT" = "yes"; then
LIBS="$EXPAT_LDFLAGS $LIBS"
fi
AC_SUBST([HAVE_EXPAT], $HAVE_EXPAT)
AC_SUBST([EXPAT_INCLUDE], $EXPAT_CFLAGS)
dnl ---------------------------------------------------------------------------
dnl Check for Google libkml support.
dnl ---------------------------------------------------------------------------
LIBKML_REQ_VERSION="1.3.0"
AX_LIB_LIBKML($LIBKML_REQ_VERSION)
if test "$HAVE_LIBKML" = "yes"; then
LIBS="$LIBKML_LDFLAGS $LIBS"
fi
AC_SUBST([HAVE_LIBKML], $HAVE_LIBKML)
AC_SUBST([LIBKML_INCLUDE], $LIBKML_CFLAGS)
dnl ---------------------------------------------------------------------------
dnl Check for ODBC support.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(odbc,[ --with-odbc[=ARG] Include ODBC support (ARG=no or path)],,)
if test "$with_odbc" = "no" ; then
ODBC_SETTING=no
echo "ODBC support disabled."
elif test "$with_odbc" = "yes" -o "$with_odbc" = "" ; then
AC_CHECK_LIB(odbc,SQLConnect,ODBC_SETTING=yes,ODBC_SETTING=no,)
AC_CHECK_LIB(odbcinst,SQLInstallDriverEx,ODBC_SETTING=yes,ODBC_SETTING=no,)
if test "$ODBC_SETTING" = "yes" ; then
if test -f /usr/local/include/sql.h -o -f /usr/include/sql.h ; then
ODBC_SETTING=yes
else
echo "odbc library found, but sql.h missing, ODBC support disabled."
ODBC_SETTING=no
fi
fi
if test "$ODBC_SETTING" = "yes" ; then
LIBS="-lodbc -lodbcinst $LIBS"
fi
else
ODBC_SETTING=yes
LIBS="-L$with_odbc -L$with_odbc/lib -lodbc -lodbcinst $LIBS"
EXTRA_INCLUDES="-I$with_odbc -I$with_odbc/include $EXTRA_INCLUDES"
echo "using odbc library from $with_odbc."
fi
AC_SUBST(ODBC_SETTING,$ODBC_SETTING)
dnl ---------------------------------------------------------------------------
dnl Check for OCI support.
dnl ---------------------------------------------------------------------------
ORACLE_OCI_REQ_VERSION="8.1.7"
AX_LIB_ORACLE_OCI($ORACLE_OCI_REQ_VERSION)
if test "$HAVE_ORACLE_OCI" = "yes"; then
OCI_INCLUDE="$ORACLE_OCI_CFLAGS"
LIBS="$ORACLE_OCI_LDFLAGS $LIBS"
fi
AC_SUBST([HAVE_OCI], [$HAVE_ORACLE_OCI])
AC_SUBST([OCI_INCLUDE], $[OCI_INCLUDE])
dnl ---------------------------------------------------------------------------
dnl Check for DODS.
dnl ---------------------------------------------------------------------------
HAVE_DODS=no
AC_MSG_CHECKING(Checking for DODS)
AC_ARG_WITH(dods_root,
[ --with-dods-root[=ARG] Include DODS support (ARG=no or absolute path)],
,,)
if test -z "$with_dods_root" -o "$with_dods_root" = "no"; then
AC_MSG_RESULT(disabled)
elif test "$with_dods_root" = "yes" ; then
AC_MSG_ERROR([--with-dods-root requires path to dods root as argument])
else
DODS_LIB=$with_dods_root/lib
DODS_INC="-I$with_dods_root/include -I$with_dods_root/include/libdap -I$with_dods_root/include/dap"
DODS_BIN=$with_dods_root/bin
dnl Test if we have libdap >= 3.10
dnl From libdap 3.10, AISConnect.h has been renamed as Connect.h
rm -f islibdappost310.*
echo '#include "Connect.h"' > islibdappost310.cpp
echo 'int main(int argc, char** argv) { return 0; } ' >> islibdappost310.cpp
if test -z "`${CXX} islibdappost310.cpp -c ${DODS_INC} 2>&1`" ; then
dnl yes, libdap >= 3.10
DODS_INC="$DODS_INC -DLIBDAP_310 -DLIBDAP_39"
AC_MSG_RESULT([libdap >= 3.10])
else
AC_MSG_RESULT([libdap < 3.10])
dnl Test if we have libdap < 3.9
dnl Before libdap < 3.9, DAS derived from AttrTable class
dnl I wish they had defines with version numbers instead of this test !
rm -f islibdappre39.*
echo '#include "DAS.h"' > islibdappre39.cpp
echo '#include "AttrTable.h"' >> islibdappre39.cpp
echo 'using namespace libdap;' >> islibdappre39.cpp
echo 'int main(int argc, char** argv) { DAS oDAS; AttrTable& oAttrTable = oDAS; } ' >> islibdappre39.cpp
if test -z "`${CXX} islibdappre39.cpp -c ${DODS_INC} 2>&1`" ; then
dnl yes, libdap < 3.9
AC_MSG_RESULT([libdap < 3.9])
else
DODS_INC="$DODS_INC -DLIBDAP_39"
AC_MSG_RESULT([libdap >= 3.9])
fi
rm -f islibdappre39.*
fi
rm -f islibdappost310.*
dnl Add the DODS libraries to LIBS
if test -x $DODS_BIN/opendap-config ; then
dnl OPeNDAP 3.4 and earlier lack opendap-config, but use it if avail.
LIBS="$LIBS `$DODS_BIN/opendap-config --libs`"
elif test -x $DODS_BIN/dap-config ; then
dnl OPeNDAP 3.4 and earlier lack opendap-config, but use it if avail.
LIBS="$LIBS `$DODS_BIN/dap-config --libs`"
else
dnl Otherwise try to put things together in a more primitive way.
LIBS="$LIBS -L$DODS_LIB -ldap++ -lpthread -lrx"
dnl Add curl to LIBS; it might be local to DODS or generally installed
if test -x $DODS_BIN/curl-config; then
LIBS="$LIBS `$DODS_BIN/curl-config --libs`"
elif which curl-config > /dev/null 2>&1; then
LIBS="$LIBS `curl-config --libs`"
else
AC_MSG_ERROR([You gave a dods root, but I can't find curl!])
fi
if test -x $DODS_BIN/xml2-config; then
LIBS="$LIBS `$DODS_BIN/xml2-config --libs`"
elif which xml2-config > /dev/null 2>&1; then
LIBS="$LIBS `xml2-config --libs`"
else
AC_MSG_ERROR([You gave a dods root, but I can't find xml2!])
fi
fi
OPT_GDAL_FORMATS="dods $OPT_GDAL_FORMATS"
DODSDEF=-DFRMT_dods
AC_MSG_RESULT(setting DODS root directory to $with_dods_root)
HAVE_DODS=yes
fi
dnl This is used by the GNUmakefile in frmts/dods (via GDALmake.opt)
AC_SUBST(DODS_INC)
dnl ---------------------------------------------------------------------------
dnl Check for curl (ie. for wcs).
dnl ---------------------------------------------------------------------------
CURL_SETTING=no
CURL_INC=
CURL_LIB=
AC_ARG_WITH(curl,
[ --with-curl[=ARG] Include curl (ARG=path to curl-config.)],,,)
dnl Clear some cache variables
unset ac_cv_path_LIBCURL
if test "`basename xx/$with_curl`" = "curl-config" ; then
LIBCURL_CONFIG="$with_curl"
elif test "$with_curl" = "no" ; then
LIBCURL_CONFIG=no
else
AC_PATH_PROG(LIBCURL_CONFIG, curl-config, no)
fi
if test "$LIBCURL_CONFIG" != "no" ; then
CURL_VERNUM=`$LIBCURL_CONFIG --vernum`
CURL_VER=`$LIBCURL_CONFIG --version | awk '{print $2}'`
AC_MSG_RESULT([ found libcurl version $CURL_VER])
AC_CHECK_LIB(curl,curl_global_init,CURL_SETTING=yes,CURL_SETTING=no,`$LIBCURL_CONFIG --libs`)
fi
if test "$CURL_SETTING" = "yes" ; then
CURL_INC=`$LIBCURL_CONFIG --cflags`
CURL_LIB=`$LIBCURL_CONFIG --libs`
OPT_GDAL_FORMATS="wcs wms $OPT_GDAL_FORMATS"
fi
AC_SUBST(CURL_SETTING,$CURL_SETTING)
AC_SUBST(CURL_INC, $CURL_INC)
AC_SUBST(CURL_LIB, $CURL_LIB)
dnl ---------------------------------------------------------------------------
dnl Check for SpatiaLite.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(spatialite,
[ --with-spatialite=ARG Include SpatiaLite support (ARG=no(default), yes or path)],
,,)
HAVE_SPATIALITE=no
SPATIALITE_AMALGAMATION=no
if test -z "$with_spatialite" -o "$with_spatialite" = "no"; then
AC_MSG_RESULT(disabled)
elif test "$with_spatialite" = "yes"; then
AC_CHECK_HEADERS(sqlite3.h)
if test "$ac_cv_header_sqlite3_h" = "yes"; then
AC_MSG_CHECKING([for spatialite.h in /usr/include or /usr/local/include])
if test -f "/usr/include/spatialite.h" -o -f "/usr/local/include/spatialite.h"; then
AC_MSG_RESULT(found)
AC_CHECK_LIB(spatialite,spatialite_init,SPATIALITE_INIT_FOUND=yes,SPATIALITE_INIT_FOUND=no,)
if test "$SPATIALITE_INIT_FOUND" = "yes"; then
HAVE_SPATIALITE=yes
LIBS="$LIBS -lspatialite"
HAVE_SQLITE3=yes
fi
else
AC_MSG_RESULT(not found : spatialite support disabled)
fi
fi
else
AC_CHECK_LIB(spatialite,spatialite_init,SPATIALITE_INIT_FOUND=yes,SPATIALITE_INIT_FOUND=no,-L$with_spatialite/lib -lspatialite)
if test -f "$with_spatialite/include/spatialite.h" -a \
-f "$with_spatialite/include/spatialite/sqlite3.h" -a \
"$SPATIALITE_INIT_FOUND" = "yes"; then
AC_MSG_RESULT(enabled)
HAVE_SPATIALITE=yes
SPATIALITE_AMALGAMATION=yes
# SpatiaLite amalgamation availability implies SQLite availability
# Caution : don't include the include/spatialite subdir in the include dir
# as there's a spatialite.h file in it, which we don't want to include.
# We want to include include/spatialite.h instead !
SQLITE3_CFLAGS="-I$with_spatialite/include"
LIBS="$LIBS -L$with_spatialite/lib -lspatialite"
HAVE_SQLITE3=yes
elif test -f "$with_spatialite/include/spatialite.h" -a \
"$SPATIALITE_INIT_FOUND" = "yes"; then
AC_CHECK_HEADERS(sqlite3.h)
if test "$ac_cv_header_sqlite3_h" = "yes"; then
AC_MSG_RESULT(enabled)
SPATIALITE_INC="-I$with_spatialite/include"
HAVE_SPATIALITE=yes
LIBS="$LIBS -L$with_spatialite/lib -lspatialite"
HAVE_SQLITE3=yes
fi
else
AC_MSG_RESULT(disabled)
fi
fi
AC_SUBST([HAVE_SPATIALITE], $HAVE_SPATIALITE)
AC_SUBST([SPATIALITE_INC], $SPATIALITE_INC)
AC_SUBST([SPATIALITE_AMALGAMATION], $SPATIALITE_AMALGAMATION)
dnl ---------------------------------------------------------------------------
dnl Check for SQLite (only if SpatiaLite is not detected)
dnl ---------------------------------------------------------------------------
if test "${HAVE_SPATIALITE}" = "no" ; then
SQLITE3_REQ_VERSION="3.0.0"
AX_LIB_SQLITE3($SQLITE3_REQ_VERSION)
if test "$HAVE_SQLITE3" = "yes"; then
LIBS="$SQLITE3_LDFLAGS $LIBS"
fi
fi
AC_SUBST([SQLITE_INC], $SQLITE3_CFLAGS)
AC_SUBST([HAVE_SQLITE], $HAVE_SQLITE3)
HAVE_SQLITE=$HAVE_SQLITE3
dnl ---------------------------------------------------------------------------
dnl Check for DWGdirect.
dnl ---------------------------------------------------------------------------
DWGDIRECT=
DWG_PLT=
AC_MSG_CHECKING(Checking for DWGdirect)
AC_ARG_WITH(dwgdirect,
[ --with-dwgdirect[=path] Include DWG direct support],
,,)
if test -z "$with_dwgdirect" -o "$with_dwgdirect" = "no"; then
AC_MSG_RESULT(disabled)
HAVE_DWGDIRECT=no
else
AC_MSG_RESULT(enabled)
AC_ARG_WITH(dwgdirect,
[ --with-dwg-plt[=platform] DWGdirect Platform, defaults to lnxX86],
,,)
if test "x$with_dwg_plt" != "x" ; then
DWG_PLT=$with_dwg_plt
else
DWG_PLT=lnxX86
fi
DWGDIRECT=$with_dwgdirect
HAVE_DWGDIRECT=yes
fi
dnl This is used by the GNUmakefile in frmts/dods (via GDALmake.opt)
AC_SUBST(DWG_PLT)
AC_SUBST(DWGDIRECT)
dnl ---------------------------------------------------------------------------
dnl Select Informix DataBlade support
dnl ---------------------------------------------------------------------------
HAVE_IDB=no
AC_ARG_WITH(idb,[ --with-idb=DIR Include Informix DataBlade support (DIR points to Informix root)],,)
if test x"${with_idb}" = x"no" ; then
AC_MSG_NOTICE(["IBM Informix DataBlade support disabled."])
else
if test x"${with_idb}" = x ; then
with_idb=$INFORMIXDIR
fi
if test -e "${with_idb}/incl/c++/it.h" ; then
LIBS_DIRS="-L${with_idb}/lib/ -L${with_idb}/lib/esql"
LIBS_ESQL="-lifsql -lifasf -lifgen -lifos -lifgls -lifglx ${with_idb}/lib/esql/checkapi.o"
LIBS_LIBMI="-L${with_idb}/lib/dmi -lifdmi"
LIBS_CPPIF="-L${with_idb}/lib/c++ -lifc++"
IDB_INC="-I${with_idb}/incl/ -I${with_idb}/incl/dmi -I${with_idb}/incl/c++"
IDB_LIB="${LIBS_DIRS} ${LIBS_ESQL} ${LIBS_LIBMI} ${LIBS_CPPIF}"
ax_save_LIBS="${LIBS}"
LIBS="${IDB_LIB} -ldl -lcrypt"
AC_CHECK_LIB(ifsql,ifx_srvinfo,HAVE_IDB=yes,HAVE_IDB=no,)
LIBS="${ax_save_LIBS}"
fi
if test "${HAVE_IDB}" = "yes" ; then
AC_MSG_NOTICE([using Informix C++ client library from $with_idb.])
else
AC_MSG_NOTICE([IBM Informix DataBlade not supported.])
fi
fi
AC_SUBST(HAVE_IDB,${HAVE_IDB})
AC_SUBST(IDB_INC,${IDB_INC})
AC_SUBST(IDB_LIB,${IDB_LIB})
dnl ---------------------------------------------------------------------
dnl Find ESRI SDE ONLY IF REQUESTED.
dnl ---------------------------------------------------------------------
SDE_ENABLED=no
AC_CHECKING(whether we should include ESRI SDE support)
AC_ARG_WITH(sde,
[ --with-sde[=DIR] Include ESRI SDE support (DIR is SDE's install dir).],,)
AC_ARG_WITH(sde-version,
[ --with-sde-version[=VERSION NUMBER] Set ESRI SDE version number (Default is 80).],SDE_VERSION=$with_sde_version,SDE_VERSION=80)
if test -z "$SDE_VERSION" -o `expr "$SDE_VERSION" \>\= 92` = 1; then
SDE_VERSION=""
fi
if test "$with_sde" = "yes" ; then
AC_CHECK_LIB(sde$SDE_VERSION,SE_connection_create,SDE_ENABLED=yes,,,)
if test -n "$SDE_ENABLED" ; then
SDE_LIB="-lsde$SDE_VERSION -lpe$SDE_VERSION -lsg$SDE_VERSION"
AC_CHECK_LIB(pthread, main, SDE_LIB="$SDE_LIB -lpthread",,)
AC_CHECK_LIB(socket, main, SDE_LIB="$SDE_LIB -lsocket",,)
AC_CHECK_LIB(dl, main, SDE_LIB="$SDE_LIB -ldl",,)
AC_MSG_RESULT([ using ESRI SDE from system libs.])
else
AC_MSG_WARN([ ESRI SDE not found in system libs... use --with-sde=DIR.])
fi
elif test -n "$with_sde" -a "$with_sde" != "no" ; then
SDE_DIR=$with_sde
test -f $SDE_DIR/arcsde/coverages/include/sdetype.h && SDE_INCDIR="$SDE_DIR/arcsde/coverages/include"
test -f $SDE_DIR/include/sdetype.h && SDE_INCDIR="$SDE_DIR/include"
test -f $SDE_DIR/sdetype.h && SDE_INCDIR="$SDE_DIR"
test -f $SDE_DIR/lib/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR/lib"
test -f $SDE_DIR/lib64/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR/lib64"
test -f $SDE_DIR/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR"
test -f $SDE_DIR/lib/libsde$SDE_VERSION.so -o -f $SDE_DIR/lib/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR/lib"
test -f $SDE_DIR/lib64/libsde$SDE_VERSION.so -o -f $SDE_DIR/lib64/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR/lib64"
test -f $SDE_DIR/libsde$SDE_VERSION.so -o -f $SDE_DIR/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR"
if test -n "$SDE_INCDIR" -a -n "$SDE_LIBDIR" ; then
SDE_INC=-I$SDE_INCDIR
SDE_LIB="-L$SDE_LIBDIR -lsde$SDE_VERSION -lpe$SDE_VERSION -lsg$SDE_VERSION"
AC_CHECK_LIB(pthread, main, SDE_LIB="$SDE_LIB -lpthread",,)
AC_CHECK_LIB(socket, main, SDE_LIB="$SDE_LIB -lsocket",,)
AC_CHECK_LIB(dl, main, SDE_LIB="$SDE_LIB -ldl",,)
else
AC_MSG_ERROR("Could not find sdetype.h or libsde$SDE_VERSION.a/libsde$SDE_VERSION.so in $SDE_DIR.")
fi
if test "`arch`" = "x86_64" ; then
AC_MSG_RESULT([ Adding -DSDE64 for 64bit platform.])
SDE_INC="$SDE_INC -DSDE64"
fi
SDE_ENABLED=yes
OPT_GDAL_FORMATS="sde $OPT_GDAL_FORMATS"
AC_MSG_RESULT([ using ESRI SDE from $SDE_DIR.])
else
AC_MSG_RESULT([ ESRI SDE support not requested.])
fi
AC_SUBST(SDE_ENABLED,$SDE_ENABLED)
AC_SUBST(SDE_INC, $SDE_INC)
AC_SUBST(SDE_LIB, $SDE_LIB)
dnl ---------------------------------------------------------------------------
dnl Check if we should build with VFK support.
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([for VFK support])
AC_ARG_WITH(vfk,[ --without-vfk Disable VFK support],,)
HAVE_VFK=no
if test "$with_vfk" = "no"; then
AC_MSG_RESULT([no])
else
# Check that C++ compiler isn't too broken
rm -f testrlist.*
echo '#include <vector>' > testrlist.cpp
echo 'int main(int argc, char** argv) { std::vector<int> a, b; a.insert(a.begin(), b.rbegin(), b.rend()); return 0; } ' >> testrlist.cpp
if test -z "`${CXX} testrlist.cpp -c 2>&1`" ; then
AC_MSG_RESULT([yes])
HAVE_VFK=yes
else
AC_MSG_RESULT([disabled, broken C++ compiler])
fi
rm -f testrlist.*
fi
AC_SUBST(HAVE_VFK)
dnl ---------------------------------------------------------------------------
dnl Check if epsilon library is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(epsilon,[ --with-epsilon[=ARG] Include EPSILON support (ARG=no, yes or libepsilon install root path)],,)
EPSILON_SETTING=no
if test "$with_epsilon" = "yes" ; then
AC_CHECK_LIB(epsilon,eps_read_block_header,EPSILON_SETTING=yes,EPSILON_SETTING=no,)
if test "$EPSILON_SETTING" = "yes" ; then
LIBS="-lepsilon $LIBS"
else
echo "libepsilon not found - EPSILON support disabled"
fi
elif test "$with_epsilon" != "no" -a "$with_epsilon" != ""; then
AC_CHECK_LIB(epsilon,eps_read_block_header,EPSILON_SETTING=yes,EPSILON_SETTING=no,-L$with_epsilon/lib -lepsilon)
if test "$EPSILON_SETTING" = "yes" ; then
LIBS="-L$with_epsilon/lib -lepsilon $LIBS"
EXTRA_INCLUDES="-I$with_epsilon/include $EXTRA_INCLUDES"
else
echo "libepsilon not found - EPSILON support disabled"
fi
fi
if test "$EPSILON_SETTING" != "no" ; then
OPT_GDAL_FORMATS="epsilon $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Check if webp library is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(webp,[ --with-webp[=ARG] Include WEBP support (ARG=no, yes or libwebp install root path)],,)
WEBP_SETTING=no
if test "$with_webp" = "yes" ; then
AC_CHECK_LIB(webp,WebPDecodeRGB,WEBP_SETTING=yes,WEBP_SETTING=no,)
if test "$WEBP_SETTING" = "yes" ; then
LIBS="-lwebp $LIBS"
else
echo "libwebp not found - WEBP support disabled"
fi
elif test "$with_webp" != "no" -a "$with_webp" != ""; then
AC_CHECK_LIB(webp,WebPDecodeRGB,WEBP_SETTING=yes,WEBP_SETTING=no,-L$with_webp/lib -lwebp)
if test "$WEBP_SETTING" = "yes" ; then
LIBS="-L$with_webp/lib -lwebp $LIBS"
EXTRA_INCLUDES="-I$with_webp/include $EXTRA_INCLUDES"
else
echo "libwebp not found - WEBP support disabled"
fi
fi
if test "$WEBP_SETTING" != "no" ; then
OPT_GDAL_FORMATS="webp $OPT_GDAL_FORMATS"
fi
dnl ---------------------------------------------------------------------------
dnl Check if geos library is available.
dnl ---------------------------------------------------------------------------
GEOS_INIT(2.2.0)
HAVE_GEOS_RESULT="no"
if test "${HAVE_GEOS}" = "yes" ; then
AC_MSG_NOTICE([Using C API from GEOS $GEOS_VERSION])
LIBS="${GEOS_LIBS} ${LIBS}"
HAVE_GEOS_RESULT="yes"
fi
dnl ---------------------------------------------------------------------------
dnl Check if opencl library is available.
dnl ---------------------------------------------------------------------------
OPENCL_SETTING=no
OPENCL_FLAGS=
OPENCL_LIB=
AC_ARG_WITH(opencl,
[ --with-opencl[=ARG] Include OpenCL (GPU) support],,,)
AC_MSG_CHECKING([for OpenCL support])
if test "$with_opencl" = "yes" ; then
AC_ARG_WITH(opencl-include,
[ --with-opencl-include=ARG OpenCL Include directory (with a CL subdirectory)],,,)
OPENCL_SETTING=yes
if test "x$with_opencl_include" = "x" ; then
OPENCL_FLAGS=-DHAVE_OPENCL
else
OPENCL_FLAGS="-I$with_opencl_include -DHAVE_OPENCL"
fi
AC_ARG_WITH(opencl-lib,
[ --with-opencl-lib=ARG OpenCL Link Flags (ie. -L/xxx -lOpenCL)],,,)
if test "x$with_opencl_lib" = "x" ; then
if test ! -z "`uname | grep Darwin`" ; then
OPENCL_LIB="-framework OpenCL"
else
OPENCL_LIB=-lOpenCL
fi
else
OPENCL_LIB="$with_opencl_lib"
fi
fi
AC_MSG_RESULT([$OPENCL_SETTING])
AC_SUBST(OPENCL_FLAGS, $OPENCL_FLAGS)
AC_SUBST(OPENCL_LIB, $OPENCL_LIB)
dnl ---------------------------------------------------------------------------
dnl Check if FreeXL library is available.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(freexl,[ --with-freexl[=ARG] Include freexl support (ARG=no, yes (default) or libfreexl install path)],,)
AC_MSG_CHECKING([for FreeXL support])
HAVE_FREEXL=no
FREEXL_INCLUDE=
if test "$with_freexl" = "" -o "$with_freexl" = "yes" ; then
AC_CHECK_HEADERS(freexl.h)
AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-lfreexl",FREEXL_LIBS=missing)
if test "$FREEXL_LIBS" = "missing"; then
unset ac_cv_lib_freexl_freexl_open
AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-lfreexl -liconv",FREEXL_LIBS=missing,-liconv)
fi
if test "$FREEXL_LIBS" = "missing"; then
unset ac_cv_lib_freexl_freexl_open
AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-lfreexl -liconv -lcharset",FREEXL_LIBS=missing,-liconv -lcharset)
fi
if test "$FREEXL_LIBS" != "missing" -a "$ac_cv_header_freexl_h" = "yes" ; then
# Check that freexl is recent enough
rm -f testrlist.*
echo '#include <freexl.h>' > testfreexl.c
echo 'int main(int argc, char** argv) { FreeXL_CellValue s; freexl_get_cell_value (0,0,0,&s); return 0; } ' >> testfreexl.c
if test -z "`${CC} testfreexl.c -c 2>&1`" ; then
HAVE_FREEXL=yes
LIBS="$FREEXL_LIBS $LIBS"
else
HAVE_FREEXL=no
AC_MSG_RESULT([freexl too old. Needs freexl >= 1.0])
fi
rm -f testfreexl.*
else
HAVE_FREEXL=no
echo "libfreexl not found - FreeXL support disabled"
fi
elif test "$with_freexl" != "no"; then
AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-L$with_freexl/lib -lfreexl",FREEXL_LIBS=missing,-L$with_freexl/lib)
if test "$FREEXL_LIBS" = "missing"; then
unset ac_cv_lib_freexl_freexl_open
AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-L$with_freexl/lib -lfreexl -liconv",FREEXL_LIBS=missing,-L$with_freexl/lib -liconv)
fi
if test "$FREEXL_LIBS" = "missing"; then
unset ac_cv_lib_freexl_freexl_open
AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-L$with_freexl/lib -lfreexl -liconv -lcharset",FREEXL_LIBS=missing,-L$with_freexl/lib -liconv -lcharset)
fi
if test "FREEXL_LIBS" != "missing" -a -f "$with_freexl/include/freexl.h" ; then
# Check that freexl is recent enough
rm -f testrlist.*
echo '#include <freexl.h>' > testfreexl.c
echo 'int main(int argc, char** argv) { FreeXL_CellValue s; freexl_get_cell_value (0,0,0,&s); return 0; } ' >> testfreexl.c
if test -z "`${CC} -I$with_freexl/include testfreexl.c -c 2>&1`" ; then
HAVE_FREEXL=yes
LIBS="$FREEXL_LIBS $LIBS"
FREEXL_INCLUDE="-I$with_freexl/include"
else
HAVE_FREEXL=no
AC_MSG_RESULT([freexl too old. Needs freexl >= 1.0])
fi
rm -f testfreexl.*
else
HAVE_FREEXL=no
echo "libfreexl not found - FreeXL support disabled"
fi
fi
AC_SUBST(HAVE_FREEXL, $HAVE_FREEXL)
AC_SUBST(FREEXL_INCLUDE, $FREEXL_INCLUDE)
dnl ---------------------------------------------------------------------------
dnl Check if we must enable PAM
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([whether to enable PAM])
AC_ARG_WITH(pam,[ --without-pam Disable PAM (.aux.xml) support],,)
export PAM_SETTING=
if test "x$with_pam" = "xno" ; then
AC_MSG_RESULT([no])
else
AC_MSG_RESULT([yes])
PAM_SETTING=-DPAM_ENABLED
fi
AC_SUBST(PAM_SETTING, $PAM_SETTING)
dnl ---------------------------------------------------------------------------
dnl Check if libpoppler is available
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(poppler,[ --with-poppler[=ARG] Include poppler(for PDF) support (ARG=no(default), yes or poppler install path)],,)
HAVE_POPPLER=no
POPPLER_HAS_OPTCONTENT=no
POPPLER_BASE_STREAM_HAS_TWO_ARGS=no
POPPLER_0_20_OR_LATER=no
AC_MSG_CHECKING([for poppler])
if test "$with_poppler" != "no" -a "$with_poppler" != ""; then
if test "$with_poppler" = "yes" ; then
TEST_POPPLER_INC="-I/usr/include -I/usr/include/poppler"
TEST_POPPLER_LIB="-lpoppler"
else
TEST_POPPLER_INC="-I$with_poppler/include -I$with_poppler/include/poppler"
TEST_POPPLER_LIB="-L$with_poppler/lib -lpoppler"
fi
# Check that we can accept Page::pageObj private member
rm -f testpoppler.*
echo '#define private public' > testpoppler.cpp
echo '#include <poppler/Page.h>' >> testpoppler.cpp
echo '#include <poppler/splash/SplashBitmap.h>' >> testpoppler.cpp
echo 'int main(int argc, char** argv) { return &(((Page*)0x8000)->pageObj) == 0; } ' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -o testpoppler ${TEST_POPPLER_INC} ${TEST_POPPLER_LIB} 2>&1`" ; then
HAVE_POPPLER=yes
LIBS="${TEST_POPPLER_LIB} ${LIBS}"
OPT_GDAL_FORMATS="pdf $OPT_GDAL_FORMATS"
AC_MSG_RESULT([yes])
POPPLER_INC=$TEST_POPPLER_INC
# And now try another dirty thing, but this one is
# optional.
AC_MSG_CHECKING([if Catalog::optContent exists])
rm -f testpoppler.*
echo '#define private public' > testpoppler.cpp
echo '#include <poppler/Object.h>' >> testpoppler.cpp
echo '#include <poppler/Catalog.h>' >> testpoppler.cpp
echo 'int main(int argc, char** argv) { return &(((Catalog*)0x8000)->optContent) == 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
POPPLER_HAS_OPTCONTENT=yes
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
# And now we check if we have Poppler >= 0.16.0
AC_MSG_CHECKING([if BaseStream constructor needs 2 arguments])
rm -f testpoppler.*
echo '#include <poppler/Object.h>' > testpoppler.cpp
echo '#include <poppler/Stream.h>' >> testpoppler.cpp
echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
echo 'public:' >> testpoppler.cpp
echo ' TestStream() : BaseStream(0,0) {}' >> testpoppler.cpp
echo ' ~TestStream() {}' >> testpoppler.cpp
echo ' virtual Stream *makeSubStream(Guint start, GBool limited, Guint length, Object *dict) { return 0; }' >> testpoppler.cpp
echo ' virtual void setPos(Guint pos, int dir = 0) { }' >> testpoppler.cpp
echo ' virtual Guint getStart() { return 0; }' >> testpoppler.cpp
echo ' virtual void moveStart(int delta) { }' >> testpoppler.cpp
echo '};' >> testpoppler.cpp
echo 'int main(int argc, char** argv) { return 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes
AC_MSG_RESULT([yes])
# And now we check if we have Poppler >= 0.20.0
AC_MSG_CHECKING([if we have Poppler >= 0.20.0])
rm -f testpoppler.*
echo '#include <poppler/Error.h>' > testpoppler.cpp
echo 'int main(int argc, char** argv) { setErrorCallback(0,0); return 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
POPPLER_0_20_OR_LATER=yes
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
else
AC_MSG_RESULT([no])
fi
else
AC_MSG_RESULT([no])
fi
rm -f testpoppler.*
rm -f testpoppler
else
AC_MSG_RESULT([disabled])
fi
AC_SUBST(HAVE_POPPLER, $HAVE_POPPLER)
AC_SUBST(POPPLER_HAS_OPTCONTENT, $POPPLER_HAS_OPTCONTENT)
AC_SUBST(POPPLER_BASE_STREAM_HAS_TWO_ARGS, $POPPLER_BASE_STREAM_HAS_TWO_ARGS)
AC_SUBST(POPPLER_0_20_OR_LATER, $POPPLER_0_20_OR_LATER)
AC_SUBST(POPPLER_INC, $POPPLER_INC)
dnl ---------------------------------------------------------------------------
dnl Check if libpodofo is available
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(podofo,[ --with-podofo[=ARG] Include podofo(for PDF) support (ARG=no(default), yes or podofo install path)],,)
HAVE_PODOFO=no
AC_MSG_CHECKING([for podofo])
if test "$with_podofo" != "no" -a "$with_podofo" != ""; then
AC_ARG_WITH(podofo-lib,
[ --with-podofo-lib=ARG podofo Link Flags (ie. -L/xxx -lpodofo ...). Mainly for static libpodofo],,,)
if test "$HAVE_POPPLER" = "yes"; then
AC_MSG_ERROR([--with-podofo and --with-poppler cannot be specified at the same time])
fi
if test "$with_podofo" = "yes" ; then
TEST_PODOFO_INC="-I/usr/include -I/usr/include/podofo"
PODOFO_LIB="-lpodofo"
else
TEST_PODOFO_INC="-I$with_podofo/include -I$with_podofo/include/podofo"
PODOFO_LIB="-L$with_podofo/lib -lpodofo"
fi
if test "x$with_podofo_lib" = "x" ; then
rm -f testpodofo.*
echo '#include <podofo.h>' > testpodofo.cpp
echo 'int main(int argc, char** argv) { PoDoFo::PdfError::EnableDebug( 0 ); return 0; } ' >> testpodofo.cpp
if test -z "`${CXX} testpodofo.cpp -o testpodofo ${TEST_PODOFO_INC} ${PODOFO_LIB} 2>&1`" ; then
HAVE_PODOFO=yes
LIBS="${PODOFO_LIB} ${LIBS}"
OPT_GDAL_FORMATS="pdf $OPT_GDAL_FORMATS"
PODOFO_INC=$TEST_PODOFO_INC
AC_MSG_RESULT([yes])
fi
rm -f testpodofo.*
rm -f testpodofo
fi
if test "$HAVE_PODOFO" = "no"; then
if test "x$with_podofo_lib" != "x" ; then
PODOFO_LIB="$with_podofo_lib"
else
# This may be a static libpodofo.a, so add dependant libraries
PODOFO_LIB="$PODOFO_LIB -lfreetype -lfontconfig -lpthread"
fi
AC_ARG_WITH(podofo-extra-lib-for-test,
[ --with-podofo-extra-lib-for-test=ARG Additional libraries to pass the detection test, but not used for libgdal linking (ie. -ljpeg ...). Mainly for static libpodofo],,,)
if test "x$with_podofo_extra_lib_for_test" = "x" ; then
TEST_PODOFO_LIB="$PODOFO_LIB"
else
TEST_PODOFO_LIB="$PODOFO_LIB $with_podofo_extra_lib_for_test"
fi
rm -f testpodofo.*
echo '#include <podofo.h>' > testpodofo.cpp
echo 'int main(int argc, char** argv) { PoDoFo::PdfError::EnableDebug( 0 ); return 0; } ' >> testpodofo.cpp
if test -z "`${CXX} testpodofo.cpp -o testpodofo ${TEST_PODOFO_INC} ${TEST_PODOFO_LIB} 2>&1`" ; then
HAVE_PODOFO=yes
LIBS="${PODOFO_LIB} ${LIBS}"
OPT_GDAL_FORMATS="pdf $OPT_GDAL_FORMATS"
PODOFO_INC=$TEST_PODOFO_INC
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
rm -f testpodofo.*
rm -f testpodofo
fi
else
AC_MSG_RESULT([disabled])
fi
AC_SUBST(HAVE_PODOFO, $HAVE_PODOFO)
AC_SUBST(PODOFO_INC, $PODOFO_INC)
dnl ---------------------------------------------------------------------------
dnl PROJ.4 related stuff.
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([how to link PROJ.4 library])
AC_ARG_WITH(static_proj4,[ --with-static-proj4=ARG Compile with PROJ.4 statically (ARG=no or path)],,)
if test "x$with_static_proj4" = "xno" -o "x$with_static_proj4" = "x"; then
PROJ_STATIC=no
AC_MSG_RESULT([link dynamically.])
else
PROJ_STATIC=yes
AC_MSG_RESULT([link statically.])
ORIG_LIBS="$LIBS"
PROJ_LIB="-lproj"
if test "x$with_static_proj4" = "xyes" ; then
LIBS="$PROJ_LIB $ORIG_LIBS"
AC_CHECK_LIB(proj,pj_init,PROJ_STATIC=yes,PROJ_STATIC=no,)
else
LIBS="-L$with_static_proj4/lib $PROJ_LIB $ORIG_LIBS"
AC_CHECK_LIB(proj,pj_init,PROJ_STATIC=yes,PROJ_STATIC=no,)
if test "$PROJ_STATIC" = "no"; then
dnl Disable previous value cached by the previous AC_CHECK_LIB test :
dnl AC_CHECK_LIB caches the result value for a couple (function, library)
dnl in a variable named "ac_cv_lib_<library name>_<function name>".
dnl In order to try to locate the library in different locations, using
dnl different values of LIBS, we have to 'unset' this variable after
dnl each negative test.
unset ac_cv_lib_proj_pj_init
LIBS="-L$with_static_proj4/src $PROJ_LIB $ORIG_LIBS"
AC_CHECK_LIB(proj,pj_init,PROJ_STATIC=yes,PROJ_STATIC=no,)
fi
if test "$PROJ_STATIC" = "no"; then
unset ac_cv_lib_proj_pj_init
LIBS="-L$with_static_proj4/src/.libs $PROJ_LIB $ORIG_LIBS"
AC_CHECK_LIB(proj,pj_init,PROJ_STATIC=yes,PROJ_STATIC=no,)
fi
if test "$PROJ_STATIC" = "no"; then
unset ac_cv_lib_proj_pj_init
LIBS="-L$with_static_proj4 $PROJ_LIB $ORIG_LIBS"
AC_CHECK_LIB(proj,pj_init,PROJ_STATIC=yes,PROJ_STATIC=no,)
fi
if test "$PROJ_STATIC" = "no"; then
unset ac_cv_lib_proj_pj_init
LIBS="$PROJ_LIB $ORIG_LIBS"
AC_CHECK_LIB(proj,pj_init,PROJ_STATIC=yes,PROJ_STATIC=no,)
fi
fi
if test "$PROJ_STATIC" = "no"; then
LIBS="$ORIG_LIBS"
fi
if test -r "$with_static_proj4/src/proj_api.h" ; then
PROJ_INCLUDE="-I$with_static_proj4/src"
elif test -r "$with_static_proj4/include/proj_api.h" ; then
PROJ_INCLUDE="-I$with_static_proj4/include"
elif test -r "$with_static_proj4/proj_api.h" ; then
PROJ_INCLUDE="-I$with_static_proj4"
fi
fi
AC_SUBST(PROJ_STATIC)
AC_SUBST(PROJ_INCLUDE)
dnl ---------------------------------------------------------------------------
dnl Get/override version.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(gdal-ver,[ --with-gdal-ver=ARG Override GDAL version ],,)
GDAL_VERSION_MAJOR=`grep "#*define.GDAL_VERSION_MAJOR.*" gcore/gdal_version.h | awk '{print $4}'`
GDAL_VERSION_MINOR=`grep "#*define.GDAL_VERSION_MINOR.*" gcore/gdal_version.h | awk '{print $4}'`
GDAL_VERSION_REV=`grep "#*define.GDAL_VERSION_REV.*" gcore/gdal_version.h | awk '{print $4}'`
AC_MSG_RESULT([checking GDAL version information from gdal_version.h: $GDAL_VERSION_MAJOR.$GDAL_VERSION_MINOR.$GDAL_VERSION_REV])
AC_SUBST(GDAL_VERSION_MAJOR, "$GDAL_VERSION_MAJOR")
AC_SUBST(GDAL_VERSION_MINOR, "$GDAL_VERSION_MINOR")
AC_SUBST(GDAL_VERSION_REV, "$GDAL_VERSION_REV")
if test "x$with_gdal_ver" != "x"; then
GDAL_VER=$with_gdal_ver
AC_MSG_RESULT([ overridden GDAL version: $GDAL_VER])
else
GDAL_VER=$GDAL_VERSION_MAJOR.$GDAL_VERSION_MINOR.$GDAL_VERSION_REV
fi
AC_SUBST(GDAL_VER, $GDAL_VER)
echo $GDAL_VER > VERSION
dnl ---------------------------------------------------------------------------
dnl MacOS X Framework Build
if test ! -z "`uname | grep Darwin`" ; then
CXXFLAGS="$ARCHFLAGS $CXXFLAGS"
CFLAGS="$ARCHFLAGS $CFLAGS"
LIBS="$ARCHFLAGS $LIBS"
MACOSX_FRAMEWORK=no
AC_ARG_WITH(,[ --with-macosx-framework Build and install GDAL as a Mac OS X Framework],,)
AC_MSG_CHECKING([for Mac OS X Framework build])
if test "$with_macosx_framework" = yes ; then
MACOSX_FRAMEWORK=yes
AC_MSG_RESULT([enabled])
AC_DEFINE_UNQUOTED(MACOSX_FRAMEWORK,1, [Define for Mac OSX Framework build])
prefix="/Library/Frameworks/GDAL.framework/Versions/${GDAL_VERSION_MAJOR}.${GDAL_VERSION_MINOR}"
exec_prefix='${prefix}'
includedir='${prefix}/Headers'
datadir='${prefix}/Resources/gdal'
libdir='${exec_prefix}'
bindir='${exec_prefix}/Programs'
docdir='${prefix}/Resources/doc'
mandir='${prefix}/Resources/man'
else
AC_MSG_RESULT([disabled])
fi
AC_SUBST(MACOSX_FRAMEWORK, $MACOSX_FRAMEWORK)
fi
AC_SUBST(EXTRA_INCLUDES,$EXTRA_INCLUDES)
dnl ---------------------------------------------------------------------------
dnl Check whether we need to add specific suffix for executables (.EXE when
dnl building for Windows). This test should work for the case of
dnl cross-compilation too.
dnl ---------------------------------------------------------------------------
case "${host_os}" in
cygwin* | mingw32* | pw32*)
EXE_EXT=.exe
SO_EXT=dll
;;
*)
EXE_EXT=
;;
esac
AC_SUBST(EXE_EXT)
AC_SUBST(SO_EXT)
dnl ---------------------------------------------------------------------------
dnl Which "true" program should we use?
dnl ---------------------------------------------------------------------------
BINTRUE=/bin/true
if test -f /bin/true.exe ; then
BINTRUE=/bin/true.exe
fi
if test -f /usr/bin/true ; then
BINTRUE=/usr/bin/true
fi
export BINTRUE
AC_SUBST(BINTRUE,$BINTRUE)
dnl ---------------------------------------------------------------------------
dnl If datadir is set to @prefix@/share, the modify it to be
dnl @prefix@/share/gdal. I wish we could default this.
dnl ---------------------------------------------------------------------------
if test "$datadir" = '${prefix}/share' ; then
datadir='${prefix}/share/gdal'
fi
if test "$datadir" = '${datarootdir}' \
-a "$datarootdir" = '${prefix}/share' ; then
datarootdir='${prefix}/share/gdal'
fi
dnl ---------------------------------------------------------------------------
dnl Capture GDAL_PREFIX for the cpl_config.h include file.
dnl ---------------------------------------------------------------------------
if test "$prefix" = "NONE" ; then
GDAL_PREFIX=/usr/local
else
GDAL_PREFIX=${prefix}
fi
export GDAL_PREFIX
AC_DEFINE_UNQUOTED(GDAL_PREFIX,["]$GDAL_PREFIX["], [--prefix directory for GDAL install])
dnl ---------------------------------------------------------------------------
dnl Perl bindings.
dnl ---------------------------------------------------------------------------
BINDINGS=
AC_ARG_WITH(perl,[ --with-perl Enable perl bindings],,)
AC_MSG_CHECKING([for perl bindings])
if test "$with_perl" = "yes" ; then
BINDINGS="perl $BINDINGS"
AC_MSG_RESULT([enabled])
else
AC_MSG_RESULT([disabled])
fi
dnl ---------------------------------------------------------------------------
dnl PHP bindings.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(php,[ --with-php Enable php bindings],,)
AC_MSG_CHECKING([for php bindings])
if test "$with_php" = "yes" ; then
BINDINGS="php $BINDINGS"
AC_MSG_RESULT([enabled])
else
AC_MSG_RESULT([disabled])
fi
dnl ---------------------------------------------------------------------------
dnl Ruby bindings.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(ruby,[ --with-ruby Enable Ruby bindings],,)
AC_MSG_CHECKING([for ruby bindings])
if test "$with_ruby" = "yes" ; then
BINDINGS="ruby $BINDINGS"
AC_MSG_RESULT([enabled])
else
AC_MSG_RESULT([disabled])
fi
dnl ---------------------------------------------------------------------------
dnl NG Python bindings.
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(python,[ --with-python Enable python bindings],,)
AC_MSG_CHECKING([for python bindings])
if test "$with_python" = "yes" ; then
BINDINGS="python $BINDINGS"
AM_PATH_PYTHON
AC_MSG_RESULT([enabled])
AC_MSG_CHECKING([for python setuptools])
SETUPTEST='try:
import setuptools
print 1
except ImportError:
pass'
PY_HAVE_SETUPTOOLS=`python -c "$SETUPTEST"`
if test "$PY_HAVE_SETUPTOOLS" = "1"; then
AC_MSG_RESULT([found])
else
AC_MSG_RESULT([not found])
fi
else
AC_MSG_RESULT([disabled])
fi
AC_SUBST([PY_HAVE_SETUPTOOLS])
AC_SUBST([BINDINGS])
dnl ---------------------------------------------------------------------------
dnl Java support
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(java,[ --with-java Include Java support (ARG=yes, no or JDK home path) [[default=no]]],,)
AC_MSG_CHECKING([whether we should include Java support])
JAVA_HOME=""
JAVA_INC=""
if test "x$with_java" = "xyes"; then
dnl Ubuntu
JAVA_6_TEST_DIR=
JAVA_7_TEST_DIR=
case "$host_cpu" in
i*86*)
JAVA_6_TEST_DIR=/usr/lib/jvm/java-6-openjdk-i386
JAVA_7_TEST_DIR=/usr/lib/jvm/java-7-openjdk-i386
;;
x86_64*)
JAVA_6_TEST_DIR=/usr/lib/jvm/java-6-openjdk-amd64
JAVA_7_TEST_DIR=/usr/lib/jvm/java-7-openjdk-amd64
;;
*)
;;
esac
if test "x$JAVA_7_TEST_DIR" != "x" -a -d "$JAVA_7_TEST_DIR/include"; then
with_java="$JAVA_7_TEST_DIR"
elif test "x$JAVA_6_TEST_DIR" != "x" -a -d "$JAVA_6_TEST_DIR/include"; then
with_java="$JAVA_6_TEST_DIR"
elif test -d /usr/lib/jvm/java-6-openjdk; then
with_java="/usr/lib/jvm/java-6-openjdk"
dnl RHEL6
elif test -d /usr/lib/jvm/java-openjdk; then
with_java="/usr/lib/jvm/java-openjdk"
dnl OS X and possibly others
elif test -d `/usr/libexec/java_home`; then
with_java=`/usr/libexec/java_home`
dnl elif test -d /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers; then
dnl JAVA_INC="-I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers"
dnl OpenSolaris
elif test -d /usr/java; then
with_java="/usr/java"
else
AC_MSG_ERROR("cannot find JDK root directory.")
fi
if test \! -d "$with_java/include" ; then
AC_MSG_ERROR("$with_java is not a valid JDK.")
fi
fi
if test "x$JAVA_INC" != "x"; then