diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-01-17 16:40:19 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-01-17 16:40:19 +0200 |
commit | 16054e2d129d7c5e956be7b33c29ae6c2ea5c962 (patch) | |
tree | 8d8f22207d3b763eb978f700e68ad74d657aa4c5 /m4/threads.m4 | |
parent | c853481c254bcafeeca394faa9f4bb5205d4daa0 (diff) |
Autotools and VC++ build support
Diffstat (limited to 'm4/threads.m4')
-rw-r--r-- | m4/threads.m4 | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/m4/threads.m4 b/m4/threads.m4 new file mode 100644 index 0000000..d4ed7cd --- /dev/null +++ b/m4/threads.m4 @@ -0,0 +1,61 @@ +dnl file : m4/threads.m4 +dnl author : Boris Kolpackov <boris@codesynthesis.com> +dnl copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +dnl license : GNU GPL v2; see accompanying LICENSE file +dnl +AC_DEFUN([THREADS],[ + +threads_thread_keyword=no + +AC_ARG_ENABLE( + [threads], + AS_HELP_STRING([--disable-threads], [disable threads (enabled by default)]), + [AS_IF([test x"$enableval" = xno], [threads=none], [threads=check])], + [threads=check]) + +# If thread support is not disabled by the user, figure out what we can use. +# +if test x$threads = xcheck; then + case $host_os in + windows* | mingw*) + case $host_os in + mingw*) + CXXFLAGS="$CXXFLAGS -mthreads" + ;; + esac + threads=win32 + ;; + *) + ACX_PTHREAD + + if test x$acx_pthread_ok = xyes; then + threads=posix + LIBS="$LIBS $PTHREAD_LIBS" + CXXFLAGS="$CXXFLAGS $PTHREAD_CXXFLAGS" + + # Check if we can use the __thread keyword. + # + AC_MSG_CHECKING([for __thread keyword]) + + CXX_LIBTOOL_LINK_IFELSE( + AC_LANG_SOURCE([[ + __thread int tls_var; + + int + main () + { + tls_var = 0; + } + ]]), + [threads_thread_keyword=yes]) + + AC_MSG_RESULT([$threads_thread_keyword]) + fi + ;; + esac +fi + +if test x$threads = xcheck; then + AC_MSG_ERROR([thread support not available; use --disable-threads to force single-threaded mode]) +fi +])dnl |