+#
+# Pthread checking
+#
+want_threads=false
+AC_CHECK_HEADERS(pthread.h,
+ [ AC_DEFINE(SILC_HAVE_PTHREAD)
+ want_threads=true ],
+ [ if test -f /usr/pkg/include/pthread.h ; then
+ AC_DEFINE(SILC_HAVE_PTHREAD)
+ AC_MSG_RESULT(Found pthread.h in /usr/pkg/include/)
+ CFLAGS="$CFLAGS -I/usr/pkg/include"
+ want_threads=true
+ elif test -f /usr/contrib/include/pthread.h ; then
+ AC_DEFINE(SILC_HAVE_PTHREAD)
+ AC_MSG_RESULT(Found pthread.h in /usr/contrib/include/)
+ CFLAGS="$CFLAGS -I/usr/contrib/include"
+ want_threads=true
+ fi
+ ])
+
+AC_ARG_ENABLE(threads,
+[ --disable-threads Do not compile with multi-thread support],
+[ case "${enableval}" in
+ yes)
+ want_threads=true
+ ;;
+ *)
+ want_threads=false
+ ;;
+esac ])
+
+AM_CONDITIONAL(SILC_THREADS, test x$want_threads = xtrue)
+if test x$want_threads = xtrue; then
+ AC_DEFINE(SILC_THREADS)
+ TMP_LIBS="$LIBS"
+ LIBS="-lpthread"
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_attr_t attr; pthread_attr_init(&attr);], ,
+ LIBS="-L/usr/pkg/lib -lpthread"
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_attr_t attr; pthread_attr_init(&attr);], ,
+ LIBS="-L/usr/contrib/lib -lpthread"
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_attr_t attr; pthread_attr_init(&attr);], , LIBS=""
+ )))
+
+ CFLAGS="$CFLAGS -D_REENTRANT"
+ case $host in
+ *-aix*)
+ CFLAGS="$CFLAGS -D_THREAD_SAFE"
+ if test x"$GCC" = xyes; then
+ CFLAGS="$CFLAGS -mthreads"
+ fi
+ ;;
+ *-freebsd2.2*)
+ CFLAGS="$CFLAGS -D_THREAD_SAFE"
+ ;;
+ *-sysv5uw7*) # UnixWare 7
+ if test "$GCC" != "yes"; then
+ CFLAGS="$CFLAGS -Kthread"
+ else
+ CFLAGS="$CFLAGS -pthread"
+ fi
+ ;;
+ *-dg-dgux*) # DG/UX
+ CFLAGS="$CFLAGS -D_POSIX4A_DRAFT10_SOURCE"
+ ;;
+ esac
+
+ LIBS="$TMP_LIBS $LIBS"
+fi
+