Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib/odbc: use iodbc when available #9083

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
262 changes: 240 additions & 22 deletions lib/odbc/configure
Original file line number Diff line number Diff line change
Expand Up @@ -4944,26 +4944,6 @@ then :

fi

for ac_header in sql.h sqlext.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_WINDOWS_H
# include <windows.h>
#endif

"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1
_ACEOF
odbc_required_headers=yes
else case e in #(
e) odbc_required_headers=no ;;
esac
fi

done

{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
printf %s "checking for an ANSI C-conforming const... " >&6; }
Expand Down Expand Up @@ -5639,6 +5619,8 @@ case $host_os in #(
ODBC_INCLUDE="-I$with_odbc/include"
fi

save_LIBS="$LIBS"
LIBS="$LIBS $ODBC_LIB"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -liodbc" >&5
printf %s "checking for SQLAllocHandle in -liodbc... " >&6; }
if test ${ac_cv_lib_iodbc_SQLAllocHandle+y}
Expand Down Expand Up @@ -5683,17 +5665,70 @@ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iodbc_SQLAllocHandle" >&5
printf "%s\n" "$ac_cv_lib_iodbc_SQLAllocHandle" >&6; }
if test "x$ac_cv_lib_iodbc_SQLAllocHandle" = xyes
then :
ODBC_LIB="$ODBC_LIB -liodbc"; odbc_lib_link_success=yes
fi

if test $odbc_lib_link_success = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -lodbc" >&5
printf %s "checking for SQLAllocHandle in -lodbc... " >&6; }
if test ${ac_cv_lib_odbc_SQLAllocHandle+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_check_lib_save_LIBS=$LIBS
LIBS="-lodbc $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char SQLAllocHandle (void);
int
main (void)
{
return SQLAllocHandle ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_odbc_SQLAllocHandle=yes
else case e in #(
e) ac_cv_lib_odbc_SQLAllocHandle=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_odbc_SQLAllocHandle" >&5
printf "%s\n" "$ac_cv_lib_odbc_SQLAllocHandle" >&6; }
if test "x$ac_cv_lib_odbc_SQLAllocHandle" = xyes
then :
ODBC_LIB="$ODBC_LIB -lodbc"; odbc_lib_link_success=yes
fi

fi
LIBS="$save_LIBS"
;; #(
haiku*) :

TARGET_FLAGS="-DUNIX"
ODBC_LIB= -L"/system/lib"
ODBC_INCLUDE="-I/system/develop/headers"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -lodbc" >&5
save_LIBS="$LIBS"
LIBS="$LIBS $ODBC_LIB"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -lodbc" >&5
printf %s "checking for SQLAllocHandle in -lodbc... " >&6; }
if test ${ac_cv_lib_odbc_SQLAllocHandle+y}
then :
Expand Down Expand Up @@ -5741,6 +5776,57 @@ then :
ODBC_LIB="$ODBC_LIB -lodbc"; odbc_lib_link_success=yes
fi

if test $odbc_lib_link_success = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -liodbc" >&5
printf %s "checking for SQLAllocHandle in -liodbc... " >&6; }
if test ${ac_cv_lib_iodbc_SQLAllocHandle+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_check_lib_save_LIBS=$LIBS
LIBS="-liodbc $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char SQLAllocHandle (void);
int
main (void)
{
return SQLAllocHandle ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_iodbc_SQLAllocHandle=yes
else case e in #(
e) ac_cv_lib_iodbc_SQLAllocHandle=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iodbc_SQLAllocHandle" >&5
printf "%s\n" "$ac_cv_lib_iodbc_SQLAllocHandle" >&6; }
if test "x$ac_cv_lib_iodbc_SQLAllocHandle" = xyes
then :
ODBC_LIB="$ODBC_LIB -liodbc"; odbc_lib_link_success=yes
fi

fi
LIBS="$save_LIBS"
;; #(
win32|cygwin) :

