Copyright year update in most files of the GDB Project.
[platform/upstream/binutils.git] / gdb / configure.ac
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995-2012 Free Software Foundation, Inc.
3 dnl
4 dnl This file is part of GDB.
5 dnl 
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 3 of the License, or
9 dnl (at your option) any later version.
10 dnl
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 dnl GNU General Public License for more details.
15 dnl
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19 dnl Process this file with autoconf to produce a configure script.
20
21 AC_PREREQ(2.59)dnl
22 AC_INIT(main.c)
23 AC_CONFIG_HEADER(config.h:config.in)
24 AM_MAINTAINER_MODE
25
26 AC_PROG_CC
27 AC_USE_SYSTEM_EXTENSIONS
28 gl_EARLY
29 ACX_LARGEFILE
30 AM_PROG_CC_STDC
31
32 AC_CONFIG_AUX_DIR(..)
33 AC_CANONICAL_SYSTEM
34
35 # Dependency checking.
36 ZW_CREATE_DEPDIR
37 ZW_PROG_COMPILER_DEPENDENCIES([CC])
38
39 # Check for the 'make' the user wants to use.
40 AC_CHECK_PROGS(MAKE, make)
41 MAKE_IS_GNU=
42 case "`$MAKE --version 2>&1 | sed 1q`" in
43   *GNU*)
44     MAKE_IS_GNU=yes
45     ;;
46 esac
47 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
48 AC_PROG_MAKE_SET
49
50 dnl List of object files and targets accumulated by configure.
51
52 CONFIG_OBS=
53 CONFIG_DEPS=
54 CONFIG_SRCS=
55 ENABLE_CFLAGS=
56
57 CONFIG_ALL=
58 CONFIG_CLEAN=
59 CONFIG_INSTALL=
60 CONFIG_UNINSTALL=
61
62 dnl Set up for gettext.
63 ZW_GNU_GETTEXT_SISTER_DIR
64
65 localedir='${datadir}/locale'
66 AC_SUBST(localedir)
67
68 if test x"$USE_NLS" = xyes; then
69    CONFIG_ALL="$CONFIG_ALL all-po"
70    CONFIG_CLEAN="$CONFIG_CLEAN clean-po"                   
71    CONFIG_INSTALL="$CONFIG_INSTALL install-po"
72    CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
73 fi
74
75 gl_INIT
76
77 # For Makefile dependencies.
78 GNULIB_STDINT_H=
79 if test x"$STDINT_H" != x; then
80   GNULIB_STDINT_H=gnulib/$STDINT_H
81 fi
82 AC_SUBST(GNULIB_STDINT_H)
83
84 PACKAGE=gdb
85 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
86 AC_SUBST(PACKAGE)
87
88 # Do we have a single-tree copy of texinfo?  Even if we do, we can't
89 # rely on it - libiberty is built before texinfo.
90 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
91 if test "x$MAKEINFO" = "x"; then
92   AC_ERROR([makeinfo is required for compilation])
93 else
94   case "$MAKEINFO" in
95     */missing\ makeinfo*)
96       AC_ERROR([makeinfo is required for compilation])
97       ;;
98   esac
99 fi
100 AC_SUBST(MAKEINFO)
101
102 # --split-size=5000000 may be already in $MAKEINFO from parent configure.
103 # Re-running configure in gdb/ would lose it so ensure it stays present.
104 MAKEINFOFLAGS=${MAKEINFOFLAGS---split-size=5000000}
105 AC_SUBST(MAKEINFOFLAGS)
106
107 MAKEINFO_EXTRA_FLAGS=""
108 AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
109   [echo '@clicksequence{a @click{} b}' >conftest.texinfo
110   if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
111     gdb_cv_have_makeinfo_click=yes
112   else
113     gdb_cv_have_makeinfo_click=no
114   fi])
115 if test x"$gdb_cv_have_makeinfo_click" = xyes; then
116   MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
117 fi
118 AC_SUBST(MAKEINFO_EXTRA_FLAGS)
119
120 # GDB does not use automake, but gnulib does.  This line lets us
121 # generate its Makefile.in.
122 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
123
124 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
125     [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
126     [${libdir}/debug])
127
128 # GDB's datadir relocation
129
130 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
131     [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
132     [${datadir}/gdb])
133
134 AC_ARG_WITH(relocated-sources,
135 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
136 [reloc_srcdir="${withval}"
137  AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
138               [Relocated directory for source files. ])
139 ])
140
141 AC_CONFIG_SUBDIRS(testsuite)
142
143 # Check whether to support alternative target configurations
144 AC_ARG_ENABLE(targets,
145 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
146 [case "${enableval}" in
147   yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
148             ;;
149   no)       enable_targets= ;;
150   *)        enable_targets=$enableval ;;
151 esac])
152
153 # Check whether to enable 64-bit support on 32-bit hosts
154 AC_ARG_ENABLE(64-bit-bfd,
155 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
156 [case "${enableval}" in
157   yes)  want64=true  ;;
158   no)   want64=false ;;
159   *)    AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
160 esac],[want64=false])dnl
161
162 # Provide defaults for some variables set by the per-host and per-target
163 # configuration.
164 gdb_host_obs=posix-hdep.o
165
166 if test "${target}" = "${host}"; then
167   gdb_native=yes
168 else
169   gdb_native=no
170 fi
171
172 . $srcdir/configure.host
173
174 # Accumulate some settings from configure.tgt over all enabled targets
175
176 TARGET_OBS=
177 all_targets=
178
179 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
180 do
181   if test "$targ_alias" = "all"; then
182     all_targets=true
183   else
184     # Canonicalize the secondary target names.
185     result=`$ac_config_sub $targ_alias 2>/dev/null`
186     if test -n "$result"; then
187         targ=$result
188     else
189         targ=$targ_alias
190     fi
191
192     . ${srcdir}/configure.tgt
193
194     AS_IF([test -z "${gdb_target_obs}"],
195       [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
196
197     # Target-specific object files
198     for i in ${gdb_target_obs}; do
199         case " $TARGET_OBS " in
200         *" ${i} "*) ;;
201         *)
202           TARGET_OBS="$TARGET_OBS ${i}"
203           ;;
204         esac
205     done
206
207     # Check whether this target needs 64-bit CORE_ADDR
208     if test x${want64} = xfalse; then
209       . ${srcdir}/../bfd/config.bfd
210     fi
211   fi
212 done
213
214 if test x${all_targets} = xtrue; then
215
216   # We want all 64-bit targets if we either:
217   #  - run on a 64-bit host  or
218   #  - already require 64-bit support for some other target  or
219   #  - the --enable-64-bit-bfd option was supplied
220   # Otherwise we only support all 32-bit targets.
221   #
222   # NOTE: This test must be in sync with the corresponding
223   #       tests in BFD!
224
225   if test x${want64} = xfalse; then
226     AC_CHECK_SIZEOF(long)
227     if test "x${ac_cv_sizeof_long}" = "x8"; then
228       want64=true
229     fi
230   fi
231   if test x${want64} = xtrue; then
232     TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
233   else
234     TARGET_OBS='$(ALL_TARGET_OBS)'
235   fi
236 fi
237
238 AC_SUBST(TARGET_OBS)
239
240 # For other settings, only the main target counts.
241 gdb_sim=
242 gdb_osabi=
243 build_gdbserver=
244 targ=$target; . ${srcdir}/configure.tgt
245
246 # Fetch the default architecture and default target vector from BFD.
247 targ=$target; . $srcdir/../bfd/config.bfd
248
249 # We only want the first architecture, so strip off the others if
250 # there is more than one.
251 targ_archs=`echo $targ_archs | sed 's/ .*//'`
252
253 if test "x$targ_archs" != x; then
254   AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
255     [Define to BFD's default architecture. ])
256 fi
257 if test "x$targ_defvec" != x; then
258   AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
259     [Define to BFD's default target vector. ])
260 fi
261
262 # The CLI cannot be disabled yet, but may be in the future.
263
264 # Enable CLI.
265 AC_ARG_ENABLE(gdbcli,
266 AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
267   [case $enableval in
268     yes)
269       ;;
270     no)
271       AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
272     *)
273       AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
274   esac],
275   [enable_gdbcli=yes])
276 if test x"$enable_gdbcli" = xyes; then
277   if test -d $srcdir/cli; then
278     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
279     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
280     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
281     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
282   fi
283 fi
284
285 # Enable MI.
286 AC_ARG_ENABLE(gdbmi,
287 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
288   [case $enableval in
289     yes | no)
290       ;;
291     *)
292       AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
293   esac],
294   [enable_gdbmi=yes])
295 if test x"$enable_gdbmi" = xyes; then
296   if test -d $srcdir/mi; then
297     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
298     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
299     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
300     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
301   fi
302 fi
303
304 # Enable TUI.
305 AC_ARG_ENABLE(tui,
306 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
307   [case $enableval in
308     yes | no | auto)
309       ;;
310     *)
311       AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
312   esac],enable_tui=auto)
313
314 # Enable gdbtk.
315 AC_ARG_ENABLE(gdbtk,
316 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
317   [case $enableval in
318     yes | no)
319       ;;
320     *)
321       AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
322   esac],
323   [if test -d $srcdir/gdbtk; then
324     enable_gdbtk=yes
325   else
326     enable_gdbtk=no
327   fi])
328 # We unconditionally disable gdbtk tests on selected platforms.
329 case $host_os in
330   go32* | windows*)
331     AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
332     enable_gdbtk=no ;;
333 esac
334
335 # Libunwind support.
336 AC_ARG_WITH(libunwind,
337 AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
338 [case "${withval}" in
339   yes)  enable_libunwind=yes ;;
340   no)   enable_libunwind=no ;;
341   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
342 esac],[
343   AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
344   if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
345     enable_libunwind=yes;
346   fi
347 ])
348    
349 if test x"$enable_libunwind" = xyes; then
350   AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
351   AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
352   CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
353   CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
354   CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
355 fi
356
357 opt_curses=no
358 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
359
360 prefer_curses=no
361 if test "$opt_curses" = "yes"; then
362   prefer_curses=yes
363 fi
364
365 # Profiling support.
366 AC_ARG_ENABLE(profiling,
367 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
368   [case $enableval in
369     yes | no)
370       ;;
371     *)
372       AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
373   esac],
374  [enable_profiling=no])
375
376 AC_CHECK_FUNCS(monstartup _mcleanup)
377 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
378 [AC_TRY_LINK(
379 [#include <stdlib.h>
380 extern char _etext;
381 ],
382 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
383 if test $ac_cv_var__etext = yes; then
384   AC_DEFINE(HAVE__ETEXT, 1,
385             [Define to 1 if your system has the _etext variable. ])
386 fi
387 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
388 [AC_TRY_LINK(
389 [#include <stdlib.h>
390 extern char etext;
391 ],
392 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
393 if test $ac_cv_var_etext = yes; then
394   AC_DEFINE(HAVE_ETEXT, 1,
395             [Define to 1 if your system has the etext variable. ])
396 fi
397 if test "$enable_profiling" = yes ; then
398   if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
399     AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
400   fi
401   PROFILE_CFLAGS=-pg
402   OLD_CFLAGS="$CFLAGS"
403   CFLAGS="$CFLAGS $PROFILE_CFLAGS"
404
405   AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
406     [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
407      ac_cv_cc_supports_pg=no)])
408
409   if test $ac_cv_cc_supports_pg = no; then
410     AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
411   fi
412
413   CFLAGS="$OLD_CFLAGS"
414 fi
415
416 ACX_PKGVERSION([GDB])
417 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
418 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
419 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
420
421 # --------------------- #
422 # Checks for programs.  #
423 # --------------------- #
424
425 AC_PROG_AWK
426 AC_PROG_INSTALL
427 AC_PROG_LN_S
428 AC_PROG_RANLIB
429 AC_PROG_YACC
430
431 AC_CHECK_TOOL(AR, ar)
432 AC_CHECK_TOOL(DLLTOOL, dlltool)
433 AC_CHECK_TOOL(WINDRES, windres)
434
435 # Needed for GNU/Hurd.
436 AC_CHECK_TOOL(MIG, mig)
437
438 # ---------------------- #
439 # Checks for libraries.  #
440 # ---------------------- #
441
442 # We might need to link with -lm; most simulators need it.
443 AC_CHECK_LIB(m, main)
444
445 # We need to link with -lw to get `wctype' on Solaris before Solaris
446 # 2.6.  Solaris 2.6 and beyond have this function in libc, and have a
447 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
448 # is known to have this problem).  Therefore we avoid libw if we can.
449 AC_CHECK_FUNC(wctype, [],
450   [AC_CHECK_LIB(w, wctype)])
451
452 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
453 AC_SEARCH_LIBS(gethostbyname, nsl)
454
455 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
456 AC_SEARCH_LIBS(socketpair, socket)
457
458 # Link in zlib if we can.  This allows us to read compressed debug sections.
459 AM_ZLIB
460
461 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
462 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
463
464 AM_ICONV
465
466 # GDB may fork/exec the iconv program to get the list of supported character
467 # sets.  Allow the user to specify where to find it.
468 # There are several factors affecting the choice of option name:
469 # - There is already --with-libiconv-prefix but we can't use it, it specifies
470 #   the build-time location of libiconv files.
471 # - The program we need to find is iconv, which comes with glibc.  The user
472 #   doesn't necessarily have libiconv installed.  Therefore naming this
473 #   --with-libiconv-foo feels wrong.
474 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
475 #   defined to work on directories not files (though it really doesn't know
476 #   the difference).
477 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
478 #   with --with-libiconv-prefix.
479 # Putting these together is why the option name is --with-iconv-bin.
480
481 AC_ARG_WITH(iconv-bin,
482 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
483 [iconv_bin="${withval}"
484  AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
485                     [Path of directory of iconv program.])
486  GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
487 ])
488
489 # On alpha-osf, it appears that libtermcap and libcurses are not compatible.
490 # There is a very specific comment in /usr/include/curses.h explaining that
491 # termcap routines built into libcurses must not be used.
492
493 # The symptoms we observed so far is GDB unexpectedly changing
494 # the terminal settings when tgetent is called - this is particularly
495 # visible as the output is missing carriage returns, and so rapidly
496 # becomes very hard to read.
497 #
498 # The readline configure script has already decided that libtermcap
499 # was enough for its purposes, and so decided to build readline using
500 # libtermcap.  Since the TUI mode requires curses, building GDB with
501 # TUI enabled results in both libraries to be used at the same time,
502 # which is not allowed.  This basically means that GDB with TUI is
503 # broken on alpha-osf.
504
505 case $host_os in
506   osf* )
507     if test x"$enable_tui" = xyes; then
508       AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
509     fi
510     if test x"$enable_tui" = xauto; then
511       enable_tui=no
512     fi
513     ;;
514 esac
515
516 # For the TUI, we need enhanced curses functionality.
517 if test x"$enable_tui" != xno; then
518   prefer_curses=yes
519 fi
520
521 curses_found=no
522 if test x"$prefer_curses" = xyes; then
523   # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
524   # curses library because the latter might not provide all the
525   # functionality we need.  However, this leads to problems on systems
526   # where the linker searches /usr/local/lib, but the compiler doesn't
527   # search /usr/local/include, if ncurses is installed in /usr/local.  A
528   # default installation of ncurses on alpha*-dec-osf* will lead to such
529   # a situation.
530   AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
531
532   if test "$ac_cv_search_waddstr" != no; then
533     curses_found=yes
534   fi
535 fi
536
537 # Check whether we should enable the TUI, but only do so if we really
538 # can.
539 if test x"$enable_tui" != xno; then
540   if test -d $srcdir/tui; then
541     if test "$curses_found" != no; then
542       CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
543       CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
544       CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
545       ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
546     else
547       if test x"$enable_tui" = xyes; then
548         AC_MSG_ERROR([no enhanced curses library found; disable TUI])
549       else
550         AC_MSG_WARN([no enhanced curses library found; disabling TUI])
551       fi
552     fi
553   fi
554 fi
555
556 # Since GDB uses Readline, we need termcap functionality.  In many
557 # cases this will be provided by the curses library, but some systems
558 # have a seperate termcap library, or no curses library at all.
559
560 case $host_os in
561   cygwin*)
562     if test -d $srcdir/libtermcap; then
563       LIBS="../libtermcap/libtermcap.a $LIBS"
564       ac_cv_search_tgetent="../libtermcap/libtermcap.a"
565     fi ;;
566   go32* | *djgpp*)
567     ac_cv_search_tgetent="none required"
568     ;;
569   *mingw32*)     
570     ac_cv_search_tgetent="none required"
571     CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
572     ;;
573 esac
574
575 # These are the libraries checked by Readline.
576 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
577
578 if test "$ac_cv_search_tgetent" = no; then
579   AC_MSG_ERROR([no termcap library found])
580 fi
581
582 AC_ARG_WITH([system-readline],
583   [AS_HELP_STRING([--with-system-readline],
584                   [use installed readline library])])
585
586 if test "$with_system_readline" = yes; then
587   READLINE=-lreadline
588   READLINE_DEPS=
589   READLINE_CFLAGS=
590   READLINE_TEXI_INCFLAG=
591 else
592   READLINE='$(READLINE_DIR)/libreadline.a'
593   READLINE_DEPS='$(READLINE)'
594   READLINE_CFLAGS='-I$(READLINE_SRC)/..'
595   READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
596 fi
597 AC_SUBST(READLINE)
598 AC_SUBST(READLINE_DEPS)
599 AC_SUBST(READLINE_CFLAGS)
600 AC_SUBST(READLINE_TEXI_INCFLAG)
601
602 # Generate jit-reader.h
603
604 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
605 TARGET_PTR=
606
607 AC_CHECK_SIZEOF(unsigned long long)
608 AC_CHECK_SIZEOF(unsigned long)
609 AC_CHECK_SIZEOF(unsigned __int128)
610
611 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
612   TARGET_PTR="unsigned long"
613 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
614   TARGET_PTR="unsigned long long"
615 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
616   TARGET_PTR="unsigned __int128"
617 else
618   TARGET_PTR="unsigned long"
619 fi
620
621 AC_SUBST(TARGET_PTR)
622 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
623
624 AC_SEARCH_LIBS(dlopen, dl)
625
626 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
627                 [directory to load the JIT readers from],
628                 [${libdir}/gdb])
629
630 AC_ARG_WITH(expat,
631   AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
632   [], [with_expat=auto])
633 AC_MSG_CHECKING([whether to use expat])
634 AC_MSG_RESULT([$with_expat])
635
636 if test "${with_expat}" = no; then
637   AC_MSG_WARN([expat support disabled; some features may be unavailable.])
638   HAVE_LIBEXPAT=no
639 else
640   AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
641                         [XML_Parser p = XML_ParserCreate (0);])
642   if test "$HAVE_LIBEXPAT" != yes; then
643     if test "$with_expat" = yes; then
644       AC_MSG_ERROR([expat is missing or unusable])
645     else
646       AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
647     fi
648   else
649     save_LIBS=$LIBS
650     LIBS="$LIBS $LIBEXPAT"
651     AC_CHECK_FUNCS(XML_StopParser)
652     LIBS=$save_LIBS
653   fi
654 fi
655
656 dnl Utility to simplify finding libpython.
657 dnl $1 = pythonX.Y
658 dnl $2 = the shell variable to assign the result to
659 dnl      If libpython is found we store $version here.
660 dnl $3 = additional flags to add to CPPFLAGS
661 dnl $4 = additional flags to add to LIBS
662
663 AC_DEFUN([AC_TRY_LIBPYTHON],
664 [
665   version=$1
666   define([have_libpython_var],$2)
667   new_CPPFLAGS=$3
668   new_LIBS=$4
669   AC_MSG_CHECKING([for ${version}])
670   save_CPPFLAGS=$CPPFLAGS
671   save_LIBS=$LIBS
672   CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
673   LIBS="$LIBS $new_LIBS"
674   found_usable_python=no
675   AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
676                                  [[Py_Initialize ();]]),
677                  [have_libpython_var=${version}
678                   found_usable_python=yes
679                   PYTHON_CPPFLAGS=$new_CPPFLAGS
680                   PYTHON_LIBS=$new_LIBS])
681   CPPFLAGS=$save_CPPFLAGS
682   LIBS=$save_LIBS
683   AC_MSG_RESULT([${found_usable_python}])
684 ])
685
686 dnl There are several different values for --with-python:
687 dnl
688 dnl no -   Don't include python support.
689 dnl yes -  Include python support, error if it's missing.
690 dnl        If we find python in $PATH, use it to fetch configure options,
691 dnl        otherwise assume the compiler can find it with no help from us.
692 dnl        Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
693 dnl auto - Same as "yes", but if python is missing from the system,
694 dnl        fall back to "no".
695 dnl /path/to/python/exec-prefix -
696 dnl        Use the python located in this directory.
697 dnl        If /path/to/python/exec-prefix/bin/python exists, use it to find
698 dnl        the compilation parameters.  Otherwise use
699 dnl        -I/path/to/python/exec-prefix/include,
700 dnl        -L/path/to/python/exec-prefix/lib.
701 dnl        Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
702 dnl        NOTE: This case is historical.  It is what was done for 7.0/7.1
703 dnl        but is deprecated.
704 dnl /path/to/python/executable -
705 dnl        Run python-config.py with this version of python to fetch the
706 dnl        compilation parameters.
707 dnl        NOTE: This needn't be the real python executable.
708 dnl        In a cross-compilation scenario (build != host), this could be
709 dnl        a shell script that provides what python-config.py provides for
710 dnl        --ldflags, --includes, --exec-prefix.
711 dnl python-executable -
712 dnl        Find python-executable in $PATH, and then handle the same as
713 dnl        /path/to/python/executable.
714 dnl
715 dnl If a python program is specified, it is used to run python-config.py and
716 dnl is passed --ldflags, --includes, --exec-prefix.
717
718 AC_ARG_WITH(python,
719   AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
720   [], [with_python=auto])
721 AC_MSG_CHECKING([whether to use python])
722 AC_MSG_RESULT([$with_python])
723
724 if test "${with_python}" = no; then
725   AC_MSG_WARN([python support disabled; some features may be unavailable.])
726   have_libpython=no
727 else
728   case "${with_python}" in
729   /*)
730     if test -d ${with_python}; then
731       # Assume the python binary is ${with_python}/bin/python.
732       python_prog="${with_python}/bin/python"
733       python_prefix=
734       # If python does not exit ${with_python}/bin, then try in
735       # ${with_python}.  On Windows/MinGW, this is where the Python
736       # executable is.
737       if test ! -x "${python_prog}"; then
738         python_prog="${with_python}/python"
739         python_prefix=
740       fi
741       if test ! -x "${python_prog}"; then
742         # Fall back to gdb 7.0/7.1 behaviour.
743         python_prog=missing
744         python_prefix=${with_python}
745       fi
746     elif test -x "${with_python}"; then
747       # While we can't run python compiled for $host (unless host == build),
748       # the user could write a script that provides the needed information,
749       # so we support that.
750       python_prog=${with_python}
751       python_prefix=
752     else
753       AC_ERROR(invalid value for --with-python)
754     fi
755     ;;
756   */*)
757     # Disallow --with-python=foo/bar.
758     AC_ERROR(invalid value for --with-python)
759     ;;
760   *)
761     # The user has either specified auto, yes, or the name of the python
762     # program assumed to be in $PATH.
763     python_prefix=
764     case "${with_python}" in
765     yes | auto)
766       if test ${build} = ${host}; then
767         AC_PATH_PROG(python_prog_path, python, missing)
768         if test "${python_prog_path}" = missing; then
769           python_prog=missing
770         else
771           python_prog=${python_prog_path}
772         fi
773       else
774         # Not much we can do except assume the cross-compiler will find the
775         # right files.
776         python_prog=missing
777       fi
778       ;;
779     *)
780       # While we can't run python compiled for $host (unless host == build),
781       # the user could write a script that provides the needed information,
782       # so we support that.
783       python_prog="${with_python}"
784       AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
785       if test "${python_prog_path}" = missing; then
786         AC_ERROR(unable to find python program ${python_prog})
787       fi
788       ;;
789     esac
790   esac
791
792   if test "${python_prog}" != missing; then
793     # We have a python program to use, but it may be too old.
794     # Don't flag an error for --with-python=auto (the default).
795     have_python_config=yes
796     python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
797     if test $? != 0; then
798       have_python_config=failed
799       if test "${with_python}" != auto; then
800         AC_ERROR(failure running python-config --includes)
801       fi
802     fi
803     python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
804     if test $? != 0; then
805       have_python_config=failed
806       if test "${with_python}" != auto; then
807         AC_ERROR(failure running python-config --ldflags)
808       fi
809     fi
810     python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
811     if test $? != 0; then
812       have_python_config=failed
813       if test "${with_python}" != auto; then
814         AC_ERROR(failure running python-config --exec-prefix)
815       fi
816     fi
817   else
818     # We do not have a python executable we can use to determine where
819     # to find the Python headers and libs.  We cannot guess the include
820     # path from the python_prefix either, because that include path
821     # depends on the Python version.  So, there is nothing much we can
822     # do except assume that the compiler will be able to find those files.
823     python_includes=
824     python_libs=
825     have_python_config=no
826   fi
827
828   # If we have python-config, only try the configuration it provides.
829   # Otherwise fallback on the old way of trying different versions of
830   # python in turn.
831
832   have_libpython=no
833   if test "${have_python_config}" = yes; then
834     # Determine the Python version by extracting "-lpython<version>"
835     # part of the python_libs. <version> is usually X.Y with X and Y
836     # being decimal numbers, but can also be XY (seen on Windows).
837     #
838     # The extraction is performed using sed with a regular expression.
839     # Initially, the regexp used was using the '?' quantifier to make
840     # the dot in the version number optional.  Unfortunately, this
841     # does not work with non-GNU versions of sed because, because of
842     # what looks like a limitation (the '?' quantifier does not work
843     # with back-references).  We work around this limitation by using
844     # the '*' quantifier instead.  It means that, in theory, we might
845     # match unexpected version strings such as "-lpython2..7", but
846     # this seems unlikely in practice.  And even if that happens,
847     # an error will be triggered later on, when checking that version
848     # number.
849     python_version=`echo " ${python_libs} " \
850                          | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
851     case "${python_version}" in
852     python*)
853       AC_TRY_LIBPYTHON(${python_version}, have_libpython,
854                        ${python_includes}, ${python_libs})
855       ;;
856     *)
857       AC_MSG_ERROR([unable to determine python version from ${python_libs}])
858       ;;
859     esac
860   elif test "${have_python_config}" != failed; then
861     if test "${have_libpython}" = no; then
862       AC_TRY_LIBPYTHON(python2.7, have_libpython,
863                        ${python_includes}, "${python_libs} -lpython2.7")
864     fi
865     if test "${have_libpython}" = no; then
866       AC_TRY_LIBPYTHON(python2.6, have_libpython,
867                        ${python_includes}, "${python_libs} -lpython2.6")
868     fi
869     if test ${have_libpython} = no; then
870       AC_TRY_LIBPYTHON(python2.5, have_libpython,
871                        ${python_includes}, "${python_libs} -lpython2.5")
872     fi
873     if test ${have_libpython} = no; then
874       AC_TRY_LIBPYTHON(python2.4, have_libpython,
875                        ${python_includes}, "${python_libs} -lpython2.4")
876     fi
877   fi
878   if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
879     AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
880   elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
881     AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
882   elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
883     AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
884   elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
885     AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
886   fi
887
888   if test "${have_libpython}" = no; then
889     case "${with_python}" in
890     yes)
891       AC_MSG_ERROR([python is missing or unusable])
892       ;;
893     auto)
894       AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
895       ;;
896     *)
897       AC_MSG_ERROR([no usable python found at ${with_python}])
898       ;;
899     esac
900   else
901     if test -n "${python_prefix}"; then
902       AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
903                          [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
904       GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
905     fi
906   fi
907 fi
908
909 if test "${have_libpython}" != no; then
910   AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
911   CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
912   CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
913   CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
914   CONFIG_INSTALL="$CONFIG_INSTALL install-python"
915   ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
916
917   # Flags needed to compile Python code (taken from python-config --cflags).
918   # We cannot call python-config directly because it will output whatever was
919   # used when compiling the Python interpreter itself, including flags which
920   # would make the python-related objects be compiled differently from the
921   # rest of GDB (e.g., -O2 and -fPIC).
922   if test "${GCC}" = yes; then
923     tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
924   fi
925
926   if test "x${tentative_python_cflags}" != x; then
927     AC_MSG_CHECKING(compiler flags for python code)
928     for flag in ${tentative_python_cflags}; do
929       # Check that the compiler accepts it
930       saved_CFLAGS="$CFLAGS"
931       CFLAGS="$CFLAGS $flag"
932       AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
933       CFLAGS="$saved_CFLAGS"
934     done
935     AC_MSG_RESULT(${PYTHON_CFLAGS})
936   fi
937
938   # On IRIX, type siginfo is not defined.  Instead, sys/siginfo.h provides:
939   #    #if _SGIAPI
940   #    #define siginfo __siginfo
941   #    #endif
942   # The problem is that including Python causes some XOPEN macros to be
943   # unilaterally defined, and that in turn causes _SGIAPI to evaluate
944   # to false.  So, we work around this issue by defining siginfo ourself
945   # though the command-line.
946   case "$gdb_host" in
947     irix*) if test "${GCC}" = yes; then
948              CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
949            fi
950            ;;
951   esac
952 else
953   # Even if Python support is not compiled in, we need to have these files
954   # included.
955   CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o"
956   CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \
957         python/py-prettyprint.c python/py-auto-load.c"
958 fi
959 AC_SUBST(PYTHON_CFLAGS)
960 AC_SUBST(PYTHON_CPPFLAGS)
961 AC_SUBST(PYTHON_LIBS)
962
963 # ------------------------- #
964 # Checks for header files.  #
965 # ------------------------- #
966
967 AC_HEADER_DIRENT
968 AC_HEADER_STAT
969 AC_HEADER_STDC
970 # elf_hp.h is for HP/UX 64-bit shared library support.
971 # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
972 # unconditionally, so what's the point in checking these?
973 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
974                   thread_db.h gnu/libc-version.h signal.h stddef.h \
975                   stdlib.h string.h memory.h strings.h sys/fault.h \
976                   sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
977                   sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
978                   sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
979                   sys/types.h sys/wait.h wait.h termios.h termio.h \
980                   sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h \
981                   dlfcn.h])
982 AC_CHECK_HEADERS(link.h, [], [],
983 [#if HAVE_SYS_TYPES_H
984 # include <sys/types.h>
985 #endif
986 #if HAVE_NLIST_H
987 # include <nlist.h>
988 #endif
989 ])
990 AC_CHECK_HEADERS(sys/proc.h, [], [],
991 [#if HAVE_SYS_PARAM_H
992 # include <sys/param.h>
993 #endif
994 ])
995 AC_CHECK_HEADERS(sys/user.h, [], [],
996 [#if HAVE_SYS_PARAM_H
997 # include <sys/param.h>
998 #endif
999 ])
1000
1001 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
1002 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
1003 # think that we don't have <curses.h> if we're using GCC.
1004 case $host_os in
1005   solaris2.[[789]])
1006     if test "$GCC" = yes; then
1007       AC_DEFINE(_MSE_INT_H, 1,
1008         [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
1009    Solaris 2.[789] when using GCC. ])
1010     fi ;;
1011 esac
1012 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
1013 AC_CHECK_HEADERS(term.h, [], [],
1014 [#if HAVE_CURSES_H
1015 # include <curses.h>
1016 #endif
1017 ])
1018
1019 # ------------------------- #
1020 # Checks for declarations.  #
1021 # ------------------------- #
1022
1023 AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
1024                 snprintf, vsnprintf])
1025 AM_LC_MESSAGES
1026
1027 # ----------------------- #
1028 # Checks for structures.  #
1029 # ----------------------- #
1030
1031 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
1032
1033 # ------------------ #
1034 # Checks for types.  #
1035 # ------------------ #
1036
1037 AC_TYPE_SIGNAL
1038 AC_CHECK_TYPES(socklen_t, [], [],
1039 [#include <sys/types.h>
1040 #include <sys/socket.h>
1041 ])
1042
1043 # ------------------------------------- #
1044 # Checks for compiler characteristics.  #
1045 # ------------------------------------- #
1046
1047 AC_C_CONST
1048 AC_C_INLINE
1049 AC_C_BIGENDIAN
1050
1051 # ------------------------------ #
1052 # Checks for library functions.  #
1053 # ------------------------------ #
1054
1055 AC_FUNC_ALLOCA
1056 AC_FUNC_MMAP
1057 AC_FUNC_VFORK
1058 AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
1059                 getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \
1060                 sigaction sigprocmask sigsetmask socketpair syscall \
1061                 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1062                 setrlimit getrlimit posix_madvise waitpid])
1063 AM_LANGINFO_CODESET
1064
1065 # Check the return and argument types of ptrace.  No canned test for
1066 # this, so roll our own.
1067 gdb_ptrace_headers='
1068 #if HAVE_SYS_TYPES_H
1069 # include <sys/types.h>
1070 #endif
1071 #if HAVE_SYS_PTRACE_H
1072 # include <sys/ptrace.h>
1073 #endif
1074 #if HAVE_UNISTD_H
1075 # include <unistd.h>
1076 #endif
1077 '
1078 # There is no point in checking if we don't have a prototype.
1079 AC_CHECK_DECLS(ptrace, [], [
1080   : ${gdb_cv_func_ptrace_ret='int'}
1081   : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1082 ], $gdb_ptrace_headers)
1083 # Check return type.  Varargs (used on GNU/Linux) conflict with the
1084 # empty argument list, so check for that explicitly.
1085 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1086   AC_TRY_COMPILE($gdb_ptrace_headers,
1087     [extern long ptrace (enum __ptrace_request, ...);],
1088     gdb_cv_func_ptrace_ret='long',
1089     AC_TRY_COMPILE($gdb_ptrace_headers,
1090       [extern int ptrace ();],
1091       gdb_cv_func_ptrace_ret='int',
1092       gdb_cv_func_ptrace_ret='long')))
1093 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1094   [Define as the return type of ptrace.])
1095 # Check argument types.
1096 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1097   AC_TRY_COMPILE($gdb_ptrace_headers,
1098     [extern long ptrace (enum __ptrace_request, ...);],
1099     [gdb_cv_func_ptrace_args='int,int,long,long'],[
1100 for gdb_arg1 in 'int' 'long'; do
1101  for gdb_arg2 in 'pid_t' 'int' 'long'; do
1102   for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1103    for gdb_arg4 in 'int' 'long'; do
1104      AC_TRY_COMPILE($gdb_ptrace_headers, [
1105 extern $gdb_cv_func_ptrace_ret
1106   ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1107 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1108     break 4;])
1109     for gdb_arg5 in 'int *' 'int' 'long'; do
1110      AC_TRY_COMPILE($gdb_ptrace_headers, [
1111 extern $gdb_cv_func_ptrace_ret
1112   ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1113 ], [
1114 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1115     break 5;])
1116     done
1117    done
1118   done
1119  done
1120 done
1121 # Provide a safe default value.
1122 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1123 ])])
1124 ac_save_IFS=$IFS; IFS=','
1125 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1126 IFS=$ac_save_IFS
1127 shift
1128 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1129   [Define to the type of arg 3 for ptrace.])
1130 if test -n "$[5]"; then
1131   AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1132     [Define to the type of arg 5 for ptrace.])
1133 fi
1134
1135 dnl AC_FUNC_SETPGRP does not work when cross compiling
1136 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1137 if test "$cross_compiling" = no; then
1138   AC_FUNC_SETPGRP
1139 else
1140   AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1141     [AC_TRY_COMPILE([
1142 #include <unistd.h>
1143 ], [
1144   if (setpgrp(1,1) == -1)
1145     exit (0);
1146   else
1147     exit (1);
1148 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1149 if test $ac_cv_func_setpgrp_void = yes; then
1150   AC_DEFINE(SETPGRP_VOID, 1)
1151 fi
1152 fi
1153
1154 # Check if sigsetjmp is available.  Using AC_CHECK_FUNCS won't do
1155 # since sigsetjmp might only be defined as a macro.
1156 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
1157 [AC_TRY_COMPILE([
1158 #include <setjmp.h>
1159 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
1160 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
1161 if test $gdb_cv_func_sigsetjmp = yes; then
1162   AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
1163 fi
1164
1165 # Assume we'll default to using the included libiberty regex.
1166 gdb_use_included_regex=yes
1167
1168 # However, if the system regex is GNU regex, then default to *not*
1169 # using the included regex.
1170 AC_CACHE_CHECK(
1171   [for GNU regex],
1172   [gdb_cv_have_gnu_regex],
1173   [AC_TRY_COMPILE(
1174     [#include <gnu-versions.h>],
1175     [#define REGEX_INTERFACE_VERSION 1
1176 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1177 # error "Version mismatch"
1178 #endif],
1179     gdb_cv_have_gnu_regex=yes,
1180     gdb_cv_have_gnu_regex=no)])
1181 if test $gdb_cv_have_gnu_regex = yes; then
1182   gdb_use_included_regex=no
1183 fi
1184
1185 AC_ARG_WITH(included-regex,
1186   AS_HELP_STRING([--without-included-regex], [don't use included regex; this is the default on systems with version 2 of the GNU C library (use with caution on other system)]),
1187   gdb_with_regex=$withval,
1188   gdb_with_regex=$gdb_use_included_regex)
1189 if test "$gdb_with_regex" = yes; then
1190   AC_DEFINE(USE_INCLUDED_REGEX, 1,
1191     [Define to 1 if the regex included in libiberty should be used.])
1192 fi
1193
1194 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1195 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1196 [#include <sys/param.h>
1197 #include <sys/proc.h>
1198 ])
1199
1200 # See if <sys/lwp.h> defines `struct lwp`.
1201 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1202 [AC_TRY_COMPILE([#include <sys/param.h>
1203 #include <sys/lwp.h>], [struct lwp l;],
1204 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1205 if test $gdb_cv_struct_lwp = yes; then
1206   AC_DEFINE(HAVE_STRUCT_LWP, 1,
1207             [Define to 1 if your system has struct lwp.])
1208 fi
1209
1210 # See if <machine/reg.h> degines `struct reg'.
1211 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1212 [AC_TRY_COMPILE([#include <sys/types.h>
1213 #include <machine/reg.h>], [struct reg r;],
1214 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1215 if test $gdb_cv_struct_reg = yes; then
1216   AC_DEFINE(HAVE_STRUCT_REG, 1,
1217             [Define to 1 if your system has struct reg in <machine/reg.h>.])
1218 fi
1219
1220 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1221 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1222 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1223                  [#include <machine/reg.h>])
1224
1225 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1226 AC_MSG_CHECKING(for PTRACE_GETREGS)
1227 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1228 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1229                 [PTRACE_GETREGS;],
1230                 [gdb_cv_have_ptrace_getregs=yes],
1231                 [gdb_cv_have_ptrace_getregs=no])])
1232 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1233 if test $gdb_cv_have_ptrace_getregs = yes; then
1234   AC_DEFINE(HAVE_PTRACE_GETREGS, 1, 
1235   [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1236 fi
1237
1238 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1239 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1240 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1241 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1242                 [PTRACE_GETFPXREGS;],
1243                 [gdb_cv_have_ptrace_getfpxregs=yes],
1244                 [gdb_cv_have_ptrace_getfpxregs=no])])
1245 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1246 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1247   AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1248   [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1249 fi
1250
1251 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1252 AC_MSG_CHECKING(for PT_GETDBREGS)
1253 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1254 [AC_TRY_COMPILE([#include <sys/types.h>
1255 #include <sys/ptrace.h>],
1256                 [PT_GETDBREGS;],
1257                 [gdb_cv_have_pt_getdbregs=yes],
1258                 [gdb_cv_have_pt_getdbregs=no])])
1259 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1260 if test $gdb_cv_have_pt_getdbregs = yes; then
1261   AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1262   [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1263 fi
1264
1265 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1266 AC_MSG_CHECKING(for PT_GETXMMREGS)
1267 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1268 [AC_TRY_COMPILE([#include <sys/types.h>
1269 #include <sys/ptrace.h>],
1270                 [PT_GETXMMREGS;],
1271                 [gdb_cv_have_pt_getxmmregs=yes],
1272                 [gdb_cv_have_pt_getxmmregs=no])])
1273 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1274 if test $gdb_cv_have_pt_getxmmregs = yes; then
1275   AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1276   [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1277 fi
1278
1279 # Detect which type of /proc is in use, such as for Unixware or Solaris.
1280
1281 if test "${target}" = "${host}"; then
1282   case "${host}" in
1283   *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
1284       AC_DEFINE(NEW_PROC_API, 1,
1285       [Define if you want to use new multi-fd /proc interface
1286        (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1287       ;;
1288   *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1289       AC_DEFINE(NEW_PROC_API, 1,
1290       [Define if you want to use new multi-fd /proc interface
1291        (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1292       ;;
1293   mips-sgi-irix5*)
1294       # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1295       AC_DEFINE([_KMEMUSER], 1,
1296       [Define to 1 so <sys/proc.h> gets a definition of anon_hdl.  Works
1297        around a <sys/proc.h> problem on IRIX 5.])
1298       ;;
1299   esac
1300 fi
1301
1302 if test "$ac_cv_header_sys_procfs_h" = yes; then
1303   BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
1304   BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
1305   BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1306   BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1307   BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1308   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1309   BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1310   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
1311   BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1312   BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1313   BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1314   BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1315   BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1316   BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1317
1318
1319   dnl Check for broken prfpregset_t type
1320
1321   dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1322   dnl prfpregset_t type (it's a typedef for the pointer to a struct
1323   dnl instead of the struct itself).  We detect this here, and work
1324   dnl around it in gdb_proc_service.h.
1325
1326   if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1327     AC_MSG_CHECKING(whether prfpregset_t type is broken)
1328     AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1329       [AC_TRY_RUN([#include <sys/procfs.h>
1330        int main ()
1331        {
1332          if (sizeof (prfpregset_t) == sizeof (void *))
1333            return 1;
1334          return 0;
1335        }],
1336        gdb_cv_prfpregset_t_broken=no,
1337        gdb_cv_prfpregset_t_broken=yes,
1338        gdb_cv_prfpregset_t_broken=yes)])
1339     AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1340     if test $gdb_cv_prfpregset_t_broken = yes; then
1341       AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1342       [Define if the prfpregset_t type is broken.])
1343     fi
1344   fi
1345
1346   dnl Check for PIOCSET ioctl entry 
1347
1348   AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
1349   AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
1350   [AC_TRY_COMPILE([#include <unistd.h>
1351 #include <sys/types.h>
1352 #include <sys/procfs.h>
1353 ], [
1354     int dummy;;
1355     dummy = ioctl(0, PIOCSET, &dummy);
1356   ],
1357   gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
1358   AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
1359   if test $gdb_cv_have_procfs_piocset = yes; then
1360     AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1361     [Define if ioctl argument PIOCSET is available.])
1362   fi
1363 fi
1364
1365 dnl For native ports (host == target), check to see what kind of
1366 dnl legacy link.h support is needed.  (See solib-legacy.c.)
1367 if test ${host} = ${target} ; then
1368   dnl Check for struct link_map with l_ members which are indicative
1369   dnl of SVR4-like shared libraries
1370
1371   AC_MSG_CHECKING(for member l_addr in struct link_map)
1372   AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
1373     [AC_TRY_COMPILE([#include <link.h>],
1374                     [struct link_map lm; (void) lm.l_addr;],
1375                     gdb_cv_have_struct_link_map_with_l_members=yes,
1376                     gdb_cv_have_struct_link_map_with_l_members=no)])
1377   AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
1378   if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
1379     AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
1380     [Define if <link.h> exists and defines struct link_map which has
1381      members with an ``l_'' prefix.  (For Solaris, SVR4, and
1382      SVR4-like systems.)])
1383   fi
1384
1385   dnl Check for struct link_map with lm_ members which are indicative
1386   dnl of SunOS-like shared libraries
1387
1388   AC_MSG_CHECKING(for member lm_addr in struct link_map)
1389   AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
1390     [AC_TRY_COMPILE([#include <sys/types.h>
1391 #include <link.h>],
1392                     [struct link_map lm; (void) lm.lm_addr;],
1393                     gdb_cv_have_struct_link_map_with_lm_members=yes,
1394                     gdb_cv_have_struct_link_map_with_lm_members=no)])
1395   AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
1396   if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
1397     AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
1398     [Define if <link.h> exists and defines struct link_map which has
1399      members with an ``lm_'' prefix.  (For SunOS.)])
1400   fi
1401
1402   dnl Check for struct so_map with som_ members which are found on 
1403   dnl some *BSD systems.
1404
1405   AC_MSG_CHECKING(for member som_addr in struct so_map)
1406   AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
1407     [AC_TRY_COMPILE([#include <sys/types.h>
1408 #ifdef HAVE_NLIST_H
1409 #include <nlist.h>
1410 #endif
1411 #include <link.h>],
1412                     [struct so_map lm; (void) lm.som_addr;],
1413                     gdb_cv_have_struct_so_map_with_som_members=yes,
1414                     gdb_cv_have_struct_so_map_with_som_members=no)])
1415   AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
1416   if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
1417     AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
1418     [Define if <link.h> exists and defines a struct so_map which has
1419      members with an ``som_'' prefix.  (Found on older *BSD systems.)])
1420   fi
1421
1422   dnl Check for struct link_map32 type, which allows a 64-bit Solaris
1423   dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
1424
1425   AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
1426   AC_CACHE_VAL(gdb_cv_have_struct_link_map32, 
1427     [AC_TRY_COMPILE([#define _SYSCALL32
1428 #include <sys/link.h>], [struct link_map32 l;],
1429      gdb_cv_have_struct_link_map32=yes,
1430      gdb_cv_have_struct_link_map32=no)])
1431   AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
1432   if test $gdb_cv_have_struct_link_map32 = yes; then
1433     AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
1434     [Define if <sys/link.h> has struct link_map32])
1435     AC_DEFINE(_SYSCALL32, 1,
1436     [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
1437   fi
1438 fi
1439
1440 # Check if the compiler supports the `long long' type.
1441
1442 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1443                [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1444 [[extern long long foo;]],
1445 [[switch (foo & 2) { case 0: return 1; }]])],
1446                                   gdb_cv_c_long_long=yes,
1447                                   gdb_cv_c_long_long=no)])
1448 if test $gdb_cv_c_long_long = yes; then
1449   AC_DEFINE(CC_HAS_LONG_LONG, 1,
1450             [Define to 1 if the compiler supports long long.])
1451 fi
1452
1453 # Check if the compiler and runtime support printing long longs.
1454
1455 AC_CACHE_CHECK([for long long support in printf],
1456                gdb_cv_printf_has_long_long,
1457                [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1458 [[char buf[32];
1459   long long l = 0;
1460   l = (l << 16) + 0x0123;
1461   l = (l << 16) + 0x4567;
1462   l = (l << 16) + 0x89ab;
1463   l = (l << 16) + 0xcdef;
1464   sprintf (buf, "0x%016llx", l);
1465   return (strcmp ("0x0123456789abcdef", buf));]])],
1466                               gdb_cv_printf_has_long_long=yes,
1467                               gdb_cv_printf_has_long_long=no,
1468                               gdb_cv_printf_has_long_long=no)])
1469 if test $gdb_cv_printf_has_long_long = yes; then
1470   AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1471             [Define to 1 if the "%ll" format works to print long longs.])
1472 fi
1473
1474 # Check if the compiler and runtime support printing decfloats.
1475
1476 AC_CACHE_CHECK([for decfloat support in printf],
1477                gdb_cv_printf_has_decfloat,
1478                [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1479 [[char buf[64];
1480   _Decimal32 d32 = 1.2345df;
1481   _Decimal64 d64 = 1.2345dd;
1482   _Decimal128 d128 = 1.2345dl;
1483   sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1484   return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1485                               gdb_cv_printf_has_decfloat=yes,
1486                               gdb_cv_printf_has_decfloat=no,
1487                               gdb_cv_printf_has_decfloat=no)])
1488 if test $gdb_cv_printf_has_decfloat = yes; then
1489   AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1490             [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1491 fi
1492
1493 # Check if the compiler supports the `long double' type.  We can't use
1494 # AC_C_LONG_DOUBLE because that one does additional checks on the
1495 # constants defined in <float.h> that fail on some systems,
1496 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1497
1498 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1499                [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1500                                   gdb_cv_c_long_double=yes,
1501                                   gdb_cv_c_long_double=no)])
1502 if test $gdb_cv_c_long_double = yes; then
1503   AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1504            [Define to 1 if the compiler supports long double.])
1505 fi
1506
1507 # Check if the compiler and runtime support printing long doubles.
1508
1509 AC_CACHE_CHECK([for long double support in printf],
1510                gdb_cv_printf_has_long_double,
1511                [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1512 [[char buf[16];
1513   long double f = 3.141592653;
1514   sprintf (buf, "%Lg", f);
1515   return (strncmp ("3.14159", buf, 7));]])],
1516                               gdb_cv_printf_has_long_double=yes,
1517                               gdb_cv_printf_has_long_double=no,
1518                               gdb_cv_printf_has_long_double=no)])
1519 if test $gdb_cv_printf_has_long_double = yes; then
1520   AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1521             [Define to 1 if the "%Lg" format works to print long doubles.])
1522 fi
1523
1524 # Check if the compiler and runtime support scanning long doubles.
1525
1526 AC_CACHE_CHECK([for long double support in scanf], 
1527                gdb_cv_scanf_has_long_double,
1528                [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1529 [[#include <stdio.h>]],
1530 [[char *buf = "3.141592653";
1531   long double f = 0;
1532   sscanf (buf, "%Lg", &f);
1533   return !(f > 3.14159 && f < 3.14160);]])],
1534                               gdb_cv_scanf_has_long_double=yes,
1535                               gdb_cv_scanf_has_long_double=no,
1536                               gdb_cv_scanf_has_long_double=no)])
1537 if test $gdb_cv_scanf_has_long_double = yes; then
1538   AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1539             [Define to 1 if the "%Lg" format works to scan long doubles.])
1540 fi
1541
1542 case ${host_os} in
1543 aix*)
1544   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1545     SAVE_LDFLAGS=$LDFLAGS
1546
1547     case $GCC in
1548     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1549     *) gdb_cv_bigtoc=-bbigtoc ;;
1550     esac
1551
1552     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1553     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1554     LDFLAGS="${SAVE_LDFLAGS}"
1555   ])
1556   CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1557   ;;
1558 esac
1559
1560 AC_MSG_CHECKING(for the dynamic export flag)
1561 dynamic_list=false
1562 if test "${gdb_native}" = yes; then
1563    # The dynamically loaded libthread_db needs access to symbols in the gdb
1564    # executable.  Older GNU ld supports --export-dynamic but --dynamic-list
1565    # may not be supported there.
1566    old_LDFLAGS="$LDFLAGS"
1567    # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1568    RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1569    LDFLAGS="$LDFLAGS $RDYNAMIC"
1570    if test "${have_libpython}" = no; then
1571      AC_TRY_LINK([], [], [dynamic_list=true])
1572    else
1573      # Workaround http://bugs.python.org/issue4434 where static
1574      # libpythonX.Y.a would get its symbols required for
1575      # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1576      # Problem does not happen for the recommended libpythonX.Y.so linkage.
1577      old_CFLAGS="$CFLAGS"
1578      CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1579      AC_RUN_IFELSE(
1580        AC_LANG_PROGRAM(
1581          [#include "]${have_libpython}[/Python.h"],
1582          [int err;
1583           Py_Initialize ();
1584           err = PyRun_SimpleString ("import itertools\n");
1585           Py_Finalize ();
1586           return err == 0 ? 0 : 1;]),
1587        [dynamic_list=true], [], [true])
1588      CFLAGS="$old_CFLAGS"
1589    fi
1590    LDFLAGS="$old_LDFLAGS"
1591 fi
1592 if $dynamic_list; then
1593   found="-Wl,--dynamic-list"
1594   RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1595 else
1596   found="-rdynamic"
1597   RDYNAMIC="-rdynamic"
1598 fi
1599 AC_SUBST(RDYNAMIC)
1600 AC_MSG_RESULT($found)
1601
1602 dnl For certain native configurations, we need to check whether thread
1603 dnl support can be built in or not.
1604 dnl
1605 dnl Note that we only want this if we are both native (host == target),
1606 dnl and not doing a canadian cross build (build == host).
1607
1608 if test ${build} = ${host} -a ${host} = ${target} ; then
1609    case ${host_os} in
1610    solaris*)
1611       # See if thread_db library is around for Solaris thread debugging.
1612       # Note that we must explicitly test for version 1 of the library
1613       # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1614       # the same API.
1615       AC_MSG_CHECKING(for Solaris thread debugging library)
1616       if test -f /usr/lib/libthread_db.so.1 ; then
1617          AC_MSG_RESULT(yes)
1618          AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1619          [Define if using Solaris thread debugging.])
1620          CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1621          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1622          AC_CHECK_LIB(dl, dlopen)
1623          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1624          # Sun randomly tweaked the prototypes in <proc_service.h>
1625          # at one point.
1626          AC_MSG_CHECKING(if <proc_service.h> is old)
1627          AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1628             AC_TRY_COMPILE([
1629                 #include <proc_service.h>
1630                 ps_err_e ps_pdwrite
1631                     (struct ps_prochandle*, psaddr_t, const void*, size_t);
1632             ],, gdb_cv_proc_service_is_old=no,
1633                 gdb_cv_proc_service_is_old=yes)
1634          ])
1635          AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1636          if test $gdb_cv_proc_service_is_old = yes; then
1637             AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1638             [Define if <proc_service.h> on solaris uses int instead of
1639              size_t, and assorted other type changes.])
1640          fi
1641       else
1642          AC_MSG_RESULT(no)
1643       fi
1644       ;;
1645    aix*)
1646       AC_MSG_CHECKING(for AiX thread debugging library)
1647       AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1648                    [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1649                                    [#ifndef PTHDB_VERSION_3
1650                                     #error
1651                                     #endif],
1652                                    gdb_cv_have_aix_thread_debug=yes,
1653                                    gdb_cv_have_aix_thread_debug=no)])
1654       AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1655       if test $gdb_cv_have_aix_thread_debug = yes; then
1656          CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1657          CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1658          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1659
1660          # Older versions of AIX do not provide the declaration for
1661          # the getthrds function (it appears that it was introduced
1662          # with AIX 6.x).
1663          AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1664       fi
1665       ;;
1666    esac
1667    AC_SUBST(CONFIG_LDFLAGS)
1668 fi
1669
1670 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1671 dnl other error codes.
1672 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1673    AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1674                   gdb_cv_thread_db_h_has_td_notalloc,
1675      AC_TRY_COMPILE(
1676        [#include <thread_db.h>],
1677        [int i = TD_NOTALLOC;],
1678        gdb_cv_thread_db_h_has_td_notalloc=yes,
1679        gdb_cv_thread_db_h_has_td_notalloc=no
1680      )
1681    )
1682    AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1683                   gdb_cv_thread_db_h_has_td_version,
1684      AC_TRY_COMPILE(
1685        [#include <thread_db.h>],
1686        [int i = TD_VERSION;],
1687        gdb_cv_thread_db_h_has_td_version=yes,
1688        gdb_cv_thread_db_h_has_td_version=no
1689      )
1690    )
1691    AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1692                   gdb_cv_thread_db_h_has_td_notls,
1693      AC_TRY_COMPILE(
1694        [#include <thread_db.h>],
1695        [int i = TD_NOTLS;],
1696        gdb_cv_thread_db_h_has_td_notls=yes,
1697        gdb_cv_thread_db_h_has_td_notls=no
1698      )
1699    )
1700 fi
1701 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1702   AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1703             [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1704 fi
1705 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1706   AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1707             [Define if <thread_db.h> has the TD_VERSION error code.])
1708 fi
1709 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1710   AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1711             [Define if <thread_db.h> has the TD_NOTLS error code.])
1712 fi
1713
1714 dnl See if we have a sys/syscall header file that has __NR_tkill.
1715 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1716    AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1717                   gdb_cv_sys_syscall_h_has_tkill,
1718      AC_TRY_COMPILE(
1719        [#include <sys/syscall.h>],
1720        [int i = __NR_tkill;],
1721        gdb_cv_sys_syscall_h_has_tkill=yes,
1722        gdb_cv_sys_syscall_h_has_tkill=no
1723      )
1724    )
1725 fi
1726 dnl See if we can issue tkill syscall.
1727 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1728   AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1729 fi
1730
1731 dnl Check if we can disable the virtual address space randomization.
1732 dnl The functionality of setarch -R.
1733 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1734 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1735 #      if !HAVE_DECL_ADDR_NO_RANDOMIZE
1736 #       define ADDR_NO_RANDOMIZE 0x0040000
1737 #      endif
1738        /* Test the flag could be set and stays set.  */
1739        personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1740        if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1741            return 1])])
1742 AC_RUN_IFELSE([PERSONALITY_TEST],
1743               [have_personality=true],
1744               [have_personality=false],
1745               [AC_LINK_IFELSE([PERSONALITY_TEST],
1746                               [have_personality=true],
1747                               [have_personality=false])])
1748 if $have_personality
1749 then
1750     AC_DEFINE([HAVE_PERSONALITY], 1,
1751               [Define if you support the personality syscall.])
1752 fi
1753
1754 dnl Handle optional features that can be enabled.
1755
1756 target_sysroot_reloc=0
1757 AC_ARG_WITH(sysroot,
1758 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]),
1759 [
1760  case ${with_sysroot} in
1761  yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1762  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1763  esac
1764
1765  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1766
1767  if test "x$prefix" = xNONE; then
1768   test_prefix=/usr/local
1769  else
1770   test_prefix=$prefix
1771  fi
1772  if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1773   test_exec_prefix=$test_prefix
1774  else
1775   test_exec_prefix=$exec_prefix
1776  fi
1777  case ${TARGET_SYSTEM_ROOT} in
1778  "${test_prefix}"|"${test_prefix}/"*|\
1779  "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1780  '${prefix}'|'${prefix}/'*|\
1781  '${exec_prefix}'|'${exec_prefix}/'*)
1782    target_sysroot_reloc=1
1783    ;;
1784  esac
1785 ], [
1786  TARGET_SYSTEM_ROOT=
1787  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1788 ])
1789 TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc"
1790 AC_SUBST(TARGET_SYSTEM_ROOT)
1791 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1792
1793 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1794     [automatically load a system-wide gdbinit file],
1795     [])
1796
1797 AC_ARG_ENABLE(werror,
1798   AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1799   [case "${enableval}" in
1800      yes | y) ERROR_ON_WARNING="yes" ;;
1801      no | n)  ERROR_ON_WARNING="no" ;;
1802      *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1803    esac])
1804
1805 # Enable -Werror by default when using gcc
1806 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1807     ERROR_ON_WARNING=yes
1808 fi
1809
1810 WERROR_CFLAGS=""
1811 if test "${ERROR_ON_WARNING}" = yes ; then
1812     WERROR_CFLAGS="-Werror"
1813 fi
1814
1815 # The entries after -Wno-pointer-sign are disabled warnings which may
1816 # be enabled in the future, which can not currently be used to build
1817 # GDB.
1818 # NOTE: If you change this list, remember to update
1819 # gdb/doc/gdbint.texinfo.
1820 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1821 -Wformat-nonliteral -Wno-pointer-sign \
1822 -Wno-unused -Wunused-value -Wunused-function \
1823 -Wno-switch -Wno-char-subscripts"
1824
1825 # Enable -Wno-format by default when using gcc on mingw since many
1826 # GCC versions complain about %I64.
1827 case "${host}" in
1828   *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1829 esac
1830
1831 AC_ARG_ENABLE(build-warnings,
1832 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1833 [case "${enableval}" in
1834   yes)  ;;
1835   no)   build_warnings="-w";;
1836   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1837         build_warnings="${build_warnings} ${t}";;
1838   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1839         build_warnings="${t} ${build_warnings}";;
1840   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1841 esac
1842 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1843   echo "Setting compiler warning flags = $build_warnings" 6>&1
1844 fi])dnl
1845 AC_ARG_ENABLE(gdb-build-warnings,
1846 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
1847 [case "${enableval}" in
1848   yes)  ;;
1849   no)   build_warnings="-w";;
1850   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1851         build_warnings="${build_warnings} ${t}";;
1852   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1853         build_warnings="${t} ${build_warnings}";;
1854   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1855 esac
1856 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1857   echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1858 fi])dnl
1859 WARN_CFLAGS=""
1860 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1861 then
1862     AC_MSG_CHECKING(compiler warning flags)
1863     # Separate out the -Werror flag as some files just cannot be
1864     # compiled with it enabled.
1865     for w in ${build_warnings}; do
1866         case $w in
1867         -Werr*) WERROR_CFLAGS=-Werror ;;
1868         *) # Check that GCC accepts it
1869             saved_CFLAGS="$CFLAGS"
1870             CFLAGS="$CFLAGS $w"
1871             AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1872             CFLAGS="$saved_CFLAGS"
1873         esac
1874     done
1875     AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1876 fi
1877 AC_SUBST(WARN_CFLAGS)
1878 AC_SUBST(WERROR_CFLAGS)
1879
1880 # In the Cygwin environment, we need some additional flags.
1881 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1882 [AC_EGREP_CPP(lose, [
1883 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1884 lose
1885 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1886
1887
1888 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1889 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1890 case ${host} in
1891   *go32* ) SER_HARDWIRE=ser-go32.o ;;
1892   *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1893   *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1894 esac
1895 AC_SUBST(SER_HARDWIRE)
1896
1897 # libreadline needs libuser32.a in a cygwin environment
1898 WIN32LIBS=
1899 if test x$gdb_cv_os_cygwin = xyes; then
1900     WIN32LIBS="-luser32"
1901     case "${target}" in
1902         *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1903         ;;
1904     esac
1905 fi
1906
1907 # The ser-tcp.c module requires sockets.
1908 case ${host} in
1909   *mingw32*)
1910     AC_DEFINE(USE_WIN32API, 1,
1911               [Define if we should use the Windows API, instead of the 
1912                POSIX API.  On Windows, we use the Windows API when 
1913                building for MinGW, but the POSIX API when building 
1914                for Cygwin.])
1915     WIN32LIBS="$WIN32LIBS -lws2_32"
1916     ;;
1917 esac        
1918 AC_SUBST(WIN32LIBS)
1919
1920 # Add ELF support to GDB, but only if BFD includes ELF support.
1921 OLD_CFLAGS=$CFLAGS
1922 OLD_LDFLAGS=$LDFLAGS
1923 OLD_LIBS=$LIBS
1924 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1925 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1926 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1927 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1928 if test "$plugins" = "yes"; then
1929   LIBS="-ldl $LIBS"
1930 fi
1931 LIBS="-lbfd -liberty $intl $LIBS"
1932 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1933 [AC_TRY_LINK(
1934 [#include <stdlib.h>
1935 #include "bfd.h"
1936 #include "elf-bfd.h"
1937 ],
1938 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1939 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1940 if test $gdb_cv_var_elf = yes; then
1941   CONFIG_OBS="$CONFIG_OBS elfread.o"
1942   AC_DEFINE(HAVE_ELF, 1,
1943             [Define if ELF support should be included.])
1944   # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1945   if test "$plugins" = "yes"; then
1946     OLD_LIBS="-ldl $OLD_LIBS"
1947   fi
1948 fi
1949 CFLAGS=$OLD_CFLAGS
1950 LDFLAGS=$OLD_LDFLAGS
1951 LIBS=$OLD_LIBS
1952
1953 # Add any host-specific objects to GDB.
1954 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1955
1956 LIBGUI="../libgui/src/libgui.a"
1957 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1958 AC_SUBST(LIBGUI)
1959 AC_SUBST(GUI_CFLAGS_X)
1960
1961 WIN32LDAPP=
1962 AC_SUBST(WIN32LIBS)
1963 AC_SUBST(WIN32LDAPP)
1964
1965 case "${host}" in
1966 *-*-cygwin* | *-*-mingw* )
1967     configdir="win"
1968     ;;
1969 *)
1970     configdir="unix"
1971     ;;
1972 esac
1973
1974 GDBTKLIBS=
1975 if test "${enable_gdbtk}" = "yes"; then
1976
1977     # Gdbtk must have an absolute path to srcdir in order to run
1978     # properly when not installed.
1979     here=`pwd`
1980     cd ${srcdir}
1981     GDBTK_SRC_DIR=`pwd`
1982     cd $here
1983
1984     SC_PATH_TCLCONFIG
1985
1986     # If $no_tk is nonempty, then we can't do Tk, and there is no
1987     # point to doing Tcl.
1988     SC_PATH_TKCONFIG
1989
1990     if test -z "${no_tcl}" -a -z "${no_tk}"; then
1991         SC_LOAD_TCLCONFIG
1992
1993         # Check for in-tree tcl
1994         here=`pwd`
1995         cd ${srcdir}/..
1996         topdir=`pwd`
1997         cd ${here}
1998
1999         intree="no"
2000         if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
2001           intree="yes"
2002         fi
2003
2004         # Find Tcl private headers
2005         if test x"${intree}" = xno; then
2006           CY_AC_TCL_PRIVATE_HEADERS
2007           TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
2008           TCL_LIBRARY="${TCL_LIB_SPEC}"
2009           TCL_DEPS=""
2010         else
2011           # If building tcl in the same src tree, private headers
2012           # are not needed, but we need to be sure to use the right
2013           # headers library
2014           TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"          
2015           TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
2016           TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
2017         fi
2018         AC_SUBST(TCL_INCLUDE)
2019         AC_SUBST(TCL_LIBRARY)
2020         AC_SUBST(TCL_DEPS)
2021
2022         SC_LOAD_TKCONFIG
2023
2024         # Check for in-tree Tk
2025         intree="no"
2026         if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2027           intree="yes" 
2028         fi
2029
2030         # Find Tk private headers
2031         if test x"${intree}" = xno; then
2032           CY_AC_TK_PRIVATE_HEADERS
2033           TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2034           TK_LIBRARY=${TK_LIB_SPEC}
2035           TK_DEPS=""
2036         else
2037           TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2038           TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2039           TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2040         fi
2041         AC_SUBST(TK_INCLUDE)
2042         AC_SUBST(TK_LIBRARY)
2043         AC_SUBST(TK_DEPS)
2044         AC_SUBST(TK_XINCLUDES)
2045
2046         ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2047
2048         # Include some libraries that Tcl and Tk want.
2049         TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2050         # Yes, the ordering seems wrong here.  But it isn't.
2051         # TK_LIBS is the list of libraries that need to be linked
2052         # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
2053         # were in LIBS then any link tests after this point would
2054         # try to include things like `$(LIBGUI)', which wouldn't work.
2055         GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2056
2057         CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2058         CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2059         CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2060         CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2061         CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2062         CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2063         CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2064
2065         if test x$gdb_cv_os_cygwin = xyes; then
2066           WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2067           WIN32LDAPP="-Wl,--subsystem,console"
2068           CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2069         fi
2070
2071         AC_CONFIG_SUBDIRS(gdbtk)
2072     fi
2073 fi
2074
2075 AC_SUBST(X_CFLAGS)
2076 AC_SUBST(X_LDFLAGS)
2077 AC_SUBST(X_LIBS)
2078 AC_SUBST(GDBTKLIBS)
2079 AC_SUBST(GDBTK_CFLAGS)
2080 AC_SUBST(GDBTK_SRC_DIR)
2081
2082 AC_PATH_X
2083
2084 # Unlike the sim directory, whether a simulator is linked is controlled by 
2085 # presence of a gdb_sim definition in the target configure.tgt entry.  
2086 # This code just checks for a few cases where we'd like to ignore those
2087 # definitions, even when they're present in the '.mt' file.  These cases
2088 # are when --disable-sim is specified, or if the simulator directory is
2089 # not part of the source tree.
2090 #
2091 AC_ARG_ENABLE(sim,
2092 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2093 [echo "enable_sim = $enable_sim";
2094  echo "enableval = ${enableval}";
2095  case "${enableval}" in
2096   yes) ignore_sim=false ;;
2097   no)  ignore_sim=true ;;
2098   *)   ignore_sim=false ;;
2099  esac],
2100 [ignore_sim=false])
2101
2102 if test ! -d "${srcdir}/../sim"; then
2103   ignore_sim=true
2104 fi
2105
2106 SIM=
2107 SIM_OBS=
2108 if test "${ignore_sim}" = "false"; then
2109   if test x"${gdb_sim}" != x ; then
2110     SIM="${gdb_sim}"
2111     SIM_OBS="remote-sim.o"
2112     AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2113   fi
2114 fi
2115 AC_SUBST(SIM)
2116 AC_SUBST(SIM_OBS)
2117
2118 AC_SUBST(ENABLE_CFLAGS)
2119 AC_SUBST(PROFILE_CFLAGS)
2120
2121 AC_SUBST(CONFIG_OBS)
2122 AC_SUBST(CONFIG_DEPS)
2123 AC_SUBST(CONFIG_SRCS)
2124 AC_SUBST(CONFIG_ALL)
2125 AC_SUBST(CONFIG_CLEAN)
2126 AC_SUBST(CONFIG_INSTALL)
2127 AC_SUBST(CONFIG_UNINSTALL)
2128
2129 # List of host floatformats.
2130 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2131 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2132 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2133
2134 # target_subdir is used by the testsuite to find the target libraries.
2135 target_subdir=
2136 if test "${host}" != "${target}"; then
2137     target_subdir="${target_alias}/"
2138 fi
2139 AC_SUBST(target_subdir)
2140
2141 frags=
2142 if test "${gdb_native}" = "yes"; then
2143   host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2144   if test ! -f ${host_makefile_frag}; then
2145     AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2146   fi
2147   frags="$frags $host_makefile_frag"
2148 else
2149   host_makefile_frag=/dev/null
2150 fi
2151
2152 AC_SUBST_FILE(host_makefile_frag)
2153 AC_SUBST(frags)
2154
2155 changequote(,)dnl
2156 if test "${gdb_native}" = "yes"; then
2157 # We pick this up from the host configuration file (.mh) because we
2158 # do not have a native configuration Makefile fragment.
2159 nativefile=`sed -n '
2160 s/NAT_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
2161 ' ${host_makefile_frag}`
2162 fi
2163 changequote([,])
2164
2165 if test x"${gdb_osabi}" != x ; then
2166     AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2167                        [Define to the default OS ABI for this configuration.])
2168 fi
2169
2170 # Enable multi-ice-gdb-server.
2171 AC_ARG_ENABLE(multi-ice,
2172 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2173   [case $enableval in
2174     yes | no)
2175       ;;
2176     *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2177   esac])
2178 if test "x$enable_multi_ice" = xyes; then
2179    AC_CONFIG_SUBDIRS(multi-ice)
2180 fi
2181
2182 AC_ARG_ENABLE(gdbserver,
2183 AS_HELP_STRING([--enable-gdbserver],
2184                [automatically build gdbserver (yes/no/auto, default is auto)]),
2185 [case "${enableval}" in
2186   yes| no|auto) ;;
2187   *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2188 esac],[enable_gdbserver=auto])
2189
2190 # We only build gdbserver automatically in a native configuration, and
2191 # only if the user did not explicitly disable its build.
2192 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2193   AC_MSG_CHECKING(whether gdbserver is supported on this host)
2194   if test "x$build_gdbserver" = xyes; then
2195     AC_MSG_RESULT(yes)
2196     AC_CONFIG_SUBDIRS(gdbserver)
2197     gdbserver_build_enabled=yes
2198   else
2199     AC_MSG_RESULT(no)
2200   fi
2201 fi
2202
2203 # If the user explicitly request the gdbserver to be built, verify that
2204 # we were in fact able to enable it.
2205 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2206   AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2207 fi
2208
2209 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2210 # to an empty version.
2211
2212 files=
2213 links=
2214
2215 rm -f nm.h
2216 if test "${nativefile}" != ""; then
2217     case "${nativefile}" in
2218       nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2219       * ) GDB_NM_FILE="${nativefile}"
2220     esac
2221     files="${files} ${GDB_NM_FILE}"
2222     links="${links} nm.h"
2223     AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2224 fi
2225 AC_SUBST(GDB_NM_FILE)
2226
2227 AC_LINK_FILES($files, $links)
2228
2229 dnl Check for exe extension set on certain hosts (e.g. Win32)
2230 AC_EXEEXT
2231
2232 dnl  Detect the character set used by this host.
2233 dnl  At the moment, we just assume it's UTF-8.
2234 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2235           [Define to be a string naming the default host character set.])
2236
2237 AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile,
2238 [
2239 case x$CONFIG_HEADERS in
2240 xconfig.h:config.in)
2241 echo > stamp-h ;;
2242 esac
2243 ])
2244
2245 exit 0