diff options
Diffstat (limited to 'sntp/libevent/m4')
-rw-r--r-- | sntp/libevent/m4/acx_pthread.m4 | 279 | ||||
-rw-r--r-- | sntp/libevent/m4/openldap-thread-check.m4 | 683 | ||||
-rw-r--r-- | sntp/libevent/m4/openldap.m4 | 1131 |
3 files changed, 279 insertions, 1814 deletions
diff --git a/sntp/libevent/m4/acx_pthread.m4 b/sntp/libevent/m4/acx_pthread.m4 new file mode 100644 index 0000000..d2b1169 --- /dev/null +++ b/sntp/libevent/m4/acx_pthread.m4 @@ -0,0 +1,279 @@ +##### http://autoconf-archive.cryp.to/acx_pthread.html +# +# SYNOPSIS +# +# ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. +# It sets the PTHREAD_LIBS output variable to the threads library and +# linker flags, and the PTHREAD_CFLAGS output variable to any special +# C compiler flags that are needed. (The user can also force certain +# compiler flags/libs to be tested by setting these environment +# variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). +# (This is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these +# flags, but also link it with them as well. e.g. you should link +# with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS +# $LIBS +# +# If you are only building threads programs, you may wish to use +# these variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute +# constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to +# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads +# library is found, and ACTION-IF-NOT-FOUND is a list of commands to +# run it if it is not found. If ACTION-IF-FOUND is not specified, the +# default action will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or +# if you have any other suggestions or comments. This macro was based +# on work by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) +# (with help from M. Frigo), as well as ac_pthread and hb_pthread +# macros posted by Alejandro Forero Cuervo to the autoconf macro +# repository. We are also grateful for the helpful feedback of +# numerous users. +# +# LAST MODIFICATION +# +# 2007-07-29 +# +# COPYLEFT +# +# Copyright (c) 2007 Steven G. Johnson <stevenj@alum.mit.edu> +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program 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 +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright +# owner gives unlimited permission to copy, distribute and modify the +# configure scripts that are the output of Autoconf when processing +# the Macro. You need not follow the terms of the GNU General Public +# License when using or distributing such scripts, even though +# portions of the text of the Macro appear in them. The GNU General +# Public License (GPL) does govern all other use of the material that +# constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the +# Autoconf Macro released by the Autoconf Macro Archive. When you +# make and distribute a modified version of the Autoconf Macro, you +# may extend this special exception to the GPL to apply to your +# modified version as well. + +AC_DEFUN([ACX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_SAVE +AC_LANG_C +acx_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) + AC_MSG_RESULT($acx_pthread_ok) + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) + if test x"$acx_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_TRY_LINK([#include <pthread.h>], + [pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], + [acx_pthread_ok=yes]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT($acx_pthread_ok) + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_MSG_CHECKING([for joinable pthread attribute]) + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;], + [attr_name=$attr; break]) + done + AC_MSG_RESULT($attr_name) + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + AC_MSG_RESULT(${flag}) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with xlc_r or cc_r + if test x"$GCC" != xyes; then + AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) + else + PTHREAD_CC=$CC + fi +else + PTHREAD_CC="$CC" +fi + +AC_SUBST(PTHREAD_LIBS) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_CC) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) + : +else + acx_pthread_ok=no + $2 +fi +AC_LANG_RESTORE +])dnl ACX_PTHREAD diff --git a/sntp/libevent/m4/openldap-thread-check.m4 b/sntp/libevent/m4/openldap-thread-check.m4 deleted file mode 100644 index 33f9199..0000000 --- a/sntp/libevent/m4/openldap-thread-check.m4 +++ /dev/null @@ -1,683 +0,0 @@ -dnl OpenLDAP Autoconf thread check -dnl -dnl This work is part of OpenLDAP Software <http://www.openldap.org/>. -dnl -dnl Copyright 1998-2010 The OpenLDAP Foundation. -dnl All rights reserved. -dnl -dnl Redistribution and use in source and binary forms, with or without -dnl modification, are permitted only as authorized by the OpenLDAP -dnl Public License. -dnl -dnl A copy of this license is available in the file LICENSE-OPENLDAP in -dnl this directory of the distribution or, alternatively, at -dnl <http://www.OpenLDAP.org/license.html>. -dnl -dnl -------------------------------------------------------------------- - -# OL_THREAD_CHECK([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) - -AC_DEFUN([OL_THREAD_CHECK], [ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_LANG_SAVE -AC_LANG([C]) -OL_ARG_WITH(threads,[ --with-threads with threads], - auto, [auto nt posix mach pth lwp yes no manual] ) - -case "$ol_with_threads$host" in - auto*-*-solaris2.[[0-6]]) - dnl signals sometimes delivered to wrong thread with Solaris 2.6 - ol_with_threads=no - ;; -esac - -dnl AIX Thread requires we use cc_r or xlc_r. -dnl But only do this IF AIX and CC is not set -dnl and threads are auto|yes|posix. -dnl -dnl If we find cc_r|xlc_r, force pthreads and assume -dnl pthread_create is in $LIBS (ie: don't bring in -dnl any additional thread libraries) -dnl If we do not find cc_r|xlc_r, disable threads - -ol_aix_threads=no -case "$host" in -*-*-aix*) dnl all AIX is not a good idea. - if test -z "$CC" ; then - case "$ol_with_threads" in - auto | yes | posix) ol_aix_threads=yes ;; - esac - fi -;; -esac - -if test $ol_aix_threads = yes ; then - if test -z "${CC}" ; then - AC_CHECK_PROGS(CC,cc_r xlc_r cc) - - if test "$CC" = cc ; then - dnl no CC! don't allow --with-threads - if test $ol_with_threads != auto ; then - AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX]) - else - AC_MSG_WARN([disabling threads, no cc_r on AIX]) - fi - ol_with_threads=no - fi - fi - - case ${CC} in cc_r | xlc_r) - ol_with_threads=posix - ol_cv_pthread_create=yes - ;; - esac -fi - -dnl ---------------------------------------------------------------- -dnl Threads? -ol_link_threads=no -dnl ol_with_yielding_select=${ol_with_yielding_select:-auto} -OL_ARG_WITH(yielding_select,[ --with-yielding-select with yielding select], - auto, [auto yes no manual] ) - -case $ol_with_threads in auto | yes | nt) - - OL_NT_THREADS - - if test "$ol_cv_nt_threads" = yes ; then - ol_link_threads=nt - ol_with_threads=found - ol_with_yielding_select=yes - - AC_DEFINE([HAVE_NT_SERVICE_MANAGER], [1], [if you have NT Service Manager]) - AC_DEFINE([HAVE_NT_EVENT_LOG], [1], [if you have NT Event Log]) - fi - - if test $ol_with_threads = nt ; then - AC_MSG_ERROR([could not locate NT Threads]) - fi - ;; -esac - -case $ol_with_threads in auto | yes | posix) - - AC_CHECK_HEADERS(pthread.h) - - if test $ac_cv_header_pthread_h = yes ; then - OL_POSIX_THREAD_VERSION - - if test $ol_cv_pthread_version != 0 ; then - AC_DEFINE_UNQUOTED([HAVE_PTHREADS], [$ol_cv_pthread_version], - [define to pthreads API spec revision]) - else - AC_MSG_ERROR([unknown pthread version]) - fi - - # consider threads found - ol_with_threads=found - - OL_HEADER_LINUX_THREADS - OL_HEADER_GNU_PTH_PTHREAD_H - - if test $ol_cv_header_gnu_pth_pthread_h = no ; then - AC_CHECK_HEADERS(sched.h) - fi - - dnl Now the hard part, how to link? - dnl - dnl currently supported checks: - dnl - dnl Check for no flags - dnl pthread_create() in $LIBS - dnl - dnl Check special pthread (final) flags - dnl [skipped] pthread_create() with -mt (Solaris) [disabled] - dnl pthread_create() with -kthread (FreeBSD) - dnl pthread_create() with -pthread (FreeBSD/Digital Unix) - dnl pthread_create() with -pthreads (?) - dnl pthread_create() with -mthreads (AIX) - dnl pthread_create() with -thread (?) - dnl - dnl Check pthread (final) libraries - dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1) - dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1) - dnl [skipped] 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 - dnl Check pthread (draft4) flags (depreciated) - dnl pthread_create() with -threads (OSF/1) - dnl - 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_CACHE_CHECK([for pthread_create in default libraries], - ol_cv_pthread_create,[ - AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM], - [ol_cv_pthread_create=yes], - [ol_cv_pthread_create=no], - [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION, - [ol_cv_pthread_create=yes], - [ol_cv_pthread_create=no])])]) - - if test $ol_cv_pthread_create != no ; then - ol_link_threads=posix - ol_link_pthreads="" - fi - -dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt]) - OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread]) - OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread]) - OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads]) - OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads]) - OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread]) - - OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r], - [ol_cv_pthread_lpthread_lmach_lexc_lc_r]) - OL_PTHREAD_TRY([-lpthread -lmach -lexc], - [ol_cv_pthread_lpthread_lmach_lexc]) -dnl OL_PTHREAD_TRY([-lpthread -lexc], -dnl [ol_cv_pthread_lpthread_lexc]) - - OL_PTHREAD_TRY([-lpthread -Wl,-woff,85], - [ol_cv_pthread_lib_lpthread_woff]) - - OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread]) - OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r]) - - OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads]) - - OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r], - [ol_cv_pthread_lpthreads_lmach_lexc_lc_r]) - OL_PTHREAD_TRY([-lpthreads -lmach -lexc], - [ol_cv_pthread_lpthreads_lmach_lexc]) - OL_PTHREAD_TRY([-lpthreads -lexc], - [ol_cv_pthread_lpthreads_lexc]) - - OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads]) - - if test $ol_link_threads != no ; then - LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads" - - dnl save flags - save_CPPFLAGS="$CPPFLAGS" - save_LIBS="$LIBS" - LIBS="$LTHREAD_LIBS $LIBS" - - dnl All POSIX Thread (final) implementations should have - dnl sched_yield instead of pthread yield. - dnl check for both, and thr_yield for Solaris - AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield) - - if test $ac_cv_func_sched_yield = no && - test $ac_cv_func_pthread_yield = no && - test $ac_cv_func_thr_yield = no ; then - dnl Digital UNIX has sched_yield() in -lrt - AC_CHECK_LIB(rt, sched_yield, - [LTHREAD_LIBS="$LTHREAD_LIBS -lrt" - AC_DEFINE([HAVE_SCHED_YIELD], [1], - [Define if you have the sched_yield function.]) - ac_cv_func_sched_yield=yes], - [ac_cv_func_sched_yield=no]) - fi - if test $ac_cv_func_sched_yield = no && - test $ac_cv_func_pthread_yield = no && - test "$ac_cv_func_thr_yield" = no ; then - AC_MSG_WARN([could not locate sched_yield() or pthread_yield()]) - fi - - dnl Check functions for compatibility - AC_CHECK_FUNCS(pthread_kill) - - dnl Check for pthread_rwlock_destroy with <pthread.h> - dnl as pthread_rwlock_t may not be defined. - AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>], - [ol_cv_func_pthread_rwlock_destroy], [ - dnl save the flags - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#include <pthread.h> -pthread_rwlock_t rwlock; -]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no]) - ]) - if test $ol_cv_func_pthread_rwlock_destroy = yes ; then - AC_DEFINE([HAVE_PTHREAD_RWLOCK_DESTROY], [1], - [define if you have pthread_rwlock_destroy function]) - fi - - dnl Check for pthread_detach with <pthread.h> inclusion - dnl as it's symbol may have been mangled. - AC_CACHE_CHECK([for pthread_detach with <pthread.h>], - [ol_cv_func_pthread_detach], [ - dnl save the flags - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#include <pthread.h> -#ifndef NULL -#define NULL (void*)0 -#endif -]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no]) - ]) - - if test $ol_cv_func_pthread_detach = no ; then - AC_MSG_ERROR([could not locate pthread_detach()]) - fi - - AC_DEFINE([HAVE_PTHREAD_DETACH], [1], - [define if you have pthread_detach function]) - - dnl Check for setconcurreny functions - AC_CHECK_FUNCS( \ - pthread_setconcurrency \ - pthread_getconcurrency \ - thr_setconcurrency \ - thr_getconcurrency \ - ) - - OL_SYS_LINUX_THREADS - OL_LINUX_THREADS - - if test $ol_cv_linux_threads = error; then - AC_MSG_ERROR([LinuxThreads header/library mismatch]); - fi - - AC_CACHE_CHECK([if pthread_create() works], - ol_cv_pthread_create_works,[ - AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM], - [ol_cv_pthread_create_works=yes], - [ol_cv_pthread_create_works=no], - [dnl assume yes - ol_cv_pthread_create_works=yes])]) - - if test $ol_cv_pthread_create_works = no ; then - AC_MSG_ERROR([pthread_create is not usable, check environment settings]) - fi - - ol_replace_broken_yield=no -dnl case "$host" in -dnl *-*-linux*) -dnl AC_CHECK_FUNCS(nanosleep) -dnl ol_replace_broken_yield=yes -dnl ;; -dnl esac - - if test $ol_replace_broken_yield = yes ; then - AC_DEFINE([REPLACE_BROKEN_YIELD], [1], - [define if sched_yield yields the entire process]) - fi - - dnl Check if select causes an yield - if test x$ol_with_yielding_select = xauto ; then - AC_CACHE_CHECK([if select yields when using pthreads], - ol_cv_pthread_select_yields,[ - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <sys/types.h> -#include <sys/time.h> -#include <unistd.h> -#include <pthread.h> -#ifndef NULL -#define NULL (void*) 0 -#endif - -static int fildes[2]; - -static void *task(p) - void *p; -{ - int i; - struct timeval tv; - - fd_set rfds; - - tv.tv_sec=10; - tv.tv_usec=0; - - FD_ZERO(&rfds); - FD_SET(fildes[0], &rfds); - - /* we're not interested in any fds */ - i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv); - - if(i < 0) { - perror("select"); - exit(10); - } - - exit(0); /* if we exit here, the select blocked the whole process */ -} - -int main(argc, argv) - int argc; - char **argv; -{ - pthread_t t; - - /* create a pipe to select */ - if(pipe(&fildes[0])) { - perror("select"); - exit(1); - } - -#ifdef HAVE_PTHREAD_SETCONCURRENCY - (void) pthread_setconcurrency(2); -#else -#ifdef HAVE_THR_SETCONCURRENCY - /* Set Solaris LWP concurrency to 2 */ - thr_setconcurrency(2); -#endif -#endif - -#if HAVE_PTHREADS < 6 - pthread_create(&t, pthread_attr_default, task, NULL); -#else - pthread_create(&t, NULL, task, NULL); -#endif - - /* make sure task runs first */ -#ifdef HAVE_THR_YIELD - thr_yield(); -#elif defined( HAVE_SCHED_YIELD ) - sched_yield(); -#elif defined( HAVE_PTHREAD_YIELD ) - pthread_yield(); -#endif - - exit(2); -}]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])]) - - if test $ol_cv_pthread_select_yields = cross ; then - AC_MSG_ERROR([crossing compiling: use --with-yielding-select=yes|no|manual]) - fi - - if test $ol_cv_pthread_select_yields = yes ; then - ol_with_yielding_select=yes - fi - fi - - dnl restore flags - CPPFLAGS="$save_CPPFLAGS" - LIBS="$save_LIBS" - else - AC_MSG_ERROR([could not locate usable POSIX Threads]) - fi - fi - - if test $ol_with_threads = posix ; then - AC_MSG_ERROR([could not locate POSIX Threads]) - fi - ;; -esac - -case $ol_with_threads in auto | yes | mach) - - dnl check for Mach CThreads - AC_CHECK_HEADERS(mach/cthreads.h cthreads.h) - if test $ac_cv_header_mach_cthreads_h = yes ; then - ol_with_threads=found - - dnl check for cthreads support in current $LIBS - AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes]) - - if test $ol_link_threads = no ; then - dnl try -all_load - dnl this test needs work - AC_CACHE_CHECK([for cthread_fork with -all_load], - [ol_cv_cthread_all_load], [ - dnl save the flags - save_LIBS="$LIBS" - LIBS="-all_load $LIBS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[ - cthread_fork((void *)0, (void *)0); - ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no]) - dnl restore the LIBS - LIBS="$save_LIBS" - ]) - - if test $ol_cv_cthread_all_load = yes ; then - LTHREAD_LIBS="$LTHREAD_LIBS -all_load" - ol_link_threads=mach - ol_with_threads=found - fi - fi - - elif test $ac_cv_header_cthreads_h = yes ; then - dnl Hurd variant of Mach Cthreads - dnl uses <cthreads.h> and -lthreads - - ol_with_threads=found - - dnl save the flags - save_LIBS="$LIBS" - LIBS="$LIBS -lthreads" - AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes]) - LIBS="$save_LIBS" - - if test $ol_link_threads = yes ; then - LTHREAD_LIBS="-lthreads" - ol_link_threads=mach - ol_with_threads=found - else - AC_MSG_ERROR([could not link with Mach CThreads]) - fi - - elif test $ol_with_threads = mach ; then - AC_MSG_ERROR([could not locate Mach CThreads]) - fi - - if test $ol_link_threads = mach ; then - AC_DEFINE([HAVE_MACH_CTHREADS], [1], - [define if you have Mach Cthreads]) - elif test $ol_with_threads = found ; then - AC_MSG_ERROR([could not link with Mach CThreads]) - fi - ;; -esac - -case $ol_with_threads in auto | yes | pth) - - AC_CHECK_HEADERS(pth.h) - - if test $ac_cv_header_pth_h = yes ; then - AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no]) - - if test $have_pth = yes ; then - AC_DEFINE([HAVE_GNU_PTH], [1], [if you have GNU Pth]) - LTHREAD_LIBS="$LTHREAD_LIBS -lpth" - ol_link_threads=pth - ol_with_threads=found - - if test x$ol_with_yielding_select = xauto ; then - ol_with_yielding_select=yes - fi - fi - fi - ;; -esac - -case $ol_with_threads in auto | yes | lwp) - - dnl check for SunOS5 LWP - AC_CHECK_HEADERS(thread.h synch.h) - if test $ac_cv_header_thread_h = yes && - test $ac_cv_header_synch_h = yes ; then - AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no]) - - if test $have_thr = yes ; then - AC_DEFINE([HAVE_THR], [1], - [if you have Solaris LWP (thr) package]) - LTHREAD_LIBS="$LTHREAD_LIBS -lthread" - ol_link_threads=thr - - if test x$ol_with_yielding_select = xauto ; then - ol_with_yielding_select=yes - fi - - dnl Check for setconcurrency functions - AC_CHECK_FUNCS( \ - thr_setconcurrency \ - thr_getconcurrency \ - ) - fi - fi - - dnl check for SunOS4 LWP - AC_CHECK_HEADERS(lwp/lwp.h) - if test $ac_cv_header_lwp_lwp_h = yes ; then - AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no]) - - if test $have_lwp = yes ; then - AC_DEFINE([HAVE_LWP], [1], - [if you have SunOS LWP package]) - LTHREAD_LIBS="$LTHREAD_LIBS -llwp" - ol_link_threads=lwp - - if test x$ol_with_yielding_select = xauto ; then - ol_with_yielding_select=no - fi - fi - fi - ;; -esac - -if test $ol_with_yielding_select = yes ; then - AC_DEFINE([HAVE_YIELDING_SELECT], [1], - [define if select implicitly yields]) -fi - -if test $ol_with_threads = manual ; then - dnl User thinks he can manually configure threads. - ol_link_threads=yes - - AC_MSG_WARN([thread defines and link options must be set manually]) - - AC_CHECK_HEADERS(pthread.h sched.h) - AC_CHECK_FUNCS(sched_yield pthread_yield) - OL_HEADER_LINUX_THREADS - - AC_CHECK_HEADERS(mach/cthreads.h) - AC_CHECK_HEADERS(lwp/lwp.h) - AC_CHECK_HEADERS(thread.h synch.h) -fi - -if test $ol_link_threads != no && test $ol_link_threads != nt ; then - dnl needed to get reentrant/threadsafe versions - dnl - AC_DEFINE([REENTRANT], [1], [enable thread safety]) - AC_DEFINE([_REENTRANT], [1], [enable thread safety]) - AC_DEFINE([THREAD_SAFE], [1], [enable thread safety]) - AC_DEFINE([_THREAD_SAFE], [1], [enable thread safety]) - AC_DEFINE([THREADSAFE], [1], [enable thread safety]) - AC_DEFINE([_THREADSAFE], [1], [enable thread safety]) - AC_DEFINE([_SGI_MP_SOURCE], [1], [enable thread safety]) - - dnl The errno declaration may dependent upon _REENTRANT. - dnl If it does, we must link with thread support. - AC_CACHE_CHECK([for thread specific errno], - [ol_cv_errno_thread_specific], [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no]) - ]) - - dnl The h_errno declaration may dependent upon _REENTRANT. - dnl If it does, we must link with thread support. - AC_CACHE_CHECK([for thread specific h_errno], - [ol_cv_h_errno_thread_specific], [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], [[h_errno = 0;]])],[ol_cv_h_errno_thread_specific=yes],[ol_cv_h_errno_thread_specific=no]) - ]) - - if test $ol_cv_errno_thread_specific != yes || - test $ol_cv_h_errno_thread_specific != yes ; then - LIBS="$LTHREAD_LIBS $LIBS" - LTHREAD_LIBS="" - fi - -dnl When in thread environment, use -dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R ) -dnl func_r(...); -dnl #else -dnl # if defined( HAVE_THREADS ) -dnl /* lock */ -dnl # endif -dnl func(...); -dnl # if defined( HAVE_THREADS ) -dnl /* unlock */ -dnl # endif -dnl #endif -dnl -dnl HAVE_REENTRANT_FUNCTIONS is derived from: -dnl _POSIX_REENTRANT_FUNCTIONS -dnl _POSIX_THREAD_SAFE_FUNCTIONS -dnl _POSIX_THREADSAFE_FUNCTIONS -dnl -dnl and is currently defined in <ldap_pvt_thread.h> -dnl -dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS -dnl -dnl libldap/*.c should only include <ldap_pvt_thread.h> iff -dnl LDAP_R_COMPILE is defined. ie: -dnl #ifdef LDAP_R_COMPILE -dnl # include <ldap_pvt_thread.h> -dnl #endif -dnl -dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in -dnl specifically for compiling the threadsafe version of -dnl the ldap library (-lldap_r). -dnl -dnl dnl check for reentrant/threadsafe functions -dnl dnl -dnl dnl note: these should only be used when linking -dnl dnl with $LTHREAD_LIBS -dnl dnl -dnl save_CPPFLAGS="$CPPFLAGS" -dnl save_LIBS="$LIBS" -dnl LIBS="$LTHREAD_LIBS $LIBS" -dnl AC_CHECK_FUNCS( \ -dnl gmtime_r \ -dnl gethostbyaddr_r gethostbyname_r \ -dnl feof_unlocked unlocked_feof \ -dnl putc_unlocked unlocked_putc \ -dnl flockfile ftrylockfile \ -dnl ) -dnl CPPFLAGS="$save_CPPFLAGS" -dnl LIBS="$save_LIBS" -fi - -if test $ol_link_threads = no ; then - if test $ol_with_threads = yes ; then - AC_MSG_ERROR([no suitable thread support]) - fi - - if test $ol_with_threads = auto ; then - AC_MSG_WARN([no suitable thread support, disabling threads]) - ol_with_threads=no - fi - - AC_DEFINE([NO_THREADS], [1], - [define if you have (or want) no threads]) - LTHREAD_LIBS="" - BUILD_THREAD=no -else - BUILD_THREAD=yes -fi - -if test $ol_link_threads != no ; then - AC_DEFINE([LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE], [1], - [define to 1 if library is thread safe]) -fi - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -case "$ol_with_threads" in - no) - ol_pthread_ok=no - $2 - ;; - *) - ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) - ;; -esac - -AC_LANG_RESTORE -]) diff --git a/sntp/libevent/m4/openldap.m4 b/sntp/libevent/m4/openldap.m4 deleted file mode 100644 index 49ffb87..0000000 --- a/sntp/libevent/m4/openldap.m4 +++ /dev/null @@ -1,1131 +0,0 @@ -dnl OpenLDAP Autoconf Macros -dnl $OpenLDAP: pkg/ldap/build/openldap.m4,v 1.157.2.10 2010/04/13 20:22:21 kurt Exp $ -dnl This work is part of OpenLDAP Software <http://www.openldap.org/>. -dnl -dnl Copyright 1998-2010 The OpenLDAP Foundation. -dnl All rights reserved. -dnl -dnl Redistribution and use in source and binary forms, with or without -dnl modification, are permitted only as authorized by the OpenLDAP -dnl Public License. -dnl -dnl A copy of this license is available in the file LICENSE-OPENLDAP in -dnl this directory of the distribution or, alternatively, at -dnl <http://www.OpenLDAP.org/license.html>. -dnl -dnl -------------------------------------------------------------------- -dnl Restricted form of AC_ARG_ENABLE that limits user options -dnl -dnl $1 = option name -dnl $2 = help-string -dnl $3 = default value (auto). "--" means do not set it by default -dnl $4 = allowed values (auto yes no) -dnl $5 = overridden default -AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1 - pushdef([ol_DefVal],ifelse($3,,auto,$3)) - AC_ARG_ENABLE($1,ifelse($4,,[$2],[$2] translit([$4],[ ],[|])) ifelse($3,--,,@<:@ol_DefVal@:>@),[ - ol_arg=invalid - for ol_val in ifelse($4,,[auto yes no],[$4]) ; do - if test "$enableval" = "$ol_val" ; then - ol_arg="$ol_val" - fi - done - if test "$ol_arg" = "invalid" ; then - AC_MSG_ERROR(bad value $enableval for --enable-$1) - fi - ol_enable_$1="$ol_arg" -]ifelse($3,--,,[, -[ ol_enable_$1=ifelse($5,,ol_DefVal,[${]$5[:-]ol_DefVal[}])]]))dnl -dnl AC_MSG_RESULT([OpenLDAP -enable-$1 $ol_enable_$1]) - popdef([ol_DefVal]) -# end --enable-$1 -])dnl -dnl -dnl -------------------------------------------------------------------- -dnl Restricted form of AC_ARG_WITH that limits user options -dnl -dnl $1 = option name -dnl $2 = help-string -dnl $3 = default value (no) -dnl $4 = allowed values (yes or no) -AC_DEFUN([OL_ARG_WITH], [# OpenLDAP --with-$1 - AC_ARG_WITH($1,[$2 @<:@]ifelse($3,,yes,$3)@:>@,[ - ol_arg=invalid - for ol_val in ifelse($4,,[yes no],[$4]) ; do - if test "$withval" = "$ol_val" ; then - ol_arg="$ol_val" - fi - done - if test "$ol_arg" = "invalid" ; then - AC_MSG_ERROR(bad value $withval for --with-$1) - fi - ol_with_$1="$ol_arg" -], -[ ol_with_$1=ifelse($3,,"no","$3")])dnl -dnl AC_MSG_RESULT([OpenLDAP --with-$1 $ol_with_$1]) -# end --with-$1 -])dnl -dnl ==================================================================== -dnl Check for dependency generation flag -AC_DEFUN([OL_MKDEPEND], [# test for make depend flag -OL_MKDEP= -OL_MKDEP_FLAGS= -if test -z "${MKDEP}"; then - OL_MKDEP="${CC-cc}" - if test -z "${MKDEP_FLAGS}"; then - AC_CACHE_CHECK([for ${OL_MKDEP} depend flag], ol_cv_mkdep, [ - ol_cv_mkdep=no - for flag in "-M" "-xM"; do - cat > conftest.c <<EOF - noCode; -EOF - if AC_TRY_COMMAND($OL_MKDEP $flag conftest.c) \ - | grep '^conftest\.'"${ac_objext}" >/dev/null 2>&1 - then - if test ! -f conftest."${ac_object}" ; then - ol_cv_mkdep=$flag - OL_MKDEP_FLAGS="$flag" - break - fi - fi - done - rm -f conftest* - ]) - test "$ol_cv_mkdep" = no && OL_MKDEP=":" - else - cc_cv_mkdep=yes - OL_MKDEP_FLAGS="${MKDEP_FLAGS}" - fi -else - cc_cv_mkdep=yes - OL_MKDEP="${MKDEP}" - OL_MKDEP_FLAGS="${MKDEP_FLAGS}" -fi -AC_SUBST(OL_MKDEP) -AC_SUBST(OL_MKDEP_FLAGS) -]) -dnl -dnl ==================================================================== -dnl Check if system uses EBCDIC instead of ASCII -AC_DEFUN([OL_CPP_EBCDIC], [# test for EBCDIC -AC_CACHE_CHECK([for EBCDIC],ol_cv_cpp_ebcdic,[ - AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ -#if !('M' == 0xd4) -#include <__ASCII__/generate_error.h> -#endif -]])],[ol_cv_cpp_ebcdic=yes],[ol_cv_cpp_ebcdic=no])]) -if test $ol_cv_cpp_ebcdic = yes ; then - AC_DEFINE(HAVE_EBCDIC,1, [define if system uses EBCDIC instead of ASCII]) -fi -]) -dnl -dnl -------------------------------------------------------------------- -dnl Check for MSVC -AC_DEFUN([OL_MSVC], -[AC_REQUIRE_CPP()dnl -AC_CACHE_CHECK([whether we are using MS Visual C++], ol_cv_msvc, -[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ -#ifndef _MSC_VER -#include <__FOO__/generate_error.h> -#endif -]])],[ol_cv_msvc=yes],[ol_cv_msvc=no])])]) - -dnl -------------------------------------------------------------------- -dnl OpenLDAP version of STDC header check w/ EBCDIC support -AC_DEFUN([OL_HEADER_STDC], -[AC_REQUIRE_CPP()dnl -AC_REQUIRE([OL_CPP_EBCDIC])dnl -AC_CACHE_CHECK([for ANSI C header files], ol_cv_header_stdc, -[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h>]])],[ol_cv_header_stdc=yes],[ol_cv_header_stdc=no]) - -if test $ol_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -AC_EGREP_HEADER(memchr, string.h, , ol_cv_header_stdc=no) -fi - -if test $ol_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -AC_EGREP_HEADER(free, stdlib.h, , ol_cv_header_stdc=no) -fi - -if test $ol_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <ctype.h> -#ifndef HAVE_EBCDIC -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int main () { int i; for (i = 0; i < 256; i++) -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); -exit (0); } -]])],[],[ol_cv_header_stdc=no],[:]) -fi]) -if test $ol_cv_header_stdc = yes; then - AC_DEFINE([STDC_HEADERS], [1], [is standard C provided?]) -fi -ac_cv_header_stdc=disable -]) -dnl -dnl ==================================================================== -dnl DNS resolver macros -AC_DEFUN([OL_RESOLVER_TRY], -[if test $ol_cv_lib_resolver = no ; then - AC_CACHE_CHECK([for resolver link (]ifelse($2,,default,$2)[)],[$1], -[ - ol_RESOLVER_LIB=ifelse($2,,,$2) - ol_LIBS=$LIBS - LIBS="$ol_RESOLVER_LIB $LIBS" - - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#include <netinet/in.h> -#ifdef HAVE_ARPA_NAMESER_H -# include <arpa/nameser.h> -#endif -#ifdef HAVE_RESOLV_H -# include <resolv.h> -#endif -]], [[{ - int len, status; - char *request = NULL; - unsigned char reply[64*1024]; - unsigned char host[64*1024]; - unsigned char *p; - -#ifdef NS_HFIXEDSZ - /* Bind 8/9 interface */ - len = res_query(request, ns_c_in, ns_t_srv, reply, sizeof(reply)); -#else - /* Bind 4 interface */ -# ifndef T_SRV -# define T_SRV 33 -# endif - len = res_query(request, C_IN, T_SRV, reply, sizeof(reply)); -#endif - p = reply; -#ifdef NS_HFIXEDSZ - /* Bind 8/9 interface */ - p += NS_HFIXEDSZ; -#elif defined(HFIXEDSZ) - /* Bind 4 interface w/ HFIXEDSZ */ - p += HFIXEDSZ; -#else - /* Bind 4 interface w/o HFIXEDSZ */ - p += sizeof(HEADER); -#endif - status = dn_expand( reply, reply+len, p, host, sizeof(host)); -}]])],[$1=yes],[$1=no]) - - LIBS="$ol_LIBS" -]) - - if test $$1 = yes ; then - ol_cv_lib_resolver=ifelse($2,,yes,$2) - fi -fi -]) -dnl -------------------------------------------------------------------- -dnl Try to locate appropriate library -AC_DEFUN([OL_RESOLVER_LINK], -[ol_cv_lib_resolver=no -OL_RESOLVER_TRY(ol_cv_resolver_none) -OL_RESOLVER_TRY(ol_cv_resolver_resolv,[-lresolv]) -OL_RESOLVER_TRY(ol_cv_resolver_bind,[-lbind]) -]) -dnl -dnl ==================================================================== -dnl International Components for Unicode (ICU) -AC_DEFUN([OL_ICU], -[ol_icu=no -AC_CHECK_HEADERS( unicode/utypes.h ) -if test $ac_cv_header_unicode_utypes_h = yes ; then - dnl OL_ICULIBS="-licui18n -licuuc -licudata" - OL_ICULIBS="-licuuc -licudata" - - AC_CACHE_CHECK([for ICU libraries], [ol_cv_lib_icu], [ - ol_LIBS="$LIBS" - LIBS="$OL_ICULIBS $LIBS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#include <unicode/utypes.h> -]], [[ -(void) u_errorName(0); -]])],[ol_cv_lib_icu=yes],[ol_cv_lib_icu=no]) - LIBS="$ol_LIBS" -]) - - if test $ol_cv_lib_icu != no ; then - ol_icu="$OL_ICULIBS" - AC_DEFINE([HAVE_ICU], [1], [define if you actually have ICU]) - fi -fi -]) -dnl -dnl ==================================================================== -dnl Berkeley DB macros -dnl -dnl -------------------------------------------------------------------- -dnl Try to link -AC_DEFUN([OL_BERKELEY_DB_TRY], -[if test $ol_cv_lib_db = no ; then - AC_CACHE_CHECK([for Berkeley DB link (]ifelse($2,,default,$2)[)],[$1], -[ - ol_DB_LIB=ifelse($2,,,$2) - ol_LIBS=$LIBS - LIBS="$ol_DB_LIB $LTHREAD_LIBS $LIBS" - - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_DB_185_H -# include <db_185.h> -#else -# include <db.h> -#endif - -#ifndef DB_VERSION_MAJOR -# define DB_VERSION_MAJOR 1 -#endif - -#ifndef NULL -#define NULL ((void*)0) -#endif -]], [[ -#if DB_VERSION_MAJOR > 2 - db_env_create( NULL, 0 ); -#elif DB_VERSION_MAJOR > 1 - db_appexit( NULL ); -#else - (void) dbopen( NULL, 0, 0, 0, NULL); -#endif -]])],[$1=yes],[$1=no]) - - LIBS="$ol_LIBS" -]) - - if test $$1 = yes ; then - ol_cv_lib_db=ifelse($2,,yes,$2) - fi -fi -]) -dnl -dnl -------------------------------------------------------------------- -dnl Get major and minor version from <db.h> -AC_DEFUN([OL_BDB_HEADER_VERSION], -[AC_CACHE_CHECK([for Berkeley DB major version in db.h], [ol_cv_bdb_major],[ - AC_LANG_CONFTEST([ -#include <db.h> -#ifndef DB_VERSION_MAJOR -# define DB_VERSION_MAJOR 1 -#endif -__db_version DB_VERSION_MAJOR -]) - set X `eval "$ac_cpp conftest.$ac_ext" | $EGREP __db_version` none none - ol_cv_bdb_major=${3} -]) -case $ol_cv_bdb_major in [[1-9]]*) : ;; *) - AC_MSG_ERROR([Unknown Berkeley DB major version in db.h]) ;; -esac - -dnl Determine minor version -AC_CACHE_CHECK([for Berkeley DB minor version in db.h], [ol_cv_bdb_minor],[ - AC_LANG_CONFTEST([ -#include <db.h> -#ifndef DB_VERSION_MINOR -# define DB_VERSION_MINOR 0 -#endif -__db_version DB_VERSION_MINOR -]) - set X `eval "$ac_cpp conftest.$ac_ext" | $EGREP __db_version` none none - ol_cv_bdb_minor=${3} -]) -case $ol_cv_bdb_minor in [[0-9]]*) : ;; *) - AC_MSG_ERROR([Unknown Berkeley DB minor version in db.h]) ;; -esac -]) -dnl -dnl -------------------------------------------------------------------- -dnl Try to locate appropriate library -AC_DEFUN([OL_BERKELEY_DB_LINK], -[ol_cv_lib_db=no - -if test $ol_cv_bdb_major = 4 ; then - OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_m,[-ldb-4.$ol_cv_bdb_minor]) - OL_BERKELEY_DB_TRY(ol_cv_db_db4m,[-ldb4$ol_cv_bdb_minor]) - OL_BERKELEY_DB_TRY(ol_cv_db_db_4m,[-ldb-4$ol_cv_bdb_minor]) - OL_BERKELEY_DB_TRY(ol_cv_db_db_4_m,[-ldb-4-$ol_cv_bdb_minor]) - OL_BERKELEY_DB_TRY(ol_cv_db_db_4,[-ldb-4]) - OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4]) - OL_BERKELEY_DB_TRY(ol_cv_db_db,[-ldb]) -fi -OL_BERKELEY_DB_TRY(ol_cv_db_none) -]) -dnl -dnl -------------------------------------------------------------------- -dnl Check if Berkeley DB version -AC_DEFUN([OL_BERKELEY_DB_VERSION], -[AC_CACHE_CHECK([for Berkeley DB library and header version match], [ol_cv_berkeley_db_version], [ - ol_LIBS="$LIBS" - LIBS="$LTHREAD_LIBS $LIBS" - if test $ol_cv_lib_db != yes ; then - LIBS="$ol_cv_lib_db $LIBS" - fi - - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#ifdef HAVE_DB_185_H - choke me; -#else -#include <db.h> -#endif -#ifndef DB_VERSION_MAJOR -# define DB_VERSION_MAJOR 1 -#endif -#ifndef NULL -#define NULL ((void *)0) -#endif -main() -{ -#if DB_VERSION_MAJOR > 1 - char *version; - int major, minor, patch; - - version = db_version( &major, &minor, &patch ); - - if( major != DB_VERSION_MAJOR || - minor != DB_VERSION_MINOR || - patch != DB_VERSION_PATCH ) - { - printf("Berkeley DB version mismatch\n" - "\theader: %s\n\tlibrary: %s\n", - DB_VERSION_STRING, version); - return 1; - } -#endif - - return 0; -}]])],[ol_cv_berkeley_db_version=yes],[ol_cv_berkeley_db_version=no],[ol_cv_berkeley_db_version=cross]) - - LIBS="$ol_LIBS" -]) - - if test $ol_cv_berkeley_db_version = no ; then - AC_MSG_ERROR([Berkeley DB version mismatch]) - fi -])dnl -dnl -dnl -------------------------------------------------------------------- -dnl Check if Berkeley DB supports DB_THREAD -AC_DEFUN([OL_BERKELEY_DB_THREAD], -[AC_CACHE_CHECK([for Berkeley DB thread support], [ol_cv_berkeley_db_thread], [ - ol_LIBS="$LIBS" - LIBS="$LTHREAD_LIBS $LIBS" - if test $ol_cv_lib_db != yes ; then - LIBS="$ol_cv_lib_db $LIBS" - fi - - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#ifdef HAVE_DB_185_H - choke me; -#else -#include <db.h> -#endif -#ifndef NULL -#define NULL ((void *)0) -#endif -main() -{ - int rc; - u_int32_t flags = DB_CREATE | -#ifdef DB_PRIVATE - DB_PRIVATE | -#endif - DB_THREAD; - -#if DB_VERSION_MAJOR > 2 - DB_ENV *env = NULL; - - rc = db_env_create( &env, 0 ); - - flags |= DB_INIT_MPOOL; -#ifdef DB_MPOOL_PRIVATE - flags |= DB_MPOOL_PRIVATE; -#endif - - if( rc ) { - printf("BerkeleyDB: %s\n", db_strerror(rc) ); - return rc; - } - -#if (DB_VERSION_MAJOR > 3) || (DB_VERSION_MINOR >= 1) - rc = (env->open)( env, NULL, flags, 0 ); -#else - rc = (env->open)( env, NULL, NULL, flags, 0 ); -#endif - - if ( rc == 0 ) { - rc = env->close( env, 0 ); - } - - if( rc ) { - printf("BerkeleyDB: %s\n", db_strerror(rc) ); - return rc; - } - -#else - DB_ENV env; - memset( &env, '\0', sizeof(env) ); - - rc = db_appinit( NULL, NULL, &env, flags ); - - if( rc == 0 ) { - db_appexit( &env ); - } - - unlink("__db_mpool.share"); - unlink("__db_lock.share"); -#endif - - return rc; -}]])],[ol_cv_berkeley_db_thread=yes],[ol_cv_berkeley_db_thread=no],[ol_cv_berkeley_db_thread=cross]) - - LIBS="$ol_LIBS" -]) - - if test $ol_cv_berkeley_db_thread != no ; then - AC_DEFINE([HAVE_BERKELEY_DB_THREAD], [1], - [define if Berkeley DB has DB_THREAD support]) - fi -])dnl -dnl -dnl -------------------------------------------------------------------- -dnl Find any DB -AC_DEFUN([OL_BERKELEY_DB], -[ol_cv_berkeley_db=no -AC_CHECK_HEADERS(db.h) -if test $ac_cv_header_db_h = yes; then - OL_BDB_HEADER_VERSION - OL_BDB_COMPAT - - if test $ol_cv_bdb_compat != yes ; then - AC_MSG_ERROR([BerkeleyDB version incompatible with BDB/HDB backends]) - fi - - OL_BERKELEY_DB_LINK - if test "$ol_cv_lib_db" != no ; then - ol_cv_berkeley_db=yes - OL_BERKELEY_DB_VERSION - OL_BERKELEY_DB_THREAD - fi -fi -]) -dnl -------------------------------------------------------------------- -dnl Check for version compatility with back-bdb -AC_DEFUN([OL_BDB_COMPAT], -[AC_CACHE_CHECK([if Berkeley DB version supported by BDB/HDB backends], [ol_cv_bdb_compat],[ - AC_EGREP_CPP(__db_version_compat,[ -#include <db.h> - - /* this check could be improved */ -#ifndef DB_VERSION_MAJOR -# define DB_VERSION_MAJOR 1 -#endif -#ifndef DB_VERSION_MINOR -# define DB_VERSION_MINOR 0 -#endif - -#define DB_VERSION_MM ((DB_VERSION_MAJOR<<8)|DB_VERSION_MINOR) - -/* require 4.4 or later */ -#if DB_VERSION_MM >= 0x0404 - __db_version_compat -#endif - ], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])]) -]) - -dnl -dnl ==================================================================== -dnl Check POSIX Thread version -dnl -dnl defines ol_cv_pthread_version to 4, 5, 6, 7, 8, 10, depending on the -dnl version of the POSIX.4a Draft that is implemented. -dnl 10 == POSIX.4a Final == POSIX.1c-1996 for our purposes. -dnl Existence of pthread.h should be tested separately. -dnl -dnl tests: -dnl pthread_detach() was dropped in Draft 8, it is present -dnl in every other version -dnl PTHREAD_CREATE_UNDETACHED is only in Draft 7, it was called -dnl PTHREAD_CREATE_JOINABLE after that -dnl pthread_attr_create was renamed to pthread_attr_init in Draft 6. -dnl Draft 6-10 has _init, Draft 4-5 has _create. -dnl pthread_attr_default was dropped in Draft 6, only 4 and 5 have it -dnl PTHREAD_MUTEX_INITIALIZER was introduced in Draft 5. It's not -dnl interesting to us because we don't try to statically -dnl initialize mutexes. 5-10 has it. -dnl -dnl Draft 9 and 10 are equivalent for our purposes. -dnl -AC_DEFUN([OL_POSIX_THREAD_VERSION], -[AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -# include <pthread.h> - ]], [[ - int i = PTHREAD_CREATE_JOINABLE; - ]])],[ - AC_EGREP_HEADER(pthread_detach,pthread.h, - ol_cv_pthread_version=10, ol_cv_pthread_version=8)],[ - AC_EGREP_CPP(draft7,[ -# include <pthread.h> -# ifdef PTHREAD_CREATE_UNDETACHED - draft7 -# endif - ], ol_cv_pthread_version=7, [ - AC_EGREP_HEADER(pthread_attr_init,pthread.h, - ol_cv_pthread_version=6, [ - AC_EGREP_CPP(draft5,[ -# include <pthread.h> -#ifdef PTHREAD_MUTEX_INITIALIZER - draft5 -#endif - ], ol_cv_pthread_version=5, ol_cv_pthread_version=4) ]) ]) ]) -]) -])dnl -dnl -dnl -------------------------------------------------------------------- -AC_DEFUN([OL_PTHREAD_TEST_INCLUDES], [[ -/* pthread test headers */ -#include <pthread.h> -#if HAVE_PTHREADS < 7 -#include <errno.h> -#endif -#ifndef NULL -#define NULL (void*)0 -#endif - -static void *task(p) - void *p; -{ - return (void *) (p == NULL); -} -]]) -AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[ - /* pthread test function */ -#ifndef PTHREAD_CREATE_DETACHED -#define PTHREAD_CREATE_DETACHED 1 -#endif - pthread_t t; - int status; - int detach = PTHREAD_CREATE_DETACHED; - -#if HAVE_PTHREADS > 4 - /* Final pthreads */ - pthread_attr_t attr; - - status = pthread_attr_init(&attr); - if( status ) return status; - -#if HAVE_PTHREADS < 7 - status = pthread_attr_setdetachstate(&attr, &detach); - if( status < 0 ) status = errno; -#else - status = pthread_attr_setdetachstate(&attr, detach); -#endif - if( status ) return status; - status = pthread_create( &t, &attr, task, NULL ); -#if HAVE_PTHREADS < 7 - if( status < 0 ) status = errno; -#endif - if( status ) return status; -#else - /* Draft 4 pthreads */ - status = pthread_create( &t, pthread_attr_default, task, NULL ); - if( status ) return errno; - - /* give thread a chance to complete */ - /* it should remain joinable and hence detachable */ - sleep( 1 ); - - status = pthread_detach( &t ); - if( status ) return errno; -#endif - -#ifdef HAVE_LINUX_THREADS - pthread_kill_other_threads_np(); -#endif - - return 0; -]]) - -AC_DEFUN([OL_PTHREAD_TEST_PROGRAM], [ -AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES - -int main(argc, argv) - int argc; - char **argv; -{ -OL_PTHREAD_TEST_FUNCTION -} -])]) -dnl -------------------------------------------------------------------- -AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2) -if test "$ol_link_threads" = no ; then - # try $1 - AC_CACHE_CHECK([for pthread link with $1], [$2], [ - # save the flags - ol_LIBS="$LIBS" - LIBS="$1 $LIBS" - - AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM], - [$2=yes], - [$2=no], - [AC_LINK_IFELSE([AC_LANG_PROGRAM(OL_PTHREAD_TEST_INCLUDES, - OL_PTHREAD_TEST_FUNCTION)], - [$2=yes], [$2=no])]) - - # restore the LIBS - LIBS="$ol_LIBS" - ]) - - if test $$2 = yes ; then - ol_link_pthreads="$1" - ol_link_threads=posix - fi -fi -]) -dnl -dnl ==================================================================== -dnl Check GNU Pth pthread Header -dnl -dnl defines ol_cv_header linux_threads to 'yes' or 'no' -dnl 'no' implies pthreads.h is not LinuxThreads or pthreads.h -dnl doesn't exists. Existance of pthread.h should separately -dnl checked. -dnl -AC_DEFUN([OL_HEADER_GNU_PTH_PTHREAD_H], [ - AC_CACHE_CHECK([for GNU Pth pthread.h], - [ol_cv_header_gnu_pth_pthread_h], - [AC_EGREP_CPP(__gnu_pth__, - [#include <pthread.h> -#ifdef _POSIX_THREAD_IS_GNU_PTH - __gnu_pth__; -#endif -], - [ol_cv_header_gnu_pth_pthread_h=yes], - [ol_cv_header_gnu_pth_pthread_h=no]) - ]) -])dnl -dnl ==================================================================== -dnl Check for NT Threads -AC_DEFUN([OL_NT_THREADS], [ - AC_CHECK_FUNC(_beginthread) - - if test $ac_cv_func__beginthread = yes ; then - AC_DEFINE([HAVE_NT_THREADS], [1], [if you have NT Threads]) - ol_cv_nt_threads=yes - fi -]) -dnl ==================================================================== -dnl Check LinuxThreads Header -dnl -dnl defines ol_cv_header linux_threads to 'yes' or 'no' -dnl 'no' implies pthreads.h is not LinuxThreads or pthreads.h -dnl doesn't exists. Existance of pthread.h should separately -dnl checked. -dnl -AC_DEFUN([OL_HEADER_LINUX_THREADS], [ - AC_CACHE_CHECK([for LinuxThreads pthread.h], - [ol_cv_header_linux_threads], - [AC_EGREP_CPP(pthread_kill_other_threads_np, - [#include <pthread.h>], - [ol_cv_header_linux_threads=yes], - [ol_cv_header_linux_threads=no]) - ]) - if test $ol_cv_header_linux_threads = yes; then - AC_DEFINE([HAVE_LINUX_THREADS], [1], [if you have LinuxThreads]) - fi -])dnl -dnl -------------------------------------------------------------------- -dnl Check LinuxThreads Implementation -dnl -dnl defines ol_cv_sys_linux_threads to 'yes' or 'no' -dnl 'no' implies pthreads implementation is not LinuxThreads. -dnl -AC_DEFUN([OL_SYS_LINUX_THREADS], [ - AC_CHECK_FUNCS(pthread_kill_other_threads_np) - AC_CACHE_CHECK([for LinuxThreads implementation], - [ol_cv_sys_linux_threads], - [ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np]) -])dnl -dnl -dnl -------------------------------------------------------------------- -dnl Check LinuxThreads consistency -AC_DEFUN([OL_LINUX_THREADS], [ - AC_REQUIRE([OL_HEADER_LINUX_THREADS]) - AC_REQUIRE([OL_SYS_LINUX_THREADS]) - AC_CACHE_CHECK([for LinuxThreads consistency], [ol_cv_linux_threads], [ - if test $ol_cv_header_linux_threads = yes && - test $ol_cv_sys_linux_threads = yes; then - ol_cv_linux_threads=yes - elif test $ol_cv_header_linux_threads = no && - test $ol_cv_sys_linux_threads = no; then - ol_cv_linux_threads=no - else - ol_cv_linux_threads=error - fi - ]) -])dnl -dnl -dnl ==================================================================== -dnl Check for POSIX Regex -AC_DEFUN([OL_POSIX_REGEX], [ -AC_CACHE_CHECK([for compatible POSIX regex],ol_cv_c_posix_regex,[ - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <sys/types.h> -#include <regex.h> -static char *pattern, *string; -main() -{ - int rc; - regex_t re; - - pattern = "^A"; - - if(regcomp(&re, pattern, 0)) { - return -1; - } - - string = "ALL MATCH"; - - rc = regexec(&re, string, 0, (void*)0, 0); - - regfree(&re); - - return rc; -}]])],[ol_cv_c_posix_regex=yes],[ol_cv_c_posix_regex=no],[ol_cv_c_posix_regex=cross])]) -]) -dnl -dnl ==================================================================== -dnl Check if toupper() requires islower() to be called first -AC_DEFUN([OL_C_UPPER_LOWER], -[AC_CACHE_CHECK([if toupper() requires islower()],ol_cv_c_upper_lower,[ - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <ctype.h> -main() -{ - if ('C' == toupper('C')) - exit(0); - else - exit(1); -}]])],[ol_cv_c_upper_lower=no],[ol_cv_c_upper_lower=yes],[ol_cv_c_upper_lower=safe])]) -if test $ol_cv_c_upper_lower != no ; then - AC_DEFINE([C_UPPER_LOWER], [1], [define if toupper() requires islower()]) -fi -]) -dnl -dnl ==================================================================== -dnl Error string checks -dnl -dnl Check for declaration of sys_errlist in one of stdio.h and errno.h. -dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration. -dnl Reported by Keith Bostic. -AC_DEFUN([OL_SYS_ERRLIST], -[AC_CACHE_CHECK([declaration of sys_errlist],ol_cv_dcl_sys_errlist,[ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include <stdio.h> -#include <sys/types.h> -#include <errno.h> -#ifdef _WIN32 -#include <stdlib.h> -#endif ]], [[char *c = (char *) *sys_errlist]])],[ol_cv_dcl_sys_errlist=yes - ol_cv_have_sys_errlist=yes],[ol_cv_dcl_sys_errlist=no])]) -# -# It's possible (for near-UNIX clones) that sys_errlist doesn't exist -if test $ol_cv_dcl_sys_errlist = no ; then - AC_DEFINE([DECL_SYS_ERRLIST], [1], - [define if sys_errlist is not declared in stdio.h or errno.h]) - - AC_CACHE_CHECK([existence of sys_errlist],ol_cv_have_sys_errlist,[ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[char *c = (char *) *sys_errlist]])],[ol_cv_have_sys_errlist=yes],[ol_cv_have_sys_errlist=no])]) -fi -if test $ol_cv_have_sys_errlist = yes ; then - AC_DEFINE([HAVE_SYS_ERRLIST], [1], - [define if you actually have sys_errlist in your libs]) -fi -])dnl -AC_DEFUN([OL_NONPOSIX_STRERROR_R], -[AC_CACHE_CHECK([non-posix strerror_r],ol_cv_nonposix_strerror_r,[ - AC_EGREP_CPP(strerror_r,[#include <string.h>], - ol_decl_strerror_r=yes, ol_decl_strerror_r=no)dnl - - if test $ol_decl_strerror_r = yes ; then - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]], [[ /* from autoconf 2.59 */ - char buf[100]; - char x = *strerror_r (0, buf, sizeof buf); - char *p = strerror_r (0, buf, sizeof buf); - ]])],[ol_cv_nonposix_strerror_r=yes],[ol_cv_nonposix_strerror_r=no]) - else - AC_RUN_IFELSE([AC_LANG_SOURCE([[ - main() { - char buf[100]; - buf[0] = 0; - strerror_r( 1, buf, sizeof buf ); - exit( buf[0] == 0 ); - } - ]])],[ol_cv_nonposix_strerror_r=yes],[ol_cv_nonposix_strerror=no],[ol_cv_nonposix_strerror=no]) - fi - ]) -if test $ol_cv_nonposix_strerror_r = yes ; then - AC_DEFINE([HAVE_NONPOSIX_STRERROR_R], [1], - [define if strerror_r returns char* instead of int]) -fi -])dnl -dnl -AC_DEFUN([OL_STRERROR], -[OL_SYS_ERRLIST dnl TEMPORARY -AC_CHECK_FUNCS(strerror strerror_r) -ol_cv_func_strerror_r=no -if test "${ac_cv_func_strerror_r}" = yes ; then - OL_NONPOSIX_STRERROR_R -elif test "${ac_cv_func_strerror}" = no ; then - OL_SYS_ERRLIST -fi -])dnl -dnl ==================================================================== -dnl Early MIPS compilers (used in Ultrix 4.2) don't like -dnl "int x; int *volatile a = &x; *a = 0;" -dnl -- borrowed from PDKSH -AC_DEFUN([OL_C_VOLATILE], - [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int x, y, z;]], [[volatile int a; int * volatile b = x ? &y : &z; - /* Older MIPS compilers (eg., in Ultrix 4.2) don't like *b = 0 */ - *b = 0;]])],[ol_cv_c_volatile=yes],[ol_cv_c_volatile=no])]) - if test $ol_cv_c_volatile = yes; then - : - else - AC_DEFINE([volatile], [], [define as empty if volatile is not supported]) - fi - ])dnl -dnl -dnl ==================================================================== -dnl Look for fetch(3) -AC_DEFUN([OL_LIB_FETCH], -[ol_LIBS=$LIBS -LIBS="-lfetch -lcom_err $LIBS" -AC_CACHE_CHECK([fetch(3) library],ol_cv_lib_fetch,[ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif -#include <stdio.h> -#include <fetch.h>]], [[struct url *u = fetchParseURL("file:///"); ]])],[ol_cv_lib_fetch=yes],[ol_cv_lib_fetch=no])]) -LIBS=$ol_LIBS -if test $ol_cv_lib_fetch != no ; then - ol_link_fetch="-lfetch -lcom_err" - AC_DEFINE([HAVE_FETCH], [1], - [define if you actually have FreeBSD fetch(3)]) -fi -])dnl -dnl -dnl ==================================================================== -dnl Define inet_aton is available -AC_DEFUN([OL_FUNC_INET_ATON], - [AC_CACHE_CHECK([for inet_aton()], ol_cv_func_inet_aton, - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -# include <sys/socket.h> -# ifdef HAVE_SYS_SELECT_H -# include <sys/select.h> -# endif -# include <netinet/in.h> -# ifdef HAVE_ARPA_INET_H -# include <arpa/inet.h> -# endif -#endif -]], [[struct in_addr in; -int rc = inet_aton( "255.255.255.255", &in );]])],[ol_cv_func_inet_aton=yes],[ol_cv_func_inet_aton=no])]) - if test $ol_cv_func_inet_aton != no; then - AC_DEFINE(HAVE_INET_ATON, 1, - [define to you inet_aton(3) is available]) - fi - ])dnl -dnl -dnl ==================================================================== -dnl check no of arguments for ctime_r -AC_DEFUN([OL_FUNC_CTIME_R_NARGS], - [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[time_t ti; char *buffer; ctime_r(&ti,buffer,32);]])],[ol_cv_func_ctime_r_nargs3=yes],[ol_cv_func_ctime_r_nargs3=no]) - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[time_t ti; char *buffer; ctime_r(&ti,buffer);]])],[ol_cv_func_ctime_r_nargs2=yes],[ol_cv_func_ctime_r_nargs2=no]) - - if test $ol_cv_func_ctime_r_nargs3 = yes && - test $ol_cv_func_ctime_r_nargs2 = no ; then - - ol_cv_func_ctime_r_nargs=3 - - elif test $ol_cv_func_ctime_r_nargs3 = no && - test $ol_cv_func_ctime_r_nargs2 = yes ; then - - ol_cv_func_ctime_r_nargs=2 - - else - ol_cv_func_ctime_r_nargs=0 - fi - ]) - - if test $ol_cv_func_ctime_r_nargs -gt 1 ; then - AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs, - [set to the number of arguments ctime_r() expects]) - fi -])dnl -dnl -dnl -------------------------------------------------------------------- -dnl check return type of ctime_r() -AC_DEFUN([OL_FUNC_CTIME_R_TYPE], - [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[extern int (ctime_r)();]])],[ol_cv_func_ctime_r_type="int"],[ol_cv_func_ctime_r_type="charp"]) - ]) - if test $ol_cv_func_ctime_r_type = "int" ; then - AC_DEFINE(CTIME_R_RETURNS_INT,1, [define if ctime_r() returns int]) - fi -])dnl -dnl ==================================================================== -dnl check no of arguments for gethostbyname_r -AC_DEFUN([OL_FUNC_GETHOSTBYNAME_R_NARGS], - [AC_CACHE_CHECK(number of arguments of gethostbyname_r, - ol_cv_func_gethostbyname_r_nargs, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <netdb.h> -#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent; char buffer[BUFSIZE]; - int bufsize=BUFSIZE;int h_errno; - (void)gethostbyname_r("segovia.cs.purdue.edu", &hent, - buffer, bufsize, &h_errno);]])],[ol_cv_func_gethostbyname_r_nargs5=yes],[ol_cv_func_gethostbyname_r_nargs5=no]) - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <netdb.h> -#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent;struct hostent *rhent; - char buffer[BUFSIZE]; - int bufsize=BUFSIZE;int h_errno; - (void)gethostbyname_r("localhost", &hent, buffer, bufsize, - &rhent, &h_errno);]])],[ol_cv_func_gethostbyname_r_nargs6=yes],[ol_cv_func_gethostbyname_r_nargs6=no]) - - if test $ol_cv_func_gethostbyname_r_nargs5 = yes && - test $ol_cv_func_gethostbyname_r_nargs6 = no ; then - - ol_cv_func_gethostbyname_r_nargs=5 - - elif test $ol_cv_func_gethostbyname_r_nargs5 = no && - test $ol_cv_func_gethostbyname_r_nargs6 = yes ; then - - ol_cv_func_gethostbyname_r_nargs=6 - - else - ol_cv_func_gethostbyname_r_nargs=0 - fi - ]) - if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then - AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS, - $ol_cv_func_gethostbyname_r_nargs, - [set to the number of arguments gethostbyname_r() expects]) - fi -])dnl -dnl -dnl check no of arguments for gethostbyaddr_r -AC_DEFUN([OL_FUNC_GETHOSTBYADDR_R_NARGS], - [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r, - [ol_cv_func_gethostbyaddr_r_nargs], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <netdb.h> -#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent; char buffer[BUFSIZE]; - struct in_addr add; - size_t alen=sizeof(struct in_addr); - int bufsize=BUFSIZE;int h_errno; - (void)gethostbyaddr_r( (void *)&(add.s_addr), - alen, AF_INET, &hent, buffer, bufsize, &h_errno);]])],[ol_cv_func_gethostbyaddr_r_nargs7=yes],[ol_cv_func_gethostbyaddr_r_nargs7=no]) - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <netdb.h> -#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent; - struct hostent *rhent; char buffer[BUFSIZE]; - struct in_addr add; - size_t alen=sizeof(struct in_addr); - int bufsize=BUFSIZE;int h_errno; - (void)gethostbyaddr_r( (void *)&(add.s_addr), - alen, AF_INET, &hent, buffer, bufsize, - &rhent, &h_errno);]])],[ol_cv_func_gethostbyaddr_r_nargs8=yes],[ol_cv_func_gethostbyaddr_r_nargs8=no]) - - if test $ol_cv_func_gethostbyaddr_r_nargs7 = yes && - test $ol_cv_func_gethostbyaddr_r_nargs8 = no ; then - - ol_cv_func_gethostbyaddr_r_nargs=7 - - elif test $ol_cv_func_gethostbyaddr_r_nargs7 = no && - test $ol_cv_func_gethostbyaddr_r_nargs8 = yes ; then - - ol_cv_func_gethostbyaddr_r_nargs=8 - - else - ol_cv_func_gethostbyaddr_r_nargs=0 - fi - ]) - if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then - AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS, - $ol_cv_func_gethostbyaddr_r_nargs, - [set to the number of arguments gethostbyaddr_r() expects]) - fi -])dnl -dnl -dnl -------------------------------------------------------------------- -dnl Check for Cyrus SASL version compatility -AC_DEFUN([OL_SASL_COMPAT], -[AC_CACHE_CHECK([Cyrus SASL library version], [ol_cv_sasl_compat],[ - AC_EGREP_CPP(__sasl_compat,[ -#ifdef HAVE_SASL_SASL_H -#include <sasl/sasl.h> -#else -#include <sasl.h> -#endif - -/* Require 2.1.15+ */ -#if SASL_VERSION_MAJOR == 2 && SASL_VERSION_MINOR > 1 - char *__sasl_compat = "2.2+ or better okay (we guess)"; -#elif SASL_VERSION_MAJOR == 2 && SASL_VERSION_MINOR == 1 \ - && SASL_VERSION_STEP >=15 - char *__sasl_compat = "2.1.15+ or better okay"; -#endif - ], [ol_cv_sasl_compat=yes], [ol_cv_sasl_compat=no])]) -]) -dnl ==================================================================== -dnl check for SSL compatibility -AC_DEFUN([OL_SSL_COMPAT], -[AC_CACHE_CHECK([OpenSSL library version (CRL checking capability)], - [ol_cv_ssl_crl_compat],[ - AC_EGREP_CPP(__ssl_compat,[ -#ifdef HAVE_OPENSSL_SSL_H -#include <openssl/ssl.h> -#endif - -/* Require 0.9.7d+ */ -#if OPENSSL_VERSION_NUMBER >= 0x0090704fL - char *__ssl_compat = "0.9.7d"; -#endif - ], [ol_cv_ssl_crl_compat=yes], [ol_cv_ssl_crl_compat=no])]) -]) |