OSDN Git Service

2003-11-30 Paolo Carlini <pcarlini@suse.de>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / crossconfig.m4
1 dnl
2 dnl This file contains stuff.
3 dnl
4
5 # Base decisions on target environment.
6 case "${host}" in
7   *-darwin*)
8     # Darwin versions vary, but the linker should work in a cross environment,
9     # so we just check for all the features here.
10     # Check for available headers.
11     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
12     machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h \
13     sys/types.h])
14
15     GLIBCXX_CHECK_COMPILER_FEATURES
16     # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
17     GLIBCXX_CHECK_MATH_SUPPORT
18     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
19     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
20     GLIBCXX_CHECK_WCHAR_T_SUPPORT
21     GLIBCXX_CHECK_STDLIB_SUPPORT
22
23     # For showmanyc_helper().
24     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
25     GLIBCXX_CHECK_POLL
26     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
27
28     # For xsputn_2().
29     AC_CHECK_HEADERS(sys/uio.h)
30     GLIBCXX_CHECK_WRITEV
31
32     AC_DEFINE(HAVE_LC_MESSAGES)
33
34     AC_TRY_COMPILE(
35       [#include <setjmp.h>],
36       [sigjmp_buf env;
37        while (! sigsetjmp (env, 1))
38          siglongjmp (env, 1);
39     ],
40     [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available.])])
41
42     AC_DEFINE(HAVE_MMAP)
43     ;;
44
45   *-freebsd*)
46     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
47       machine/endian.h machine/param.h sys/machine.h sys/types.h \
48       fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
49       sys/time.h unistd.h])
50     SECTION_FLAGS='-ffunction-sections -fdata-sections'
51     AC_SUBST(SECTION_FLAGS) 
52     GLIBCXX_CHECK_LINKER_FEATURES
53     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
54     GLIBCXX_CHECK_WCHAR_T_SUPPORT
55     AC_DEFINE(HAVE_LC_MESSAGES)
56     AC_DEFINE(HAVE_LRAND48)
57     AC_DEFINE(HAVE_GETPAGESIZE)
58     AC_DEFINE(HAVE_SETENV)
59     AC_DEFINE(HAVE_SIGSETJMP)
60     AC_DEFINE(HAVE_COPYSIGN)
61     AC_DEFINE(HAVE_COPYSIGNF)
62     AC_DEFINE(HAVE_FINITEF)
63     AC_DEFINE(HAVE_FINITE)
64     AC_DEFINE(HAVE_FREXPF)
65     AC_DEFINE(HAVE_HYPOT)
66     AC_DEFINE(HAVE_HYPOTF)
67     AC_DEFINE(HAVE_ISINF)
68     AC_DEFINE(HAVE_ISNAN)
69     AC_DEFINE(HAVE_ISNANF)
70
71     AC_DEFINE(HAVE_MMAP)
72     AC_DEFINE(HAVE_ACOSF)
73     AC_DEFINE(HAVE_ASINF)
74     AC_DEFINE(HAVE_ATAN2F)
75     AC_DEFINE(HAVE_ATANF)
76     AC_DEFINE(HAVE_CEILF)
77     AC_DEFINE(HAVE_COPYSIGN)
78     AC_DEFINE(HAVE_COPYSIGNF)
79     AC_DEFINE(HAVE_COSF)
80     AC_DEFINE(HAVE_COSHF)
81     AC_DEFINE(HAVE_EXPF)
82     AC_DEFINE(HAVE_FABSF)
83     AC_DEFINE(HAVE_FLOORF)
84     AC_DEFINE(HAVE_FMODF)
85     AC_DEFINE(HAVE_FREXPF)
86     AC_DEFINE(HAVE_LDEXPF)
87     AC_DEFINE(HAVE_LOG10F)
88     AC_DEFINE(HAVE_LOGF)
89     AC_DEFINE(HAVE_MODFF)
90     AC_DEFINE(HAVE_POWF)
91     AC_DEFINE(HAVE_SINF)
92     AC_DEFINE(HAVE_SINHF)
93     AC_DEFINE(HAVE_SQRTF)
94     AC_DEFINE(HAVE_TANF)
95     AC_DEFINE(HAVE_TANHF)
96     if test x"long_double_math_on_this_cpu" = x"yes"; then
97       AC_DEFINE(HAVE_FINITEL)
98       AC_DEFINE(HAVE_ISINFL)
99       AC_DEFINE(HAVE_ISNANL)
100     fi
101     ;;
102   *-hpux*)
103     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
104       machine/endian.h machine/param.h sys/machine.h sys/types.h \
105       fp.h locale.h float.h inttypes.h])
106     SECTION_FLAGS='-ffunction-sections -fdata-sections'
107     AC_SUBST(SECTION_FLAGS)
108     GLIBCXX_CHECK_LINKER_FEATURES
109     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
110     GLIBCXX_CHECK_WCHAR_T_SUPPORT
111     AC_DEFINE(HAVE_COPYSIGN)
112     AC_DEFINE(HAVE_COPYSIGNF)
113     AC_DEFINE(HAVE_FREXPF)
114     AC_DEFINE(HAVE_HYPOT)
115     case "$target" in
116       *-hpux10*)
117         AC_DEFINE(HAVE_FINITE)
118         AC_DEFINE(HAVE_FINITEF)
119         AC_DEFINE(HAVE_ISINF)
120         AC_DEFINE(HAVE_ISINFF)
121         AC_DEFINE(HAVE_ISNAN)
122         AC_DEFINE(HAVE_ISNANF)
123         ;;
124     esac
125     ;;
126   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
127     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
128       machine/endian.h machine/param.h sys/machine.h sys/types.h \
129       fp.h locale.h float.h inttypes.h])
130     SECTION_FLAGS='-ffunction-sections -fdata-sections'
131     AC_SUBST(SECTION_FLAGS)
132     GLIBCXX_CHECK_LINKER_FEATURES
133     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
134     GLIBCXX_CHECK_WCHAR_T_SUPPORT
135     AC_DEFINE(HAVE_COPYSIGN)
136     AC_DEFINE(HAVE_COPYSIGNF)
137     AC_DEFINE(HAVE_FINITE)
138     AC_DEFINE(HAVE_FINITEF)
139     AC_DEFINE(HAVE_FREXPF)
140     AC_DEFINE(HAVE_HYPOTF)
141     AC_DEFINE(HAVE_ISINF)
142     AC_DEFINE(HAVE_ISINFF)
143     AC_DEFINE(HAVE_ISNAN)
144     AC_DEFINE(HAVE_ISNANF)
145     AC_DEFINE(HAVE_SINCOS)
146     AC_DEFINE(HAVE_SINCOSF)
147     if test x"long_double_math_on_this_cpu" = x"yes"; then
148       AC_DEFINE(HAVE_FINITEL)
149       AC_DEFINE(HAVE_HYPOTL)
150       AC_DEFINE(HAVE_ISINFL)
151       AC_DEFINE(HAVE_ISNANL)
152     fi
153     ;;
154   *-mingw32*)
155     AC_CHECK_HEADERS([sys/types.h locale.h float.h])
156     GLIBCXX_CHECK_LINKER_FEATURES
157     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
158     GLIBCXX_CHECK_WCHAR_T_SUPPORT
159     ;;
160   *-netbsd*)
161     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
162       machine/endian.h machine/param.h sys/machine.h sys/types.h \
163       fp.h locale.h float.h inttypes.h])
164     SECTION_FLAGS='-ffunction-sections -fdata-sections'
165     AC_SUBST(SECTION_FLAGS) 
166     GLIBCXX_CHECK_LINKER_FEATURES
167     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
168     GLIBCXX_CHECK_WCHAR_T_SUPPORT
169     AC_DEFINE(HAVE_COPYSIGN)
170     AC_DEFINE(HAVE_COPYSIGNF)
171     AC_DEFINE(HAVE_FINITEF)
172     AC_DEFINE(HAVE_FINITE)
173     AC_DEFINE(HAVE_FREXPF)
174     AC_DEFINE(HAVE_HYPOTF)
175     AC_DEFINE(HAVE_ISINF)
176     AC_DEFINE(HAVE_ISINFF)
177     AC_DEFINE(HAVE_ISNAN)
178     AC_DEFINE(HAVE_ISNANF)
179     if test x"long_double_math_on_this_cpu" = x"yes"; then
180       AC_DEFINE(HAVE_FINITEL)
181       AC_DEFINE(HAVE_ISINFL)
182       AC_DEFINE(HAVE_ISNANL)
183     fi
184     ;;
185   *-qnx6.1* | *-qnx6.2*)
186     SECTION_FLAGS='-ffunction-sections -fdata-sections'
187     AC_SUBST(SECTION_FLAGS) 
188     GLIBCXX_CHECK_LINKER_FEATURES
189     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
190     GLIBCXX_CHECK_WCHAR_T_SUPPORT
191     AC_DEFINE(HAVE_COSF)
192     AC_DEFINE(HAVE_COSL)
193     AC_DEFINE(HAVE_COSHF)
194     AC_DEFINE(HAVE_COSHL)
195     AC_DEFINE(HAVE_LOGF)
196     AC_DEFINE(HAVE_LOGL)
197     AC_DEFINE(HAVE_LOG10F)
198     AC_DEFINE(HAVE_LOG10L)
199     AC_DEFINE(HAVE_SINF)
200     AC_DEFINE(HAVE_SINL)
201     AC_DEFINE(HAVE_SINHF)
202     AC_DEFINE(HAVE_SINHL)
203     ;;
204   *-solaris*)
205     case "$target" in
206     #  *-solaris2.5)
207     #    os_include_dir="os/solaris/solaris2.5"
208     #    ;;
209     #  *-solaris2.6)
210     #    os_include_dir="os/solaris/solaris2.6"
211     #    ;;
212       *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
213          AC_DEFINE(HAVE_GETPAGESIZE)
214          AC_DEFINE(HAVE_SIGSETJMP)
215          AC_DEFINE(HAVE_MBSTATE_T)
216          AC_DEFINE(HAVE_POLL)
217          AC_DEFINE(HAVE_S_ISREG)
218          AC_DEFINE(HAVE_LC_MESSAGES)
219          AC_DEFINE(HAVE_BTOWC)
220          AC_DEFINE(HAVE_DRAND48)
221          AC_DEFINE(HAVE_FGETWC)
222          AC_DEFINE(HAVE_FGETWS)
223          AC_DEFINE(HAVE_FINITE)
224          AC_DEFINE(HAVE_FPCLASS)
225          AC_DEFINE(HAVE_FPUTWC)
226          AC_DEFINE(HAVE_FPUTWS)
227          AC_DEFINE(HAVE_FWIDE)
228          AC_DEFINE(HAVE_FWPRINTF)
229          AC_DEFINE(HAVE_FWSCANF)
230          AC_DEFINE(HAVE_GETPAGESIZE)
231          AC_DEFINE(HAVE_GETWC)
232          AC_DEFINE(HAVE_GETWCHAR)
233          AC_DEFINE(HAVE_MBRLEN)
234          AC_DEFINE(HAVE_MBRTOWC)
235          AC_DEFINE(HAVE_MBSINIT)
236          AC_DEFINE(HAVE_MBSRTOWCS)
237          AC_DEFINE(HAVE_NL_LANGINFO)
238          AC_DEFINE(HAVE_PUTWC)
239          AC_DEFINE(HAVE_PUTWCHAR)
240          AC_DEFINE(HAVE_SWPRINTF)
241          AC_DEFINE(HAVE_SWSCANF)
242          AC_DEFINE(HAVE_UNGETWC)
243          AC_DEFINE(HAVE_VFWPRINTF)
244          AC_DEFINE(HAVE_VSWPRINTF)
245          AC_DEFINE(HAVE_VWPRINTF)
246          AC_DEFINE(HAVE_WCRTOMB)
247          AC_DEFINE(HAVE_WCSCAT)
248          AC_DEFINE(HAVE_WCSCHR)
249          AC_DEFINE(HAVE_WCSCMP)
250          AC_DEFINE(HAVE_WCSCOLL)
251          AC_DEFINE(HAVE_WCSCPY)
252          AC_DEFINE(HAVE_WCSCSPN)
253          AC_DEFINE(HAVE_WCSFTIME)
254          AC_DEFINE(HAVE_WCSLEN)
255          AC_DEFINE(HAVE_WCSNCAT)
256          AC_DEFINE(HAVE_WCSNCMP)
257          AC_DEFINE(HAVE_WCSNCPY)
258          AC_DEFINE(HAVE_WCSPBRK)
259          AC_DEFINE(HAVE_WCSRCHR)
260          AC_DEFINE(HAVE_WCSRTOMBS)
261          AC_DEFINE(HAVE_WCSSPN)
262          AC_DEFINE(HAVE_WCSSTR)
263          AC_DEFINE(HAVE_WCSTOD)
264          AC_DEFINE(HAVE_WCSTOK)
265          AC_DEFINE(HAVE_WCSTOL)
266          AC_DEFINE(HAVE_WCSTOUL)
267          AC_DEFINE(HAVE_WCSXFRM)
268          AC_DEFINE(HAVE_WCTOB)
269          AC_DEFINE(HAVE_WMEMCHR)
270          AC_DEFINE(HAVE_WMEMCMP)
271          AC_DEFINE(HAVE_WMEMCPY)
272          AC_DEFINE(HAVE_WMEMMOVE)
273          AC_DEFINE(HAVE_WMEMSET)
274          AC_DEFINE(HAVE_WPRINTF)
275          AC_DEFINE(HAVE_WSCANF)
276          AC_DEFINE(HAVE_ICONV)
277          AC_DEFINE(HAVE_ICONV_CLOSE)
278          AC_DEFINE(HAVE_ICONV_OPEN)
279          # Look for the pieces required for wchar_t support in order to
280          # get all the right HAVE_* macros defined.
281          GLIBCXX_CHECK_WCHAR_T_SUPPORT
282          # All of the dependencies for wide character support are here, so
283          # turn it on.  This requires some syncronization with the
284          # GLIBCXX_CHECK_WCHAR_T_SUPPORT in acinclude.m4
285          AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
286          # Are these tested for even when cross?
287          AC_DEFINE(HAVE_FLOAT_H)
288          AC_DEFINE(HAVE_IEEEFP_H)
289          AC_DEFINE(HAVE_INTTYPES_H)
290          AC_DEFINE(HAVE_LOCALE_H)
291          AC_DEFINE(HAVE_NAN_H)
292          AC_DEFINE(HAVE_SYS_FILIO_H)
293          AC_DEFINE(HAVE_SYS_IOCTL_H)
294          AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
295          AC_DEFINE(HAVE_SYS_RESOURCE_H)
296          AC_DEFINE(HAVE_SYS_TIME_H)
297          AC_DEFINE(HAVE_SYS_TYPES_H)
298          AC_DEFINE(HAVE_UNISTD_H)
299          AC_DEFINE(HAVE_WCHAR_H)
300          AC_DEFINE(HAVE_WCTYPE_H)
301          AC_DEFINE(HAVE_LIBM)
302         ;;
303     esac
304     case "$target" in
305       sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
306         # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
307         AC_DEFINE(HAVE___BUILTIN_ABS)
308         AC_DEFINE(HAVE___BUILTIN_LABS)
309         AC_DEFINE(HAVE___BUILTIN_FABS)
310         AC_DEFINE(HAVE___BUILTIN_FABSF)
311         AC_DEFINE(HAVE___BUILTIN_FABSL)
312         AC_DEFINE(HAVE___BUILTIN_COS)
313         AC_DEFINE(HAVE___BUILTIN_COSF)
314         AC_DEFINE(HAVE___BUILTIN_SIN)
315         AC_DEFINE(HAVE___BUILTIN_SINF)
316        ;;
317     esac
318     AC_DEFINE(HAVE_STRTOF)
319     AC_DEFINE(HAVE_STRTOLD)
320     AC_DEFINE(HAVE_MMAP) 
321     AC_DEFINE(HAVE_COPYSIGN)
322     AC_DEFINE(HAVE_ISNAN)
323     AC_DEFINE(HAVE_ISNANF)
324     AC_DEFINE(HAVE_MODFF)
325     AC_DEFINE(HAVE_HYPOT)
326     ;;
327   *-vxworks)
328     AC_DEFINE(HAVE_MMAP)
329     AC_DEFINE(HAVE_ACOSF)
330     AC_DEFINE(HAVE_ASINF)
331     AC_DEFINE(HAVE_ATAN2F)
332     AC_DEFINE(HAVE_ATANF)
333     AC_DEFINE(HAVE_CEILF)
334     AC_DEFINE(HAVE_COSF)
335     AC_DEFINE(HAVE_COSHF)
336     AC_DEFINE(HAVE_EXPF)
337     AC_DEFINE(HAVE_FABSF)
338     AC_DEFINE(HAVE_FLOORF)
339     AC_DEFINE(HAVE_FMODF)
340     AC_DEFINE(HAVE_HYPOT)
341     AC_DEFINE(HAVE_LOG10F)
342     AC_DEFINE(HAVE_LOGF)
343     AC_DEFINE(HAVE_POWF)
344     AC_DEFINE(HAVE_SINF)
345     AC_DEFINE(HAVE_SINHF)
346     AC_DEFINE(HAVE_SQRTF)
347     AC_DEFINE(HAVE_TANF)
348     AC_DEFINE(HAVE_TANHF)
349     ;;
350   *-windiss*)
351     AC_DEFINE(HAVE_ACOSF)
352     AC_DEFINE(HAVE_ACOSL)
353     AC_DEFINE(HAVE_ASINF)
354     AC_DEFINE(HAVE_ASINL)
355     AC_DEFINE(HAVE_ATAN2F)
356     AC_DEFINE(HAVE_ATAN2L)
357     AC_DEFINE(HAVE_ATANF)
358     AC_DEFINE(HAVE_ATANL)
359     AC_DEFINE(HAVE_CEILF)
360     AC_DEFINE(HAVE_CEILL)
361     AC_DEFINE(HAVE_COPYSIGN)
362     AC_DEFINE(HAVE_COPYSIGNF)
363     AC_DEFINE(HAVE_COSF)
364     AC_DEFINE(HAVE_COSL)
365     AC_DEFINE(HAVE_COSHF)
366     AC_DEFINE(HAVE_COSHL)
367     AC_DEFINE(HAVE_EXPF)
368     AC_DEFINE(HAVE_EXPL)
369     AC_DEFINE(HAVE_FABSF)
370     AC_DEFINE(HAVE_FABSL)
371     AC_DEFINE(HAVE_FLOORF)
372     AC_DEFINE(HAVE_FLOORL)
373     AC_DEFINE(HAVE_FMODF)
374     AC_DEFINE(HAVE_FMODL)
375     AC_DEFINE(HAVE_FREXPF)
376     AC_DEFINE(HAVE_FREXPL)
377     AC_DEFINE(HAVE_LDEXPF)
378     AC_DEFINE(HAVE_LDEXPL)
379     AC_DEFINE(HAVE_LOG10F)
380     AC_DEFINE(HAVE_LOG10L)
381     AC_DEFINE(HAVE_LOGF)
382     AC_DEFINE(HAVE_MODFF)
383     AC_DEFINE(HAVE_MODFL)
384     AC_DEFINE(HAVE_POWF)
385     AC_DEFINE(HAVE_POWL)
386     AC_DEFINE(HAVE_SINF)
387     AC_DEFINE(HAVE_SINL)
388     AC_DEFINE(HAVE_SINHF)
389     AC_DEFINE(HAVE_SINHL)
390     AC_DEFINE(HAVE_SQRTF)
391     AC_DEFINE(HAVE_SQRTL)
392     AC_DEFINE(HAVE_TANF)
393     AC_DEFINE(HAVE_TANL)
394     AC_DEFINE(HAVE_TANHF)
395     AC_DEFINE(HAVE_TANHL)
396     ;;
397   *)
398     AC_MSG_ERROR([No support for this host/target combination.])
399    ;;
400 esac
401