AC_PREREQ(2.57)
AC_REVISION($Id: configure.in,v 1.73 2007/10/08 13:04:32 source Exp $)
AC_INIT([iODBC Driver Manager],
[3.52.6],
[iodbc@openlinksw.com],
[libiodbc])
AC_CONFIG_SRCDIR([include/isql.h])
AC_CONFIG_AUX_DIR(admin)
AM_CONFIG_HEADER(include/config.h)
AM_INIT_AUTOMAKE(AC_PACKAGE_TARNAME, AC_PACKAGE_VERSION)
AC_CANONICAL_HOST
AM_MAINTAINER_MODE
BUILD_MAJOR="6" BUILD_MINOR="071008" BUILD_VER="${BUILD_MAJOR}${BUILD_MINOR}"
lib3_version=3:18:1 lib2_version=2:55:0
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
echo creating config.nice
rm -f config.nice
cat >config.nice<<CONFIG_NICE_EOF
#! /bin/sh
CONFIG_NICE_EOF
echo ${SHELL} "\"$0\" \\" >> config.nice
for arg in $ac_configure_args
do
echo "$arg \\" >> config.nice
done
echo '"$@"' >> config.nice
chmod +x config.nice
AC_PREFIX_DEFAULT(/usr/local)
AC_MSG_CHECKING(for iODBC installation layout)
AC_ARG_WITH(layout, [dnl
AC_HELP_STRING([--with-layout=LAYOUT], [Choose installation layout])dnl
],
[ case "${withval}" in
yes|no) IODBC_LAYOUT=unset ;;
*) IODBC_LAYOUT=${withval} ;;
esac
], [IODBC_LAYOUT=unset])
install_libodbc=true
case ${IODBC_LAYOUT} in
unset) iodbc_layout="default"
inidir=/etc
;;
[[Gg]][[Nn]][[Uu]]) iodbc_layout="GNU"
test "x$prefix" = xNONE && prefix=/usr/local
inidir=${prefix}/etc/iodbc
;;
[[Dd]][[Ee]][[Bb]][[Ii]][[Aa]][[Nn]]) iodbc_layout="Debian"
test "x$prefix" = xNONE && prefix=/usr
inidir=/etc
install_libodbc=false
;;
[[Gg]][[Ee]][[Nn]][[Tt]][[Oo]][[Oo]]) iodbc_layout="Gentoo"
test "x$prefix" = xNONE && prefix=/usr
includedir='${prefix}/include/iodbc'
inidir=/etc/iodbc
install_libodbc=false
;;
[[Rr]][[Ee]][[Dd]][[Hh]][[Aa]][[Tt]]) iodbc_layout=RedHat
test "x$prefix" = xNONE && prefix=/usr
inidir=/etc
;;
[[Ff]][[Rr]][[Ee]][[Ee]][[Bb]][[Ss]][[Dd]]) iodbc_layout=FreeBSD
test "x$prefix" = xNONE && prefix=/usr
inidir=/etc
;;
[[Oo]][[Pp]][[Tt]]) iodbc_layout=opt
test "x$prefix" = xNONE && prefix=/opt/iodbc
inidir=/etc
;;
[[Oo]][[Pp]][[Ee]][[Nn]][[Ll]][[Ii]][[Nn]][[Kk]]) iodbc_layout=openlink
prefix=/usr/local/iODBC
inidir=/etc
;;
*) AC_MSG_RESULT(unknown)
echo ""
echo "AC_HELP_STRING([Supported layouts:], [Debian FreeBSD GNU OpenLink opt RedHat])"
echo ""
AC_MSG_ERROR([unable to continue])
;;
esac
AC_MSG_RESULT([${iodbc_layout}])
AC_PROG_CC
AC_PROG_CC_C_O
AC_PROG_CC_STDC
AC_PROG_CPP
AC_LANG([C])
AC_C_CONST
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
dnl AC_PROG_RANLIB
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
AC_HEADER_STDC
AC_HEADER_TIME
AC_CHECK_HEADERS(wchar.h)
AC_CHECK_FUNCS(strerror setenv asprintf snprintf gettimeofday localtime_r)
dnl Unicode
AC_CHECK_FUNCS(wcslen wcscpy wcsncpy wcschr wcscat wcscmp towlower wcsncasecmp)
AC_ARG_ENABLE(gui, [dnl
AC_HELP_STRING([--enable-gui], [build GUI applications (default)])
AC_HELP_STRING([--disable-gui], [build GUI applications])dnl
],
[ case "${enableval}" in
yes) USE_GUI=true ;;
no) USE_GUI=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-gui) ;;
esac
],[USE_GUI=true])
USE_GTK=false
if test x$USE_GUI = xtrue
then
no_gtk=""
AM_PATH_GTK_2_0(2.0.0)
if test x$no_gtk != x
then
no_gtk=""
AM_PATH_GTK(1.2.3)
fi
if test x$no_gtk = x
then
USE_GTK=true
fi
fi
if test x$USE_GTK = xfalse
then
USE_GUI=false
fi
if test x$USE_GUI = xtrue
then
AC_DEFINE(GUI, 1, [Define if we detected a GUI library we can use])
fi
AM_CONDITIONAL(GUI, [test x$USE_GUI = xtrue])
AM_CONDITIONAL(GTK, [test x$USE_GTK = xtrue])
AC_CHECK_HEADERS(dlfcn.h dl.h dld.h)
LIBADD_DL=""
AC_CHECK_LIB(dl, dlopen,
[AC_DEFINE(HAVE_LIBDL, 1, [Define if you have the -ldl library])
LIBADD_DL="-ldl"],
[AC_CHECK_FUNCS(dlopen _dlopen, [
AC_DEFINE(HAVE_LIBDL, 1,[Define if you have the -ldl library])
])]
)
AC_CHECK_FUNC(shl_load,
[AC_DEFINE(HAVE_SHL_LOAD, 1, [Define if you have the shl_load function])],
[AC_CHECK_LIB(dld, shl_load,
[AC_DEFINE(HAVE_SHL_LOAD, 1, [Define if you have the shl_load function]) LIBADD_DL="$LIBADD_DL -ldld"])]
)
AC_CHECK_LIB(dld, dld_link,
[AC_DEFINE(HAVE_DLD, 1, [Define if you have the -ldld library])dnl
test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"])
AC_CHECK_FUNC(NSCreateObjectFileImageFromFile,
[AC_DEFINE(HAVE_DYLD, 1, [Define if you have the DYLD library])])
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([
/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
find out it does not work in some platform. */
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
AC_CHECK_FUNC(dladdr, AC_DEFINE(HAVE_DLADDR, 1, [Define to 1 if you have the `dladdr' function.]),
[AC_CHECK_LIB(dl, dladdr, [AC_DEFINE(HAVE_DLADDR, 1, [Define to 1 if you have the `dladdr' function]) LIBADD_DL="-ldl"],[])]
)
AC_CHECK_TYPE([Dl_info],
[AC_DEFINE(HAVE_DL_INFO, 1, [Define to 1 if you have the Dl_info structure])],
[],
[)
AC_MSG_CHECKING(for iODBC mode)
AC_ARG_ENABLE(odbc3, [dnl
AC_HELP_STRING([--enable-odbc3], [build ODBC 3.x compatible driver manager (default)])
AC_HELP_STRING([--disable-odbc3], [build ODBC 2.x compatible driver manager])dnl
],
[
case "${enableval}" in
yes) odbcmode=3 ;;
no) odbcmode=2
AC_MSG_ERROR(--disable-odbc3 temporarily disabled)
;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-odbc3) ;;
esac
],
[
odbcmode=3 ])
if test "x$odbcmode" = "x3"
then
lib_version=$lib3_version
CFLAGS="$CFLAGS -DODBCVER=0x0350 -DIODBC_BUILD=$BUILD_VER"
AC_MSG_RESULT(ODBC 3.x compatible mode)
else
lib_version=$lib2_version
CFLAGS="$CFLAGS -DODBCVER=0x0250 -DIODBC_BUILD=$BUILD_VER"
AC_MSG_RESULT(ODBC 2.x compatible mode)
fi
AC_SUBST(odbcmode)
AC_SUBST(lib_version)
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)
AC_MSG_CHECKING(for iODBC ini directory)
AC_ARG_WITH(iodbc-inidir, [dnl
AC_HELP_STRING([--with-iodbc-inidir=DIR], [where the system odbc.ini file should be located])
AC_HELP_STRING([ ], [(default is /etc)])dnl
],
[
case "$withval" in
yes|no)
inidir=$sysinidir
;;
*)
inidir=$withval
;;
esac
])
AC_MSG_RESULT($inidir)
AC_SUBST(inidir)
AC_DEFINE_UNQUOTED(SYS_ODBC_INI, "$inidir/odbc.ini",
[Define path to systemwide odbc.ini file])
AC_DEFINE_UNQUOTED(SYS_ODBCINST_INI, "$inidir/odbcinst.ini",
[Define path to systemwide odbcinst.ini file])
filedsnpath=$inidir/ODBCDataSources
AC_MSG_CHECKING(for FILEDSN default directory)
AC_ARG_WITH(iodbc-filedsnpath, [dnl
AC_HELP_STRING([--with-iodbc-filedsnpath=DIR], [default location for FILEDSN data sources])
AC_HELP_STRING([ ], [(default is $inidir/ODBCDataSources)])dnl
],
[
case "$withval" in
yes|no)
filedsnpath=$inidir/ODBCDataSources
;;
*)
filedsnpath=$withval
;;
esac
])
AC_MSG_RESULT($filedsnpath)
AC_SUBST(filedsnpath)
AC_DEFINE_UNQUOTED(DEFAULT_FILEDSNPATH, "$filedsnpath",
[Default location for FILEDSN data sources])
AC_MSG_CHECKING(for libodbc.so link)
AC_ARG_ENABLE(libodbc, [dnl
AC_HELP_STRING([--enable-libodbc], [install extra libodbc.so library (default)])
AC_HELP_STRING([--disable-libodbc], [do not install extra libodbc.so library ])dnl
],
[ case "${enableval}" in
yes) install_libodbc=true ;;
no) install_libodbc=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-libodbc) ;;
esac
],[])
AC_MSG_RESULT([$install_libodbc])
AM_CONDITIONAL(INSTALL_LIBODBC, [test x$install_libodbc = xtrue])
AC_ARG_WITH(pthreads,[],
[
AC_MSG_WARN([--with-pthreads flag is deprecated, use --enable-pthreads])
],[])
AC_MSG_CHECKING(for thread model)
AC_ARG_ENABLE(pthreads, [dnl
AC_HELP_STRING([--enable-pthreads], [build threaded libraries and applications (default)])
AC_HELP_STRING([--disable-pthreads], [build non-threaded libraries and applications])dnl
],
[ case "${enableval}" in
yes) USE_PTHREADS=true ;;
no) USE_PTHREADS=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-pthreads) ;;
esac
],[USE_PTHREADS=true])
if test x$USE_PTHREADS = xtrue
then
AC_MSG_RESULT(enabled pthread support)
CPPFLAGS="$CPPFLAGS -DWITH_PTHREADS -D_REENTRANT"
found_lib=false
AC_MSG_CHECKING(for OS dependent thread flags)
case $host in
*-aix*)
if test "x$CC" = "xcc"
then
CC=cc_r7
fi
AC_MSG_RESULT([using $CC for AIX])
;;
*UnixWare*)
CFLAGS="$CFLAGS -Kthread"
AC_MSG_RESULT([use -Kthread for UnixWare])
;;
i[3456]86-dg-dgux*)
CFLAGS="$CFLAGS -D_POSIX4A_DRAFT6_SOURCE"
LIBS="$LIBS -lthread"
AC_MSG_RESULT([use -lthread for DG/UX])
;;
*-freebsd*)
CFLAGS="$CFLAGS -pthread"
AC_MSG_RESULT([use -pthread for FreeBSD])
;;
*-hpux*)
LIBS="$LIBS -lpthread -lcl"
AC_MSG_RESULT([use -lpthread for HP/UX])
;;
*-osf3.*)
CPPFLAGS="$CPPFLAGS -DOLD_PTHREADS"
LIBS="$LIBS -lpthreads -lmach -lc_r"
AC_MSG_RESULT([use -lpthreads for OSF 3.2])
;;
*-osf4.*)
LIBS="$LIBS -lpthread"
AC_MSG_RESULT([use -lpthread for OSF 4.x])
;;
*)
AC_MSG_RESULT([none])
;;
esac
AC_CHECK_HEADER(pthread.h)
AC_CHECK_FUNC(pthread_mutex_lock, [found_lib=true])
if test x$found_lib = xfalse
then
IODBC_CHECK_PTHREAD_LIB(pthreads, pthread_mutex_lock,
[
LIBS="$LIBS -lpthreads"
found_lib=true
])
fi
if test x$found_lib = xfalse
then
IODBC_CHECK_PTHREAD_LIB(pthread, pthread_mutex_lock,
[
LIBS="$LIBS -lpthread"
found_lib=true
])
fi
else
AC_MSG_RESULT(no thread support)
fi
LIBADD_OS=""
AC_MSG_CHECKING(for OS dependent libraries and link flags)
AM_CONDITIONAL(DARWIN, false)
case $host in
*-hpux*)
LDFLAGS="$LDFLAGS -Wl,+s"
AC_MSG_RESULT([use -Wl,+s for HP/UX])
;;
*-darwin*)
AM_CONDITIONAL(DARWIN, true)
CFLAGS="$CFLAGS -DNO_FRAMEWORKS"
LIBADD_OS="-Wl,-framework,Carbon"
AC_MSG_RESULT([$LIBADD_OS])
;;
*)
AC_MSG_RESULT(none)
;;
esac
AC_SUBST(LIBADD_OS)
AC_CONFIG_FILES([
Makefile
admin/Makefile
admin/libiodbc.spec
admin/libiodbc.pc
bin/Makefile
bin/iodbc-config
etc/Makefile
man/Makefile
man/iodbc-config.1
man/iodbctest.1
man/iodbctestw.1
man/iodbcadm-gtk.1
include/Makefile
iodbc/Makefile
iodbc/trace/Makefile
iodbcinst/Makefile
iodbcadm/Makefile
iodbcadm/gtk/Makefile
drvproxy/Makefile
drvproxy/gtk/Makefile
samples/Makefile
])
AC_CONFIG_COMMANDS([default],[
chmod 755 bin/iodbc-config
])
AC_OUTPUT
B=`tput bold 2>/dev/null`
N=`tput sgr0 2>/dev/null`
echo ""
echo ""
echo "${B}${PACKAGE_STRING} configuration summary${N}"
echo "${PACKAGE_STRING} configuration summary" | sed 's/./=/g'
echo ""
echo "${B}Installation variables${N}"
echo "AC_HELP_STRING(layout, [${iodbc_layout}])"
echo "AC_HELP_STRING(prefix, [${prefix}])"
echo "AC_HELP_STRING(exec_prefix, [${exec_prefix}])"
echo ""
echo "${B}Installation paths${N}"
echo "AC_HELP_STRING(programs, [${bindir}])"
echo "AC_HELP_STRING(include files, [${includedir}])"
echo "AC_HELP_STRING(libraries, [${libdir}])"
echo "AC_HELP_STRING(manual pages, [${mandir}])"
echo ""
echo "${B}Configuration files${N}"
echo "AC_HELP_STRING(odbc.ini , [${inidir}/odbc.ini])"
echo "AC_HELP_STRING(odbcinst.ini , [${inidir}/odbcinst.ini])"
echo "AC_HELP_STRING(default FILEDSN path, [${filedsnpath}])"
echo ""
echo "${B}Extensions${N}"
echo "AC_HELP_STRING(ODBC Version, [${odbcmode}])"
echo "AC_HELP_STRING(GUI Extensions, [${USE_GUI}])"
echo "AC_HELP_STRING(ThreadSafe, [${USE_PTHREADS}])"
echo "AC_HELP_STRING(Install libodbc.so, [${install_libodbc}])"
echo ""