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
47   *djgpp)
48     # GLIBCXX_CHECK_MATH_SUPPORT
49     AC_DEFINE(HAVE_LIBM)
50     AC_DEFINE(HAVE_ISINF)
51     AC_DEFINE(HAVE_ISNAN)
52     AC_DEFINE(HAVE_FINITE)
53     AC_DEFINE(HAVE_COPYSIGN)
54     AC_DEFINE(HAVE_SINCOS)
55     AC_DEFINE(HAVE_HYPOT)
56     # GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
57     AC_DEFINE(HAVE___BUILTIN_ABS)
58     AC_DEFINE(HAVE___BUILTIN_FABSF)
59     AC_DEFINE(HAVE___BUILTIN_FABS)
60     AC_DEFINE(HAVE___BUILTIN_FABSL)
61     AC_DEFINE(HAVE___BUILTIN_LABS)
62     AC_DEFINE(HAVE___BUILTIN_SQRTF)
63     AC_DEFINE(HAVE___BUILTIN_SQRT)
64     AC_DEFINE(HAVE___BUILTIN_SQRTL)
65     AC_DEFINE(HAVE___BUILTIN_SINF)
66     AC_DEFINE(HAVE___BUILTIN_SIN)
67     AC_DEFINE(HAVE___BUILTIN_SINL)
68     AC_DEFINE(HAVE___BUILTIN_COSF)
69     AC_DEFINE(HAVE___BUILTIN_COS)
70     AC_DEFINE(HAVE___BUILTIN_COSL)
71     # GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
72     # GLIBCXX_CHECK_STDLIB_SUPPORT
73     AC_DEFINE(HAVE_COPYSIGN)
74     AC_DEFINE(HAVE_COPYSIGNF)
75     ;;
76
77   *-freebsd*)
78     SECTION_FLAGS='-ffunction-sections -fdata-sections'
79     AC_SUBST(SECTION_FLAGS) 
80     GLIBCXX_CHECK_LINKER_FEATURES
81     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
82     AC_DEFINE(HAVE_SETENV)
83     AC_DEFINE(HAVE_COPYSIGN)
84     AC_DEFINE(HAVE_COPYSIGNF)
85     AC_DEFINE(HAVE_FINITEF)
86     AC_DEFINE(HAVE_FINITE)
87     AC_DEFINE(HAVE_FREXPF)
88     AC_DEFINE(HAVE_HYPOT)
89     AC_DEFINE(HAVE_HYPOTF)
90     AC_DEFINE(HAVE_ISINF)
91     AC_DEFINE(HAVE_ISNAN)
92     AC_DEFINE(HAVE_ISNANF)
93
94     AC_DEFINE(HAVE_ACOSF)
95     AC_DEFINE(HAVE_ASINF)
96     AC_DEFINE(HAVE_ATAN2F)
97     AC_DEFINE(HAVE_ATANF)
98     AC_DEFINE(HAVE_CEILF)
99     AC_DEFINE(HAVE_COPYSIGN)
100     AC_DEFINE(HAVE_COPYSIGNF)
101     AC_DEFINE(HAVE_COSF)
102     AC_DEFINE(HAVE_COSHF)
103     AC_DEFINE(HAVE_EXPF)
104     AC_DEFINE(HAVE_FABSF)
105     AC_DEFINE(HAVE_FLOORF)
106     AC_DEFINE(HAVE_FMODF)
107     AC_DEFINE(HAVE_FREXPF)
108     AC_DEFINE(HAVE_LDEXPF)
109     AC_DEFINE(HAVE_LOG10F)
110     AC_DEFINE(HAVE_LOGF)
111     AC_DEFINE(HAVE_MODFF)
112     AC_DEFINE(HAVE_POWF)
113     AC_DEFINE(HAVE_SINF)
114     AC_DEFINE(HAVE_SINHF)
115     AC_DEFINE(HAVE_SQRTF)
116     AC_DEFINE(HAVE_TANF)
117     AC_DEFINE(HAVE_TANHF)
118     if test x"long_double_math_on_this_cpu" = x"yes"; then
119       AC_DEFINE(HAVE_FINITEL)
120       AC_DEFINE(HAVE_ISINFL)
121       AC_DEFINE(HAVE_ISNANL)
122     fi
123     ;;
124   *-hpux*)
125     SECTION_FLAGS='-ffunction-sections -fdata-sections'
126     AC_SUBST(SECTION_FLAGS)
127     GLIBCXX_CHECK_LINKER_FEATURES
128     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
129     AC_DEFINE(HAVE_COPYSIGN)
130     AC_DEFINE(HAVE_COPYSIGNF)
131     AC_DEFINE(HAVE_FREXPF)
132     AC_DEFINE(HAVE_HYPOT)
133     case "$target" in
134       *-hpux10*)
135         AC_DEFINE(HAVE_FINITE)
136         AC_DEFINE(HAVE_FINITEF)
137         AC_DEFINE(HAVE_ISINF)
138         AC_DEFINE(HAVE_ISINFF)
139         AC_DEFINE(HAVE_ISNAN)
140         AC_DEFINE(HAVE_ISNANF)
141         ;;
142     esac
143     ;;
144   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
145     SECTION_FLAGS='-ffunction-sections -fdata-sections'
146     AC_SUBST(SECTION_FLAGS)
147     GLIBCXX_CHECK_COMPILER_FEATURES
148     GLIBCXX_CHECK_LINKER_FEATURES
149     GLIBCXX_CHECK_MATH_SUPPORT
150     GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
151     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
152     GLIBCXX_CHECK_STDLIB_SUPPORT
153
154     AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
155
156     # For iconv support.
157     AM_ICONV
158     ;;
159   *-mingw32*)
160     AC_DEFINE(HAVE_STRTOF)
161     AC_DEFINE(HAVE_STRTOLD)
162     GLIBCXX_CHECK_LINKER_FEATURES
163     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
164     ;;
165   *-netbsd*)
166     SECTION_FLAGS='-ffunction-sections -fdata-sections'
167     AC_SUBST(SECTION_FLAGS) 
168     GLIBCXX_CHECK_LINKER_FEATURES
169     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
170     AC_DEFINE(HAVE_COPYSIGN)
171     AC_DEFINE(HAVE_COPYSIGNF)
172     AC_DEFINE(HAVE_FINITEF)
173     AC_DEFINE(HAVE_FINITE)
174     AC_DEFINE(HAVE_FREXPF)
175     AC_DEFINE(HAVE_HYPOTF)
176     AC_DEFINE(HAVE_ISINF)
177     AC_DEFINE(HAVE_ISINFF)
178     AC_DEFINE(HAVE_ISNAN)
179     AC_DEFINE(HAVE_ISNANF)
180     if test x"long_double_math_on_this_cpu" = x"yes"; then
181       AC_DEFINE(HAVE_FINITEL)
182       AC_DEFINE(HAVE_ISINFL)
183       AC_DEFINE(HAVE_ISNANL)
184     fi
185     ;;
186   *-netware)
187     SECTION_FLAGS='-ffunction-sections -fdata-sections'
188     AC_SUBST(SECTION_FLAGS)
189     GLIBCXX_CHECK_LINKER_FEATURES
190     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
191     AC_DEFINE(HAVE_HYPOT)
192     AC_DEFINE(HAVE_ISINF)
193     AC_DEFINE(HAVE_ISNAN)
194     ;;
195   *-qnx6.1* | *-qnx6.2*)
196     SECTION_FLAGS='-ffunction-sections -fdata-sections'
197     AC_SUBST(SECTION_FLAGS) 
198     GLIBCXX_CHECK_LINKER_FEATURES
199     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
200     AC_DEFINE(HAVE_COSF)
201     AC_DEFINE(HAVE_COSL)
202     AC_DEFINE(HAVE_COSHF)
203     AC_DEFINE(HAVE_COSHL)
204     AC_DEFINE(HAVE_LOGF)
205     AC_DEFINE(HAVE_LOGL)
206     AC_DEFINE(HAVE_LOG10F)
207     AC_DEFINE(HAVE_LOG10L)
208     AC_DEFINE(HAVE_SINF)
209     AC_DEFINE(HAVE_SINL)
210     AC_DEFINE(HAVE_SINHF)
211     AC_DEFINE(HAVE_SINHL)
212     ;;
213   *-solaris*)
214     case "$target" in
215       *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
216          GLIBCXX_CHECK_LINKER_FEATURES
217          AC_DEFINE(HAVE_MBSTATE_T)
218          AC_DEFINE(HAVE_FINITE)
219          AC_DEFINE(HAVE_FPCLASS)
220          # All of the dependencies for wide character support are here, so
221          # turn it on. 
222          AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 
223
224          AC_DEFINE(HAVE_LIBM)
225         ;;
226     esac
227     case "$target" in
228       sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
229         # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
230         AC_DEFINE(HAVE___BUILTIN_ABS)
231         AC_DEFINE(HAVE___BUILTIN_LABS)
232         AC_DEFINE(HAVE___BUILTIN_FABS)
233         AC_DEFINE(HAVE___BUILTIN_FABSF)
234         AC_DEFINE(HAVE___BUILTIN_FABSL)
235         AC_DEFINE(HAVE___BUILTIN_COS)
236         AC_DEFINE(HAVE___BUILTIN_COSF)
237         AC_DEFINE(HAVE___BUILTIN_SIN)
238         AC_DEFINE(HAVE___BUILTIN_SINF)
239        ;;
240     esac
241     case "$target" in
242       *-*-solaris2.10)
243       # These two C99 functions are present only in Solaris >= 10
244       AC_DEFINE(HAVE_STRTOF)
245       AC_DEFINE(HAVE_STRTOLD)
246      ;;
247     esac
248     AC_DEFINE(HAVE_COPYSIGN)
249     AC_DEFINE(HAVE_ISNAN)
250     AC_DEFINE(HAVE_ISNANF)
251     AC_DEFINE(HAVE_MODFF)
252     AC_DEFINE(HAVE_HYPOT)
253     ;;
254   *-tpf)
255     SECTION_FLAGS='-ffunction-sections -fdata-sections'
256     AC_SUBST(SECTION_FLAGS)
257     GLIBCXX_CHECK_LINKER_FEATURES
258     GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
259     AC_DEFINE(HAVE_COPYSIGN)
260     AC_DEFINE(HAVE_COPYSIGNF)
261     AC_DEFINE(HAVE_FINITE)
262     AC_DEFINE(HAVE_FINITEF)
263     AC_DEFINE(HAVE_FREXPF)
264     AC_DEFINE(HAVE_HYPOTF)
265     AC_DEFINE(HAVE_ISINF)
266     AC_DEFINE(HAVE_ISINFF)
267     AC_DEFINE(HAVE_ISNAN)
268     AC_DEFINE(HAVE_ISNANF)
269     AC_DEFINE(HAVE_SINCOS)
270     AC_DEFINE(HAVE_SINCOSF)
271     if test x"long_double_math_on_this_cpu" = x"yes"; then
272       AC_DEFINE(HAVE_FINITEL)
273       AC_DEFINE(HAVE_HYPOTL)
274       AC_DEFINE(HAVE_ISINFL)
275       AC_DEFINE(HAVE_ISNANL)
276     fi
277     ;;
278   *-vxworks)
279     AC_DEFINE(HAVE_ACOSF)
280     AC_DEFINE(HAVE_ASINF)
281     AC_DEFINE(HAVE_ATAN2F)
282     AC_DEFINE(HAVE_ATANF)
283     AC_DEFINE(HAVE_CEILF)
284     AC_DEFINE(HAVE_COSF)
285     AC_DEFINE(HAVE_COSHF)
286     AC_DEFINE(HAVE_EXPF)
287     AC_DEFINE(HAVE_FABSF)
288     AC_DEFINE(HAVE_FLOORF)
289     AC_DEFINE(HAVE_FMODF)
290     AC_DEFINE(HAVE_HYPOT)
291     AC_DEFINE(HAVE_LOG10F)
292     AC_DEFINE(HAVE_LOGF)
293     AC_DEFINE(HAVE_POWF)
294     AC_DEFINE(HAVE_SINF)
295     AC_DEFINE(HAVE_SINHF)
296     AC_DEFINE(HAVE_SQRTF)
297     AC_DEFINE(HAVE_TANF)
298     AC_DEFINE(HAVE_TANHF)
299     ;;
300   *)
301     AC_MSG_ERROR([No support for this host/target combination.])
302    ;;
303 esac
304 ])