])dnl
dnl
dnl ====================================================================
+dnl
+AC_DEFUN(AC_COMPILE_CHECK_SIZEOF,
+[changequote(<<, >>)dnl
+dnl The name to #define.
+define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
+dnl The cache variable name.
+define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
+changequote([, ])dnl
+AC_MSG_CHECKING(size of $1)
+AC_CACHE_VAL(AC_CV_NAME,
+[for ac_size in 4 8 1 2 16 $2 ; do # List sizes in rough order of prevalence.
+ AC_TRY_COMPILE([#include "confdefs.h"
+#include <sys/types.h>
+$2
+], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
+ if test x$AC_CV_NAME != x ; then break; fi
+done
+])
+if test x$AC_CV_NAME = x ; then
+ AC_MSG_ERROR([cannot determine a size for $1])
+fi
+AC_MSG_RESULT($AC_CV_NAME)
+AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
+undefine([AC_TYPE_NAME])dnl
+undefine([AC_CV_NAME])dnl
+])
+dnl ====================================================================
dnl check if hard links are supported.
dnl
AC_DEFUN([OL_PROG_LN_H], [# test for ln hardlink support
/* pthread test function */
pthread_t t;
int status;
+#if HAVE_PTHREADS_FINAL && defined(PTHREAD_CREATE_UNDETACHED)
+ /* This system (e.g. AIX) defaults detached; must override */
+ pthread_attr_t attr;
- /* make sure pthread_create() isn't just a stub */
+ status = pthread_attr_init(&attr);
+ if( status ) exit( status );
+
+ status = pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_UNDETACHED);
+ if( status ) exit( status );
+
+#define ATTR &attr
+#else
#if HAVE_PTHREADS_D4
- status = pthread_create(&t, pthread_attr_default, task, NULL);
+#define ATTR pthread_attr_default
#else
- status = pthread_create(&t, NULL, task, NULL);
+#define ATTR NULL
#endif
-
+#endif
+ /* make sure pthread_create() isn't just a stub */
+ status = pthread_create(&t, ATTR, task, NULL);
if( status ) exit( status );
/* make sure pthread_detach() isn't just a stub */
])
])dnl
dnl ====================================================================
+dnl Check for NT Threads
+AC_DEFUN([OL_NT_THREADS], [
+ AC_CACHE_CHECK([for NT Threads], [ol_cv_nt_threads], [
+ AC_CHECK_FUNC(_beginthread,
+ [ol_cv_nt_threads=yes],
+ [ol_cv_nt_threads=no])
+ ])
+
+ if test $ol_cv_nt_threads = yes ; then
+ AC_DEFINE(HAVE_NT_THREADS,1,[if you have NT Threads])
+ fi
+])
+dnl ====================================================================
dnl Check LinuxThreads Header
dnl
dnl defines ol_cv_header linux_threads to 'yes' or 'no'
[AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
[AC_TRY_COMPILE([#include <time.h>],
[time_t ti; char *buffer; ctime_r(&ti,buffer,32);],
- ol_cv_func_ctime_r_nargs=3,
- [AC_TRY_COMPILE([#include <time.h>],
- [time_t ti; char *buffer; ctime_r(&ti,buffer);],
- ol_cv_func_ctime_r_nargs=2,
- ol_cv_func_ctime_r_nargs=0)])])
+ ol_cv_func_ctime_r_nargs3=yes,
+ ol_cv_func_ctime_r_nargs3=no)
+
+ AC_TRY_COMPILE([#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 -a \
+ $ol_cv_func_ctime_r_nargs2 = no ; then
+
+ ol_cv_func_ctime_r_nargs=3
+
+ elif test $ol_cv_func_ctime_r_nargs3 = no -a \
+ $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,
+ AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs,
[set to the number of arguments ctime_r() expects])
fi
])dnl
int bufsize=BUFSIZE;int h_errno;
(void)gethostbyname_r("segovia.cs.purdue.edu", &hent,
buffer, bufsize, &h_errno);],
- ol_cv_func_gethostbyname_r_nargs=5,
- [AC_TRY_COMPILE([#include <sys/types.h>
+ ol_cv_func_gethostbyname_r_nargs5=yes,
+ ol_cv_func_gethostbyname_r_nargs5=no)
+
+ AC_TRY_COMPILE([#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_nargs=6,
- ol_cv_func_gethostbyname_r_nargs=0)])])
+ [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 -a \
+ $ol_cv_func_gethostbyname_r_nargs6 = no ; then
+
+ ol_cv_func_gethostbyname_r_nargs=5
+
+ elif test $ol_cv_func_gethostbyname_r_nargs5 = no -a \
+ $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,
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_nargs=7,
- [AC_TRY_COMPILE([#include <sys/types.h>
+ ol_cv_func_gethostbyaddr_r_nargs7=yes,
+ ol_cv_func_gethostbyaddr_r_nargs7=no)
+
+ AC_TRY_COMPILE([#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_nargs=8,
- ol_cv_func_gethostbyaddr_r_nargs=0)])])
+ [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 -a \
+ $ol_cv_func_gethostbyaddr_r_nargs8 = no ; then
+
+ ol_cv_func_gethostbyaddr_r_nargs=7
+
+ elif test $ol_cv_func_gethostbyaddr_r_nargs7 = no -a \
+ $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,