OSDN Git Service

2008-08-17 Paolo Carlini <paolo.carlini@oracle.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / crossconfig.m4
1 dnl
2 dnl This file contains details for non-native builds.
3 dnl
4
5 AC_DEFUN([GLIBCXX_CROSSCONFIG],[
6 # Base decisions on target environment.
7 case "${host}" in
8   arm*-*-symbianelf*)
9     # This is a freestanding configuration; there is nothing to do here.
10     ;;
11
12   mips*-sde-elf*)
13     # These definitions are for the SDE C library rather than newlib.
14     SECTION_FLAGS='-ffunction-sections -fdata-sections'
15     AC_SUBST(SECTION_FLAGS)
16     GLIBCXX_CHECK_COMPILER_FEATURES
17     GLIBCXX_CHECK_LINKER_FEATURES
18     GLIBCXX_CHECK_MATH_SUPPORT
19     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
20     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
21     GLIBCXX_CHECK_STDLIB_SUPPORT
22
23     AC_DEFINE(HAVE_LIBM)
24     AC_DEFINE(HAVE_COPYSIGN)
25     AC_DEFINE(HAVE_FINITE)
26     AC_DEFINE(HAVE_HYPOT)
27     AC_DEFINE(HAVE_ISNAN)
28     AC_DEFINE(HAVE_ISINF)
29
30     AC_DEFINE(HAVE_LDEXPF)
31     AC_DEFINE(HAVE_MODF)
32     AC_DEFINE(HAVE_SQRTF)
33     ;;
34
35   *-darwin*)
36     # Darwin versions vary, but the linker should work in a cross environment,
37     # so we just check for all the features here.
38     # Check for available headers.
39
40     # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
41     GLIBCXX_CHECK_MATH_SUPPORT
42     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
43     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
44     GLIBCXX_CHECK_STDLIB_SUPPORT
45
46     AC_DEFINE(HAVE_LC_MESSAGES)
47     ;;
48
49   *djgpp)
50     # GLIBCXX_CHECK_MATH_SUPPORT
51     AC_DEFINE(HAVE_LIBM)
52     AC_DEFINE(HAVE_ISINF)
53     AC_DEFINE(HAVE_ISNAN)
54     AC_DEFINE(HAVE_FINITE)
55     AC_DEFINE(HAVE_COPYSIGN)
56     AC_DEFINE(HAVE_SINCOS)
57     AC_DEFINE(HAVE_HYPOT)
58     # GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
59     AC_DEFINE(HAVE___BUILTIN_ABS)
60     AC_DEFINE(HAVE___BUILTIN_FABSF)
61     AC_DEFINE(HAVE___BUILTIN_FABS)
62     AC_DEFINE(HAVE___BUILTIN_FABSL)
63     AC_DEFINE(HAVE___BUILTIN_LABS)
64     AC_DEFINE(HAVE___BUILTIN_SQRTF)
65     AC_DEFINE(HAVE___BUILTIN_SQRT)
66     AC_DEFINE(HAVE___BUILTIN_SQRTL)
67     AC_DEFINE(HAVE___BUILTIN_SINF)
68     AC_DEFINE(HAVE___BUILTIN_SIN)
69     AC_DEFINE(HAVE___BUILTIN_SINL)
70     AC_DEFINE(HAVE___BUILTIN_COSF)
71     AC_DEFINE(HAVE___BUILTIN_COS)
72     AC_DEFINE(HAVE___BUILTIN_COSL)
73     # GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
74     # GLIBCXX_CHECK_STDLIB_SUPPORT
75     AC_DEFINE(HAVE_COPYSIGN)
76     AC_DEFINE(HAVE_COPYSIGNF)
77     ;;
78
79   *-freebsd*)
80     SECTION_FLAGS='-ffunction-sections -fdata-sections'
81     AC_SUBST(SECTION_FLAGS) 
82     GLIBCXX_CHECK_LINKER_FEATURES
83     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
84     AC_DEFINE(HAVE_LC_MESSAGES)
85     AC_DEFINE(HAVE_SETENV)
86     AC_DEFINE(HAVE_COPYSIGN)
87     AC_DEFINE(HAVE_COPYSIGNF)
88     AC_DEFINE(HAVE_FINITEF)
89     AC_DEFINE(HAVE_FINITE)
90     AC_DEFINE(HAVE_FREXPF)
91     AC_DEFINE(HAVE_HYPOT)
92     AC_DEFINE(HAVE_HYPOTF)
93     AC_DEFINE(HAVE_ISINF)
94     AC_DEFINE(HAVE_ISNAN)
95     AC_DEFINE(HAVE_ISNANF)
96
97     AC_DEFINE(HAVE_ACOSF)
98     AC_DEFINE(HAVE_ASINF)
99     AC_DEFINE(HAVE_ATAN2F)
100     AC_DEFINE(HAVE_ATANF)
101     AC_DEFINE(HAVE_CEILF)
102     AC_DEFINE(HAVE_COPYSIGN)
103     AC_DEFINE(HAVE_COPYSIGNF)
104     AC_DEFINE(HAVE_COSF)
105     AC_DEFINE(HAVE_COSHF)
106     AC_DEFINE(HAVE_EXPF)
107     AC_DEFINE(HAVE_FABSF)
108     AC_DEFINE(HAVE_FLOORF)
109     AC_DEFINE(HAVE_FMODF)
110     AC_DEFINE(HAVE_FREXPF)
111     AC_DEFINE(HAVE_LDEXPF)
112     AC_DEFINE(HAVE_LOG10F)
113     AC_DEFINE(HAVE_LOGF)
114     AC_DEFINE(HAVE_MODFF)
115     AC_DEFINE(HAVE_POWF)
116     AC_DEFINE(HAVE_SINF)
117     AC_DEFINE(HAVE_SINHF)
118     AC_DEFINE(HAVE_SQRTF)
119     AC_DEFINE(HAVE_TANF)
120     AC_DEFINE(HAVE_TANHF)
121     if test x"long_double_math_on_this_cpu" = x"yes"; then
122       AC_DEFINE(HAVE_FINITEL)
123       AC_DEFINE(HAVE_ISINFL)
124       AC_DEFINE(HAVE_ISNANL)
125     fi
126     ;;
127   *-hpux*)
128     SECTION_FLAGS='-ffunction-sections -fdata-sections'
129     AC_SUBST(SECTION_FLAGS)
130     GLIBCXX_CHECK_LINKER_FEATURES
131     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
132     AC_DEFINE(HAVE_COPYSIGN)
133     AC_DEFINE(HAVE_COPYSIGNF)
134     AC_DEFINE(HAVE_FREXPF)
135     AC_DEFINE(HAVE_HYPOT)
136     case "$target" in
137       *-hpux10*)
138         AC_DEFINE(HAVE_FINITE)
139         AC_DEFINE(HAVE_FINITEF)
140         AC_DEFINE(HAVE_ISINF)
141         AC_DEFINE(HAVE_ISINFF)
142         AC_DEFINE(HAVE_ISNAN)
143         AC_DEFINE(HAVE_ISNANF)
144         ;;
145     esac
146     ;;
147   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
148     SECTION_FLAGS='-ffunction-sections -fdata-sections'
149     AC_SUBST(SECTION_FLAGS)
150     GLIBCXX_CHECK_COMPILER_FEATURES
151     GLIBCXX_CHECK_LINKER_FEATURES
152     GLIBCXX_CHECK_MATH_SUPPORT
153     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
154     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
155     GLIBCXX_CHECK_STDLIB_SUPPORT
156
157     AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
158
159     AC_LC_MESSAGES
160
161     # For iconv support.
162     AM_ICONV
163     ;;
164   *-mingw32*)
165     AC_DEFINE(HAVE_STRTOF)
166     AC_DEFINE(HAVE_STRTOLD)
167     GLIBCXX_CHECK_LINKER_FEATURES
168     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
169     ;;
170   *-netbsd*)
171     SECTION_FLAGS='-ffunction-sections -fdata-sections'
172     AC_SUBST(SECTION_FLAGS) 
173     GLIBCXX_CHECK_LINKER_FEATURES
174     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
175     AC_DEFINE(HAVE_COPYSIGN)
176     AC_DEFINE(HAVE_COPYSIGNF)
177     AC_DEFINE(HAVE_FINITEF)
178     AC_DEFINE(HAVE_FINITE)
179     AC_DEFINE(HAVE_FREXPF)
180     AC_DEFINE(HAVE_HYPOTF)
181     AC_DEFINE(HAVE_ISINF)
182     AC_DEFINE(HAVE_ISINFF)
183     AC_DEFINE(HAVE_ISNAN)
184     AC_DEFINE(HAVE_ISNANF)
185     if test x"long_double_math_on_this_cpu" = x"yes"; then
186       AC_DEFINE(HAVE_FINITEL)
187       AC_DEFINE(HAVE_ISINFL)
188       AC_DEFINE(HAVE_ISNANL)
189     fi
190     ;;
191   *-netware)
192     SECTION_FLAGS='-ffunction-sections -fdata-sections'
193     AC_SUBST(SECTION_FLAGS)
194     GLIBCXX_CHECK_LINKER_FEATURES
195     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
196     AC_DEFINE(HAVE_HYPOT)
197     AC_DEFINE(HAVE_ISINF)
198     AC_DEFINE(HAVE_ISNAN)
199     ;;
200   *-qnx6.1* | *-qnx6.2*)
201     SECTION_FLAGS='-ffunction-sections -fdata-sections'
202     AC_SUBST(SECTION_FLAGS) 
203     GLIBCXX_CHECK_LINKER_FEATURES
204     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
205     AC_DEFINE(HAVE_COSF)
206     AC_DEFINE(HAVE_COSL)
207     AC_DEFINE(HAVE_COSHF)
208     AC_DEFINE(HAVE_COSHL)
209     AC_DEFINE(HAVE_LOGF)
210     AC_DEFINE(HAVE_LOGL)
211     AC_DEFINE(HAVE_LOG10F)
212     AC_DEFINE(HAVE_LOG10L)
213     AC_DEFINE(HAVE_SINF)
214     AC_DEFINE(HAVE_SINL)
215     AC_DEFINE(HAVE_SINHF)
216     AC_DEFINE(HAVE_SINHL)
217     ;;
218   *-solaris*)
219     case "$target" in
220       *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
221          GLIBCXX_CHECK_LINKER_FEATURES
222          AC_DEFINE(HAVE_MBSTATE_T)
223          AC_DEFINE(HAVE_LC_MESSAGES)
224          AC_DEFINE(HAVE_FINITE)
225          AC_DEFINE(HAVE_FPCLASS)
226          # All of the dependencies for wide character support are here, so
227          # turn it on. 
228          AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
229
230          AC_DEFINE(HAVE_LIBM)
231         ;;
232     esac
233     case "$target" in
234       sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
235         # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
236         AC_DEFINE(HAVE___BUILTIN_ABS)
237         AC_DEFINE(HAVE___BUILTIN_LABS)
238         AC_DEFINE(HAVE___BUILTIN_FABS)
239         AC_DEFINE(HAVE___BUILTIN_FABSF)
240         AC_DEFINE(HAVE___BUILTIN_FABSL)
241         AC_DEFINE(HAVE___BUILTIN_COS)
242         AC_DEFINE(HAVE___BUILTIN_COSF)
243         AC_DEFINE(HAVE___BUILTIN_SIN)
244         AC_DEFINE(HAVE___BUILTIN_SINF)
245        ;;
246     esac
247     case "$target" in
248       *-*-solaris2.10)
249       # These two C99 functions are present only in Solaris >= 10
250       AC_DEFINE(HAVE_STRTOF)
251       AC_DEFINE(HAVE_STRTOLD)
252      ;;
253     esac
254     AC_DEFINE(HAVE_COPYSIGN)
255     AC_DEFINE(HAVE_ISNAN)
256     AC_DEFINE(HAVE_ISNANF)
257     AC_DEFINE(HAVE_MODFF)
258     AC_DEFINE(HAVE_HYPOT)
259     ;;
260   *-tpf)
261     SECTION_FLAGS='-ffunction-sections -fdata-sections'
262     AC_SUBST(SECTION_FLAGS)
263     GLIBCXX_CHECK_LINKER_FEATURES
264     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
265     AC_DEFINE(HAVE_COPYSIGN)
266     AC_DEFINE(HAVE_COPYSIGNF)
267     AC_DEFINE(HAVE_FINITE)
268     AC_DEFINE(HAVE_FINITEF)
269     AC_DEFINE(HAVE_FREXPF)
270     AC_DEFINE(HAVE_HYPOTF)
271     AC_DEFINE(HAVE_ISINF)
272     AC_DEFINE(HAVE_ISINFF)
273     AC_DEFINE(HAVE_ISNAN)
274     AC_DEFINE(HAVE_ISNANF)
275     AC_DEFINE(HAVE_SINCOS)
276     AC_DEFINE(HAVE_SINCOSF)
277     if test x"long_double_math_on_this_cpu" = x"yes"; then
278       AC_DEFINE(HAVE_FINITEL)
279       AC_DEFINE(HAVE_HYPOTL)
280       AC_DEFINE(HAVE_ISINFL)
281       AC_DEFINE(HAVE_ISNANL)
282     fi
283     ;;
284   *-vxworks)
285     AC_DEFINE(HAVE_ACOSF)
286     AC_DEFINE(HAVE_ASINF)
287     AC_DEFINE(HAVE_ATAN2F)
288     AC_DEFINE(HAVE_ATANF)
289     AC_DEFINE(HAVE_CEILF)
290     AC_DEFINE(HAVE_COSF)
291     AC_DEFINE(HAVE_COSHF)
292     AC_DEFINE(HAVE_EXPF)
293     AC_DEFINE(HAVE_FABSF)
294     AC_DEFINE(HAVE_FLOORF)
295     AC_DEFINE(HAVE_FMODF)
296     AC_DEFINE(HAVE_HYPOT)
297     AC_DEFINE(HAVE_LOG10F)
298     AC_DEFINE(HAVE_LOGF)
299     AC_DEFINE(HAVE_POWF)
300     AC_DEFINE(HAVE_SINF)
301     AC_DEFINE(HAVE_SINHF)
302     AC_DEFINE(HAVE_SQRTF)
303     AC_DEFINE(HAVE_TANF)
304     AC_DEFINE(HAVE_TANHF)
305     ;;
306   *)
307     AC_MSG_ERROR([No support for this host/target combination.])
308    ;;
309 esac
310 ])