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