2005-03-23 Martin Hunt <hunt@redhat.com>
[deliverable/binutils-gdb.git] / gdb / configure.ac
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
3 dnl Free Software Foundation, Inc.
4 dnl
5 dnl This file is part of GDB.
6 dnl
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 dnl GNU General Public License for more details.
16 dnl
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program; if not, write to the Free Software
19 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21 dnl Process this file with autoconf to produce a configure script.
22
23 AC_PREREQ(2.59)dnl
24 AC_INIT(main.c)
25 AC_CONFIG_HEADER(config.h:config.in)
26 AM_MAINTAINER_MODE
27
28 AC_PROG_CC
29 AC_GNU_SOURCE
30 AC_AIX
31 AC_ISC_POSIX
32 AM_PROG_CC_STDC
33
34 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
35 AC_CANONICAL_SYSTEM
36
37 dnl List of object files and targets accumulated by configure.
38
39 CONFIG_OBS=
40 CONFIG_DEPS=
41 CONFIG_SRCS=
42 ENABLE_CFLAGS=
43
44 CONFIG_ALL=
45 CONFIG_CLEAN=
46 CONFIG_INSTALL=
47 CONFIG_UNINSTALL=
48
49 dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
50
51 CY_GNU_GETTEXT
52
53 localedir='${datadir}/locale'
54 AC_SUBST(localedir)
55
56 if test "x$POSUB" != x; then
57
58 dnl Lifted from GCC's config/gettext.m4.
59 AC_MSG_CHECKING(for catalogs to be installed)
60 # Look for .po and .gmo files in the source directory.
61 CATALOGS= AC_SUBST(CATALOGS)
62 XLINGUAS=
63 for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
64 # If there aren't any .gmo files the shell will give us the
65 # literal string "../path/to/srcdir/po/*.gmo" which has to be
66 # weeded out.
67 case "$cat" in *\**)
68 continue;;
69 esac
70 # The quadruple backslash is collapsed to a double backslash
71 # by the backticks, then collapsed again by the double quotes,
72 # leaving us with one backslash in the sed expression (right
73 # before the dot that mustn't act as a wildcard).
74 cat=`echo $cat | sed -e "s!$srcdir/!!" -e "s!\\\\.po!.gmo!"`
75 lang=`echo $cat | sed -e 's!po/!!' -e "s!\\\\.gmo!!"`
76 # The user is allowed to set LINGUAS to a list of languages to
77 # install catalogs for. If it's empty that means "all of them."
78 if test "x$LINGUAS" = x; then
79 CATALOGS="$CATALOGS $cat"
80 XLINGUAS="$XLINGUAS $lang"
81 else
82 case "$LINGUAS" in *$lang*)
83 CATALOGS="$CATALOGS $cat"
84 XLINGUAS="$XLINGUAS $lang"
85 ;;
86 esac
87 fi
88 done
89 LINGUAS="$XLINGUAS"
90 AC_MSG_RESULT($LINGUAS)
91
92 CONFIG_ALL="$CONFIG_ALL all-po"
93 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
94 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
95 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
96 fi
97
98 PACKAGE=gdb
99 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
100 AC_SUBST(PACKAGE)
101
102 debugdir=${libdir}/debug
103
104 AC_ARG_WITH(separate-debug-dir,
105 [ --with-separate-debug-dir=path Look for global separate debug info in this path [LIBDIR/debug]],
106 [debugdir="${withval}"])
107
108 AC_DEFINE_DIR(DEBUGDIR, debugdir,
109 [Global directory for separate debug files. ])
110 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
111
112 AC_CONFIG_SUBDIRS(doc testsuite)
113
114 . $srcdir/configure.host
115
116 . $srcdir/configure.tgt
117
118 # Fetch the default architecture and default target vector from BFD.
119 targ=$target; . $srcdir/../bfd/config.bfd
120
121 # We only want the first architecture, so strip off the others if
122 # there is more than one.
123 targ_archs=`echo $targ_archs | sed 's/ .*//'`
124
125 if test "x$targ_archs" != x; then
126 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
127 [Define to BFD's default architecture. ])
128 fi
129 if test "x$targ_defvec" != x; then
130 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
131 [Define to BFD's default target vector. ])
132 fi
133
134 AC_ARG_PROGRAM
135
136 # The CLI cannot be disabled yet, but may be in the future.
137
138 # Enable CLI.
139 AC_ARG_ENABLE(gdbcli,
140 [ --disable-gdbcli disable command-line interface (CLI)],
141 [case $enableval in
142 yes)
143 ;;
144 no)
145 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
146 *)
147 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
148 esac],
149 [enable_gdbcli=yes])
150 if test x"$enable_gdbcli" = xyes; then
151 if test -d $srcdir/cli; then
152 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
153 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
154 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
155 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
156 fi
157 fi
158
159 # Enable MI.
160 AC_ARG_ENABLE(gdbmi,
161 [ --disable-gdbmi disable machine-interface (MI)],
162 [case $enableval in
163 yes | no)
164 ;;
165 *)
166 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
167 esac],
168 [enable_gdbmi=yes])
169 if test x"$enable_gdbmi" = xyes; then
170 if test -d $srcdir/mi; then
171 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
172 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
173 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
174 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
175 fi
176 fi
177
178 # Enable TUI.
179 AC_ARG_ENABLE(tui,
180 [ --enable-tui enable full-screen terminal user interface (TUI)],
181 [case $enableval in
182 yes | no)
183 ;;
184 *)
185 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
186 esac],enable_tui=yes)
187
188 # Enable gdbtk.
189 AC_ARG_ENABLE(gdbtk,
190 [ --enable-gdbtk enable gdbtk graphical user interface (GUI)],
191 [case $enableval in
192 yes | no)
193 ;;
194 *)
195 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
196 esac],
197 [if test -d $srcdir/gdbtk -a -d $srcdir/../itcl; then
198 enable_gdbtk=yes
199 else
200 enable_gdbtk=no
201 fi])
202 # We unconditionally disable gdbtk tests on selected platforms.
203 case $host_os in
204 go32* | windows*)
205 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
206 enable_gdbtk=no ;;
207 esac
208
209 # Libunwind support.
210 AC_ARG_WITH(libunwind,
211 [ --with-libunwind Use libunwind frame unwinding support],
212 [case "${withval}" in
213 yes) enable_libunwind=yes ;;
214 no) enable_libunwind=no ;;
215 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
216 esac],[
217 AC_CHECK_HEADERS(libunwind.h)
218 AC_CHECK_HEADERS(libunwind-ia64.h)
219 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
220 enable_libunwind=yes;
221 fi
222 ])
223
224 if test x"$enable_libunwind" = xyes; then
225 AC_CHECK_HEADERS(libunwind.h)
226 AC_CHECK_HEADERS(libunwind-ia64.h)
227 AC_DEFINE(HAVE_LIBUNWIND, 1)
228 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
229 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
230 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
231 fi
232
233 # Profiling support.
234 AC_ARG_ENABLE(profiling,
235 [ --enable-profiling enable profiling of GDB],
236 [case $enableval in
237 yes | no)
238 ;;
239 *)
240 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
241 esac],
242 [enable_profiling=no])
243
244 AC_CHECK_FUNCS(monstartup _mcleanup)
245 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
246 [AC_TRY_LINK(
247 [#include <stdlib.h>
248 extern char _etext;
249 ],
250 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
251 if test $ac_cv_var__etext = yes; then
252 AC_DEFINE(HAVE__ETEXT, 1,
253 [Define to 1 if your system has the _etext variable. ])
254 fi
255 if test "$enable_profiling" = yes ; then
256 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
257 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
258 fi
259 PROFILE_CFLAGS=-pg
260 OLD_CFLAGS="$CFLAGS"
261 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
262
263 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
264 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
265 ac_cv_cc_supports_pg=no)])
266
267 if test $ac_cv_cc_supports_pg = no; then
268 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
269 fi
270
271 CFLAGS="$OLD_CFLAGS"
272 fi
273
274 # --------------------- #
275 # Checks for programs. #
276 # --------------------- #
277
278 AC_PROG_AWK
279 AC_PROG_INSTALL
280 AC_PROG_LN_S
281 AC_PROG_RANLIB
282 AC_PROG_YACC
283
284 AC_CHECK_TOOL(AR, ar)
285 AC_CHECK_TOOL(DLLTOOL, dlltool)
286 AC_CHECK_TOOL(WINDRES, windres)
287
288 # Needed for GNU/Hurd.
289 AC_CHECK_TOOL(MIG, mig)
290
291 # ---------------------- #
292 # Checks for libraries. #
293 # ---------------------- #
294
295 # We might need to link with -lm; most simulators need it.
296 AC_CHECK_LIB(m, main)
297
298 # We need to link with -lw to get `wctype' on Solaris before Solaris
299 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
300 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
301 # is known to have this problem). Therefore we avoid libw if we can.
302 AC_CHECK_FUNC(wctype, [],
303 [AC_CHECK_LIB(w, wctype)])
304
305 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
306 AC_SEARCH_LIBS(gethostbyname, nsl)
307
308 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
309 AC_SEARCH_LIBS(socketpair, socket)
310
311 # For the TUI, we need enhanced curses functionality.
312 #
313 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
314 # curses library because the latter might not provide all the
315 # functionality we need. However, this leads to problems on systems
316 # where the linker searches /usr/local/lib, but the compiler doesn't
317 # search /usr/local/include, if ncurses is installed in /usr/local. A
318 # default installation of ncurses on alpha*-dec-osf* will lead to such
319 # a situation.
320 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
321
322 # Since GDB uses Readline, we need termcap functionality. In many
323 # cases this will be provided by the curses library, but some systems
324 # have a seperate termcap library, or no curses library at all.
325
326 case $host_os in
327 cygwin*)
328 if test -d $srcdir/libtermcap; then
329 LIBS="../libtermcap/libtermcap.a $LIBS"
330 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
331 fi ;;
332 go32* | *djgpp*)
333 ac_cv_search_tgetent="none required"
334 ;;
335 esac
336
337 # These are the libraries checked by Readline.
338 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
339
340 if test "$ac_cv_search_tgetent" = no; then
341 AC_MSG_ERROR([no termcap library found])
342 fi
343
344 # ------------------------- #
345 # Checks for header files. #
346 # ------------------------- #
347
348 AC_HEADER_DIRENT
349 AC_HEADER_STAT
350 AC_HEADER_STDC
351 AC_CHECK_HEADERS(nlist.h)
352 AC_CHECK_HEADERS(link.h, [], [],
353 [#if HAVE_SYS_TYPES_H
354 # include <sys/types.h>
355 #endif
356 #if HAVE_NLIST_H
357 # include <nlist.h>
358 #endif
359 ])
360 AC_CHECK_HEADERS(machine/reg.h)
361 AC_CHECK_HEADERS(poll.h sys/poll.h)
362 AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h)
363 AC_CHECK_HEADERS(stddef.h)
364 AC_CHECK_HEADERS(stdlib.h)
365 AC_CHECK_HEADERS(stdint.h)
366 AC_CHECK_HEADERS(string.h memory.h strings.h)
367 AC_CHECK_HEADERS(sys/fault.h)
368 AC_CHECK_HEADERS(sys/file.h)
369 AC_CHECK_HEADERS(sys/filio.h)
370 AC_CHECK_HEADERS(sys/ioctl.h)
371 AC_CHECK_HEADERS(sys/param.h)
372 AC_CHECK_HEADERS(sys/proc.h, [], [],
373 [#if HAVE_SYS_PARAM_H
374 # include <sys/param.h>
375 #endif
376 ])
377 AC_CHECK_HEADERS(sys/procfs.h)
378 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
379 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
380 AC_CHECK_HEADERS(sys/select.h)
381 AC_CHECK_HEADERS(sys/syscall.h)
382 AC_CHECK_HEADERS(sys/types.h)
383 AC_CHECK_HEADERS(sys/user.h, [], [],
384 [#if HAVE_SYS_PARAM_H
385 # include <sys/param.h>
386 #endif
387 ])
388 AC_CHECK_HEADERS(sys/wait.h wait.h)
389 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
390 AC_CHECK_HEADERS(unistd.h)
391
392 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
393 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
394 # think that we don't have <curses.h> if we're using GCC.
395 case $host_os in
396 solaris2.[[789]])
397 if test "$GCC" = yes; then
398 AC_DEFINE(_MSE_INT_H, 1,
399 [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
400 Solaris 2.[789] when using GCC. ]])
401 fi ;;
402 esac
403 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h)
404 AC_CHECK_HEADERS(ncurses/term.h)
405 AC_CHECK_HEADERS(term.h, [], [],
406 [#if HAVE_CURSES_H
407 # include <curses.h>
408 #endif
409 ])
410
411 # FIXME: kettenis/20030102: In most cases we include these
412 # unconditionally, so what's the point in checking these?
413 AC_CHECK_HEADERS(ctype.h time.h)
414
415 # ------------------------- #
416 # Checks for declarations. #
417 # ------------------------- #
418
419 AC_CHECK_DECLS([free, malloc, realloc])
420 AC_CHECK_DECLS([strerror, strstr])
421 AC_CHECK_DECLS(getopt)
422
423 # ----------------------- #
424 # Checks for structures. #
425 # ----------------------- #
426
427 AC_CHECK_MEMBERS([struct stat.st_blocks])
428 AC_CHECK_MEMBERS([struct stat.st_blksize])
429
430 # ------------------ #
431 # Checks for types. #
432 # ------------------ #
433
434 AC_TYPE_SIGNAL
435
436 # ------------------------------------- #
437 # Checks for compiler characteristics. #
438 # ------------------------------------- #
439
440 AC_C_CONST
441 AC_C_INLINE
442
443 # ------------------------------ #
444 # Checks for library functions. #
445 # ------------------------------ #
446
447 AC_FUNC_ALLOCA
448 AC_FUNC_MMAP
449 AC_FUNC_VFORK
450 AC_CHECK_FUNCS(canonicalize_file_name realpath)
451 AC_CHECK_FUNCS(getuid getgid)
452 AC_CHECK_FUNCS(poll)
453 AC_CHECK_FUNCS(pread64)
454 AC_CHECK_FUNCS(sbrk)
455 AC_CHECK_FUNCS(setpgid setpgrp)
456 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
457 AC_CHECK_FUNCS(socketpair)
458 AC_CHECK_FUNCS(syscall)
459 AC_CHECK_FUNCS(ttrace)
460 AC_CHECK_FUNCS(wborder)
461
462 # Check the return and argument types of ptrace. No canned test for
463 # this, so roll our own.
464 gdb_ptrace_headers='
465 #if HAVE_SYS_TYPES_H
466 # include <sys/types.h>
467 #endif
468 #if HAVE_SYS_PTRACE_H
469 # include <sys/ptrace.h>
470 #endif
471 #if HAVE_UNISTD_H
472 # include <unistd.h>
473 #endif
474 '
475 # There is no point in checking if we don't have a prototype.
476 AC_CHECK_DECLS(ptrace, [], [
477 : ${gdb_cv_func_ptrace_ret='int'}
478 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
479 ], $gdb_ptrace_headers)
480 # Check return type.
481 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
482 AC_TRY_COMPILE($gdb_ptrace_headers,
483 [extern int ptrace ();],
484 gdb_cv_func_ptrace_ret='int',
485 gdb_cv_func_ptrace_ret='long'))
486 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
487 [Define as the return type of ptrace.])
488 # Check argument types.
489 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
490 for gdb_arg1 in 'int' 'long'; do
491 for gdb_arg2 in 'pid_t' 'int' 'long'; do
492 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long'; do
493 for gdb_arg4 in 'int' 'long'; do
494 AC_TRY_COMPILE($gdb_ptrace_headers, [
495 extern $gdb_cv_func_ptrace_ret
496 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
497 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
498 break 4;])
499 for gdb_arg5 in 'int *' 'int' 'long'; do
500 AC_TRY_COMPILE($gdb_ptrace_headers, [
501 extern $gdb_cv_func_ptrace_ret
502 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
503 ], [
504 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
505 break 5;])
506 done
507 done
508 done
509 done
510 done
511 # Provide a safe default value.
512 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
513 ])
514 ac_save_IFS=$IFS; IFS=','
515 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
516 IFS=$ac_save_IFS
517 shift
518 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
519 [Define to the type of arg 3 for ptrace.])
520 if test -n "$[5]"; then
521 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
522 [Define to the type of arg 5 for ptrace.])
523 fi
524
525 dnl AC_FUNC_SETPGRP does not work when cross compiling
526 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
527 if test "$cross_compiling" = no; then
528 AC_FUNC_SETPGRP
529 else
530 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
531 [AC_TRY_COMPILE([
532 #include <unistd.h>
533 ], [
534 if (setpgrp(1,1) == -1)
535 exit (0);
536 else
537 exit (1);
538 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
539 if test $ac_cv_func_setpgrp_void = yes; then
540 AC_DEFINE(SETPGRP_VOID, 1)
541 fi
542 fi
543
544 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
545 # since sigsetjmp might only be defined as a macro.
546 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
547 [AC_TRY_COMPILE([
548 #include <setjmp.h>
549 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
550 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
551 if test $gdb_cv_func_sigsetjmp = yes; then
552 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
553 fi
554
555 # Assume we'll default to using the included libiberty regex.
556 gdb_use_included_regex=yes
557
558 # However, if the system regex is GNU regex, then default to *not*
559 # using the included regex.
560 AC_CACHE_CHECK(
561 [for GNU regex],
562 [gdb_cv_have_gnu_regex],
563 [AC_TRY_COMPILE(
564 [#include <gnu-versions.h>],
565 [#define REGEX_INTERFACE_VERSION 1
566 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
567 # error "Version mismatch"
568 #endif],
569 gdb_cv_have_gnu_regex=yes,
570 gdb_cv_have_gnu_regex=no)])
571 if test $gdb_cv_have_gnu_regex = yes; then
572 gdb_use_included_regex=no
573 fi
574
575 AC_ARG_WITH(included-regex,
576 [ --without-included-regex don't use included regex; this is the default
577 on systems with version 2 of the GNU C library
578 (use with caution on other system)],
579 gdb_with_regex=$withval,
580 gdb_with_regex=$gdb_use_included_regex)
581 if test "$gdb_with_regex" = yes; then
582 AC_DEFINE(USE_INCLUDED_REGEX, 1,
583 [Define to 1 if the regex included in libiberty should be used.])
584 fi
585
586 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
587 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
588 [#include <sys/param.h>
589 #include <sys/proc.h>
590 ])
591
592 # See if <sys/lwp.h> defines `struct lwp`.
593 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
594 [AC_TRY_COMPILE([#include <sys/param.h>
595 #include <sys/lwp.h>], [struct lwp l;],
596 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
597 if test $gdb_cv_struct_lwp = yes; then
598 AC_DEFINE(HAVE_STRUCT_LWP, 1,
599 [Define to 1 if your system has struct lwp.])
600 fi
601
602 # See if <machine/reg.h> degines `struct reg'.
603 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
604 [AC_TRY_COMPILE([#include <sys/types.h>
605 #include <machine/reg.h>], [struct reg r;],
606 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
607 if test $gdb_cv_struct_reg = yes; then
608 AC_DEFINE(HAVE_STRUCT_REG, 1,
609 [Define to 1 if your system has struct reg in <machine/reg.h>.])
610 fi
611
612 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
613 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
614 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
615 [#include <machine/reg.h>])
616
617 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
618 AC_MSG_CHECKING(for PTRACE_GETREGS)
619 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
620 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
621 [PTRACE_GETREGS;],
622 [gdb_cv_have_ptrace_getregs=yes],
623 [gdb_cv_have_ptrace_getregs=no])])
624 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
625 if test $gdb_cv_have_ptrace_getregs = yes; then
626 AC_DEFINE(HAVE_PTRACE_GETREGS)
627 fi
628
629 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
630 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
631 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
632 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
633 [PTRACE_GETFPXREGS;],
634 [gdb_cv_have_ptrace_getfpxregs=yes],
635 [gdb_cv_have_ptrace_getfpxregs=no])])
636 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
637 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
638 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
639 fi
640
641 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
642 AC_MSG_CHECKING(for PT_GETDBREGS)
643 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
644 [AC_TRY_COMPILE([#include <sys/types.h>
645 #include <sys/ptrace.h>],
646 [PT_GETDBREGS;],
647 [gdb_cv_have_pt_getdbregs=yes],
648 [gdb_cv_have_pt_getdbregs=no])])
649 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
650 if test $gdb_cv_have_pt_getdbregs = yes; then
651 AC_DEFINE(HAVE_PT_GETDBREGS)
652 fi
653
654 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
655 AC_MSG_CHECKING(for PT_GETXMMREGS)
656 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
657 [AC_TRY_COMPILE([#include <sys/types.h>
658 #include <sys/ptrace.h>],
659 [PT_GETXMMREGS;],
660 [gdb_cv_have_pt_getxmmregs=yes],
661 [gdb_cv_have_pt_getxmmregs=no])])
662 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
663 if test $gdb_cv_have_pt_getxmmregs = yes; then
664 AC_DEFINE(HAVE_PT_GETXMMREGS)
665 fi
666
667 # See if stdint.h provides the uintptr_t type.
668 # Autoconf 2.5X has an improved AC_CHECK_TYPE which will simplify this.
669 AC_CACHE_CHECK([for uintptr_t in stdint.h], gdb_cv_have_uintptr_t,
670 [AC_TRY_COMPILE(
671 [#include <stdint.h>],
672 [uintptr_t foo = 0;],
673 gdb_cv_have_uintptr_t=yes,
674 gdb_cv_have_uintptr_t=no)])
675 if test $gdb_cv_have_uintptr_t = yes; then
676 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if <stdint.h> provides the uintptr_t type.])
677 fi
678
679 # If we are configured native on GNU/Linux, work around problems with
680 # sys/procfs.h
681 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
682
683 if test "${target}" = "${host}"; then
684 case "${host}" in
685 i[[3456]]86-*-linux*)
686 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
687 AC_DEFINE(sys_quotactl)
688 ;;
689 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
690 AC_DEFINE(NEW_PROC_API)
691 ;;
692 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]])
693 AC_DEFINE(NEW_PROC_API)
694 ;;
695 mips-sgi-irix5*)
696 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
697 AC_DEFINE([_KMEMUSER], 1)
698 ;;
699 esac
700 fi
701
702 if test "$ac_cv_header_sys_procfs_h" = yes; then
703 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
704 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
705 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
706 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
707 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
708 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
709 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
710 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
711 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
712 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
713 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
714 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
715 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
716 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
717
718
719 dnl Check for broken prfpregset_t type
720
721 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
722 dnl prfpregset_t type (it's a typedef for the pointer to a struct
723 dnl instead of the struct itself). We detect this here, and work
724 dnl around it in gdb_proc_service.h.
725
726 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
727 AC_MSG_CHECKING(whether prfpregset_t type is broken)
728 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
729 [AC_TRY_RUN([#include <sys/procfs.h>
730 int main ()
731 {
732 if (sizeof (prfpregset_t) == sizeof (void *))
733 return 1;
734 return 0;
735 }],
736 gdb_cv_prfpregset_t_broken=no,
737 gdb_cv_prfpregset_t_broken=yes,
738 gdb_cv_prfpregset_t_broken=yes)])
739 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
740 if test $gdb_cv_prfpregset_t_broken = yes; then
741 AC_DEFINE(PRFPREGSET_T_BROKEN)
742 fi
743 fi
744
745 dnl Check for PIOCSET ioctl entry
746
747 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
748 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
749 [AC_TRY_COMPILE([#include <unistd.h>
750 #include <sys/types.h>
751 #include <sys/procfs.h>
752 ], [
753 int dummy;;
754 dummy = ioctl(0, PIOCSET, &dummy);
755 ],
756 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
757 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
758 if test $gdb_cv_have_procfs_piocset = yes; then
759 AC_DEFINE(HAVE_PROCFS_PIOCSET)
760 fi
761 fi
762
763 dnl For native ports (host == target), check to see what kind of
764 dnl legacy link.h support is needed. (See solib-legacy.c.)
765 if test ${host} = ${target} ; then
766 dnl Check for struct link_map with l_ members which are indicative
767 dnl of SVR4-like shared libraries
768
769 AC_MSG_CHECKING(for member l_addr in struct link_map)
770 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
771 [AC_TRY_COMPILE([#include <link.h>],
772 [struct link_map lm; (void) lm.l_addr;],
773 gdb_cv_have_struct_link_map_with_l_members=yes,
774 gdb_cv_have_struct_link_map_with_l_members=no)])
775 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
776 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
777 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
778 fi
779
780 dnl Check for struct link_map with lm_ members which are indicative
781 dnl of SunOS-like shared libraries
782
783 AC_MSG_CHECKING(for member lm_addr in struct link_map)
784 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
785 [AC_TRY_COMPILE([#include <sys/types.h>
786 #include <link.h>],
787 [struct link_map lm; (void) lm.lm_addr;],
788 gdb_cv_have_struct_link_map_with_lm_members=yes,
789 gdb_cv_have_struct_link_map_with_lm_members=no)])
790 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
791 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
792 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
793 fi
794
795 dnl Check for struct so_map with som_ members which are found on
796 dnl some *BSD systems.
797
798 AC_MSG_CHECKING(for member som_addr in struct so_map)
799 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
800 [AC_TRY_COMPILE([#include <sys/types.h>
801 #ifdef HAVE_NLIST_H
802 #include <nlist.h>
803 #endif
804 #include <link.h>],
805 [struct so_map lm; (void) lm.som_addr;],
806 gdb_cv_have_struct_so_map_with_som_members=yes,
807 gdb_cv_have_struct_so_map_with_som_members=no)])
808 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
809 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
810 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
811 fi
812
813 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
814 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
815
816 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
817 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
818 [AC_TRY_COMPILE([#define _SYSCALL32
819 #include <sys/link.h>], [struct link_map32 l;],
820 gdb_cv_have_struct_link_map32=yes,
821 gdb_cv_have_struct_link_map32=no)])
822 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
823 if test $gdb_cv_have_struct_link_map32 = yes; then
824 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
825 AC_DEFINE(_SYSCALL32)
826 fi
827 fi
828
829 # Check if the compiler supports the `long long' type.
830
831 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
832 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
833 [[extern long long foo;]],
834 [[switch (foo & 2) { case 0: return 1; }]])],
835 gdb_cv_c_long_long=yes,
836 gdb_cv_c_long_long=no)])
837 if test $gdb_cv_c_long_long = yes; then
838 AC_DEFINE(CC_HAS_LONG_LONG, 1,
839 [Define to 1 if the compiler supports long long.])
840 fi
841
842 # Check if the compiler and runtime support printing long longs.
843
844 AC_CACHE_CHECK([for long long support in printf],
845 gdb_cv_printf_has_long_long,
846 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
847 [[char buf[32];
848 long long l = 0;
849 l = (l << 16) + 0x0123;
850 l = (l << 16) + 0x4567;
851 l = (l << 16) + 0x89ab;
852 l = (l << 16) + 0xcdef;
853 sprintf (buf, "0x%016llx", l);
854 return (strcmp ("0x0123456789abcdef", buf));]])],
855 gdb_cv_printf_has_long_long=yes,
856 gdb_cv_printf_has_long_long=no,
857 gdb_cv_printf_has_long_long=no)])
858 if test $gdb_cv_printf_has_long_long = yes; then
859 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
860 [Define to 1 if the "%ll" format works to print long longs.])
861 fi
862
863 # Check if the compiler supports the `long double' type. We can't use
864 # AC_C_LONG_DOUBLE because that one does additional checks on the
865 # constants defined in <float.h> that fail on some systems,
866 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
867
868 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
869 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
870 gdb_cv_c_long_double=yes,
871 gdb_cv_c_long_double=no)])
872 if test $gdb_cv_c_long_double = yes; then
873 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
874 [Define to 1 if the compiler supports long double.])
875 fi
876
877 # Check if the compiler and runtime support printing long doubles.
878
879 AC_CACHE_CHECK([for long double support in printf],
880 gdb_cv_printf_has_long_double,
881 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
882 [[char buf[16];
883 long double f = 3.141592653;
884 sprintf (buf, "%Lg", f);
885 return (strncmp ("3.14159", buf, 7));]])],
886 gdb_cv_printf_has_long_double=yes,
887 gdb_cv_printf_has_long_double=no,
888 gdb_cv_printf_has_long_double=no)])
889 if test $gdb_cv_printf_has_long_double = yes; then
890 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
891 [Define to 1 if the "%Lg" format works to print long doubles.])
892 fi
893
894 # Check if the compiler and runtime support scanning long doubles.
895
896 AC_CACHE_CHECK([for long double support in scanf],
897 gdb_cv_scanf_has_long_double,
898 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
899 [[#include <stdio.h>]],
900 [[char *buf = "3.141592653";
901 long double f = 0;
902 sscanf (buf, "%Lg", &f);
903 return !(f > 3.14159 && f < 3.14160);]])],
904 gdb_cv_scanf_has_long_double=yes,
905 gdb_cv_scanf_has_long_double=no,
906 gdb_cv_scanf_has_long_double=no)])
907 if test $gdb_cv_scanf_has_long_double = yes; then
908 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
909 [Define to 1 if the "%Lg" format works to scan long doubles.])
910 fi
911
912 case ${host_os} in
913 aix*)
914 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
915 SAVE_LDFLAGS=$LDFLAGS
916
917 case $GCC in
918 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
919 *) gdb_cv_bigtoc=-bbigtoc ;;
920 esac
921
922 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
923 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
924 LDFLAGS="${SAVE_LDFLAGS}"
925 ])
926 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
927 ;;
928 esac
929
930
931 dnl For certain native configurations, we need to check whether thread
932 dnl support can be built in or not.
933 dnl
934 dnl Note that we only want this if we are both native (host == target),
935 dnl and not doing a canadian cross build (build == host).
936
937 if test ${build} = ${host} -a ${host} = ${target} ; then
938 case ${host_os} in
939 hpux*)
940 AC_MSG_CHECKING(for HPUX/OSF thread support)
941 if test -f /usr/include/dce/cma_config.h ; then
942 if test "$GCC" = "yes" ; then
943 AC_MSG_RESULT(yes)
944 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
945 CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
946 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
947 else
948 AC_MSG_RESULT(no (suppressed because you are not using GCC))
949 fi
950 else
951 AC_MSG_RESULT(no)
952 fi
953 ;;
954 solaris*)
955 # See if thread_db library is around for Solaris thread debugging.
956 # Note that we must explicitly test for version 1 of the library
957 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
958 # the same API.
959 AC_MSG_CHECKING(for Solaris thread debugging library)
960 if test -f /usr/lib/libthread_db.so.1 ; then
961 AC_MSG_RESULT(yes)
962 AC_DEFINE(HAVE_THREAD_DB_LIB)
963 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
964 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
965 AC_CHECK_LIB(dl, dlopen)
966 if test "$GCC" = "yes" ; then
967 # The GNU linker requires the -export-dynamic option to make
968 # all symbols visible in the dynamic symbol table.
969 hold_ldflags=$LDFLAGS
970 AC_MSG_CHECKING(for the ld -export-dynamic flag)
971 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
972 AC_TRY_LINK(, [int i;], found=yes, found=no)
973 LDFLAGS=$hold_ldflags
974 AC_MSG_RESULT($found)
975 if test $found = yes; then
976 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
977 fi
978 fi
979 # Sun randomly tweaked the prototypes in <proc_service.h>
980 # at one point.
981 AC_MSG_CHECKING(if <proc_service.h> is old)
982 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
983 AC_TRY_COMPILE([
984 #include <proc_service.h>
985 ps_err_e ps_pdwrite
986 (struct ps_prochandle*, psaddr_t, const void*, size_t);
987 ],, gdb_cv_proc_service_is_old=no,
988 gdb_cv_proc_service_is_old=yes)
989 ])
990 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
991 if test $gdb_cv_proc_service_is_old = yes; then
992 AC_DEFINE(PROC_SERVICE_IS_OLD)
993 fi
994 else
995 AC_MSG_RESULT(no)
996 fi
997 ;;
998 aix*)
999 AC_MSG_CHECKING(for AiX thread debugging library)
1000 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1001 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1002 [#ifndef PTHDB_VERSION_3
1003 #error
1004 #endif],
1005 gdb_cv_have_aix_thread_debug=yes,
1006 gdb_cv_have_aix_thread_debug=no)])
1007 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1008 if test $gdb_cv_have_aix_thread_debug = yes; then
1009 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1010 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1011 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1012 fi
1013 ;;
1014 esac
1015 AC_SUBST(CONFIG_LDFLAGS)
1016 fi
1017
1018 dnl See if we have a thread_db header file that has TD_NOTALLOC.
1019 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1020 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1021 gdb_cv_thread_db_h_has_td_notalloc,
1022 AC_TRY_COMPILE(
1023 [#include <thread_db.h>],
1024 [int i = TD_NOTALLOC;],
1025 gdb_cv_thread_db_h_has_td_notalloc=yes,
1026 gdb_cv_thread_db_h_has_td_notalloc=no
1027 )
1028 )
1029 fi
1030 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1031 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1032 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1033 fi
1034
1035 dnl See if we have a sys/syscall header file that has __NR_tkill.
1036 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1037 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1038 gdb_cv_sys_syscall_h_has_tkill,
1039 AC_TRY_COMPILE(
1040 [#include <sys/syscall.h>],
1041 [int i = __NR_tkill;],
1042 gdb_cv_sys_syscall_h_has_tkill=yes,
1043 gdb_cv_sys_syscall_h_has_tkill=no
1044 )
1045 )
1046 fi
1047 dnl See if we can issue tkill syscall.
1048 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1049 AC_DEFINE(HAVE_TKILL_SYSCALL, 1,
1050 [Define if we can use the tkill syscall.])
1051 fi
1052
1053 dnl Handle optional features that can be enabled.
1054
1055 AC_ARG_WITH(sysroot,
1056 [ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
1057 [
1058 case ${with_sysroot} in
1059 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1060 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1061 esac
1062
1063 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1064
1065 if test "x$exec_prefix" = xNONE; then
1066 if test "x$prefix" = xNONE; then
1067 test_prefix=/usr/local
1068 else
1069 test_prefix=$prefix
1070 fi
1071 else
1072 test_prefix=$exec_prefix
1073 fi
1074 case ${TARGET_SYSTEM_ROOT} in
1075 "${test_prefix}"|"${test_prefix}/"*|\
1076 '${exec_prefix}'|'${exec_prefix}/'*)
1077 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
1078 TARGET_SYSTEM_ROOT_DEFINE="$t"
1079 ;;
1080 esac
1081 ], [
1082 TARGET_SYSTEM_ROOT=
1083 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1084 ])
1085 AC_SUBST(TARGET_SYSTEM_ROOT)
1086 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1087
1088 # NOTE: Don't add -Wall or -Wunused, they both include
1089 # -Wunused-parameter which reports bogus warnings.
1090 # NOTE: If you add to this list, remember to update
1091 # gdb/doc/gdbint.texinfo.
1092 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
1093 -Wformat -Wparentheses -Wpointer-arith -Wformat-nonliteral \
1094 -Wunused-label -Wunused-function"
1095
1096 # GCC supports -Wuninitialized only with -O or -On, n != 0.
1097 if test x${CFLAGS+set} = xset; then
1098 case "${CFLAGS}" in
1099 *"-O0"* ) ;;
1100 *"-O"* )
1101 build_warnings="${build_warnings} -Wuninitialized"
1102 ;;
1103 esac
1104 else
1105 build_warnings="${build_warnings} -Wuninitialized"
1106 fi
1107
1108 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
1109 # -Wunused-function -Wunused-variable -Wunused-value
1110 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
1111 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
1112 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
1113 # -Woverloaded-virtual -Winline -Werror"
1114 AC_ARG_ENABLE(build-warnings,
1115 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1116 [case "${enableval}" in
1117 yes) ;;
1118 no) build_warnings="-w";;
1119 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1120 build_warnings="${build_warnings} ${t}";;
1121 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1122 build_warnings="${t} ${build_warnings}";;
1123 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1124 esac
1125 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1126 echo "Setting compiler warning flags = $build_warnings" 6>&1
1127 fi])dnl
1128 AC_ARG_ENABLE(gdb-build-warnings,
1129 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1130 [case "${enableval}" in
1131 yes) ;;
1132 no) build_warnings="-w";;
1133 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1134 build_warnings="${build_warnings} ${t}";;
1135 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1136 build_warnings="${t} ${build_warnings}";;
1137 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1138 esac
1139 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1140 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1141 fi])dnl
1142 WARN_CFLAGS=""
1143 WERROR_CFLAGS=""
1144 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1145 then
1146 AC_MSG_CHECKING(compiler warning flags)
1147 # Separate out the -Werror flag as some files just cannot be
1148 # compiled with it enabled.
1149 for w in ${build_warnings}; do
1150 case $w in
1151 -Werr*) WERROR_CFLAGS=-Werror ;;
1152 *) # Check that GCC accepts it
1153 saved_CFLAGS="$CFLAGS"
1154 CFLAGS="$CFLAGS $w"
1155 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1156 CFLAGS="$saved_CFLAGS"
1157 esac
1158 done
1159 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
1160 fi
1161 AC_SUBST(WARN_CFLAGS)
1162 AC_SUBST(WERROR_CFLAGS)
1163
1164 # In the Cygwin environment, we need some additional flags.
1165 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1166 [AC_EGREP_CPP(lose, [
1167 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1168 lose
1169 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1170
1171
1172 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1173 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
1174 case ${host} in
1175 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1176 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1177 esac
1178 AC_SUBST(SER_HARDWIRE)
1179
1180 # libreadline needs libuser32.a in a cygwin environment
1181 WIN32LIBS=
1182 if test x$gdb_cv_os_cygwin = xyes; then
1183 WIN32LIBS="-luser32"
1184 case "${target}" in
1185 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1186 ;;
1187 esac
1188 fi
1189 AC_SUBST(WIN32LIBS)
1190
1191 LIBGUI="../libgui/src/libgui.a"
1192 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1193 AC_SUBST(LIBGUI)
1194 AC_SUBST(GUI_CFLAGS_X)
1195
1196 WIN32LDAPP=
1197 AC_SUBST(WIN32LIBS)
1198 AC_SUBST(WIN32LDAPP)
1199
1200 case "${host}" in
1201 *-*-cygwin*)
1202 configdir="win"
1203 ;;
1204 *)
1205 configdir="unix"
1206 ;;
1207 esac
1208
1209 GDBTKLIBS=
1210 if test "${enable_gdbtk}" = "yes"; then
1211
1212 # Gdbtk must have an absolute path to srcdir in order to run
1213 # properly when not installed.
1214 here=`pwd`
1215 cd ${srcdir}
1216 GDBTK_SRC_DIR=`pwd`
1217 cd $here
1218
1219 CY_AC_PATH_TCLCONFIG
1220 if test -z "${no_tcl}"; then
1221 CY_AC_LOAD_TCLCONFIG
1222 CY_AC_PATH_TKCONFIG
1223
1224 # now look for Tcl library stuff
1225
1226 tcldir="../tcl/${configdir}/"
1227
1228 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1229
1230 # If $no_tk is nonempty, then we can't do Tk, and there is no
1231 # point to doing Tcl.
1232 if test -z "${no_tk}"; then
1233 CY_AC_LOAD_TKCONFIG
1234 CY_AC_PATH_TCLH
1235 CY_AC_PATH_TKH
1236 CY_AC_PATH_ITCLH
1237 CY_AC_PATH_ITKH
1238
1239
1240 # now look for Tk library stuff
1241
1242 tkdir="../tk/${configdir}/"
1243
1244 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1245
1246 # now look for Itcl library stuff
1247
1248 CY_AC_PATH_ITCLCONFIG
1249 if test -z "${no_itcl}"; then
1250 CY_AC_LOAD_ITCLCONFIG
1251
1252 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1253 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1254 fi
1255
1256
1257 # now look for Itk library stuff
1258 CY_AC_PATH_ITKCONFIG
1259 if test -z "${no_itcl}"; then
1260 CY_AC_LOAD_ITKCONFIG
1261
1262 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1263 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1264 fi
1265
1266 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1267
1268 # Include some libraries that Tcl and Tk want.
1269 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1270 # Yes, the ordering seems wrong here. But it isn't.
1271 # TK_LIBS is the list of libraries that need to be linked
1272 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1273 # were in LIBS then any link tests after this point would
1274 # try to include things like `$(LIBGUI)', which wouldn't work.
1275 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1276
1277 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1278 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1279 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1280 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1281 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1282 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1283 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1284
1285 if test x$gdb_cv_os_cygwin = xyes; then
1286 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1287 WIN32LDAPP="-Wl,--subsystem,console"
1288 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1289 fi
1290 fi
1291 fi
1292
1293 AC_CONFIG_SUBDIRS(gdbtk)
1294 fi
1295
1296 AC_SUBST(X_CFLAGS)
1297 AC_SUBST(X_LDFLAGS)
1298 AC_SUBST(X_LIBS)
1299 AC_SUBST(TCL_DEPS)
1300 AC_SUBST(TK_DEPS)
1301 AC_SUBST(ITCLLIB)
1302 AC_SUBST(ITCL_DEPS)
1303 AC_SUBST(ITKLIB)
1304 AC_SUBST(ITK_DEPS)
1305 AC_SUBST(GDBTKLIBS)
1306 AC_SUBST(GDBTK_CFLAGS)
1307 AC_SUBST(GDBTK_SRC_DIR)
1308
1309 AC_PATH_X
1310
1311 # Check whether we should enable the TUI, but only do so if we really
1312 # can.
1313 if test x"$enable_tui" = xyes; then
1314 if test -d $srcdir/tui; then
1315 if test "$ac_cv_search_waddstr" != no; then
1316 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
1317 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
1318 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
1319 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
1320 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
1321 CONFIG_ALL="${CONFIG_ALL} all-tui"
1322 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
1323 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
1324 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
1325 else
1326 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
1327 fi
1328 fi
1329 fi
1330
1331 # Unlike the sim directory, whether a simulator is linked is controlled by
1332 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1333 # This code just checks for a few cases where we'd like to ignore those
1334 # definitions, even when they're present in the '.mt' file. These cases
1335 # are when --disable-sim is specified, or if the simulator directory is
1336 # not part of the source tree.
1337 #
1338 AC_ARG_ENABLE(sim,
1339 [ --enable-sim Link gdb with simulator],
1340 [echo "enable_sim = $enable_sim";
1341 echo "enableval = ${enableval}";
1342 case "${enableval}" in
1343 yes) ignore_sim=false ;;
1344 no) ignore_sim=true ;;
1345 *) ignore_sim=false ;;
1346 esac],
1347 [ignore_sim=false])
1348
1349 if test ! -d "${srcdir}/../sim"; then
1350 ignore_sim=true
1351 fi
1352
1353 if test "${ignore_sim}" = "true"; then
1354 IGNORE_SIM="SIM="
1355 IGNORE_SIM_OBS="SIM_OBS="
1356 else
1357 IGNORE_SIM=""
1358 IGNORE_SIM_OBS=""
1359 AC_DEFINE(WITH_SIM)
1360 fi
1361 AC_SUBST(IGNORE_SIM)
1362 AC_SUBST(IGNORE_SIM_OBS)
1363
1364 AC_SUBST(ENABLE_CFLAGS)
1365 AC_SUBST(PROFILE_CFLAGS)
1366
1367 AC_SUBST(CONFIG_OBS)
1368 AC_SUBST(CONFIG_DEPS)
1369 AC_SUBST(CONFIG_SRCS)
1370 AC_SUBST(CONFIG_ALL)
1371 AC_SUBST(CONFIG_CLEAN)
1372 AC_SUBST(CONFIG_INSTALL)
1373 AC_SUBST(CONFIG_UNINSTALL)
1374
1375 # List of host floatformats.
1376 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
1377 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
1378 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1379
1380 # target_subdir is used by the testsuite to find the target libraries.
1381 target_subdir=
1382 if test "${host}" != "${target}"; then
1383 target_subdir="${target_alias}/"
1384 fi
1385 AC_SUBST(target_subdir)
1386
1387 frags=
1388 if test "${target}" = "${host}"; then
1389 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1390 if test ! -f ${host_makefile_frag}; then
1391 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1392 fi
1393 frags="$frags $host_makefile_frag"
1394 else
1395 host_makefile_frag=/dev/null
1396 fi
1397
1398 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1399 if test ! -f ${target_makefile_frag}; then
1400 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1401 fi
1402 frags="$frags $target_makefile_frag"
1403
1404 AC_SUBST_FILE(host_makefile_frag)
1405 AC_SUBST_FILE(target_makefile_frag)
1406 AC_SUBST(frags)
1407
1408 changequote(,)dnl
1409 hostfile=`sed -n '
1410 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1411 ' ${host_makefile_frag}`
1412
1413 targetfile=`sed -n '
1414 s/DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1415 ' ${target_makefile_frag}`
1416
1417 if test "${target}" = "${host}"; then
1418 # We pick this up from the host configuration file (.mh) because we
1419 # do not have a native configuration Makefile fragment.
1420 nativefile=`sed -n '
1421 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1422 ' ${host_makefile_frag}`
1423 fi
1424 changequote([,])
1425
1426 if test x"${gdb_osabi}" != x ; then
1427 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1428 [Define to the default OS ABI for this configuration.])
1429 fi
1430
1431 # Enable multi-ice-gdb-server.
1432 AC_ARG_ENABLE(multi-ice,
1433 [ --enable-multi-ice build the multi-ice-gdb-server],
1434 [case $enableval in
1435 yes | no)
1436 ;;
1437 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1438 esac])
1439 if test "x$enable_multi_ice" = xyes; then
1440 AC_CONFIG_SUBDIRS(multi-ice)
1441 fi
1442
1443 # We only build gdbserver automatically if host and target are the same.
1444 if test "x$target" = "x$host"; then
1445 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1446 if test "x$build_gdbserver" = xyes; then
1447 AC_MSG_RESULT(yes)
1448 AC_CONFIG_SUBDIRS(gdbserver)
1449 else
1450 AC_MSG_RESULT(no)
1451 fi
1452 fi
1453
1454 # We build rdi-share on ARM-based targets, as instructed by configure.tgt.
1455 if test "x$build_rdi_share" = xyes; then
1456 AC_CONFIG_SUBDIRS(rdi-share)
1457 fi
1458
1459 # We configure the nlm subdirectory on netware targets, as instructed
1460 # by configure.tgt.
1461 if test "x$build_nlm" = xyes; then
1462 AC_CONFIG_SUBDIRS(nlm)
1463 fi
1464
1465 # If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or
1466 # nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
1467 # to an empty version.
1468
1469 files=
1470 links=
1471
1472 rm -f xm.h
1473 xm_h=""
1474 if test "${hostfile}" != ""; then
1475 xm_h=xm.h
1476 case "${hostfile}" in
1477 xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;;
1478 * ) GDB_XM_FILE="${hostfile}"
1479 esac
1480 files="${files} ${GDB_XM_FILE}"
1481 links="${links} xm.h"
1482 AC_DEFINE_UNQUOTED(GDB_XM_FILE, "${GDB_XM_FILE}")
1483 fi
1484 AC_SUBST(xm_h)
1485
1486 rm -f tm.h
1487 tm_h=""
1488 if test "${targetfile}" != ""; then
1489 tm_h=tm.h
1490 case "${targetfile}" in
1491 tm-*.h ) GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}" ;;
1492 * ) GDB_TM_FILE="${targetfile}"
1493 esac
1494 files="${files} ${GDB_TM_FILE}"
1495 links="${links} tm.h"
1496 AC_DEFINE_UNQUOTED(GDB_TM_FILE, "${GDB_TM_FILE}")
1497 fi
1498 AC_SUBST(tm_h)
1499
1500 rm -f nm.h
1501 nm_h=""
1502 if test "${nativefile}" != ""; then
1503 nm_h=nm.h
1504 case "${nativefile}" in
1505 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
1506 * ) GDB_NM_FILE="${nativefile}"
1507 esac
1508 files="${files} ${GDB_NM_FILE}"
1509 links="${links} nm.h"
1510 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}")
1511 fi
1512 AC_SUBST(nm_h)
1513
1514 AC_LINK_FILES($files, $links)
1515
1516 dnl Check for exe extension set on certain hosts (e.g. Win32)
1517 AC_EXEEXT
1518
1519 dnl Detect the character set used by this host.
1520
1521 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1522 dnl superset of ASCII containing the characters needed for French,
1523 dnl German, Spanish, Italian, and possibly others), but if were
1524 dnl *were* to support any host character sets other than ISO-8859-1,
1525 dnl here's where we'd detect it.
1526 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1527 [Define to be a string naming the default host character set.])
1528
1529 AM_ICONV
1530
1531 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1532 [
1533 dnl Autoconf doesn't provide a mechanism for modifying definitions
1534 dnl provided by makefile fragments.
1535 dnl
1536
1537 changequote(,)dnl
1538 sed -e '/^DEPRECATED_TM_FILE[ ]*=/s,^DEPRECATED_TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1539 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1540 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1541 mv -f Makefile.tmp Makefile
1542 changequote([,])dnl
1543
1544
1545 case x$CONFIG_HEADERS in
1546 xconfig.h:config.in)
1547 echo > stamp-h ;;
1548 esac
1549 ],
1550 [
1551 gdb_host_cpu=$gdb_host_cpu
1552 gdb_target_cpu=$gdb_target_cpu
1553 nativefile=$nativefile
1554 ])
1555
1556 exit 0
This page took 0.091673 seconds and 5 git commands to generate.