Home | History | Annotate | Download | only in config
      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 ])
    747