Commit | Line | Data |
---|---|---|
63355c80 MV |
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 | |
92205699 MV |
20 | dnl to the Free Software Foundation, Inc., 51 Franklin Street, Fifth |
21 | dnl Floor, Boston, MA 02110-1301 USA | |
63355c80 MV |
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 | ;; | |
4923bb18 MV |
130 | arm*-*-*) |
131 | port_name=arm | |
132 | qtmd_h=md/arm.h | |
133 | qtmds_s=md/arm.s | |
134 | qtmdc_c=md/null.c | |
135 | qtdmdb_s= | |
136 | ;; | |
63355c80 MV |
137 | *) |
138 | echo "Unknown configuration; threads package disabled" | |
139 | THREAD_PACKAGE="" | |
140 | ;; | |
141 | esac | |
142 | changequote([, ]) | |
143 | ||
144 | # Did configuration succeed? | |
145 | if test -n "$THREAD_PACKAGE"; then | |
146 | AC_MSG_RESULT($port_name) | |
147 | QTHREAD_LTLIBS=libqthreads.la | |
148 | THREAD_LIBS_LOCAL="../qt/libqthreads.la" | |
149 | THREAD_LIBS_INSTALLED="-lqthreads" | |
150 | else | |
151 | AC_MSG_RESULT(none; disabled) | |
152 | fi | |
153 | ||
154 | AC_SUBST(QTHREAD_LTLIBS) | |
155 | AC_SUBST(qtmd_h) | |
156 | AC_SUBST(qtmds_s) | |
157 | AC_SUBST(qtmdc_c) | |
158 | AC_SUBST(qtdmdb_s) | |
159 | AC_SUBST(qthread_asflags) | |
160 | AC_SUBST(THREAD_PACKAGE) | |
161 | AC_SUBST(THREAD_LIBS_LOCAL) | |
162 | AC_SUBST(THREAD_LIBS_INSTALLED) | |
163 | ]) | |
164 | ||
165 | dnl qthreads.m4 ends here |