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