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