/[guile]/guile/guile-core/guile-config/qthreads.m4
ViewVC logotype

Diff of /guile/guile-core/guile-config/qthreads.m4

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by mvo, Fri Apr 26 17:35:54 2002 UTC revision 1.2 by mvo, Fri Apr 26 18:03:21 2002 UTC
# Line 0  Line 1 
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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26