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