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