* configure.ac: Modernize checks for `long long' and `long double'
[deliverable/binutils-gdb.git] / gdb / configure.ac
CommitLineData
c906108c 1dnl Autoconf configure script for GDB, the GNU debugger.
0f0cffd2 2dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
b6ba6518 3dnl Free Software Foundation, Inc.
c906108c
SS
4dnl
5dnl This file is part of GDB.
6dnl
7dnl This program is free software; you can redistribute it and/or modify
8dnl it under the terms of the GNU General Public License as published by
9dnl the Free Software Foundation; either version 2 of the License, or
10dnl (at your option) any later version.
11dnl
12dnl This program is distributed in the hope that it will be useful,
13dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15dnl GNU General Public License for more details.
16dnl
17dnl You should have received a copy of the GNU General Public License
18dnl along with this program; if not, write to the Free Software
19dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21dnl Process this file with autoconf to produce a configure script.
22
bec39cab 23AC_PREREQ(2.59)dnl
c906108c
SS
24AC_INIT(main.c)
25AC_CONFIG_HEADER(config.h:config.in)
413ccac7 26AM_MAINTAINER_MODE
c906108c
SS
27
28AC_PROG_CC
14abd0fb 29AC_GNU_SOURCE
c906108c
SS
30AC_AIX
31AC_ISC_POSIX
32AM_PROG_CC_STDC
33
34AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
35AC_CANONICAL_SYSTEM
36
8bb2c122
MK
37# FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13
38# doesn't support cross-compilation, but the one from Autoconf 2.5x
39# does. Override RANLIB here (i.e. before running AC_PROG_RANLIB) to
40# deal with the lossage. Note that CY_GNU_GETTEXT currently calls
f6e85fc8 41# AC_PROG_RANLIB. This can be removed when we switch to Autoconf
8bb2c122
MK
42# 2.5x.
43AC_CHECK_TOOL(RANLIB, ranlib, :)
44
ddc9cd0f
AC
45dnl List of object files and targets accumulated by configure.
46
47CONFIG_OBS=
48CONFIG_DEPS=
49CONFIG_SRCS=
50ENABLE_CFLAGS=
51
52CONFIG_ALL=
53CONFIG_CLEAN=
54CONFIG_INSTALL=
55CONFIG_UNINSTALL=
56
0fbb3da7 57dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
ddc9cd0f 58
c906108c 59CY_GNU_GETTEXT
ddc9cd0f
AC
60
61localedir='${datadir}/locale'
62AC_SUBST(localedir)
63
64if test "x$POSUB" != x; then
65
66 dnl Lifted from GCC's config/gettext.m4.
67 AC_MSG_CHECKING(for catalogs to be installed)
68 # Look for .po and .gmo files in the source directory.
69 CATALOGS= AC_SUBST(CATALOGS)
70 XLINGUAS=
71 for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
72 # If there aren't any .gmo files the shell will give us the
73 # literal string "../path/to/srcdir/po/*.gmo" which has to be
74 # weeded out.
75 case "$cat" in *\**)
76 continue;;
77 esac
78 # The quadruple backslash is collapsed to a double backslash
79 # by the backticks, then collapsed again by the double quotes,
80 # leaving us with one backslash in the sed expression (right
81 # before the dot that mustn't act as a wildcard).
82 cat=`echo $cat | sed -e "s!$srcdir/!!" -e "s!\\\\.po!.gmo!"`
83 lang=`echo $cat | sed -e 's!po/!!' -e "s!\\\\.gmo!!"`
84 # The user is allowed to set LINGUAS to a list of languages to
85 # install catalogs for. If it's empty that means "all of them."
86 if test "x$LINGUAS" = x; then
87 CATALOGS="$CATALOGS $cat"
88 XLINGUAS="$XLINGUAS $lang"
89 else
90 case "$LINGUAS" in *$lang*)
91 CATALOGS="$CATALOGS $cat"
92 XLINGUAS="$XLINGUAS $lang"
93 ;;
94 esac
95 fi
96 done
97 LINGUAS="$XLINGUAS"
98 AC_MSG_RESULT($LINGUAS)
99
100 CONFIG_ALL="$CONFIG_ALL all-po"
101 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
102 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
103 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
104fi
105
106PACKAGE=gdb
107AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
108AC_SUBST(PACKAGE)
0fbb3da7 109
5b5d99cf
JB
110debugdir=${libdir}/debug
111
112AC_ARG_WITH(separate-debug-dir,
113[ --with-separate-debug-dir=path Look for global separate debug info in this path [LIBDIR/debug]],
114[debugdir="${withval}"])
115
116AC_DEFINE_DIR(DEBUGDIR, debugdir,
117 [Global directory for separate debug files. ])
118#AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
c906108c 119
8dcde887 120AC_CONFIG_SUBDIRS(doc testsuite)
96baa820 121
27e9bf90 122. $srcdir/configure.host
c906108c 123
27e9bf90 124. $srcdir/configure.tgt
c906108c 125
27e9bf90
MK
126# Fetch the default architecture and default target vector from BFD.
127targ=$target; . $srcdir/../bfd/config.bfd
5c8cc331 128
27e9bf90
MK
129# We only want the first architecture, so strip off the others if
130# there is more than one.
131targ_archs=`echo $targ_archs | sed 's/ .*//'`
5c8cc331 132
27e9bf90
MK
133if test "x$targ_archs" != x; then
134 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
135 [Define to BFD's default architecture. ])
1ba607ad 136fi
27e9bf90
MK
137if test "x$targ_defvec" != x; then
138 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
139 [Define to BFD's default target vector. ])
1ba607ad
AC
140fi
141
8bb2c122
MK
142AC_ARG_PROGRAM
143
627af7ea
MK
144# The CLI cannot be disabled yet, but may be in the future.
145
146# Enable CLI.
147AC_ARG_ENABLE(gdbcli,
148[ --disable-gdbcli disable command-line interface (CLI)],
149 [case $enableval in
150 yes)
151 ;;
152 no)
153 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
154 *)
155 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
156 esac],
157 [enable_gdbcli=yes])
158if test x"$enable_gdbcli" = xyes; then
159 if test -d $srcdir/cli; then
160 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
161 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
162 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
627af7ea 163 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
627af7ea
MK
164 fi
165fi
166
167# Enable MI.
168AC_ARG_ENABLE(gdbmi,
169[ --disable-gdbmi disable machine-interface (MI)],
170 [case $enableval in
171 yes | no)
172 ;;
173 *)
174 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
175 esac],
176 [enable_gdbmi=yes])
177if test x"$enable_gdbmi" = xyes; then
178 if test -d $srcdir/mi; then
179 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
180 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
181 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
627af7ea 182 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
627af7ea
MK
183 fi
184fi
185
287c1a40
MK
186# Enable TUI.
187AC_ARG_ENABLE(tui,
188[ --enable-tui enable full-screen terminal user interface (TUI)],
189 [case $enableval in
190 yes | no)
191 ;;
192 *)
193 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
c324d747 194 esac],enable_tui=yes)
287c1a40 195
8ee53726
MK
196# Enable gdbtk.
197AC_ARG_ENABLE(gdbtk,
d28f9cdf 198[ --enable-gdbtk enable gdbtk graphical user interface (GUI)],
8ee53726
MK
199 [case $enableval in
200 yes | no)
201 ;;
202 *)
203 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
204 esac],
205 [if test -d $srcdir/gdbtk; then
206 enable_gdbtk=yes
207 else
208 enable_gdbtk=no
209 fi])
210# We unconditionally disable gdbtk tests on selected platforms.
211case $host_os in
212 go32* | windows*)
213 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
214 enable_gdbtk=no ;;
215esac
216
0e5d83e3
JJ
217# Libunwind support.
218AC_ARG_WITH(libunwind,
219[ --with-libunwind Use libunwind frame unwinding support],
220[case "${withval}" in
221 yes) enable_libunwind=yes ;;
222 no) enable_libunwind=no ;;
223 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
224esac],[
225 AC_CHECK_HEADERS(libunwind.h)
226 AC_CHECK_HEADERS(libunwind-ia64.h)
227 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
228 enable_libunwind=yes;
229 fi
230])
231
232if test x"$enable_libunwind" = xyes; then
233 AC_CHECK_HEADERS(libunwind.h)
234 AC_CHECK_HEADERS(libunwind-ia64.h)
235 AC_DEFINE(HAVE_LIBUNWIND, 1)
236 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
237 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
238 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
239fi
240
d28f9cdf
DJ
241# Profiling support.
242AC_ARG_ENABLE(profiling,
243[ --enable-profiling enable profiling of GDB],
244 [case $enableval in
245 yes | no)
246 ;;
247 *)
248 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
249 esac],
250 [enable_profiling=no])
251
d9feb4e7 252AC_CHECK_FUNCS(monstartup _mcleanup)
b0b1c2c0
MK
253AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
254[AC_TRY_LINK(
255[#include <stdlib.h>
256extern char _etext;
257],
258[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
259if test $ac_cv_var__etext = yes; then
260 AC_DEFINE(HAVE__ETEXT, 1,
261 [Define to 1 if your system has the _etext variable. ])
262fi
d28f9cdf 263if test "$enable_profiling" = yes ; then
d9feb4e7
DJ
264 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
265 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
266 fi
d28f9cdf
DJ
267 PROFILE_CFLAGS=-pg
268 OLD_CFLAGS="$CFLAGS"
269 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
270
d9feb4e7
DJ
271 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
272 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
273 ac_cv_cc_supports_pg=no)])
d28f9cdf 274
d9feb4e7
DJ
275 if test $ac_cv_cc_supports_pg = no; then
276 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
277 fi
d28f9cdf
DJ
278
279 CFLAGS="$OLD_CFLAGS"
280fi
281
8bb2c122
MK
282# --------------------- #
283# Checks for programs. #
284# --------------------- #
285
7a292a7a 286AC_PROG_AWK
c906108c 287AC_PROG_INSTALL
8bb2c122
MK
288AC_PROG_LN_S
289AC_PROG_RANLIB
290AC_PROG_YACC
291
c906108c 292AC_CHECK_TOOL(AR, ar)
95ca63c4
CF
293AC_CHECK_TOOL(DLLTOOL, dlltool)
294AC_CHECK_TOOL(WINDRES, windres)
c906108c 295
8bb2c122 296# Needed for GNU/Hurd.
75c6e08a
MK
297AC_CHECK_TOOL(MIG, mig)
298
9a156167
MK
299# ---------------------- #
300# Checks for libraries. #
301# ---------------------- #
302
303# We might need to link with -lm; most simulators need it.
304AC_CHECK_LIB(m, main)
305
306# We need to link with -lw to get `wctype' on Solaris before Solaris
307# 2.6. Solaris 2.6 and beyond have this function in libc, and have a
308# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
309# is known to have this problem). Therefore we avoid libw if we can.
310AC_CHECK_FUNC(wctype, [],
311 [AC_CHECK_LIB(w, wctype)])
312
c890192f
MK
313# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
314AC_SEARCH_LIBS(gethostbyname, nsl)
315
9a156167
MK
316# Some systems (e.g. Solaris) have `socketpair' in libsocket.
317AC_SEARCH_LIBS(socketpair, socket)
318
4f0be353
MK
319# For the TUI, we need enhanced curses functionality.
320#
321# FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
322# curses library because the latter might not provide all the
323# functionality we need. However, this leads to problems on systems
324# where the linker searches /usr/local/lib, but the compiler doesn't
325# search /usr/local/include, if ncurses is installed in /usr/local. A
326# default installation of ncurses on alpha*-dec-osf* will lead to such
327# a situation.
8b9cf735 328AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
4f0be353 329
4f0be353
MK
330# Since GDB uses Readline, we need termcap functionality. In many
331# cases this will be provided by the curses library, but some systems
332# have a seperate termcap library, or no curses library at all.
287c1a40
MK
333
334case $host_os in
335 cygwin*)
336 if test -d $srcdir/libtermcap; then
337 LIBS="../libtermcap/libtermcap.a $LIBS"
338 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
339 fi ;;
228a417c 340 go32* | *djgpp*)
287c1a40
MK
341 ac_cv_search_tgetent="none required"
342 ;;
287c1a40
MK
343esac
344
4f0be353
MK
345# These are the libraries checked by Readline.
346AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
287c1a40
MK
347
348if test "$ac_cv_search_tgetent" = no; then
349 AC_MSG_ERROR([no termcap library found])
350fi
351
5ee754fc
MK
352# ------------------------- #
353# Checks for header files. #
354# ------------------------- #
c906108c 355
9608ab8b 356AC_HEADER_DIRENT
5ee754fc 357AC_HEADER_STAT
c906108c 358AC_HEADER_STDC
5ee754fc 359AC_CHECK_HEADERS(nlist.h)
7cb9022a
MK
360AC_CHECK_HEADERS(link.h, [], [],
361[#if HAVE_SYS_TYPES_H
362# include <sys/types.h>
363#endif
364#if HAVE_NLIST_H
365# include <nlist.h>
366#endif
367])
368AC_CHECK_HEADERS(machine/reg.h)
5ee754fc 369AC_CHECK_HEADERS(poll.h sys/poll.h)
a2f23071 370AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h)
5ee754fc
MK
371AC_CHECK_HEADERS(stddef.h)
372AC_CHECK_HEADERS(stdlib.h)
373AC_CHECK_HEADERS(stdint.h)
374AC_CHECK_HEADERS(string.h memory.h strings.h)
375AC_CHECK_HEADERS(sys/fault.h)
376AC_CHECK_HEADERS(sys/file.h)
377AC_CHECK_HEADERS(sys/filio.h)
378AC_CHECK_HEADERS(sys/ioctl.h)
379AC_CHECK_HEADERS(sys/param.h)
7cb9022a
MK
380AC_CHECK_HEADERS(sys/proc.h, [], [],
381[#if HAVE_SYS_PARAM_H
382# include <sys/param.h>
383#endif
384])
5ee754fc
MK
385AC_CHECK_HEADERS(sys/procfs.h)
386AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
387AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
388AC_CHECK_HEADERS(sys/select.h)
389AC_CHECK_HEADERS(sys/syscall.h)
086ec9eb 390AC_CHECK_HEADERS(sys/types.h)
7cb9022a
MK
391AC_CHECK_HEADERS(sys/user.h, [], [],
392[#if HAVE_SYS_PARAM_H
393# include <sys/param.h>
394#endif
395])
5ee754fc
MK
396AC_CHECK_HEADERS(sys/wait.h wait.h)
397AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
398AC_CHECK_HEADERS(unistd.h)
399
b1d19a62 400# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
5ee754fc
MK
401# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
402# think that we don't have <curses.h> if we're using GCC.
403case $host_os in
b1d19a62 404 solaris2.[[789]])
5ee754fc
MK
405 if test "$GCC" = yes; then
406 AC_DEFINE(_MSE_INT_H, 1,
407 [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
b1d19a62 408 Solaris 2.[789] when using GCC. ]])
5ee754fc
MK
409 fi ;;
410esac
3b78cdbb 411AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h)
c401b55a
MK
412AC_CHECK_HEADERS(ncurses/term.h)
413AC_CHECK_HEADERS(term.h, [], [],
414[#if HAVE_CURSES_H
415# include <curses.h>
416#endif
417])
5ee754fc
MK
418
419# FIXME: kettenis/20030102: In most cases we include these
420# unconditionally, so what's the point in checking these?
421AC_CHECK_HEADERS(ctype.h time.h)
422
40a7debc
EZ
423dnl Check for struct stat with an st_blocks member
424AC_MSG_CHECKING(for member st_blocks in struct stat)
425AC_CACHE_VAL(gdb_cv_have_struct_stat_with_st_blocks_member,
426 [AC_TRY_COMPILE([#include <sys/types.h>
427#include <sys/stat.h>],
428 [struct stat st; (void) st.st_blocks;],
429 gdb_cv_have_struct_stat_with_st_blocks_member=yes,
430 gdb_cv_have_struct_stat_with_st_blocks_member=no)])
431AC_MSG_RESULT($gdb_cv_have_struct_stat_with_st_blocks_member)
432if test $gdb_cv_have_struct_stat_with_st_blocks_member = yes; then
433 AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
434fi
086ec9eb 435
b9362cc7
AC
436# ------------------------- #
437# Checks for declarations. #
438# ------------------------- #
439
440gcc_AC_CHECK_DECLS(getopt)
441
5ee754fc
MK
442# ------------------ #
443# Checks for types. #
444# ------------------ #
c906108c 445
5ee754fc
MK
446AC_TYPE_SIGNAL
447
448# ------------------------------------- #
449# Checks for compiler characteristics. #
450# ------------------------------------- #
c906108c
SS
451
452AC_C_CONST
bce58c09 453AC_C_INLINE
c906108c 454
5ee754fc
MK
455# ------------------------------ #
456# Checks for library functions. #
457# ------------------------------ #
458
c906108c 459AC_FUNC_ALLOCA
97bf5e38 460AC_FUNC_MMAP
46711df8 461AC_FUNC_VFORK
97bf5e38
MK
462AC_CHECK_FUNCS(canonicalize_file_name realpath)
463AC_CHECK_FUNCS(poll)
14abd0fb 464AC_CHECK_FUNCS(pread64)
97bf5e38
MK
465AC_CHECK_FUNCS(sbrk)
466AC_CHECK_FUNCS(setpgid setpgrp)
e1ea1d75 467AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
97bf5e38 468AC_CHECK_FUNCS(socketpair)
b757528f 469AC_CHECK_FUNCS(syscall)
bcb3dc3d 470AC_CHECK_FUNCS(ttrace)
8b9cf735 471AC_CHECK_FUNCS(wborder)
97bf5e38 472
086ec9eb
MK
473# Check the return and argument types of ptrace. No canned test for
474# this, so roll our own.
475gdb_ptrace_headers='
476#if HAVE_SYS_TYPES_H
477# include <sys/types.h>
478#endif
479#if HAVE_SYS_PTRACE_H
480# include <sys/ptrace.h>
481#endif
482#if HAVE_UNISTD_H
483# include <unistd.h>
484#endif
485'
486# There is no point in checking if we don't have a prototype.
487gcc_AC_CHECK_DECLS(ptrace, , [
488 : ${gdb_cv_func_ptrace_ret='int'}
489 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
490], $gdb_ptrace_headers)
491# Check return type.
492AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
493 AC_TRY_COMPILE($gdb_ptrace_headers,
5885ab49
MK
494 [extern int ptrace ();],
495 gdb_cv_func_ptrace_ret='int',
496 gdb_cv_func_ptrace_ret='long'))
086ec9eb
MK
497AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
498 [Define as the return type of ptrace.])
499# Check argument types.
500AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
501for gdb_arg1 in 'int' 'long'; do
502 for gdb_arg2 in 'pid_t' 'int' 'long'; do
503 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long'; do
504 for gdb_arg4 in '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);
508], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
509 break 4;])
510 for gdb_arg5 in 'int *' 'int' 'long'; do
511 AC_TRY_COMPILE($gdb_ptrace_headers, [
512extern $gdb_cv_func_ptrace_ret
513 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
514], [
515gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
516 break 5;])
517 done
518 done
519 done
520 done
521done
522# Provide a safe default value.
523: ${gdb_cv_func_ptrace_args='int,int,long,long'}
524])
525ac_save_IFS=$IFS; IFS=','
526set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
527IFS=$ac_save_IFS
528shift
64218d3e 529AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
086ec9eb
MK
530 [Define to the type of arg 3 for ptrace.])
531if test -n "$[5]"; then
64218d3e 532 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
086ec9eb
MK
533 [Define to the type of arg 5 for ptrace.])
534fi
535
72473524
DJ
536dnl AC_FUNC_SETPGRP does not work when cross compiling
537dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
538if test "$cross_compiling" = no; then
539 AC_FUNC_SETPGRP
540else
541 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
542 [AC_TRY_COMPILE([
543#include <unistd.h>
544], [
545 if (setpgrp(1,1) == -1)
546 exit (0);
547 else
548 exit (1);
549], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
550if test $ac_cv_func_setpgrp_void = yes; then
551 AC_DEFINE(SETPGRP_VOID, 1)
552fi
553fi
c906108c 554
2b2d558c
MK
555# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
556# since sigsetjmp might only be defined as a macro.
557AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
558[AC_TRY_COMPILE([
559#include <setjmp.h>
560], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
561gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
562if test $gdb_cv_func_sigsetjmp = yes; then
563 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
564fi
565
06825bd1
MK
566# Assume we'll default to using the included libiberty regex.
567gdb_use_included_regex=yes
568
569# However, if the system regex is GNU regex, then default to *not*
570# using the included regex.
571AC_CACHE_CHECK(
572 [for GNU regex],
573 [gdb_cv_have_gnu_regex],
574 [AC_TRY_COMPILE(
575 [#include <gnu-versions.h>],
576 [#define REGEX_INTERFACE_VERSION 1
577#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
578# error "Version mismatch"
579#endif],
580 gdb_cv_have_gnu_regex=yes,
581 gdb_cv_have_gnu_regex=no)])
582if test $gdb_cv_have_gnu_regex = yes; then
583 gdb_use_included_regex=no
584fi
585
586AC_ARG_WITH(included-regex,
587 [ --without-included-regex don't use included regex; this is the default
588 on systems with version 2 of the GNU C library
589 (use with caution on other system)],
590 gdb_with_regex=$withval,
591 gdb_with_regex=$gdb_use_included_regex)
592if test "$gdb_with_regex" = yes; then
593 AC_DEFINE(USE_INCLUDED_REGEX, 1,
594 [Define to 1 if the regex included in libiberty should be used.])
595fi
596
70f9f479
MK
597# See if <sys/proc.h> defines `struct thread' with a td_pcb member.
598AC_CACHE_CHECK([for td_pcb in struct thread], gdb_cv_struct_thread_td_pcb,
d15be926
MK
599[AC_TRY_COMPILE([#include <sys/param.h>
600#include <sys/proc.h>], [struct thread td; td.td_pcb;],
70f9f479
MK
601gdb_cv_struct_thread_td_pcb=yes, gdb_cv_struct_thread_td_pcb=no)])
602if test $gdb_cv_struct_thread_td_pcb = yes; then
603 AC_DEFINE(HAVE_STRUCT_THREAD_TD_PCB, 1,
604 [Define to 1 if your system has td_pcb in struct thread.])
605fi
606
da7d81e3
NW
607# See if <sys/lwp.h> defines `struct lwp`.
608AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
609[AC_TRY_COMPILE([#include <sys/param.h>
610#include <sys/lwp.h>], [struct lwp l;],
611gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
612if test $gdb_cv_struct_lwp = yes; then
613 AC_DEFINE(HAVE_STRUCT_LWP, 1,
614 [Define to 1 if your system has struct lwp.])
615fi
616
78434e59
MK
617# See if <machine/reg.h> degines `struct reg'.
618AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
619[AC_TRY_COMPILE([#include <sys/types.h>
620#include <machine/reg.h>], [struct reg r;],
621gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
622if test $gdb_cv_struct_reg = yes; then
623 AC_DEFINE(HAVE_STRUCT_REG, 1,
624 [Define to 1 if your system has struct reg in <machine/reg.h>.])
625fi
626
0afdd437 627# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
7dfa765c 628# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
422ea4b8 629AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
7dfa765c 630[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
422ea4b8
MK
631gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
632if test $gdb_cv_struct_reg_r_fs = yes; then
633 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
7dfa765c 634fi
422ea4b8 635AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
7dfa765c 636[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
422ea4b8
MK
637gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
638if test $gdb_cv_struct_reg_r_gs = yes; then
639 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
7dfa765c
MK
640fi
641
0afdd437 642# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
f60300e7
MK
643AC_MSG_CHECKING(for PTRACE_GETREGS)
644AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
645[AC_TRY_COMPILE([#include <sys/ptrace.h>],
646 [PTRACE_GETREGS;],
647 [gdb_cv_have_ptrace_getregs=yes],
648 [gdb_cv_have_ptrace_getregs=no])])
649AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
650if test $gdb_cv_have_ptrace_getregs = yes; then
651 AC_DEFINE(HAVE_PTRACE_GETREGS)
652fi
653
0afdd437 654# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
6ce2ac0b
MK
655AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
656AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
5c44784c 657[AC_TRY_COMPILE([#include <sys/ptrace.h>],
6ce2ac0b
MK
658 [PTRACE_GETFPXREGS;],
659 [gdb_cv_have_ptrace_getfpxregs=yes],
660 [gdb_cv_have_ptrace_getfpxregs=no])])
661AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
662if test $gdb_cv_have_ptrace_getfpxregs = yes; then
663 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
5c44784c
JM
664fi
665
0afdd437
MK
666# See if <sys/ptrace.h> provides the PT_GETDBREGS request.
667AC_MSG_CHECKING(for PT_GETDBREGS)
668AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
669[AC_TRY_COMPILE([#include <sys/types.h>
670#include <sys/ptrace.h>],
671 [PT_GETDBREGS;],
672 [gdb_cv_have_pt_getdbregs=yes],
673 [gdb_cv_have_pt_getdbregs=no])])
674AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
675if test $gdb_cv_have_pt_getdbregs = yes; then
676 AC_DEFINE(HAVE_PT_GETDBREGS)
677fi
678
7e89e357
JT
679# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
680AC_MSG_CHECKING(for PT_GETXMMREGS)
681AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
682[AC_TRY_COMPILE([#include <sys/types.h>
683#include <sys/ptrace.h>],
684 [PT_GETXMMREGS;],
685 [gdb_cv_have_pt_getxmmregs=yes],
686 [gdb_cv_have_pt_getxmmregs=no])])
687AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
688if test $gdb_cv_have_pt_getxmmregs = yes; then
689 AC_DEFINE(HAVE_PT_GETXMMREGS)
690fi
691
27ca5dad
MC
692# See if stdint.h provides the uintptr_t type.
693# Autoconf 2.5X has an improved AC_CHECK_TYPE which will simplify this.
694AC_CACHE_CHECK([for uintptr_t in stdint.h], gdb_cv_have_uintptr_t,
695 [AC_TRY_COMPILE(
696 [#include <stdint.h>],
697 [uintptr_t foo = 0;],
698 gdb_cv_have_uintptr_t=yes,
699 gdb_cv_have_uintptr_t=no)])
27ca5dad
MC
700if test $gdb_cv_have_uintptr_t = yes; then
701 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if <stdint.h> provides the uintptr_t type.])
702fi
0afdd437 703
c906108c
SS
704BFD_NEED_DECLARATION(malloc)
705BFD_NEED_DECLARATION(realloc)
706BFD_NEED_DECLARATION(free)
707BFD_NEED_DECLARATION(strerror)
708BFD_NEED_DECLARATION(strdup)
b83266a0 709BFD_NEED_DECLARATION(strstr)
a4db0f07 710BFD_NEED_DECLARATION(canonicalize_file_name)
c906108c 711
c906108c
SS
712# If we are configured native on GNU/Linux, work around problems with
713# sys/procfs.h
c3f6f71d 714# Also detect which type of /proc is in use, such as for Unixware or Solaris.
c906108c
SS
715
716if test "${target}" = "${host}"; then
717 case "${host}" in
718 i[[3456]]86-*-linux*)
719 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
720 AC_DEFINE(sys_quotactl)
721 ;;
596c9d4b
KB
722 ia64-*-aix*)
723 AC_DEFINE(NEW_PROC_API)
724 ;;
1045b512 725 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
c3f6f71d
JM
726 AC_DEFINE(NEW_PROC_API)
727 ;;
0bbc026e 728 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]])
c3f6f71d
JM
729 AC_DEFINE(NEW_PROC_API)
730 ;;
c960c18f
AC
731 mips-sgi-irix5*)
732 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
733 AC_DEFINE([_KMEMUSER], 1)
734 ;;
c906108c 735 esac
c906108c
SS
736fi
737
738if test "$ac_cv_header_sys_procfs_h" = yes; then
739 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
740 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
741 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
742 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
83d37ec8
MK
743 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
744 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
23e04971
MS
745 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
746 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
83d37ec8
MK
747 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
748 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
596c9d4b
KB
749 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
750 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
751 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
752 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
c906108c 753
23e04971 754
d84dd0c5
MK
755 dnl Check for broken prfpregset_t type
756
757 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
758 dnl prfpregset_t type (it's a typedef for the pointer to a struct
759 dnl instead of the struct itself). We detect this here, and work
a3007b6f 760 dnl around it in gdb_proc_service.h.
d84dd0c5
MK
761
762 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
763 AC_MSG_CHECKING(whether prfpregset_t type is broken)
764 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
765 [AC_TRY_RUN([#include <sys/procfs.h>
766 int main ()
767 {
768 if (sizeof (prfpregset_t) == sizeof (void *))
769 return 1;
770 return 0;
771 }],
772 gdb_cv_prfpregset_t_broken=no,
773 gdb_cv_prfpregset_t_broken=yes,
774 gdb_cv_prfpregset_t_broken=yes)])
775 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
776 if test $gdb_cv_prfpregset_t_broken = yes; then
777 AC_DEFINE(PRFPREGSET_T_BROKEN)
778 fi
779 fi
780
c906108c
SS
781 dnl Check for PIOCSET ioctl entry
782
783 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
784 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
785 [AC_TRY_COMPILE([#include <unistd.h>
786#include <sys/types.h>
787#include <sys/procfs.h>
788], [
789 int dummy;;
790 dummy = ioctl(0, PIOCSET, &dummy);
791 ],
792 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
793 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
794 if test $gdb_cv_have_procfs_piocset = yes; then
795 AC_DEFINE(HAVE_PROCFS_PIOCSET)
796 fi
797fi
798
d45fe813
KB
799dnl For native ports (host == target), check to see what kind of
800dnl legacy link.h support is needed. (See solib-legacy.c.)
801if test ${host} = ${target} ; then
802 dnl Check for struct link_map with l_ members which are indicative
803 dnl of SVR4-like shared libraries
804
805 AC_MSG_CHECKING(for member l_addr in struct link_map)
806 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
807 [AC_TRY_COMPILE([#include <link.h>],
808 [struct link_map lm; (void) lm.l_addr;],
809 gdb_cv_have_struct_link_map_with_l_members=yes,
810 gdb_cv_have_struct_link_map_with_l_members=no)])
811 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
812 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
813 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
814 fi
815
816 dnl Check for struct link_map with lm_ members which are indicative
817 dnl of SunOS-like shared libraries
818
819 AC_MSG_CHECKING(for member lm_addr in struct link_map)
820 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
821 [AC_TRY_COMPILE([#include <sys/types.h>
822#include <link.h>],
823 [struct link_map lm; (void) lm.lm_addr;],
824 gdb_cv_have_struct_link_map_with_lm_members=yes,
825 gdb_cv_have_struct_link_map_with_lm_members=no)])
826 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
827 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
828 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
829 fi
830
831 dnl Check for struct so_map with som_ members which are found on
832 dnl some *BSD systems.
833
834 AC_MSG_CHECKING(for member som_addr in struct so_map)
835 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
836 [AC_TRY_COMPILE([#include <sys/types.h>
39812ceb
C
837#ifdef HAVE_NLIST_H
838#include <nlist.h>
839#endif
d45fe813
KB
840#include <link.h>],
841 [struct so_map lm; (void) lm.som_addr;],
842 gdb_cv_have_struct_so_map_with_som_members=yes,
843 gdb_cv_have_struct_so_map_with_som_members=no)])
844 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
845 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
846 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
847 fi
848
849 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
850 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
851
852 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
853 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
854 [AC_TRY_COMPILE([#define _SYSCALL32
855#include <sys/link.h>], [struct link_map32 l;],
856 gdb_cv_have_struct_link_map32=yes,
857 gdb_cv_have_struct_link_map32=no)])
858 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
859 if test $gdb_cv_have_struct_link_map32 = yes; then
860 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
943c9c25 861 AC_DEFINE(_SYSCALL32)
d45fe813
KB
862 fi
863fi
864
bc8bcb4b
MK
865# Check if the compiler supports the `long long' type.
866
867AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
868 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
869[[extern long long foo;]],
870[[switch (foo & 2) { case 0: return 1; }]])],
871 gdb_cv_c_long_long=yes,
872 gdb_cv_c_long_long=no)])
c906108c 873if test $gdb_cv_c_long_long = yes; then
bc8bcb4b
MK
874 AC_DEFINE(CC_HAS_LONG_LONG, 1,
875 [Define to 1 if the compiler supports long long.])
c906108c
SS
876fi
877
bc8bcb4b 878# Check if the compiler and runtime support printing long longs.
c906108c 879
bc8bcb4b
MK
880AC_CACHE_CHECK([for long long support in printf],
881 gdb_cv_printf_has_long_long,
882 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
883[[char buf[32];
c906108c
SS
884 long long l = 0;
885 l = (l << 16) + 0x0123;
886 l = (l << 16) + 0x4567;
887 l = (l << 16) + 0x89ab;
888 l = (l << 16) + 0xcdef;
889 sprintf (buf, "0x%016llx", l);
bc8bcb4b
MK
890 return (strcmp ("0x0123456789abcdef", buf));]])],
891 gdb_cv_printf_has_long_long=yes,
892 gdb_cv_printf_has_long_long=no,
893 gdb_cv_printf_has_long_long=no)])
c906108c 894if test $gdb_cv_printf_has_long_long = yes; then
bc8bcb4b
MK
895 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
896 [Define to 1 if the "%ll" format works to print long longs.])
c906108c 897fi
c906108c 898
bc8bcb4b
MK
899# Check if the compiler supports the `long double' type. We can't use
900# AC_C_LONG_DOUBLE because that one does additional checks on the
901# constants defined in <float.h> that fail on some systems,
902# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
c906108c 903
bc8bcb4b
MK
904AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
905 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
906 gdb_cv_c_long_double=yes,
907 gdb_cv_c_long_double=no)])
908if test $gdb_cv_c_long_double = yes; then
909 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
910 [Define to 1 if the compiler supports long double.])
c906108c
SS
911fi
912
bc8bcb4b 913# Check if the compiler and runtime support printing long doubles.
c906108c 914
bc8bcb4b
MK
915AC_CACHE_CHECK([for long double support in printf],
916 gdb_cv_printf_has_long_double,
917 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
918[[char buf[16];
c906108c
SS
919 long double f = 3.141592653;
920 sprintf (buf, "%Lg", f);
bc8bcb4b
MK
921 return (strncmp ("3.14159", buf, 7));]])],
922 gdb_cv_printf_has_long_double=yes,
923 gdb_cv_printf_has_long_double=no,
924 gdb_cv_printf_has_long_double=no)])
c906108c 925if test $gdb_cv_printf_has_long_double = yes; then
bc8bcb4b
MK
926 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
927 [Define to 1 if the "%Lg" format works to print long doubles.])
c906108c 928fi
c906108c 929
bc8bcb4b 930# Check if the compiler and runtime support scanning long doubles.
c906108c 931
bc8bcb4b
MK
932AC_CACHE_CHECK([for long double support in scanf],
933 gdb_cv_scanf_has_long_double,
934 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
935[[#include <stdio.h>]],
936[[char *buf = "3.141592653";
c906108c
SS
937 long double f = 0;
938 sscanf (buf, "%Lg", &f);
bc8bcb4b
MK
939 return !(f > 3.14159 && f < 3.14160);]])],
940 gdb_cv_scanf_has_long_double=yes,
941 gdb_cv_scanf_has_long_double=no,
942 gdb_cv_scanf_has_long_double=no)])
c906108c 943if test $gdb_cv_scanf_has_long_double = yes; then
bc8bcb4b
MK
944 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
945 [Define to 1 if the "%Lg" format works to scan long doubles.])
c906108c 946fi
c906108c 947
438013df
AO
948case ${host_os} in
949aix*)
950 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
951 SAVE_LDFLAGS=$LDFLAGS
952
953 case $GCC in
954 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
955 *) gdb_cv_bigtoc=-bbigtoc ;;
956 esac
957
958 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
959 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
ec76baa5 960 LDFLAGS="${SAVE_LDFLAGS}"
438013df
AO
961 ])
962 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
963 ;;
964esac
965
c906108c 966
d92419e5
JB
967dnl For certain native configurations, we need to check whether thread
968dnl support can be built in or not.
969dnl
970dnl Note that we only want this if we are both native (host == target),
971dnl and not doing a canadian cross build (build == host).
c906108c
SS
972
973if test ${build} = ${host} -a ${host} = ${target} ; then
974 case ${host_os} in
975 hpux*)
976 AC_MSG_CHECKING(for HPUX/OSF thread support)
977 if test -f /usr/include/dce/cma_config.h ; then
978 if test "$GCC" = "yes" ; then
979 AC_MSG_RESULT(yes)
980 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
3483b318 981 CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
c906108c
SS
982 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
983 else
984 AC_MSG_RESULT(no (suppressed because you are not using GCC))
985 fi
986 else
987 AC_MSG_RESULT(no)
988 fi
989 ;;
990 solaris*)
d92419e5
JB
991 # See if thread_db library is around for Solaris thread debugging.
992 # Note that we must explicitly test for version 1 of the library
993 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
994 # the same API.
c906108c
SS
995 AC_MSG_CHECKING(for Solaris thread debugging library)
996 if test -f /usr/lib/libthread_db.so.1 ; then
997 AC_MSG_RESULT(yes)
998 AC_DEFINE(HAVE_THREAD_DB_LIB)
3483b318 999 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
c906108c
SS
1000 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1001 AC_CHECK_LIB(dl, dlopen)
1002 if test "$GCC" = "yes" ; then
1003 # The GNU linker requires the -export-dynamic option to make
1004 # all symbols visible in the dynamic symbol table.
1005 hold_ldflags=$LDFLAGS
1006 AC_MSG_CHECKING(for the ld -export-dynamic flag)
1007 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
1008 AC_TRY_LINK(, [int i;], found=yes, found=no)
1009 LDFLAGS=$hold_ldflags
1010 AC_MSG_RESULT($found)
1011 if test $found = yes; then
1012 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
1013 fi
1014 fi
1015 # Sun randomly tweaked the prototypes in <proc_service.h>
1016 # at one point.
1017 AC_MSG_CHECKING(if <proc_service.h> is old)
1018 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1019 AC_TRY_COMPILE([
1020 #include <proc_service.h>
1021 ps_err_e ps_pdwrite
1022 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1023 ],, gdb_cv_proc_service_is_old=no,
1024 gdb_cv_proc_service_is_old=yes)
1025 ])
1026 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1027 if test $gdb_cv_proc_service_is_old = yes; then
1028 AC_DEFINE(PROC_SERVICE_IS_OLD)
1029 fi
1030 else
1031 AC_MSG_RESULT(no)
1032 fi
1033 ;;
d92419e5
JB
1034 aix*)
1035 AC_MSG_CHECKING(for AiX thread debugging library)
1036 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1037 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1038 [#ifndef PTHDB_VERSION_3
1039 #error
1040 #endif],
1041 gdb_cv_have_aix_thread_debug=yes,
1042 gdb_cv_have_aix_thread_debug=no)])
1043 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1044 if test $gdb_cv_have_aix_thread_debug = yes; then
1045 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
3483b318 1046 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
d92419e5
JB
1047 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1048 fi
1049 ;;
c906108c
SS
1050 esac
1051 AC_SUBST(CONFIG_LDFLAGS)
1052fi
1053
3f47be5c
EZ
1054dnl See if we have a thread_db header file that has TD_NOTALLOC.
1055if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1056 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1057 gdb_cv_thread_db_h_has_td_notalloc,
1058 AC_TRY_COMPILE(
1059 [#include <thread_db.h>],
1060 [int i = TD_NOTALLOC;],
1061 gdb_cv_thread_db_h_has_td_notalloc=yes,
1062 gdb_cv_thread_db_h_has_td_notalloc=no
1063 )
1064 )
1065fi
1066if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1067 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1068 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1069fi
1070
b757528f
JJ
1071dnl See if we have a sys/syscall header file that has __NR_tkill.
1072if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1073 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1074 gdb_cv_sys_syscall_h_has_tkill,
1075 AC_TRY_COMPILE(
1076 [#include <sys/syscall.h>],
1077 [int i = __NR_tkill;],
1078 gdb_cv_sys_syscall_h_has_tkill=yes,
1079 gdb_cv_sys_syscall_h_has_tkill=no
1080 )
1081 )
1082fi
1083dnl See if we can issue tkill syscall.
1084if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1085 AC_DEFINE(HAVE_TKILL_SYSCALL, 1,
1086 [Define if we can use the tkill syscall.])
1087fi
1088
c906108c 1089dnl Handle optional features that can be enabled.
fb40c209 1090
030292b7
DJ
1091AC_ARG_WITH(sysroot,
1092[ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
1093[
1094 case ${with_sysroot} in
715d1656 1095 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
030292b7
DJ
1096 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1097 esac
1098
1099 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1100
1101 if test "x$exec_prefix" = xNONE; then
1102 if test "x$prefix" = xNONE; then
1103 test_prefix=/usr/local
1104 else
1105 test_prefix=$prefix
1106 fi
1107 else
1108 test_prefix=$exec_prefix
1109 fi
1110 case ${TARGET_SYSTEM_ROOT} in
715d1656
AO
1111 "${test_prefix}"|"${test_prefix}/"*|\
1112 '${exec_prefix}'|'${exec_prefix}/'*)
030292b7
DJ
1113 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
1114 TARGET_SYSTEM_ROOT_DEFINE="$t"
1115 ;;
1116 esac
1117], [
1118 TARGET_SYSTEM_ROOT=
1119 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1120])
1121AC_SUBST(TARGET_SYSTEM_ROOT)
1122AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1123
3b851bce
AC
1124# NOTE: Don't add -Wall or -Wunused, they both include
1125# -Wunused-parameter which reports bogus warnings.
1126# NOTE: If you add to this list, remember to update
1127# gdb/doc/gdbint.texinfo.
1decb323 1128build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
0f0cffd2 1129-Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral \
4566dfcf 1130-Wunused-label -Wunused-function"
d8038014 1131# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
0f0cffd2 1132# -Wunused-function -Wunused-variable -Wunused-value
93d56215 1133# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
d8038014
AC
1134# -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
1135# -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
1136# -Woverloaded-virtual -Winline -Werror"
c906108c
SS
1137AC_ARG_ENABLE(build-warnings,
1138[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1decb323 1139[case "${enableval}" in
c906108c
SS
1140 yes) ;;
1141 no) build_warnings="-w";;
1142 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1143 build_warnings="${build_warnings} ${t}";;
1144 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1145 build_warnings="${t} ${build_warnings}";;
1146 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
d4f3574e
SS
1147esac
1148if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
746a987d 1149 echo "Setting compiler warning flags = $build_warnings" 6>&1
1decb323 1150fi])dnl
3b851bce
AC
1151AC_ARG_ENABLE(gdb-build-warnings,
1152[ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1153[case "${enableval}" in
1154 yes) ;;
1155 no) build_warnings="-w";;
1156 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1157 build_warnings="${build_warnings} ${t}";;
1158 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1159 build_warnings="${t} ${build_warnings}";;
1160 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1161esac
1162if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1163 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1164fi])dnl
104c1213
JM
1165WARN_CFLAGS=""
1166WERROR_CFLAGS=""
c906108c
SS
1167if test "x${build_warnings}" != x -a "x$GCC" = xyes
1168then
746a987d
AC
1169 AC_MSG_CHECKING(compiler warning flags)
1170 # Separate out the -Werror flag as some files just cannot be
1171 # compiled with it enabled.
1172 for w in ${build_warnings}; do
1173 case $w in
1174 -Werr*) WERROR_CFLAGS=-Werror ;;
1175 *) # Check that GCC accepts it
4536bbc6
AC
1176 saved_CFLAGS="$CFLAGS"
1177 CFLAGS="$CFLAGS $w"
1178 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1179 CFLAGS="$saved_CFLAGS"
746a987d
AC
1180 esac
1181 done
1182 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
1decb323 1183fi
c906108c 1184AC_SUBST(WARN_CFLAGS)
104c1213 1185AC_SUBST(WERROR_CFLAGS)
c906108c 1186
7a292a7a
SS
1187# In the Cygwin environment, we need some additional flags.
1188AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1189[AC_EGREP_CPP(lose, [
1190#if defined (__CYGWIN__) || defined (__CYGWIN32__)
1191lose
1192#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1193
aff38e61
AC
1194
1195dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1196SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
1197case ${host} in
95cbc983
AC
1198 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1199 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
aff38e61
AC
1200esac
1201AC_SUBST(SER_HARDWIRE)
1202
cd0fc7c3
SS
1203# libreadline needs libuser32.a in a cygwin environment
1204WIN32LIBS=
1205if test x$gdb_cv_os_cygwin = xyes; then
c5394b80
JM
1206 WIN32LIBS="-luser32"
1207 case "${target}" in
1208 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1209 ;;
1210 esac
cd0fc7c3
SS
1211fi
1212AC_SUBST(WIN32LIBS)
7a292a7a 1213
3fc11d3e
JM
1214LIBGUI="../libgui/src/libgui.a"
1215GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1216AC_SUBST(LIBGUI)
1217AC_SUBST(GUI_CFLAGS_X)
7a292a7a 1218
3fc11d3e
JM
1219WIN32LDAPP=
1220AC_SUBST(WIN32LIBS)
1221AC_SUBST(WIN32LDAPP)
1222
d91670b9
CV
1223case "${host}" in
1224*-*-cygwin*)
1225 configdir="win"
1226 ;;
1227*)
1228 configdir="unix"
1229 ;;
1230esac
3fc11d3e
JM
1231
1232GDBTKLIBS=
1233if test "${enable_gdbtk}" = "yes"; then
1234
d1c3b63a
KS
1235 # Gdbtk must have an absolute path to srcdir in order to run
1236 # properly when not installed.
1237 here=`pwd`
1238 cd ${srcdir}
1239 GDBTK_SRC_DIR=`pwd`
1240 cd $here
1241
3fc11d3e
JM
1242 CY_AC_PATH_TCLCONFIG
1243 if test -z "${no_tcl}"; then
1244 CY_AC_LOAD_TCLCONFIG
1245 CY_AC_PATH_TKCONFIG
1246
dd2504ab
JM
1247 # now look for Tcl library stuff
1248
d91670b9 1249 tcldir="../tcl/${configdir}/"
dd2504ab
JM
1250
1251 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1252
3fc11d3e
JM
1253 # If $no_tk is nonempty, then we can't do Tk, and there is no
1254 # point to doing Tcl.
1255 if test -z "${no_tk}"; then
1256 CY_AC_LOAD_TKCONFIG
1257 CY_AC_PATH_TCLH
1258 CY_AC_PATH_TKH
1259 CY_AC_PATH_ITCLH
1260 CY_AC_PATH_ITKH
3fc11d3e 1261
dd2504ab
JM
1262
1263 # now look for Tk library stuff
1264
d91670b9 1265 tkdir="../tk/${configdir}/"
dd2504ab
JM
1266
1267 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1268
3fc11d3e
JM
1269 # now look for Itcl library stuff
1270
1271 CY_AC_PATH_ITCLCONFIG
1272 if test -z "${no_itcl}"; then
b381d62d 1273 CY_AC_LOAD_ITCLCONFIG
3fc11d3e
JM
1274
1275 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
b381d62d 1276 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
3fc11d3e
JM
1277 fi
1278
1279
1280 # now look for Itk library stuff
1281 CY_AC_PATH_ITKCONFIG
1282 if test -z "${no_itcl}"; then
1283 CY_AC_LOAD_ITKCONFIG
1284
3fc11d3e 1285 ITKLIB="${ITK_BUILD_LIB_SPEC}"
b381d62d 1286 ITK_DEPS="${ITK_LIB_FULL_PATH}"
3fc11d3e
JM
1287 fi
1288
4226a5a5 1289 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
3fc11d3e
JM
1290 # Tcl/Tk 8.1 require -fwritable strings. I don't
1291 # know whether 8.2 will or not, but I bet it will.
1292 # I don't have to worry about 7.x since we don't support it.
1293 GDBTK_CFLAGS=""
1294 if test "$GCC" = "yes"; then
1295 if test "$TCL_VERSION" != "8.0" ; then
1296 GDBTK_CFLAGS="-fwritable-strings"
1297 fi
1298 fi
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=""
1391 AC_DEFINE(WITH_SIM)
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"
b78960be 1514 AC_DEFINE_UNQUOTED(GDB_XM_FILE, "${GDB_XM_FILE}")
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"
b78960be 1528 AC_DEFINE_UNQUOTED(GDB_TM_FILE, "${GDB_TM_FILE}")
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"
b78960be 1542 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}")
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
This page took 0.80056 seconds and 4 git commands to generate.