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