1998-09-24 Jason Molenda (jsm@bugshack.cygnus.com)
[external/binutils.git] / gdb / aclocal.m4
1 dnl written by Rob Savoye <rob@cygnus.com> for Cygnus Support
2 dnl major rewriting for Tcl 7.5 by Don Libes <libes@nist.gov>
3
4 sinclude(../bfd/aclocal.m4)
5
6 dnl CY_AC_PATH_TCLCONFIG and CY_AC_LOAD_TCLCONFIG should be invoked
7 dnl (in that order) before any other TCL macros.  Similarly for TK.
8
9 dnl CYGNUS LOCAL: This gets the right posix flag for gcc
10 AC_DEFUN(CY_AC_TCL_LYNX_POSIX,
11 [AC_REQUIRE([AC_PROG_CC])AC_REQUIRE([AC_PROG_CPP])
12 AC_MSG_CHECKING([if running LynxOS])
13 AC_CACHE_VAL(ac_cv_os_lynx,
14 [AC_EGREP_CPP(yes,
15 [/*
16  * The old Lynx "cc" only defines "Lynx", but the newer one uses "__Lynx__"
17  */
18 #if defined(__Lynx__) || defined(Lynx)
19 yes
20 #endif
21 ], ac_cv_os_lynx=yes, ac_cv_os_lynx=no)])
22 #
23 if test "$ac_cv_os_lynx" = "yes" ; then
24   AC_MSG_RESULT(yes)
25   AC_DEFINE(LYNX)
26   AC_MSG_CHECKING([whether -mposix or -X is available])
27   AC_CACHE_VAL(ac_cv_c_posix_flag,
28   [AC_TRY_COMPILE(,[
29   /*
30    * This flag varies depending on how old the compiler is.
31    * -X is for the old "cc" and "gcc" (based on 1.42).
32    * -mposix is for the new gcc (at least 2.5.8).
33    */
34   #if defined(__GNUC__) && __GNUC__ >= 2
35   choke me
36   #endif
37   ], ac_cv_c_posix_flag=" -mposix", ac_cv_c_posix_flag=" -X")])
38   CC="$CC $ac_cv_c_posix_flag"
39   AC_MSG_RESULT($ac_cv_c_posix_flag)
40   else
41   AC_MSG_RESULT(no)
42 fi
43 ])
44
45 #
46 # Sometimes the native compiler is a bogus stub for gcc or /usr/ucb/cc. This
47 # makes configure think it's cross compiling. If --target wasn't used, then
48 # we can't configure, so something is wrong. We don't use the cache
49 # here cause if somebody fixes their compiler install, we want this to work.
50 AC_DEFUN(CY_AC_C_WORKS,
51 [# If we cannot compile and link a trivial program, we can't expect anything to work
52 AC_MSG_CHECKING(whether the compiler ($CC) actually works)
53 AC_TRY_COMPILE(, [/* don't need anything here */],
54         c_compiles=yes, c_compiles=no)
55
56 AC_TRY_LINK(, [/* don't need anything here */],
57         c_links=yes, c_links=no)
58
59 if test x"${c_compiles}" = x"no" ; then
60   AC_MSG_ERROR(the native compiler is broken and won't compile.)
61 fi
62
63 if test x"${c_links}" = x"no" ; then
64   AC_MSG_ERROR(the native compiler is broken and won't link.)
65 fi
66 AC_MSG_RESULT(yes)
67 ])
68
69 AC_DEFUN(CY_AC_PATH_TCLH, [
70 #
71 # Ok, lets find the tcl source trees so we can use the headers
72 # Warning: transition of version 9 to 10 will break this algorithm
73 # because 10 sorts before 9. We also look for just tcl. We have to
74 # be careful that we don't match stuff like tclX by accident.
75 # the alternative search directory is involked by --with-tclinclude
76 #
77
78 no_tcl=true
79 AC_MSG_CHECKING(for Tcl private headers. dir=${configdir})
80 AC_ARG_WITH(tclinclude, [  --with-tclinclude=DIR   Directory where tcl private headers are], with_tclinclude=${withval})
81 AC_CACHE_VAL(ac_cv_c_tclh,[
82 # first check to see if --with-tclinclude was specified
83 if test x"${with_tclinclude}" != x ; then
84   if test -f ${with_tclinclude}/tclInt.h ; then
85     ac_cv_c_tclh=`(cd ${with_tclinclude}; pwd)`
86   elif test -f ${with_tclinclude}/generic/tclInt.h ; then
87     ac_cv_c_tclh=`(cd ${with_tclinclude}/generic; pwd)`
88   else
89     AC_MSG_ERROR([${with_tclinclude} directory doesn't contain private headers])
90   fi
91 fi
92
93 # next check if it came with Tcl configuration file
94 if test x"${ac_cv_c_tclconfig}" = x ; then
95   if test -f $ac_cv_c_tclconfig/../generic/tclInt.h ; then
96     ac_cv_c_tclh=`(cd $ac_cv_c_tclconfig/..; pwd)`
97   fi
98 fi
99
100 # next check in private source directory
101 #
102 # since ls returns lowest version numbers first, reverse its output
103 if test x"${ac_cv_c_tclh}" = x ; then
104   for i in \
105                 ${srcdir}/../tcl \
106                 `ls -dr ${srcdir}/../tcl[[7-9]]* 2>/dev/null` \
107                 ${srcdir}/../../tcl \
108                 `ls -dr ${srcdir}/../../tcl[[7-9]]* 2>/dev/null` \
109                 ${srcdir}/../../../tcl \
110                 `ls -dr ${srcdir}/../../../tcl[[7-9]]* 2>/dev/null ` ; do
111     if test -f $i/generic/tclInt.h ; then
112       ac_cv_c_tclh=`(cd $i/generic; pwd)`
113       break
114     fi
115   done
116 fi
117 # finally check in a few common install locations
118 #
119 # since ls returns lowest version numbers first, reverse its output
120 if test x"${ac_cv_c_tclh}" = x ; then
121   for i in \
122                 `ls -dr /usr/local/src/tcl[[7-9]]* 2>/dev/null` \
123                 `ls -dr /usr/local/lib/tcl[[7-9]]* 2>/dev/null` \
124                 /usr/local/src/tcl \
125                 /usr/local/lib/tcl \
126                 ${prefix}/include ; do
127     if test -f $i/generic/tclInt.h ; then
128       ac_cv_c_tclh=`(cd $i/generic; pwd)`
129       break
130     fi
131   done
132 fi
133 # see if one is installed
134 if test x"${ac_cv_c_tclh}" = x ; then
135    AC_HEADER_CHECK(tclInt.h, ac_cv_c_tclh=installed, ac_cv_c_tclh="")
136 fi
137 ])
138 if test x"${ac_cv_c_tclh}" = x ; then
139   TCLHDIR="# no Tcl private headers found"
140   AC_MSG_ERROR([Can't find Tcl private headers])
141 fi
142 if test x"${ac_cv_c_tclh}" != x ; then
143   no_tcl=""
144   if test x"${ac_cv_c_tclh}" = x"installed" ; then
145     AC_MSG_RESULT([is installed])
146     TCLHDIR=""
147   else
148     AC_MSG_RESULT([found in ${ac_cv_c_tclh}])
149     # this hack is cause the TCLHDIR won't print if there is a "-I" in it.
150     TCLHDIR="-I${ac_cv_c_tclh}"
151   fi
152 fi
153
154 AC_SUBST(TCLHDIR)
155 ])
156
157
158 AC_DEFUN(CY_AC_PATH_TCLCONFIG, [
159 #
160 # Ok, lets find the tcl configuration
161 # First, look for one uninstalled.  
162 # the alternative search directory is invoked by --with-tclconfig
163 #
164
165 if test x"${no_tcl}" = x ; then
166   # we reset no_tcl in case something fails here
167   no_tcl=true
168   AC_ARG_WITH(tclconfig, [  --with-tclconfig=DIR    Directory containing tcl configuration (tclConfig.sh)],
169          with_tclconfig=${withval})
170   AC_MSG_CHECKING([for Tcl configuration])
171   AC_CACHE_VAL(ac_cv_c_tclconfig,[
172
173   # First check to see if --with-tclconfig was specified.
174   if test x"${with_tclconfig}" != x ; then
175     if test -f "${with_tclconfig}/tclConfig.sh" ; then
176       ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
177     else
178       AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
179     fi
180   fi
181
182   # then check for a private Tcl installation
183   if test x"${ac_cv_c_tclconfig}" = x ; then
184     for i in \
185                 ../tcl \
186                 `ls -dr ../tcl[[7-9]]* 2>/dev/null` \
187                 ../../tcl \
188                 `ls -dr ../../tcl[[7-9]]* 2>/dev/null` \
189                 ../../../tcl \
190                 `ls -dr ../../../tcl[[7-9]]* 2>/dev/null` ; do
191       if test -f "$i/${configdir}/tclConfig.sh" ; then
192         ac_cv_c_tclconfig=`(cd $i/${configdir}; pwd)`
193         break
194       fi
195     done
196   fi
197   # check in a few common install locations
198   if test x"${ac_cv_c_tclconfig}" = x ; then
199     for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
200       if test -f "$i/tclConfig.sh" ; then
201         ac_cv_c_tclconfig=`(cd $i; pwd)`
202         break
203       fi
204     done
205   fi
206   # check in a few other private locations
207   if test x"${ac_cv_c_tclconfig}" = x ; then
208     for i in \
209                 ${srcdir}/../tcl \
210                 `ls -dr ${srcdir}/../tcl[[7-9]]* 2>/dev/null` ; do
211       if test -f "$i/${configdir}/tclConfig.sh" ; then
212         ac_cv_c_tclconfig=`(cd $i/${configdir}; pwd)`
213         break
214       fi
215     done
216   fi
217   ])
218   if test x"${ac_cv_c_tclconfig}" = x ; then
219     TCLCONFIG="# no Tcl configs found"
220     AC_MSG_WARN(Can't find Tcl configuration definitions)
221   else
222     no_tcl=
223     TCLCONFIG=${ac_cv_c_tclconfig}/tclConfig.sh
224     AC_MSG_RESULT(found $TCLCONFIG)
225   fi
226 fi
227 ])
228
229 # Defined as a separate macro so we don't have to cache the values
230 # from PATH_TCLCONFIG (because this can also be cached).
231 AC_DEFUN(CY_AC_LOAD_TCLCONFIG, [
232     . $TCLCONFIG
233
234     AC_SUBST(TCL_VERSION)
235     AC_SUBST(TCL_MAJOR_VERSION)
236     AC_SUBST(TCL_MINOR_VERSION)
237     AC_SUBST(TCL_CC)
238     AC_SUBST(TCL_DEFS)
239
240 dnl not used, don't export to save symbols
241 dnl    AC_SUBST(TCL_LIB_FILE)
242
243 dnl don't export, not used outside of configure
244 dnl     AC_SUBST(TCL_LIBS)
245 dnl not used, don't export to save symbols
246 dnl    AC_SUBST(TCL_PREFIX)
247
248 dnl not used, don't export to save symbols
249 dnl    AC_SUBST(TCL_EXEC_PREFIX)
250
251     AC_SUBST(TCL_SHLIB_CFLAGS)
252     AC_SUBST(TCL_SHLIB_LD)
253 dnl don't export, not used outside of configure
254     AC_SUBST(TCL_SHLIB_LD_LIBS)
255     AC_SUBST(TCL_SHLIB_SUFFIX)
256 dnl not used, don't export to save symbols
257     AC_SUBST(TCL_DL_LIBS)
258     AC_SUBST(TCL_LD_FLAGS)
259 dnl don't export, not used outside of configure
260     AC_SUBST(TCL_LD_SEARCH_FLAGS)
261     AC_SUBST(TCL_COMPAT_OBJS)
262     AC_SUBST(TCL_RANLIB)
263     AC_SUBST(TCL_BUILD_LIB_SPEC)
264     AC_SUBST(TCL_LIB_SPEC)
265     AC_SUBST(TCL_LIB_VERSIONS_OK)
266
267 dnl not used, don't export to save symbols
268 dnl    AC_SUBST(TCL_SHARED_LIB_SUFFIX)
269
270 dnl not used, don't export to save symbols
271 dnl    AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
272 ])
273
274 # Warning: Tk definitions are very similar to Tcl definitions but
275 # are not precisely the same.  There are a couple of differences,
276 # so don't do changes to Tcl thinking you can cut and paste it do 
277 # the Tk differences and later simply substitute "Tk" for "Tcl".
278 # Known differences:
279 #  - Acceptable Tcl major version #s is 7-9 while Tk is 4-9
280 #  - Searching for Tcl includes looking for tclInt.h, Tk looks for tk.h
281 #  - Computing major/minor versions is different because Tk depends on
282 #    headers to Tcl, Tk, and X.
283 #  - Symbols in tkConfig.sh are different than tclConfig.sh
284 #  - Acceptable for Tk to be missing but not Tcl.
285
286 AC_DEFUN(CY_AC_PATH_TKH, [
287 #
288 # Ok, lets find the tk source trees so we can use the headers
289 # If the directory (presumably symlink) named "tk" exists, use that one
290 # in preference to any others.  Same logic is used when choosing library
291 # and again with Tcl. The search order is the best place to look first, then in
292 # decreasing significance. The loop breaks if the trigger file is found.
293 # Note the gross little conversion here of srcdir by cd'ing to the found
294 # directory. This converts the path from a relative to an absolute, so
295 # recursive cache variables for the path will work right. We check all
296 # the possible paths in one loop rather than many seperate loops to speed
297 # things up.
298 # the alternative search directory is involked by --with-tkinclude
299 #
300 no_tk=true
301 AC_MSG_CHECKING(for Tk private headers)
302 AC_ARG_WITH(tkinclude, [  --with-tkinclude=DIR    Directory where tk private headers are], with_tkinclude=${withval})
303 AC_CACHE_VAL(ac_cv_c_tkh,[
304 # first check to see if --with-tkinclude was specified
305 if test x"${with_tkinclude}" != x ; then
306   if test -f ${with_tkinclude}/tk.h ; then
307     ac_cv_c_tkh=`(cd ${with_tkinclude}; pwd)`
308   elif test -f ${with_tkinclude}/generic/tk.h ; then
309     ac_cv_c_tkh=`(cd ${with_tkinclude}/generic; pwd)`
310   else
311     AC_MSG_ERROR([${with_tkinclude} directory doesn't contain private headers])
312   fi
313 fi
314
315 # next check if it came with Tk configuration file
316 if test x"${ac_cv_c_tkconfig}" = x ; then
317   if test -f $ac_cv_c_tkconfig/../generic/tk.h ; then
318     ac_cv_c_tkh=`(cd $ac_cv_c_tkconfig/..; pwd)`
319   fi
320 fi
321
322 # next check in private source directory
323 #
324 # since ls returns lowest version numbers first, reverse its output
325 if test x"${ac_cv_c_tkh}" = x ; then
326   for i in \
327                 ${srcdir}/../tk \
328                 `ls -dr ${srcdir}/../tk[[4-9]]* 2>/dev/null` \
329                 ${srcdir}/../../tk \
330                 `ls -dr ${srcdir}/../../tk[[4-9]]* 2>/dev/null` \
331                 ${srcdir}/../../../tk \
332                 `ls -dr ${srcdir}/../../../tk[[4-9]]* 2>/dev/null ` ; do
333     if test -f $i/generic/tk.h ; then
334       ac_cv_c_tkh=`(cd $i/generic; pwd)`
335       break
336     fi
337   done
338 fi
339 # finally check in a few common install locations
340 #
341 # since ls returns lowest version numbers first, reverse its output
342 if test x"${ac_cv_c_tkh}" = x ; then
343   for i in \
344                 `ls -dr /usr/local/src/tk[[4-9]]* 2>/dev/null` \
345                 `ls -dr /usr/local/lib/tk[[4-9]]* 2>/dev/null` \
346                 /usr/local/src/tk \
347                 /usr/local/lib/tk \
348                 ${prefix}/include ; do
349     if test -f $i/generic/tk.h ; then
350       ac_cv_c_tkh=`(cd $i/generic; pwd)`
351       break
352     fi
353   done
354 fi
355 # see if one is installed
356 if test x"${ac_cv_c_tkh}" = x ; then
357    AC_HEADER_CHECK(tk.h, ac_cv_c_tkh=installed, ac_cv_c_tkh="")
358 fi
359 ])
360 if test x"${ac_cv_c_tkh}" != x ; then
361   no_tk=""
362   if test x"${ac_cv_c_tkh}" = x"installed" ; then
363     AC_MSG_RESULT([is installed])
364     TKHDIR=""
365   else
366     AC_MSG_RESULT([found in ${ac_cv_c_tkh}])
367     # this hack is cause the TKHDIR won't print if there is a "-I" in it.
368     TKHDIR="-I${ac_cv_c_tkh}"
369   fi
370 else
371   TKHDIR="# no Tk directory found"
372   AC_MSG_WARN([Can't find Tk private headers])
373   no_tk=true
374 fi
375
376 AC_SUBST(TKHDIR)
377 ])
378
379
380 AC_DEFUN(CY_AC_PATH_TKCONFIG, [
381 #
382 # Ok, lets find the tk configuration
383 # First, look for one uninstalled.  
384 # the alternative search directory is invoked by --with-tkconfig
385 #
386
387 if test x"${no_tk}" = x ; then
388   # we reset no_tk in case something fails here
389   no_tk=true
390   AC_ARG_WITH(tkconfig, [  --with-tkconfig=DIR     Directory containing tk configuration (tkConfig.sh)],
391          with_tkconfig=${withval})
392   AC_MSG_CHECKING([for Tk configuration])
393   AC_CACHE_VAL(ac_cv_c_tkconfig,[
394
395   # First check to see if --with-tkconfig was specified.
396   if test x"${with_tkconfig}" != x ; then
397     if test -f "${with_tkconfig}/tkConfig.sh" ; then
398       ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
399     else
400       AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh])
401     fi
402   fi
403
404   # then check for a private Tk library
405   if test x"${ac_cv_c_tkconfig}" = x ; then
406     for i in \
407                 ../tk \
408                 `ls -dr ../tk[[4-9]]* 2>/dev/null` \
409                 ../../tk \
410                 `ls -dr ../../tk[[4-9]]* 2>/dev/null` \
411                 ../../../tk \
412                 `ls -dr ../../../tk[[4-9]]* 2>/dev/null` ; do
413       if test -f "$i/${configdir}/tkConfig.sh" ; then
414         ac_cv_c_tkconfig=`(cd $i/${configdir}; pwd)`
415         break
416       fi
417     done
418   fi
419   # check in a few common install locations
420   if test x"${ac_cv_c_tkconfig}" = x ; then
421     for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
422       if test -f "$i/tkConfig.sh" ; then
423         ac_cv_c_tkconfig=`(cd $i; pwd)`
424         break
425       fi
426     done
427   fi
428   # check in a few other private locations
429   if test x"${ac_cv_c_tkconfig}" = x ; then
430     for i in \
431                 ${srcdir}/../tk \
432                 `ls -dr ${srcdir}/../tk[[4-9]]* 2>/dev/null` ; do
433       if test -f "$i/${configdir}/tkConfig.sh" ; then
434         ac_cv_c_tkconfig=`(cd $i/${configdir}; pwd)`
435         break
436       fi
437     done
438   fi
439   ])
440   if test x"${ac_cv_c_tkconfig}" = x ; then
441     TKCONFIG="# no Tk configs found"
442     AC_MSG_WARN(Can't find Tk configuration definitions)
443   else
444     no_tk=
445     TKCONFIG=${ac_cv_c_tkconfig}/tkConfig.sh
446     AC_MSG_RESULT(found $TKCONFIG)
447   fi
448 fi
449
450 ])
451
452 # Defined as a separate macro so we don't have to cache the values
453 # from PATH_TKCONFIG (because this can also be cached).
454 AC_DEFUN(CY_AC_LOAD_TKCONFIG, [
455     if test -f "$TKCONFIG" ; then
456       . $TKCONFIG
457     fi
458
459     AC_SUBST(TK_VERSION)
460 dnl not actually used, don't export to save symbols
461 dnl    AC_SUBST(TK_MAJOR_VERSION)
462 dnl    AC_SUBST(TK_MINOR_VERSION)
463     AC_SUBST(TK_DEFS)
464
465 dnl not used, don't export to save symbols
466     dnl AC_SUBST(TK_LIB_FILE)
467
468 dnl not used outside of configure
469 dnl    AC_SUBST(TK_LIBS)
470 dnl not used, don't export to save symbols
471 dnl    AC_SUBST(TK_PREFIX)
472
473 dnl not used, don't export to save symbols
474 dnl    AC_SUBST(TK_EXEC_PREFIX)
475
476     AC_SUBST(TK_BUILD_INCLUDES)
477     AC_SUBST(TK_XINCLUDES)
478     AC_SUBST(TK_XLIBSW)
479     AC_SUBST(TK_BUILD_LIB_SPEC)
480     AC_SUBST(TK_LIB_SPEC)
481 ])
482
483
484 # check for Itcl headers. 
485
486 AC_DEFUN(CY_AC_PATH_ITCLH, [
487 AC_MSG_CHECKING(for Itcl private headers. srcdir=${srcdir})
488 if test x"${ac_cv_c_itclh}" = x ; then
489   for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ; do
490     if test -f $i/src/itcl.h ; then
491       ac_cv_c_itclh=`(cd $i/src; pwd)`
492       break
493     fi
494   done
495 fi
496 if test x"${ac_cv_c_itclh}" = x ; then
497   ITCLHDIR="# no Itcl private headers found"
498   AC_MSG_ERROR([Can't find Itcl private headers])
499 fi
500 if test x"${ac_cv_c_itclh}" != x ; then
501      ITCLHDIR="-I${ac_cv_c_itclh}"
502 fi
503 # should always be here
504      ITCLLIB="../itcl/src/libitcl.a"
505 AC_SUBST(ITCLHDIR)
506 AC_SUBST(ITCLLIB)
507 ])
508
509 # check for Tix headers. 
510
511 AC_DEFUN(CY_AC_PATH_TIX, [
512 AC_MSG_CHECKING(for Tix private headers. srcdir=${srcdir})
513 if test x"${ac_cv_c_tixh}" = x ; then
514   for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do
515     if test -f $i/generic/tix.h ; then
516       ac_cv_c_tixh=`(cd $i/generic; pwd)`
517       break
518     fi
519   done
520 fi
521 if test x"${ac_cv_c_tixh}" = x ; then
522   TIXHDIR="# no Tix private headers found"
523   AC_MSG_ERROR([Can't find Tix private headers])
524 fi
525 if test x"${ac_cv_c_tixh}" != x ; then
526      TIXHDIR="-I${ac_cv_c_tixh}"
527 fi
528 AC_SUBST(TIXHDIR)
529 ])