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