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