OSDN Git Service

2004-02-10 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_GETPAGESIZE)
57     AC_DEFINE(HAVE_SETENV)
58     AC_DEFINE(HAVE_SIGSETJMP)
59     AC_DEFINE(HAVE_COPYSIGN)
60     AC_DEFINE(HAVE_COPYSIGNF)
61     AC_DEFINE(HAVE_FINITEF)
62     AC_DEFINE(HAVE_FINITE)
63     AC_DEFINE(HAVE_FREXPF)
64     AC_DEFINE(HAVE_HYPOT)
65     AC_DEFINE(HAVE_HYPOTF)
66     AC_DEFINE(HAVE_ISINF)
67     AC_DEFINE(HAVE_ISNAN)
68     AC_DEFINE(HAVE_ISNANF)
69
70     AC_DEFINE(HAVE_MMAP)
71     AC_DEFINE(HAVE_ACOSF)
72     AC_DEFINE(HAVE_ASINF)
73     AC_DEFINE(HAVE_ATAN2F)
74     AC_DEFINE(HAVE_ATANF)
75     AC_DEFINE(HAVE_CEILF)
76     AC_DEFINE(HAVE_COPYSIGN)
77     AC_DEFINE(HAVE_COPYSIGNF)
78     AC_DEFINE(HAVE_COSF)
79     AC_DEFINE(HAVE_COSHF)
80     AC_DEFINE(HAVE_EXPF)
81     AC_DEFINE(HAVE_FABSF)
82     AC_DEFINE(HAVE_FLOORF)
83     AC_DEFINE(HAVE_FMODF)
84     AC_DEFINE(HAVE_FREXPF)
85     AC_DEFINE(HAVE_LDEXPF)
86     AC_DEFINE(HAVE_LOG10F)
87     AC_DEFINE(HAVE_LOGF)
88     AC_DEFINE(HAVE_MODFF)
89     AC_DEFINE(HAVE_POWF)
90     AC_DEFINE(HAVE_SINF)
91     AC_DEFINE(HAVE_SINHF)
92     AC_DEFINE(HAVE_SQRTF)
93     AC_DEFINE(HAVE_TANF)
94     AC_DEFINE(HAVE_TANHF)
95     if test x"long_double_math_on_this_cpu" = x"yes"; then
96       AC_DEFINE(HAVE_FINITEL)
97       AC_DEFINE(HAVE_ISINFL)
98       AC_DEFINE(HAVE_ISNANL)
99     fi
100     ;;
101   *-hpux*)
102     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
103       machine/endian.h machine/param.h sys/machine.h sys/types.h \
104       fp.h locale.h float.h inttypes.h])
105     SECTION_FLAGS='-ffunction-sections -fdata-sections'
106     AC_SUBST(SECTION_FLAGS)
107     GLIBCXX_CHECK_LINKER_FEATURES
108     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
109     GLIBCXX_CHECK_WCHAR_T_SUPPORT
110     AC_DEFINE(HAVE_COPYSIGN)
111     AC_DEFINE(HAVE_COPYSIGNF)
112     AC_DEFINE(HAVE_FREXPF)
113     AC_DEFINE(HAVE_HYPOT)
114     case "$target" in
115       *-hpux10*)
116         AC_DEFINE(HAVE_FINITE)
117         AC_DEFINE(HAVE_FINITEF)
118         AC_DEFINE(HAVE_ISINF)
119         AC_DEFINE(HAVE_ISINFF)
120         AC_DEFINE(HAVE_ISNAN)
121         AC_DEFINE(HAVE_ISNANF)
122         ;;
123     esac
124     ;;
125   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
126     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
127       machine/endian.h machine/param.h sys/machine.h sys/types.h \
128       fp.h locale.h float.h inttypes.h])
129     SECTION_FLAGS='-ffunction-sections -fdata-sections'
130     AC_SUBST(SECTION_FLAGS)
131     GLIBCXX_CHECK_LINKER_FEATURES
132     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
133     GLIBCXX_CHECK_WCHAR_T_SUPPORT
134
135     # For LFS.
136     AC_DEFINE(HAVE_INT64_T)
137     case "$target" in
138       *-uclinux*)
139         # Don't enable LFS with uClibc
140         ;;
141       *)
142         AC_DEFINE(_GLIBCXX_USE_LFS)
143     esac
144
145     # For showmanyc_helper().
146     AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
147     GLIBCXX_CHECK_POLL
148     GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
149
150     # For xsputn_2().
151     AC_CHECK_HEADERS(sys/uio.h)
152     GLIBCXX_CHECK_WRITEV
153
154     AC_DEFINE(HAVE_COPYSIGN)
155     AC_DEFINE(HAVE_COPYSIGNF)
156     AC_DEFINE(HAVE_FINITE)
157     AC_DEFINE(HAVE_FINITEF)
158     AC_DEFINE(HAVE_FREXPF)
159     AC_DEFINE(HAVE_HYPOTF)
160     AC_DEFINE(HAVE_ISINF)
161     AC_DEFINE(HAVE_ISINFF)
162     AC_DEFINE(HAVE_ISNAN)
163     AC_DEFINE(HAVE_ISNANF)
164     AC_DEFINE(HAVE_SINCOS)
165     AC_DEFINE(HAVE_SINCOSF)
166     if test x"long_double_math_on_this_cpu" = x"yes"; then
167       AC_DEFINE(HAVE_FINITEL)
168       AC_DEFINE(HAVE_HYPOTL)
169       AC_DEFINE(HAVE_ISINFL)
170       AC_DEFINE(HAVE_ISNANL)
171     fi
172     ;;
173   *-mingw32*)
174     AC_CHECK_HEADERS([sys/types.h locale.h float.h])
175     GLIBCXX_CHECK_LINKER_FEATURES
176     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
177     GLIBCXX_CHECK_WCHAR_T_SUPPORT
178     ;;
179   *-netbsd*)
180     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
181       machine/endian.h machine/param.h sys/machine.h sys/types.h \
182       fp.h locale.h float.h inttypes.h])
183     SECTION_FLAGS='-ffunction-sections -fdata-sections'
184     AC_SUBST(SECTION_FLAGS) 
185     GLIBCXX_CHECK_LINKER_FEATURES
186     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
187     GLIBCXX_CHECK_WCHAR_T_SUPPORT
188     AC_DEFINE(HAVE_COPYSIGN)
189     AC_DEFINE(HAVE_COPYSIGNF)
190     AC_DEFINE(HAVE_FINITEF)
191     AC_DEFINE(HAVE_FINITE)
192     AC_DEFINE(HAVE_FREXPF)
193     AC_DEFINE(HAVE_HYPOTF)
194     AC_DEFINE(HAVE_ISINF)
195     AC_DEFINE(HAVE_ISINFF)
196     AC_DEFINE(HAVE_ISNAN)
197     AC_DEFINE(HAVE_ISNANF)
198     if test x"long_double_math_on_this_cpu" = x"yes"; then
199       AC_DEFINE(HAVE_FINITEL)
200       AC_DEFINE(HAVE_ISINFL)
201       AC_DEFINE(HAVE_ISNANL)
202     fi
203     ;;
204   *-qnx6.1* | *-qnx6.2*)
205     SECTION_FLAGS='-ffunction-sections -fdata-sections'
206     AC_SUBST(SECTION_FLAGS) 
207     GLIBCXX_CHECK_LINKER_FEATURES
208     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
209     GLIBCXX_CHECK_WCHAR_T_SUPPORT
210     AC_DEFINE(HAVE_COSF)
211     AC_DEFINE(HAVE_COSL)
212     AC_DEFINE(HAVE_COSHF)
213     AC_DEFINE(HAVE_COSHL)
214     AC_DEFINE(HAVE_LOGF)
215     AC_DEFINE(HAVE_LOGL)
216     AC_DEFINE(HAVE_LOG10F)
217     AC_DEFINE(HAVE_LOG10L)
218     AC_DEFINE(HAVE_SINF)
219     AC_DEFINE(HAVE_SINL)
220     AC_DEFINE(HAVE_SINHF)
221     AC_DEFINE(HAVE_SINHL)
222     ;;
223   *-solaris*)
224     case "$target" in
225     #  *-solaris2.5)
226     #    os_include_dir="os/solaris/solaris2.5"
227     #    ;;
228     #  *-solaris2.6)
229     #    os_include_dir="os/solaris/solaris2.6"
230     #    ;;
231       *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
232          AC_DEFINE(HAVE_GETPAGESIZE)
233          AC_DEFINE(HAVE_SIGSETJMP)
234          AC_DEFINE(HAVE_MBSTATE_T)
235          AC_DEFINE(HAVE_POLL)
236          AC_DEFINE(HAVE_S_ISREG)
237          AC_DEFINE(HAVE_LC_MESSAGES)
238          AC_DEFINE(HAVE_BTOWC)
239          AC_DEFINE(HAVE_FGETWC)
240          AC_DEFINE(HAVE_FGETWS)
241          AC_DEFINE(HAVE_FINITE)
242          AC_DEFINE(HAVE_FPCLASS)
243          AC_DEFINE(HAVE_FPUTWC)
244          AC_DEFINE(HAVE_FPUTWS)
245          AC_DEFINE(HAVE_FWIDE)
246          AC_DEFINE(HAVE_FWPRINTF)
247          AC_DEFINE(HAVE_FWSCANF)
248          AC_DEFINE(HAVE_GETPAGESIZE)
249          AC_DEFINE(HAVE_GETWC)
250          AC_DEFINE(HAVE_GETWCHAR)
251          AC_DEFINE(HAVE_MBRLEN)
252          AC_DEFINE(HAVE_MBRTOWC)
253          AC_DEFINE(HAVE_MBSINIT)
254          AC_DEFINE(HAVE_MBSRTOWCS)
255          AC_DEFINE(HAVE_NL_LANGINFO)
256          AC_DEFINE(HAVE_PUTWC)
257          AC_DEFINE(HAVE_PUTWCHAR)
258          AC_DEFINE(HAVE_SWPRINTF)
259          AC_DEFINE(HAVE_SWSCANF)
260          AC_DEFINE(HAVE_UNGETWC)
261          AC_DEFINE(HAVE_VFWPRINTF)
262          AC_DEFINE(HAVE_VSWPRINTF)
263          AC_DEFINE(HAVE_VWPRINTF)
264          AC_DEFINE(HAVE_WCRTOMB)
265          AC_DEFINE(HAVE_WCSCAT)
266          AC_DEFINE(HAVE_WCSCHR)
267          AC_DEFINE(HAVE_WCSCMP)
268          AC_DEFINE(HAVE_WCSCOLL)
269          AC_DEFINE(HAVE_WCSCPY)
270          AC_DEFINE(HAVE_WCSCSPN)
271          AC_DEFINE(HAVE_WCSFTIME)
272          AC_DEFINE(HAVE_WCSLEN)
273          AC_DEFINE(HAVE_WCSNCAT)
274          AC_DEFINE(HAVE_WCSNCMP)
275          AC_DEFINE(HAVE_WCSNCPY)
276          AC_DEFINE(HAVE_WCSPBRK)
277          AC_DEFINE(HAVE_WCSRCHR)
278          AC_DEFINE(HAVE_WCSRTOMBS)
279          AC_DEFINE(HAVE_WCSSPN)
280          AC_DEFINE(HAVE_WCSSTR)
281          AC_DEFINE(HAVE_WCSTOD)
282          AC_DEFINE(HAVE_WCSTOK)
283          AC_DEFINE(HAVE_WCSTOL)
284          AC_DEFINE(HAVE_WCSTOUL)
285          AC_DEFINE(HAVE_WCSXFRM)
286          AC_DEFINE(HAVE_WCTOB)
287          AC_DEFINE(HAVE_WMEMCHR)
288          AC_DEFINE(HAVE_WMEMCMP)
289          AC_DEFINE(HAVE_WMEMCPY)
290          AC_DEFINE(HAVE_WMEMMOVE)
291          AC_DEFINE(HAVE_WMEMSET)
292          AC_DEFINE(HAVE_WPRINTF)
293          AC_DEFINE(HAVE_WSCANF)
294          AC_DEFINE(HAVE_ICONV)
295          AC_DEFINE(HAVE_ICONV_CLOSE)
296          AC_DEFINE(HAVE_ICONV_OPEN)
297          # Look for the pieces required for wchar_t support in order to
298          # get all the right HAVE_* macros defined.
299          GLIBCXX_CHECK_WCHAR_T_SUPPORT
300          # All of the dependencies for wide character support are here, so
301          # turn it on.  This requires some syncronization with the
302          # GLIBCXX_CHECK_WCHAR_T_SUPPORT in acinclude.m4
303          AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
304          # Are these tested for even when cross?
305          AC_DEFINE(HAVE_FLOAT_H)
306          AC_DEFINE(HAVE_IEEEFP_H)
307          AC_DEFINE(HAVE_INTTYPES_H)
308          AC_DEFINE(HAVE_LOCALE_H)
309          AC_DEFINE(HAVE_NAN_H)
310          AC_DEFINE(HAVE_SYS_FILIO_H)
311          AC_DEFINE(HAVE_SYS_IOCTL_H)
312          AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
313          AC_DEFINE(HAVE_SYS_RESOURCE_H)
314          AC_DEFINE(HAVE_SYS_TIME_H)
315          AC_DEFINE(HAVE_SYS_TYPES_H)
316          AC_DEFINE(HAVE_UNISTD_H)
317          AC_DEFINE(HAVE_WCHAR_H)
318          AC_DEFINE(HAVE_WCTYPE_H)
319          AC_DEFINE(HAVE_LIBM)
320         ;;
321     esac
322     case "$target" in
323       sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
324         # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
325         AC_DEFINE(HAVE___BUILTIN_ABS)
326         AC_DEFINE(HAVE___BUILTIN_LABS)
327         AC_DEFINE(HAVE___BUILTIN_FABS)
328         AC_DEFINE(HAVE___BUILTIN_FABSF)
329         AC_DEFINE(HAVE___BUILTIN_FABSL)
330         AC_DEFINE(HAVE___BUILTIN_COS)
331         AC_DEFINE(HAVE___BUILTIN_COSF)
332         AC_DEFINE(HAVE___BUILTIN_SIN)
333         AC_DEFINE(HAVE___BUILTIN_SINF)
334        ;;
335     esac
336     AC_DEFINE(HAVE_STRTOF)
337     AC_DEFINE(HAVE_STRTOLD)
338     AC_DEFINE(HAVE_MMAP) 
339     AC_DEFINE(HAVE_COPYSIGN)
340     AC_DEFINE(HAVE_ISNAN)
341     AC_DEFINE(HAVE_ISNANF)
342     AC_DEFINE(HAVE_MODFF)
343     AC_DEFINE(HAVE_HYPOT)
344     ;;
345   *-tpf)
346     AC_CHECK_HEADERS([nan.h endian.h machine/endian.h  \
347       sys/param.h sys/types.h locale.h float.h inttypes.h])
348     SECTION_FLAGS='-ffunction-sections -fdata-sections'
349     AC_SUBST(SECTION_FLAGS)
350     GLIBCXX_CHECK_LINKER_FEATURES
351     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
352     GLIBCXX_CHECK_WCHAR_T_SUPPORT
353     AC_DEFINE(HAVE_COPYSIGN)
354     AC_DEFINE(HAVE_COPYSIGNF)
355     AC_DEFINE(HAVE_FINITE)
356     AC_DEFINE(HAVE_FINITEF)
357     AC_DEFINE(HAVE_FREXPF)
358     AC_DEFINE(HAVE_HYPOTF)
359     AC_DEFINE(HAVE_ISINF)
360     AC_DEFINE(HAVE_ISINFF)
361     AC_DEFINE(HAVE_ISNAN)
362     AC_DEFINE(HAVE_ISNANF)
363     AC_DEFINE(HAVE_SINCOS)
364     AC_DEFINE(HAVE_SINCOSF)
365     if test x"long_double_math_on_this_cpu" = x"yes"; then
366       AC_DEFINE(HAVE_FINITEL)
367       AC_DEFINE(HAVE_HYPOTL)
368       AC_DEFINE(HAVE_ISINFL)
369       AC_DEFINE(HAVE_ISNANL)
370     fi
371     ;;
372   *-vxworks)
373     AC_DEFINE(HAVE_MMAP)
374     AC_DEFINE(HAVE_ACOSF)
375     AC_DEFINE(HAVE_ASINF)
376     AC_DEFINE(HAVE_ATAN2F)
377     AC_DEFINE(HAVE_ATANF)
378     AC_DEFINE(HAVE_CEILF)
379     AC_DEFINE(HAVE_COSF)
380     AC_DEFINE(HAVE_COSHF)
381     AC_DEFINE(HAVE_EXPF)
382     AC_DEFINE(HAVE_FABSF)
383     AC_DEFINE(HAVE_FLOORF)
384     AC_DEFINE(HAVE_FMODF)
385     AC_DEFINE(HAVE_HYPOT)
386     AC_DEFINE(HAVE_LOG10F)
387     AC_DEFINE(HAVE_LOGF)
388     AC_DEFINE(HAVE_POWF)
389     AC_DEFINE(HAVE_SINF)
390     AC_DEFINE(HAVE_SINHF)
391     AC_DEFINE(HAVE_SQRTF)
392     AC_DEFINE(HAVE_TANF)
393     AC_DEFINE(HAVE_TANHF)
394     ;;
395   *-windiss*)
396     AC_DEFINE(HAVE_ACOSF)
397     AC_DEFINE(HAVE_ACOSL)
398     AC_DEFINE(HAVE_ASINF)
399     AC_DEFINE(HAVE_ASINL)
400     AC_DEFINE(HAVE_ATAN2F)
401     AC_DEFINE(HAVE_ATAN2L)
402     AC_DEFINE(HAVE_ATANF)
403     AC_DEFINE(HAVE_ATANL)
404     AC_DEFINE(HAVE_CEILF)
405     AC_DEFINE(HAVE_CEILL)
406     AC_DEFINE(HAVE_COPYSIGN)
407     AC_DEFINE(HAVE_COPYSIGNF)
408     AC_DEFINE(HAVE_COSF)
409     AC_DEFINE(HAVE_COSL)
410     AC_DEFINE(HAVE_COSHF)
411     AC_DEFINE(HAVE_COSHL)
412     AC_DEFINE(HAVE_EXPF)
413     AC_DEFINE(HAVE_EXPL)
414     AC_DEFINE(HAVE_FABSF)
415     AC_DEFINE(HAVE_FABSL)
416     AC_DEFINE(HAVE_FLOORF)
417     AC_DEFINE(HAVE_FLOORL)
418     AC_DEFINE(HAVE_FMODF)
419     AC_DEFINE(HAVE_FMODL)
420     AC_DEFINE(HAVE_FREXPF)
421     AC_DEFINE(HAVE_FREXPL)
422     AC_DEFINE(HAVE_LDEXPF)
423     AC_DEFINE(HAVE_LDEXPL)
424     AC_DEFINE(HAVE_LOG10F)
425     AC_DEFINE(HAVE_LOG10L)
426     AC_DEFINE(HAVE_LOGF)
427     AC_DEFINE(HAVE_MODFF)
428     AC_DEFINE(HAVE_MODFL)
429     AC_DEFINE(HAVE_POWF)
430     AC_DEFINE(HAVE_POWL)
431     AC_DEFINE(HAVE_SINF)
432     AC_DEFINE(HAVE_SINL)
433     AC_DEFINE(HAVE_SINHF)
434     AC_DEFINE(HAVE_SINHL)
435     AC_DEFINE(HAVE_SQRTF)
436     AC_DEFINE(HAVE_SQRTL)
437     AC_DEFINE(HAVE_TANF)
438     AC_DEFINE(HAVE_TANL)
439     AC_DEFINE(HAVE_TANHF)
440     AC_DEFINE(HAVE_TANHL)
441     ;;
442   *)
443     AC_MSG_ERROR([No support for this host/target combination.])
444    ;;
445 esac
446