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