diff --git a/acinclude.m4 b/acinclude.m4 index cb690dfa04..e245a6aec0 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -6,5 +6,6 @@ m4_include([build/config/ac_gcc_archflag.m4]) m4_include([build/config/ac_gcc_x86_cpuid.m4]) m4_include([build/config/ax_lib_mysql.m4]) m4_include([build/config/ax_check_java.m4]) +m4_include([build/config/odbc.m4]) m4_include([libs/apr/build/apr_common.m4]) m4_include([build/config/libcurl.m4]) diff --git a/build/config/odbc.m4 b/build/config/odbc.m4 new file mode 100644 index 0000000000..ec70b46adb --- /dev/null +++ b/build/config/odbc.m4 @@ -0,0 +1,141 @@ +dnl Derrick Brashear +dnl from KTH krb and Arla + +AC_DEFUN([ODBC_INC_WHERE1], [ +ac_cv_found_odbc_inc=no +if test -f "$1/sql.h" ; then + ac_cv_found_odbc_inc=yes +fi +]) + +AC_DEFUN([ODBC_INC_WHERE], [ + for i in $1; do + AC_MSG_CHECKING(for odbc header in $i) + ODBC_INC_WHERE1($i) + if test "$ac_cv_found_odbc_inc" = "yes"; then + ac_cv_odbc_where_inc=$i + AC_MSG_RESULT(found) + break + else + AC_MSG_RESULT(no found) + fi + done +]) + +AC_DEFUN([ODBC_LIB_WHERE1], [ +saved_LIBS=$LIBS +LIBS="$saved_LIBS -L$1 -lodbc" +AC_TRY_LINK(, +[SQLHDBC con;SQLDisconnect(con);], +[ac_cv_found_odbc_lib=yes], +ac_cv_found_odbc_lib=no) +LIBS=$saved_LIBS +]) + +AC_DEFUN([TEST_LIBPATH], [ +changequote(<<, >>) +define(<>, translit(ac_cv_found_$2_lib, <<- *>>, <<__p>>)) +changequote([, ]) +if test "$AC_CV_FOUND" = "yes"; then + 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 + AC_CV_FOUND=no + fi +fi +]) + + +AC_DEFUN([ODBC_LIB_WHERE], [ + for i in $1; do + AC_MSG_CHECKING(for odbc library in $i) + ODBC_LIB_WHERE1($i) + TEST_LIBPATH($i, odbc) + if test "$ac_cv_found_odbc_lib" = "yes" ; then + ac_cv_odbc_where_lib=$i + AC_MSG_RESULT(found) + break + else + AC_MSG_RESULT(no found) + fi + done +]) + +AC_DEFUN([FIND_LIB_SUBDIR], +[dnl +AC_ARG_WITH([lib-subdir], AC_HELP_STRING([--with-lib-subdir=DIR],[Find libraries in DIR instead of lib])) +AC_CHECK_SIZEOF(long) +AC_CACHE_CHECK([what directory libraries are found in], [ac_cv_cmu_lib_subdir], +[test "X$with_lib_subdir" = "Xyes" && with_lib_subdir= +test "X$with_lib_subdir" = "Xno" && with_lib_subdir= + if test "X$with_lib_subdir" = "X" ; then + ac_cv_cmu_lib_subdir=lib + if test $ac_cv_sizeof_long -eq 4 ; then + test -d /usr/lib32 && ac_cv_cmu_lib_subdir=lib32 + fi + if test $ac_cv_sizeof_long -eq 8 ; then + test -d /usr/lib64 && ac_cv_cmu_lib_subdir=lib64 + fi + else + ac_cv_cmu_lib_subdir=$with_lib_subdir + fi]) + AC_SUBST(LIB_SUBDIR, $ac_cv_cmu_lib_subdir) + ]) + + +AC_DEFUN([AX_LIB_ODBC], [ +AC_REQUIRE([FIND_LIB_SUBDIR]) +AC_ARG_WITH(odbc, + [ --with-odbc=PREFIX Compile with ODBC support], + [if test "X$with_odbc" = "X"; then + with_odbc=yes + fi]) +AC_ARG_WITH(odbc-lib, + [ --with-odbc-lib=dir use odbc libraries in dir], + [if test "$withval" = "yes" -o "$withval" = "no"; then + AC_MSG_ERROR([No argument for --with-odbc-lib]) + fi]) +AC_ARG_WITH(odbc-include, + [ --with-odbc-include=dir use odbc headers in dir], + [if test "$withval" = "yes" -o "$withval" = "no"; then + AC_MSG_ERROR([No argument for --with-odbc-include]) + fi]) + + if test "X$with_odbc" != "X"; then + if test "$with_odbc" != "yes"; then + ac_cv_odbc_where_lib=$with_odbc + ac_cv_odbc_where_inc=$with_odbc/include + fi + fi + + if test "X$with_odbc_lib" != "X"; then + ac_cv_odbc_where_lib=$with_odbc_lib + fi + if test "X$ac_cv_odbc_where_lib" = "X"; then + ODBC_LIB_WHERE(/usr/$LIB_SUBDIR /usr/local/$LIB_SUBDIR) + fi + + if test "X$with_odbc_include" != "X"; then + ac_cv_odbc_where_inc=$with_odbc_include + fi + if test "X$ac_cv_odbc_where_inc" = "X"; then + ODBC_INC_WHERE(/usr/include /usr/local/include) + fi + + AC_MSG_CHECKING(whether to include odbc) + if test "X$ac_cv_odbc_where_lib" = "X" -a "X$ac_cv_odbc_where_inc" = "X"; then + ac_cv_found_odbc=no + AC_MSG_RESULT(no) + else + ac_cv_found_odbc=yes + AC_MSG_RESULT(yes) + ODBC_INC_DIR=$ac_cv_pcap_where_inc + ODBC_LIB_DIR=$ac_cv_pcap_where_lib + ODBC_INC_FLAGS="-I${ODBC_INC_DIR}" + ODBC_LIB_FLAGS="-L${ODBC_LIB_DIR} -lodbc" + AC_SUBST(ODBC_INC_DIR) + AC_SUBST(ODBC_LIB_DIR) + AC_SUBST(ODBC_INC_FLAGS) + AC_SUBST(ODBC_LIB_FLAGS) + AC_DEFINE([HAVE_ODBC],[1],[libodbc]) + fi + ]) + diff --git a/configure.in b/configure.in index f2c59de38d..aa3db8b10d 100644 --- a/configure.in +++ b/configure.in @@ -505,6 +505,11 @@ fi AX_CHECK_JAVA +AX_LIB_ODBC +if test "$ac_cv_found_odbc" = "yes" ; then + enable_core_odbc_support="yes" +fi + AM_CONDITIONAL([ADD_ODBC],[test "x$enable_core_odbc_support" != "xno"]) AM_CONDITIONAL([ADD_LIBEDIT],[test "x$enable_core_libedit_support" != "xno"]) AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"])