acinclude.m4 revision 77298
1121934Shartidnl This file is included into all any other acinclude file that needs
2121934Shartidnl to use these macros.
3121934Sharti
4121934Shartidnl This is copied from autoconf 2.12, but does calls our own AC_PROG_CC_WORKS,
5121934Shartidnl and doesn't call AC_PROG_CXX_GNU, cause we test for that in  AC_PROG_CC_WORKS.
6121934Shartidnl We are probably using a cross compiler, which will not be able to fully
7121934Shartidnl link an executable.  This should really be fixed in autoconf itself.
8121934Shartidnl Find a working G++ cross compiler. This only works for the GNU C++ compiler.
9121934ShartiAC_DEFUN(CYG_AC_PROG_CXX_CROSS,
10121934Sharti[AC_BEFORE([$0], [AC_PROG_CXXCPP])
11121934ShartiAC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
12121934Sharti
13121934ShartiCYG_AC_PROG_GXX_WORKS
14121934Sharti
15121934Shartiif test $ac_cv_prog_gxx = yes; then
16121934Sharti  GXX=yes
17121934Shartidnl Check whether -g works, even if CXXFLAGS is set, in case the package
18121934Shartidnl plays around with CXXFLAGS (such as to build both debugging and
19121934Shartidnl normal versions of a library), tasteless as that idea is.
20121934Sharti  ac_test_CXXFLAGS="${CXXFLAGS+set}"
21121934Sharti  ac_save_CXXFLAGS="$CXXFLAGS"
22121934Sharti  CXXFLAGS=
23121934Sharti  AC_PROG_CXX_G
24121934Sharti  if test "$ac_test_CXXFLAGS" = set; then
25121934Sharti    CXXFLAGS="$ac_save_CXXFLAGS"
26121934Sharti  elif test $ac_cv_prog_cxx_g = yes; then
27121934Sharti    CXXFLAGS="-g -O2"
28121934Sharti  else
29131826Sharti    CXXFLAGS="-O2"
30121934Sharti  fi
31121934Shartielse
32121934Sharti  GXX=
33121934Sharti  test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
34121934Shartifi
35121934Sharti])
36121934Sharti
37121934Shartidnl See if the G++ compiler we found works.
38121934ShartiAC_DEFUN(CYG_AC_PROG_GXX_WORKS,
39121934Sharti[AC_MSG_CHECKING([whether the G++ compiler ($CXX $CXXFLAGS $LDFLAGS) actually works])
40121934ShartiAC_LANG_SAVE
41121934ShartiAC_LANG_CPLUSPLUS
42121934Shartidnl Try a test case. We only compile, because it's close to impossible
43121934Shartidnl to get a correct fully linked executable with a cross compiler. For
44121934Shartidnl most cross compilers, this test is bogus. For G++, we can use various
45121934Shartidnl other compile line options to get a decent idea that the cross compiler
46121934Shartidnl actually does work, even though we can't produce an executable without
47121934Shartidnl more info about the target it's being compiled for. This only works
48121934Shartidnl for the GNU C++ compiler.
49121934Sharti
50121934Shartidnl Transform the name of the compiler to it's cross variant, unless
51121934Shartidnl CXX is set. This is also what CXX gets set to in the generated
52121934Shartidnl Makefile.
53121934Shartiif test x"${CXX}" = xc++ ; then
54121934Sharti    CXX=`echo gcc | sed -e "${program_transform_name}"`
55121934Shartifi
56121934Sharti
57121934Shartidnl Get G++'s full path to libgcc.a
58121934Shartilibgccpath=`${CXX} --print-libgcc`
59121934Sharti
60121934Shartidnl If we don't have a path with libgcc.a on the end, this isn't G++.
61121934Shartiif test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then
62121934Sharti   ac_cv_prog_gxx=yes
63121934Shartielse
64121934Sharti   ac_cv_prog_gxx=no
65121934Shartifi
66121934Sharti
67121934Shartidnl If we are using G++, look for the files that need to exist if this
68121934Shartidnl compiler works.
69121934Shartiif test x"${ac_cv_prog_gxx}" = xyes ; then
70121934Sharti    gccfiles=`echo $libgccpath | sed -e 's:/libgcc.a::'`
71121934Sharti    if test -f ${gccfiles}/specs -a -f ${gccfiles}/cpp -a -f ${gccfiles}/cc1plus; then
72121934Sharti	gccfiles=yes
73121934Sharti    else
74121934Sharti	gccfiles=no
75121934Sharti    fi
76121934Sharti    gcclibs=`echo $libgccpath | sed -e 's:lib/gcc-lib/::' -e 's:/libgcc.a::' -e 's,\(.*\)/.*,\1,g'`/lib
77121934Sharti    if test -d ${gcclibs}/ldscripts -a -f ${gcclibs}/libc.a -a -f ${gcclibs}/libstdc++.a ; then
78121934Sharti	gcclibs=yes
79121934Sharti    else
80121934Sharti	gcclibs=no
81121934Sharti    fi
82121934Shartifi
83121934Sharti
84121934Shartidnl If everything is OK, then we can safely assume the compiler works.
85121934Shartiif test x"${gccfiles}" = xno -o x"${gcclibs}" = xno; then
86121934Sharti    ac_cv_prog_cxx_works=no
87121934Sharti    AC_MSG_ERROR(${CXX} is a non-working cross compiler)
88121934Shartielse
89121934Sharti   ac_cv_prog_cxx_works=yes 
90121934Shartifi
91121934Sharti
92121934ShartiAC_LANG_RESTORE
93121934ShartiAC_MSG_RESULT($ac_cv_prog_cxx_works)
94121934Shartiif test x"$ac_cv_prog_cxx_works" = xno; then
95121934Sharti  AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.])
96121934Shartifi
97121934ShartiAC_MSG_CHECKING([whether the G++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
98121934ShartiAC_MSG_RESULT($ac_cv_prog_cxx_cross)
99121934Sharticross_compiling=$ac_cv_prog_cxx_cross
100121934ShartiAC_SUBST(CXX)
101121934Sharti])
102121934Sharti
103121934Shartidnl ====================================================================
104121934Shartidnl Find a working GCC cross compiler. This only works for the GNU gcc compiler.
105121934Shartidnl This is based on the macros above for G++.
106121934ShartiAC_DEFUN(CYG_AC_PROG_CC_CROSS,
107121934Sharti[AC_BEFORE([$0], [AC_PROG_CCPP])
108121934ShartiAC_CHECK_PROGS(CC, cc, gcc)
109121934Sharti
110121934ShartiCYG_AC_PROG_GCC_WORKS
111121934Sharti
112121934Shartiif test $ac_cv_prog_gcc = yes; then
113121934Sharti  GCC=yes
114121934Shartidnl Check whether -g works, even if CFLAGS is set, in case the package
115121934Shartidnl plays around with CFLAGS (such as to build both debugging and
116121934Shartidnl normal versions of a library), tasteless as that idea is.
117121934Sharti  ac_test_CFLAGS="${CFLAGS+set}"
118121934Sharti  ac_save_CFLAGS="$CFLAGS"
119121934Sharti  CFLAGS=
120121934Sharti  AC_PROG_CC_G
121121934Sharti  if test "$ac_test_CFLAGS" = set; then
122121934Sharti    CFLAGS="$ac_save_CFLAGS"
123121934Sharti  elif test $ac_cv_prog_cc_g = yes; then
124121934Sharti    CFLAGS="-g -O2"
125121934Sharti  else
126121934Sharti    CFLAGS="-O2"
127121934Sharti  fi
128121934Shartielse
129121934Sharti  GXX=
130121934Sharti  test "${CFLAGS+set}" = set || CFLAGS="-g"
131121934Shartifi
132121934Sharti])
133121934Sharti
134121934Shartidnl See if the GCC compiler we found works.
135121934ShartiAC_DEFUN(CYG_AC_PROG_GCC_WORKS,
136121934Sharti[AC_MSG_CHECKING([whether the Gcc compiler ($CC $CFLAGS $LDFLAGS) actually works])
137121934ShartiAC_LANG_SAVE
138121934ShartiAC_LANG_C
139121934Shartidnl Try a test case. We only compile, because it's close to impossible
140121934Shartidnl to get a correct fully linked executable with a cross
141121934Shartidnl compiler. For most cross compilers, this test is bogus. For G++,
142121934Shartidnl we can use various other compile line options to get a decent idea
143121934Shartidnl that the cross compiler actually does work, even though we can't
144121934Shartidnl produce an executable without more info about the target it's
145121934Shartidnl being compiled for. This only works for the GNU C++ compiler.
146121934Sharti
147121934Shartidnl Transform the name of the compiler to it's cross variant, unless
148121934Shartidnl CXX is set. This is also what CC gets set to in the generated Makefile.
149121934Shartiif test x"${CC}" = xcc ; then
150121934Sharti    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; 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; 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; 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; 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; 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; 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; 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; 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; 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 simulator library.
378AC_DEFUN(CYG_AC_PATH_SIM, [
379dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.. ../../../../../../../../../.."
380case "$target_cpu" in
381    powerpc)	target_dir=ppc ;;
382    sparc*)	target_dir=erc32 ;;
383    mips*)	target_dir=mips ;;
384    *)		target_dir=$target_cpu ;;
385esac
386dnl First look for the header file
387AC_MSG_CHECKING(for the simulator header file)
388AC_CACHE_VAL(ac_cv_c_simh,[
389for i in $dirlist; do
390    if test -f "${srcdir}/$i/include/remote-sim.h" ; then
391	ac_cv_c_simh=`(cd ${srcdir}/$i/include; pwd)`
392	break
393    fi
394done
395])
396if test x"${ac_cv_c_simh}" != x; then
397    SIMHDIR="-I${ac_cv_c_simh}"
398    AC_MSG_RESULT(${ac_cv_c_simh})
399else
400    AC_MSG_RESULT(none)
401fi
402AC_SUBST(SIMHDIR)
403
404dnl See whether it's a devo or Foundry branch simulator
405AC_MSG_CHECKING(Whether this is a devo simulator )
406AC_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])
412if test x"$ac_cv_c_simdevo" = x"yes" ; then
413    AC_DEFINE(HAVE_DEVO_SIM)
414fi
415AC_MSG_RESULT(${ac_cv_c_simdevo})
416AC_SUBST(HAVE_DEVO_SIM)
417
418dnl Next look for the library
419AC_MSG_CHECKING(for the simulator library)
420AC_CACHE_VAL(ac_cv_c_simlib,[
421for i in $dirlist; do
422    if test -f "$i/sim/$target_dir/Makefile" ; then
423	ac_cv_c_simlib=`(cd $i/sim/$target_dir; pwd)`
424    fi
425done
426])
427if test x"${ac_cv_c_simlib}" != x; then
428    SIMLIB="-L${ac_cv_c_simlib}"
429else
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.
434dnl     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
441changequote(,)
442    gccpath=`${CROSS_GCC} --print-libgcc | sed -e 's:[a-z0-9A-Z\.\-]*/libgcc.a::' -e 's:lib/gcc-lib/::'`lib
443changequote([,])
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)
452dnl         ac_cv_c_simlib=none
453    fi
454fi
455AC_SUBST(SIMLIB)
456])
457
458dnl ====================================================================
459dnl Find the libiberty library.
460AC_DEFUN(CYG_AC_PATH_LIBIBERTY, [
461AC_MSG_CHECKING(for the libiberty library in the build tree)
462dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
463AC_CACHE_VAL(ac_cv_c_libib,[
464for i in $dirlist; do
465    if test -f "$i/libiberty/Makefile" ; then
466	ac_cv_c_libib=`(cd $i/libiberty/; pwd)`
467    fi
468done
469])
470if test x"${ac_cv_c_libib}" != x; then
471    LIBIBERTY="-L${ac_cv_c_libib}"
472    AC_MSG_RESULT(${ac_cv_c_libib})
473else
474    AC_MSG_RESULT(none)
475fi
476AC_SUBST(LIBIBERTY)
477])
478
479dnl ====================================================================
480AC_DEFUN(CYG_AC_PATH_DEVO, [
481AC_MSG_CHECKING(for devo headers in the source tree)
482dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
483AC_CACHE_VAL(ac_cv_c_devoh,[
484for i in $dirlist; do
485    if test -f "${srcdir}/$i/include/remote-sim.h" ; then
486	ac_cv_c_devoh=`(cd ${srcdir}/$i/include; pwd)`
487    fi
488done
489])
490if test x"${ac_cv_c_devoh}" != x; then
491    DEVOHDIR="-I${ac_cv_c_devoh}"
492    AC_MSG_RESULT(${ac_cv_c_devoh})
493else
494    AC_MSG_RESULT(none)
495fi
496AC_SUBST(DEVOHDIR)
497])
498
499dnl ====================================================================
500dnl find the IDE library and headers.
501AC_DEFUN(CYG_AC_PATH_IDE, [
502AC_MSG_CHECKING(for IDE headers in the source tree)
503dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
504IDEHDIR=
505IDELIB=
506AC_CACHE_VAL(ac_cv_c_ideh,[
507for i in $dirlist; do
508    if test -f "${srcdir}/$i/libide/src/event.h" ; then
509	ac_cv_c_ideh=`(cd ${srcdir}/$i/libide/src; pwd)`;
510    fi
511done
512])
513if test x"${ac_cv_c_ideh}" != x; then
514    IDEHDIR="-I${ac_cv_c_ideh}"
515    AC_MSG_RESULT(${ac_cv_c_ideh})
516else
517    AC_MSG_RESULT(none)
518fi
519
520AC_MSG_CHECKING(for LIBIDE TCL headers in the source tree)
521AC_CACHE_VAL(ac_cv_c_idetclh,[
522for i in $dirlist; do
523    if test -f "${srcdir}/$i/libidetcl/src/idetcl.h" ; then
524	ac_cv_c_idetclh=`(cd ${srcdir}/$i/libidetcl/src; pwd)`;
525    fi
526done
527])
528if test x"${ac_cv_c_idetclh}" != x; then
529    IDEHDIR="${IDEHDIR} -I${ac_cv_c_idetclh}"
530    AC_MSG_RESULT(${ac_cv_c_idetclh})
531else
532    AC_MSG_RESULT(none)
533fi
534
535AC_MSG_CHECKING(for IDE headers in the build tree)
536AC_CACHE_VAL(ac_cv_c_ideh2,[
537for i in $dirlist; do
538    if test -f "$i/libide/src/Makefile" ; then
539	ac_cv_c_ideh2=`(cd $i/libide/src; pwd)`;
540    fi
541done
542])
543if test x"${ac_cv_c_ideh2}" != x; then
544    IDEHDIR="${IDEHDIR} -I${ac_cv_c_ideh2}"
545    AC_MSG_RESULT(${ac_cv_c_ideh2})
546else
547    AC_MSG_RESULT(none)
548fi
549
550dnl look for the library
551AC_MSG_CHECKING(for IDE library)
552AC_CACHE_VAL(ac_cv_c_idelib,[
553if test x"${ac_cv_c_idelib}" = x ; then
554    for i in $dirlist; do
555      if test -f "$i/libide/src/Makefile" ; then
556        ac_cv_c_idelib=`(cd $i/libide/src; pwd)`
557        break
558      fi
559    done
560fi]) 
561if test x"${ac_cv_c_idelib}" != x ; then
562     IDELIB="-L${ac_cv_c_idelib}"
563     AC_MSG_RESULT(${ac_cv_c_idelib})
564else
565     AC_MSG_RESULT(none)
566fi
567
568dnl find libiddetcl.a if it exists
569AC_MSG_CHECKING(for IDE TCL library)
570AC_CACHE_VAL(ac_cv_c_idetcllib,[
571if test x"${ac_cv_c_idetcllib}" = x ; then
572    for i in $dirlist; do
573      if test -f "$i/libidetcl/src/Makefile" ; then
574        ac_cv_c_idetcllib=`(cd $i/libidetcl/src; pwd)`
575        break
576      fi
577    done
578fi
579]) 
580if test x"${ac_cv_c_idetcllib}" != x ; then
581     IDELIB="${IDELIB} -L${ac_cv_c_idetcllib}"
582     IDETCLLIB="-lidetcl"
583     AC_MSG_RESULT(${ac_cv_c_idetcllib})
584else
585     AC_MSG_RESULT(none)
586fi
587AC_SUBST(IDEHDIR)
588AC_SUBST(IDELIB)
589AC_SUBST(IDETCLLIB)
590])
591
592dnl ====================================================================
593dnl Find all the ILU headers and libraries
594AC_DEFUN(CYG_AC_PATH_ILU, [
595AC_MSG_CHECKING(for ILU kernel headers in the source tree)
596dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
597AC_CACHE_VAL(ac_cv_c_iluh,[
598for i in $dirlist; do
599    if test -f "${srcdir}/$i/ilu/runtime/kernel/method.h" ; then
600	ac_cv_c_iluh=`(cd ${srcdir}/$i/ilu/runtime/kernel; pwd)`
601    fi
602done
603])
604if test x"${ac_cv_c_iluh}" != x; then
605    ILUHDIR="-I${ac_cv_c_iluh}"
606    AC_MSG_RESULT(${ac_cv_c_iluh})
607else
608    AC_MSG_RESULT(none)
609fi
610
611AC_MSG_CHECKING(for ILU kernel headers in the build tree)
612dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
613AC_CACHE_VAL(ac_cv_c_iluh5,[
614for i in $dirlist; do
615    if test -f "$i/ilu/runtime/kernel/iluconf.h" ; then
616	ac_cv_c_iluh5=`(cd $i/ilu/runtime/kernel; pwd)`
617    fi
618done
619])
620if test x"${ac_cv_c_iluh5}" != x; then
621    ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh5}"
622    AC_MSG_RESULT(${ac_cv_c_iluh5})
623else
624    AC_MSG_RESULT(none)
625fi
626
627AC_MSG_CHECKING(for ILU C++ headers in the source tree)
628AC_CACHE_VAL(ac_cv_c_iluh2,[
629for i in $dirlist; do
630    if test -f "${srcdir}/$i/ilu/stubbers/cpp/resource.h" ; then
631	ac_cv_c_iluh2=`(cd ${srcdir}/$i/ilu/stubbers/cpp; pwd)`
632    fi
633done
634])
635if test x"${ac_cv_c_iluh2}" != x; then
636    ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh2}"
637    AC_MSG_RESULT(${ac_cv_c_iluh2})
638else
639    AC_MSG_RESULT(none)
640fi
641
642AC_MSG_CHECKING(for ILU C headers)
643AC_CACHE_VAL(ac_cv_c_iluh3,[
644for i in $dirlist; do
645    if test -f "${srcdir}/$i/ilu/stubbers/c/resource.h" ; then
646	ac_cv_c_iluh3=`(cd ${srcdir}/$i/ilu/stubbers/c  ; pwd)`
647    fi
648done
649])
650if test x"${ac_cv_c_iluh3}" != x; then
651    ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh3}"
652    AC_MSG_RESULT(${ac_cv_c_iluh3})
653else
654    AC_MSG_RESULT(none)
655fi
656
657AC_MSG_CHECKING(for ILU C runtime headers)
658AC_CACHE_VAL(ac_cv_c_iluh4,[
659for i in $dirlist; do
660    if test -f "${srcdir}/$i/ilu/runtime/c/ilucstub.h" ; then
661	ac_cv_c_iluh4=`(cd ${srcdir}/$i/ilu/runtime/c  ; pwd)`
662    fi
663done
664])
665if test x"${ac_cv_c_iluh4}" != x; then
666    ILUHDIR="${ILUHDIR} -I${ac_cv_c_iluh4}"
667    AC_MSG_RESULT(${ac_cv_c_iluh4})
668else
669    AC_MSG_RESULT(none)
670fi
671
672AC_CACHE_VAL(ac_cv_c_ilupath,[
673for i in $dirlist; do
674    if test -f "$i/ilu/Makefile" ; then
675	ac_cv_c_ilupath=`(cd $i/ilu; pwd)`
676	break
677    fi
678done
679])
680ILUTOP=${ac_cv_c_ilupath}
681
682AC_MSG_CHECKING(for the ILU library in the build tree)
683AC_CACHE_VAL(ac_cv_c_ilulib,[
684if test -f "$ac_cv_c_ilupath/runtime/kernel/Makefile" ; then
685    ac_cv_c_ilulib=`(cd $ac_cv_c_ilupath/runtime/kernel; pwd)`
686    AC_MSG_RESULT(found ${ac_cv_c_ilulib}/libilu.a)
687else
688    AC_MSG_RESULT(no)
689fi])
690   
691AC_MSG_CHECKING(for the ILU C++ bindings library in the build tree)
692AC_CACHE_VAL(ac_cv_c_ilulib2,[
693if test -f "$ac_cv_c_ilupath/runtime/cpp/Makefile" ; then
694    ac_cv_c_ilulib2=`(cd $ac_cv_c_ilupath/runtime/cpp; pwd)`
695    AC_MSG_RESULT(found ${ac_cv_c_ilulib2}/libilu-c++.a)
696else
697    AC_MSG_RESULT(no)
698fi])
699
700AC_MSG_CHECKING(for the ILU C bindings library in the build tree)
701AC_CACHE_VAL(ac_cv_c_ilulib3,[
702if test -f "$ac_cv_c_ilupath/runtime/c/Makefile" ; then
703    ac_cv_c_ilulib3=`(cd $ac_cv_c_ilupath/runtime/c; pwd)`
704    AC_MSG_RESULT(found ${ac_cv_c_ilulib3}/libilu-c.a)
705else
706    AC_MSG_RESULT(no)
707fi])
708
709AC_MSG_CHECKING(for the ILU Tk bindings library in the build tree)
710AC_CACHE_VAL(ac_cv_c_ilulib4,[
711if test -f "$ac_cv_c_ilupath/runtime/mainloop/Makefile" ; then
712    ac_cv_c_ilulib4=`(cd $ac_cv_c_ilupath/runtime/mainloop; pwd)`
713    AC_MSG_RESULT(found ${ac_cv_c_ilulib4}/libilu-tk.a)
714else
715    AC_MSG_RESULT(no)
716fi])
717
718if test x"${ac_cv_c_ilulib}" = x -a x"${ac_cv_c_ilulib2}" = x; then
719  ILUHDIR=""
720fi
721
722if test x"${ac_cv_c_ilulib}" != x -a x"${ac_cv_c_ilulib2}" != x; then
723    ILULIB="-L${ac_cv_c_ilulib} -L${ac_cv_c_ilulib2} -L${ac_cv_c_ilulib3} -L${ac_cv_c_ilulib4}"
724else
725    ILULIB=""
726fi
727
728if test x"${ILULIB}" = x; then
729    AC_MSG_CHECKING(for ILU libraries installed with the compiler)
730    AC_CACHE_VAL(ac_cv_c_ilulib5,[
731    NATIVE_GCC=`echo gcc | sed -e "${program_transform_name}"`
732
733    dnl Get G++'s full path to it's libraries
734    ac_cv_c_ilulib5=`${NATIVE_GCC} --print-libgcc | sed -e 's:lib/gcc-lib/.*::'`lib
735    if test -f $ac_cv_c_ilulib5/libilu-c.a -o -f $ac_cv_c_ilulib5/libilu-c.so ; then
736        if test x"${ILUHDIR}" = x; then
737               ILUHDIR="-I${ac_cv_c_ilulib5}/../include"
738        fi
739        ILULIB="-L${ac_cv_c_ilulib5}"
740        AC_MSG_RESULT(${ac_cv_c_ilulib5})
741    else
742        ac_cv_c_ilulib=none
743        AC_MSG_RESULT(none)
744    fi
745fi])
746AC_SUBST(ILUHDIR)
747AC_SUBST(ILULIB)
748AC_SUBST(ILUTOP)
749])
750
751dnl ====================================================================
752dnl This defines the byte order for the host. We can't use
753dnl AC_C_BIGENDIAN, cause we want to create a config file and
754dnl substitue the real value, so the header files work right
755AC_DEFUN(CYG_AC_C_ENDIAN, [
756AC_MSG_CHECKING(to see if this is a little endian host)
757AC_CACHE_VAL(ac_cv_c_little_endian, [
758ac_cv_c_little_endian=unknown
759# See if sys/param.h defines the BYTE_ORDER macro.
760AC_TRY_COMPILE([#include <sys/types.h>
761#include <sys/param.h>], [
762#if !BYTE_ORDER || !_BIG_ENDIAN || !_LITTLE_ENDIAN
763 bogus endian macros
764#endif], [# It does; now see whether it defined to _LITTLE_ENDIAN or not.
765AC_TRY_COMPILE([#include <sys/types.h>
766#include <sys/param.h>], [
767#if BYTE_ORDER != _LITTLE_ENDIAN
768 not big endian
769#endif], ac_cv_c_little_endian=yes, ac_cv_c_little_endian=no)
770])
771if test ${ac_cv_c_little_endian} = unknown; then
772old_cflags=$CFLAGS
773CFLAGS=-g
774AC_TRY_RUN([
775main () {
776  /* Are we little or big endian?  From Harbison&Steele.  */
777  union
778  {
779    long l;
780    char c[sizeof (long)];
781  } u;
782  u.l = 1;
783  exit (u.c[0] == 1);
784}],
785ac_cv_c_little_endian=no,
786ac_cv_c_little_endian=yes,[
787dnl Yes, this is ugly, and only used for a canadian cross anyway. This
788dnl is just to keep configure from stopping here.
789case "${host}" in
790changequote(,)
791   i[3456]86-*-*) ac_cv_c_little_endian=yes ;;
792   sparc*-*-*)    ac_cv_c_little_endian=no ;;
793changequote([,])
794  *)    AC_MSG_WARN(Can't cross compile this test) ;;
795esac])
796CFLAGS=$old_cflags
797fi])
798
799if test x"${ac_cv_c_little_endian}" = xyes; then
800    AC_DEFINE(LITTLE_ENDIAN_HOST)
801    ENDIAN="CYG_LSBFIRST";
802else
803    ENDIAN="CYG_MSBFIRST";
804fi
805AC_MSG_RESULT(${ac_cv_c_little_endian})
806AC_SUBST(ENDIAN)
807])
808
809dnl ====================================================================
810dnl Look for the path to libgcc, so we can use it to directly link
811dnl in libgcc.a with LD.
812AC_DEFUN(CYG_AC_PATH_LIBGCC,
813[AC_MSG_CHECKING([Looking for the path to libgcc.a])
814AC_LANG_SAVE
815AC_LANG_C
816
817dnl Get Gcc's full path to libgcc.a
818libgccpath=`${CC} --print-libgcc`
819
820dnl If we don't have a path with libgcc.a on the end, this isn't G++.
821if test `echo $libgccpath | sed -e 's:/.*/::'` = libgcc.a ; then
822   ac_cv_prog_gcc=yes
823else
824   ac_cv_prog_gcc=no
825fi
826
827dnl 
828if test x"${ac_cv_prog_gcc}" = xyes ; then
829   gccpath=`echo $libgccpath | sed -e 's:/libgcc.a::'`
830   LIBGCC="-L${gccpath}"
831   AC_MSG_RESULT(${gccpath})
832else
833   LIBGCC=""
834   AC_MSG_ERROR(Not using gcc)
835fi
836
837AC_LANG_RESTORE
838AC_SUBST(LIBGCC)
839])
840
841dnl ====================================================================
842dnl Ok, lets find the tcl source trees so we can use the headers
843dnl Warning: transition of version 9 to 10 will break this algorithm
844dnl because 10 sorts before 9. We also look for just tcl. We have to
845dnl be careful that we don't match stuff like tclX by accident.
846dnl the alternative search directory is involked by --with-tclinclude
847AC_DEFUN(CYG_AC_PATH_TCL, [
848    CYG_AC_PATH_TCLH
849    CYG_AC_PATH_TCLCONFIG
850    CYG_AC_LOAD_TCLCONFIG
851])
852AC_DEFUN(CYG_AC_PATH_TCLH, [
853dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
854no_tcl=true
855AC_MSG_CHECKING(for Tcl headers in the source tree)
856AC_ARG_WITH(tclinclude, [  --with-tclinclude       directory where tcl headers are], with_tclinclude=${withval})
857AC_CACHE_VAL(ac_cv_c_tclh,[
858dnl first check to see if --with-tclinclude was specified
859if test x"${with_tclinclude}" != x ; then
860  if test -f ${with_tclinclude}/tcl.h ; then
861    ac_cv_c_tclh=`(cd ${with_tclinclude}; pwd)`
862  elif test -f ${with_tclinclude}/generic/tcl.h ; then
863    ac_cv_c_tclh=`(cd ${with_tclinclude}/generic; pwd)`
864  else
865    AC_MSG_ERROR([${with_tclinclude} directory doesn't contain headers])
866  fi
867fi
868
869dnl next check if it came with Tcl configuration file
870if test x"${ac_cv_c_tclconfig}" != x ; then
871  for i in $dirlist; do
872    if test -f $ac_cv_c_tclconfig/$i/generic/tcl.h ; then
873      ac_cv_c_tclh=`(cd $ac_cv_c_tclconfig/$i/generic; pwd)`
874      break
875    fi
876  done
877fi
878
879dnl next check in private source directory
880dnl since ls returns lowest version numbers first, reverse its output
881if test x"${ac_cv_c_tclh}" = x ; then
882    dnl find the top level Tcl source directory
883    for i in $dirlist; do
884        if test -n "`ls -dr $srcdir/$i/tcl* 2>/dev/null`" ; then
885	    tclpath=$srcdir/$i
886	    break
887	fi
888    done
889
890    dnl find the exact Tcl source dir. We do it this way, cause there
891    dnl might be multiple version of Tcl, and we want the most recent one.
892    for i in `ls -dr $tclpath/tcl* 2>/dev/null ` ; do
893        if test -f $i/generic/tcl.h ; then
894          ac_cv_c_tclh=`(cd $i/generic; pwd)`
895          break
896        fi
897    done
898fi
899
900dnl check if its installed with the compiler
901if test x"${ac_cv_c_tclh}" = x ; then
902    dnl Get the path to the compiler
903    ccpath=`which ${CC}  | sed -e 's:/bin/.*::'`/include
904    if test -f $ccpath/tcl.h; then
905        ac_cv_c_tclh=$ccpath
906    fi
907fi
908
909dnl see if one is installed
910if test x"${ac_cv_c_tclh}" = x ; then
911   AC_MSG_RESULT(none)
912   AC_CHECK_HEADER(tcl.h, ac_cv_c_tclh=installed, ac_cv_c_tclh="")
913else
914   AC_MSG_RESULT(${ac_cv_c_tclh})
915fi
916])
917  TCLHDIR=""
918if test x"${ac_cv_c_tclh}" = x ; then
919    AC_MSG_ERROR([Can't find any Tcl headers])
920fi
921if test x"${ac_cv_c_tclh}" != x ; then
922    no_tcl=""
923    if test x"${ac_cv_c_tclh}" != x"installed" ; then
924	if test x"${CC}" = xcl ; then
925	    tmp="`cygpath --windows ${ac_cv_c_tclh}`"
926	    ac_cv_c_tclh="`echo $tmp | sed -e s#\\\\\\\\#/#g`"
927	fi
928        AC_MSG_RESULT(${ac_cv_c_tclh})
929        TCLHDIR="-I${ac_cv_c_tclh}"
930    fi
931fi
932
933AC_SUBST(TCLHDIR)
934])
935
936dnl ====================================================================
937dnl Ok, lets find the tcl configuration
938AC_DEFUN(CYG_AC_PATH_TCLCONFIG, [
939dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
940dnl First, look for one uninstalled.  
941dnl the alternative search directory is invoked by --with-tclconfig
942if test x"${no_tcl}" = x ; then
943  dnl we reset no_tcl in case something fails here
944    no_tcl=true
945    AC_ARG_WITH(tclconfig, [  --with-tclconfig           directory containing tcl configuration (tclConfig.sh)],
946         with_tclconfig=${withval})
947    AC_MSG_CHECKING([for Tcl configuration script])
948    AC_CACHE_VAL(ac_cv_c_tclconfig,[
949
950    dnl First check to see if --with-tclconfig was specified.
951    if test x"${with_tclconfig}" != x ; then
952        if test -f "${with_tclconfig}/tclConfig.sh" ; then
953            ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
954        else
955            AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
956        fi
957    fi
958
959    dnl next check if it came with Tcl configuration file in the source tree
960    if test x"${ac_cv_c_tclconfig}" = x ; then
961        for i in $dirlist; do
962            if test -f $srcdir/$i/unix/tclConfig.sh ; then
963                ac_cv_c_tclconfig=`(cd $srcdir/$i/unix; pwd)`
964	        break
965            fi
966        done
967    fi
968    dnl check in a few other locations
969    if test x"${ac_cv_c_tclconfig}" = x ; then
970        dnl find the top level Tcl source directory
971        for i in $dirlist; do
972            if test -n "`ls -dr $i/tcl* 2>/dev/null`" ; then
973	        tclconfpath=$i
974	        break
975	    fi
976        done
977
978        dnl find the exact Tcl dir. We do it this way, cause there
979        dnl might be multiple version of Tcl, and we want the most recent one.
980        for i in `ls -dr $tclconfpath/tcl* 2>/dev/null ` ; do
981            if test -f $i/unix/tclConfig.sh ; then
982                ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
983                break
984            fi
985        done
986    fi
987
988    dnl Check to see if it's installed. We have to look in the $CC path
989    dnl to find it, cause our $prefix may not match the compilers.
990    if test x"${ac_cv_c_tclconfig}" = x ; then
991        dnl Get the path to the compiler
992	ccpath=`which ${CC}  | sed -e 's:/bin/.*::'`/lib
993        if test -f $ccpath/tclConfig.sh; then
994	    ac_cv_c_tclconfig=$ccpath
995        fi
996    fi
997    ])	dnl end of cache_val
998
999    if test x"${ac_cv_c_tclconfig}" = x ; then
1000        TCLCONFIG=""
1001        AC_MSG_WARN(Can't find Tcl configuration definitions)
1002    else
1003        no_tcl=""
1004        TCLCONFIG=${ac_cv_c_tclconfig}/tclConfig.sh
1005        AC_MSG_RESULT(${TCLCONFIG})
1006     fi
1007fi
1008AC_SUBST(TCLCONFIG)
1009])
1010
1011dnl Defined as a separate macro so we don't have to cache the values
1012dnl from PATH_TCLCONFIG (because this can also be cached).
1013AC_DEFUN(CYG_AC_LOAD_TCLCONFIG, [
1014    . $TCLCONFIG
1015
1016dnl AC_SUBST(TCL_VERSION)
1017dnl AC_SUBST(TCL_MAJOR_VERSION)
1018dnl AC_SUBST(TCL_MINOR_VERSION)
1019dnl AC_SUBST(TCL_CC)
1020    AC_SUBST(TCL_DEFS)
1021
1022dnl not used, don't export to save symbols
1023    AC_SUBST(TCL_LIB_FILE)
1024    AC_SUBST(TCL_LIB_FULL_PATH)
1025    AC_SUBST(TCL_LIBS)
1026dnl not used, don't export to save symbols
1027dnl    AC_SUBST(TCL_PREFIX)
1028
1029    AC_SUBST(TCL_CFLAGS)
1030
1031dnl not used, don't export to save symbols
1032dnl    AC_SUBST(TCL_EXEC_PREFIX)
1033
1034    AC_SUBST(TCL_SHLIB_CFLAGS)
1035    AC_SUBST(TCL_SHLIB_LD)
1036dnl don't export, not used outside of configure
1037dnl AC_SUBST(TCL_SHLIB_LD_LIBS)
1038dnl AC_SUBST(TCL_SHLIB_SUFFIX)
1039dnl not used, don't export to save symbols
1040dnl AC_SUBST(TCL_DL_LIBS)
1041    AC_SUBST(TCL_LD_FLAGS)
1042    AC_SUBST(TCL_LD_SEARCH_FLAGS)
1043dnl don't export, not used outside of configure
1044dnl AC_SUBST(TCL_COMPAT_OBJS)
1045    AC_SUBST(TCL_RANLIB)
1046    AC_SUBST(TCL_BUILD_LIB_SPEC)
1047    AC_SUBST(TCL_LIB_SPEC)
1048    AC_SUBST(TCL_BIN_DIR)
1049dnl AC_SUBST(TCL_LIB_VERSIONS_OK)
1050
1051dnl not used, don't export to save symbols
1052dnl    AC_SUBST(TCL_SHARED_LIB_SUFFIX)
1053
1054dnl not used, don't export to save symbols
1055dnl    AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
1056])
1057
1058dnl ====================================================================
1059AC_DEFUN(CYG_AC_PATH_TK, [
1060    CYG_AC_PATH_TKH
1061    CYG_AC_PATH_TKCONFIG
1062    CYG_AC_LOAD_TKCONFIG
1063])
1064AC_DEFUN(CYG_AC_PATH_TKH, [
1065#
1066# Ok, lets find the tk source trees so we can use the headers
1067# If the directory (presumably symlink) named "tk" exists, use that one
1068# in preference to any others.  Same logic is used when choosing library
1069# and again with Tcl. The search order is the best place to look first, then in
1070# decreasing significance. The loop breaks if the trigger file is found.
1071# Note the gross little conversion here of srcdir by cd'ing to the found
1072# directory. This converts the path from a relative to an absolute, so
1073# recursive cache variables for the path will work right. We check all
1074# the possible paths in one loop rather than many seperate loops to speed
1075# things up.
1076# the alternative search directory is involked by --with-tkinclude
1077#
1078dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1079no_tk=true
1080AC_MSG_CHECKING(for Tk headers in the source tree)
1081AC_ARG_WITH(tkinclude, [  --with-tkinclude       directory where tk headers are], with_tkinclude=${withval})
1082AC_CACHE_VAL(ac_cv_c_tkh,[
1083dnl first check to see if --with-tkinclude was specified
1084if test x"${with_tkinclude}" != x ; then
1085  if test -f ${with_tkinclude}/tk.h ; then
1086    ac_cv_c_tkh=`(cd ${with_tkinclude}; pwd)`
1087  elif test -f ${with_tkinclude}/generic/tk.h ; then
1088    ac_cv_c_tkh=`(cd ${with_tkinclude}/generic; pwd)`
1089  else
1090    AC_MSG_ERROR([${with_tkinclude} directory doesn't contain headers])
1091  fi
1092fi
1093
1094dnl next check if it came with Tk configuration file
1095if test x"${ac_cv_c_tkconfig}" != x ; then
1096  for i in $dirlist; do
1097    if test -f $ac_cv_c_tkconfig/$i/generic/tk.h ; then
1098      ac_cv_c_tkh=`(cd $ac_cv_c_tkconfig/$i/generic; pwd)`
1099      break
1100    fi
1101  done
1102fi
1103
1104dnl next check in private source directory
1105dnl since ls returns lowest version numbers first, reverse its output
1106if test x"${ac_cv_c_tkh}" = x ; then
1107    dnl find the top level Tk source directory
1108    for i in $dirlist; do
1109        if test -n "`ls -dr $srcdir/$i/tk* 2>/dev/null`" ; then
1110	    tkpath=$srcdir/$i
1111	    break
1112	fi
1113    done
1114
1115    dnl find the exact Tk source dir. We do it this way, cause there
1116    dnl might be multiple version of Tk, and we want the most recent one.
1117    for i in `ls -dr $tkpath/tk* 2>/dev/null ` ; do
1118        if test -f $i/generic/tk.h ; then
1119          ac_cv_c_tkh=`(cd $i/generic; pwd)`
1120          break
1121        fi
1122    done
1123fi
1124
1125dnl see if one is installed
1126if test x"${ac_cv_c_tkh}" = x ; then
1127    AC_MSG_RESULT(none)
1128    dnl Get the path to the compiler. We do it this way instead of using
1129    dnl AC_CHECK_HEADER, cause this doesn't depend in having X configured.
1130    ccpath=`which ${CC}  | sed -e 's:/bin/.*::'`/include
1131    if test -f $ccpath/tk.h; then
1132	ac_cv_c_tkh=$ccpath
1133    fi
1134else
1135   AC_MSG_RESULT(${ac_cv_c_tkh})
1136fi
1137])
1138  TKHDIR=""
1139if test x"${ac_cv_c_tkh}" = x ; then
1140    AC_MSG_ERROR([Can't find any Tk headers])
1141fi
1142if test x"${ac_cv_c_tkh}" != x ; then
1143    no_tk=""
1144    if test x"${ac_cv_c_tkh}" != x"installed" ; then
1145	if test x"${CC}" = xcl ; then
1146	    tmp="`cygpath --windows ${ac_cv_c_tkh}`"
1147	    ac_cv_c_tkh="`echo $tmp | sed -e s#\\\\\\\\#/#g`"
1148	fi
1149        AC_MSG_RESULT([found in ${ac_cv_c_tkh}])
1150        TKHDIR="-I${ac_cv_c_tkh}"
1151    fi
1152fi
1153
1154AC_SUBST(TKHDIR)
1155])
1156
1157AC_DEFUN(CYG_AC_PATH_TKCONFIG, [
1158dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1159dnl First, look for one uninstalled.  
1160dnl the alternative search directory is invoked by --with-tkconfig
1161if test x"${no_tk}" = x ; then
1162  dnl we reset no_tk in case something fails here
1163    no_tk=true
1164    AC_ARG_WITH(tkconfig, [  --with-tkconfig           directory containing tk configuration (tkConfig.sh)],
1165         with_tkconfig=${withval})
1166    AC_MSG_CHECKING([for Tk configuration script])
1167    AC_CACHE_VAL(ac_cv_c_tkconfig,[
1168
1169    dnl First check to see if --with-tkconfig was specified.
1170    if test x"${with_tkconfig}" != x ; then
1171        if test -f "${with_tkconfig}/tkConfig.sh" ; then
1172            ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
1173        else
1174            AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh])
1175        fi
1176    fi
1177
1178    dnl next check if it came with Tk configuration file in the source tree
1179    if test x"${ac_cv_c_tkconfig}" = x ; then
1180        for i in $dirlist; do
1181            if test -f $srcdir/$i/unix/tkConfig.sh ; then
1182                ac_cv_c_tkconfig=`(cd $srcdir/$i/unix; pwd)`
1183	        break
1184            fi
1185        done
1186    fi
1187    dnl check in a few other locations
1188    if test x"${ac_cv_c_tkconfig}" = x ; then
1189        dnl find the top level Tk source directory
1190        for i in $dirlist; do
1191            if test -n "`ls -dr $i/tk* 2>/dev/null`" ; then
1192	        tkconfpath=$i
1193	        break
1194	    fi
1195        done
1196
1197        dnl find the exact Tk dir. We do it this way, cause there
1198        dnl might be multiple version of Tk, and we want the most recent one.
1199        for i in `ls -dr $tkconfpath/tk* 2>/dev/null ` ; do
1200            if test -f $i/unix/tkConfig.sh ; then
1201                ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
1202                break
1203            fi
1204        done
1205    fi
1206
1207    dnl Check to see if it's installed. We have to look in the $CC path
1208    dnl to find it, cause our $prefix may not match the compilers.
1209    if test x"${ac_cv_c_tkconfig}" = x ; then
1210        dnl Get the path to the compiler
1211	ccpath=`which ${CC}  | sed -e 's:/bin/.*::'`/lib
1212        if test -f $ccpath/tkConfig.sh; then
1213	    ac_cv_c_tkconfig=$ccpath
1214        fi
1215    fi
1216    ])	dnl end of cache_val
1217
1218    if test x"${ac_cv_c_tkconfig}" = x ; then
1219        TKCONFIG=""
1220        AC_MSG_WARN(Can't find Tk configuration definitions)
1221    else
1222        no_tk=""
1223        TKCONFIG=${ac_cv_c_tkconfig}/tkConfig.sh
1224        AC_MSG_RESULT(${TKCONFIG})
1225     fi
1226fi
1227AC_SUBST(TKCONFIG)
1228])
1229
1230dnl Defined as a separate macro so we don't have to cache the values
1231dnl from PATH_TKCONFIG (because this can also be cached).
1232AC_DEFUN(CYG_AC_LOAD_TKCONFIG, [
1233    if test -f "$TKCONFIG" ; then
1234      . $TKCONFIG
1235    fi
1236
1237    AC_SUBST(TK_VERSION)
1238dnl not actually used, don't export to save symbols
1239dnl    AC_SUBST(TK_MAJOR_VERSION)
1240dnl    AC_SUBST(TK_MINOR_VERSION)
1241    AC_SUBST(TK_DEFS)
1242
1243dnl not used, don't export to save symbols
1244    AC_SUBST(TK_LIB_FILE)
1245    AC_SUBST(TK_LIB_FULL_PATH)
1246    AC_SUBST(TK_LIBS)
1247dnl not used, don't export to save symbols
1248dnl    AC_SUBST(TK_PREFIX)
1249
1250dnl not used, don't export to save symbols
1251dnl    AC_SUBST(TK_EXEC_PREFIX)
1252    AC_SUBST(TK_BUILD_INCLUDES)
1253    AC_SUBST(TK_XINCLUDES)
1254    AC_SUBST(TK_XLIBSW)
1255    AC_SUBST(TK_BUILD_LIB_SPEC)
1256    AC_SUBST(TK_LIB_SPEC)
1257])
1258
1259dnl ====================================================================
1260dnl Ok, lets find the itcl source trees so we can use the headers
1261dnl the alternative search directory is involked by --with-itclinclude
1262AC_DEFUN(CYG_AC_PATH_ITCL, [
1263    CYG_AC_PATH_ITCLH
1264    CYG_AC_PATH_ITCLLIB
1265    CYG_AC_PATH_ITCLSH
1266    CYG_AC_PATH_ITCLMKIDX
1267])
1268AC_DEFUN(CYG_AC_PATH_ITCLH, [
1269dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1270no_itcl=true
1271AC_MSG_CHECKING(for Itcl headers in the source tree)
1272AC_ARG_WITH(itclinclude, [  --with-itclinclude       directory where itcl headers are], with_itclinclude=${withval})
1273AC_CACHE_VAL(ac_cv_c_itclh,[
1274dnl first check to see if --with-itclinclude was specified
1275if test x"${with_itclinclude}" != x ; then
1276  if test -f ${with_itclinclude}/itcl.h ; then
1277    ac_cv_c_itclh=`(cd ${with_itclinclude}; pwd)`
1278  elif test -f ${with_itclinclude}/src/itcl.h ; then
1279    ac_cv_c_itclh=`(cd ${with_itclinclude}/src; pwd)`
1280  else
1281    AC_MSG_ERROR([${with_itclinclude} directory doesn't contain headers])
1282  fi
1283fi
1284
1285dnl next check if it came with Itcl configuration file
1286if test x"${ac_cv_c_itclconfig}" != x ; then
1287  for i in $dirlist; do
1288    if test -f $ac_cv_c_itclconfig/$i/src/itcl.h ; then
1289      ac_cv_c_itclh=`(cd $ac_cv_c_itclconfig/$i/src; pwd)`
1290      break
1291    fi
1292  done
1293fi
1294
1295dnl next check in private source directory
1296dnl since ls returns lowest version numbers first, reverse its output
1297if test x"${ac_cv_c_itclh}" = x ; then
1298    dnl find the top level Itcl source directory
1299    for i in $dirlist; do
1300        if test -n "`ls -dr $srcdir/$i/itcl* 2>/dev/null`" ; then
1301	    itclpath=$srcdir/$i
1302	    break
1303	fi
1304    done
1305
1306    dnl find the exact Itcl source dir. We do it this way, cause there
1307    dnl might be multiple version of Itcl, and we want the most recent one.
1308    for i in `ls -dr $itclpath/itcl* 2>/dev/null ` ; do
1309        if test -f $i/src/itcl.h ; then
1310          ac_cv_c_itclh=`(cd $i/src; pwd)`
1311          break
1312        fi
1313    done
1314fi
1315
1316dnl see if one is installed
1317if test x"${ac_cv_c_itclh}" = x ; then
1318   AC_MSG_RESULT(none)
1319   AC_CHECK_HEADER(itcl.h, ac_cv_c_itclh=installed, ac_cv_c_itclh="")
1320else
1321   AC_MSG_RESULT(${ac_cv_c_itclh})
1322fi
1323])
1324  ITCLHDIR=""
1325if test x"${ac_cv_c_itclh}" = x ; then
1326    AC_MSG_ERROR([Can't find any Itcl headers])
1327fi
1328if test x"${ac_cv_c_itclh}" != x ; then
1329    no_itcl=""
1330    if test x"${ac_cv_c_itclh}" != x"installed" ; then
1331        AC_MSG_RESULT(${ac_cv_c_itclh})
1332        ITCLHDIR="-I${ac_cv_c_itclh}"
1333    fi
1334fi
1335
1336AC_SUBST(ITCLHDIR)
1337])
1338
1339dnl Ok, lets find the itcl library
1340dnl First, look for one uninstalled.  
1341dnl the alternative search directory is invoked by --with-itcllib
1342AC_DEFUN(CYG_AC_PATH_ITCLLIB, [
1343dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1344if test x"${no_itcl}" = x ; then
1345    dnl we reset no_itcl incase something fails here
1346    no_itcl=true
1347    AC_ARG_WITH(itcllib,
1348	[  --with-itcllib           directory where the itcl library is],
1349        with_itcllib=${withval})
1350    AC_MSG_CHECKING([for Itcl library])
1351    AC_CACHE_VAL(ac_cv_c_itcllib,[
1352    dnl First check to see if --with-itcllib was specified.
1353    if test x"${with_itcllib}" != x ; then
1354        if test -f "${with_itcllib}/libitcl$TCL_SHARED_LIB_SUFFIX" ; then
1355            ac_cv_c_itcllib=`(cd ${with_itcllib}; pwd)`/libitcl$TCL_SHARED_LIB_SUFFIX
1356	else
1357	    if test -f "${with_itcllib}/libitcl$TCL_UNSHARED_LIB_SUFFIX"; then
1358	 	ac_cv_c_itcllib=`(cd ${with_itcllib}; pwd)`/libitcl$TCL_UNSHARED_LIB_SUFFIX
1359	    fi
1360	fi
1361    fi
1362    dnl then check for a  Itcl library. Since these are uninstalled,
1363    dnl use the simple lib name root. 
1364    if test x"${ac_cv_c_itcllib}" = x ; then
1365        dnl find the top level Itcl build directory
1366        for i in $dirlist; do
1367            if test -n "`ls -dr $i/itcl* 2>/dev/null`" ; then
1368	        itclpath=$i/itcl
1369	        break
1370	    fi
1371        done
1372        dnl Itcl 7.5 and greater puts library in subdir.  Look there first.
1373        if test -f "$itclpath/src/libitcl.$TCL_SHLIB_SUFFIX" ; then
1374	     ac_cv_c_itcllib=`(cd $itclpath/src; pwd)`
1375        elif test -f "$itclpath/src/libitcl.a"; then
1376	     ac_cv_c_itcllib=`(cd $itclpath/src; pwd)`
1377	fi
1378    fi
1379    dnl check in a few other private locations
1380    if test x"${ac_cv_c_itcllib}" = x ; then
1381        for i in ${dirlist}; do
1382            if test -n "`ls -dr ${srcdir}/$i/itcl* 2>/dev/null`" ; then
1383	        itclpath=${srcdir}/$i
1384	        break
1385	    fi
1386        done
1387        for i in `ls -dr ${itclpath}/itcl* 2>/dev/null` ; do
1388            dnl Itcl 7.5 and greater puts library in subdir.  Look there first.
1389            if test -f "$i/src/libitcl$TCL_SHLIB_SUFFIX" ; then
1390	        ac_cv_c_itcllib=`(cd $i/src; pwd)`
1391	        break
1392            elif test -f "$i/src/libitcl.a"; then
1393	        ac_cv_c_itcllib=`(cd $i/src; pwd)`
1394	        break
1395	    fi	
1396        done
1397    fi
1398
1399    dnl see if one is conveniently installed with the compiler
1400    if test x"${ac_cv_c_itcllib}" = x ; then
1401        dnl Get the path to the compiler
1402	ccpath=`which ${CC}  | sed -e 's:/bin/.*::'`/lib
1403        dnl Itcl 7.5 and greater puts library in subdir.  Look there first.
1404        if test -f "${ccpath}/libitcl$TCL_SHLIB_SUFFIX" ; then
1405	    ac_cv_c_itcllib=`(cd ${ccpath}; pwd)`
1406        elif test -f "${ccpath}/libitcl.a"; then
1407	    ac_cv_c_itcllib=`(cd ${ccpath}; pwd)`
1408        fi
1409    fi
1410    ])
1411    if test x"${ac_cv_c_itcllib}" = x ; then
1412        ITCLLIB=""
1413        AC_MSG_WARN(Can't find Itcl library)
1414    else
1415        ITCLLIB="-L${ac_cv_c_itcllib}"
1416        AC_MSG_RESULT(${ac_cv_c_itcllib})
1417        no_itcl=""
1418    fi
1419fi
1420
1421AC_PROVIDE([$0])
1422AC_SUBST(ITCLLIB)
1423])
1424
1425
1426dnl ====================================================================
1427dnl Ok, lets find the itcl source trees so we can use the itcl_sh script
1428dnl the alternative search directory is involked by --with-itclinclude
1429AC_DEFUN(CYG_AC_PATH_ITCLSH, [
1430dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1431no_itcl=true
1432AC_MSG_CHECKING(for the itcl_sh script)
1433AC_ARG_WITH(itclinclude, [  --with-itclinclude       directory where itcl headers are], with_itclinclude=${withval})
1434AC_CACHE_VAL(ac_cv_c_itclsh,[
1435dnl first check to see if --with-itclinclude was specified
1436if test x"${with_itclinclude}" != x ; then
1437  if test -f ${with_itclinclude}/itcl_sh ; then
1438    ac_cv_c_itclsh=`(cd ${with_itclinclude}; pwd)`
1439  elif test -f ${with_itclinclude}/src/itcl_sh ; then
1440    ac_cv_c_itclsh=`(cd ${with_itclinclude}/src; pwd)`
1441  else
1442    AC_MSG_ERROR([${with_itclinclude} directory doesn't contain itcl_sh])
1443  fi
1444fi
1445
1446dnl next check in private source directory
1447dnl since ls returns lowest version numbers first, reverse its output
1448if test x"${ac_cv_c_itclsh}" = x ; then
1449    dnl find the top level Itcl source directory
1450    for i in $dirlist; do
1451        if test -n "`ls -dr $srcdir/$i/itcl* 2>/dev/null`" ; then
1452	    itclpath=$srcdir/$i
1453	    break
1454	fi
1455    done
1456
1457    dnl find the exact Itcl source dir. We do it this way, cause there
1458    dnl might be multiple version of Itcl, and we want the most recent one.
1459    for i in `ls -dr $itclpath/itcl* 2>/dev/null ` ; do
1460        if test -f $i/src/itcl_sh ; then
1461          ac_cv_c_itclsh=`(cd $i/src; pwd)`/itcl_sh
1462          break
1463        fi
1464    done
1465fi
1466
1467dnl see if one is installed
1468if test x"${ac_cv_c_itclsh}" = x ; then
1469   AC_MSG_RESULT(none)
1470   AC_PATH_PROG(ac_cv_c_itclsh, itcl_sh)
1471else
1472   AC_MSG_RESULT(${ac_cv_c_itclsh})
1473fi
1474])
1475
1476if test x"${ac_cv_c_itclsh}" = x ; then
1477    AC_MSG_ERROR([Can't find the itcl_sh script])
1478fi
1479if test x"${ac_cv_c_itclsh}" != x ; then
1480    no_itcl=""
1481    AC_MSG_RESULT(${ac_cv_c_itclsh})
1482    ITCLSH="${ac_cv_c_itclsh}"
1483fi
1484AC_SUBST(ITCLSH)
1485])
1486
1487
1488dnl ====================================================================
1489dnl Ok, lets find the itcl source trees so we can use the itcl_sh script
1490dnl the alternative search directory is involked by --with-itclinclude
1491AC_DEFUN(CYG_AC_PATH_ITCLMKIDX, [
1492dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1493no_itcl=true
1494AC_MSG_CHECKING(for itcl_mkindex.tcl script)
1495AC_ARG_WITH(itclinclude, [  --with-itclinclude       directory where itcl headers are], with_itclinclude=${withval})
1496AC_CACHE_VAL(ac_cv_c_itclmkidx,[
1497dnl first check to see if --with-itclinclude was specified
1498if test x"${with_itclinclude}" != x ; then
1499  if test -f ${with_itclinclude}/itcl_sh ; then
1500    ac_cv_c_itclmkidx=`(cd ${with_itclinclude}; pwd)`
1501  elif test -f ${with_itclinclude}/src/itcl_sh ; then
1502    ac_cv_c_itclmkidx=`(cd ${with_itclinclude}/src; pwd)`
1503  else
1504    AC_MSG_ERROR([${with_itclinclude} directory doesn't contain itcl_sh])
1505  fi
1506fi
1507
1508dnl next check in private source directory
1509dnl since ls returns lowest version numbers first, reverse its output
1510if test x"${ac_cv_c_itclmkidx}" = x ; then
1511    dnl find the top level Itcl source directory
1512    for i in $dirlist; do
1513        if test -n "`ls -dr $srcdir/$i/itcl* 2>/dev/null`" ; then
1514	    itclpath=$srcdir/$i
1515	    break
1516	fi
1517    done
1518
1519    dnl find the exact Itcl source dir. We do it this way, cause there
1520    dnl might be multiple version of Itcl, and we want the most recent one.
1521    for i in `ls -dr $itclpath/itcl* 2>/dev/null ` ; do
1522        if test -f $i/library/itcl_mkindex.tcl ; then
1523          ac_cv_c_itclmkidx=`(cd $i/library; pwd)`/itcl_mkindex.tcl
1524          break
1525        fi
1526    done
1527fi
1528if test x"${ac_cv_c_itclmkidx}" = x ; then
1529    dnl Get the path to the compiler
1530    ccpath=`which ${CC}  | sed -e 's:/bin/.*::'`/share
1531    dnl Itcl 7.5 and greater puts library in subdir.  Look there first.
1532    for i in `ls -dr $ccpath/itcl* 2>/dev/null ` ; do
1533        if test -f $i/itcl_mkindex.tcl ; then
1534            ac_cv_c_itclmkidx=`(cd $i; pwd)`/itcl_mkindex.tcl
1535            break
1536        fi
1537    done
1538fi
1539])
1540
1541if test x"${ac_cv_c_itclmkidx}" = x ; then
1542    AC_MSG_ERROR([Can't find the itcl_mkindex.tcl script])
1543fi
1544if test x"${ac_cv_c_itclmkidx}" != x ; then
1545    no_itcl=""
1546    AC_MSG_RESULT(${ac_cv_c_itclmkidx})
1547    ITCLMKIDX="${ac_cv_c_itclmkidx}"
1548else
1549   AC_MSG_RESULT(none)
1550fi
1551AC_SUBST(ITCLMKIDX)
1552])
1553
1554dnl ====================================================================
1555dnl Ok, lets find the tix source trees so we can use the headers
1556dnl the alternative search directory is involked by --with-tixinclude
1557AC_DEFUN(CYG_AC_PATH_TIX, [
1558    CYG_AC_PATH_TIXH
1559    CYG_AC_PATH_TIXLIB
1560])
1561AC_DEFUN(CYG_AC_PATH_TIXH, [
1562dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1563no_tix=true
1564AC_MSG_CHECKING(for Tix headers in the source tree)
1565AC_ARG_WITH(tixinclude, [  --with-tixinclude       directory where tix headers are], with_tixinclude=${withval})
1566AC_CACHE_VAL(ac_cv_c_tixh,[
1567dnl first check to see if --with-tixinclude was specified
1568if test x"${with_tixinclude}" != x ; then
1569  if test -f ${with_tixinclude}/tix.h ; then
1570    ac_cv_c_tixh=`(cd ${with_tixinclude}; pwd)`
1571  elif test -f ${with_tixinclude}/generic/tix.h ; then
1572    ac_cv_c_tixh=`(cd ${with_tixinclude}/generic; pwd)`
1573  else
1574    AC_MSG_ERROR([${with_tixinclude} directory doesn't contain headers])
1575  fi
1576fi
1577
1578dnl next check if it came with Tix configuration file
1579if test x"${ac_cv_c_tixconfig}" != x ; then
1580  for i in $dirlist; do
1581    if test -f $ac_cv_c_tixconfig/$i/generic/tix.h ; then
1582      ac_cv_c_tixh=`(cd $ac_cv_c_tixconfig/$i/generic; pwd)`
1583      break
1584    fi
1585  done
1586fi
1587
1588dnl next check in private source directory
1589dnl since ls returns lowest version numbers first, reverse its output
1590if test x"${ac_cv_c_tixh}" = x ; then
1591    dnl find the top level Tix source directory
1592    for i in $dirlist; do
1593        if test -n "`ls -dr $srcdir/$i/tix* 2>/dev/null`" ; then
1594	    tixpath=$srcdir/$i
1595	    break
1596	fi
1597    done
1598
1599    dnl find the exact Tix source dir. We do it this way, cause there
1600    dnl might be multiple version of Tix, and we want the most recent one.
1601    for i in `ls -dr $tixpath/tix* 2>/dev/null ` ; do
1602        if test -f $i/generic/tix.h ; then
1603          ac_cv_c_tixh=`(cd $i/generic; pwd)`
1604          break
1605        fi
1606    done
1607fi
1608
1609dnl see if one is installed
1610if test x"${ac_cv_c_tixh}" = x ; then
1611    AC_MSG_RESULT(none)
1612    dnl Get the path to the compiler
1613
1614   dnl Get the path to the compiler. We do it this way instead of using
1615    dnl AC_CHECK_HEADER, cause this doesn't depend in having X configured.
1616    ccpath=`which ${CC}  | sed -e 's:/bin/.*::'`/include
1617    if test -f $ccpath/tix.h; then
1618	ac_cv_c_tixh=installed
1619    fi
1620else
1621   AC_MSG_RESULT(${ac_cv_c_tixh})
1622fi
1623])
1624if test x"${ac_cv_c_tixh}" = x ; then
1625    AC_MSG_ERROR([Can't find any Tix headers])
1626fi
1627if test x"${ac_cv_c_tixh}" != x ; then
1628    no_tix=""
1629    AC_MSG_RESULT(${ac_cv_c_tixh})
1630    if test x"${ac_cv_c_tixh}" != x"installed" ; then
1631        TIXHDIR="-I${ac_cv_c_tixh}"
1632    fi
1633fi
1634
1635AC_SUBST(TIXHDIR)
1636])
1637
1638AC_DEFUN(CYG_AC_PATH_TIXCONFIG, [
1639#
1640# Ok, lets find the tix configuration
1641# First, look for one uninstalled.  
1642# the alternative search directory is invoked by --with-tixconfig
1643#
1644
1645if test x"${no_tix}" = x ; then
1646  # we reset no_tix in case something fails here
1647  no_tix=true
1648  AC_ARG_WITH(tixconfig, [  --with-tixconfig           directory containing tix configuration (tixConfig.sh)],
1649         with_tixconfig=${withval})
1650  AC_MSG_CHECKING([for Tix configuration])
1651  AC_CACHE_VAL(ac_cv_c_tixconfig,[
1652
1653  # First check to see if --with-tixconfig was specified.
1654  if test x"${with_tixconfig}" != x ; then
1655    if test -f "${with_tixconfig}/tixConfig.sh" ; then
1656      ac_cv_c_tixconfig=`(cd ${with_tixconfig}; pwd)`
1657    else
1658      AC_MSG_ERROR([${with_tixconfig} directory doesn't contain tixConfig.sh])
1659    fi
1660  fi
1661
1662  # then check for a private Tix library
1663  if test x"${ac_cv_c_tixconfig}" = x ; then
1664    for i in \
1665		../tix \
1666		`ls -dr ../tix[[4]]* 2>/dev/null` \
1667		../../tix \
1668		`ls -dr ../../tix[[4]]* 2>/dev/null` \
1669		../../../tix \
1670		`ls -dr ../../../tix[[4]]* 2>/dev/null` ; do
1671      if test -f "$i/tixConfig.sh" ; then
1672        ac_cv_c_tixconfig=`(cd $i; pwd)`
1673	break
1674      fi
1675    done
1676  fi
1677  # check in a few common install locations
1678  if test x"${ac_cv_c_tixconfig}" = x ; then
1679    for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
1680      if test -f "$i/tixConfig.sh" ; then
1681        ac_cv_c_tkconfig=`(cd $i; pwd)`
1682	break
1683      fi
1684    done
1685  fi
1686  # check in a few other private locations
1687  if test x"${ac_cv_c_tixconfig}" = x ; then
1688    for i in \
1689		${srcdir}/../tix \
1690		`ls -dr ${srcdir}/../tix[[4-9]]* 2>/dev/null` ; do
1691      if test -f "$i/tixConfig.sh" ; then
1692        ac_cv_c_tixconfig=`(cd $i; pwd)`
1693	break
1694      fi
1695    done
1696  fi
1697  ])
1698  if test x"${ac_cv_c_tixconfig}" = x ; then
1699    TIXCONFIG="# no Tix configs found"
1700    AC_MSG_WARN(Can't find Tix configuration definitions)
1701  else
1702    no_tix=
1703    TIXCONFIG=${ac_cv_c_tixconfig}/tixConfig.sh
1704    AC_MSG_RESULT(found $TIXCONFIG)
1705  fi
1706fi
1707
1708])
1709
1710# Defined as a separate macro so we don't have to cache the values
1711# from PATH_TIXCONFIG (because this can also be cached).
1712AC_DEFUN(CYG_AC_LOAD_TIXCONFIG, [
1713    if test -f "$TIXCONFIG" ; then
1714      . $TIXCONFIG
1715    fi
1716
1717    AC_SUBST(TIX_BUILD_LIB_SPEC)
1718    AC_SUBST(TIX_LIB_FULL_PATH)
1719])
1720
1721AC_DEFUN(CYG_AC_PATH_ITCLCONFIG, [
1722#
1723# Ok, lets find the itcl configuration
1724# First, look for one uninstalled.  
1725# the alternative search directory is invoked by --with-itclconfig
1726#
1727
1728if test x"${no_itcl}" = x ; then
1729  # we reset no_itcl in case something fails here
1730  no_itcl=true
1731  AC_ARG_WITH(itclconfig, [  --with-itclconfig           directory containing itcl configuration (itclConfig.sh)],
1732         with_itclconfig=${withval})
1733  AC_MSG_CHECKING([for Itcl configuration])
1734  AC_CACHE_VAL(ac_cv_c_itclconfig,[
1735
1736  # First check to see if --with-itclconfig was specified.
1737  if test x"${with_itclconfig}" != x ; then
1738    if test -f "${with_itclconfig}/itclConfig.sh" ; then
1739      ac_cv_c_itclconfig=`(cd ${with_itclconfig}; pwd)`
1740    else
1741      AC_MSG_ERROR([${with_itclconfig} directory doesn't contain itclConfig.sh])
1742    fi
1743  fi
1744
1745  # then check for a private itcl library
1746  if test x"${ac_cv_c_itclconfig}" = x ; then
1747    for i in \
1748		../itcl/itcl \
1749		`ls -dr ../itcl/itcl[[3]]* 2>/dev/null` \
1750		../../itcl/itcl \
1751		`ls -dr ../../itcl/itcl[[3]]* 2>/dev/null` \
1752		../../../itcl/itcl \
1753		`ls -dr ../../../itcl/itcl[[3]]* 2>/dev/null` ; do
1754      if test -f "$i/itclConfig.sh" ; then
1755        ac_cv_c_itclconfig=`(cd $i; pwd)`
1756	break
1757      fi
1758    done
1759  fi
1760  # check in a few common install locations
1761  if test x"${ac_cv_c_itclconfig}" = x ; then
1762    for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
1763      if test -f "$i/itclConfig.sh" ; then
1764        ac_cv_c_itclconfig=`(cd $i; pwd)`
1765	break
1766      fi
1767    done
1768  fi
1769  # check in a few other private locations
1770  if test x"${ac_cv_c_itclconfig}" = x ; then
1771    for i in \
1772		${srcdir}/../itcl/itcl \
1773		`ls -dr ${srcdir}/../itcl/itcl[[3]]* 2>/dev/null` ; do
1774      if test -f "$i/itcl/itclConfig.sh" ; then
1775        ac_cv_c_itclconfig=`(cd $i; pwd)`
1776	break
1777      fi
1778    done
1779  fi
1780  ])
1781  if test x"${ac_cv_c_itclconfig}" = x ; then
1782    ITCLCONFIG="# no itcl configs found"
1783    AC_MSG_WARN(Can't find itcl configuration definitions)
1784  else
1785    no_itcl=
1786    ITCLCONFIG=${ac_cv_c_itclconfig}/itclConfig.sh
1787    AC_MSG_RESULT(found $ITCLCONFIG)
1788  fi
1789fi
1790
1791])
1792
1793# Defined as a separate macro so we don't have to cache the values
1794# from PATH_ITCLCONFIG (because this can also be cached).
1795AC_DEFUN(CYG_AC_LOAD_ITCLCONFIG, [
1796    if test -f "$ITCLCONFIG" ; then
1797      . $ITCLCONFIG
1798    fi
1799
1800    AC_SUBST(ITCL_BUILD_LIB_SPEC)
1801    AC_SUBST(ITCL_SH)
1802    AC_SUBST(ITCL_LIB_FILE)
1803    AC_SUBST(ITCL_LIB_FULL_PATH)
1804
1805])
1806
1807
1808AC_DEFUN(CYG_AC_PATH_ITKCONFIG, [
1809#
1810# Ok, lets find the itk configuration
1811# First, look for one uninstalled.  
1812# the alternative search directory is invoked by --with-itkconfig
1813#
1814
1815if test x"${no_itk}" = x ; then
1816  # we reset no_itk in case something fails here
1817  no_itk=true
1818  AC_ARG_WITH(itkconfig, [  --with-itkconfig           directory containing itk configuration (itkConfig.sh)],
1819         with_itkconfig=${withval})
1820  AC_MSG_CHECKING([for Itk configuration])
1821  AC_CACHE_VAL(ac_cv_c_itkconfig,[
1822
1823  # First check to see if --with-itkconfig was specified.
1824  if test x"${with_itkconfig}" != x ; then
1825    if test -f "${with_itkconfig}/itkConfig.sh" ; then
1826      ac_cv_c_itkconfig=`(cd ${with_itkconfig}; pwd)`
1827    else
1828      AC_MSG_ERROR([${with_itkconfig} directory doesn't contain itkConfig.sh])
1829    fi
1830  fi
1831
1832  # then check for a private itk library
1833  if test x"${ac_cv_c_itkconfig}" = x ; then
1834    for i in \
1835		../itcl/itk \
1836		`ls -dr ../itcl/itk[[3]]* 2>/dev/null` \
1837		../../itcl/itk \
1838		`ls -dr ../../itcl/itk[[3]]* 2>/dev/null` \
1839		../../../itcl/itk \
1840		`ls -dr ../../../itcl/itk[[3]]* 2>/dev/null` ; do
1841      if test -f "$i/itkConfig.sh" ; then
1842        ac_cv_c_itkconfig=`(cd $i; pwd)`
1843	break
1844      fi
1845    done
1846  fi
1847  # check in a few common install locations
1848  if test x"${ac_cv_c_itkconfig}" = x ; then
1849    for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
1850      if test -f "$i/itcl/itkConfig.sh" ; then
1851        ac_cv_c_itkconfig=`(cd $i; pwd)`
1852	break
1853      fi
1854    done
1855  fi
1856  # check in a few other private locations
1857  if test x"${ac_cv_c_itkconfig}" = x ; then
1858    for i in \
1859		${srcdir}/../itcl/itk \
1860		`ls -dr ${srcdir}/../itcl/itk[[3]]* 2>/dev/null` ; do
1861      if test -f "$i/itkConfig.sh" ; then
1862        ac_cv_c_itkconfig=`(cd $i; pwd)`
1863	break
1864      fi
1865    done
1866  fi
1867  ])
1868  if test x"${ac_cv_c_itkconfig}" = x ; then
1869    ITCLCONFIG="# no itk configs found"
1870    AC_MSG_WARN(Can't find itk configuration definitions)
1871  else
1872    no_itk=
1873    ITKCONFIG=${ac_cv_c_itkconfig}/itkConfig.sh
1874    AC_MSG_RESULT(found $ITKCONFIG)
1875  fi
1876fi
1877
1878])
1879
1880# Defined as a separate macro so we don't have to cache the values
1881# from PATH_ITKCONFIG (because this can also be cached).
1882AC_DEFUN(CYG_AC_LOAD_ITKCONFIG, [
1883    if test -f "$ITKCONFIG" ; then
1884      . $ITKCONFIG
1885    fi
1886
1887    AC_SUBST(ITK_BUILD_LIB_SPEC)
1888    AC_SUBST(ITK_LIB_FILE)
1889    AC_SUBST(ITK_LIB_FULL_PATH)
1890])
1891
1892
1893dnl ====================================================================
1894dnl Ok, lets find the libgui source trees so we can use the headers
1895dnl the alternative search directory is involked by --with-libguiinclude
1896AC_DEFUN(CYG_AC_PATH_LIBGUI, [
1897    CYG_AC_PATH_LIBGUIH
1898    CYG_AC_PATH_LIBGUILIB
1899])
1900AC_DEFUN(CYG_AC_PATH_LIBGUIH, [
1901dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../..../../../../../../../../../../.."
1902no_libgui=true
1903AC_MSG_CHECKING(for Libgui headers in the source tree)
1904AC_ARG_WITH(libguiinclude, [  --with-libguiinclude       directory where libgui headers are], with_libguiinclude=${withval})
1905AC_CACHE_VAL(ac_cv_c_libguih,[
1906dnl first check to see if --with-libguiinclude was specified
1907if test x"${with_libguiinclude}" != x ; then
1908  if test -f ${with_libguiinclude}/guitcl.h ; then
1909    ac_cv_c_libguih=`(cd ${with_libguiinclude}; pwd)`
1910  elif test -f ${with_libguiinclude}/src/guitcl.h ; then
1911    ac_cv_c_libguih=`(cd ${with_libguiinclude}/src; pwd)`
1912  else
1913    AC_MSG_ERROR([${with_libguiinclude} directory doesn't contain headers])
1914  fi
1915fi
1916
1917dnl next check if it came with Libgui configuration file
1918if test x"${ac_cv_c_libguiconfig}" != x ; then
1919  for i in $dirlist; do
1920    if test -f $ac_cv_c_libguiconfig/$i/src/guitcl.h ; then
1921      ac_cv_c_libguih=`(cd $ac_cv_c_libguiconfig/$i/src; pwd)`
1922      break
1923    fi
1924  done
1925fi
1926
1927dnl next check in private source directory
1928dnl since ls returns lowest version numbers first, reverse its output
1929if test x"${ac_cv_c_libguih}" = x ; then
1930    dnl find the top level Libgui source directory
1931    for i in $dirlist; do
1932        if test -n "`ls -dr $srcdir/$i/libgui* 2>/dev/null`" ; then
1933	    libguipath=$srcdir/$i
1934	    break
1935	fi
1936    done
1937
1938    dnl find the exact Libgui source dir. We do it this way, cause there
1939    dnl might be multiple version of Libgui, and we want the most recent one.
1940    for i in `ls -dr $libguipath/libgui* 2>/dev/null ` ; do
1941        if test -f $i/src/guitcl.h ; then
1942          ac_cv_c_libguih=`(cd $i/src; pwd)`
1943          break
1944        fi
1945    done
1946fi
1947
1948dnl see if one is installed
1949if test x"${ac_cv_c_libguih}" = x ; then
1950   AC_MSG_RESULT(none)
1951   AC_CHECK_HEADER(guitcl.h, ac_cv_c_libguih=installed, ac_cv_c_libguih="")
1952fi
1953])
1954LIBGUIHDIR=""
1955if test x"${ac_cv_c_libguih}" = x ; then
1956    AC_MSG_WARN([Can't find any Libgui headers])
1957fi
1958if test x"${ac_cv_c_libguih}" != x ; then
1959    no_libgui=""
1960    if test x"${ac_cv_c_libguih}" != x"installed" ; then
1961        LIBGUIHDIR="-I${ac_cv_c_libguih}"
1962    fi
1963fi
1964AC_MSG_RESULT(${ac_cv_c_libguih})
1965AC_SUBST(LIBGUIHDIR)
1966])
1967
1968dnl ====================================================================
1969dnl find the GUI library
1970AC_DEFUN(CYG_AC_PATH_LIBGUILIB, [
1971AC_MSG_CHECKING(for GUI library  in the build tree)
1972dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
1973dnl look for the library
1974AC_MSG_CHECKING(for GUI library)
1975AC_CACHE_VAL(ac_cv_c_libguilib,[
1976if test x"${ac_cv_c_libguilib}" = x ; then
1977    for i in $dirlist; do
1978      if test -f "$i/libgui/src/Makefile" ; then
1979        ac_cv_c_libguilib=`(cd $i/libgui/src; pwd)`
1980        break
1981      fi
1982    done
1983fi
1984]) 
1985if test x"${ac_cv_c_libguilib}" != x ; then
1986     GUILIB="${GUILIB} -L${ac_cv_c_libguilib}"
1987     LIBGUILIB="-lgui"
1988     AC_MSG_RESULT(${ac_cv_c_libguilib})
1989else
1990     AC_MSG_RESULT(none)
1991fi
1992
1993AC_SUBST(GUILIB)
1994AC_SUBST(LIBGUILIB)
1995])
1996