dnl ODBC.m4 generated automatically by aclocal 1.4a dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. # Copyright (c) 1999-2000 Ajuba Solutions # Copyright (c) 2004 ActiveState #------------------------------------------------------------------------ # AX_PATH_ODBC -- # # Locate the ODBC files (includes and libraries). # # Arguments: # # Requires: # # Results: # # Adds ODBC include and libs to PKG info #------------------------------------------------------------------------ dnl the alternative search directory is invoked by --with-odbcinclude dnl and --with-odbclibrary AC_DEFUN(AX_PATH_ODBC, [ case "$host" in *darwin*) DYNAMIC_LIB_EXTEN="dylib" ;; *cygwin* | *mingw*) DYNAMIC_LIB_EXTEN="dll" ;; *) DYNAMIC_LIB_EXTEN="so" ;; esac AX_PATH_ODBCH AX_PATH_ODBCLIB AC_SUBST(ODBC_INCLUDE_DIR) AC_SUBST(ODBC_LIB_DIR) AC_SUBST(ODBC_LIB) ]) dnl Find the ODBC headers. This code may not work for certain dnl intallations. AC_DEFUN(AX_PATH_ODBCH, [ dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." no_odbc=true ac_cv_c_odbch="" ODBCTYPE="" AC_ARG_WITH(odbcinclude, [ --with-odbcinclude directory where odbc headers are], with_odbcinclude=${withval}) if test x"${with_odbcinclude}" != x ; then # first check to see if --with-odbcinclude was specified list="/odbc/sql.h /ODBC/sql.h /unixodbc/sql.h /unixODBC/sql.h \ /iodbc/isql.h" for i in $list ; do if test -f "${with_odbcinclude}$i" ; then ac_cv_c_odbch=`dirname ${with_odbcinclude}$i` ac_cv_c_odbch=`(cd ${ac_cv_c_odbch}; pwd)` break fi done if test x"${ac_cv_c_odbch}" = x; then AC_MSG_ERROR([${with_odbcinclude} directory does not contain headers]) fi fi dnl =============================== dnl IODBC... I have not tested this a whole lot dnl =============================== dn`l Check in the source tree for i in $dirlist; do if test -f "${srcdir}/$i/postodbc/isql.h" ; then ac_cv_c_odbch=`(cd ${srcdir}/$i/postodbc/; pwd)` ODBCTYPE=iodbc fi done dnl Check a few common places in the file system if test x"${ac_cv_c_odbch}" = x ; then for i in \ /usr/local/mysql/include \ /usr/local/include/iodbc \ /usr/local/share/iodbc \ ${prefix}/include/iodbc \ /usr/local/include \ /usr/include \ ${prefix}/include ; do if test -f $i/isql.h; then ac_cv_c_odbch=`(cd $i; pwd)` ODBCTYPE=iodbc fi done fi dnl check if its installed with the compiler if test x"${ac_cv_c_odbch}" = x ; then dnl Get the path to the compiler, strip off any args in ${CC} ccprog=`echo ${CC} | sed -e 's: .*::'` ccpath=`which ${ccprog} | sed -e 's:/bin/.*::'`/include/iodbc if test -f $ccpath/isql.h; then ac_cv_c_odbch=$ccpath ODBCTYPE=iodbc fi fi dnl see if one is installed if test x"${ac_cv_c_odbch}" = x ; then AC_CHECK_HEADER(isql.h, ac_cv_c_odbch=installed, ac_cv_c_odbch="") if test x"${ac_cv_c_odbch}" != x ; then ODBCTYPE=iodbc fi fi dnl =============================== dnl unixODBC or Intersolv... I have tested this dnl =============================== dnl Check for unixODBC headers if test x"${ac_cv_c_odbch}" = x ; then for i in \ /opt/odbc/include \ /opt/ODBC/include \ ${prefix}/include/odbc \ ${prefix}/include/ODBC \ /opt/unixodbc/include \ /opt/unixODBC/include \ ${prefix}/include/unixodbc \ ${prefix}/include/unixODBC \ /usr/local/mysql/include \ /usr/local/include \ /usr/include \ ${prefix}/include ; do if test -f "$i/sql.h"; then ac_cv_c_odbch=`(cd $i; pwd)` ODBCTYPE=unixODBC fi done fi dnl see if one is installed if test x"${ac_cv_c_odbch}" = x ; then AC_CHECK_HEADER(sql.h, ac_cv_c_odbch=installed, ac_cv_c_odbch="") if test x"${ac_cv_c_odbch}" != x ; then ODBCTYPE=unixODBC fi fi dnl Figure out whether this is unixODBC or Intersolv if test x"${ODBCTYPE}" = xunixODBC ; then if test -f "${ac_cv_c_odbch}/odbcver.h" ; then ODBCTYPE=intersolv fi fi ODBC_INCLUDE_DIR="" if test x"${ac_cv_c_odbch}" = x ; then AC_MSG_ERROR([Cannot find any ODBC headers]) else if test x"${ODBCTYPE}" = x ; then if test -f "${ac_cv_c_odbch}/odbcver.h" ; then ODBCTYPE=intersolv elif test -f "${ac_cv_c_odbch}/sql.h" ; then ODBCTYPE=unixODBC elif test -f "${ac_cv_c_odbch}/isql.h" ; then ODBCTYPE=iodbc fi fi fi AC_MSG_CHECKING([for ODBC headers files]) if test x"${ac_cv_c_odbch}" != x ; then no_odbc="" if test x"${ac_cv_c_odbch}" != xinstalled ; then AC_MSG_RESULT(${ac_cv_c_odbch}) ODBC_INCLUDE_DIR="-I${ac_cv_c_odbch}" else AC_MSG_RESULT(none) fi fi AC_SUBST(ODBC_INCLUDE_DIR) AC_SUBST(ODBCTYPE) ]) dnl Find the ODBC library. This code may not work for certain dnl intallations. AC_DEFUN(AX_PATH_ODBCLIB, [ dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." no_odbc=true ac_cv_c_odbc_libdir="" ac_cv_c_odbc_lib="" ODBC_LIB_NAME="" AC_ARG_WITH(odbclibrary, [ --with-odbclibrary directory where odbc libraries are], with_odbclibrary=${withval}) dnl first check to see if --with-odbclibrary was specified if test x"${with_odbclibrary}" != x ; then if test -f ${with_odbclibrary} ; then ac_cv_c_odbc_libdir=`echo ${with_odbclibrary} | sed -e 's:/libpsqlodbc.*::'` ac_cv_c_odbc_libdir=`(cd ${ac_cv_c_odbc_libdir}; pwd)` ac_cv_c_odbc_lib=`echo ${with_odbclibrary} | sed -e 's:.*/::'` elif test -f ${with_odbclibrary}/libodbc.${DYNAMIC_LIB_EXTEN} ; then ac_cv_c_odbc_libdir=`(cd ${with_odbclibrary}; pwd)` ac_cv_c_odbc_lib='-lodbc' elif test -f ${with_odbclibrary}/libpsqlodbc.${DYNAMIC_LIB_EXTEN} ; then ac_cv_c_odbc_libdir=`(cd ${with_odbclibrary}; pwd)` elif test -f ${with_odbclibrary}/iodbc/libpsqlodbc.${DYNAMIC_LIB_EXTEN} ; then ac_cv_c_odbc_libdir=`(cd ${with_odbclibrary}/iodbc; pwd)` ac_cv_c_odbc_lib='-llibpsqlodbc' else AC_MSG_ERROR([${with_odbclibrary} directory does not contain library]) fi fi dnl Check for multiple library names depending on the ODBC type if test x"${ODBCTYPE}" = xiodbc ; then liblist="libpsqlodbc libmysqlodbc librbodbc libiodbc iodbc" libpathlist="/usr/local/lib/iodbc ${prefix}/iodbc/lib \ ${prefix}/lib/iodbc /usr/local/mysql/lib /usr/local/lib /usr/lib ${prefix}/lib" elif test x"${ODBCTYPE}" = xunixODBC ; then liblist="libodbc" libpathlist="/opt/unixodbc/lib /opt/unixODBC/lib /usr/include/odbc \ /usr/include/ODBC /usr/local/mysql/lib /usr/local/lib \ ${prefix}/lib" elif test x"${ODBCTYPE}" = xintersolv ; then liblist="libodbc" libpathlist="/opt/odbc/lib /opt/ODBC/lib /usr/include/unixodbc \ /usr/include/unixODBC /usr/local/mysql/lib /usr/local/lib \ ${prefix}/lib" else AC_MSG_ERROR([ODBC support could not be identified.]) fi for libname in $liblist; do dnl Check in the build tree for i in $dirlist; do if test -f "$i/postodbc/${libname}.${DYNAMIC_LIB_EXTEN}" ; then ac_cv_c_odbc_libdir=`(cd $i/postodbc/; pwd)` break fi done dnl Check a few common places in the file system if test x"${ac_cv_c_odbc_libdir}" = x ; then for i in $libpathlist; do if test -f $i/${libname}.${DYNAMIC_LIB_EXTEN}; then ac_cv_c_odbc_libdir=`(cd $i; pwd)` break fi done fi dnl check if its installed with the compiler if test x"${ac_cv_c_odbc_libdir}" = x ; then dnl Get the path to the compiler, strip off any args in ${CC} ccprog=`echo ${CC} | sed -e 's: .*::'` ccpath=`which ${ccprog} | sed -e 's:/bin/.*::'`/lib if test -f $ccpath/${libname}.${DYNAMIC_LIB_EXTEN}; then ac_cv_c_odbc_libdir=$ccpath fi fi dnl see if one is installed if test x"${ac_cv_c_odbc_libdir}" = x ; then AC_CHECK_LIB(${libname}, main) fi dnl do not keep searching for the other libraries, cause we found one if test x"${ac_cv_c_odbc_libdir}" != x ; then ac_cv_c_odbc_lib=${libname} break fi done ODBC_LIB_DIR="" AC_MSG_CHECKING(for ODBC library files) if test x"${ac_cv_c_odbc_libdir}" = x ; then AC_MSG_ERROR([Cannot find an ODBC library path]) fi if test x"${ac_cv_c_odbc_lib}" = x ; then AC_MSG_ERROR([Cannot find an ODBC library]) fi if test x"${ac_cv_c_odbc_libdir}" != x ; then AC_MSG_RESULT(${ac_cv_c_odbc_libdir}) ODBC_LIB_DIR="-L${ac_cv_c_odbc_libdir}" fi AC_MSG_CHECKING(for ODBC library name) ODBC_LIB=-l`echo $ac_cv_c_odbc_lib | sed -e 's:^lib::'` AC_MSG_RESULT($ODBC_LIB) if test x"${ODBCTYPE}" = xiodbc ; then AC_MSG_RESULT(Using IODBC driver) AC_DEFINE(HAVE_IODBC) ODBC_LIB="$ODBC_LIB -liodbcinst" fi if test x"${ODBCTYPE}" = xunixODBC ; then AC_MSG_RESULT(Using UnixODBC driver) AC_DEFINE(HAVE_UNIXODBC) AC_DEFINE(DONT_TD_VOID) fi if test x"${ODBCTYPE}" = xintersolv ; then AC_MSG_RESULT(Using Intersolv driver) AC_DEFINE(HAVE_INTERSOLV) fi AC_SUBST(ODBC_LIB) AC_SUBST(ODBC_LIB_DIR) ])