freeswitch/build/config/ODBC.m4
Michael Jerris ce7cea4cbf add odbc m4 detection.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5305 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-06-11 02:14:13 +00:00

324 lines
9.5 KiB
Plaintext

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)
])