* gdb.c++/psmang.exp: Doc fix.
[deliverable/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
536 dnl For certain native configurations, we need to check whether thread
537 dnl support can be built in or not.
538 dnl
539 dnl Note that we only want this if we are both native (host == target),
540 dnl and 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 # See if thread_db library is around for Solaris thread debugging.
561 # Note that we must explicitly test for version 1 of the library
562 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
563 # the same API.
564 AC_MSG_CHECKING(for Solaris thread debugging library)
565 if test -f /usr/lib/libthread_db.so.1 ; then
566 AC_MSG_RESULT(yes)
567 AC_DEFINE(HAVE_THREAD_DB_LIB)
568 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
569 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
570 AC_CHECK_LIB(dl, dlopen)
571 if test "$GCC" = "yes" ; then
572 # The GNU linker requires the -export-dynamic option to make
573 # all symbols visible in the dynamic symbol table.
574 hold_ldflags=$LDFLAGS
575 AC_MSG_CHECKING(for the ld -export-dynamic flag)
576 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
577 AC_TRY_LINK(, [int i;], found=yes, found=no)
578 LDFLAGS=$hold_ldflags
579 AC_MSG_RESULT($found)
580 if test $found = yes; then
581 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
582 fi
583 fi
584 # Sun randomly tweaked the prototypes in <proc_service.h>
585 # at one point.
586 AC_MSG_CHECKING(if <proc_service.h> is old)
587 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
588 AC_TRY_COMPILE([
589 #include <proc_service.h>
590 ps_err_e ps_pdwrite
591 (struct ps_prochandle*, psaddr_t, const void*, size_t);
592 ],, gdb_cv_proc_service_is_old=no,
593 gdb_cv_proc_service_is_old=yes)
594 ])
595 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
596 if test $gdb_cv_proc_service_is_old = yes; then
597 AC_DEFINE(PROC_SERVICE_IS_OLD)
598 fi
599 else
600 AC_MSG_RESULT(no)
601 fi
602 ;;
603 aix*)
604 AC_MSG_CHECKING(for AiX thread debugging library)
605 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
606 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
607 [#ifndef PTHDB_VERSION_3
608 #error
609 #endif],
610 gdb_cv_have_aix_thread_debug=yes,
611 gdb_cv_have_aix_thread_debug=no)])
612 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
613 if test $gdb_cv_have_aix_thread_debug = yes; then
614 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
615 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
616 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
617 fi
618 ;;
619 esac
620 AC_SUBST(CONFIG_LDFLAGS)
621 fi
622
623 dnl See if we have a thread_db header file that has TD_NOTALLOC.
624 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
625 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
626 gdb_cv_thread_db_h_has_td_notalloc,
627 AC_TRY_COMPILE(
628 [#include <thread_db.h>],
629 [int i = TD_NOTALLOC;],
630 gdb_cv_thread_db_h_has_td_notalloc=yes,
631 gdb_cv_thread_db_h_has_td_notalloc=no
632 )
633 )
634 fi
635 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
636 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
637 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
638 fi
639
640 dnl linux-proc.c wants to use pread64, which may require special CFLAGS
641 dnl -D_BSD_SOURCE is normally assumed but we have to specify it because of
642 dnl -D_XOPEN_SOURCE=500.
643 if test $host = $target; then
644 case $target in
645 *-linux*)
646 save_CFLAGS=$CFLAGS
647 CFLAGS="$CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
648 AC_TRY_LINK([#include <unistd.h>],
649 [pread64 (0, NULL, 0, 0);],
650 [ENABLE_CFLAGS="$ENABLE_CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
651 AC_DEFINE(HAVE_PREAD64)], [])
652 CFLAGS=$save_CFLAGS
653 ;;
654 esac
655 fi
656
657 dnl The CLI cannot be disabled yet, but may be in the future
658
659 dnl Handle CLI sub-directory configury.
660 AC_ARG_ENABLE(gdbcli,
661 [ --enable-gdbcli Enable GDB-CLI interface],
662 [
663 case "${enableval}" in
664 yes) enable_gdbcli=yes ;;
665 "") enable_gdbcli=yes ;;
666 no)
667 AC_MSG_ERROR(The CLI cannot be disabled yet)
668 ;;
669 *)
670 AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
671 ;;
672 esac
673 ],
674 [enable_gdbcli=yes])
675 case ${enable_gdbcli} in
676 "yes" )
677 if test -d "${srcdir}/cli" ; then
678 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
679 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
680 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
681 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
682 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
683 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
684 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
685 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
686 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
687 fi
688 ;;
689 esac
690
691 dnl Handle optional features that can be enabled.
692
693 dnl Handle MI sub-directory configury.
694 AC_ARG_ENABLE(gdbmi,
695 [ --enable-gdbmi Enable GDB-MI interface],
696 [
697 case "${enable_gdbmi}" in
698 yes | no) ;;
699 "") enable_gdbmi=yes ;;
700 *)
701 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
702 ;;
703 esac
704 ],
705 [enable_gdbmi=yes])
706 case ${enable_gdbmi} in
707 "yes" )
708 if test -d "${srcdir}/mi" ; then
709 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
710 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
711 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
712 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
713 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
714 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
715 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
716 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
717 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
718 fi
719 ;;
720 esac
721
722 # Configure UI_OUT by default (before 5.2 it can be disabled)
723 # It must be configured if gdbmi is configured
724
725 UIOUT_CFLAGS=
726 AC_SUBST(UIOUT_CFLAGS)
727
728 AC_ARG_WITH(uiout,
729 [ --with-uiout Use new uiout functions instead of *printf's],
730 [case "${withval}" in
731 yes) want_uiout=true ;;
732 no) if test $enable_gdbmi = yes; then
733 AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
734 else
735 want_uiout=false
736 fi ;;
737 *) AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
738 esac],
739 [want_uiout=true])dnl
740
741 if test $want_uiout = true; then
742 UIOUT_CFLAGS="-DUI_OUT=1"
743 fi
744
745 AC_ARG_ENABLE(tui,
746 [ --enable-tui Enable full-screen terminal user interface],
747 [
748 case "${enable_tui}" in
749 yes | no) ;;
750 "") enable_tui=yes ;;
751 *)
752 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
753 ;;
754 esac
755 ])
756 case ${enable_tui} in
757 "yes" )
758 if test -d "${srcdir}/tui" ; then
759 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
760 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
761 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
762 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
763 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
764 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
765 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
766 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
767 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
768 fi
769 ;;
770 esac
771
772 AC_ARG_ENABLE(netrom,
773 [ --enable-netrom Enable NetROM support],
774 [case "${enableval}" in
775 yes) enable_netrom=yes ;;
776 no) enable_netrom=no ;;
777 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
778 esac])
779
780 if test "${enable_netrom}" = "yes"; then
781 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
782 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
783 fi
784
785
786 # NOTE: Don't add -Wall or -Wunused, they both include
787 # -Wunused-parameter which reports bogus warnings.
788 # NOTE: If you add to this list, remember to update
789 # gdb/doc/gdbint.texinfo.
790 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
791 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
792 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
793 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
794 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
795 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
796 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
797 # -Woverloaded-virtual -Winline -Werror"
798 AC_ARG_ENABLE(build-warnings,
799 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
800 [case "${enableval}" in
801 yes) ;;
802 no) build_warnings="-w";;
803 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
804 build_warnings="${build_warnings} ${t}";;
805 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
806 build_warnings="${t} ${build_warnings}";;
807 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
808 esac
809 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
810 echo "Setting compiler warning flags = $build_warnings" 6>&1
811 fi])dnl
812 AC_ARG_ENABLE(gdb-build-warnings,
813 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
814 [case "${enableval}" in
815 yes) ;;
816 no) build_warnings="-w";;
817 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
818 build_warnings="${build_warnings} ${t}";;
819 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
820 build_warnings="${t} ${build_warnings}";;
821 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
822 esac
823 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
824 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
825 fi])dnl
826 WARN_CFLAGS=""
827 WERROR_CFLAGS=""
828 if test "x${build_warnings}" != x -a "x$GCC" = xyes
829 then
830 AC_MSG_CHECKING(compiler warning flags)
831 # Separate out the -Werror flag as some files just cannot be
832 # compiled with it enabled.
833 for w in ${build_warnings}; do
834 case $w in
835 -Werr*) WERROR_CFLAGS=-Werror ;;
836 *) # Check that GCC accepts it
837 saved_CFLAGS="$CFLAGS"
838 CFLAGS="$CFLAGS $w"
839 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
840 CFLAGS="$saved_CFLAGS"
841 esac
842 done
843 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
844 fi
845 AC_SUBST(WARN_CFLAGS)
846 AC_SUBST(WERROR_CFLAGS)
847
848 MMALLOC_CFLAGS=
849 MMALLOC=
850 AC_SUBST(MMALLOC_CFLAGS)
851 AC_SUBST(MMALLOC)
852
853 AC_ARG_WITH(mmalloc,
854 [ --with-mmalloc Use memory mapped malloc package],
855 [case "${withval}" in
856 yes) want_mmalloc=true ;;
857 no) want_mmalloc=false;;
858 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
859 esac],[want_mmalloc=false])dnl
860
861 if test x$want_mmalloc = xtrue; then
862 AC_DEFINE(USE_MMALLOC)
863 AC_DEFINE(MMCHECK_FORCE)
864 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
865 MMALLOC='../mmalloc/libmmalloc.a'
866 fi
867
868 AC_ARG_WITH(included-regex,
869 [ --with-included-regex Use included regex],
870 [case "${withval}" in
871 yes) want_included_regex=true ;;
872 no) want_included_regex=false;;
873 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
874 esac],[want_included_regex=true])dnl
875
876 if test $want_included_regex = false; then
877 AC_MSG_CHECKING(for GNU regex)
878 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
879 [AC_TRY_COMPILE([#include <gnu-versions.h>
880 #include <sys/types.h>
881 #include <regex.h>],
882 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
883 #error No valid GNU regex.
884 #endif
885 ],
886 [gdb_cv_have_gnu_regex=yes],
887 [gdb_cv_have_gnu_regex=no])])
888 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
889 if test $gdb_cv_have_gnu_regex = no; then
890 want_included_regex=true
891 fi
892 fi
893
894 if test x${want_included_regex} = xtrue; then
895 REGEX="gnu-regex.o"
896 AC_DEFINE(USE_INCLUDED_REGEX)
897 fi
898 AC_SUBST(REGEX)
899
900 # In the Cygwin environment, we need some additional flags.
901 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
902 [AC_EGREP_CPP(lose, [
903 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
904 lose
905 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
906
907
908 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
909 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
910 case ${host} in
911 *go32* ) SER_HARDWIRE=ser-go32.o ;;
912 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
913 esac
914 AC_SUBST(SER_HARDWIRE)
915
916
917 dnl Figure out which term library to use.
918 if test x$gdb_host = xgo32; then
919 TERM_LIB=
920 else
921 if test x$gdb_cv_os_cygwin = xyes; then
922 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
923 else
924 TERM_LIB=
925 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
926 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
927 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
928 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
929 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
930 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
931
932 if test "x$TERM_LIB" = x
933 then
934 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
935 fi
936 fi
937 fi
938 AC_SUBST(TERM_LIB)
939
940 # libreadline needs libuser32.a in a cygwin environment
941 WIN32LIBS=
942 if test x$gdb_cv_os_cygwin = xyes; then
943 WIN32LIBS="-luser32"
944 case "${target}" in
945 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
946 ;;
947 esac
948 fi
949 AC_SUBST(WIN32LIBS)
950
951 LIBGUI="../libgui/src/libgui.a"
952 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
953 AC_SUBST(LIBGUI)
954 AC_SUBST(GUI_CFLAGS_X)
955
956 AC_ARG_WITH(cpu,
957 [ --with-cpu=CPU Set the default CPU variant to debug],
958 [case "${target}" in
959 powerpc-* | powerpcle-* )
960 ## It would be nice to keep this table in sync with the one in
961 ## gcc/configure.
962 case "${with_cpu}" in
963 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
964 | 604 | 750 )
965 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
966 ;;
967 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
968 ## These are all RS6000 variants, as far as GDB is concerned.
969 with_cpu=rs6000
970 ;;
971 603e | ec603e )
972 with_cpu=603
973 ;;
974 604e )
975 with_cpu=604
976 ;;
977 * )
978 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
979 with_cpu=ppc-uisa
980 ;;
981 esac
982 ;;
983 * )
984 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
985 ;;
986 esac
987 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
988 ],)
989
990
991 AC_ARG_ENABLE(gdbtk,
992 [ --enable-gdbtk Enable GDBTK GUI front end],
993 [case "${enableval}" in
994 yes)
995 case "$host" in
996 *go32*)
997 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
998 enable_gdbtk=no ;;
999 *windows*)
1000 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1001 enable_gdbtk=no ;;
1002 *)
1003 enable_gdbtk=yes ;;
1004 esac ;;
1005 no)
1006 enable_gdbtk=no ;;
1007 *)
1008 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
1009 esac],
1010 [
1011 # Default is on for everything but go32 and Cygwin
1012 case "$host" in
1013 *go32* | *windows*)
1014 ;;
1015 *)
1016 if test -d "${srcdir}/gdbtk" ; then
1017 enable_gdbtk=yes
1018 fi
1019 ;;
1020 esac
1021 ])
1022
1023 WIN32LDAPP=
1024 AC_SUBST(WIN32LIBS)
1025 AC_SUBST(WIN32LDAPP)
1026
1027 configdir="unix"
1028
1029 GDBTKLIBS=
1030 if test "${enable_gdbtk}" = "yes"; then
1031
1032 # Gdbtk must have an absolute path to srcdir in order to run
1033 # properly when not installed.
1034 here=`pwd`
1035 cd ${srcdir}
1036 GDBTK_SRC_DIR=`pwd`
1037 cd $here
1038
1039 CY_AC_PATH_TCLCONFIG
1040 if test -z "${no_tcl}"; then
1041 CY_AC_LOAD_TCLCONFIG
1042 CY_AC_PATH_TKCONFIG
1043
1044 # now look for Tcl library stuff
1045
1046 case "${host}" in
1047 *-*-cygwin*)
1048 tcldir=../tcl/win/
1049 ;;
1050 *)
1051 tcldir=../tcl/unix/
1052 ;;
1053 esac
1054
1055 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1056
1057 # If $no_tk is nonempty, then we can't do Tk, and there is no
1058 # point to doing Tcl.
1059 if test -z "${no_tk}"; then
1060 CY_AC_LOAD_TKCONFIG
1061 CY_AC_PATH_TCLH
1062 CY_AC_PATH_TKH
1063 CY_AC_PATH_ITCLH
1064 CY_AC_PATH_ITKH
1065
1066
1067 # now look for Tk library stuff
1068
1069 case "${host}" in
1070 *-*-cygwin*)
1071 tkdir=../tk/win/
1072 ;;
1073 *)
1074 tkdir=../tk/unix/
1075 ;;
1076 esac
1077
1078 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1079
1080 # now look for Itcl library stuff
1081
1082 CY_AC_PATH_ITCLCONFIG
1083 if test -z "${no_itcl}"; then
1084 CY_AC_LOAD_ITCLCONFIG
1085
1086 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1087 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1088 fi
1089
1090
1091 # now look for Itk library stuff
1092 CY_AC_PATH_ITKCONFIG
1093 if test -z "${no_itcl}"; then
1094 CY_AC_LOAD_ITKCONFIG
1095
1096 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1097 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1098 fi
1099
1100 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1101 # Tcl/Tk 8.1 require -fwritable strings. I don't
1102 # know whether 8.2 will or not, but I bet it will.
1103 # I don't have to worry about 7.x since we don't support it.
1104 GDBTK_CFLAGS=""
1105 if test "$GCC" = "yes"; then
1106 if test "$TCL_VERSION" != "8.0" ; then
1107 GDBTK_CFLAGS="-fwritable-strings"
1108 fi
1109 fi
1110
1111 # Include some libraries that Tcl and Tk want.
1112 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1113 # Yes, the ordering seems wrong here. But it isn't.
1114 # TK_LIBS is the list of libraries that need to be linked
1115 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1116 # were in LIBS then any link tests after this point would
1117 # try to include things like `$(LIBGUI)', which wouldn't work.
1118 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1119
1120 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1121 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1122 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1123 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1124 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1125 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1126 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1127 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1128
1129 if test x$gdb_cv_os_cygwin = xyes; then
1130 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1131 WIN32LDAPP="-Wl,--subsystem,console"
1132 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1133 fi
1134 fi
1135 fi
1136
1137 SUBDIRS="${SUBDIRS} gdbtk"
1138 configdirs="${configdirs} gdbtk"
1139 fi
1140
1141 AC_SUBST(X_CFLAGS)
1142 AC_SUBST(X_LDFLAGS)
1143 AC_SUBST(X_LIBS)
1144 AC_SUBST(TCL_DEPS)
1145 AC_SUBST(TK_DEPS)
1146 AC_SUBST(ITCLLIB)
1147 AC_SUBST(ITCL_DEPS)
1148 AC_SUBST(ITKLIB)
1149 AC_SUBST(ITK_DEPS)
1150 AC_SUBST(GDBTKLIBS)
1151 AC_SUBST(GDBTK_CFLAGS)
1152 AC_SUBST(GDBTK_SRC_DIR)
1153
1154 AC_PATH_X
1155
1156
1157 # Unlike the sim directory, whether a simulator is linked is controlled by
1158 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1159 # This code just checks for a few cases where we'd like to ignore those
1160 # definitions, even when they're present in the '.mt' file. These cases
1161 # are when --disable-sim is specified, or if the simulator directory is
1162 # not part of the source tree.
1163 #
1164 AC_ARG_ENABLE(sim,
1165 [ --enable-sim Link gdb with simulator],
1166 [echo "enable_sim = $enable_sim";
1167 echo "enableval = ${enableval}";
1168 case "${enableval}" in
1169 yes) ignore_sim=false ;;
1170 no) ignore_sim=true ;;
1171 *) ignore_sim=false ;;
1172 esac],
1173 [ignore_sim=false])
1174
1175 if test ! -d "${srcdir}/../sim"; then
1176 ignore_sim=true
1177 fi
1178
1179 if test "${ignore_sim}" = "true"; then
1180 IGNORE_SIM="SIM="
1181 IGNORE_SIM_OBS="SIM_OBS="
1182 else
1183 IGNORE_SIM=""
1184 IGNORE_SIM_OBS=""
1185 AC_DEFINE(WITH_SIM)
1186 fi
1187 AC_SUBST(IGNORE_SIM)
1188 AC_SUBST(IGNORE_SIM_OBS)
1189
1190 AC_SUBST(ENABLE_CFLAGS)
1191
1192 AC_SUBST(CONFIG_OBS)
1193 AC_SUBST(CONFIG_LIB_OBS)
1194 AC_SUBST(CONFIG_DEPS)
1195 AC_SUBST(CONFIG_SRCS)
1196 AC_SUBST(CONFIG_INITS)
1197 AC_SUBST(CONFIG_ALL)
1198 AC_SUBST(CONFIG_CLEAN)
1199 AC_SUBST(CONFIG_INSTALL)
1200 AC_SUBST(CONFIG_UNINSTALL)
1201
1202 # Begin stuff to support --enable-shared
1203 AC_ARG_ENABLE(shared,
1204 [ --enable-shared Use shared libraries],
1205 [case "${enableval}" in
1206 yes) shared=true ;;
1207 no) shared=false ;;
1208 *) shared=true ;;
1209 esac])dnl
1210
1211 HLDFLAGS=
1212 HLDENV=
1213 # If we have shared libraries, try to set rpath reasonably.
1214 if test "${shared}" = "true"; then
1215 case "${host}" in
1216 *-*-hpux*)
1217 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1218 ;;
1219 *-*-irix5* | *-*-irix6*)
1220 HLDFLAGS='-Wl,-rpath,$(libdir)'
1221 ;;
1222 *-*-linux*aout*)
1223 ;;
1224 *-*-linux* | *-pc-linux-gnu*)
1225 HLDFLAGS='-Wl,-rpath,$(libdir)'
1226 ;;
1227 *-*-solaris*)
1228 HLDFLAGS='-R $(libdir)'
1229 ;;
1230 *-*-sysv4*)
1231 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;'
1232 ;;
1233 esac
1234 fi
1235
1236 # On SunOS, if the linker supports the -rpath option, use it to
1237 # prevent ../bfd and ../opcodes from being included in the run time
1238 # search path.
1239 case "${host}" in
1240 *-*-sunos*)
1241 echo 'main () { }' > conftest.c
1242 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1243 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1244 :
1245 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1246 :
1247 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1248 :
1249 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1250 :
1251 elif test "${shared}" = "true"; then
1252 HLDFLAGS='-Wl,-rpath=$(libdir)'
1253 else
1254 HLDFLAGS='-Wl,-rpath='
1255 fi
1256 rm -f conftest.t conftest.c conftest
1257 ;;
1258 esac
1259 AC_SUBST(HLDFLAGS)
1260 AC_SUBST(HLDENV)
1261 # End stuff to support --enable-shared
1262
1263 # target_subdir is used by the testsuite to find the target libraries.
1264 target_subdir=
1265 if test "${host}" != "${target}"; then
1266 target_subdir="${target_alias}/"
1267 fi
1268 AC_SUBST(target_subdir)
1269
1270 frags=
1271 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1272 if test ! -f ${host_makefile_frag}; then
1273 # When building a native debuger the .mh file containing things
1274 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1275 # since it no longer contains anything useful.
1276 if test "${target}" = "${host}"; then
1277 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1278 else
1279 host_makefile_frag=/dev/null
1280 fi
1281 fi
1282 frags="$frags $host_makefile_frag"
1283
1284 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1285 if test ! -f ${target_makefile_frag}; then
1286 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1287 fi
1288 frags="$frags $target_makefile_frag"
1289
1290 AC_SUBST_FILE(host_makefile_frag)
1291 AC_SUBST_FILE(target_makefile_frag)
1292 AC_SUBST(frags)
1293
1294 changequote(,)dnl
1295 hostfile=`sed -n '
1296 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1297 ' ${host_makefile_frag}`
1298
1299 targetfile=`sed -n '
1300 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1301 ' ${target_makefile_frag}`
1302
1303 GDB_MULTI_ARCH=`sed -n '
1304 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1305 ' ${target_makefile_frag}`
1306
1307 if test "${target}" = "${host}"; then
1308 # We pick this up from the host configuration file (.mh) because we
1309 # do not have a native configuration Makefile fragment.
1310 nativefile=`sed -n '
1311 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1312 ' ${host_makefile_frag}`
1313 fi
1314 changequote([,])
1315
1316 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1317 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1318 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1319 # will be the default.
1320 if test x"${GDB_MULTI_ARCH}" = x ; then
1321 case "${gdb_multi_arch}" in
1322 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1323 no ) GDB_MULTI_ARCH=0 ;;
1324 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1325 esac
1326 fi
1327 if test x"${GDB_MULTI_ARCH}" != x ; then
1328 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1329 fi
1330 # Warn the user when they use an old practice
1331 case "${GDB_MULTI_ARCH}" in
1332 "" ) ;;
1333 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1334 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1335 GDB_MULTI_ARCH_PURE )
1336 if test x"${targetfile}" != x ; then
1337 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1338 targetfile=""
1339 fi ;;
1340 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1341 esac
1342
1343 if test "${enable_multi_ice}" = "yes"; then
1344 SUBDIRS="${SUBDIRS} multi-ice"
1345 fi
1346
1347 # ``gdbserver'' can only be built in a native configuration.
1348 if test x"${target}" = x"${host}"; then
1349 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1350 if test x"${build_gdbserver}" = xyes ; then
1351 configdirs="${configdirs} gdbserver"
1352 SUBDIRS="${SUBDIRS} gdbserver"
1353 AC_MSG_RESULT(yes)
1354 else
1355 AC_MSG_RESULT(no)
1356 fi
1357 fi
1358
1359 AC_SUBST(SUBDIRS)
1360
1361 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1362 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1363 # version.
1364
1365 files=
1366 links=
1367
1368 rm -f xm.h
1369 xm_h=""
1370 if test "${hostfile}" != ""; then
1371 xm_h=xm.h
1372 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1373 files="${files} ${GDB_XM_FILE}"
1374 links="${links} xm.h"
1375 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1376 fi
1377 AC_SUBST(xm_h)
1378
1379 rm -f tm.h
1380 tm_h=""
1381 if test "${targetfile}" != ""; then
1382 tm_h=tm.h
1383 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1384 files="${files} ${GDB_TM_FILE}"
1385 links="${links} tm.h"
1386 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1387 fi
1388 AC_SUBST(tm_h)
1389
1390 rm -f nm.h
1391 nm_h=""
1392 if test "${nativefile}" != ""; then
1393 nm_h=nm.h
1394 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1395 files="${files} ${GDB_NM_FILE}"
1396 links="${links} nm.h"
1397 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1398 fi
1399 AC_SUBST(nm_h)
1400
1401 AC_PROG_LN_S
1402
1403 AC_LINK_FILES($files, $links)
1404
1405 dnl Check for exe extension set on certain hosts (e.g. Win32)
1406 AC_EXEEXT
1407
1408 dnl Detect the character set used by this host.
1409
1410 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1411 dnl superset of ASCII containing the characters needed for French,
1412 dnl German, Spanish, Italian, and possibly others), but if were
1413 dnl *were* to support any host character sets other than ISO-8859-1,
1414 dnl here's where we'd detect it.
1415 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1416 [Define to be a string naming the default host character set.])
1417
1418 AM_ICONV
1419
1420 AC_CONFIG_SUBDIRS($configdirs)
1421 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1422 [
1423 dnl Autoconf doesn't provide a mechanism for modifying definitions
1424 dnl provided by makefile fragments.
1425 dnl
1426 if test "${nativefile}" = ""; then
1427 < Makefile \
1428 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1429 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
1430 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1431 > Makefile.tem
1432 mv -f Makefile.tem Makefile
1433 fi
1434
1435 changequote(,)dnl
1436 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1437 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1438 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1439 mv -f Makefile.tmp Makefile
1440 changequote([,])dnl
1441
1442
1443 case x$CONFIG_HEADERS in
1444 xconfig.h:config.in)
1445 echo > stamp-h ;;
1446 esac
1447 ],
1448 [
1449 gdb_host_cpu=$gdb_host_cpu
1450 gdb_target_cpu=$gdb_target_cpu
1451 nativefile=$nativefile
1452 ])
1453
1454 exit 0
This page took 0.060775 seconds and 4 git commands to generate.