dnl @synopsis XERCES_MUTEXMGR_SELECTION dnl dnl Determines the which XMLMutexMgr to use dnl dnl @category C dnl @author James Berry dnl @version 2005-05-25 dnl @license AllPermissive dnl dnl $Id$ AC_DEFUN([XERCES_MUTEXMGR_SELECTION], [ AC_REQUIRE([XERCES_NO_THREADS]) AC_REQUIRE([ACX_PTHREAD]) AC_MSG_CHECKING([for which Mutex Manager to use]) mutexmgr= # If no threads is specified, use the NoThread Mutex Mgr AS_IF([test x$xerces_cv_no_threads = xyes], [ mutexmgr=NoThreads AC_DEFINE([XERCES_USE_MUTEXMGR_NOTHREAD], 1, [Define to use the NoThread mutex mgr]) ]) # Platform specific checks AS_IF([test -z "$mutexmgr"], [ case $host_os in windows* | cygwin* | mingw*) mutexmgr=Windows; AC_DEFINE([XERCES_USE_MUTEXMGR_WINDOWS], 1, [Define to use the Windows mutex mgr]) case $host_os in mingw*) CXXFLAGS="${CXXFLAGS} -mthreads" ;; esac ;; esac ]) # Fall back to using posix mutex id we can AS_IF([test -z "$mutexmgr" && test x$acx_pthread_ok = xyes], [ mutexmgr=POSIX; AC_DEFINE([XERCES_USE_MUTEXMGR_POSIX], 1, [Define to use the POSIX mutex mgr]) # Set additional flags for link and compile LIBS="${LIBS} ${PTHREAD_LIBS}" CXXFLAGS="${CXXFLAGS} ${PTHREAD_CFLAGS}" ]) # If we still didn't find a mutex package, bail AS_IF([test -z "$mutexmgr"], [AC_MSG_ERROR([Xerces cannot function without mutex support. You may want to --disable-threads.])]) AC_MSG_RESULT($mutexmgr) # Define the auto-make conditionals which determine what actually gets compiled # Note that these macros can't be executed conditionally, which is why they're here, not above. AM_CONDITIONAL([XERCES_USE_MUTEXMGR_NOTHREAD], [test x"$mutexmgr" = xNoThreads]) AM_CONDITIONAL([XERCES_USE_MUTEXMGR_POSIX], [test x"$mutexmgr" = xPOSIX]) AM_CONDITIONAL([XERCES_USE_MUTEXMGR_WINDOWS], [test x"$mutexmgr" = xWindows]) ] )