summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>1999-07-24 11:55:34 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>1999-07-24 11:55:34 +0000
commiteb9ef08b772597d002e1f183750881cc7662e0bf (patch)
tree12a54e8da6d5c72b4d522cda4871c3ccf4f79062 /acinclude.m4
parent2179c70cf4af5695468e382b64a8bd0098ffa789 (diff)
*** empty log message ***
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m4140
1 files changed, 140 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index dfa1a6260..9918d0e1b 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -141,3 +141,143 @@ main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY);
fi
fi
])
+
+dnl QTHREADS_CONFIGURE configures the QuickThreads package. The QT
+dnl sources should be in $srcdir/qt. If configuration succeeds, this
+dnl macro creates the appropriate symlinks in the qt object directory,
+dnl and sets the following variables, used in building libqthreads.a:
+dnl QTHREAD_LTLIBS --- set to libqthreads.la if configuration
+dnl succeeds, or the empty string if configuration fails.
+dnl qtmd_h, qtmds_s, qtmdc_c, qtdmdb_s --- the names of the machine-
+dnl dependent source files.
+dnl qthread_asflags --- flags to pass to the compiler when processing
+dnl assembly-language files.
+dnl
+dnl It also sets the following variables, which describe how clients
+dnl can link against libqthreads.a:
+dnl THREAD_PACKAGE --- set to "QT" if configuration succeeds, or
+dnl the empty string if configuration fails.
+dnl THREAD_CPPFLAGS --- set to `-I' flags for thread header files
+dnl THREAD_LIBS_LOCAL --- linker options for use in this source tree
+dnl THREAD_LIBS_INSTALLED --- linker options for use after this package
+dnl is installed
+dnl It would be nice if all thread configuration packages for Guile
+dnl followed the same conventions.
+dnl
+dnl All of the above variables will be substituted into Makefiles in
+dnl the usual autoconf fashion.
+dnl
+dnl We distinguish between THREAD_LIBS_LOCAL and
+dnl THREAD_LIBS_INSTALLED because the thread library might be in
+dnl this tree, and be built using libtool. This means that:
+dnl 1) when building other executables in this tree, one must
+dnl pass the relative path to the ../libfoo.la file, but
+dnl 2) once the whole package has been installed, users should
+dnl link using -lfoo.
+dnl Normally, we only care about the first case, but since the
+dnl guile-config script needs to give users all the flags they need
+dnl to link programs against guile, the GUILE_WITH_THREADS macro
+dnl needs to supply the second piece of information as well.
+dnl
+dnl This whole thing is a little confused about what ought to be
+dnl done in the top-level configure script, and what ought to be
+dnl taken care of in the subdirectory. For example, qtmds_s and
+dnl friends really ought not to be even mentioned in the top-level
+dnl configure script, but here they are.
+
+AC_DEFUN([QTHREADS_CONFIGURE],[
+ AC_REQUIRE([AC_PROG_LN_S])
+
+ AC_MSG_CHECKING(QuickThreads configuration)
+ # How can we refer to the qt source directory from within the qt build
+ # directory? For headers, we can rely on the fact that the qt src
+ # directory appears in the #include path.
+ qtsrcdir="`(cd $srcdir; pwd)`/qt"
+
+ changequote(,)dnl We use [ and ] in a regexp in the case
+
+ THREAD_PACKAGE=QT
+ qthread_asflags=''
+ case "$host" in
+ i[3456]86-*-*)
+ port_name=i386
+ qtmd_h=md/i386.h
+ qtmds_s=md/i386.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=
+ case "$host" in
+ *-*-netbsd* )
+ ## NetBSD needs to be told to pass the assembly code through
+ ## the C preprocessor. Other GCC installations seem to do
+ ## this by default, but NetBSD's doesn't. We could get the
+ ## same effect by giving the file a name ending with .S
+ ## instead of .s, but I don't see how to tell automake to do
+ ## that.
+ qthread_asflags='-x assembler-with-cpp'
+ ;;
+ esac
+ ;;
+ mips-sgi-irix[56]*)
+ port_name=irix
+ qtmd_h=md/mips.h
+ qtmds_s=md/mips-irix5.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/mips_b.s
+ ;;
+ mips-*-*)
+ port_name=mips
+ qtmd_h=md/mips.h
+ qtmds_s=md/mips.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/mips_b.s
+ ;;
+ sparc-*-sunos*)
+ port_name=sparc-sunos
+ qtmd_h=md/sparc.h
+ qtmds_s=md/_sparc.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/_sparc_b.s
+ ;;
+ sparc-*-*)
+ port_name=sparc
+ qtmd_h=md/sparc.h
+ qtmds_s=md/sparc.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/sparc_b.s
+ ;;
+ alpha-*-*)
+ port_name=alpha
+ qtmd_h=md/axp.h
+ qtmds_s=md/axp.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/axp_b.s
+ ;;
+ *)
+ echo "Unknown configuration; threads package disabled"
+ THREAD_PACKAGE=""
+ ;;
+ esac
+ changequote([, ])
+
+ # Did configuration succeed?
+ if test -n "$THREAD_PACKAGE"; then
+ AC_MSG_RESULT($port_name)
+ QTHREAD_LTLIBS=libqthreads.la
+ THREAD_CPPFLAGS="-I$qtsrcdir -I../qt"
+ THREAD_LIBS_LOCAL="../qt/libqthreads.la"
+ THREAD_LIBS_INSTALLED="-lqthreads"
+ else
+ AC_MSG_RESULT(none; disabled)
+ fi
+
+ AC_SUBST(QTHREAD_LTLIBS)
+ AC_SUBST(qtmd_h)
+ AC_SUBST(qtmds_s)
+ AC_SUBST(qtmdc_c)
+ AC_SUBST(qtdmdb_s)
+ AC_SUBST(qthread_asflags)
+ AC_SUBST(THREAD_PACKAGE)
+ AC_SUBST(THREAD_CPPFLAGS)
+ AC_SUBST(THREAD_LIBS_LOCAL)
+ AC_SUBST(THREAD_LIBS_INSTALLED)
+])