# start: abi/ac-helpers/abi-thread.m4
# 
# Copyright (C) 2002 Francis James Franklin
# Copyright (C) 2002 AbiSource, Inc
# 
# This file is free software; you may copy and/or distribute it with
# or without modifications, as long as this notice is preserved.
# This software is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.
#
# The above license applies to THIS FILE ONLY, the abiword code
# itself may be copied and distributed under the terms of the GNU
# GPL, see COPYING for more details
#
# This file detects which of the AbiWord platforms we are currently
# building on.  The detection logic in question is mostly by Jeff
# Hostetler, and is taken from the original AbiWord build system.  
#
# Usage: ABI_THREAD

AC_DEFUN([ABI_THREAD],[

AC_ARG_ENABLE(threads,[  --enable-threads    use (posix) threads],[
	if test "x$enableval" = "xno"; then
		abi_threads=no
	else
		abi_threads=yes
	fi
],[	abi_threads=check
])

if test $abi_threads != no; then
	AC_CHECK_HEADER(pthread.h,[
		AC_CHECK_FUNC(pthread_create,[
			abi_pthread_libs=""
			AC_CHECK_FUNC(pthread_yield,abi_pthread_yield=yes,abi_pthread_yield=no)
		],[	AC_CHECK_LIB(pthread,pthread_exit,[
				abi_pthread_libs="-lpthread"
				AC_CHECK_LIB(pthread,pthread_yield,[
					abi_pthread_yield=yes
				],[	abi_pthread_yield=no
				])
			],[	AC_MSG_ERROR([* * * posix threads broken? * * *])
			])
		])
	],[	if test $abi_threads = yes; then
			AC_MSG_ERROR([* * * only posix threads supported currently * * *])
		fi
		abi_threads=no
	])
fi

if test $abi_threads != no; then
	THREAD_CFLAGS="-DHAVE_THREADS=1 -DHAVE_POSIX_THREADS=1"
	THREAD_LIBS="$abi_pthread_libs"
	if test "x$abi_pthread_yield" = "xyes"; then
		THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_PTHREAD_YIELD=1"
	fi
	abi_threads=yes
else
	THREAD_CFLAGS=""
	THREAD_LIBS=""
fi
AM_CONDITIONAL(HAVE_THREADS, test $abi_threads = yes)
AC_SUBST(THREAD_CFLAGS)
AC_SUBST(THREAD_LIBS)

])
# 
# end: abi/ac-helpers/abi-thread.m4
#