Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
331 lines (286 sloc) 8.28 KB
AC_PREREQ(2.13)
AC_REVISION($Id$)
#
# configure.in
#
# (C) 1999 OpenLink Software Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##########################################################################
## ##
## Initialization ##
## ##
##########################################################################
AC_INIT(isql.h)
AM_INIT_AUTOMAKE(libiodbc,3.0.2)
AC_CANONICAL_HOST
AM_MAINTAINER_MODE
##########################################################################
## ##
## Check whether config.cache belongs to this machine ##
## ##
##########################################################################
AC_MSG_CHECKING(cached information)
hostcheck="$host"
AC_CACHE_VAL(ac_cv_hostcheck, [ ac_cv_hostcheck="$hostcheck" ])
if test "$ac_cv_hostcheck" != "$hostcheck"; then
AC_MSG_RESULT(changed)
AC_MSG_WARN([Running on a different architecture.])
AC_MSG_WARN([Can't use cached values.])
AC_MSG_ERROR([Please remove the invalid config.cache file, then try again.])
else
AC_MSG_RESULT(ok)
fi
##########################################################################
## ##
## Check for C compiler ##
## ##
##########################################################################
AC_PROG_CC
AC_PROG_CC_C_O
AC_PROG_CC_STDC
AC_PROG_CPP
AC_LANG_C
##########################################################################
## ##
## Check for standard programs ##
## ##
##########################################################################
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
dnl AC_PROG_RANLIB
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
##########################################################################
## ##
## Check for header files ##
## ##
##########################################################################
dnl Checks for header files.
AC_HEADER_STDC
##########################################################################
## ##
## Check for specific library functions ##
## ##
##########################################################################
AC_CHECK_FUNCS(strerror)
##########################################################################
## ##
## Check for dynamic load module ##
## ##
##########################################################################
AC_CHECK_HEADERS(dlfcn.h dl.h dld.h)
LIBADD_DL=
AC_CHECK_LIB(dl, dlopen,
[AC_DEFINE(HAVE_LIBDL, 1) LIBADD_DL="-ldl"],
[AC_CHECK_FUNCS(dlopen _dlopen, [AC_DEFINE(HAVE_LIBDL, 1)])]
)
AC_CHECK_FUNC(shl_load,
[AC_DEFINE(HAVE_SHL_LOAD, 1)],
[AC_CHECK_LIB(dld, shl_load,
[AC_DEFINE(HAVE_SHL_LOAD, 1) LIBADD_DL="$LIBADD_DL -ldld"])]
)
AC_CHECK_LIB(dld, dld_link,
[AC_DEFINE(HAVE_DLD, 1)dnl
test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"])
AC_CHECK_FUNC(NSCreateObjectFileImageFromFile,
[AC_DEFINE(HAVE_DYLD, 1)])
AC_SUBST(LIBADD_DL)
AC_CACHE_CHECK([for underscore before symbols], libltdl_cv_uscore, [
echo "main(){int i=1;} fnord(){int i=23; int ltuae=42;}" > conftest.c
${CC} -c conftest.c > /dev/null
if (nm conftest.o | grep _fnord) > /dev/null; then
libltdl_cv_uscore=yes
else
libltdl_cv_uscore=no
fi
rm -f conftest*
])
if test x"$libltdl_cv_uscore" = xyes; then
if test x"$ac_cv_func_dlopen" = xyes ||
test x"$ac_cv_lib_dl_dlopen" = xyes ; then
AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
libltdl_cv_need_uscore, [dnl
AC_TRY_RUN([
#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif
#include <stdio.h>
#ifdef RTLD_GLOBAL
# define LTDL_GLOBAL RTLD_GLOBAL
#else
# ifdef DL_GLOBAL
# define LTDL_GLOBAL DL_GLOBAL
# else
# define LTDL_GLOBAL 0
# endif
#endif
/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
find out it does not work in some platform. */
#ifndef LTDL_LAZY_OR_NOW
# ifdef RTLD_LAZY
# define LTDL_LAZY_OR_NOW RTLD_LAZY
# else
# ifdef DL_LAZY
# define LTDL_LAZY_OR_NOW DL_LAZY
# else
# ifdef RTLD_NOW
# define LTDL_LAZY_OR_NOW RTLD_NOW
# else
# ifdef DL_NOW
# define LTDL_LAZY_OR_NOW DL_NOW
# else
# define LTDL_LAZY_OR_NOW 0
# endif
# endif
# endif
# endif
#endif
fnord ()
{
int i = 42;
}
main ()
{
void *self, *ptr1, *ptr2;
self = dlopen (0, LTDL_GLOBAL | LTDL_LAZY_OR_NOW);
if (self)
{
ptr1 = dlsym (self, "fnord");
ptr2 = dlsym (self, "_fnord");
if (ptr1 && !ptr2)
{
dlclose (self);
exit (0);
}
}
exit (1);
}
], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes,
libltdl_cv_need_uscore=no
)])
fi
fi
if test x"$libltdl_cv_need_uscore" = xyes; then
AC_DEFINE(NEED_USCORE, 1,
[Define if dlsym() requires a leading underscode in symbol names. ])
fi
##########################################################################
## ##
## Set version information ##
## ##
##########################################################################
AC_MSG_CHECKING(for iODBC mode)
AC_ARG_ENABLE(odbc3,
[ --enable-odbc3 build ODBC 3.x compatible driver manager (default)
--disable-odbc3 build ODBC 2.x compatible driver manager],
[
case "${enableval}" in
yes) odbcmode=3 ;;
no) odbcmode=2 ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-odbc3) ;;
esac
],
[
odbcmode=3 # set default to ODBC 3.x mode
])
if test "x$odbcmode" = "x3"
then
lib_version=3:2:1
CFLAGS="$CFLAGS -DODBCVER=0x0350"
AC_MSG_RESULT(ODBC 3.x compatible mode)
else
lib_version=2:53:0;
CFLAGS="$CFLAGS -DODBCVER=0x0250"
AC_MSG_RESULT(ODBC 2.x compatible mode)
fi
AC_SUBST(odbcmode)
AC_SUBST(lib_version)
##########################################################################
## ##
## Where to find the system odbc.ini file **
## ##
##########################################################################
#
# First determine the systemwide default directory according
# to GNU specifications
#
AC_MSG_CHECKING(system config directory)
sysinidir=`eval echo $sysconfdir`
case "$sysinidir" in
NONE*)
sysinidir=$ac_default_prefix/etc
;;
/usr/etc)
sysinidir=/etc
;;
*)
sysinidir=`eval echo $sysconfdir`
;;
esac
AC_MSG_RESULT($sysinidir)
#
# Now allow to overrule this directory with a custom setting
#
AC_MSG_CHECKING(for iODBC ini directory)
AC_ARG_WITH(iodbc-inidir,
[ --with-iodbc-inidir=DIR where the system odbc.ini file should be located.
(default is /etc) ],
[
case "$withval" in
yes|no)
inidir=$sysinidir
;;
*)
inidir=$withval
;;
esac
], [ inidir=/etc ])
AC_MSG_RESULT($inidir)
AC_SUBST(inidir)
AC_DEFINE_UNQUOTED(SYS_ODBC_INI, "$inidir/odbc.ini")
AC_DEFINE_UNQUOTED(SYS_ODBCINST_INI, "$inidir/odbcinst.ini")
##########################################################################
## ##
## Checkout pthread situation ##
## ##
##########################################################################
AC_ARG_WITH(pthreads,
[ --with-pthreads build pthread implementation if possible],
[CFLAGS="$CFLAGS -DWITH_PTHREADS -D_REENTRANT"
AC_CHECK_LIB(pthreads, pthread_create,
[if test "$host_os" = "osf3.2"
then
CFLAGS="$CFLAGS -DOLD_PTHREADS"
LIBS="$LIBS -lpthreads -lmach -lc_r"
else
LIBS="$LIBS -lpthreads"
fi
],
[AC_CHECK_LIB(pthread, pthread_create, [LIBS="$LIBS -lpthread"])])
])
##########################################################################
## ##
## Generate Makefiles etc. ##
## ##
##########################################################################
AC_OUTPUT([
Makefile
samples/Makefile
iodbc-config
], [
chmod 755 iodbc-config
])
Jump to Line
Something went wrong with that request. Please try again.