2003-07-22 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
b9362cc7
AC
360# ------------------------- #
361# Checks for declarations. #
362# ------------------------- #
363
364gcc_AC_CHECK_DECLS(getopt)
365
5ee754fc
MK
366# ------------------ #
367# Checks for types. #
368# ------------------ #
c906108c 369
5ee754fc
MK
370AC_TYPE_SIGNAL
371
372# ------------------------------------- #
373# Checks for compiler characteristics. #
374# ------------------------------------- #
c906108c
SS
375
376AC_C_CONST
bce58c09 377AC_C_INLINE
c906108c 378
5ee754fc
MK
379# ------------------------------ #
380# Checks for library functions. #
381# ------------------------------ #
382
c906108c 383AC_FUNC_ALLOCA
97bf5e38 384AC_FUNC_MMAP
46711df8 385AC_FUNC_VFORK
97bf5e38
MK
386AC_CHECK_FUNCS(canonicalize_file_name realpath)
387AC_CHECK_FUNCS(poll)
14abd0fb 388AC_CHECK_FUNCS(pread64)
97bf5e38
MK
389AC_CHECK_FUNCS(sbrk)
390AC_CHECK_FUNCS(setpgid setpgrp)
e1ea1d75 391AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
97bf5e38 392AC_CHECK_FUNCS(socketpair)
b757528f 393AC_CHECK_FUNCS(syscall)
97bf5e38 394
72473524
DJ
395dnl AC_FUNC_SETPGRP does not work when cross compiling
396dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
397if test "$cross_compiling" = no; then
398 AC_FUNC_SETPGRP
399else
400 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
401 [AC_TRY_COMPILE([
402#include <unistd.h>
403], [
404 if (setpgrp(1,1) == -1)
405 exit (0);
406 else
407 exit (1);
408], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
409if test $ac_cv_func_setpgrp_void = yes; then
410 AC_DEFINE(SETPGRP_VOID, 1)
411fi
412fi
c906108c 413
2b2d558c
MK
414# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
415# since sigsetjmp might only be defined as a macro.
416AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
417[AC_TRY_COMPILE([
418#include <setjmp.h>
419], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
420gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
421if test $gdb_cv_func_sigsetjmp = yes; then
422 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
423fi
424
06825bd1
MK
425# Assume we'll default to using the included libiberty regex.
426gdb_use_included_regex=yes
427
428# However, if the system regex is GNU regex, then default to *not*
429# using the included regex.
430AC_CACHE_CHECK(
431 [for GNU regex],
432 [gdb_cv_have_gnu_regex],
433 [AC_TRY_COMPILE(
434 [#include <gnu-versions.h>],
435 [#define REGEX_INTERFACE_VERSION 1
436#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
437# error "Version mismatch"
438#endif],
439 gdb_cv_have_gnu_regex=yes,
440 gdb_cv_have_gnu_regex=no)])
441if test $gdb_cv_have_gnu_regex = yes; then
442 gdb_use_included_regex=no
443fi
444
445AC_ARG_WITH(included-regex,
446 [ --without-included-regex don't use included regex; this is the default
447 on systems with version 2 of the GNU C library
448 (use with caution on other system)],
449 gdb_with_regex=$withval,
450 gdb_with_regex=$gdb_use_included_regex)
451if test "$gdb_with_regex" = yes; then
452 AC_DEFINE(USE_INCLUDED_REGEX, 1,
453 [Define to 1 if the regex included in libiberty should be used.])
454fi
455
0afdd437 456# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
7dfa765c 457# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
422ea4b8 458AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
7dfa765c 459[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
422ea4b8
MK
460gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
461if test $gdb_cv_struct_reg_r_fs = yes; then
462 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
7dfa765c 463fi
422ea4b8 464AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
7dfa765c 465[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
422ea4b8
MK
466gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
467if test $gdb_cv_struct_reg_r_gs = yes; then
468 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
7dfa765c
MK
469fi
470
0afdd437 471# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
f60300e7
MK
472AC_MSG_CHECKING(for PTRACE_GETREGS)
473AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
474[AC_TRY_COMPILE([#include <sys/ptrace.h>],
475 [PTRACE_GETREGS;],
476 [gdb_cv_have_ptrace_getregs=yes],
477 [gdb_cv_have_ptrace_getregs=no])])
478AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
479if test $gdb_cv_have_ptrace_getregs = yes; then
480 AC_DEFINE(HAVE_PTRACE_GETREGS)
481fi
482
0afdd437 483# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
6ce2ac0b
MK
484AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
485AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
5c44784c 486[AC_TRY_COMPILE([#include <sys/ptrace.h>],
6ce2ac0b
MK
487 [PTRACE_GETFPXREGS;],
488 [gdb_cv_have_ptrace_getfpxregs=yes],
489 [gdb_cv_have_ptrace_getfpxregs=no])])
490AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
491if test $gdb_cv_have_ptrace_getfpxregs = yes; then
492 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
5c44784c
JM
493fi
494
0afdd437
MK
495# See if <sys/ptrace.h> provides the PT_GETDBREGS request.
496AC_MSG_CHECKING(for PT_GETDBREGS)
497AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
498[AC_TRY_COMPILE([#include <sys/types.h>
499#include <sys/ptrace.h>],
500 [PT_GETDBREGS;],
501 [gdb_cv_have_pt_getdbregs=yes],
502 [gdb_cv_have_pt_getdbregs=no])])
503AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
504if test $gdb_cv_have_pt_getdbregs = yes; then
505 AC_DEFINE(HAVE_PT_GETDBREGS)
506fi
507
7e89e357
JT
508# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
509AC_MSG_CHECKING(for PT_GETXMMREGS)
510AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
511[AC_TRY_COMPILE([#include <sys/types.h>
512#include <sys/ptrace.h>],
513 [PT_GETXMMREGS;],
514 [gdb_cv_have_pt_getxmmregs=yes],
515 [gdb_cv_have_pt_getxmmregs=no])])
516AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
517if test $gdb_cv_have_pt_getxmmregs = yes; then
518 AC_DEFINE(HAVE_PT_GETXMMREGS)
519fi
520
27ca5dad
MC
521# See if stdint.h provides the uintptr_t type.
522# Autoconf 2.5X has an improved AC_CHECK_TYPE which will simplify this.
523AC_CACHE_CHECK([for uintptr_t in stdint.h], gdb_cv_have_uintptr_t,
524 [AC_TRY_COMPILE(
525 [#include <stdint.h>],
526 [uintptr_t foo = 0;],
527 gdb_cv_have_uintptr_t=yes,
528 gdb_cv_have_uintptr_t=no)])
529AC_MSG_RESULT($gdb_cv_have_uintptr_t)
530if test $gdb_cv_have_uintptr_t = yes; then
531 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if <stdint.h> provides the uintptr_t type.])
532fi
0afdd437 533
c906108c
SS
534BFD_NEED_DECLARATION(malloc)
535BFD_NEED_DECLARATION(realloc)
536BFD_NEED_DECLARATION(free)
537BFD_NEED_DECLARATION(strerror)
538BFD_NEED_DECLARATION(strdup)
b83266a0 539BFD_NEED_DECLARATION(strstr)
a4db0f07 540BFD_NEED_DECLARATION(canonicalize_file_name)
c906108c
SS
541
542# The following save_state_t checkery is only necessary for HPUX
543# versions earlier than 10.20. When those fade from memory, this
544# could be expunged. --jsm 1999-03-22
545
546AC_MSG_CHECKING(for HPUX save_state structure)
547AC_EGREP_HEADER(save_state_t, machine/save_state.h,
548 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
549AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
550 gdb_cv_hpux_sswide=no)
551if test $gdb_cv_hpux_savestate = yes
552then
553 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
554fi
555if test $gdb_cv_hpux_sswide = yes
556then
557 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
558fi
559AC_MSG_RESULT($gdb_cv_hpux_sswide)
560
561
562# If we are configured native on GNU/Linux, work around problems with
563# sys/procfs.h
c3f6f71d 564# Also detect which type of /proc is in use, such as for Unixware or Solaris.
c906108c
SS
565
566if test "${target}" = "${host}"; then
567 case "${host}" in
568 i[[3456]]86-*-linux*)
569 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
570 AC_DEFINE(sys_quotactl)
571 ;;
596c9d4b
KB
572 ia64-*-aix*)
573 AC_DEFINE(NEW_PROC_API)
574 ;;
1045b512 575 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
c3f6f71d
JM
576 AC_DEFINE(NEW_PROC_API)
577 ;;
3423db82 578 *-*-solaris2.[[678]])
c3f6f71d
JM
579 AC_DEFINE(NEW_PROC_API)
580 ;;
c906108c 581 esac
c906108c
SS
582fi
583
584if test "$ac_cv_header_sys_procfs_h" = yes; then
585 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
586 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
587 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
588 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
83d37ec8
MK
589 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
590 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
23e04971
MS
591 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
592 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
83d37ec8
MK
593 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
594 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
596c9d4b
KB
595 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
596 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
597 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
598 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
c906108c 599
23e04971 600
d84dd0c5
MK
601 dnl Check for broken prfpregset_t type
602
603 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
604 dnl prfpregset_t type (it's a typedef for the pointer to a struct
605 dnl instead of the struct itself). We detect this here, and work
a3007b6f 606 dnl around it in gdb_proc_service.h.
d84dd0c5
MK
607
608 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
609 AC_MSG_CHECKING(whether prfpregset_t type is broken)
610 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
611 [AC_TRY_RUN([#include <sys/procfs.h>
612 int main ()
613 {
614 if (sizeof (prfpregset_t) == sizeof (void *))
615 return 1;
616 return 0;
617 }],
618 gdb_cv_prfpregset_t_broken=no,
619 gdb_cv_prfpregset_t_broken=yes,
620 gdb_cv_prfpregset_t_broken=yes)])
621 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
622 if test $gdb_cv_prfpregset_t_broken = yes; then
623 AC_DEFINE(PRFPREGSET_T_BROKEN)
624 fi
625 fi
626
c906108c
SS
627 dnl Check for PIOCSET ioctl entry
628
629 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
630 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
631 [AC_TRY_COMPILE([#include <unistd.h>
632#include <sys/types.h>
633#include <sys/procfs.h>
634], [
635 int dummy;;
636 dummy = ioctl(0, PIOCSET, &dummy);
637 ],
638 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
639 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
640 if test $gdb_cv_have_procfs_piocset = yes; then
641 AC_DEFINE(HAVE_PROCFS_PIOCSET)
642 fi
643fi
644
d45fe813
KB
645dnl For native ports (host == target), check to see what kind of
646dnl legacy link.h support is needed. (See solib-legacy.c.)
647if test ${host} = ${target} ; then
648 dnl Check for struct link_map with l_ members which are indicative
649 dnl of SVR4-like shared libraries
650
651 AC_MSG_CHECKING(for member l_addr in struct link_map)
652 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
653 [AC_TRY_COMPILE([#include <link.h>],
654 [struct link_map lm; (void) lm.l_addr;],
655 gdb_cv_have_struct_link_map_with_l_members=yes,
656 gdb_cv_have_struct_link_map_with_l_members=no)])
657 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
658 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
659 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
660 fi
661
662 dnl Check for struct link_map with lm_ members which are indicative
663 dnl of SunOS-like shared libraries
664
665 AC_MSG_CHECKING(for member lm_addr in struct link_map)
666 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
667 [AC_TRY_COMPILE([#include <sys/types.h>
668#include <link.h>],
669 [struct link_map lm; (void) lm.lm_addr;],
670 gdb_cv_have_struct_link_map_with_lm_members=yes,
671 gdb_cv_have_struct_link_map_with_lm_members=no)])
672 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
673 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
674 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
675 fi
676
677 dnl Check for struct so_map with som_ members which are found on
678 dnl some *BSD systems.
679
680 AC_MSG_CHECKING(for member som_addr in struct so_map)
681 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
682 [AC_TRY_COMPILE([#include <sys/types.h>
39812ceb
C
683#ifdef HAVE_NLIST_H
684#include <nlist.h>
685#endif
d45fe813
KB
686#include <link.h>],
687 [struct so_map lm; (void) lm.som_addr;],
688 gdb_cv_have_struct_so_map_with_som_members=yes,
689 gdb_cv_have_struct_so_map_with_som_members=no)])
690 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
691 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
692 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
693 fi
694
695 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
696 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
697
698 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
699 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
700 [AC_TRY_COMPILE([#define _SYSCALL32
701#include <sys/link.h>], [struct link_map32 l;],
702 gdb_cv_have_struct_link_map32=yes,
703 gdb_cv_have_struct_link_map32=no)])
704 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
705 if test $gdb_cv_have_struct_link_map32 = yes; then
706 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
943c9c25 707 AC_DEFINE(_SYSCALL32)
d45fe813
KB
708 fi
709fi
710
c906108c
SS
711dnl See if compiler supports "long long" type.
712
713AC_MSG_CHECKING(for long long support in compiler)
714AC_CACHE_VAL(gdb_cv_c_long_long,
715[AC_TRY_COMPILE(, [
716 extern long long foo;
717 switch (foo & 2) { case 0: return 1; }
718],
719gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
720AC_MSG_RESULT($gdb_cv_c_long_long)
721if test $gdb_cv_c_long_long = yes; then
722 AC_DEFINE(CC_HAS_LONG_LONG)
723fi
724
725dnl See if the compiler and runtime support printing long long
726
727AC_MSG_CHECKING(for long long support in printf)
728AC_CACHE_VAL(gdb_cv_printf_has_long_long,
729[AC_TRY_RUN([
730int main () {
731 char buf[32];
732 long long l = 0;
733 l = (l << 16) + 0x0123;
734 l = (l << 16) + 0x4567;
735 l = (l << 16) + 0x89ab;
736 l = (l << 16) + 0xcdef;
737 sprintf (buf, "0x%016llx", l);
738 return (strcmp ("0x0123456789abcdef", buf));
739}],
740gdb_cv_printf_has_long_long=yes,
741gdb_cv_printf_has_long_long=no,
742gdb_cv_printf_has_long_long=no)])
743if test $gdb_cv_printf_has_long_long = yes; then
744 AC_DEFINE(PRINTF_HAS_LONG_LONG)
745fi
746AC_MSG_RESULT($gdb_cv_printf_has_long_long)
747
748dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
749dnl because autoconf complains about cross-compilation issues. However, this
750dnl code uses the same variables as the macro for compatibility.
751
752AC_MSG_CHECKING(for long double support in compiler)
753AC_CACHE_VAL(ac_cv_c_long_double,
754[AC_TRY_COMPILE(, [long double foo;],
755ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
756AC_MSG_RESULT($ac_cv_c_long_double)
757if test $ac_cv_c_long_double = yes; then
758 AC_DEFINE(HAVE_LONG_DOUBLE)
759fi
760
761dnl See if the compiler and runtime support printing long doubles
762
763AC_MSG_CHECKING(for long double support in printf)
764AC_CACHE_VAL(gdb_cv_printf_has_long_double,
765[AC_TRY_RUN([
766int main () {
767 char buf[16];
768 long double f = 3.141592653;
769 sprintf (buf, "%Lg", f);
770 return (strncmp ("3.14159", buf, 7));
771}],
772gdb_cv_printf_has_long_double=yes,
773gdb_cv_printf_has_long_double=no,
774gdb_cv_printf_has_long_double=no)])
775if test $gdb_cv_printf_has_long_double = yes; then
776 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
777fi
778AC_MSG_RESULT($gdb_cv_printf_has_long_double)
779
780dnl See if the compiler and runtime support scanning long doubles
781
782AC_MSG_CHECKING(for long double support in scanf)
783AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
784[AC_TRY_RUN([
785int main () {
786 char *buf = "3.141592653";
787 long double f = 0;
788 sscanf (buf, "%Lg", &f);
789 return !(f > 3.14159 && f < 3.14160);
790}],
791gdb_cv_scanf_has_long_double=yes,
792gdb_cv_scanf_has_long_double=no,
793gdb_cv_scanf_has_long_double=no)])
794if test $gdb_cv_scanf_has_long_double = yes; then
795 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
796fi
797AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
798
438013df
AO
799case ${host_os} in
800aix*)
801 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
802 SAVE_LDFLAGS=$LDFLAGS
803
804 case $GCC in
805 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
806 *) gdb_cv_bigtoc=-bbigtoc ;;
807 esac
808
809 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
810 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
811 ])
812 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
813 ;;
814esac
815
c906108c 816
d92419e5
JB
817dnl For certain native configurations, we need to check whether thread
818dnl support can be built in or not.
819dnl
820dnl Note that we only want this if we are both native (host == target),
821dnl and not doing a canadian cross build (build == host).
c906108c
SS
822
823if test ${build} = ${host} -a ${host} = ${target} ; then
824 case ${host_os} in
825 hpux*)
826 AC_MSG_CHECKING(for HPUX/OSF thread support)
827 if test -f /usr/include/dce/cma_config.h ; then
828 if test "$GCC" = "yes" ; then
829 AC_MSG_RESULT(yes)
830 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
66b965bb 831 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
c906108c
SS
832 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
833 else
834 AC_MSG_RESULT(no (suppressed because you are not using GCC))
835 fi
836 else
837 AC_MSG_RESULT(no)
838 fi
839 ;;
840 solaris*)
d92419e5
JB
841 # See if thread_db library is around for Solaris thread debugging.
842 # Note that we must explicitly test for version 1 of the library
843 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
844 # the same API.
c906108c
SS
845 AC_MSG_CHECKING(for Solaris thread debugging library)
846 if test -f /usr/lib/libthread_db.so.1 ; then
847 AC_MSG_RESULT(yes)
848 AC_DEFINE(HAVE_THREAD_DB_LIB)
66b965bb 849 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
c906108c
SS
850 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
851 AC_CHECK_LIB(dl, dlopen)
852 if test "$GCC" = "yes" ; then
853 # The GNU linker requires the -export-dynamic option to make
854 # all symbols visible in the dynamic symbol table.
855 hold_ldflags=$LDFLAGS
856 AC_MSG_CHECKING(for the ld -export-dynamic flag)
857 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
858 AC_TRY_LINK(, [int i;], found=yes, found=no)
859 LDFLAGS=$hold_ldflags
860 AC_MSG_RESULT($found)
861 if test $found = yes; then
862 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
863 fi
864 fi
865 # Sun randomly tweaked the prototypes in <proc_service.h>
866 # at one point.
867 AC_MSG_CHECKING(if <proc_service.h> is old)
868 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
869 AC_TRY_COMPILE([
870 #include <proc_service.h>
871 ps_err_e ps_pdwrite
872 (struct ps_prochandle*, psaddr_t, const void*, size_t);
873 ],, gdb_cv_proc_service_is_old=no,
874 gdb_cv_proc_service_is_old=yes)
875 ])
876 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
877 if test $gdb_cv_proc_service_is_old = yes; then
878 AC_DEFINE(PROC_SERVICE_IS_OLD)
879 fi
880 else
881 AC_MSG_RESULT(no)
882 fi
883 ;;
d92419e5
JB
884 aix*)
885 AC_MSG_CHECKING(for AiX thread debugging library)
886 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
887 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
888 [#ifndef PTHDB_VERSION_3
889 #error
890 #endif],
891 gdb_cv_have_aix_thread_debug=yes,
892 gdb_cv_have_aix_thread_debug=no)])
893 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
894 if test $gdb_cv_have_aix_thread_debug = yes; then
895 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
896 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
897 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
898 fi
899 ;;
c906108c
SS
900 esac
901 AC_SUBST(CONFIG_LDFLAGS)
902fi
903
3f47be5c
EZ
904dnl See if we have a thread_db header file that has TD_NOTALLOC.
905if test "x$ac_cv_header_thread_db_h" = "xyes"; then
906 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
907 gdb_cv_thread_db_h_has_td_notalloc,
908 AC_TRY_COMPILE(
909 [#include <thread_db.h>],
910 [int i = TD_NOTALLOC;],
911 gdb_cv_thread_db_h_has_td_notalloc=yes,
912 gdb_cv_thread_db_h_has_td_notalloc=no
913 )
914 )
915fi
916if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
917 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
918 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
919fi
920
b757528f
JJ
921dnl See if we have a sys/syscall header file that has __NR_tkill.
922if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
923 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
924 gdb_cv_sys_syscall_h_has_tkill,
925 AC_TRY_COMPILE(
926 [#include <sys/syscall.h>],
927 [int i = __NR_tkill;],
928 gdb_cv_sys_syscall_h_has_tkill=yes,
929 gdb_cv_sys_syscall_h_has_tkill=no
930 )
931 )
932fi
933dnl See if we can issue tkill syscall.
934if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
935 AC_DEFINE(HAVE_TKILL_SYSCALL, 1,
936 [Define if we can use the tkill syscall.])
937fi
938
c906108c 939dnl Handle optional features that can be enabled.
fb40c209 940
030292b7
DJ
941AC_ARG_WITH(sysroot,
942[ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
943[
944 case ${with_sysroot} in
715d1656 945 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
030292b7
DJ
946 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
947 esac
948
949 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
950
951 if test "x$exec_prefix" = xNONE; then
952 if test "x$prefix" = xNONE; then
953 test_prefix=/usr/local
954 else
955 test_prefix=$prefix
956 fi
957 else
958 test_prefix=$exec_prefix
959 fi
960 case ${TARGET_SYSTEM_ROOT} in
715d1656
AO
961 "${test_prefix}"|"${test_prefix}/"*|\
962 '${exec_prefix}'|'${exec_prefix}/'*)
030292b7
DJ
963 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
964 TARGET_SYSTEM_ROOT_DEFINE="$t"
965 ;;
966 esac
967], [
968 TARGET_SYSTEM_ROOT=
969 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
970])
971AC_SUBST(TARGET_SYSTEM_ROOT)
972AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
973
3b851bce
AC
974# NOTE: Don't add -Wall or -Wunused, they both include
975# -Wunused-parameter which reports bogus warnings.
976# NOTE: If you add to this list, remember to update
977# gdb/doc/gdbint.texinfo.
1decb323 978build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
153721e6 979-Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral"
d8038014
AC
980# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
981# -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
93d56215 982# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
d8038014
AC
983# -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
984# -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
985# -Woverloaded-virtual -Winline -Werror"
c906108c
SS
986AC_ARG_ENABLE(build-warnings,
987[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1decb323 988[case "${enableval}" in
c906108c
SS
989 yes) ;;
990 no) build_warnings="-w";;
991 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
992 build_warnings="${build_warnings} ${t}";;
993 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
994 build_warnings="${t} ${build_warnings}";;
995 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
d4f3574e
SS
996esac
997if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
746a987d 998 echo "Setting compiler warning flags = $build_warnings" 6>&1
1decb323 999fi])dnl
3b851bce
AC
1000AC_ARG_ENABLE(gdb-build-warnings,
1001[ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1002[case "${enableval}" in
1003 yes) ;;
1004 no) build_warnings="-w";;
1005 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1006 build_warnings="${build_warnings} ${t}";;
1007 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1008 build_warnings="${t} ${build_warnings}";;
1009 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1010esac
1011if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1012 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1013fi])dnl
104c1213
JM
1014WARN_CFLAGS=""
1015WERROR_CFLAGS=""
c906108c
SS
1016if test "x${build_warnings}" != x -a "x$GCC" = xyes
1017then
746a987d
AC
1018 AC_MSG_CHECKING(compiler warning flags)
1019 # Separate out the -Werror flag as some files just cannot be
1020 # compiled with it enabled.
1021 for w in ${build_warnings}; do
1022 case $w in
1023 -Werr*) WERROR_CFLAGS=-Werror ;;
1024 *) # Check that GCC accepts it
4536bbc6
AC
1025 saved_CFLAGS="$CFLAGS"
1026 CFLAGS="$CFLAGS $w"
1027 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1028 CFLAGS="$saved_CFLAGS"
746a987d
AC
1029 esac
1030 done
1031 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
1decb323 1032fi
c906108c 1033AC_SUBST(WARN_CFLAGS)
104c1213 1034AC_SUBST(WERROR_CFLAGS)
c906108c
SS
1035
1036MMALLOC_CFLAGS=
1037MMALLOC=
1038AC_SUBST(MMALLOC_CFLAGS)
1039AC_SUBST(MMALLOC)
1040
1041AC_ARG_WITH(mmalloc,
1042[ --with-mmalloc Use memory mapped malloc package],
1043[case "${withval}" in
1044 yes) want_mmalloc=true ;;
1045 no) want_mmalloc=false;;
1046 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
1047esac],[want_mmalloc=false])dnl
1048
1049if test x$want_mmalloc = xtrue; then
1050 AC_DEFINE(USE_MMALLOC)
1051 AC_DEFINE(MMCHECK_FORCE)
1052 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
1053 MMALLOC='../mmalloc/libmmalloc.a'
1054fi
1055
7a292a7a
SS
1056# In the Cygwin environment, we need some additional flags.
1057AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1058[AC_EGREP_CPP(lose, [
1059#if defined (__CYGWIN__) || defined (__CYGWIN32__)
1060lose
1061#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1062
aff38e61
AC
1063
1064dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1065SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
1066case ${host} in
95cbc983
AC
1067 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1068 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
aff38e61
AC
1069esac
1070AC_SUBST(SER_HARDWIRE)
1071
cd0fc7c3
SS
1072# libreadline needs libuser32.a in a cygwin environment
1073WIN32LIBS=
1074if test x$gdb_cv_os_cygwin = xyes; then
c5394b80
JM
1075 WIN32LIBS="-luser32"
1076 case "${target}" in
1077 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1078 ;;
1079 esac
cd0fc7c3
SS
1080fi
1081AC_SUBST(WIN32LIBS)
7a292a7a 1082
3fc11d3e
JM
1083LIBGUI="../libgui/src/libgui.a"
1084GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1085AC_SUBST(LIBGUI)
1086AC_SUBST(GUI_CFLAGS_X)
7a292a7a 1087
3fc11d3e
JM
1088WIN32LDAPP=
1089AC_SUBST(WIN32LIBS)
1090AC_SUBST(WIN32LDAPP)
1091
1092configdir="unix"
1093
1094GDBTKLIBS=
1095if test "${enable_gdbtk}" = "yes"; then
1096
d1c3b63a
KS
1097 # Gdbtk must have an absolute path to srcdir in order to run
1098 # properly when not installed.
1099 here=`pwd`
1100 cd ${srcdir}
1101 GDBTK_SRC_DIR=`pwd`
1102 cd $here
1103
3fc11d3e
JM
1104 CY_AC_PATH_TCLCONFIG
1105 if test -z "${no_tcl}"; then
1106 CY_AC_LOAD_TCLCONFIG
1107 CY_AC_PATH_TKCONFIG
1108
dd2504ab
JM
1109 # now look for Tcl library stuff
1110
1111 case "${host}" in
1112 *-*-cygwin*)
1113 tcldir=../tcl/win/
1114 ;;
1115 *)
1116 tcldir=../tcl/unix/
1117 ;;
1118 esac
1119
1120 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1121
3fc11d3e
JM
1122 # If $no_tk is nonempty, then we can't do Tk, and there is no
1123 # point to doing Tcl.
1124 if test -z "${no_tk}"; then
1125 CY_AC_LOAD_TKCONFIG
1126 CY_AC_PATH_TCLH
1127 CY_AC_PATH_TKH
1128 CY_AC_PATH_ITCLH
1129 CY_AC_PATH_ITKH
3fc11d3e 1130
dd2504ab
JM
1131
1132 # now look for Tk library stuff
1133
1134 case "${host}" in
1135 *-*-cygwin*)
1136 tkdir=../tk/win/
1137 ;;
1138 *)
1139 tkdir=../tk/unix/
1140 ;;
1141 esac
1142
1143 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1144
3fc11d3e
JM
1145 # now look for Itcl library stuff
1146
1147 CY_AC_PATH_ITCLCONFIG
1148 if test -z "${no_itcl}"; then
b381d62d 1149 CY_AC_LOAD_ITCLCONFIG
3fc11d3e
JM
1150
1151 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
b381d62d 1152 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
3fc11d3e
JM
1153 fi
1154
1155
1156 # now look for Itk library stuff
1157 CY_AC_PATH_ITKCONFIG
1158 if test -z "${no_itcl}"; then
1159 CY_AC_LOAD_ITKCONFIG
1160
3fc11d3e 1161 ITKLIB="${ITK_BUILD_LIB_SPEC}"
b381d62d 1162 ITK_DEPS="${ITK_LIB_FULL_PATH}"
3fc11d3e
JM
1163 fi
1164
4226a5a5 1165 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
3fc11d3e
JM
1166 # Tcl/Tk 8.1 require -fwritable strings. I don't
1167 # know whether 8.2 will or not, but I bet it will.
1168 # I don't have to worry about 7.x since we don't support it.
1169 GDBTK_CFLAGS=""
1170 if test "$GCC" = "yes"; then
1171 if test "$TCL_VERSION" != "8.0" ; then
1172 GDBTK_CFLAGS="-fwritable-strings"
1173 fi
1174 fi
1175
1176 # Include some libraries that Tcl and Tk want.
b2a1bd4f 1177 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
3fc11d3e
JM
1178 # Yes, the ordering seems wrong here. But it isn't.
1179 # TK_LIBS is the list of libraries that need to be linked
1180 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1181 # were in LIBS then any link tests after this point would
1182 # try to include things like `$(LIBGUI)', which wouldn't work.
1183 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
4226a5a5
FN
1184
1185 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1186 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1187 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1188 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
b3a90332 1189 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
ce844ae2 1190 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
e56ac5c3
AC
1191 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1192 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
3fc11d3e
JM
1193
1194 if test x$gdb_cv_os_cygwin = xyes; then
1195 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1196 WIN32LDAPP="-Wl,--subsystem,console"
1197 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1198 fi
1199 fi
1200 fi
ffc6a242 1201
ffc6a242 1202 configdirs="${configdirs} gdbtk"
3fc11d3e
JM
1203fi
1204
3fc11d3e
JM
1205AC_SUBST(X_CFLAGS)
1206AC_SUBST(X_LDFLAGS)
1207AC_SUBST(X_LIBS)
dd2504ab
JM
1208AC_SUBST(TCL_DEPS)
1209AC_SUBST(TK_DEPS)
3fc11d3e
JM
1210AC_SUBST(ITCLLIB)
1211AC_SUBST(ITCL_DEPS)
1212AC_SUBST(ITKLIB)
1213AC_SUBST(ITK_DEPS)
3fc11d3e
JM
1214AC_SUBST(GDBTKLIBS)
1215AC_SUBST(GDBTK_CFLAGS)
d1c3b63a 1216AC_SUBST(GDBTK_SRC_DIR)
8b93c638 1217
c906108c
SS
1218AC_PATH_X
1219
7a292a7a
SS
1220
1221# Unlike the sim directory, whether a simulator is linked is controlled by
1222# presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1223# This code just checks for a few cases where we'd like to ignore those
1224# definitions, even when they're present in the '.mt' file. These cases
1225# are when --disable-sim is specified, or if the simulator directory is
6c5cfe5b 1226# not part of the source tree.
7a292a7a
SS
1227#
1228AC_ARG_ENABLE(sim,
1229[ --enable-sim Link gdb with simulator],
1230[echo "enable_sim = $enable_sim";
1231 echo "enableval = ${enableval}";
1232 case "${enableval}" in
1233 yes) ignore_sim=false ;;
1234 no) ignore_sim=true ;;
1235 *) ignore_sim=false ;;
1236 esac],
1237[ignore_sim=false])
1238
1239if test ! -d "${srcdir}/../sim"; then
1240 ignore_sim=true
1241fi
1242
1243if test "${ignore_sim}" = "true"; then
1244 IGNORE_SIM="SIM="
1245 IGNORE_SIM_OBS="SIM_OBS="
1246else
1247 IGNORE_SIM=""
1248 IGNORE_SIM_OBS=""
1249 AC_DEFINE(WITH_SIM)
1250fi
1251AC_SUBST(IGNORE_SIM)
1252AC_SUBST(IGNORE_SIM_OBS)
1253
c906108c 1254AC_SUBST(ENABLE_CFLAGS)
d28f9cdf 1255AC_SUBST(PROFILE_CFLAGS)
c906108c
SS
1256
1257AC_SUBST(CONFIG_OBS)
66b965bb 1258AC_SUBST(CONFIG_LIB_OBS)
c906108c
SS
1259AC_SUBST(CONFIG_DEPS)
1260AC_SUBST(CONFIG_SRCS)
dfcd3bfb 1261AC_SUBST(CONFIG_INITS)
b3a90332
AC
1262AC_SUBST(CONFIG_ALL)
1263AC_SUBST(CONFIG_CLEAN)
e56ac5c3
AC
1264AC_SUBST(CONFIG_INSTALL)
1265AC_SUBST(CONFIG_UNINSTALL)
c906108c 1266
c906108c
SS
1267# target_subdir is used by the testsuite to find the target libraries.
1268target_subdir=
1269if test "${host}" != "${target}"; then
1270 target_subdir="${target_alias}/"
1271fi
1272AC_SUBST(target_subdir)
1273
1274frags=
1275host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1276if test ! -f ${host_makefile_frag}; then
7fd60527
AC
1277 # When building a native debuger the .mh file containing things
1278 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1279 # since it no longer contains anything useful.
1280 if test "${target}" = "${host}"; then
1281 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1282 else
1283 host_makefile_frag=/dev/null
1284 fi
c906108c
SS
1285fi
1286frags="$frags $host_makefile_frag"
1287
1288target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1289if test ! -f ${target_makefile_frag}; then
1290AC_MSG_ERROR("*** Gdb does not support target ${target}")
1291fi
1292frags="$frags $target_makefile_frag"
1293
1294AC_SUBST_FILE(host_makefile_frag)
1295AC_SUBST_FILE(target_makefile_frag)
1296AC_SUBST(frags)
1297
1298changequote(,)dnl
1299hostfile=`sed -n '
1300s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1301' ${host_makefile_frag}`
1302
1303targetfile=`sed -n '
1304s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1305' ${target_makefile_frag}`
1306
6166d547
AC
1307GDB_MULTI_ARCH=`sed -n '
1308s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1309' ${target_makefile_frag}`
1310
c906108c 1311if test "${target}" = "${host}"; then
a85f51e7
DJ
1312# We pick this up from the host configuration file (.mh) because we
1313# do not have a native configuration Makefile fragment.
c906108c
SS
1314nativefile=`sed -n '
1315s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1316' ${host_makefile_frag}`
c906108c
SS
1317fi
1318changequote([,])
1319
6166d547
AC
1320# New targets should just set gdb_multi_arch=yes in configure.tgt.
1321# Old targets being converted can either do that or set GDB_MULTI_ARCH
1322# in the target specific makefile frag. Eventually gdb_multi_arch=yes
1323# will be the default.
1324if test x"${GDB_MULTI_ARCH}" = x ; then
1325 case "${gdb_multi_arch}" in
1326 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1327 no ) GDB_MULTI_ARCH=0 ;;
1328 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1329 esac
1330fi
1331if test x"${GDB_MULTI_ARCH}" != x ; then
1332 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1333fi
6c5cfe5b 1334# Warn the user when they use an old practice
6166d547
AC
1335case "${GDB_MULTI_ARCH}" in
1336 "" ) ;;
1337 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1338 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1339 GDB_MULTI_ARCH_PURE )
1340 if test x"${targetfile}" != x ; then
6c5cfe5b 1341 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
5a2402b8 1342 targetfile=""
6166d547
AC
1343 fi ;;
1344 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1345esac
1346
b00a8037
DJ
1347if test x"${gdb_osabi}" != x ; then
1348 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1349 [Define to the default OS ABI for this configuration.])
1350fi
1351
8dcde887
MK
1352# Enable multi-ice-gdb-server.
1353AC_ARG_ENABLE(multi-ice,
1354[ --enable-multi-ice build the multi-ice-gdb-server],
1355 [case $enableval in
1356 yes | no)
1357 ;;
1358 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1359 esac])
1360if test "x$enable_multi_ice" = xyes; then
1361 configdirs="$configdirs multi-ice"
96baa820
JM
1362fi
1363
8dcde887
MK
1364# We only build gdbserver automatically if host and target are the same.
1365if test "x$target" = "x$host"; then
1366 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1367 if test "x$build_gdbserver" = xyes; then
1368 configdirs="$configdirs gdbserver"
1369 AC_MSG_RESULT(yes)
1370 else
1371 AC_MSG_RESULT(no)
1372 fi
a85f51e7
DJ
1373fi
1374
8dcde887 1375AC_CONFIG_SUBDIRS($configdirs)
96baa820 1376
c906108c 1377# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
5a2402b8
AC
1378# (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1379# version.
c906108c
SS
1380
1381files=
1382links=
5a2402b8 1383
c906108c 1384rm -f xm.h
5a2402b8 1385xm_h=""
c906108c 1386if test "${hostfile}" != ""; then
5a2402b8
AC
1387 xm_h=xm.h
1388 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1389 files="${files} ${GDB_XM_FILE}"
1390 links="${links} xm.h"
1391 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
c906108c 1392fi
5a2402b8
AC
1393AC_SUBST(xm_h)
1394
c906108c 1395rm -f tm.h
5a2402b8 1396tm_h=""
c906108c 1397if test "${targetfile}" != ""; then
5a2402b8
AC
1398 tm_h=tm.h
1399 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1400 files="${files} ${GDB_TM_FILE}"
1401 links="${links} tm.h"
1402 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
c906108c 1403fi
5a2402b8
AC
1404AC_SUBST(tm_h)
1405
c906108c 1406rm -f nm.h
5a2402b8 1407nm_h=""
c906108c 1408if test "${nativefile}" != ""; then
5a2402b8
AC
1409 nm_h=nm.h
1410 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1411 files="${files} ${GDB_NM_FILE}"
1412 links="${links} nm.h"
1413 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
c906108c 1414fi
5a2402b8
AC
1415AC_SUBST(nm_h)
1416
c906108c
SS
1417AC_LINK_FILES($files, $links)
1418
1419dnl Check for exe extension set on certain hosts (e.g. Win32)
1420AC_EXEEXT
1421
234b45d4
KB
1422dnl Detect the character set used by this host.
1423
1424dnl At the moment, we just assume it's ISO-8859-1 (which is a
1425dnl superset of ASCII containing the characters needed for French,
1426dnl German, Spanish, Italian, and possibly others), but if were
1427dnl *were* to support any host character sets other than ISO-8859-1,
1428dnl here's where we'd detect it.
1429AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1430 [Define to be a string naming the default host character set.])
1431
1432AM_ICONV
1433
ed952ac5 1434AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
c906108c
SS
1435[
1436dnl Autoconf doesn't provide a mechanism for modifying definitions
1437dnl provided by makefile fragments.
1438dnl
7ee6d7eb 1439if test "${nativefile}" = ""; then
c4620205 1440 < Makefile \
e27da16d
JT
1441 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1442 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
c4620205
JB
1443 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1444 > Makefile.tem
c906108c
SS
1445mv -f Makefile.tem Makefile
1446fi
1447
1448changequote(,)dnl
1449sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1450/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1451/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1452mv -f Makefile.tmp Makefile
1453changequote([,])dnl
1454
2acceee2 1455
c906108c
SS
1456case x$CONFIG_HEADERS in
1457xconfig.h:config.in)
1458echo > stamp-h ;;
1459esac
1460],
1461[
1462gdb_host_cpu=$gdb_host_cpu
1463gdb_target_cpu=$gdb_target_cpu
1464nativefile=$nativefile
1465])
1466
1467exit 0
This page took 0.311339 seconds and 4 git commands to generate.