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)