]>
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 | ||
117c9b1c JM |
241 | dnl ==================================================================== |
242 | dnl Find the opcodes library. This is used to do dissasemblies. | |
8076c0b6 | 243 | AC_DEFUN([CYG_AC_PATH_OPCODES], [ |
117c9b1c JM |
244 | AC_MSG_CHECKING(for the opcodes library in the build tree) |
245 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
246 | AC_CACHE_VAL(ac_cv_c_opc,[ | |
247 | for i in $dirlist; do | |
248 | if test -f "$i/opcodes/Makefile" ; then | |
1e6347d8 | 249 | ac_cv_c_opc=`(cd $i/opcodes; ${PWDCMD-pwd})` |
117c9b1c JM |
250 | fi |
251 | done | |
252 | ]) | |
253 | if test x"${ac_cv_c_opc}" != x; then | |
254 | OPCODESLIB="-L${ac_cv_c_opc}" | |
255 | AC_MSG_RESULT(${ac_cv_c_opc}) | |
256 | else | |
257 | AC_MSG_RESULT(none) | |
258 | fi | |
259 | AC_SUBST(OPCODESLIB) | |
260 | ]) | |
261 | ||
262 | dnl ==================================================================== | |
263 | dnl Look for the DejaGnu header file in the source tree. This file | |
264 | dnl defines the functions used to testing support. | |
8076c0b6 | 265 | AC_DEFUN([CYG_AC_PATH_DEJAGNU], [ |
117c9b1c JM |
266 | AC_MSG_CHECKING(for the testing support files in the source tree) |
267 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
268 | AC_CACHE_VAL(ac_cv_c_dejagnu,[ | |
269 | for i in $dirlist; do | |
270 | if test -f "$srcdir/$i/ecc/ecc/infra/testlib/current/include/dejagnu.h" ; then | |
1e6347d8 | 271 | ac_cv_c_dejagnu=`(cd $srcdir/$i/ecc/ecc/infra/testlib/current/include; ${PWDCMD-pwd})` |
117c9b1c JM |
272 | fi |
273 | done | |
274 | ]) | |
275 | if test x"${ac_cv_c_dejagnu}" != x; then | |
276 | DEJAGNUHDIR="-I${ac_cv_c_dejagnu}" | |
277 | AC_MSG_RESULT(${ac_cv_c_dejagnu}) | |
278 | else | |
279 | AC_MSG_RESULT(none) | |
280 | fi | |
281 | AC_CACHE_VAL(ac_cv_c_dejagnulib,[ | |
282 | for i in $dirlist; do | |
283 | if test -f "$srcdir/$i/infra/testlib/current/lib/hostutil.exp" ; then | |
1e6347d8 | 284 | ac_cv_c_dejagnulib=`(cd $srcdir/$i/infra/testlib/current/lib; ${PWDCMD-pwd})` |
117c9b1c JM |
285 | fi |
286 | done | |
287 | ]) | |
288 | if test x"${ac_cv_c_dejagnulib}" != x; then | |
289 | DEJAGNULIB="${ac_cv_c_dejagnulib}" | |
290 | else | |
291 | DEJAGNULIB="" | |
292 | fi | |
293 | AC_MSG_CHECKING(for runtest in the source tree) | |
294 | AC_CACHE_VAL(ac_cv_c_runtest,[ | |
295 | for i in $dirlist; do | |
296 | if test -f "$srcdir/$i/dejagnu/runtest" ; then | |
1e6347d8 | 297 | ac_cv_c_runtest=`(cd $srcdir/$i/dejagnu; ${PWDCMD-pwd})` |
117c9b1c JM |
298 | fi |
299 | done | |
300 | ]) | |
301 | if test x"${ac_cv_c_runtest}" != x; then | |
302 | RUNTESTDIR="${ac_cv_c_runtest}" | |
303 | AC_MSG_RESULT(${ac_cv_c_runtest}) | |
304 | else | |
305 | RUNTESTDIR="" | |
306 | AC_MSG_RESULT(none) | |
307 | fi | |
308 | AC_SUBST(RUNTESTDIR) | |
309 | AC_SUBST(DEJAGNULIB) | |
310 | AC_SUBST(DEJAGNUHDIR) | |
311 | ]) | |
312 | ||
313 | dnl ==================================================================== | |
314 | dnl Find the libintl library in the build tree. This is for | |
315 | dnl internationalization support. | |
8076c0b6 | 316 | AC_DEFUN([CYG_AC_PATH_INTL], [ |
117c9b1c JM |
317 | AC_MSG_CHECKING(for the intl header in the build tree) |
318 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
319 | dnl Look for the header file | |
320 | AC_CACHE_VAL(ac_cv_c_intlh,[ | |
321 | for i in $dirlist; do | |
322 | if test -f "$i/intl/libintl.h" ; then | |
1e6347d8 | 323 | ac_cv_c_intlh=`(cd $i/intl; ${PWDCMD-pwd})` |
117c9b1c JM |
324 | break |
325 | fi | |
326 | done | |
327 | ]) | |
328 | if test x"${ac_cv_c_intlh}" != x; then | |
329 | INTLHDIR="-I${ac_cv_c_intlh}" | |
330 | AC_MSG_RESULT(${ac_cv_c_intlh}) | |
331 | else | |
332 | AC_MSG_RESULT(none) | |
333 | fi | |
334 | AC_SUBST(INTLHDIR) | |
335 | ||
336 | dnl Look for the library | |
337 | AC_MSG_CHECKING(for the libintl library in the build tree) | |
338 | AC_CACHE_VAL(ac_cv_c_intllib,[ | |
339 | for i in $dirlist; do | |
340 | if test -f "$i/intl/Makefile" ; then | |
1e6347d8 | 341 | ac_cv_c_intllib=`(cd $i/intl; ${PWDCMD-pwd})` |
117c9b1c JM |
342 | fi |
343 | done | |
344 | ]) | |
345 | if test x"${ac_cv_c_intllib}" != x; then | |
346 | INTLLIB="-L${ac_cv_c_intllib} -lintl" | |
347 | AC_MSG_RESULT(${ac_cv_c_intllib}) | |
348 | else | |
349 | AC_MSG_RESULT(none) | |
350 | fi | |
351 | AC_SUBST(INTLLIB) | |
352 | ]) | |
353 | ||
117c9b1c JM |
354 | dnl ==================================================================== |
355 | dnl Find the libiberty library. | |
8076c0b6 | 356 | AC_DEFUN([CYG_AC_PATH_LIBIBERTY], [ |
117c9b1c JM |
357 | AC_MSG_CHECKING(for the libiberty library in the build tree) |
358 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
359 | AC_CACHE_VAL(ac_cv_c_libib,[ | |
360 | for i in $dirlist; do | |
361 | if test -f "$i/libiberty/Makefile" ; then | |
1e6347d8 | 362 | ac_cv_c_libib=`(cd $i/libiberty/; ${PWDCMD-pwd})` |
117c9b1c JM |
363 | fi |
364 | done | |
365 | ]) | |
366 | if test x"${ac_cv_c_libib}" != x; then | |
367 | LIBIBERTY="-L${ac_cv_c_libib}" | |
368 | AC_MSG_RESULT(${ac_cv_c_libib}) | |
369 | else | |
370 | AC_MSG_RESULT(none) | |
371 | fi | |
372 | AC_SUBST(LIBIBERTY) | |
373 | ]) | |
374 | ||
117c9b1c JM |
375 | dnl ==================================================================== |
376 | dnl Find all the ILU headers and libraries | |
8076c0b6 | 377 | AC_DEFUN([CYG_AC_PATH_ILU], [ |
117c9b1c JM |
378 | AC_MSG_CHECKING(for ILU kernel headers in the source tree) |
379 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
380 | AC_CACHE_VAL(ac_cv_c_iluh,[ | |
381 | for i in $dirlist; do | |
382 | if test -f "${srcdir}/$i/ilu/runtime/kernel/method.h" ; then | |
1e6347d8 | 383 | ac_cv_c_iluh=`(cd ${srcdir}/$i/ilu/runtime/kernel; ${PWDCMD-pwd})` |
117c9b1c JM |
384 | fi |
385 | done | |
386 | ]) | |
387 | if test x"${ac_cv_c_iluh}" != x; then | |
388 | ILUHDIR="-I${ac_cv_c_iluh}" | |
389 | AC_MSG_RESULT(${ac_cv_c_iluh}) | |
390 | else | |
391 | AC_MSG_RESULT(none) | |
392 | fi | |
393 | ||
394 | AC_MSG_CHECKING(for ILU kernel headers in the build tree) | |
395 | dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
396 | AC_CACHE_VAL(ac_cv_c_iluh5,[ | |
397 | for i in $dirlist; do | |
398 | if test -f "$i/ilu/runtime/kernel/iluconf.h" ; then | |
1e6347d8 | 399 | ac_cv_c_iluh5=`(cd $i/ilu/runtime/kernel; ${PWDCMD-pwd})` |
117c9b1c JM |
400 | fi |
401 | done | |
402 | ]) | |
403 | if test x"${ac_cv_c_iluh5}" != x; then | |
404 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh5}" | |
405 | AC_MSG_RESULT(${ac_cv_c_iluh5}) | |
406 | else | |
407 | AC_MSG_RESULT(none) | |
408 | fi | |
409 | ||
410 | AC_MSG_CHECKING(for ILU C++ headers in the source tree) | |
411 | AC_CACHE_VAL(ac_cv_c_iluh2,[ | |
412 | for i in $dirlist; do | |
413 | if test -f "${srcdir}/$i/ilu/stubbers/cpp/resource.h" ; then | |
1e6347d8 | 414 | ac_cv_c_iluh2=`(cd ${srcdir}/$i/ilu/stubbers/cpp; ${PWDCMD-pwd})` |
117c9b1c JM |
415 | fi |
416 | done | |
417 | ]) | |
418 | if test x"${ac_cv_c_iluh2}" != x; then | |
419 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh2}" | |
420 | AC_MSG_RESULT(${ac_cv_c_iluh2}) | |
421 | else | |
422 | AC_MSG_RESULT(none) | |
423 | fi | |
424 | ||
425 | AC_MSG_CHECKING(for ILU C headers) | |
426 | AC_CACHE_VAL(ac_cv_c_iluh3,[ | |
427 | for i in $dirlist; do | |
428 | if test -f "${srcdir}/$i/ilu/stubbers/c/resource.h" ; then | |
1e6347d8 | 429 | ac_cv_c_iluh3=`(cd ${srcdir}/$i/ilu/stubbers/c ; ${PWDCMD-pwd})` |
117c9b1c JM |
430 | fi |
431 | done | |
432 | ]) | |
433 | if test x"${ac_cv_c_iluh3}" != x; then | |
434 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh3}" | |
435 | AC_MSG_RESULT(${ac_cv_c_iluh3}) | |
436 | else | |
437 | AC_MSG_RESULT(none) | |
438 | fi | |
439 | ||
440 | AC_MSG_CHECKING(for ILU C runtime headers) | |
441 | AC_CACHE_VAL(ac_cv_c_iluh4,[ | |
442 | for i in $dirlist; do | |
443 | if test -f "${srcdir}/$i/ilu/runtime/c/ilucstub.h" ; then | |
1e6347d8 | 444 | ac_cv_c_iluh4=`(cd ${srcdir}/$i/ilu/runtime/c ; ${PWDCMD-pwd})` |
117c9b1c JM |
445 | fi |
446 | done | |
447 | ]) | |
448 | if test x"${ac_cv_c_iluh4}" != x; then | |
449 | ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh4}" | |
450 | AC_MSG_RESULT(${ac_cv_c_iluh4}) | |
451 | else | |
452 | AC_MSG_RESULT(none) | |
453 | fi | |
454 | ||
455 | AC_CACHE_VAL(ac_cv_c_ilupath,[ | |
456 | for i in $dirlist; do | |
457 | if test -f "$i/ilu/Makefile" ; then | |
1e6347d8 | 458 | ac_cv_c_ilupath=`(cd $i/ilu; ${PWDCMD-pwd})` |
117c9b1c JM |
459 | break |
460 | fi | |
461 | done | |
462 | ]) | |
463 | ILUTOP=${ac_cv_c_ilupath} | |
464 | ||
465 | AC_MSG_CHECKING(for the ILU library in the build tree) | |
466 | AC_CACHE_VAL(ac_cv_c_ilulib,[ | |
467 | if test -f "$ac_cv_c_ilupath/runtime/kernel/Makefile" ; then | |
1e6347d8 | 468 | ac_cv_c_ilulib=`(cd $ac_cv_c_ilupath/runtime/kernel; ${PWDCMD-pwd})` |
117c9b1c JM |
469 | AC_MSG_RESULT(found ${ac_cv_c_ilulib}/libilu.a) |
470 | else | |
471 | AC_MSG_RESULT(no) | |
472 | fi]) | |
473 | ||
474 | AC_MSG_CHECKING(for the ILU C++ bindings library in the build tree) | |
475 | AC_CACHE_VAL(ac_cv_c_ilulib2,[ | |
476 | if test -f "$ac_cv_c_ilupath/runtime/cpp/Makefile" ; then | |
1e6347d8 | 477 | ac_cv_c_ilulib2=`(cd $ac_cv_c_ilupath/runtime/cpp; ${PWDCMD-pwd})` |
117c9b1c JM |
478 | AC_MSG_RESULT(found ${ac_cv_c_ilulib2}/libilu-c++.a) |
479 | else | |
480 | AC_MSG_RESULT(no) | |
481 | fi]) | |
482 | ||
483 | AC_MSG_CHECKING(for the ILU C bindings library in the build tree) | |
484 | AC_CACHE_VAL(ac_cv_c_ilulib3,[ | |
485 | if test -f "$ac_cv_c_ilupath/runtime/c/Makefile" ; then | |
1e6347d8 | 486 | ac_cv_c_ilulib3=`(cd $ac_cv_c_ilupath/runtime/c; ${PWDCMD-pwd})` |
117c9b1c JM |
487 | AC_MSG_RESULT(found ${ac_cv_c_ilulib3}/libilu-c.a) |
488 | else | |
489 | AC_MSG_RESULT(no) | |
490 | fi]) | |
491 | ||
492 | AC_MSG_CHECKING(for the ILU Tk bindings library in the build tree) | |
493 | AC_CACHE_VAL(ac_cv_c_ilulib4,[ | |
494 | if test -f "$ac_cv_c_ilupath/runtime/mainloop/Makefile" ; then | |
1e6347d8 | 495 | ac_cv_c_ilulib4=`(cd $ac_cv_c_ilupath/runtime/mainloop; ${PWDCMD-pwd})` |
117c9b1c JM |
496 | AC_MSG_RESULT(found ${ac_cv_c_ilulib4}/libilu-tk.a) |
497 | else | |
498 | AC_MSG_RESULT(no) | |
499 | fi]) | |
500 | ||
501 | if test x"${ac_cv_c_ilulib}" = x -a x"${ac_cv_c_ilulib2}" = x; then | |
502 | ILUHDIR="" | |
503 | fi | |
504 | ||
505 | if test x"${ac_cv_c_ilulib}" != x -a x"${ac_cv_c_ilulib2}" != x; then | |
506 | ILULIB="-L${ac_cv_c_ilulib} -L${ac_cv_c_ilulib2} -L${ac_cv_c_ilulib3} -L${ac_cv_c_ilulib4}" | |
507 | else | |
508 | ILULIB="" | |
509 | fi | |
510 | ||
511 | if test x"${ILULIB}" = x; then | |
512 | AC_MSG_CHECKING(for ILU libraries installed with the compiler) | |
513 | AC_CACHE_VAL(ac_cv_c_ilulib5,[ | |
514 | NATIVE_GCC=`echo gcc | sed -e "${program_transform_name}"` | |
515 | ||
516 | dnl Get G++'s full path to it's libraries | |
517 | ac_cv_c_ilulib5=`${NATIVE_GCC} --print-libgcc | sed -e 's:lib/gcc-lib/.*::'`lib | |
518 | if test -f $ac_cv_c_ilulib5/libilu-c.a -o -f $ac_cv_c_ilulib5/libilu-c.so ; then | |
519 | if test x"${ILUHDIR}" = x; then | |
520 | ILUHDIR="-I${ac_cv_c_ilulib5}/../include" | |
521 | fi | |
522 | ILULIB="-L${ac_cv_c_ilulib5}" | |
523 | AC_MSG_RESULT(${ac_cv_c_ilulib5}) | |
524 | else | |
525 | ac_cv_c_ilulib=none | |
526 | AC_MSG_RESULT(none) | |
527 | fi | |
528 | fi]) | |
529 | AC_SUBST(ILUHDIR) | |
530 | AC_SUBST(ILULIB) | |
531 | AC_SUBST(ILUTOP) | |
532 | ]) | |
533 | ||
534 | dnl ==================================================================== | |
535 | dnl This defines the byte order for the host. We can't use | |
536 | dnl AC_C_BIGENDIAN, cause we want to create a config file and | |
537 | dnl substitue the real value, so the header files work right | |
8076c0b6 | 538 | AC_DEFUN([CYG_AC_C_ENDIAN], [ |
117c9b1c JM |
539 | AC_MSG_CHECKING(to see if this is a little endian host) |
540 | AC_CACHE_VAL(ac_cv_c_little_endian, [ | |
541 | ac_cv_c_little_endian=unknown | |
542 | # See if sys/param.h defines the BYTE_ORDER macro. | |
543 | AC_TRY_COMPILE([#include <sys/types.h> | |
544 | #include <sys/param.h>], [ | |
545 | #if !BYTE_ORDER || !_BIG_ENDIAN || !_LITTLE_ENDIAN | |
546 | bogus endian macros | |
547 | #endif], [# It does; now see whether it defined to _LITTLE_ENDIAN or not. | |
548 | AC_TRY_COMPILE([#include <sys/types.h> | |
549 | #include <sys/param.h>], [ | |
550 | #if BYTE_ORDER != _LITTLE_ENDIAN | |
551 | not big endian | |
552 | #endif], ac_cv_c_little_endian=yes, ac_cv_c_little_endian=no) | |
553 | ]) | |
554 | if test ${ac_cv_c_little_endian} = unknown; then | |
555 | old_cflags=$CFLAGS | |
556 | CFLAGS=-g | |
557 | AC_TRY_RUN([ | |
558 | main () { | |
559 | /* Are we little or big endian? From Harbison&Steele. */ | |
560 | union | |
561 | { | |
562 | long l; | |
563 | char c[sizeof (long)]; | |
564 | } u; | |
565 | u.l = 1; | |
566 | exit (u.c[0] == 1); | |
567 | }], | |
568 | ac_cv_c_little_endian=no, | |
569 | ac_cv_c_little_endian=yes,[ | |
570 | dnl Yes, this is ugly, and only used for a canadian cross anyway. This | |
571 | dnl is just to keep configure from stopping here. | |
572 | case "${host}" in | |
573 | changequote(,) | |
39987976 | 574 | i[3456789]86-*-*) ac_cv_c_little_endian=yes ;; |
117c9b1c JM |
575 | sparc*-*-*) ac_cv_c_little_endian=no ;; |
576 | changequote([,]) | |
577 | *) AC_MSG_WARN(Can't cross compile this test) ;; | |
578 | esac]) | |
579 | CFLAGS=$old_cflags | |
580 | fi]) | |
581 | ||
582 | if test x"${ac_cv_c_little_endian}" = xyes; then | |
583 | AC_DEFINE(LITTLE_ENDIAN_HOST) | |
584 | ENDIAN="CYG_LSBFIRST"; | |
585 | else | |
586 | ENDIAN="CYG_MSBFIRST"; | |
587 | fi | |
588 | AC_MSG_RESULT(${ac_cv_c_little_endian}) | |
589 | AC_SUBST(ENDIAN) | |
590 | ]) | |
591 | ||
592 | dnl ==================================================================== | |
593 | dnl Look for the path to libgcc, so we can use it to directly link | |
594 | dnl in libgcc.a with LD. | |
8076c0b6 | 595 | AC_DEFUN([CYG_AC_PATH_LIBGCC], |
117c9b1c JM |
596 | [AC_MSG_CHECKING([Looking for the path to libgcc.a]) |
597 | AC_LANG_SAVE | |
598 | AC_LANG_C | |
599 | ||
600 | dnl Get Gcc's full path to libgcc.a | |
601 | libgccpath=`${CC} --print-libgcc` | |
602 | ||
603 | dnl If we don't have a path with libgcc.a on the end, this isn't G++. | |
604 | if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then | |
605 | ac_cv_prog_gcc=yes | |
606 | else | |
607 | ac_cv_prog_gcc=no | |
608 | fi | |
609 | ||
610 | dnl | |
611 | if test x"${ac_cv_prog_gcc}" = xyes ; then | |
612 | gccpath=`echo $libgccpath | sed -e 's:/libgcc.a::'` | |
613 | LIBGCC="-L${gccpath}" | |
614 | AC_MSG_RESULT(${gccpath}) | |
615 | else | |
616 | LIBGCC="" | |
617 | AC_MSG_ERROR(Not using gcc) | |
618 | fi | |
619 | ||
620 | AC_LANG_RESTORE | |
621 | AC_SUBST(LIBGCC) | |
622 | ]) |