OL_ARG_ENABLE(bdb2,[ --enable-bdb2 enable bdb2 backend], no)dnl
OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
OL_ARG_WITH(ldbm_api,[ --with-ldbm-api use LDBM API], auto,
- [auto db2 db gdbm ndbm manual])
+ [auto db2 db mdbm gdbm ndbm manual])
OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto,
[auto btree hash])
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([GDBM only supports LDBM type hash])
fi
+ if test $ol_with_ldbm_api = mdbm -a \
+ $ol_with_ldbm_type = btree ; then
+ AC_MSG_ERROR([MDBM only supports LDBM type hash])
+ fi
if test $ol_with_ldbm_api = ndbm -a \
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([NDBM only supports LDBM type hash])
AC_MSG_RESULT(done)
-AC_CANONICAL_HOST
-
## Initialize vars
LDAP_LIBS=
LDBM_LIBS=
dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
dnl pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
+ dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
dnl pthread_create() in -lpthread (many)
dnl pthread_create() in -lc_r (FreeBSD)
- dnl pthread_create() in -lpthreads (many)
- dnl pthread_join() -Wl,-woff,85 -lpthreads (IRIX)
dnl
dnl Check pthread (draft4) flags (depreciated)
dnl pthread_create() with -threads (OSF/1)
dnl
- dnl Check pthread (final) libraries (depreciated)
+ dnl Check pthread (draft4) libraries (depreciated)
dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
+ dnl pthread_create() in -lpthreads (many)
dnl
dnl pthread_create in $LIBS
- AC_CHECK_FUNC(pthread_create,[ol_link_threads=yes])
+ AC_MSG_CHECKING([for pthread_create in default libraries])
+ AC_CACHE_VAL(ol_cv_pthread_create,[
+ AC_TRY_RUN([
+#include <pthread.h>
+#ifndef NULL
+#define NULL (void*)0
+#endif
+
+static void *task(p)
+ void *p;
+{
+ return (void *) (p == NULL);
+}
+
+int main(argc, argv)
+ int argc;
+ char **argv;
+{
+ pthread_t t;
+ int status;
+
+ /* make sure pthread_create() isn't just a stub */
+#if HAVE_PTHREADS_D4
+ status = pthread_create(&t, pthread_attr_default, task, NULL));
+#else
+ status = pthread_create(&t, NULL, task, NULL);
+#endif
+
+ if( status ) return status;
+
+ /* make sure pthread_detach() isn't just a stub */
+#if HAVE_PTHREADS_D4
+ status = pthread_detach( &t );
+#else
+ status = pthread_detach( t );
+#endif
+
+ if( status ) return status;
+
+ return status;
+}
+],
+ [ol_cv_pthread_create=yes],
+ [ol_cv_pthread_create=no],
+ [dnl assume yes
+ ol_cv_pthread_create=yes])])
+ AC_MSG_RESULT($ol_cv_pthread_create)
+
+ if test $ol_cv_pthread_create != no ; then
+ ol_link_threads=posix
+ fi
if test $ol_link_threads = no ; then
dnl try -mt
AC_CACHE_CHECK([for pthread_create with -mt],
- [ol_cv_thread_flag], [
+ [ol_cv_pthread_mt_flag], [
dnl save the flags
save_LIBS="$LIBS"
LIBS="-mt $LIBS"
AC_TRY_LINK([char pthread_create();],
[pthread_create();],
- [ol_cv_thread_flag=yes], [ol_cv_thread_flag=no])
+ [ol_cv_pthread_mt_flag=yes], [ol_cv_pthread_mt_flag=no])
dnl restore the LIBS
LIBS="$save_LIBS"
])
- if test $ol_cv_thread_flag = yes ; then
+ if test $ol_cv_pthread_mt_flag = yes ; then
LTHREAD_LIBS="$LTHREAD_LIBS -mt"
ol_link_threads=posix
fi
#if HAVE_PTHREADS_D4
pthread_create(NULL,pthread_attr_default,NULL,NULL);
#else
- pthread_create(NULL,NULL,NULL,NULL);
+ pthread_t t;
+ pthread_create(&t,NULL,NULL,NULL);
+ pthread_detach(t);
#endif
],
[ol_cv_kthread_flag=yes], [ol_cv_kthread_flag=no])
AC_CHECK_LIB(pthread, pthread_mutex_unlock, [
ol_link_threads=posix
LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc -lc_r"
- if test $ol_with_yielding_select = auto ; then
- ol_with_yielding_select=yes
- fi
+dnl if test $ol_with_yielding_select = auto ; then
+dnl ol_with_yielding_select=yes
+dnl fi
],:,[-lmach -lexc -lc_r])
LIBS="$save_LIBS"
fi
AC_CHECK_LIB(pthread, pthread_mutex_lock, [
ol_link_threads=posix
LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc"
- if test $ol_with_yielding_select = auto ; then
- ol_with_yielding_select=yes
- fi
+dnl if test $ol_with_yielding_select = auto ; then
+dnl ol_with_yielding_select=yes
+dnl fi
],:,[-lmach -lexc])
LIBS="$save_LIBS"
fi
AC_CHECK_LIB(pthread, pthread_mutex_trylock, [
ol_link_threads=posix
LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lexc"
- if test $ol_with_yielding_select = auto ; then
- ol_with_yielding_select=yes
- fi
+dnl if test $ol_with_yielding_select = auto ; then
+dnl ol_with_yielding_select=yes
+dnl fi
],:,[-lexc])
LIBS="$save_LIBS"
fi
+ dnl IRIX Pthread check
if test $ol_link_threads = no ; then
- dnl try -lpthread
- save_LIBS="$LIBS"
- AC_CHECK_LIB(pthread, pthread_create, [
- ol_link_threads=posix
- LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"],:)
- LIBS="$save_LIBS"
- fi
-
- if test $ol_link_threads = no ; then
- dnl try -lc_r
+ dnl try IRIX Pthreads -Wl,-woff,85 -lpthread
save_LIBS="$LIBS"
- AC_CHECK_LIB(c_r, pthread_create, [
+ AC_CHECK_LIB(pthread, pthread_join, [
ol_link_threads=posix
- LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"],:)
+ LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"
+ ],:,[-Wl,-woff,85])
LIBS="$save_LIBS"
fi
if test $ol_link_threads = no ; then
- dnl try -lpthreads
+ dnl try -lpthread
save_LIBS="$LIBS"
- AC_CHECK_LIB(pthreads, pthread_create, [
+ AC_CHECK_LIB(pthread, pthread_create, [
ol_link_threads=posix
- LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"],:)
+ LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"],:)
LIBS="$save_LIBS"
fi
- dnl IRIX Pthread check
if test $ol_link_threads = no ; then
- dnl try IRIX Pthreads -Wl,-woff,85 -lpthreads
+ dnl try -lc_r
save_LIBS="$LIBS"
- AC_CHECK_LIB(pthreads, pthread_join, [
+ AC_CHECK_LIB(c_r, pthread_create, [
ol_link_threads=posix
- LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"
- ],:,[-Wl,-woff,85])
+ LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"],:)
LIBS="$save_LIBS"
fi
if test $ol_link_threads = no ; then
dnl try -threads
AC_CACHE_CHECK([for pthread_create with -threads],
- [ol_cv_thread_flag], [
+ [ol_cv_threads_flag], [
dnl save the flags
save_LIBS="$LIBS"
LIBS="-threads $LIBS"
AC_TRY_LINK([char pthread_create();],[
pthread_create();
- ], ol_cv_thread_flag=yes, ol_cv_thread_flag=no)
+ ], ol_cv_threads_flag=yes, ol_cv_threads_flag=no)
dnl restore the LIBS
LIBS="$save_LIBS"
])
- if test $ol_cv_thread_flag = yes ; then
+ if test $ol_cv_threads_flag = yes ; then
LTHREAD_LIBS="$LTHREAD_LIBS -threads"
ol_link_threads=posix
fi
AC_CHECK_LIB(pthreads, pthread_mutex_unlock, [
ol_link_threads=posix
LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lmach -lexc -lc_r"
- if test $ol_with_yielding_select = auto ; then
- ol_with_yielding_select=yes
- fi
+dnl if test $ol_with_yielding_select = auto ; then
+dnl ol_with_yielding_select=yes
+dnl fi
],:,[-lmach -lexc -lc_r])
LIBS="$save_LIBS"
fi
AC_CHECK_LIB(pthreads, pthread_mutex_lock, [
ol_link_threads=posix
LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lmach -lexc"
- if test $ol_with_yielding_select = auto ; then
- ol_with_yielding_select=yes
- fi
+dnl if test $ol_with_yielding_select = auto ; then
+dnl ol_with_yielding_select=yes
+dnl fi
],:,[-lmach -lexc])
LIBS="$save_LIBS"
fi
AC_CHECK_LIB(pthreads, pthread_mutex_trylock, [
ol_link_threads=posix
LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lexc"
- if test $ol_with_yielding_select = auto ; then
- ol_with_yielding_select=yes
- fi
+dnl if test $ol_with_yielding_select = auto ; then
+dnl ol_with_yielding_select=yes
+dnl fi
],:,[-lexc])
LIBS="$save_LIBS"
fi
+ if test $ol_link_threads = no ; then
+ dnl try -lpthreads
+ save_LIBS="$LIBS"
+ AC_CHECK_LIB(pthreads, pthread_create, [
+ ol_link_threads=posix
+ LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"],:)
+ LIBS="$save_LIBS"
+ fi
+
if test $ol_link_threads != no ; then
AC_DEFINE(HAVE_PTHREADS,1,
[define if you have POSIX Threads])
ol_with_ldbm_api=none
fi
+if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
+ OL_MDBM
+
+ if test $ol_cv_mdbm = yes ; then
+ ol_link_ldbm=mdbm
+ ol_with_ldbm_api=mdbm
+ if test $ol_cv_lib_mdbm != yes ; then
+ LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
+ fi
+ fi
+fi
+
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
OL_GDBM
OL_HEADER_STDC
if test $ol_cv_header_stdc != yes; then
- AC_MSG_WARN([could not Standard C compliant headers])
+ AC_MSG_WARN([could not locate Standard C compliant headers])
fi
AC_HEADER_DIRENT
fcntl.h \
filio.h \
getopt.h \
+ grp.h \
libutil.h \
limits.h \
locale.h \
dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
AC_FUNC_STRFTIME
dnl AM_FUNC_STRTOD
+AC_FUNC_VFORK
AC_FUNC_VPRINTF
if test $ac_cv_func_vprintf = yes ; then
AC_CHECK_FUNCS( \
bcopy \
+ endgrent \
+ endpwent \
flock \
getdtablesize \
+ getgrgid \
gethostname \
getpass \
getpwuid \
memcpy \
memmove \
mkstemp \
+ recv \
+ recvfrom \
select \
setpwfile \
setsid \
strspn \
sysconf \
waitpid \
+ wait4 \
)
+dnl Select arg types
+dnl (if this detection becomes permenent, it and the select() detection
+dnl should be done before the yielding select test)
+AC_FUNC_SELECT_ARGTYPES
+
dnl We actually may need to replace more than this.
AC_REPLACE_FUNCS(getopt tempnam)
tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
+contrib/web_ldap/Makefile:build/top.mk:contrib/web_ldap/Makefile.in:build/rules.mk \
,[
date > stamp-h
echo Please \"make depend\" to build dependencies