diff options
Diffstat (limited to 'lib/odbc/configure.in')
-rw-r--r-- | lib/odbc/configure.in | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/lib/odbc/configure.in b/lib/odbc/configure.in new file mode 100644 index 0000000000..77b576ee88 --- /dev/null +++ b/lib/odbc/configure.in @@ -0,0 +1,217 @@ + +dnl define([AC_CACHE_LOAD], )dnl +dnl define([AC_CACHE_SAVE], )dnl + +if test "x$no_recursion" != "xyes" -a "x$OVERRIDE_CONFIG_CACHE" = "x"; then + # We do not want to use a common cache! + cache_file=/dev/null +fi + + + +dnl Process this file with autoconf to produce a configure script. +AC_INIT(c_src/odbcserver.c) + +if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then + AC_CONFIG_AUX_DIRS(autoconf) +else + erl_top=${ERL_TOP} + AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf) +fi + +if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then + AC_CANONICAL_HOST +else + host_os=win32 +fi + +dnl Checks for programs. +AC_PROG_CC + +dnl --------------------------------------------------------------------- +dnl Special windows stuff regarding CFLAGS and details in the environment... +dnl --------------------------------------------------------------------- +AC_MSG_CHECKING(for mixed cygwin and native VC++ environment) +if test "X$CC" = "Xcc.sh" -a "X$host" = "Xwin32"; then + if test -x /usr/bin/cygpath; then + CFLAGS="-O2" + AC_MSG_RESULT([yes]) + MIXED_CYGWIN_VC=yes + else + AC_MSG_RESULT([undeterminable]) + AC_MSG_ERROR(Seems to be mixed windows but not with cygwin, cannot handle this!) + fi +else + AC_MSG_RESULT([no]) + MIXED_CYGWIN_VC=no +fi +AC_SUBST(MIXED_CYGWIN_VC) + +AC_PROG_MAKE_SET +AC_CHECK_PROGS(DED_LD, [ld.sh ld], '$(CC)') +AC_SUBST(DED_LD) + +# Sockets +#-------------------------------------------------------------------- +# Check for the existence of the -lsocket and -lnsl libraries. +# The order here is important, so that they end up in the right +# order in the command line generated by make. Here are some +# special considerations: +# 1. Use "connect" and "accept" to check for -lsocket, and +# "gethostbyname" to check for -lnsl. +# 2. Use each function name only once: can't redo a check because +# autoconf caches the results of the last check and won't redo it. +# 3. Use -lnsl and -lsocket only if they supply procedures that +# aren't already present in the normal libraries. This is because +# IRIX 5.2 has libraries, but they aren't needed and they're +# bogus: they goof up name resolution if used. +# 4. On some SVR4 systems, can't use -lsocket without -lnsl too. +# To get around this problem, check for both libraries together +# if -lsocket doesn't work by itself. +#-------------------------------------------------------------------- +erl_checkBoth=0 +AC_CHECK_FUNC(connect, erl_checkSocket=0, erl_checkSocket=1) +if test "$erl_checkSocket" = 1; then + AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket", erl_checkBoth=1) +fi +if test "$erl_checkBoth" = 1; then + tk_oldLibs=$LIBS + LIBS="$LIBS -lsocket -lnsl" + AC_CHECK_FUNC(accept, odbc_erl_checkNsl=0, [LIBS=$tk_oldLibs]) +fi +AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main, [LIBS="$LIBS -lnsl"])) + +dnl Checks for header files. +AC_HEADER_STDC +case $have_pthread_lib-$host_os in + yes-linux*) + dnl NPTL test stolen from $ERL_TOP/erts/aclocal.m4 + AC_MSG_CHECKING(for Native POSIX Thread Library) + case `getconf GNU_LIBPTHREAD_VERSION 2>/dev/null` in + nptl*) nptl=yes;; + NPTL*) nptl=yes;; + *) nptl=no;; + esac + AC_MSG_RESULT($nptl) + if test $nptl = yes; then + need_nptl_incldir=no + AC_CHECK_HEADER(nptl/pthread.h, need_nptl_incldir=yes) + if test $need_nptl_incldir = yes; then + # Ahh... + nptl_path="$C_INCLUDE_PATH:$CPATH:/usr/local/include:/usr/include" + nptl_ws_path= + save_ifs="$IFS"; IFS=":" + for dir in $nptl_path; do + if test "x$dir" != "x"; then + nptl_ws_path="$nptl_ws_path $dir" + fi + done + IFS=$save_ifs + nptl_incldir= + for dir in $nptl_ws_path; do + AC_CHECK_HEADER($dir/nptl/pthread.h, + nptl_incldir=$dir/nptl) + if test "x$nptl_incldir" != "x"; then + CFLAGS="$CFLAGS -isystem $nptl_incldir" + dnl CPPFLAGS is for configure internal use + CPPFLAGS="$CPPFLAGS -isystem $nptl_incldir" + break + fi + done + if test "x$nptl_incldir" = "x"; then + AC_MSG_ERROR(Failed to locate nptl system include directory) + fi + fi + fi + ;; + *) + ;; +esac +AC_CHECK_HEADERS([fcntl.h netdb.h stdlib.h string.h sys/socket.h]) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_SIZE_T + +dnl Checks for library functions. +AC_CHECK_FUNCS([memset socket]) + +# ODBC +/bin/rm -f $ERL_TOP/lib/odbc/SKIP + +have_pthread_lib=no +have_odbc_lib=no + +AC_SUBST(TARGET_FLAGS) + case $host_os in + darwin*) + TARGET_FLAGS="-DUNIX" + AC_CHECK_LIB(pthread, pthread_create, + [AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have the pthread library (-lpthread).]) + LIBS="$LIBS -lpthread" + have_pthread_lib=yes]) + if test ! -d "$with_odbc"; then + ODBC_LIB= -L"/usr/lib" + ODBC_INCLUDE="-I/usr/lib/include" + else + ODBC_LIB=-L"$with_odbc/lib" + ODBC_INCLUDE="-I$with_odbc/include" + fi + + AC_CHECK_LIB(iodbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -liodbc" odbc_lib_link_sucess=yes]) + ;; + win32|cygwin) + TARGET_FLAGS="-DWIN32" + AC_CHECK_LIB(ws2_32, main) + if test ! -d "$with_odbc"; then + ODBC_LIB="" + ODBC_INCLUDE="" + else + ODBC_LIB=-L"$with_odbc/lib" + ODBC_INCLUDE="-I$with_odbc/include" + fi + AC_CHECK_LIB(odbc32, main, [ODBC_LIB="$ODBC_LIB -lodbc32" odbc_lib_link_sucess=yes]) + ;; + *) + TARGET_FLAGS="-DUNIX" + AC_CHECK_LIB(pthread, pthread_create, + [AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have the pthread library (-lpthread).]) + LIBS="$LIBS -lpthread" + have_pthread_lib=yes]) + if test ! -d "$with_odbc"; then + AC_MSG_CHECKING([for odbc in standard locations]) + for dir in /usr/local/odbc /usr/local /usr/odbc \ + /usr /opt/local/pgm/odbc /usr/local/pgm/odbc + do + if test -f "$dir/include/sql.h"; then + is_odbc_std_location=yes + ODBC_LIB=-L"$dir/lib" + ODBC_INCLUDE="-I$dir/include" + break + fi + done + if test "x$is_odbc_std_location" != "xyes"; then + AC_MSG_RESULT(no) + AC_MSG_WARN([No odbc library found skipping odbc]) + echo "No odbc library found" > $ERL_TOP/lib/odbc/SKIP + else + AC_MSG_RESULT($ODBC_LIB) + AC_CHECK_LIB(odbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -lodbc" odbc_lib_link_sucess=yes]) + fi + else + ODBC_LIB=-L"$with_odbc/lib" + ODBC_INCLUDE="-I$with_odbc/include" + AC_CHECK_LIB(odbc, SQLAllocHandle,[ODBC_LIB="$ODBC_LIB -lodbc" odbc_lib_link_sucess=yes]) + fi + ;; +esac + +if test "x$odbc_lib_link_sucess" != "xyes"; then + AC_MSG_WARN(["ODBC library - link check failed"]) + echo "ODBC library - link check failed" > $ERL_TOP/lib/odbc/SKIP +fi + +AC_SUBST(ODBC_LIB) +AC_SUBST(ODBC_INCLUDE) + +AC_OUTPUT(c_src/$host/Makefile:c_src/Makefile.in) |