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