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