News for scm_call_N and scm_apply_N.
[bpt/guile.git] / qthreads.m4
CommitLineData
539c89a1 1dnl Autoconf macros for configuring the QuickThreads package
50848747
JB
2dnl Jim Blandy <jimb@red-bean.com> --- July 1998
3dnl
1630ea6c 4dnl Copyright (C) 1998, 1999 Free Software Foundation, Inc.
50848747
JB
5dnl
6dnl This file is part of GUILE.
7dnl
8dnl GUILE is free software; you can redistribute it and/or modify
9dnl it under the terms of the GNU General Public License as
10dnl published by the Free Software Foundation; either version 2, or
11dnl (at your option) any later version.
12dnl
13dnl GUILE is distributed in the hope that it will be useful, but
14dnl WITHOUT ANY WARRANTY; without even the implied warranty of
15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16dnl GNU General Public License for more details.
17dnl
18dnl You should have received a copy of the GNU General Public
19dnl License along with GUILE; see the file COPYING. If not, write
20dnl to the Free Software Foundation, Inc., 59 Temple Place, Suite
21dnl 330, Boston, MA 02111-1307 USA
22
23
539c89a1
JB
24
25dnl QTHREADS_CONFIGURE configures the QuickThreads package. The QT
26dnl sources should be in $srcdir/qt. If configuration succeeds, this
27dnl macro creates the appropriate symlinks in the qt object directory,
28dnl and sets the following variables, used in building libqthreads.a:
29dnl QTHREAD_LTLIBS --- set to libqthreads.la if configuration
30dnl succeeds, or the empty string if configuration fails.
47521807
JB
31dnl qtmd_h, qtmds_s, qtmdc_c, qtdmdb_s --- the names of the machine-
32dnl dependent source files.
33dnl qthread_asflags --- flags to pass to the compiler when processing
34dnl assembly-language files.
539c89a1
JB
35dnl
36dnl It also sets the following variables, which describe how clients
37dnl can link against libqthreads.a:
38dnl THREAD_PACKAGE --- set to "QT" if configuration succeeds, or
39dnl the empty string if configuration fails.
539c89a1
JB
40dnl THREAD_LIBS_LOCAL --- linker options for use in this source tree
41dnl THREAD_LIBS_INSTALLED --- linker options for use after this package
42dnl is installed
43dnl It would be nice if all thread configuration packages for Guile
44dnl followed the same conventions.
45dnl
46dnl All of the above variables will be substituted into Makefiles in
47dnl the usual autoconf fashion.
48dnl
49dnl We distinguish between THREAD_LIBS_LOCAL and
50dnl THREAD_LIBS_INSTALLED because the thread library might be in
51dnl this tree, and be built using libtool. This means that:
52dnl 1) when building other executables in this tree, one must
53dnl pass the relative path to the ../libfoo.la file, but
54dnl 2) once the whole package has been installed, users should
55dnl link using -lfoo.
56dnl Normally, we only care about the first case, but since the
bcc695e3 57dnl guile-config script needs to give users all the flags they need
539c89a1
JB
58dnl to link programs against guile, the GUILE_WITH_THREADS macro
59dnl needs to supply the second piece of information as well.
60dnl
61dnl This whole thing is a little confused about what ought to be
62dnl done in the top-level configure script, and what ought to be
47521807 63dnl taken care of in the subdirectory. For example, qtmds_s and
539c89a1
JB
64dnl friends really ought not to be even mentioned in the top-level
65dnl configure script, but here they are.
66
67AC_DEFUN([QTHREADS_CONFIGURE],[
7bc24529 68 AC_REQUIRE([AC_PROG_LN_S])
539c89a1 69
e0f54bcc 70 AC_MSG_CHECKING(QuickThreads configuration)
539c89a1
JB
71
72 changequote(,)dnl We use [ and ] in a regexp in the case
73
74 THREAD_PACKAGE=QT
47521807 75 qthread_asflags=''
539c89a1
JB
76 case "$host" in
77 i[3456]86-*-*)
e0f54bcc 78 port_name=i386
539c89a1
JB
79 qtmd_h=md/i386.h
80 qtmds_s=md/i386.s
81 qtmdc_c=md/null.c
82 qtdmdb_s=
47521807
JB
83 case "$host" in
84 *-*-netbsd* )
85 ## NetBSD needs to be told to pass the assembly code through
86 ## the C preprocessor. Other GCC installations seem to do
87 ## this by default, but NetBSD's doesn't. We could get the
88 ## same effect by giving the file a name ending with .S
89 ## instead of .s, but I don't see how to tell automake to do
90 ## that.
91 qthread_asflags='-x assembler-with-cpp'
92 ;;
93 esac
539c89a1
JB
94 ;;
95 mips-sgi-irix[56]*)
e0f54bcc 96 port_name=irix
539c89a1
JB
97 qtmd_h=md/mips.h
98 qtmds_s=md/mips-irix5.s
99 qtmdc_c=md/null.c
100 qtdmdb_s=md/mips_b.s
101 ;;
102 mips-*-*)
e0f54bcc 103 port_name=mips
539c89a1
JB
104 qtmd_h=md/mips.h
105 qtmds_s=md/mips.s
106 qtmdc_c=md/null.c
107 qtdmdb_s=md/mips_b.s
108 ;;
109 sparc-*-sunos*)
e0f54bcc 110 port_name=sparc-sunos
539c89a1
JB
111 qtmd_h=md/sparc.h
112 qtmds_s=md/_sparc.s
113 qtmdc_c=md/null.c
114 qtdmdb_s=md/_sparc_b.s
115 ;;
116 sparc-*-*)
e0f54bcc 117 port_name=sparc
539c89a1
JB
118 qtmd_h=md/sparc.h
119 qtmds_s=md/sparc.s
120 qtmdc_c=md/null.c
121 qtdmdb_s=md/sparc_b.s
122 ;;
1630ea6c 123 alpha*-*-*)
e0f54bcc 124 port_name=alpha
539c89a1
JB
125 qtmd_h=md/axp.h
126 qtmds_s=md/axp.s
127 qtmdc_c=md/null.c
128 qtdmdb_s=md/axp_b.s
129 ;;
130 *)
131 echo "Unknown configuration; threads package disabled"
132 THREAD_PACKAGE=""
133 ;;
134 esac
135 changequote([, ])
136
137 # Did configuration succeed?
138 if test -n "$THREAD_PACKAGE"; then
e0f54bcc 139 AC_MSG_RESULT($port_name)
539c89a1 140 QTHREAD_LTLIBS=libqthreads.la
539c89a1
JB
141 THREAD_LIBS_LOCAL="../qt/libqthreads.la"
142 THREAD_LIBS_INSTALLED="-lqthreads"
e0f54bcc
JB
143 else
144 AC_MSG_RESULT(none; disabled)
539c89a1
JB
145 fi
146
147 AC_SUBST(QTHREAD_LTLIBS)
148 AC_SUBST(qtmd_h)
149 AC_SUBST(qtmds_s)
150 AC_SUBST(qtmdc_c)
151 AC_SUBST(qtdmdb_s)
47521807 152 AC_SUBST(qthread_asflags)
539c89a1 153 AC_SUBST(THREAD_PACKAGE)
539c89a1
JB
154 AC_SUBST(THREAD_LIBS_LOCAL)
155 AC_SUBST(THREAD_LIBS_INSTALLED)
156])