1 |
|
dnl Autoconf macros for configuring the QuickThreads package |
2 |
|
dnl Jim Blandy <jimb@red-bean.com> --- July 1998 |
3 |
|
dnl |
4 |
|
dnl Copyright (C) 1998, 1999 Free Software Foundation, Inc. |
5 |
|
dnl |
6 |
|
dnl This file is part of GUILE. |
7 |
|
dnl |
8 |
|
dnl GUILE is free software; you can redistribute it and/or modify |
9 |
|
dnl it under the terms of the GNU General Public License as |
10 |
|
dnl published by the Free Software Foundation; either version 2, or |
11 |
|
dnl (at your option) any later version. |
12 |
|
dnl |
13 |
|
dnl GUILE is distributed in the hope that it will be useful, but |
14 |
|
dnl WITHOUT ANY WARRANTY; without even the implied warranty of |
15 |
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 |
|
dnl GNU General Public License for more details. |
17 |
|
dnl |
18 |
|
dnl You should have received a copy of the GNU General Public |
19 |
|
dnl License along with GUILE; see the file COPYING. If not, write |
20 |
|
dnl to the Free Software Foundation, Inc., 59 Temple Place, Suite |
21 |
|
dnl 330, Boston, MA 02111-1307 USA |
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
dnl QTHREADS_CONFIGURE configures the QuickThreads package. The QT |
26 |
|
dnl sources should be in $srcdir/qt. If configuration succeeds, this |
27 |
|
dnl macro creates the appropriate symlinks in the qt object directory, |
28 |
|
dnl and sets the following variables, used in building libqthreads.a: |
29 |
|
dnl QTHREAD_LTLIBS --- set to libqthreads.la if configuration |
30 |
|
dnl succeeds, or the empty string if configuration fails. |
31 |
|
dnl qtmd_h, qtmds_s, qtmdc_c, qtdmdb_s --- the names of the machine- |
32 |
|
dnl dependent source files. |
33 |
|
dnl qthread_asflags --- flags to pass to the compiler when processing |
34 |
|
dnl assembly-language files. |
35 |
|
dnl |
36 |
|
dnl It also sets the following variables, which describe how clients |
37 |
|
dnl can link against libqthreads.a: |
38 |
|
dnl THREAD_PACKAGE --- set to "QT" if configuration succeeds, or |
39 |
|
dnl the empty string if configuration fails. |
40 |
|
dnl THREAD_LIBS_LOCAL --- linker options for use in this source tree |
41 |
|
dnl THREAD_LIBS_INSTALLED --- linker options for use after this package |
42 |
|
dnl is installed |
43 |
|
dnl It would be nice if all thread configuration packages for Guile |
44 |
|
dnl followed the same conventions. |
45 |
|
dnl |
46 |
|
dnl All of the above variables will be substituted into Makefiles in |
47 |
|
dnl the usual autoconf fashion. |
48 |
|
dnl |
49 |
|
dnl We distinguish between THREAD_LIBS_LOCAL and |
50 |
|
dnl THREAD_LIBS_INSTALLED because the thread library might be in |
51 |
|
dnl this tree, and be built using libtool. This means that: |
52 |
|
dnl 1) when building other executables in this tree, one must |
53 |
|
dnl pass the relative path to the ../libfoo.la file, but |
54 |
|
dnl 2) once the whole package has been installed, users should |
55 |
|
dnl link using -lfoo. |
56 |
|
dnl Normally, we only care about the first case, but since the |
57 |
|
dnl guile-config script needs to give users all the flags they need |
58 |
|
dnl to link programs against guile, the GUILE_WITH_THREADS macro |
59 |
|
dnl needs to supply the second piece of information as well. |
60 |
|
dnl |
61 |
|
dnl This whole thing is a little confused about what ought to be |
62 |
|
dnl done in the top-level configure script, and what ought to be |
63 |
|
dnl taken care of in the subdirectory. For example, qtmds_s and |
64 |
|
dnl friends really ought not to be even mentioned in the top-level |
65 |
|
dnl configure script, but here they are. |
66 |
|
|
67 |
|
AC_DEFUN([QTHREADS_CONFIGURE],[ |
68 |
|
AC_REQUIRE([AC_PROG_LN_S]) |
69 |
|
|
70 |
|
AC_MSG_CHECKING(QuickThreads configuration) |
71 |
|
|
72 |
|
changequote(,)dnl We use [ and ] in a regexp in the case |
73 |
|
|
74 |
|
THREAD_PACKAGE=QT |
75 |
|
qthread_asflags='' |
76 |
|
case "$host" in |
77 |
|
i[3456]86-*-*) |
78 |
|
port_name=i386 |
79 |
|
qtmd_h=md/i386.h |
80 |
|
qtmds_s=md/i386.s |
81 |
|
qtmdc_c=md/null.c |
82 |
|
qtdmdb_s= |
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 |
94 |
|
;; |
95 |
|
mips-sgi-irix[56]*) |
96 |
|
port_name=irix |
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-*-*) |
103 |
|
port_name=mips |
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*) |
110 |
|
port_name=sparc-sunos |
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*-*-*) |
117 |
|
port_name=sparc |
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 |
|
;; |
123 |
|
alpha*-*-*) |
124 |
|
port_name=alpha |
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 |
139 |
|
AC_MSG_RESULT($port_name) |
140 |
|
QTHREAD_LTLIBS=libqthreads.la |
141 |
|
THREAD_LIBS_LOCAL="../qt/libqthreads.la" |
142 |
|
THREAD_LIBS_INSTALLED="-lqthreads" |
143 |
|
else |
144 |
|
AC_MSG_RESULT(none; disabled) |
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) |
152 |
|
AC_SUBST(qthread_asflags) |
153 |
|
AC_SUBST(THREAD_PACKAGE) |
154 |
|
AC_SUBST(THREAD_LIBS_LOCAL) |
155 |
|
AC_SUBST(THREAD_LIBS_INSTALLED) |
156 |
|
]) |
157 |
|
|
158 |
|
dnl qthreads.m4 ends here |