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