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