Mercurial > hg > CbC > CbC_gcc
comparison config/acinclude.m4 @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
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. | |
9 AC_DEFUN([CYG_AC_PROG_CXX_CROSS], | |
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. | |
38 AC_DEFUN([CYG_AC_PROG_GXX_WORKS], | |
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++. | |
106 AC_DEFUN([CYG_AC_PROG_CC_CROSS], | |
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. | |
135 AC_DEFUN([CYG_AC_PROG_GCC_WORKS], | |
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. | |
202 AC_DEFUN([CYG_AC_PATH_BFD], [ | |
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 | |
209 ac_cv_c_bfdh=`(cd $i/bfd; ${PWDCMD-pwd})` | |
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 | |
227 ac_cv_c_bfdlib=`(cd $i/bfd; ${PWDCMD-pwd})` | |
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. | |
244 AC_DEFUN([CYG_AC_PATH_LIBERTY], [ | |
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 | |
250 ac_cv_c_liberty=`(cd $i/libiberty; ${PWDCMD-pwd})` | |
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. | |
265 AC_DEFUN([CYG_AC_PATH_OPCODES], [ | |
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 | |
271 ac_cv_c_opc=`(cd $i/opcodes; ${PWDCMD-pwd})` | |
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. | |
287 AC_DEFUN([CYG_AC_PATH_DEJAGNU], [ | |
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 | |
293 ac_cv_c_dejagnu=`(cd $srcdir/$i/ecc/ecc/infra/testlib/current/include; ${PWDCMD-pwd})` | |
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 | |
306 ac_cv_c_dejagnulib=`(cd $srcdir/$i/infra/testlib/current/lib; ${PWDCMD-pwd})` | |
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 | |
319 ac_cv_c_runtest=`(cd $srcdir/$i/dejagnu; ${PWDCMD-pwd})` | |
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. | |
338 AC_DEFUN([CYG_AC_PATH_INTL], [ | |
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 | |
345 ac_cv_c_intlh=`(cd $i/intl; ${PWDCMD-pwd})` | |
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 | |
363 ac_cv_c_intllib=`(cd $i/intl; ${PWDCMD-pwd})` | |
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 | |
376 dnl ==================================================================== | |
377 dnl Find the simulator library. | |
378 AC_DEFUN([CYG_AC_PATH_SIM], [ | |
379 dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.. ../../../../../../../../../.." | |
380 case "$target_cpu" in | |
381 powerpc) target_dir=ppc ;; | |
382 sparc*) target_dir=erc32 ;; | |
383 mips*) target_dir=mips ;; | |
384 *) target_dir=$target_cpu ;; | |
385 esac | |
386 dnl First look for the header file | |
387 AC_MSG_CHECKING(for the simulator header file) | |
388 AC_CACHE_VAL(ac_cv_c_simh,[ | |
389 for i in $dirlist; do | |
390 if test -f "${srcdir}/$i/include/remote-sim.h" ; then | |
391 ac_cv_c_simh=`(cd ${srcdir}/$i/include; ${PWDCMD-pwd})` | |
392 break | |
393 fi | |
394 done | |
395 ]) | |
396 if test x"${ac_cv_c_simh}" != x; then | |
397 SIMHDIR="-I${ac_cv_c_simh}" | |
398 AC_MSG_RESULT(${ac_cv_c_simh}) | |
399 else | |
400 AC_MSG_RESULT(none) | |
401 fi | |
402 AC_SUBST(SIMHDIR) | |
403 | |
404 dnl See whether it's a devo or Foundry branch simulator | |
405 AC_MSG_CHECKING(Whether this is a devo simulator ) | |
406 AC_CACHE_VAL(ac_cv_c_simdevo,[ | |
407 CPPFLAGS="$CPPFLAGS $SIMHDIR" | |
408 AC_EGREP_HEADER([SIM_DESC sim_open.*struct _bfd], remote-sim.h, | |
409 ac_cv_c_simdevo=yes, | |
410 ac_cv_c_simdevo=no) | |
411 ]) | |
412 if test x"$ac_cv_c_simdevo" = x"yes" ; then | |
413 AC_DEFINE(HAVE_DEVO_SIM) | |
414 fi | |
415 AC_MSG_RESULT(${ac_cv_c_simdevo}) | |
416 AC_SUBST(HAVE_DEVO_SIM) | |
417 | |
418 dnl Next look for the library | |
419 AC_MSG_CHECKING(for the simulator library) | |
420 AC_CACHE_VAL(ac_cv_c_simlib,[ | |
421 for i in $dirlist; do | |
422 if test -f "$i/sim/$target_dir/Makefile" ; then | |
423 ac_cv_c_simlib=`(cd $i/sim/$target_dir; ${PWDCMD-pwd})` | |
424 fi | |
425 done | |
426 ]) | |
427 if test x"${ac_cv_c_simlib}" != x; then | |
428 SIMLIB="-L${ac_cv_c_simlib}" | |
429 else | |
430 AC_MSG_RESULT(none) | |
431 dnl FIXME: this is kinda bogus, cause umtimately the TM will build | |
432 dnl all the libraries for several architectures. But for now, this | |
433 dnl will work till then. | |
434 dnl AC_MSG_CHECKING(for the simulator installed with the compiler libraries) | |
435 dnl Transform the name of the compiler to it's cross variant, unless | |
436 dnl CXX is set. This is also what CXX gets set to in the generated | |
437 dnl Makefile. | |
438 CROSS_GCC=`echo gcc | sed -e "s/^/$target/"` | |
439 | |
440 dnl Get G++'s full path to libgcc.a | |
441 changequote(,) | |
442 gccpath=`${CROSS_GCC} --print-libgcc | sed -e 's:[a-z0-9A-Z\.\-]*/libgcc.a::' -e 's:lib/gcc-lib/::'`lib | |
443 changequote([,]) | |
444 if test -f $gccpath/libsim.a -o -f $gccpath/libsim.so ; then | |
445 ac_cv_c_simlib="$gccpath/" | |
446 SIMLIB="-L${ac_cv_c_simlib}" | |
447 AC_MSG_RESULT(${ac_cv_c_simlib}) | |
448 else | |
449 AM_CONDITIONAL(PSIM, test x$psim = xno) | |
450 SIMLIB="" | |
451 AC_MSG_RESULT(none) | |
452 dnl ac_cv_c_simlib=none | |
453 fi | |
454 fi | |
455 AC_SUBST(SIMLIB) | |
456 ]) | |
457 | |
458 dnl ==================================================================== | |
459 dnl Find the libiberty library. | |
460 AC_DEFUN([CYG_AC_PATH_LIBIBERTY], [ | |
461 AC_MSG_CHECKING(for the libiberty library in the build tree) | |
462 dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
463 AC_CACHE_VAL(ac_cv_c_libib,[ | |
464 for i in $dirlist; do | |
465 if test -f "$i/libiberty/Makefile" ; then | |
466 ac_cv_c_libib=`(cd $i/libiberty/; ${PWDCMD-pwd})` | |
467 fi | |
468 done | |
469 ]) | |
470 if test x"${ac_cv_c_libib}" != x; then | |
471 LIBIBERTY="-L${ac_cv_c_libib}" | |
472 AC_MSG_RESULT(${ac_cv_c_libib}) | |
473 else | |
474 AC_MSG_RESULT(none) | |
475 fi | |
476 AC_SUBST(LIBIBERTY) | |
477 ]) | |
478 | |
479 dnl ==================================================================== | |
480 AC_DEFUN([CYG_AC_PATH_DEVO], [ | |
481 AC_MSG_CHECKING(for devo headers in the source tree) | |
482 dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
483 AC_CACHE_VAL(ac_cv_c_devoh,[ | |
484 for i in $dirlist; do | |
485 if test -f "${srcdir}/$i/include/remote-sim.h" ; then | |
486 ac_cv_c_devoh=`(cd ${srcdir}/$i/include; ${PWDCMD-pwd})` | |
487 fi | |
488 done | |
489 ]) | |
490 if test x"${ac_cv_c_devoh}" != x; then | |
491 DEVOHDIR="-I${ac_cv_c_devoh}" | |
492 AC_MSG_RESULT(${ac_cv_c_devoh}) | |
493 else | |
494 AC_MSG_RESULT(none) | |
495 fi | |
496 AC_SUBST(DEVOHDIR) | |
497 ]) | |
498 | |
499 dnl ==================================================================== | |
500 dnl Find all the ILU headers and libraries | |
501 AC_DEFUN([CYG_AC_PATH_ILU], [ | |
502 AC_MSG_CHECKING(for ILU kernel headers in the source tree) | |
503 dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
504 AC_CACHE_VAL(ac_cv_c_iluh,[ | |
505 for i in $dirlist; do | |
506 if test -f "${srcdir}/$i/ilu/runtime/kernel/method.h" ; then | |
507 ac_cv_c_iluh=`(cd ${srcdir}/$i/ilu/runtime/kernel; ${PWDCMD-pwd})` | |
508 fi | |
509 done | |
510 ]) | |
511 if test x"${ac_cv_c_iluh}" != x; then | |
512 ILUHDIR="-I${ac_cv_c_iluh}" | |
513 AC_MSG_RESULT(${ac_cv_c_iluh}) | |
514 else | |
515 AC_MSG_RESULT(none) | |
516 fi | |
517 | |
518 AC_MSG_CHECKING(for ILU kernel headers in the build tree) | |
519 dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." | |
520 AC_CACHE_VAL(ac_cv_c_iluh5,[ | |
521 for i in $dirlist; do | |
522 if test -f "$i/ilu/runtime/kernel/iluconf.h" ; then | |
523 ac_cv_c_iluh5=`(cd $i/ilu/runtime/kernel; ${PWDCMD-pwd})` | |
524 fi | |
525 done | |
526 ]) | |
527 if test x"${ac_cv_c_iluh5}" != x; then | |
528 ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh5}" | |
529 AC_MSG_RESULT(${ac_cv_c_iluh5}) | |
530 else | |
531 AC_MSG_RESULT(none) | |
532 fi | |
533 | |
534 AC_MSG_CHECKING(for ILU C++ headers in the source tree) | |
535 AC_CACHE_VAL(ac_cv_c_iluh2,[ | |
536 for i in $dirlist; do | |
537 if test -f "${srcdir}/$i/ilu/stubbers/cpp/resource.h" ; then | |
538 ac_cv_c_iluh2=`(cd ${srcdir}/$i/ilu/stubbers/cpp; ${PWDCMD-pwd})` | |
539 fi | |
540 done | |
541 ]) | |
542 if test x"${ac_cv_c_iluh2}" != x; then | |
543 ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh2}" | |
544 AC_MSG_RESULT(${ac_cv_c_iluh2}) | |
545 else | |
546 AC_MSG_RESULT(none) | |
547 fi | |
548 | |
549 AC_MSG_CHECKING(for ILU C headers) | |
550 AC_CACHE_VAL(ac_cv_c_iluh3,[ | |
551 for i in $dirlist; do | |
552 if test -f "${srcdir}/$i/ilu/stubbers/c/resource.h" ; then | |
553 ac_cv_c_iluh3=`(cd ${srcdir}/$i/ilu/stubbers/c ; ${PWDCMD-pwd})` | |
554 fi | |
555 done | |
556 ]) | |
557 if test x"${ac_cv_c_iluh3}" != x; then | |
558 ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh3}" | |
559 AC_MSG_RESULT(${ac_cv_c_iluh3}) | |
560 else | |
561 AC_MSG_RESULT(none) | |
562 fi | |
563 | |
564 AC_MSG_CHECKING(for ILU C runtime headers) | |
565 AC_CACHE_VAL(ac_cv_c_iluh4,[ | |
566 for i in $dirlist; do | |
567 if test -f "${srcdir}/$i/ilu/runtime/c/ilucstub.h" ; then | |
568 ac_cv_c_iluh4=`(cd ${srcdir}/$i/ilu/runtime/c ; ${PWDCMD-pwd})` | |
569 fi | |
570 done | |
571 ]) | |
572 if test x"${ac_cv_c_iluh4}" != x; then | |
573 ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh4}" | |
574 AC_MSG_RESULT(${ac_cv_c_iluh4}) | |
575 else | |
576 AC_MSG_RESULT(none) | |
577 fi | |
578 | |
579 AC_CACHE_VAL(ac_cv_c_ilupath,[ | |
580 for i in $dirlist; do | |
581 if test -f "$i/ilu/Makefile" ; then | |
582 ac_cv_c_ilupath=`(cd $i/ilu; ${PWDCMD-pwd})` | |
583 break | |
584 fi | |
585 done | |
586 ]) | |
587 ILUTOP=${ac_cv_c_ilupath} | |
588 | |
589 AC_MSG_CHECKING(for the ILU library in the build tree) | |
590 AC_CACHE_VAL(ac_cv_c_ilulib,[ | |
591 if test -f "$ac_cv_c_ilupath/runtime/kernel/Makefile" ; then | |
592 ac_cv_c_ilulib=`(cd $ac_cv_c_ilupath/runtime/kernel; ${PWDCMD-pwd})` | |
593 AC_MSG_RESULT(found ${ac_cv_c_ilulib}/libilu.a) | |
594 else | |
595 AC_MSG_RESULT(no) | |
596 fi]) | |
597 | |
598 AC_MSG_CHECKING(for the ILU C++ bindings library in the build tree) | |
599 AC_CACHE_VAL(ac_cv_c_ilulib2,[ | |
600 if test -f "$ac_cv_c_ilupath/runtime/cpp/Makefile" ; then | |
601 ac_cv_c_ilulib2=`(cd $ac_cv_c_ilupath/runtime/cpp; ${PWDCMD-pwd})` | |
602 AC_MSG_RESULT(found ${ac_cv_c_ilulib2}/libilu-c++.a) | |
603 else | |
604 AC_MSG_RESULT(no) | |
605 fi]) | |
606 | |
607 AC_MSG_CHECKING(for the ILU C bindings library in the build tree) | |
608 AC_CACHE_VAL(ac_cv_c_ilulib3,[ | |
609 if test -f "$ac_cv_c_ilupath/runtime/c/Makefile" ; then | |
610 ac_cv_c_ilulib3=`(cd $ac_cv_c_ilupath/runtime/c; ${PWDCMD-pwd})` | |
611 AC_MSG_RESULT(found ${ac_cv_c_ilulib3}/libilu-c.a) | |
612 else | |
613 AC_MSG_RESULT(no) | |
614 fi]) | |
615 | |
616 AC_MSG_CHECKING(for the ILU Tk bindings library in the build tree) | |
617 AC_CACHE_VAL(ac_cv_c_ilulib4,[ | |
618 if test -f "$ac_cv_c_ilupath/runtime/mainloop/Makefile" ; then | |
619 ac_cv_c_ilulib4=`(cd $ac_cv_c_ilupath/runtime/mainloop; ${PWDCMD-pwd})` | |
620 AC_MSG_RESULT(found ${ac_cv_c_ilulib4}/libilu-tk.a) | |
621 else | |
622 AC_MSG_RESULT(no) | |
623 fi]) | |
624 | |
625 if test x"${ac_cv_c_ilulib}" = x -a x"${ac_cv_c_ilulib2}" = x; then | |
626 ILUHDIR="" | |
627 fi | |
628 | |
629 if test x"${ac_cv_c_ilulib}" != x -a x"${ac_cv_c_ilulib2}" != x; then | |
630 ILULIB="-L${ac_cv_c_ilulib} -L${ac_cv_c_ilulib2} -L${ac_cv_c_ilulib3} -L${ac_cv_c_ilulib4}" | |
631 else | |
632 ILULIB="" | |
633 fi | |
634 | |
635 if test x"${ILULIB}" = x; then | |
636 AC_MSG_CHECKING(for ILU libraries installed with the compiler) | |
637 AC_CACHE_VAL(ac_cv_c_ilulib5,[ | |
638 NATIVE_GCC=`echo gcc | sed -e "${program_transform_name}"` | |
639 | |
640 dnl Get G++'s full path to it's libraries | |
641 ac_cv_c_ilulib5=`${NATIVE_GCC} --print-libgcc | sed -e 's:lib/gcc-lib/.*::'`lib | |
642 if test -f $ac_cv_c_ilulib5/libilu-c.a -o -f $ac_cv_c_ilulib5/libilu-c.so ; then | |
643 if test x"${ILUHDIR}" = x; then | |
644 ILUHDIR="-I${ac_cv_c_ilulib5}/../include" | |
645 fi | |
646 ILULIB="-L${ac_cv_c_ilulib5}" | |
647 AC_MSG_RESULT(${ac_cv_c_ilulib5}) | |
648 else | |
649 ac_cv_c_ilulib=none | |
650 AC_MSG_RESULT(none) | |
651 fi | |
652 fi]) | |
653 AC_SUBST(ILUHDIR) | |
654 AC_SUBST(ILULIB) | |
655 AC_SUBST(ILUTOP) | |
656 ]) | |
657 | |
658 dnl ==================================================================== | |
659 dnl This defines the byte order for the host. We can't use | |
660 dnl AC_C_BIGENDIAN, cause we want to create a config file and | |
661 dnl substitue the real value, so the header files work right | |
662 AC_DEFUN([CYG_AC_C_ENDIAN], [ | |
663 AC_MSG_CHECKING(to see if this is a little endian host) | |
664 AC_CACHE_VAL(ac_cv_c_little_endian, [ | |
665 ac_cv_c_little_endian=unknown | |
666 # See if sys/param.h defines the BYTE_ORDER macro. | |
667 AC_TRY_COMPILE([#include <sys/types.h> | |
668 #include <sys/param.h>], [ | |
669 #if !BYTE_ORDER || !_BIG_ENDIAN || !_LITTLE_ENDIAN | |
670 bogus endian macros | |
671 #endif], [# It does; now see whether it defined to _LITTLE_ENDIAN or not. | |
672 AC_TRY_COMPILE([#include <sys/types.h> | |
673 #include <sys/param.h>], [ | |
674 #if BYTE_ORDER != _LITTLE_ENDIAN | |
675 not big endian | |
676 #endif], ac_cv_c_little_endian=yes, ac_cv_c_little_endian=no) | |
677 ]) | |
678 if test ${ac_cv_c_little_endian} = unknown; then | |
679 old_cflags=$CFLAGS | |
680 CFLAGS=-g | |
681 AC_TRY_RUN([ | |
682 main () { | |
683 /* Are we little or big endian? From Harbison&Steele. */ | |
684 union | |
685 { | |
686 long l; | |
687 char c[sizeof (long)]; | |
688 } u; | |
689 u.l = 1; | |
690 exit (u.c[0] == 1); | |
691 }], | |
692 ac_cv_c_little_endian=no, | |
693 ac_cv_c_little_endian=yes,[ | |
694 dnl Yes, this is ugly, and only used for a canadian cross anyway. This | |
695 dnl is just to keep configure from stopping here. | |
696 case "${host}" in | |
697 changequote(,) | |
698 i[3456789]86-*-*) ac_cv_c_little_endian=yes ;; | |
699 sparc*-*-*) ac_cv_c_little_endian=no ;; | |
700 changequote([,]) | |
701 *) AC_MSG_WARN(Can't cross compile this test) ;; | |
702 esac]) | |
703 CFLAGS=$old_cflags | |
704 fi]) | |
705 | |
706 if test x"${ac_cv_c_little_endian}" = xyes; then | |
707 AC_DEFINE(LITTLE_ENDIAN_HOST) | |
708 ENDIAN="CYG_LSBFIRST"; | |
709 else | |
710 ENDIAN="CYG_MSBFIRST"; | |
711 fi | |
712 AC_MSG_RESULT(${ac_cv_c_little_endian}) | |
713 AC_SUBST(ENDIAN) | |
714 ]) | |
715 | |
716 dnl ==================================================================== | |
717 dnl Look for the path to libgcc, so we can use it to directly link | |
718 dnl in libgcc.a with LD. | |
719 AC_DEFUN([CYG_AC_PATH_LIBGCC], | |
720 [AC_MSG_CHECKING([Looking for the path to libgcc.a]) | |
721 AC_LANG_SAVE | |
722 AC_LANG_C | |
723 | |
724 dnl Get Gcc's full path to libgcc.a | |
725 libgccpath=`${CC} --print-libgcc` | |
726 | |
727 dnl If we don't have a path with libgcc.a on the end, this isn't G++. | |
728 if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then | |
729 ac_cv_prog_gcc=yes | |
730 else | |
731 ac_cv_prog_gcc=no | |
732 fi | |
733 | |
734 dnl | |
735 if test x"${ac_cv_prog_gcc}" = xyes ; then | |
736 gccpath=`echo $libgccpath | sed -e 's:/libgcc.a::'` | |
737 LIBGCC="-L${gccpath}" | |
738 AC_MSG_RESULT(${gccpath}) | |
739 else | |
740 LIBGCC="" | |
741 AC_MSG_ERROR(Not using gcc) | |
742 fi | |
743 | |
744 AC_LANG_RESTORE | |
745 AC_SUBST(LIBGCC) | |
746 ]) |