* config/m68k/obsd.mt (DEPRECATED_TM_FILE): Remove.
[external/binutils.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
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