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