Expand Down Expand Up @@ -5794,6 +5880,8 @@ fi
ODBC_LIB=-L"$with_odbc/lib"
ODBC_INCLUDE="-I$with_odbc/include"
fi
save_LIBS="$LIBS"
LIBS="$LIBS $ODBC_LIB"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lodbc32" >&5
printf %s "checking for main in -lodbc32... " >&6; }
if test ${ac_cv_lib_odbc32_main+y}
Expand Down Expand Up @@ -5833,6 +5921,7 @@ then :
ODBC_LIB="$ODBC_LIB -lodbc32"; odbc_lib_link_success=yes
fi

LIBS="$save_LIBS"
;; #(
*) :

Expand Down Expand Up @@ -5911,6 +6000,8 @@ printf "%s\n" "$as_me: WARNING: No odbc library found skipping odbc" >&2;}
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ODBC_LIB" >&5
printf "%s\n" "$ODBC_LIB" >&6; }
save_LIBS="$LIBS"
LIBS="$LIBS $ODBC_LIB"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -lodbc" >&5
printf %s "checking for SQLAllocHandle in -lodbc... " >&6; }
if test ${ac_cv_lib_odbc_SQLAllocHandle+y}
Expand Down Expand Up @@ -5959,12 +6050,65 @@ then :
ODBC_LIB="$ODBC_LIB -lodbc"; odbc_lib_link_success=yes
fi

if test $odbc_lib_link_success = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -liodbc" >&5
printf %s "checking for SQLAllocHandle in -liodbc... " >&6; }
if test ${ac_cv_lib_iodbc_SQLAllocHandle+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_check_lib_save_LIBS=$LIBS
LIBS="-liodbc $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char SQLAllocHandle (void);
int
main (void)
{
return SQLAllocHandle ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_iodbc_SQLAllocHandle=yes
else case e in #(
e) ac_cv_lib_iodbc_SQLAllocHandle=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iodbc_SQLAllocHandle" >&5
printf "%s\n" "$ac_cv_lib_iodbc_SQLAllocHandle" >&6; }
if test "x$ac_cv_lib_iodbc_SQLAllocHandle" = xyes
then :
ODBC_LIB="$ODBC_LIB -liodbc"; odbc_lib_link_success=yes
fi

fi
LIBS="$save_LIBS"
fi
;; #(
*) :

ODBC_LIB=-L"$with_odbc/lib"
ODBC_INCLUDE="-I$with_odbc/include"
save_LIBS="$LIBS"
LIBS="$LIBS $ODBC_LIB"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -lodbc" >&5
printf %s "checking for SQLAllocHandle in -lodbc... " >&6; }
if test ${ac_cv_lib_odbc_SQLAllocHandle+y}
Expand Down Expand Up @@ -6013,11 +6157,86 @@ then :
ODBC_LIB="$ODBC_LIB -lodbc"; odbc_lib_link_success=yes
fi

if test $odbc_lib_link_success = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -liodbc" >&5
printf %s "checking for SQLAllocHandle in -liodbc... " >&6; }
if test ${ac_cv_lib_iodbc_SQLAllocHandle+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_check_lib_save_LIBS=$LIBS
LIBS="-liodbc $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char SQLAllocHandle (void);
int
main (void)
{
return SQLAllocHandle ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_iodbc_SQLAllocHandle=yes
else case e in #(
e) ac_cv_lib_iodbc_SQLAllocHandle=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iodbc_SQLAllocHandle" >&5
printf "%s\n" "$ac_cv_lib_iodbc_SQLAllocHandle" >&6; }
if test "x$ac_cv_lib_iodbc_SQLAllocHandle" = xyes
then :
ODBC_LIB="$ODBC_LIB -liodbc"; odbc_lib_link_success=yes
fi

fi
LIBS="$save_LIBS"
;;
esac
;;
esac

save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $ODBC_INCLUDE"
for ac_header in sql.h sqlext.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_WINDOWS_H
# include <windows.h>
#endif

"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1
_ACEOF
odbc_required_headers=yes
else case e in #(
e) odbc_required_headers=no ;;
esac
fi

done
CFLAGS="$save_CFLAGS"

if test $odbc_required_headers = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: \"ODBC library - header check failed\"" >&5
printf "%s\n" "$as_me: WARNING: \"ODBC library - header check failed\"" >&2;}
Expand Down Expand Up @@ -7265,4 +7484,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi


Loading
Loading