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