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