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