]> Git Repo - binutils.git/blame - gdb/configure.in
Add do_pseudo_reloc and _pei386_runtime_relocator to the exclude list.
[binutils.git] / gdb / configure.in
CommitLineData
c906108c 1dnl Autoconf configure script for GDB, the GNU debugger.
9a156167 2dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
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
23AC_PREREQ(2.13)dnl
24AC_INIT(main.c)
25AC_CONFIG_HEADER(config.h:config.in)
413ccac7 26AM_MAINTAINER_MODE
c906108c
SS
27
28AC_PROG_CC
29AC_AIX
30AC_ISC_POSIX
31AM_PROG_CC_STDC
32
33AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
34AC_CANONICAL_SYSTEM
35
8bb2c122
MK
36# FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13
37# doesn't support cross-compilation, but the one from Autoconf 2.5x
38# does. Override RANLIB here (i.e. before running AC_PROG_RANLIB) to
39# deal with the lossage. Note that CY_GNU_GETTEXT currently calls
40# AC_PROG_RANLIB. This can be removed when we switch to # Autoconf
41# 2.5x.
42AC_CHECK_TOOL(RANLIB, ranlib, :)
43
0fbb3da7 44dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
c906108c
SS
45ALL_LINGUAS=
46CY_GNU_GETTEXT
0fbb3da7
TT
47AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
48
c906108c
SS
49
50dnl List of object files added by configure.
51
52CONFIG_OBS=
66b965bb 53CONFIG_LIB_OBS=
c906108c
SS
54CONFIG_DEPS=
55CONFIG_SRCS=
fb40c209
AC
56CONFIG_INITS=
57ENABLE_CFLAGS=
b3a90332
AC
58CONFIG_ALL=
59CONFIG_CLEAN=
e56ac5c3
AC
60CONFIG_INSTALL=
61CONFIG_UNINSTALL=
c906108c 62
ffc6a242 63SUBDIRS="doc testsuite nlm"
c906108c
SS
64configdirs="doc testsuite"
65
96baa820
JM
66AC_ARG_ENABLE(multi-ice,
67[ --enable-multi-ice Build the multi-ice-gdb-server],
68[case "${enableval}" in
69 yes ) enable_multi_ice="yes" ;;
70 no) enable_multi_ice="no" ;;
71 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
72 esac
73])
74
75if test "${enable_multi_ice}" = "yes"; then
76 configdirs="${configdirs} multi-ice"
77fi
78
c906108c
SS
79dnl
80changequote(,)dnl
81
82. ${srcdir}/configure.host
83
84. ${srcdir}/configure.tgt
85
1ba607ad
AC
86targ=${target} ; . ${srcdir}/../bfd/config.bfd
87
c906108c
SS
88dnl
89changequote([,])dnl
90
1ba607ad
AC
91dnl use BFD to determine the default architecture and byte order
92dnl (bfd_vec->byteorder provides the latter).
93targ=${target}
94. ${srcdir}/../bfd/config.bfd
5c8cc331
AC
95
96dnl We only want the first arch, if there is more than one.
97targ_archs=`echo ${targ_archs} | sed -e 's/ .*//;'`
98
1ba607ad
AC
99if test x"${targ_archs}" != x ; then
100 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, ${targ_archs})
101fi
102if test x"${targ_defvec}" != x ; then
103 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, ${targ_defvec})
104fi
105
8bb2c122
MK
106AC_ARG_PROGRAM
107
108# --------------------- #
109# Checks for programs. #
110# --------------------- #
111
7a292a7a 112AC_PROG_AWK
c906108c 113AC_PROG_INSTALL
8bb2c122
MK
114AC_PROG_LN_S
115AC_PROG_RANLIB
116AC_PROG_YACC
117
c906108c 118AC_CHECK_TOOL(AR, ar)
95ca63c4
CF
119AC_CHECK_TOOL(DLLTOOL, dlltool)
120AC_CHECK_TOOL(WINDRES, windres)
c906108c 121
8bb2c122 122# Needed for GNU/Hurd.
75c6e08a
MK
123AC_CHECK_TOOL(MIG, mig)
124
9a156167
MK
125# ---------------------- #
126# Checks for libraries. #
127# ---------------------- #
128
129# We might need to link with -lm; most simulators need it.
130AC_CHECK_LIB(m, main)
131
132# We need to link with -lw to get `wctype' on Solaris before Solaris
133# 2.6. Solaris 2.6 and beyond have this function in libc, and have a
134# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
135# is known to have this problem). Therefore we avoid libw if we can.
136AC_CHECK_FUNC(wctype, [],
137 [AC_CHECK_LIB(w, wctype)])
138
139# Some systems (e.g. Solaris) have `socketpair' in libsocket.
140AC_SEARCH_LIBS(socketpair, socket)
141
c906108c
SS
142AC_TYPE_SIGNAL
143
9608ab8b 144AC_HEADER_DIRENT
c906108c
SS
145AC_HEADER_STDC
146
6abadcf8
ND
147dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
148dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
149dnl exist.
150
3e0bf9f1 151case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
6abadcf8
ND
152 AC_DEFINE(_MSE_INT_H)
153esac; esac
154
9299404e 155AC_CHECK_HEADERS(ctype.h nlist.h link.h thread_db.h proc_service.h \
c906108c 156 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
f15f768e 157 string.h sys/procfs.h sys/proc.h sys/ptrace.h sys/reg.h stdint.h \
c906108c 158 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
104c1213 159 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
596c9d4b 160 time.h sys/file.h sys/ioctl.h sys/user.h sys/fault.h sys/syscall.h \
9608ab8b 161 sys/filio.h \
409a3f64
AC
162 curses.h ncurses.h \
163 poll.h sys/poll.h)
c906108c
SS
164AC_HEADER_STAT
165
166AC_C_CONST
bce58c09 167AC_C_INLINE
c906108c 168
3250596b 169AC_CHECK_FUNCS(btowc canonicalize_file_name isascii poll \
27aac7ff 170 realpath sbrk setpgid setpgrp sigaction sigprocmask sigsetmask )
c906108c 171AC_FUNC_ALLOCA
46711df8 172AC_FUNC_VFORK
72473524
DJ
173dnl AC_FUNC_SETPGRP does not work when cross compiling
174dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
175if test "$cross_compiling" = no; then
176 AC_FUNC_SETPGRP
177else
178 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
179 [AC_TRY_COMPILE([
180#include <unistd.h>
181], [
182 if (setpgrp(1,1) == -1)
183 exit (0);
184 else
185 exit (1);
186], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
187if test $ac_cv_func_setpgrp_void = yes; then
188 AC_DEFINE(SETPGRP_VOID, 1)
189fi
190fi
c906108c 191
2b2d558c
MK
192# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
193# since sigsetjmp might only be defined as a macro.
194AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
195[AC_TRY_COMPILE([
196#include <setjmp.h>
197], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
198gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
199if test $gdb_cv_func_sigsetjmp = yes; then
200 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
201fi
202
0afdd437 203# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
7dfa765c 204# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
422ea4b8 205AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
7dfa765c 206[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
422ea4b8
MK
207gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
208if test $gdb_cv_struct_reg_r_fs = yes; then
209 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
7dfa765c 210fi
422ea4b8 211AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
7dfa765c 212[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
422ea4b8
MK
213gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
214if test $gdb_cv_struct_reg_r_gs = yes; then
215 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
7dfa765c
MK
216fi
217
0afdd437 218# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
f60300e7
MK
219AC_MSG_CHECKING(for PTRACE_GETREGS)
220AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
221[AC_TRY_COMPILE([#include <sys/ptrace.h>],
222 [PTRACE_GETREGS;],
223 [gdb_cv_have_ptrace_getregs=yes],
224 [gdb_cv_have_ptrace_getregs=no])])
225AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
226if test $gdb_cv_have_ptrace_getregs = yes; then
227 AC_DEFINE(HAVE_PTRACE_GETREGS)
228fi
229
0afdd437 230# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
6ce2ac0b
MK
231AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
232AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
5c44784c 233[AC_TRY_COMPILE([#include <sys/ptrace.h>],
6ce2ac0b
MK
234 [PTRACE_GETFPXREGS;],
235 [gdb_cv_have_ptrace_getfpxregs=yes],
236 [gdb_cv_have_ptrace_getfpxregs=no])])
237AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
238if test $gdb_cv_have_ptrace_getfpxregs = yes; then
239 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
5c44784c
JM
240fi
241
0afdd437
MK
242# See if <sys/ptrace.h> provides the PT_GETDBREGS request.
243AC_MSG_CHECKING(for PT_GETDBREGS)
244AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
245[AC_TRY_COMPILE([#include <sys/types.h>
246#include <sys/ptrace.h>],
247 [PT_GETDBREGS;],
248 [gdb_cv_have_pt_getdbregs=yes],
249 [gdb_cv_have_pt_getdbregs=no])])
250AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
251if test $gdb_cv_have_pt_getdbregs = yes; then
252 AC_DEFINE(HAVE_PT_GETDBREGS)
253fi
254
7e89e357
JT
255# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
256AC_MSG_CHECKING(for PT_GETXMMREGS)
257AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
258[AC_TRY_COMPILE([#include <sys/types.h>
259#include <sys/ptrace.h>],
260 [PT_GETXMMREGS;],
261 [gdb_cv_have_pt_getxmmregs=yes],
262 [gdb_cv_have_pt_getxmmregs=no])])
263AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
264if test $gdb_cv_have_pt_getxmmregs = yes; then
265 AC_DEFINE(HAVE_PT_GETXMMREGS)
266fi
267
0afdd437 268
7be570e7
JM
269AC_CHECK_FUNCS(socketpair)
270
271
c906108c
SS
272BFD_NEED_DECLARATION(malloc)
273BFD_NEED_DECLARATION(realloc)
274BFD_NEED_DECLARATION(free)
275BFD_NEED_DECLARATION(strerror)
276BFD_NEED_DECLARATION(strdup)
b83266a0 277BFD_NEED_DECLARATION(strstr)
a4db0f07 278BFD_NEED_DECLARATION(canonicalize_file_name)
c906108c
SS
279
280# The following save_state_t checkery is only necessary for HPUX
281# versions earlier than 10.20. When those fade from memory, this
282# could be expunged. --jsm 1999-03-22
283
284AC_MSG_CHECKING(for HPUX save_state structure)
285AC_EGREP_HEADER(save_state_t, machine/save_state.h,
286 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
287AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
288 gdb_cv_hpux_sswide=no)
289if test $gdb_cv_hpux_savestate = yes
290then
291 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
292fi
293if test $gdb_cv_hpux_sswide = yes
294then
295 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
296fi
297AC_MSG_RESULT($gdb_cv_hpux_sswide)
298
299
300# If we are configured native on GNU/Linux, work around problems with
301# sys/procfs.h
c3f6f71d 302# Also detect which type of /proc is in use, such as for Unixware or Solaris.
c906108c
SS
303
304if test "${target}" = "${host}"; then
305 case "${host}" in
306 i[[3456]]86-*-linux*)
307 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
308 AC_DEFINE(sys_quotactl)
309 ;;
596c9d4b
KB
310 ia64-*-aix*)
311 AC_DEFINE(NEW_PROC_API)
312 ;;
1045b512 313 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
c3f6f71d
JM
314 AC_DEFINE(NEW_PROC_API)
315 ;;
3423db82 316 *-*-solaris2.[[678]])
c3f6f71d
JM
317 AC_DEFINE(NEW_PROC_API)
318 ;;
c906108c 319 esac
c906108c
SS
320fi
321
322if test "$ac_cv_header_sys_procfs_h" = yes; then
323 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
324 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
325 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
326 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
83d37ec8
MK
327 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
328 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
23e04971
MS
329 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
330 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
83d37ec8
MK
331 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
332 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
596c9d4b
KB
333 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
334 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
335 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
336 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
c906108c 337
23e04971 338
d84dd0c5
MK
339 dnl Check for broken prfpregset_t type
340
341 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
342 dnl prfpregset_t type (it's a typedef for the pointer to a struct
343 dnl instead of the struct itself). We detect this here, and work
a3007b6f 344 dnl around it in gdb_proc_service.h.
d84dd0c5
MK
345
346 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
347 AC_MSG_CHECKING(whether prfpregset_t type is broken)
348 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
349 [AC_TRY_RUN([#include <sys/procfs.h>
350 int main ()
351 {
352 if (sizeof (prfpregset_t) == sizeof (void *))
353 return 1;
354 return 0;
355 }],
356 gdb_cv_prfpregset_t_broken=no,
357 gdb_cv_prfpregset_t_broken=yes,
358 gdb_cv_prfpregset_t_broken=yes)])
359 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
360 if test $gdb_cv_prfpregset_t_broken = yes; then
361 AC_DEFINE(PRFPREGSET_T_BROKEN)
362 fi
363 fi
364
c906108c
SS
365 dnl Check for PIOCSET ioctl entry
366
367 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
368 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
369 [AC_TRY_COMPILE([#include <unistd.h>
370#include <sys/types.h>
371#include <sys/procfs.h>
372], [
373 int dummy;;
374 dummy = ioctl(0, PIOCSET, &dummy);
375 ],
376 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
377 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
378 if test $gdb_cv_have_procfs_piocset = yes; then
379 AC_DEFINE(HAVE_PROCFS_PIOCSET)
380 fi
381fi
382
d45fe813
KB
383dnl For native ports (host == target), check to see what kind of
384dnl legacy link.h support is needed. (See solib-legacy.c.)
385if test ${host} = ${target} ; then
386 dnl Check for struct link_map with l_ members which are indicative
387 dnl of SVR4-like shared libraries
388
389 AC_MSG_CHECKING(for member l_addr in struct link_map)
390 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
391 [AC_TRY_COMPILE([#include <link.h>],
392 [struct link_map lm; (void) lm.l_addr;],
393 gdb_cv_have_struct_link_map_with_l_members=yes,
394 gdb_cv_have_struct_link_map_with_l_members=no)])
395 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
396 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
397 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
398 fi
399
400 dnl Check for struct link_map with lm_ members which are indicative
401 dnl of SunOS-like shared libraries
402
403 AC_MSG_CHECKING(for member lm_addr in struct link_map)
404 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
405 [AC_TRY_COMPILE([#include <sys/types.h>
406#include <link.h>],
407 [struct link_map lm; (void) lm.lm_addr;],
408 gdb_cv_have_struct_link_map_with_lm_members=yes,
409 gdb_cv_have_struct_link_map_with_lm_members=no)])
410 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
411 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
412 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
413 fi
414
415 dnl Check for struct so_map with som_ members which are found on
416 dnl some *BSD systems.
417
418 AC_MSG_CHECKING(for member som_addr in struct so_map)
419 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
420 [AC_TRY_COMPILE([#include <sys/types.h>
39812ceb
C
421#ifdef HAVE_NLIST_H
422#include <nlist.h>
423#endif
d45fe813
KB
424#include <link.h>],
425 [struct so_map lm; (void) lm.som_addr;],
426 gdb_cv_have_struct_so_map_with_som_members=yes,
427 gdb_cv_have_struct_so_map_with_som_members=no)])
428 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
429 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
430 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
431 fi
432
433 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
434 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
435
436 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
437 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
438 [AC_TRY_COMPILE([#define _SYSCALL32
439#include <sys/link.h>], [struct link_map32 l;],
440 gdb_cv_have_struct_link_map32=yes,
441 gdb_cv_have_struct_link_map32=no)])
442 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
443 if test $gdb_cv_have_struct_link_map32 = yes; then
444 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
943c9c25 445 AC_DEFINE(_SYSCALL32)
d45fe813
KB
446 fi
447fi
448
c906108c
SS
449dnl See if compiler supports "long long" type.
450
451AC_MSG_CHECKING(for long long support in compiler)
452AC_CACHE_VAL(gdb_cv_c_long_long,
453[AC_TRY_COMPILE(, [
454 extern long long foo;
455 switch (foo & 2) { case 0: return 1; }
456],
457gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
458AC_MSG_RESULT($gdb_cv_c_long_long)
459if test $gdb_cv_c_long_long = yes; then
460 AC_DEFINE(CC_HAS_LONG_LONG)
461fi
462
463dnl See if the compiler and runtime support printing long long
464
465AC_MSG_CHECKING(for long long support in printf)
466AC_CACHE_VAL(gdb_cv_printf_has_long_long,
467[AC_TRY_RUN([
468int main () {
469 char buf[32];
470 long long l = 0;
471 l = (l << 16) + 0x0123;
472 l = (l << 16) + 0x4567;
473 l = (l << 16) + 0x89ab;
474 l = (l << 16) + 0xcdef;
475 sprintf (buf, "0x%016llx", l);
476 return (strcmp ("0x0123456789abcdef", buf));
477}],
478gdb_cv_printf_has_long_long=yes,
479gdb_cv_printf_has_long_long=no,
480gdb_cv_printf_has_long_long=no)])
481if test $gdb_cv_printf_has_long_long = yes; then
482 AC_DEFINE(PRINTF_HAS_LONG_LONG)
483fi
484AC_MSG_RESULT($gdb_cv_printf_has_long_long)
485
486dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
487dnl because autoconf complains about cross-compilation issues. However, this
488dnl code uses the same variables as the macro for compatibility.
489
490AC_MSG_CHECKING(for long double support in compiler)
491AC_CACHE_VAL(ac_cv_c_long_double,
492[AC_TRY_COMPILE(, [long double foo;],
493ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
494AC_MSG_RESULT($ac_cv_c_long_double)
495if test $ac_cv_c_long_double = yes; then
496 AC_DEFINE(HAVE_LONG_DOUBLE)
497fi
498
499dnl See if the compiler and runtime support printing long doubles
500
501AC_MSG_CHECKING(for long double support in printf)
502AC_CACHE_VAL(gdb_cv_printf_has_long_double,
503[AC_TRY_RUN([
504int main () {
505 char buf[16];
506 long double f = 3.141592653;
507 sprintf (buf, "%Lg", f);
508 return (strncmp ("3.14159", buf, 7));
509}],
510gdb_cv_printf_has_long_double=yes,
511gdb_cv_printf_has_long_double=no,
512gdb_cv_printf_has_long_double=no)])
513if test $gdb_cv_printf_has_long_double = yes; then
514 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
515fi
516AC_MSG_RESULT($gdb_cv_printf_has_long_double)
517
518dnl See if the compiler and runtime support scanning long doubles
519
520AC_MSG_CHECKING(for long double support in scanf)
521AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
522[AC_TRY_RUN([
523int main () {
524 char *buf = "3.141592653";
525 long double f = 0;
526 sscanf (buf, "%Lg", &f);
527 return !(f > 3.14159 && f < 3.14160);
528}],
529gdb_cv_scanf_has_long_double=yes,
530gdb_cv_scanf_has_long_double=no,
531gdb_cv_scanf_has_long_double=no)])
532if test $gdb_cv_scanf_has_long_double = yes; then
533 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
534fi
535AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
536
537AC_FUNC_MMAP
538
438013df
AO
539case ${host_os} in
540aix*)
541 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
542 SAVE_LDFLAGS=$LDFLAGS
543
544 case $GCC in
545 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
546 *) gdb_cv_bigtoc=-bbigtoc ;;
547 esac
548
549 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
550 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
551 ])
552 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
553 ;;
554esac
555
c906108c 556
d92419e5
JB
557dnl For certain native configurations, we need to check whether thread
558dnl support can be built in or not.
559dnl
560dnl Note that we only want this if we are both native (host == target),
561dnl and not doing a canadian cross build (build == host).
c906108c
SS
562
563if test ${build} = ${host} -a ${host} = ${target} ; then
564 case ${host_os} in
565 hpux*)
566 AC_MSG_CHECKING(for HPUX/OSF thread support)
567 if test -f /usr/include/dce/cma_config.h ; then
568 if test "$GCC" = "yes" ; then
569 AC_MSG_RESULT(yes)
570 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
66b965bb 571 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
c906108c
SS
572 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
573 else
574 AC_MSG_RESULT(no (suppressed because you are not using GCC))
575 fi
576 else
577 AC_MSG_RESULT(no)
578 fi
579 ;;
580 solaris*)
d92419e5
JB
581 # See if thread_db library is around for Solaris thread debugging.
582 # Note that we must explicitly test for version 1 of the library
583 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
584 # the same API.
c906108c
SS
585 AC_MSG_CHECKING(for Solaris thread debugging library)
586 if test -f /usr/lib/libthread_db.so.1 ; then
587 AC_MSG_RESULT(yes)
588 AC_DEFINE(HAVE_THREAD_DB_LIB)
66b965bb 589 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
c906108c
SS
590 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
591 AC_CHECK_LIB(dl, dlopen)
592 if test "$GCC" = "yes" ; then
593 # The GNU linker requires the -export-dynamic option to make
594 # all symbols visible in the dynamic symbol table.
595 hold_ldflags=$LDFLAGS
596 AC_MSG_CHECKING(for the ld -export-dynamic flag)
597 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
598 AC_TRY_LINK(, [int i;], found=yes, found=no)
599 LDFLAGS=$hold_ldflags
600 AC_MSG_RESULT($found)
601 if test $found = yes; then
602 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
603 fi
604 fi
605 # Sun randomly tweaked the prototypes in <proc_service.h>
606 # at one point.
607 AC_MSG_CHECKING(if <proc_service.h> is old)
608 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
609 AC_TRY_COMPILE([
610 #include <proc_service.h>
611 ps_err_e ps_pdwrite
612 (struct ps_prochandle*, psaddr_t, const void*, size_t);
613 ],, gdb_cv_proc_service_is_old=no,
614 gdb_cv_proc_service_is_old=yes)
615 ])
616 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
617 if test $gdb_cv_proc_service_is_old = yes; then
618 AC_DEFINE(PROC_SERVICE_IS_OLD)
619 fi
620 else
621 AC_MSG_RESULT(no)
622 fi
623 ;;
d92419e5
JB
624 aix*)
625 AC_MSG_CHECKING(for AiX thread debugging library)
626 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
627 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
628 [#ifndef PTHDB_VERSION_3
629 #error
630 #endif],
631 gdb_cv_have_aix_thread_debug=yes,
632 gdb_cv_have_aix_thread_debug=no)])
633 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
634 if test $gdb_cv_have_aix_thread_debug = yes; then
635 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
636 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
637 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
638 fi
639 ;;
c906108c
SS
640 esac
641 AC_SUBST(CONFIG_LDFLAGS)
642fi
643
3f47be5c
EZ
644dnl See if we have a thread_db header file that has TD_NOTALLOC.
645if test "x$ac_cv_header_thread_db_h" = "xyes"; then
646 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
647 gdb_cv_thread_db_h_has_td_notalloc,
648 AC_TRY_COMPILE(
649 [#include <thread_db.h>],
650 [int i = TD_NOTALLOC;],
651 gdb_cv_thread_db_h_has_td_notalloc=yes,
652 gdb_cv_thread_db_h_has_td_notalloc=no
653 )
654 )
655fi
656if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
657 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
658 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
659fi
660
eb784848
DJ
661dnl linux-proc.c wants to use pread64, which may require special CFLAGS
662dnl -D_BSD_SOURCE is normally assumed but we have to specify it because of
663dnl -D_XOPEN_SOURCE=500.
664if test $host = $target; then
665 case $target in
666 *-linux*)
667 save_CFLAGS=$CFLAGS
668 CFLAGS="$CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
669 AC_TRY_LINK([#include <unistd.h>],
670 [pread64 (0, NULL, 0, 0);],
671 [ENABLE_CFLAGS="$ENABLE_CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
672 AC_DEFINE(HAVE_PREAD64)], [])
673 CFLAGS=$save_CFLAGS
674 ;;
675 esac
676fi
677
d318976c
FN
678dnl The CLI cannot be disabled yet, but may be in the future
679
680dnl Handle CLI sub-directory configury.
681AC_ARG_ENABLE(gdbcli,
682[ --enable-gdbcli Enable GDB-CLI interface],
683[
6bad8db2
FN
684 case "${enableval}" in
685 yes) enable_gdbcli=yes ;;
686 "") enable_gdbcli=yes ;;
d318976c
FN
687 no)
688 AC_MSG_ERROR(The CLI cannot be disabled yet)
689 ;;
690 *)
6bad8db2 691 AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
d318976c
FN
692 ;;
693 esac
694],
695[enable_gdbcli=yes])
696case ${enable_gdbcli} in
697 "yes" )
6bad8db2 698 if test -d "${srcdir}/cli" ; then
d318976c
FN
699 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
700 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
486697a0 701 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
d318976c
FN
702 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
703 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
704 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
705 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
706 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
707 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
708 fi
709 ;;
710esac
711
c906108c 712dnl Handle optional features that can be enabled.
fb40c209
AC
713
714dnl Handle MI sub-directory configury.
715AC_ARG_ENABLE(gdbmi,
716[ --enable-gdbmi Enable GDB-MI interface],
717[
718 case "${enable_gdbmi}" in
719 yes | no) ;;
720 "") enable_gdbmi=yes ;;
721 *)
722 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
723 ;;
724 esac
b0e2e90a
AC
725],
726[enable_gdbmi=yes])
fb40c209
AC
727case ${enable_gdbmi} in
728 "yes" )
729 if test -d "${srcdir}/mi" ; then
730 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
731 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
486697a0 732 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
fb40c209 733 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
b0b1b869 734 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
b3a90332
AC
735 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
736 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
e56ac5c3
AC
737 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
738 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
fb40c209
AC
739 fi
740 ;;
741esac
c906108c 742
b4df4f68
FN
743# Configure UI_OUT by default (before 5.2 it can be disabled)
744# It must be configured if gdbmi is configured
745
746UIOUT_CFLAGS=
747AC_SUBST(UIOUT_CFLAGS)
748
749AC_ARG_WITH(uiout,
6c5cfe5b 750[ --with-uiout Use new uiout functions instead of *printf's],
b4df4f68
FN
751[case "${withval}" in
752 yes) want_uiout=true ;;
753 no) if test $enable_gdbmi = yes; then
754 AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
755 else
756 want_uiout=false
757 fi ;;
758 *) AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
759esac],
760[want_uiout=true])dnl
761
762if test $want_uiout = true; then
763 UIOUT_CFLAGS="-DUI_OUT=1"
764fi
765
c906108c
SS
766AC_ARG_ENABLE(tui,
767[ --enable-tui Enable full-screen terminal user interface],
768[
769 case "${enable_tui}" in
770 yes | no) ;;
771 "") enable_tui=yes ;;
772 *)
773 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
774 ;;
775 esac
776])
777case ${enable_tui} in
778 "yes" )
ed952ac5
AC
779 if test -d "${srcdir}/tui" ; then
780 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
781 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
486697a0 782 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
ed952ac5
AC
783 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
784 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
785 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
786 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
787 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
788 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
789 fi
790 ;;
c906108c 791esac
c906108c
SS
792
793AC_ARG_ENABLE(netrom,
794[ --enable-netrom Enable NetROM support],
795[case "${enableval}" in
796yes) enable_netrom=yes ;;
797no) enable_netrom=no ;;
798*) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
799esac])
800
801if test "${enable_netrom}" = "yes"; then
66b965bb 802 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
c906108c
SS
803 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
804fi
805
1decb323 806
3b851bce
AC
807# NOTE: Don't add -Wall or -Wunused, they both include
808# -Wunused-parameter which reports bogus warnings.
809# NOTE: If you add to this list, remember to update
810# gdb/doc/gdbint.texinfo.
1decb323 811build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
93d56215 812-Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
d8038014
AC
813# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
814# -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
93d56215 815# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
d8038014
AC
816# -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
817# -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
818# -Woverloaded-virtual -Winline -Werror"
c906108c
SS
819AC_ARG_ENABLE(build-warnings,
820[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1decb323 821[case "${enableval}" in
c906108c
SS
822 yes) ;;
823 no) build_warnings="-w";;
824 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
825 build_warnings="${build_warnings} ${t}";;
826 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
827 build_warnings="${t} ${build_warnings}";;
828 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
d4f3574e
SS
829esac
830if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
746a987d 831 echo "Setting compiler warning flags = $build_warnings" 6>&1
1decb323 832fi])dnl
3b851bce
AC
833AC_ARG_ENABLE(gdb-build-warnings,
834[ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
835[case "${enableval}" in
836 yes) ;;
837 no) build_warnings="-w";;
838 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
839 build_warnings="${build_warnings} ${t}";;
840 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
841 build_warnings="${t} ${build_warnings}";;
842 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
843esac
844if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
845 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
846fi])dnl
104c1213
JM
847WARN_CFLAGS=""
848WERROR_CFLAGS=""
c906108c
SS
849if test "x${build_warnings}" != x -a "x$GCC" = xyes
850then
746a987d
AC
851 AC_MSG_CHECKING(compiler warning flags)
852 # Separate out the -Werror flag as some files just cannot be
853 # compiled with it enabled.
854 for w in ${build_warnings}; do
855 case $w in
856 -Werr*) WERROR_CFLAGS=-Werror ;;
857 *) # Check that GCC accepts it
4536bbc6
AC
858 saved_CFLAGS="$CFLAGS"
859 CFLAGS="$CFLAGS $w"
860 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
861 CFLAGS="$saved_CFLAGS"
746a987d
AC
862 esac
863 done
864 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
1decb323 865fi
c906108c 866AC_SUBST(WARN_CFLAGS)
104c1213 867AC_SUBST(WERROR_CFLAGS)
c906108c
SS
868
869MMALLOC_CFLAGS=
870MMALLOC=
871AC_SUBST(MMALLOC_CFLAGS)
872AC_SUBST(MMALLOC)
873
874AC_ARG_WITH(mmalloc,
875[ --with-mmalloc Use memory mapped malloc package],
876[case "${withval}" in
877 yes) want_mmalloc=true ;;
878 no) want_mmalloc=false;;
879 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
880esac],[want_mmalloc=false])dnl
881
882if test x$want_mmalloc = xtrue; then
883 AC_DEFINE(USE_MMALLOC)
884 AC_DEFINE(MMCHECK_FORCE)
885 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
886 MMALLOC='../mmalloc/libmmalloc.a'
887fi
888
88987551
L
889AC_ARG_WITH(included-regex,
890[ --with-included-regex Use included regex],
891[case "${withval}" in
892 yes) want_included_regex=true ;;
893 no) want_included_regex=false;;
894 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
895esac],[want_included_regex=true])dnl
896
88987551
L
897if test $want_included_regex = false; then
898 AC_MSG_CHECKING(for GNU regex)
899 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
900[AC_TRY_COMPILE([#include <gnu-versions.h>
901#include <sys/types.h>
902#include <regex.h>],
903[#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
904#error No valid GNU regex.
905#endif
906],
907 [gdb_cv_have_gnu_regex=yes],
908 [gdb_cv_have_gnu_regex=no])])
909 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
e48f66e4
AC
910 if test $gdb_cv_have_gnu_regex = no; then
911 want_included_regex=true
88987551
L
912 fi
913fi
e48f66e4
AC
914
915if test x${want_included_regex} = xtrue; then
916 REGEX="gnu-regex.o"
917 AC_DEFINE(USE_INCLUDED_REGEX)
918fi
88987551 919AC_SUBST(REGEX)
7a292a7a
SS
920
921# In the Cygwin environment, we need some additional flags.
922AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
923[AC_EGREP_CPP(lose, [
924#if defined (__CYGWIN__) || defined (__CYGWIN32__)
925lose
926#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
927
aff38e61
AC
928
929dnl Figure out which of the many generic ser-*.c files the _host_ supports.
930SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
931case ${host} in
95cbc983
AC
932 *go32* ) SER_HARDWIRE=ser-go32.o ;;
933 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
aff38e61
AC
934esac
935AC_SUBST(SER_HARDWIRE)
936
937
c906108c 938dnl Figure out which term library to use.
b83266a0
SS
939if test x$gdb_host = xgo32; then
940 TERM_LIB=
941else
c906108c
SS
942if test x$gdb_cv_os_cygwin = xyes; then
943 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
944else
945 TERM_LIB=
946 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
947 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
948 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
949 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
950 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
951 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
952
953 if test "x$TERM_LIB" = x
954 then
955 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
956 fi
957fi
b83266a0 958fi
c906108c
SS
959AC_SUBST(TERM_LIB)
960
cd0fc7c3
SS
961# libreadline needs libuser32.a in a cygwin environment
962WIN32LIBS=
963if test x$gdb_cv_os_cygwin = xyes; then
c5394b80
JM
964 WIN32LIBS="-luser32"
965 case "${target}" in
966 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
967 ;;
968 esac
cd0fc7c3
SS
969fi
970AC_SUBST(WIN32LIBS)
7a292a7a 971
3fc11d3e
JM
972LIBGUI="../libgui/src/libgui.a"
973GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
974AC_SUBST(LIBGUI)
975AC_SUBST(GUI_CFLAGS_X)
7a292a7a 976
8b93c638
JM
977AC_ARG_WITH(cpu,
978[ --with-cpu=CPU Set the default CPU variant to debug],
979[case "${target}" in
980 powerpc-* | powerpcle-* )
981 ## It would be nice to keep this table in sync with the one in
982 ## gcc/configure.
983 case "${with_cpu}" in
984 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
985 | 604 | 750 )
986 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
987 ;;
988 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
989 ## These are all RS6000 variants, as far as GDB is concerned.
990 with_cpu=rs6000
991 ;;
992 603e | ec603e )
993 with_cpu=603
994 ;;
995 604e )
996 with_cpu=604
997 ;;
998 * )
999 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
1000 with_cpu=ppc-uisa
1001 ;;
1002 esac
1003 ;;
1004 * )
1005 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
1006 ;;
1007esac
1008AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
1009],)
1010
1011
3fc11d3e
JM
1012AC_ARG_ENABLE(gdbtk,
1013[ --enable-gdbtk Enable GDBTK GUI front end],
1014[case "${enableval}" in
1015 yes)
1016 case "$host" in
1017 *go32*)
1018 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1019 enable_gdbtk=no ;;
1020 *windows*)
1021 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1022 enable_gdbtk=no ;;
1023 *)
1024 enable_gdbtk=yes ;;
1025 esac ;;
1026 no)
1027 enable_gdbtk=no ;;
1028 *)
1029 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
1030esac],
1031[
1032# Default is on for everything but go32 and Cygwin
1033case "$host" in
1034 *go32* | *windows*)
1035 ;;
1036 *)
379d6434
AC
1037 if test -d "${srcdir}/gdbtk" ; then
1038 enable_gdbtk=yes
1039 fi
1040 ;;
1041esac
3fc11d3e
JM
1042])
1043
1044WIN32LDAPP=
1045AC_SUBST(WIN32LIBS)
1046AC_SUBST(WIN32LDAPP)
1047
1048configdir="unix"
1049
1050GDBTKLIBS=
1051if test "${enable_gdbtk}" = "yes"; then
1052
d1c3b63a
KS
1053 # Gdbtk must have an absolute path to srcdir in order to run
1054 # properly when not installed.
1055 here=`pwd`
1056 cd ${srcdir}
1057 GDBTK_SRC_DIR=`pwd`
1058 cd $here
1059
3fc11d3e
JM
1060 CY_AC_PATH_TCLCONFIG
1061 if test -z "${no_tcl}"; then
1062 CY_AC_LOAD_TCLCONFIG
1063 CY_AC_PATH_TKCONFIG
1064
dd2504ab
JM
1065 # now look for Tcl library stuff
1066
1067 case "${host}" in
1068 *-*-cygwin*)
1069 tcldir=../tcl/win/
1070 ;;
1071 *)
1072 tcldir=../tcl/unix/
1073 ;;
1074 esac
1075
1076 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1077
3fc11d3e
JM
1078 # If $no_tk is nonempty, then we can't do Tk, and there is no
1079 # point to doing Tcl.
1080 if test -z "${no_tk}"; then
1081 CY_AC_LOAD_TKCONFIG
1082 CY_AC_PATH_TCLH
1083 CY_AC_PATH_TKH
1084 CY_AC_PATH_ITCLH
1085 CY_AC_PATH_ITKH
3fc11d3e 1086
dd2504ab
JM
1087
1088 # now look for Tk library stuff
1089
1090 case "${host}" in
1091 *-*-cygwin*)
1092 tkdir=../tk/win/
1093 ;;
1094 *)
1095 tkdir=../tk/unix/
1096 ;;
1097 esac
1098
1099 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1100
3fc11d3e
JM
1101 # now look for Itcl library stuff
1102
1103 CY_AC_PATH_ITCLCONFIG
1104 if test -z "${no_itcl}"; then
b381d62d 1105 CY_AC_LOAD_ITCLCONFIG
3fc11d3e
JM
1106
1107 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
b381d62d 1108 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
3fc11d3e
JM
1109 fi
1110
1111
1112 # now look for Itk library stuff
1113 CY_AC_PATH_ITKCONFIG
1114 if test -z "${no_itcl}"; then
1115 CY_AC_LOAD_ITKCONFIG
1116
3fc11d3e 1117 ITKLIB="${ITK_BUILD_LIB_SPEC}"
b381d62d 1118 ITK_DEPS="${ITK_LIB_FULL_PATH}"
3fc11d3e
JM
1119 fi
1120
4226a5a5 1121 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
3fc11d3e
JM
1122 # Tcl/Tk 8.1 require -fwritable strings. I don't
1123 # know whether 8.2 will or not, but I bet it will.
1124 # I don't have to worry about 7.x since we don't support it.
1125 GDBTK_CFLAGS=""
1126 if test "$GCC" = "yes"; then
1127 if test "$TCL_VERSION" != "8.0" ; then
1128 GDBTK_CFLAGS="-fwritable-strings"
1129 fi
1130 fi
1131
1132 # Include some libraries that Tcl and Tk want.
b2a1bd4f 1133 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
3fc11d3e
JM
1134 # Yes, the ordering seems wrong here. But it isn't.
1135 # TK_LIBS is the list of libraries that need to be linked
1136 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1137 # were in LIBS then any link tests after this point would
1138 # try to include things like `$(LIBGUI)', which wouldn't work.
1139 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
4226a5a5
FN
1140
1141 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1142 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1143 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1144 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
b3a90332 1145 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
ce844ae2 1146 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
e56ac5c3
AC
1147 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1148 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
3fc11d3e
JM
1149
1150 if test x$gdb_cv_os_cygwin = xyes; then
1151 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1152 WIN32LDAPP="-Wl,--subsystem,console"
1153 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1154 fi
1155 fi
1156 fi
ffc6a242
KS
1157
1158 SUBDIRS="${SUBDIRS} gdbtk"
1159 configdirs="${configdirs} gdbtk"
3fc11d3e
JM
1160fi
1161
3fc11d3e
JM
1162AC_SUBST(X_CFLAGS)
1163AC_SUBST(X_LDFLAGS)
1164AC_SUBST(X_LIBS)
dd2504ab
JM
1165AC_SUBST(TCL_DEPS)
1166AC_SUBST(TK_DEPS)
3fc11d3e
JM
1167AC_SUBST(ITCLLIB)
1168AC_SUBST(ITCL_DEPS)
1169AC_SUBST(ITKLIB)
1170AC_SUBST(ITK_DEPS)
3fc11d3e
JM
1171AC_SUBST(GDBTKLIBS)
1172AC_SUBST(GDBTK_CFLAGS)
d1c3b63a 1173AC_SUBST(GDBTK_SRC_DIR)
8b93c638 1174
c906108c
SS
1175AC_PATH_X
1176
7a292a7a
SS
1177
1178# Unlike the sim directory, whether a simulator is linked is controlled by
1179# presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1180# This code just checks for a few cases where we'd like to ignore those
1181# definitions, even when they're present in the '.mt' file. These cases
1182# are when --disable-sim is specified, or if the simulator directory is
6c5cfe5b 1183# not part of the source tree.
7a292a7a
SS
1184#
1185AC_ARG_ENABLE(sim,
1186[ --enable-sim Link gdb with simulator],
1187[echo "enable_sim = $enable_sim";
1188 echo "enableval = ${enableval}";
1189 case "${enableval}" in
1190 yes) ignore_sim=false ;;
1191 no) ignore_sim=true ;;
1192 *) ignore_sim=false ;;
1193 esac],
1194[ignore_sim=false])
1195
1196if test ! -d "${srcdir}/../sim"; then
1197 ignore_sim=true
1198fi
1199
1200if test "${ignore_sim}" = "true"; then
1201 IGNORE_SIM="SIM="
1202 IGNORE_SIM_OBS="SIM_OBS="
1203else
1204 IGNORE_SIM=""
1205 IGNORE_SIM_OBS=""
1206 AC_DEFINE(WITH_SIM)
1207fi
1208AC_SUBST(IGNORE_SIM)
1209AC_SUBST(IGNORE_SIM_OBS)
1210
c906108c
SS
1211AC_SUBST(ENABLE_CFLAGS)
1212
1213AC_SUBST(CONFIG_OBS)
66b965bb 1214AC_SUBST(CONFIG_LIB_OBS)
c906108c
SS
1215AC_SUBST(CONFIG_DEPS)
1216AC_SUBST(CONFIG_SRCS)
dfcd3bfb 1217AC_SUBST(CONFIG_INITS)
b3a90332
AC
1218AC_SUBST(CONFIG_ALL)
1219AC_SUBST(CONFIG_CLEAN)
e56ac5c3
AC
1220AC_SUBST(CONFIG_INSTALL)
1221AC_SUBST(CONFIG_UNINSTALL)
c906108c
SS
1222
1223# Begin stuff to support --enable-shared
1224AC_ARG_ENABLE(shared,
1225[ --enable-shared Use shared libraries],
1226[case "${enableval}" in
1227 yes) shared=true ;;
1228 no) shared=false ;;
1229 *) shared=true ;;
1230esac])dnl
1231
1232HLDFLAGS=
1233HLDENV=
1234# If we have shared libraries, try to set rpath reasonably.
1235if test "${shared}" = "true"; then
1236 case "${host}" in
1237 *-*-hpux*)
1238 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1239 ;;
1240 *-*-irix5* | *-*-irix6*)
1241 HLDFLAGS='-Wl,-rpath,$(libdir)'
1242 ;;
1243 *-*-linux*aout*)
1244 ;;
d332c5ac 1245 *-*-linux* | *-pc-linux-gnu*)
c906108c
SS
1246 HLDFLAGS='-Wl,-rpath,$(libdir)'
1247 ;;
1248 *-*-solaris*)
1249 HLDFLAGS='-R $(libdir)'
1250 ;;
1251 *-*-sysv4*)
1252 HLDENV='if test -z "$${LD_RUN_PATH}"; then LD_RUN_PATH=$(libdir); else LD_RUN_PATH=$${LD_RUN_PATH}:$(libdir); fi; export LD_RUN_PATH;'
1253 ;;
1254 esac
1255fi
1256
1257# On SunOS, if the linker supports the -rpath option, use it to
1258# prevent ../bfd and ../opcodes from being included in the run time
1259# search path.
1260case "${host}" in
1261 *-*-sunos*)
1262 echo 'main () { }' > conftest.c
1263 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1264 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1265 :
1266 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1267 :
1268 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1269 :
1270 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1271 :
1272 elif test "${shared}" = "true"; then
1273 HLDFLAGS='-Wl,-rpath=$(libdir)'
1274 else
1275 HLDFLAGS='-Wl,-rpath='
1276 fi
1277 rm -f conftest.t conftest.c conftest
1278 ;;
1279esac
1280AC_SUBST(HLDFLAGS)
1281AC_SUBST(HLDENV)
1282# End stuff to support --enable-shared
1283
1284# target_subdir is used by the testsuite to find the target libraries.
1285target_subdir=
1286if test "${host}" != "${target}"; then
1287 target_subdir="${target_alias}/"
1288fi
1289AC_SUBST(target_subdir)
1290
1291frags=
1292host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1293if test ! -f ${host_makefile_frag}; then
7fd60527
AC
1294 # When building a native debuger the .mh file containing things
1295 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1296 # since it no longer contains anything useful.
1297 if test "${target}" = "${host}"; then
1298 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1299 else
1300 host_makefile_frag=/dev/null
1301 fi
c906108c
SS
1302fi
1303frags="$frags $host_makefile_frag"
1304
1305target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1306if test ! -f ${target_makefile_frag}; then
1307AC_MSG_ERROR("*** Gdb does not support target ${target}")
1308fi
1309frags="$frags $target_makefile_frag"
1310
1311AC_SUBST_FILE(host_makefile_frag)
1312AC_SUBST_FILE(target_makefile_frag)
1313AC_SUBST(frags)
1314
1315changequote(,)dnl
1316hostfile=`sed -n '
1317s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1318' ${host_makefile_frag}`
1319
1320targetfile=`sed -n '
1321s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1322' ${target_makefile_frag}`
1323
6166d547
AC
1324GDB_MULTI_ARCH=`sed -n '
1325s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1326' ${target_makefile_frag}`
1327
c906108c 1328if test "${target}" = "${host}"; then
a85f51e7
DJ
1329# We pick this up from the host configuration file (.mh) because we
1330# do not have a native configuration Makefile fragment.
c906108c
SS
1331nativefile=`sed -n '
1332s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1333' ${host_makefile_frag}`
c906108c
SS
1334fi
1335changequote([,])
1336
6166d547
AC
1337# New targets should just set gdb_multi_arch=yes in configure.tgt.
1338# Old targets being converted can either do that or set GDB_MULTI_ARCH
1339# in the target specific makefile frag. Eventually gdb_multi_arch=yes
1340# will be the default.
1341if test x"${GDB_MULTI_ARCH}" = x ; then
1342 case "${gdb_multi_arch}" in
1343 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1344 no ) GDB_MULTI_ARCH=0 ;;
1345 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1346 esac
1347fi
1348if test x"${GDB_MULTI_ARCH}" != x ; then
1349 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1350fi
6c5cfe5b 1351# Warn the user when they use an old practice
6166d547
AC
1352case "${GDB_MULTI_ARCH}" in
1353 "" ) ;;
1354 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1355 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1356 GDB_MULTI_ARCH_PURE )
1357 if test x"${targetfile}" != x ; then
6c5cfe5b 1358 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
5a2402b8 1359 targetfile=""
6166d547
AC
1360 fi ;;
1361 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1362esac
1363
96baa820
JM
1364if test "${enable_multi_ice}" = "yes"; then
1365 SUBDIRS="${SUBDIRS} multi-ice"
1366fi
1367
a85f51e7
DJ
1368# ``gdbserver'' can only be built in a native configuration.
1369if test x"${target}" = x"${host}"; then
1370 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1371 if test x"${build_gdbserver}" = xyes ; then
1372 configdirs="${configdirs} gdbserver"
1373 SUBDIRS="${SUBDIRS} gdbserver"
1374 AC_MSG_RESULT(yes)
1375 else
1376 AC_MSG_RESULT(no)
1377 fi
1378fi
1379
96baa820
JM
1380AC_SUBST(SUBDIRS)
1381
c906108c 1382# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
5a2402b8
AC
1383# (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1384# version.
c906108c
SS
1385
1386files=
1387links=
5a2402b8 1388
c906108c 1389rm -f xm.h
5a2402b8 1390xm_h=""
c906108c 1391if test "${hostfile}" != ""; then
5a2402b8
AC
1392 xm_h=xm.h
1393 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1394 files="${files} ${GDB_XM_FILE}"
1395 links="${links} xm.h"
1396 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
c906108c 1397fi
5a2402b8
AC
1398AC_SUBST(xm_h)
1399
c906108c 1400rm -f tm.h
5a2402b8 1401tm_h=""
c906108c 1402if test "${targetfile}" != ""; then
5a2402b8
AC
1403 tm_h=tm.h
1404 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1405 files="${files} ${GDB_TM_FILE}"
1406 links="${links} tm.h"
1407 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
c906108c 1408fi
5a2402b8
AC
1409AC_SUBST(tm_h)
1410
c906108c 1411rm -f nm.h
5a2402b8 1412nm_h=""
c906108c 1413if test "${nativefile}" != ""; then
5a2402b8
AC
1414 nm_h=nm.h
1415 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1416 files="${files} ${GDB_NM_FILE}"
1417 links="${links} nm.h"
1418 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
c906108c 1419fi
5a2402b8
AC
1420AC_SUBST(nm_h)
1421
c906108c
SS
1422AC_LINK_FILES($files, $links)
1423
1424dnl Check for exe extension set on certain hosts (e.g. Win32)
1425AC_EXEEXT
1426
234b45d4
KB
1427dnl Detect the character set used by this host.
1428
1429dnl At the moment, we just assume it's ISO-8859-1 (which is a
1430dnl superset of ASCII containing the characters needed for French,
1431dnl German, Spanish, Italian, and possibly others), but if were
1432dnl *were* to support any host character sets other than ISO-8859-1,
1433dnl here's where we'd detect it.
1434AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1435 [Define to be a string naming the default host character set.])
1436
1437AM_ICONV
1438
c906108c 1439AC_CONFIG_SUBDIRS($configdirs)
ed952ac5 1440AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
c906108c
SS
1441[
1442dnl Autoconf doesn't provide a mechanism for modifying definitions
1443dnl provided by makefile fragments.
1444dnl
1445if test "${nativefile}" = ""; then
c4620205 1446 < Makefile \
e27da16d
JT
1447 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1448 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
c4620205
JB
1449 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1450 > Makefile.tem
c906108c
SS
1451mv -f Makefile.tem Makefile
1452fi
1453
1454changequote(,)dnl
1455sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1456/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1457/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1458mv -f Makefile.tmp Makefile
1459changequote([,])dnl
1460
2acceee2 1461
c906108c
SS
1462case x$CONFIG_HEADERS in
1463xconfig.h:config.in)
1464echo > stamp-h ;;
1465esac
1466],
1467[
1468gdb_host_cpu=$gdb_host_cpu
1469gdb_target_cpu=$gdb_target_cpu
1470nativefile=$nativefile
1471])
1472
1473exit 0
This page took 0.673752 seconds and 4 git commands to generate.