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