]>
Commit | Line | Data |
---|---|---|
117c9b1c JM |
1 | dnl This file is included into all any other acinclude file that needs |
2 | dnl to use these macros. | |
3 | ||
4 | dnl This is copied from autoconf 2.12, but does calls our own AC_PROG_CC_WORKS, | |
5 | dnl and doesn't call AC_PROG_CXX_GNU, cause we test for that in AC_PROG_CC_WORKS. | |
6 | dnl We are probably using a cross compiler, which will not be able to fully | |
7 | dnl link an executable. This should really be fixed in autoconf itself. | |
8 | dnl Find a working G++ cross compiler. This only works for the GNU C++ compiler. | |
8076c0b6 | 9 | AC_DEFUN([CYG_AC_PROG_CXX_CROSS], |
117c9b1c JM |
10 | [AC_BEFORE([$0], [AC_PROG_CXXCPP]) |
11 | AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc) | |
12 | ||
13 | CYG_AC_PROG_GXX_WORKS | |
14 | ||
15 | if test $ac_cv_prog_gxx = yes; then | |
16 | GXX=yes | |
17 | dnl Check whether -g works, even if CXXFLAGS is set, in case the package | |
18 | dnl plays around with CXXFLAGS (such as to build both debugging and | |
19 | dnl normal versions of a library), tasteless as that idea is. | |
20 | ac_test_CXXFLAGS="${CXXFLAGS+set}" | |
21 | ac_save_CXXFLAGS="$CXXFLAGS" | |
22 | CXXFLAGS= | |
23 | AC_PROG_CXX_G | |
24 | if test "$ac_test_CXXFLAGS" = set; then | |
25 | CXXFLAGS="$ac_save_CXXFLAGS" | |
26 | elif test $ac_cv_prog_cxx_g = yes; then | |
27 | CXXFLAGS="-g -O2" | |
28 | else | |
29 | CXXFLAGS="-O2" | |
30 | fi | |
31 | else | |
32 | GXX= | |
33 | test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" | |
34 | fi | |
35 | ]) | |
36 | ||
37 | dnl See if the G++ compiler we found works. | |
8076c0b6 | 38 | AC_DEFUN([CYG_AC_PROG_GXX_WORKS], |
117c9b1c JM |
39 | [AC_MSG_CHECKING([whether the G++ compiler ($CXX $CXXFLAGS $LDFLAGS) actually works]) |
40 | AC_LANG_SAVE | |
41 | AC_LANG_CPLUSPLUS | |
42 | dnl Try a test case. We only compile, because it's close to impossible | |
43 | dnl to get a correct fully linked executable with a cross compiler. For | |
44 | dnl most cross compilers, this test is bogus. For G++, we can use various | |
45 | dnl other compile line options to get a decent idea that the cross compiler | |
46 | dnl actually does work, even though we can't produce an executable without | |
47 | dnl more info about the target it's being compiled for. This only works | |
48 | dnl for the GNU C++ compiler. | |
49 | ||
50 | dnl Transform the name of the compiler to it's cross variant, unless | |
51 | dnl CXX is set. This is also what CXX gets set to in the generated | |
52 | dnl Makefile. | |
53 | if test x"${CXX}" = xc++ ; then | |
54 | CXX=`echo gcc | sed -e "${program_transform_name}"` | |
55 | fi | |
56 | ||
57 | dnl Get G++'s full path to libgcc.a | |
58 | libgccpath=`${CXX} --print-libgcc` | |
59 | ||
60 | dnl If we don't have a path with libgcc.a on the end, this isn't G++. | |
61 | if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then | |
62 | ac_cv_prog_gxx=yes | |
63 | else | |
64 | ac_cv_prog_gxx=no | |
65 | fi | |
66 | ||
67 | dnl If we are using G++, look for the files that need to exist if this | |
68 | dnl compiler works. | |
69 | if test x"${ac_cv_prog_gxx}" = xyes ; then | |
70 | gccfiles=`echo $libgccpath | sed -e 's:/libgcc.a::'` | |
71 | if test -f ${gccfiles}/specs -a -f ${gccfiles}/cpp -a -f ${gccfiles}/cc1plus; then | |
72 | gccfiles=yes | |
73 | else | |
74 | gccfiles=no | |
75 | fi | |
76 | gcclibs=`echo $libgccpath | sed -e 's:lib/gcc-lib/::' -e 's:/libgcc.a::' -e 's,\(.*\)/.*,\1,g'`/lib | |
77 | if test -d ${gcclibs}/ldscripts -a -f ${gcclibs}/libc.a -a -f ${gcclibs}/libstdc++.a ; then | |
78 | gcclibs=yes | |
79 | else | |
80 | gcclibs=no | |
81 | fi | |
82 | fi | |
83 | ||
84 | dnl If everything is OK, then we can safely assume the compiler works. | |
85 | if test x"${gccfiles}" = xno -o x"${gcclibs}" = xno; then | |
86 | ac_cv_prog_cxx_works=no | |
87 | AC_MSG_ERROR(${CXX} is a non-working cross compiler) | |
88 | else | |
89 | ac_cv_prog_cxx_works=yes | |
90 | fi | |
91 | ||
92 | AC_LANG_RESTORE | |
93 | AC_MSG_RESULT($ac_cv_prog_cxx_works) | |
94 | if test x"$ac_cv_prog_cxx_works" = xno; then | |
95 | AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.]) | |
96 | fi | |
97 | AC_MSG_CHECKING([whether the G++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler]) | |
98 | AC_MSG_RESULT($ac_cv_prog_cxx_cross) | |
99 | cross_compiling=$ac_cv_prog_cxx_cross | |
100 | AC_SUBST(CXX) | |
101 | ]) | |
102 | ||
103 | dnl ==================================================================== | |
104 | dnl Find a working GCC cross compiler. This only works for the GNU gcc compiler. | |
105 | dnl This is based on the macros above for G++. | |
8076c0b6 | 106 | AC_DEFUN([CYG_AC_PROG_CC_CROSS], |
117c9b1c JM |
107 | [AC_BEFORE([$0], [AC_PROG_CCPP]) |
108 | AC_CHECK_PROGS(CC, cc, gcc) | |
109 | ||
110 | CYG_AC_PROG_GCC_WORKS | |
111 | ||
112 | if test $ac_cv_prog_gcc = yes; then | |
113 | GCC=yes | |
114 | dnl Check whether -g works, even if CFLAGS is set, in case the package | |
115 | dnl plays around with CFLAGS (such as to build both debugging and | |
116 | dnl normal versions of a library), tasteless as that idea is. | |
117 | ac_test_CFLAGS="${CFLAGS+set}" | |
118 | ac_save_CFLAGS="$CFLAGS" | |
119 | CFLAGS= | |
120 | AC_PROG_CC_G | |
121 | if test "$ac_test_CFLAGS" = set; then | |
122 | CFLAGS="$ac_save_CFLAGS" | |
123 | elif test $ac_cv_prog_cc_g = yes; then | |
124 | CFLAGS="-g -O2" | |
125 | else | |
126 | CFLAGS="-O2" | |
127 | fi | |
128 | else | |
129 | GXX= | |
130 | test "${CFLAGS+set}" = set || CFLAGS="-g" | |
131 | fi | |
132 | ]) | |
133 | ||
134 | dnl See if the GCC compiler we found works. | |
8076c0b6 | 135 | AC_DEFUN([CYG_AC_PROG_GCC_WORKS], |
117c9b1c JM |
136 | [AC_MSG_CHECKING([whether the Gcc compiler ($CC $CFLAGS $LDFLAGS) actually works]) |
137 | AC_LANG_SAVE | |
138 | AC_LANG_C | |
139 | dnl Try a test case. We only compile, because it's close to impossible | |
140 | dnl to get a correct fully linked executable with a cross | |
141 | dnl compiler. For most cross compilers, this test is bogus. For G++, | |
142 | dnl we can use various other compile line options to get a decent idea | |
143 | dnl that the cross compiler actually does work, even though we can't | |
144 | dnl produce an executable without more info about the target it's | |
145 | dnl being compiled for. This only works for the GNU C++ compiler. | |
146 | ||
147 | dnl Transform the name of the compiler to it's cross variant, unless | |
148 | dnl CXX is set. This is also what CC gets set to in the generated Makefile. | |
149 | if test x"${CC}" = xcc ; then | |
150 | CC=`echo gcc | sed -e "${program_transform_name}"` | |
151 | fi | |
152 | ||
153 | dnl Get Gcc's full path to libgcc.a | |
154 | libgccpath=`${CC} --print-libgcc` | |
155 | ||
156 | dnl If we don't have a path with libgcc.a on the end, this isn't G++. | |
157 | if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then | |
158 | ac_cv_prog_gcc=yes | |
159 | else | |
160 | ac_cv_prog_gcc=no | |
161 | fi | |
162 | ||
163 | dnl If we are using Gcc, look for the files that need to exist if this | |
164 | dnl compiler works. | |
165 | if test x"${ac_cv_prog_gcc}" = xyes ; then | |
166 | gccfiles=`echo $libgccpath | sed -e 's:/libgcc.a::'` | |
167 | if test -f ${gccfiles}/specs -a -f ${gccfiles}/cpp -a -f ${gccfiles}/cc1plus; then | |
168 | gccfiles=yes | |
169 | else | |
170 | gccfiles=no | |
171 | fi | |
172 | gcclibs=`echo $libgccpath | sed -e 's:lib/gcc-lib/::' -e 's:/libgcc.a::' -e 's,\(.*\)/.*,\1,g'`/lib | |
173 | if test -d ${gcclibs}/ldscripts -a -f ${gcclibs}/libc.a -a -f ${gcclibs}/libstdc++.a ; then | |
174 | gcclibs=yes | |
175 | else | |
176 | gcclibs=no | |
177 | fi | |
178 | fi | |
179 | ||
180 | dnl If everything is OK, then we can safely assume the compiler works. | |
181 | if test x"${gccfiles}" = xno -o x"${gcclibs}" = xno; then | |
182 | ac_cv_prog_cc_works=no | |
183 | AC_MSG_ERROR(${CC} is a non-working cross compiler) | |
184 | else | |
185 | ac_cv_prog_cc_works=yes | |
186 | fi | |
187 | ||
188 | AC_LANG_RESTORE | |
189 | AC_MSG_RESULT($ac_cv_prog_cc_works) | |
190 | if test x"$ac_cv_prog_cc_works" = xno; then | |
191 | AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.]) | |
192 | fi | |
193 | AC_MSG_CHECKING([whether the Gcc compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler]) | |
194 | AC_MSG_RESULT($ac_cv_prog_cc_cross) | |
195 | cross_compiling=$ac_cv_prog_cc_cross | |
196 | AC_SUBST(CC) | |
197 | ]) | |
198 | ||
199 | dnl ==================================================================== | |
200 | dnl Find the BFD library in the build tree. This is used to access and | |
201 | dnl manipulate object or executable files. | |
8076c0b6 | 202 | AC_DEFUN([CYG_AC_PATH_BFD], [ |
117c9b1c JM |
203 | AC_MSG_CHECKING(for the bfd header in the build tree) |
204 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
205 | dnl Look for the header file | |
206 | AC_CACHE_VAL(ac_cv_c_bfdh,[ | |
207 | for i in $dirlist; do | |
208 | if test -f "$i/bfd/bfd.h" ; then | |
1e6347d8 | 209 | ac_cv_c_bfdh=`(cd $i/bfd; ${PWDCMD-pwd})` |
117c9b1c JM |
210 | break |
211 | fi | |
212 | done | |
213 | ]) | |
214 | if test x"${ac_cv_c_bfdh}" != x; then | |
215 | BFDHDIR="-I${ac_cv_c_bfdh}" | |
216 | AC_MSG_RESULT(${ac_cv_c_bfdh}) | |
217 | else | |
218 | AC_MSG_RESULT(none) | |
219 | fi | |
220 | AC_SUBST(BFDHDIR) | |
221 | ||
222 | dnl Look for the library | |
223 | AC_MSG_CHECKING(for the bfd library in the build tree) | |
224 | AC_CACHE_VAL(ac_cv_c_bfdlib,[ | |
225 | for i in $dirlist; do | |
226 | if test -f "$i/bfd/Makefile" ; then | |
1e6347d8 | 227 | ac_cv_c_bfdlib=`(cd $i/bfd; ${PWDCMD-pwd})` |
117c9b1c JM |
228 | fi |
229 | done | |
230 | ]) | |
231 | dnl We list two directories cause bfd now uses libtool | |
232 | if test x"${ac_cv_c_bfdlib}" != x; then | |
233 | BFDLIB="-L${ac_cv_c_bfdlib} -L${ac_cv_c_bfdlib}/.libs" | |
234 | AC_MSG_RESULT(${ac_cv_c_bfdlib}) | |
235 | else | |
236 | AC_MSG_RESULT(none) | |
237 | fi | |
238 | AC_SUBST(BFDLIB) | |
239 | ]) | |
240 | ||
241 | dnl ==================================================================== | |
242 | dnl Find the libiberty library. This defines many commonly used C | |
243 | dnl functions that exists in various states based on the underlying OS. | |
8076c0b6 | 244 | AC_DEFUN([CYG_AC_PATH_LIBERTY], [ |
117c9b1c JM |
245 | AC_MSG_CHECKING(for the liberty library in the build tree) |
246 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
247 | AC_CACHE_VAL(ac_cv_c_liberty,[ | |
248 | for i in $dirlist; do | |
249 | if test -f "$i/libiberty/Makefile" ; then | |
1e6347d8 | 250 | ac_cv_c_liberty=`(cd $i/libiberty; ${PWDCMD-pwd})` |
117c9b1c JM |
251 | fi |
252 | done | |
253 | ]) | |
254 | if test x"${ac_cv_c_liberty}" != x; then | |
255 | LIBERTY="-L${ac_cv_c_liberty}" | |
256 | AC_MSG_RESULT(${ac_cv_c_liberty}) | |
257 | else | |
258 | AC_MSG_RESULT(none) | |
259 | fi | |
260 | AC_SUBST(LIBERTY) | |
261 | ]) | |
262 | ||
263 | dnl ==================================================================== | |
264 | dnl Find the opcodes library. This is used to do dissasemblies. | |
8076c0b6 | 265 | AC_DEFUN([CYG_AC_PATH_OPCODES], [ |
117c9b1c JM |
266 | AC_MSG_CHECKING(for the opcodes library in the build tree) |
267 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
268 | AC_CACHE_VAL(ac_cv_c_opc,[ | |
269 | for i in $dirlist; do | |
270 | if test -f "$i/opcodes/Makefile" ; then | |
1e6347d8 | 271 | ac_cv_c_opc=`(cd $i/opcodes; ${PWDCMD-pwd})` |
117c9b1c JM |
272 | fi |
273 | done | |
274 | ]) | |
275 | if test x"${ac_cv_c_opc}" != x; then | |
276 | OPCODESLIB="-L${ac_cv_c_opc}" | |
277 | AC_MSG_RESULT(${ac_cv_c_opc}) | |
278 | else | |
279 | AC_MSG_RESULT(none) | |
280 | fi | |
281 | AC_SUBST(OPCODESLIB) | |
282 | ]) | |
283 | ||
284 | dnl ==================================================================== | |
285 | dnl Look for the DejaGnu header file in the source tree. This file | |
286 | dnl defines the functions used to testing support. | |
8076c0b6 | 287 | AC_DEFUN([CYG_AC_PATH_DEJAGNU], [ |
117c9b1c JM |
288 | AC_MSG_CHECKING(for the testing support files in the source tree) |
289 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
290 | AC_CACHE_VAL(ac_cv_c_dejagnu,[ | |
291 | for i in $dirlist; do | |
292 | if test -f "$srcdir/$i/ecc/ecc/infra/testlib/current/include/dejagnu.h" ; then | |
1e6347d8 | 293 | ac_cv_c_dejagnu=`(cd $srcdir/$i/ecc/ecc/infra/testlib/current/include; ${PWDCMD-pwd})` |
117c9b1c JM |
294 | fi |
295 | done | |
296 | ]) | |
297 | if test x"${ac_cv_c_dejagnu}" != x; then | |
298 | DEJAGNUHDIR="-I${ac_cv_c_dejagnu}" | |
299 | AC_MSG_RESULT(${ac_cv_c_dejagnu}) | |
300 | else | |
301 | AC_MSG_RESULT(none) | |
302 | fi | |
303 | AC_CACHE_VAL(ac_cv_c_dejagnulib,[ | |
304 | for i in $dirlist; do | |
305 | if test -f "$srcdir/$i/infra/testlib/current/lib/hostutil.exp" ; then | |
1e6347d8 | 306 | ac_cv_c_dejagnulib=`(cd $srcdir/$i/infra/testlib/current/lib; ${PWDCMD-pwd})` |
117c9b1c JM |
307 | fi |
308 | done | |
309 | ]) | |
310 | if test x"${ac_cv_c_dejagnulib}" != x; then | |
311 | DEJAGNULIB="${ac_cv_c_dejagnulib}" | |
312 | else | |
313 | DEJAGNULIB="" | |
314 | fi | |
315 | AC_MSG_CHECKING(for runtest in the source tree) | |
316 | AC_CACHE_VAL(ac_cv_c_runtest,[ | |
317 | for i in $dirlist; do | |
318 | if test -f "$srcdir/$i/dejagnu/runtest" ; then | |
1e6347d8 | 319 | ac_cv_c_runtest=`(cd $srcdir/$i/dejagnu; ${PWDCMD-pwd})` |
117c9b1c JM |
320 | fi |
321 | done | |
322 | ]) | |
323 | if test x"${ac_cv_c_runtest}" != x; then | |
324 | RUNTESTDIR="${ac_cv_c_runtest}" | |
325 | AC_MSG_RESULT(${ac_cv_c_runtest}) | |
326 | else | |
327 | RUNTESTDIR="" | |
328 | AC_MSG_RESULT(none) | |
329 | fi | |
330 | AC_SUBST(RUNTESTDIR) | |
331 | AC_SUBST(DEJAGNULIB) | |
332 | AC_SUBST(DEJAGNUHDIR) | |
333 | ]) | |
334 | ||
335 | dnl ==================================================================== | |
336 | dnl Find the libintl library in the build tree. This is for | |
337 | dnl internationalization support. | |
8076c0b6 | 338 | AC_DEFUN([CYG_AC_PATH_INTL], [ |
117c9b1c JM |
339 | AC_MSG_CHECKING(for the intl header in the build tree) |
340 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
341 | dnl Look for the header file | |
342 | AC_CACHE_VAL(ac_cv_c_intlh,[ | |
343 | for i in $dirlist; do | |
344 | if test -f "$i/intl/libintl.h" ; then | |
1e6347d8 | 345 | ac_cv_c_intlh=`(cd $i/intl; ${PWDCMD-pwd})` |
117c9b1c JM |
346 | break |
347 | fi | |
348 | done | |
349 | ]) | |
350 | if test x"${ac_cv_c_intlh}" != x; then | |
351 | INTLHDIR="-I${ac_cv_c_intlh}" | |
352 | AC_MSG_RESULT(${ac_cv_c_intlh}) | |
353 | else | |
354 | AC_MSG_RESULT(none) | |
355 | fi | |
356 | AC_SUBST(INTLHDIR) | |
357 | ||
358 | dnl Look for the library | |
359 | AC_MSG_CHECKING(for the libintl library in the build tree) | |
360 | AC_CACHE_VAL(ac_cv_c_intllib,[ | |
361 | for i in $dirlist; do | |
362 | if test -f "$i/intl/Makefile" ; then | |
1e6347d8 | 363 | ac_cv_c_intllib=`(cd $i/intl; ${PWDCMD-pwd})` |
117c9b1c JM |
364 | fi |
365 | done | |
366 | ]) | |
367 | if test x"${ac_cv_c_intllib}" != x; then | |
368 | INTLLIB="-L${ac_cv_c_intllib} -lintl" | |
369 | AC_MSG_RESULT(${ac_cv_c_intllib}) | |
370 | else | |
371 | AC_MSG_RESULT(none) | |
372 | fi | |
373 | AC_SUBST(INTLLIB) | |
374 | ]) | |
375 | ||
117c9b1c JM |
376 | dnl ==================================================================== |
377 | dnl Find the libiberty library. | |
8076c0b6 | 378 | AC_DEFUN([CYG_AC_PATH_LIBIBERTY], [ |
117c9b1c JM |
379 | AC_MSG_CHECKING(for the libiberty library in the build tree) |
380 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
381 | AC_CACHE_VAL(ac_cv_c_libib,[ | |
382 | for i in $dirlist; do | |
383 | if test -f "$i/libiberty/Makefile" ; then | |
1e6347d8 | 384 | ac_cv_c_libib=`(cd $i/libiberty/; ${PWDCMD-pwd})` |
117c9b1c JM |
385 | fi |
386 | done | |
387 | ]) | |
388 | if test x"${ac_cv_c_libib}" != x; then | |
389 | LIBIBERTY="-L${ac_cv_c_libib}" | |
390 | AC_MSG_RESULT(${ac_cv_c_libib}) | |
391 | else | |
392 | AC_MSG_RESULT(none) | |
393 | fi | |
394 | AC_SUBST(LIBIBERTY) | |
395 | ]) | |
396 | ||
117c9b1c JM |
397 | dnl ==================================================================== |
398 | dnl Find all the ILU headers and libraries | |
8076c0b6 | 399 | AC_DEFUN([CYG_AC_PATH_ILU], [ |
117c9b1c JM |
400 | AC_MSG_CHECKING(for ILU kernel headers in the source tree) |
401 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
402 | AC_CACHE_VAL(ac_cv_c_iluh,[ | |
403 | for i in $dirlist; do | |
404 | if test -f "${srcdir}/$i/ilu/runtime/kernel/method.h" ; then | |
1e6347d8 | 405 | ac_cv_c_iluh=`(cd ${srcdir}/$i/ilu/runtime/kernel; ${PWDCMD-pwd})` |
117c9b1c JM |
406 | fi |
407 | done | |
408 | ]) | |
409 | if test x"${ac_cv_c_iluh}" != x; then | |
410 | ILUHDIR="-I${ac_cv_c_iluh}" | |
411 | AC_MSG_RESULT(${ac_cv_c_iluh}) | |
412 | else | |
413 | AC_MSG_RESULT(none) | |
414 | fi | |
415 | ||
416 | AC_MSG_CHECKING(for ILU kernel headers in the build tree) | |
417 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
418 | AC_CACHE_VAL(ac_cv_c_iluh5,[ | |
419 | for i in $dirlist; do | |
420 | if test -f "$i/ilu/runtime/kernel/iluconf.h" ; then | |
1e6347d8 | 421 | ac_cv_c_iluh5=`(cd $i/ilu/runtime/kernel; ${PWDCMD-pwd})` |
117c9b1c JM |
422 | fi |
423 | done | |
424 | ]) | |
425 | if test x"${ac_cv_c_iluh5}" != x; then | |
426 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh5}" | |
427 | AC_MSG_RESULT(${ac_cv_c_iluh5}) | |
428 | else | |
429 | AC_MSG_RESULT(none) | |
430 | fi | |
431 | ||
432 | AC_MSG_CHECKING(for ILU C++ headers in the source tree) | |
433 | AC_CACHE_VAL(ac_cv_c_iluh2,[ | |
434 | for i in $dirlist; do | |
435 | if test -f "${srcdir}/$i/ilu/stubbers/cpp/resource.h" ; then | |
1e6347d8 | 436 | ac_cv_c_iluh2=`(cd ${srcdir}/$i/ilu/stubbers/cpp; ${PWDCMD-pwd})` |
117c9b1c JM |
437 | fi |
438 | done | |
439 | ]) | |
440 | if test x"${ac_cv_c_iluh2}" != x; then | |
441 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh2}" | |
442 | AC_MSG_RESULT(${ac_cv_c_iluh2}) | |
443 | else | |
444 | AC_MSG_RESULT(none) | |
445 | fi | |
446 | ||
447 | AC_MSG_CHECKING(for ILU C headers) | |
448 | AC_CACHE_VAL(ac_cv_c_iluh3,[ | |
449 | for i in $dirlist; do | |
450 | if test -f "${srcdir}/$i/ilu/stubbers/c/resource.h" ; then | |
1e6347d8 | 451 | ac_cv_c_iluh3=`(cd ${srcdir}/$i/ilu/stubbers/c ; ${PWDCMD-pwd})` |
117c9b1c JM |
452 | fi |
453 | done | |
454 | ]) | |
455 | if test x"${ac_cv_c_iluh3}" != x; then | |
456 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh3}" | |
457 | AC_MSG_RESULT(${ac_cv_c_iluh3}) | |
458 | else | |
459 | AC_MSG_RESULT(none) | |
460 | fi | |
461 | ||
462 | AC_MSG_CHECKING(for ILU C runtime headers) | |
463 | AC_CACHE_VAL(ac_cv_c_iluh4,[ | |
464 | for i in $dirlist; do | |
465 | if test -f "${srcdir}/$i/ilu/runtime/c/ilucstub.h" ; then | |
1e6347d8 | 466 | ac_cv_c_iluh4=`(cd ${srcdir}/$i/ilu/runtime/c ; ${PWDCMD-pwd})` |
117c9b1c JM |
467 | fi |
468 | done | |
469 | ]) | |
470 | if test x"${ac_cv_c_iluh4}" != x; then | |
471 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh4}" | |
472 | AC_MSG_RESULT(${ac_cv_c_iluh4}) | |
473 | else | |
474 | AC_MSG_RESULT(none) | |
475 | fi | |
476 | ||
477 | AC_CACHE_VAL(ac_cv_c_ilupath,[ | |
478 | for i in $dirlist; do | |
479 | if test -f "$i/ilu/Makefile" ; then | |
1e6347d8 | 480 | ac_cv_c_ilupath=`(cd $i/ilu; ${PWDCMD-pwd})` |
117c9b1c JM |
481 | break |
482 | fi | |
483 | done | |
484 | ]) | |
485 | ILUTOP=${ac_cv_c_ilupath} | |
486 | ||
487 | AC_MSG_CHECKING(for the ILU library in the build tree) | |
488 | AC_CACHE_VAL(ac_cv_c_ilulib,[ | |
489 | if test -f "$ac_cv_c_ilupath/runtime/kernel/Makefile" ; then | |
1e6347d8 | 490 | ac_cv_c_ilulib=`(cd $ac_cv_c_ilupath/runtime/kernel; ${PWDCMD-pwd})` |
117c9b1c JM |
491 | AC_MSG_RESULT(found ${ac_cv_c_ilulib}/libilu.a) |
492 | else | |
493 | AC_MSG_RESULT(no) | |
494 | fi]) | |
495 | ||
496 | AC_MSG_CHECKING(for the ILU C++ bindings library in the build tree) | |
497 | AC_CACHE_VAL(ac_cv_c_ilulib2,[ | |
498 | if test -f "$ac_cv_c_ilupath/runtime/cpp/Makefile" ; then | |
1e6347d8 | 499 | ac_cv_c_ilulib2=`(cd $ac_cv_c_ilupath/runtime/cpp; ${PWDCMD-pwd})` |
117c9b1c JM |
500 | AC_MSG_RESULT(found ${ac_cv_c_ilulib2}/libilu-c++.a) |
501 | else | |
502 | AC_MSG_RESULT(no) | |
503 | fi]) | |
504 | ||
505 | AC_MSG_CHECKING(for the ILU C bindings library in the build tree) | |
506 | AC_CACHE_VAL(ac_cv_c_ilulib3,[ | |
507 | if test -f "$ac_cv_c_ilupath/runtime/c/Makefile" ; then | |
1e6347d8 | 508 | ac_cv_c_ilulib3=`(cd $ac_cv_c_ilupath/runtime/c; ${PWDCMD-pwd})` |
117c9b1c JM |
509 | AC_MSG_RESULT(found ${ac_cv_c_ilulib3}/libilu-c.a) |
510 | else | |
511 | AC_MSG_RESULT(no) | |
512 | fi]) | |
513 | ||
514 | AC_MSG_CHECKING(for the ILU Tk bindings library in the build tree) | |
515 | AC_CACHE_VAL(ac_cv_c_ilulib4,[ | |
516 | if test -f "$ac_cv_c_ilupath/runtime/mainloop/Makefile" ; then | |
1e6347d8 | 517 | ac_cv_c_ilulib4=`(cd $ac_cv_c_ilupath/runtime/mainloop; ${PWDCMD-pwd})` |
117c9b1c JM |
518 | AC_MSG_RESULT(found ${ac_cv_c_ilulib4}/libilu-tk.a) |
519 | else | |
520 | AC_MSG_RESULT(no) | |
521 | fi]) | |
522 | ||
523 | if test x"${ac_cv_c_ilulib}" = x -a x"${ac_cv_c_ilulib2}" = x; then | |
524 | ILUHDIR="" | |
525 | fi | |
526 | ||
527 | if test x"${ac_cv_c_ilulib}" != x -a x"${ac_cv_c_ilulib2}" != x; then | |
528 | ILULIB="-L${ac_cv_c_ilulib} -L${ac_cv_c_ilulib2} -L${ac_cv_c_ilulib3} -L${ac_cv_c_ilulib4}" | |
529 | else | |
530 | ILULIB="" | |
531 | fi | |
532 | ||
533 | if test x"${ILULIB}" = x; then | |
534 | AC_MSG_CHECKING(for ILU libraries installed with the compiler) | |
535 | AC_CACHE_VAL(ac_cv_c_ilulib5,[ | |
536 | NATIVE_GCC=`echo gcc | sed -e "${program_transform_name}"` | |
537 | ||
538 | dnl Get G++'s full path to it's libraries | |
539 | ac_cv_c_ilulib5=`${NATIVE_GCC} --print-libgcc | sed -e 's:lib/gcc-lib/.*::'`lib | |
540 | if test -f $ac_cv_c_ilulib5/libilu-c.a -o -f $ac_cv_c_ilulib5/libilu-c.so ; then | |
541 | if test x"${ILUHDIR}" = x; then | |
542 | ILUHDIR="-I${ac_cv_c_ilulib5}/../include" | |
543 | fi | |
544 | ILULIB="-L${ac_cv_c_ilulib5}" | |
545 | AC_MSG_RESULT(${ac_cv_c_ilulib5}) | |
546 | else | |
547 | ac_cv_c_ilulib=none | |
548 | AC_MSG_RESULT(none) | |
549 | fi | |
550 | fi]) | |
551 | AC_SUBST(ILUHDIR) | |
552 | AC_SUBST(ILULIB) | |
553 | AC_SUBST(ILUTOP) | |
554 | ]) | |
555 | ||
556 | dnl ==================================================================== | |
557 | dnl This defines the byte order for the host. We can't use | |
558 | dnl AC_C_BIGENDIAN, cause we want to create a config file and | |
559 | dnl substitue the real value, so the header files work right | |
8076c0b6 | 560 | AC_DEFUN([CYG_AC_C_ENDIAN], [ |
117c9b1c JM |
561 | AC_MSG_CHECKING(to see if this is a little endian host) |
562 | AC_CACHE_VAL(ac_cv_c_little_endian, [ | |
563 | ac_cv_c_little_endian=unknown | |
564 | # See if sys/param.h defines the BYTE_ORDER macro. | |
565 | AC_TRY_COMPILE([#include <sys/types.h> | |
566 | #include <sys/param.h>], [ | |
567 | #if !BYTE_ORDER || !_BIG_ENDIAN || !_LITTLE_ENDIAN | |
568 | bogus endian macros | |
569 | #endif], [# It does; now see whether it defined to _LITTLE_ENDIAN or not. | |
570 | AC_TRY_COMPILE([#include <sys/types.h> | |
571 | #include <sys/param.h>], [ | |
572 | #if BYTE_ORDER != _LITTLE_ENDIAN | |
573 | not big endian | |
574 | #endif], ac_cv_c_little_endian=yes, ac_cv_c_little_endian=no) | |
575 | ]) | |
576 | if test ${ac_cv_c_little_endian} = unknown; then | |
577 | old_cflags=$CFLAGS | |
578 | CFLAGS=-g | |
579 | AC_TRY_RUN([ | |
580 | main () { | |
581 | /* Are we little or big endian? From Harbison&Steele. */ | |
582 | union | |
583 | { | |
584 | long l; | |
585 | char c[sizeof (long)]; | |
586 | } u; | |
587 | u.l = 1; | |
588 | exit (u.c[0] == 1); | |
589 | }], | |
590 | ac_cv_c_little_endian=no, | |
591 | ac_cv_c_little_endian=yes,[ | |
592 | dnl Yes, this is ugly, and only used for a canadian cross anyway. This | |
593 | dnl is just to keep configure from stopping here. | |
594 | case "${host}" in | |
595 | changequote(,) | |
39987976 | 596 | i[3456789]86-*-*) ac_cv_c_little_endian=yes ;; |
117c9b1c JM |
597 | sparc*-*-*) ac_cv_c_little_endian=no ;; |
598 | changequote([,]) | |
599 | *) AC_MSG_WARN(Can't cross compile this test) ;; | |
600 | esac]) | |
601 | CFLAGS=$old_cflags | |
602 | fi]) | |
603 | ||
604 | if test x"${ac_cv_c_little_endian}" = xyes; then | |
605 | AC_DEFINE(LITTLE_ENDIAN_HOST) | |
606 | ENDIAN="CYG_LSBFIRST"; | |
607 | else | |
608 | ENDIAN="CYG_MSBFIRST"; | |
609 | fi | |
610 | AC_MSG_RESULT(${ac_cv_c_little_endian}) | |
611 | AC_SUBST(ENDIAN) | |
612 | ]) | |
613 | ||
614 | dnl ==================================================================== | |
615 | dnl Look for the path to libgcc, so we can use it to directly link | |
616 | dnl in libgcc.a with LD. | |
8076c0b6 | 617 | AC_DEFUN([CYG_AC_PATH_LIBGCC], |
117c9b1c JM |
618 | [AC_MSG_CHECKING([Looking for the path to libgcc.a]) |
619 | AC_LANG_SAVE | |
620 | AC_LANG_C | |
621 | ||
622 | dnl Get Gcc's full path to libgcc.a | |
623 | libgccpath=`${CC} --print-libgcc` | |
624 | ||
625 | dnl If we don't have a path with libgcc.a on the end, this isn't G++. | |
626 | if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then | |
627 | ac_cv_prog_gcc=yes | |
628 | else | |
629 | ac_cv_prog_gcc=no | |
630 | fi | |
631 | ||
632 | dnl | |
633 | if test x"${ac_cv_prog_gcc}" = xyes ; then | |
634 | gccpath=`echo $libgccpath | sed -e 's:/libgcc.a::'` | |
635 | LIBGCC="-L${gccpath}" | |
636 | AC_MSG_RESULT(${gccpath}) | |
637 | else | |
638 | LIBGCC="" | |
639 | AC_MSG_ERROR(Not using gcc) | |
640 | fi | |
641 | ||
642 | AC_LANG_RESTORE | |
643 | AC_SUBST(LIBGCC) | |
644 | ]) |