* Makefile.in (SFILES): Add ser-base.c.
[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-base.o 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 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o" ;;
1178 esac
1179 AC_SUBST(SER_HARDWIRE)
1180
1181 # libreadline needs libuser32.a in a cygwin environment
1182 WIN32LIBS=
1183 if test x$gdb_cv_os_cygwin = xyes; then
1184 WIN32LIBS="-luser32"
1185 case "${target}" in
1186 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1187 ;;
1188 esac
1189 fi
1190 AC_SUBST(WIN32LIBS)
1191
1192 LIBGUI="../libgui/src/libgui.a"
1193 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1194 AC_SUBST(LIBGUI)
1195 AC_SUBST(GUI_CFLAGS_X)
1196
1197 WIN32LDAPP=
1198 AC_SUBST(WIN32LIBS)
1199 AC_SUBST(WIN32LDAPP)
1200
1201 case "${host}" in
1202 *-*-cygwin*)
1203 configdir="win"
1204 ;;
1205 *)
1206 configdir="unix"
1207 ;;
1208 esac
1209
1210 GDBTKLIBS=
1211 if test "${enable_gdbtk}" = "yes"; then
1212
1213 # Gdbtk must have an absolute path to srcdir in order to run
1214 # properly when not installed.
1215 here=`pwd`
1216 cd ${srcdir}
1217 GDBTK_SRC_DIR=`pwd`
1218 cd $here
1219
1220 CY_AC_PATH_TCLCONFIG
1221 if test -z "${no_tcl}"; then
1222 CY_AC_LOAD_TCLCONFIG
1223 CY_AC_PATH_TKCONFIG
1224
1225 # now look for Tcl library stuff
1226
1227 tcldir="../tcl/${configdir}/"
1228
1229 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1230
1231 # If $no_tk is nonempty, then we can't do Tk, and there is no
1232 # point to doing Tcl.
1233 if test -z "${no_tk}"; then
1234 CY_AC_LOAD_TKCONFIG
1235 CY_AC_PATH_TCLH
1236 CY_AC_PATH_TKH
1237 CY_AC_PATH_ITCLH
1238 CY_AC_PATH_ITKH
1239
1240
1241 # now look for Tk library stuff
1242
1243 tkdir="../tk/${configdir}/"
1244
1245 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1246
1247 # now look for Itcl library stuff
1248
1249 CY_AC_PATH_ITCLCONFIG
1250 if test -z "${no_itcl}"; then
1251 CY_AC_LOAD_ITCLCONFIG
1252
1253 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1254 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1255 fi
1256
1257
1258 # now look for Itk library stuff
1259 CY_AC_PATH_ITKCONFIG
1260 if test -z "${no_itcl}"; then
1261 CY_AC_LOAD_ITKCONFIG
1262
1263 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1264 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1265 fi
1266
1267 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1268
1269 # Include some libraries that Tcl and Tk want.
1270 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1271 # Yes, the ordering seems wrong here. But it isn't.
1272 # TK_LIBS is the list of libraries that need to be linked
1273 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1274 # were in LIBS then any link tests after this point would
1275 # try to include things like `$(LIBGUI)', which wouldn't work.
1276 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1277
1278 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1279 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1280 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1281 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1282 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1283 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1284 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1285
1286 if test x$gdb_cv_os_cygwin = xyes; then
1287 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1288 WIN32LDAPP="-Wl,--subsystem,console"
1289 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1290 fi
1291 fi
1292 fi
1293
1294 AC_CONFIG_SUBDIRS(gdbtk)
1295 fi
1296
1297 AC_SUBST(X_CFLAGS)
1298 AC_SUBST(X_LDFLAGS)
1299 AC_SUBST(X_LIBS)
1300 AC_SUBST(TCL_DEPS)
1301 AC_SUBST(TK_DEPS)
1302 AC_SUBST(ITCLLIB)
1303 AC_SUBST(ITCL_DEPS)
1304 AC_SUBST(ITKLIB)
1305 AC_SUBST(ITK_DEPS)
1306 AC_SUBST(GDBTKLIBS)
1307 AC_SUBST(GDBTK_CFLAGS)
1308 AC_SUBST(GDBTK_SRC_DIR)
1309
1310 AC_PATH_X
1311
1312 # Check whether we should enable the TUI, but only do so if we really
1313 # can.
1314 if test x"$enable_tui" = xyes; then
1315 if test -d $srcdir/tui; then
1316 if test "$ac_cv_search_waddstr" != no; then
1317 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
1318 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
1319 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
1320 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
1321 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
1322 CONFIG_ALL="${CONFIG_ALL} all-tui"
1323 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
1324 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
1325 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
1326 else
1327 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
1328 fi
1329 fi
1330 fi
1331
1332 # Unlike the sim directory, whether a simulator is linked is controlled by
1333 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1334 # This code just checks for a few cases where we'd like to ignore those
1335 # definitions, even when they're present in the '.mt' file. These cases
1336 # are when --disable-sim is specified, or if the simulator directory is
1337 # not part of the source tree.
1338 #
1339 AC_ARG_ENABLE(sim,
1340 [ --enable-sim Link gdb with simulator],
1341 [echo "enable_sim = $enable_sim";
1342 echo "enableval = ${enableval}";
1343 case "${enableval}" in
1344 yes) ignore_sim=false ;;
1345 no) ignore_sim=true ;;
1346 *) ignore_sim=false ;;
1347 esac],
1348 [ignore_sim=false])
1349
1350 if test ! -d "${srcdir}/../sim"; then
1351 ignore_sim=true
1352 fi
1353
1354 if test "${ignore_sim}" = "true"; then
1355 IGNORE_SIM="SIM="
1356 IGNORE_SIM_OBS="SIM_OBS="
1357 else
1358 IGNORE_SIM=""
1359 IGNORE_SIM_OBS=""
1360 AC_DEFINE(WITH_SIM)
1361 fi
1362 AC_SUBST(IGNORE_SIM)
1363 AC_SUBST(IGNORE_SIM_OBS)
1364
1365 AC_SUBST(ENABLE_CFLAGS)
1366 AC_SUBST(PROFILE_CFLAGS)
1367
1368 AC_SUBST(CONFIG_OBS)
1369 AC_SUBST(CONFIG_DEPS)
1370 AC_SUBST(CONFIG_SRCS)
1371 AC_SUBST(CONFIG_ALL)
1372 AC_SUBST(CONFIG_CLEAN)
1373 AC_SUBST(CONFIG_INSTALL)
1374 AC_SUBST(CONFIG_UNINSTALL)
1375
1376 # List of host floatformats.
1377 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
1378 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
1379 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1380
1381 # target_subdir is used by the testsuite to find the target libraries.
1382 target_subdir=
1383 if test "${host}" != "${target}"; then
1384 target_subdir="${target_alias}/"
1385 fi
1386 AC_SUBST(target_subdir)
1387
1388 frags=
1389 if test "${target}" = "${host}"; then
1390 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1391 if test ! -f ${host_makefile_frag}; then
1392 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1393 fi
1394 frags="$frags $host_makefile_frag"
1395 else
1396 host_makefile_frag=/dev/null
1397 fi
1398
1399 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1400 if test ! -f ${target_makefile_frag}; then
1401 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1402 fi
1403 frags="$frags $target_makefile_frag"
1404
1405 AC_SUBST_FILE(host_makefile_frag)
1406 AC_SUBST_FILE(target_makefile_frag)
1407 AC_SUBST(frags)
1408
1409 changequote(,)dnl
1410 hostfile=`sed -n '
1411 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1412 ' ${host_makefile_frag}`
1413
1414 targetfile=`sed -n '
1415 s/DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1416 ' ${target_makefile_frag}`
1417
1418 if test "${target}" = "${host}"; then
1419 # We pick this up from the host configuration file (.mh) because we
1420 # do not have a native configuration Makefile fragment.
1421 nativefile=`sed -n '
1422 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1423 ' ${host_makefile_frag}`
1424 fi
1425 changequote([,])
1426
1427 if test x"${gdb_osabi}" != x ; then
1428 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1429 [Define to the default OS ABI for this configuration.])
1430 fi
1431
1432 # Enable multi-ice-gdb-server.
1433 AC_ARG_ENABLE(multi-ice,
1434 [ --enable-multi-ice build the multi-ice-gdb-server],
1435 [case $enableval in
1436 yes | no)
1437 ;;
1438 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1439 esac])
1440 if test "x$enable_multi_ice" = xyes; then
1441 AC_CONFIG_SUBDIRS(multi-ice)
1442 fi
1443
1444 # We only build gdbserver automatically if host and target are the same.
1445 if test "x$target" = "x$host"; then
1446 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1447 if test "x$build_gdbserver" = xyes; then
1448 AC_MSG_RESULT(yes)
1449 AC_CONFIG_SUBDIRS(gdbserver)
1450 else
1451 AC_MSG_RESULT(no)
1452 fi
1453 fi
1454
1455 # We build rdi-share on ARM-based targets, as instructed by configure.tgt.
1456 if test "x$build_rdi_share" = xyes; then
1457 AC_CONFIG_SUBDIRS(rdi-share)
1458 fi
1459
1460 # We configure the nlm subdirectory on netware targets, as instructed
1461 # by configure.tgt.
1462 if test "x$build_nlm" = xyes; then
1463 AC_CONFIG_SUBDIRS(nlm)
1464 fi
1465
1466 # If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or
1467 # nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
1468 # to an empty version.
1469
1470 files=
1471 links=
1472
1473 rm -f xm.h
1474 xm_h=""
1475 if test "${hostfile}" != ""; then
1476 xm_h=xm.h
1477 case "${hostfile}" in
1478 xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;;
1479 * ) GDB_XM_FILE="${hostfile}"
1480 esac
1481 files="${files} ${GDB_XM_FILE}"
1482 links="${links} xm.h"
1483 AC_DEFINE_UNQUOTED(GDB_XM_FILE, "${GDB_XM_FILE}")
1484 fi
1485 AC_SUBST(xm_h)
1486
1487 rm -f tm.h
1488 tm_h=""
1489 if test "${targetfile}" != ""; then
1490 tm_h=tm.h
1491 case "${targetfile}" in
1492 tm-*.h ) GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}" ;;
1493 * ) GDB_TM_FILE="${targetfile}"
1494 esac
1495 files="${files} ${GDB_TM_FILE}"
1496 links="${links} tm.h"
1497 AC_DEFINE_UNQUOTED(GDB_TM_FILE, "${GDB_TM_FILE}")
1498 fi
1499 AC_SUBST(tm_h)
1500
1501 rm -f nm.h
1502 nm_h=""
1503 if test "${nativefile}" != ""; then
1504 nm_h=nm.h
1505 case "${nativefile}" in
1506 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
1507 * ) GDB_NM_FILE="${nativefile}"
1508 esac
1509 files="${files} ${GDB_NM_FILE}"
1510 links="${links} nm.h"
1511 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}")
1512 fi
1513 AC_SUBST(nm_h)
1514
1515 AC_LINK_FILES($files, $links)
1516
1517 dnl Check for exe extension set on certain hosts (e.g. Win32)
1518 AC_EXEEXT
1519
1520 dnl Detect the character set used by this host.
1521
1522 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1523 dnl superset of ASCII containing the characters needed for French,
1524 dnl German, Spanish, Italian, and possibly others), but if were
1525 dnl *were* to support any host character sets other than ISO-8859-1,
1526 dnl here's where we'd detect it.
1527 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1528 [Define to be a string naming the default host character set.])
1529
1530 AM_ICONV
1531
1532 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1533 [
1534 dnl Autoconf doesn't provide a mechanism for modifying definitions
1535 dnl provided by makefile fragments.
1536 dnl
1537
1538 changequote(,)dnl
1539 sed -e '/^DEPRECATED_TM_FILE[ ]*=/s,^DEPRECATED_TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1540 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1541 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1542 mv -f Makefile.tmp Makefile
1543 changequote([,])dnl
1544
1545
1546 case x$CONFIG_HEADERS in
1547 xconfig.h:config.in)
1548 echo > stamp-h ;;
1549 esac
1550 ],
1551 [
1552 gdb_host_cpu=$gdb_host_cpu
1553 gdb_target_cpu=$gdb_target_cpu
1554 nativefile=$nativefile
1555 ])
1556
1557 exit 0
This page took 0.082938 seconds and 5 git commands to generate.