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