1dnl Derrick Brashear 2dnl from KTH krb and Arla 3 4AC_DEFUN([ODBC_INC_WHERE1], [ 5ac_cv_found_odbc_inc=no 6if test -f "$1/sql.h" ; then 7 ac_cv_found_odbc_inc=yes 8fi 9]) 10 11AC_DEFUN([ODBC_INC_WHERE], [ 12 for i in $1; do 13 AC_MSG_CHECKING(for odbc header in $i) 14 ODBC_INC_WHERE1($i) 15 if test "$ac_cv_found_odbc_inc" = "yes"; then 16 ac_cv_odbc_where_inc=$i 17 AC_MSG_RESULT(found) 18 break 19 else 20 AC_MSG_RESULT(no found) 21 fi 22 done 23]) 24 25AC_DEFUN([ODBC_LIB_WHERE1], [ 26saved_LIBS=$LIBS 27saved_CFLAGS=$CFLAGS 28case "$host" in 29 *darwin*) 30 LIBS="$saved_LIBS -L$1 -lodbc -framework CoreFoundation" 31 ;; 32 *) 33 LIBS="$saved_LIBS -L$1 -lodbc" 34 ;; 35esac 36CFLAGS="$saved_CFLAGS -I$ac_cv_odbc_where_inc" 37AC_TRY_LINK( 38[#include <sql.h>], 39[SQLHDBC con; 40SQLDisconnect(con);], 41[ac_cv_found_odbc_lib=yes], 42ac_cv_found_odbc_lib=no) 43LIBS=$saved_LIBS 44CFLAGS=$saved_CFLAGS 45]) 46 47AC_DEFUN([TEST_LIBPATH], [ 48changequote(<<, >>) 49define(<<AC_CV_FOUND>>, translit(ac_cv_found_$2_lib, <<- *>>, <<__p>>)) 50changequote([, ]) 51if test "$AC_CV_FOUND" = "yes"; then 52 if test \! -r "$1/lib$2.a" -a \! -r "$1/lib$2.so" -a \! -r "$1/lib$2.sl" -a \! -r "$1/lib$2.dylib"; then 53 AC_CV_FOUND=no 54 fi 55fi 56]) 57 58 59AC_DEFUN([ODBC_LIB_WHERE], [ 60 for i in $1; do 61 AC_MSG_CHECKING(for odbc library in $i) 62 ODBC_LIB_WHERE1($i) 63 TEST_LIBPATH($i, odbc) 64 if test "$ac_cv_found_odbc_lib" = "yes" ; then 65 ac_cv_odbc_where_lib=$i 66 AC_MSG_RESULT(found) 67 break 68 else 69 AC_MSG_RESULT(no found) 70 fi 71 done 72]) 73 74AC_DEFUN([FIND_LIB_SUBDIR], 75[dnl 76AC_ARG_WITH([lib-subdir], AC_HELP_STRING([--with-lib-subdir=DIR],[Find libraries in DIR instead of lib])) 77AC_CHECK_SIZEOF(long) 78AC_CACHE_CHECK([what directory libraries are found in], [ac_cv_cmu_lib_subdir], 79[test "X$with_lib_subdir" = "Xyes" && with_lib_subdir= 80test "X$with_lib_subdir" = "Xno" && with_lib_subdir= 81 if test "X$with_lib_subdir" = "X" ; then 82 ac_cv_cmu_lib_subdir=lib 83 if test $ac_cv_sizeof_long -eq 4 ; then 84 test -d /usr/lib32 && ac_cv_cmu_lib_subdir=lib32 85 fi 86 if test $ac_cv_sizeof_long -eq 8 ; then 87 test -d /usr/lib64 && ac_cv_cmu_lib_subdir=lib64 88 fi 89 else 90 ac_cv_cmu_lib_subdir=$with_lib_subdir 91 fi]) 92 AC_SUBST(LIB_SUBDIR, $ac_cv_cmu_lib_subdir) 93 ]) 94 95 96AC_DEFUN([AX_LIB_ODBC], [ 97AC_REQUIRE([FIND_LIB_SUBDIR]) 98AC_ARG_WITH(odbc, 99 [ --with-odbc=PREFIX Compile with ODBC support], 100 [if test "X$with_odbc" = "X"; then 101 with_odbc=yes 102 fi]) 103AC_ARG_WITH(odbc-lib, 104 [ --with-odbc-lib=dir use odbc libraries in dir], 105 [if test "$withval" = "yes" -o "$withval" = "no"; then 106 AC_MSG_ERROR([No argument for --with-odbc-lib]) 107 fi]) 108AC_ARG_WITH(odbc-include, 109 [ --with-odbc-include=dir use odbc headers in dir], 110 [if test "$withval" = "yes" -o "$withval" = "no"; then 111 AC_MSG_ERROR([No argument for --with-odbc-include]) 112 fi]) 113 114 if test "X$with_odbc" != "X"; then 115 if test "$with_odbc" != "yes"; then 116 ac_cv_odbc_where_lib=$with_odbc 117 ac_cv_odbc_where_inc=$with_odbc/include 118 fi 119 fi 120 121 if test "X$with_odbc_include" != "X"; then 122 ac_cv_odbc_where_inc=$with_odbc_include 123 fi 124 if test "X$ac_cv_odbc_where_inc" = "X"; then 125 ODBC_INC_WHERE(/usr/include /usr/local/include) 126 fi 127 128 if test "X$with_odbc_lib" != "X"; then 129 ac_cv_odbc_where_lib=$with_odbc_lib 130 fi 131 if test "X$ac_cv_odbc_where_lib" = "X"; then 132 AC_CHECK_LIB([odbc],[SQLDisconnect],[ac_cv_odbc_where_lib="yes"],[ 133 ODBC_LIB_WHERE(/usr/$LIB_SUBDIR /usr/local/$LIB_SUBDIR) 134 ]) 135 fi 136 137 AC_MSG_CHECKING(whether to include odbc) 138 if test "X$ac_cv_odbc_where_lib" = "X" -o "X$ac_cv_odbc_where_inc" = "X"; then 139 ac_cv_found_odbc=no 140 AC_MSG_RESULT(no) 141 else 142 ac_cv_found_odbc=yes 143 AC_MSG_RESULT(yes) 144 ODBC_INC_DIR=$ac_cv_odbc_where_inc 145 ODBC_LIB_DIR=$ac_cv_odbc_where_lib 146 ODBC_INC_FLAGS="-I$ac_cv_odbc_where_inc" 147 ODBC_LIB_FLAGS="-Wl,-lodbc" 148 case "$host" in 149 *darwin*) 150 ODBC_LIB_FLAGS="$ODBC_LIB_FLAGS -framework CoreFoundation" 151 ;; 152 esac 153 if test "$ac_cv_odbc_where_lib" != "yes"; then 154 ODBC_LIB_FLAGS="-L$ac_cv_odbc_where_lib $ODBC_LIB_FLAGS" 155 fi 156 AC_SUBST(ODBC_INC_DIR) 157 AC_SUBST(ODBC_LIB_DIR) 158 AC_SUBST(ODBC_INC_FLAGS) 159 AC_SUBST(ODBC_LIB_FLAGS) 160 AC_DEFINE([HAVE_ODBC],[1],[libodbc]) 161 fi 162 ]) 163 164