[444] | 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 | ]) |
---|