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