From 585356dcbd04da4274ab83fb9456f3c6c4c04e4b Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Mon, 21 Oct 2002 12:16:25 +0000 Subject: [PATCH] Changed logic in thread support configuration such that --with-threads=no is equivalent to --with-threads=null. On platforms that are not supported by QuickThreads, we also use the null-threads. Thus, USE_THREADS is always defined now. --- configure.in | 76 ++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 41 deletions(-) diff --git a/configure.in b/configure.in index 4ececda57..d5ecf5f93 100644 --- a/configure.in +++ b/configure.in @@ -638,14 +638,13 @@ AC_ARG_WITH(threads, [ --with-threads thread interface], ### Turn $with_threads into either the name of a threads package, like ### `qt', or `no', meaning that threads should not be supported. -AC_MSG_CHECKING(whether to support threads) +AC_MSG_CHECKING(what kind of threads to support) case "$with_threads" in "yes" | "qt" | "coop" | "") with_threads=qt ;; - "null" ) - ;; - "no" ) + "no" | "null") + with_threads=null ;; * ) AC_MSG_ERROR(invalid value for --with-threads: $with_threads) @@ -659,7 +658,7 @@ case "${with_threads}" in "qt" ) ## This configures the QuickThreads package, and sets or clears ## the THREAD_PACKAGE variable if qthreads don't configure - ## correctly. + ## correctly. In that case, we fall back on null-threads. QTHREADS_CONFIGURE ;; "null" ) @@ -667,49 +666,44 @@ case "${with_threads}" in ;; esac +## We always provide the thread API now and thus, USE_THREADS is +## always defined and threads.o is always included. -## If we're using threads, bring in some other parts of Guile which -## work with them. -if test "${THREAD_PACKAGE}" != "" ; then - AC_DEFINE(USE_THREADS, 1, [Define if providing the thread API.]) +AC_DEFINE(USE_THREADS, 1, [Define if providing the thread API.]) +AC_LIBOBJ([threads]) - ## Include the Guile thread interface in the library... - AC_LIBOBJ([threads]) +case "${THREAD_PACKAGE}" in + "QT" ) + AC_DEFINE(USE_COOP_THREADS, 1, + [Define if using cooperative multithreading.]) - ## ... and tell it which package to talk to. - case "${THREAD_PACKAGE}" in - "QT" ) - AC_DEFINE(USE_COOP_THREADS, 1, - [Define if using cooperative multithreading.]) + AC_ARG_ENABLE(linuxthreads, + [ --disable-linuxthreads disable linuxthreads workaround],, + enable_linuxthreads=yes) - AC_ARG_ENABLE(linuxthreads, - [ --disable-linuxthreads disable linuxthreads workaround],, - enable_linuxthreads=yes) + ## Workaround for linuxthreads (optionally disabled) + if test $host_os = linux-gnu -a "$enable_linuxthreads" = yes; then + AC_DEFINE(GUILE_PTHREAD_COMPAT, 1, + [Define to enable workaround for COOP-linuxthreads compatibility.]) + AC_CHECK_LIB(pthread, main) + fi - ## Workaround for linuxthreads (optionally disabled) - if test $host_os = linux-gnu -a "$enable_linuxthreads" = yes; then - AC_DEFINE(GUILE_PTHREAD_COMPAT, 1, - [Define to enable workaround for COOP-linuxthreads compatibility.]) - AC_CHECK_LIB(pthread, main) - fi + ## Bring in scm_internal_select, if appropriate. + if test $ac_cv_func_gettimeofday = yes && + test $ac_cv_func_select = yes; then + AC_DEFINE(GUILE_ISELECT, 1, [Define to implement scm_internal_select.]) + fi - ## Bring in scm_internal_select, if appropriate. - if test $ac_cv_func_gettimeofday = yes && - test $ac_cv_func_select = yes; then - AC_DEFINE(GUILE_ISELECT, 1, [Define to implement scm_internal_select.]) - fi + ;; + "null" | "" ) + AC_DEFINE(USE_NULL_THREADS, 1, + [Define if using one-thread 'multi'threading.]) + ;; + * ) + AC_MSG_ERROR(invalid value for THREAD_PACKAGE: ${THREAD_PACKAGE}) + ;; +esac - ;; - "null" ) - AC_DEFINE(USE_NULL_THREADS, 1, - [Define if using one-thread 'multi'threading.]) - ;; - * ) - AC_MSG_ERROR(invalid value for THREAD_PACKAGE: ${THREAD_PACKAGE}) - ;; - esac - -fi ## Cross building if test "$cross_compiling" = "yes"; then