* configure.in (gdb_cv_bigtoc): Check for -bbigtoc on AIX.
[platform/upstream/binutils.git] / gdb / configure.in
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
3 dnl Free Software Foundation, Inc.
4 dnl
5 dnl This file is part of GDB.
6 dnl 
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl 
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl GNU General Public License for more details.
16 dnl 
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program; if not, write to the Free Software
19 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21 dnl Process this file with autoconf to produce a configure script.
22
23 AC_PREREQ(2.13)dnl
24 AC_INIT(main.c)
25 AC_CONFIG_HEADER(config.h:config.in)
26 AM_MAINTAINER_MODE
27
28 AC_PROG_CC
29 AC_AIX
30 AC_ISC_POSIX
31 AM_PROG_CC_STDC
32
33 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
34 AC_CANONICAL_SYSTEM
35
36 dnl gdb doesn't use gettext, but bfd does.  We call this to ensure we
37 dnl link with the correct libraries.
38 ALL_LINGUAS=
39 CY_GNU_GETTEXT
40
41 dnl List of object files added by configure.
42
43 CONFIG_OBS=
44 CONFIG_LIB_OBS=
45 CONFIG_DEPS=
46 CONFIG_SRCS=
47 CONFIG_INITS=
48 ENABLE_CFLAGS=
49 CONFIG_ALL=
50 CONFIG_CLEAN=
51 CONFIG_INSTALL=
52 CONFIG_UNINSTALL=
53
54 configdirs="doc testsuite"
55
56 AC_ARG_ENABLE(multi-ice,
57 [  --enable-multi-ice            Build the multi-ice-gdb-server],
58 [case "${enableval}" in
59     yes ) enable_multi_ice="yes" ;;
60     no)  enable_multi_ice="no" ;;
61     *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
62   esac
63 ])
64
65 if test "${enable_multi_ice}" = "yes"; then
66   configdirs="${configdirs} multi-ice"
67 fi
68
69 dnl
70 changequote(,)dnl
71
72 . ${srcdir}/configure.host
73
74 . ${srcdir}/configure.tgt
75
76 targ=${target} ; . ${srcdir}/../bfd/config.bfd
77
78 dnl
79 changequote([,])dnl
80
81 dnl use BFD to determine the default architecture and byte order
82 dnl (bfd_vec->byteorder provides the latter).
83 targ=${target}
84 . ${srcdir}/../bfd/config.bfd
85
86 dnl We only want the first arch, if there is more than one.
87 targ_archs=`echo ${targ_archs} | sed -e 's/ .*//;'`
88
89 if test x"${targ_archs}" != x ; then
90     AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, ${targ_archs})
91 fi
92 if test x"${targ_defvec}" != x ; then
93     AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, ${targ_defvec})
94 fi
95
96 AC_PROG_AWK
97 AC_PROG_INSTALL
98 AC_CHECK_TOOL(AR, ar)
99 AC_CHECK_TOOL(RANLIB, ranlib, :)
100 AC_CHECK_TOOL(DLLTOOL, dlltool)
101 AC_CHECK_TOOL(WINDRES, windres)
102 AC_PROG_YACC
103
104 dnl MiG is needed for the Hurd.
105 AC_CHECK_TOOL(MIG, mig)
106
107 AC_ARG_PROGRAM
108
109 AC_TYPE_SIGNAL
110
111 AC_HEADER_STDC
112
113 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
114 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
115 dnl exist.
116
117 case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
118     AC_DEFINE(_MSE_INT_H)
119 esac; esac
120
121 AC_CHECK_HEADERS(ctype.h nlist.h link.h thread_db.h proc_service.h \
122         memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
123         string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
124         term.h termio.h termios.h unistd.h wait.h sys/wait.h \
125         wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
126         time.h sys/file.h sys/ioctl.h sys/user.h sys/fault.h sys/syscall.h \
127         dirent.h sys/ndir.h sys/dir.h ndir.h sys/filio.h \
128         curses.h ncurses.h \
129         poll.h sys/poll.h)
130 AC_HEADER_STAT
131
132 AC_C_CONST
133
134 AC_CHECK_FUNCS(bcopy btowc bzero canonicalize_file_name isascii poll \
135         realpath sbrk setpgid setpgrp 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 gdb_proc_service.h.
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 case ${host_os} in
515 aix*)
516   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
517     SAVE_LDFLAGS=$LDFLAGS
518
519     case $GCC in
520     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
521     *) gdb_cv_bigtoc=-bbigtoc ;;
522     esac
523
524     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
525     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
526   ])
527   CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
528   ;;
529 esac
530
531 dnl See if thread_db library is around for Solaris thread debugging.  Note that
532 dnl we must explicitly test for version 1 of the library because version 0
533 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
534
535 dnl Note that we only want this if we are both native (host == target), and
536 dnl not doing a canadian cross build (build == host).
537
538 if test ${build} = ${host} -a ${host} = ${target} ; then
539    case ${host_os} in
540    hpux*)
541       AC_MSG_CHECKING(for HPUX/OSF thread support)
542       if test -f /usr/include/dce/cma_config.h ; then
543          if test "$GCC" = "yes" ; then
544             AC_MSG_RESULT(yes)
545             AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
546             CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
547             CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
548          else
549             AC_MSG_RESULT(no (suppressed because you are not using GCC))
550          fi
551       else
552          AC_MSG_RESULT(no)
553       fi
554       ;;
555    solaris*)
556       AC_MSG_CHECKING(for Solaris thread debugging library)
557       if test -f /usr/lib/libthread_db.so.1 ; then
558          AC_MSG_RESULT(yes)
559          AC_DEFINE(HAVE_THREAD_DB_LIB)
560          CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
561          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
562          AC_CHECK_LIB(dl, dlopen)
563          if test "$GCC" = "yes" ; then
564             # The GNU linker requires the -export-dynamic option to make
565             # all symbols visible in the dynamic symbol table.
566             hold_ldflags=$LDFLAGS
567             AC_MSG_CHECKING(for the ld -export-dynamic flag)
568             LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
569             AC_TRY_LINK(, [int i;], found=yes, found=no)
570             LDFLAGS=$hold_ldflags
571             AC_MSG_RESULT($found)
572             if test $found = yes; then
573                CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
574             fi
575          fi
576          # Sun randomly tweaked the prototypes in <proc_service.h>
577          # at one point.
578          AC_MSG_CHECKING(if <proc_service.h> is old)
579          AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
580             AC_TRY_COMPILE([
581                 #include <proc_service.h>
582                 ps_err_e ps_pdwrite
583                     (struct ps_prochandle*, psaddr_t, const void*, size_t);
584             ],, gdb_cv_proc_service_is_old=no,
585                 gdb_cv_proc_service_is_old=yes)
586          ])
587          AC_MSG_RESULT($gdb_cv_proc_service_is_old)
588          if test $gdb_cv_proc_service_is_old = yes; then
589             AC_DEFINE(PROC_SERVICE_IS_OLD)
590          fi
591       else
592          AC_MSG_RESULT(no)
593       fi
594       ;;
595    esac
596    AC_SUBST(CONFIG_LDFLAGS)
597 fi
598
599 dnl The CLI cannot be disabled yet, but may be in the future  
600
601 dnl Handle CLI sub-directory configury.
602 AC_ARG_ENABLE(gdbcli,
603 [  --enable-gdbcli            Enable GDB-CLI interface],
604 [
605   case "${enableval}" in
606     yes) enable_gdbcli=yes ;;
607     "") enable_gdbcli=yes ;;
608     no) 
609       AC_MSG_ERROR(The CLI cannot be disabled yet)
610     ;;
611     *)
612       AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
613     ;;
614   esac
615 ],
616 [enable_gdbcli=yes])
617 case ${enable_gdbcli} in
618   "yes" )
619     if test -d "${srcdir}/cli" ; then
620       CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
621       CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
622       CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
623       CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
624       ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
625       CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
626       CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
627       CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
628       CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
629     fi
630     ;;
631 esac
632
633 dnl Handle optional features that can be enabled.
634
635 dnl Handle MI sub-directory configury.
636 AC_ARG_ENABLE(gdbmi,
637 [  --enable-gdbmi            Enable GDB-MI interface],
638 [
639   case "${enable_gdbmi}" in
640     yes | no) ;;
641     "")  enable_gdbmi=yes ;;
642     *)
643       AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
644     ;;
645   esac
646 ],
647 [enable_gdbmi=yes])
648 case ${enable_gdbmi} in
649   "yes" )
650     if test -d "${srcdir}/mi" ; then
651       CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
652       CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
653       CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
654       CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
655       ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
656       CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
657       CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
658       CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
659       CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
660     fi
661     ;;
662 esac
663
664 # Configure UI_OUT by default (before 5.2 it can be disabled)
665 # It must be configured if gdbmi is configured
666
667 UIOUT_CFLAGS=
668 AC_SUBST(UIOUT_CFLAGS)
669
670 AC_ARG_WITH(uiout,
671 [  --with-uiout          Use new uiout functions instead of *printf's],
672 [case "${withval}" in
673   yes)  want_uiout=true ;;
674   no)   if test $enable_gdbmi = yes; then
675           AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
676         else
677            want_uiout=false
678         fi ;;
679   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
680 esac],
681 [want_uiout=true])dnl
682
683 if test $want_uiout = true; then
684    UIOUT_CFLAGS="-DUI_OUT=1"
685 fi
686
687 AC_ARG_ENABLE(tui,
688 [  --enable-tui            Enable full-screen terminal user interface],
689 [
690   case "${enable_tui}" in
691     yes | no) ;;
692     "")  enable_tui=yes ;;
693     *)
694       AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
695     ;;
696   esac
697 ])
698 case ${enable_tui} in
699   "yes" )
700     if test -d "${srcdir}/tui" ; then
701       CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
702       CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
703       CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
704       CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
705       ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
706       CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
707       CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
708       CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
709       CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
710     fi
711     ;;
712 esac
713
714 AC_ARG_ENABLE(netrom,
715 [  --enable-netrom         Enable NetROM support],
716 [case "${enableval}" in
717 yes)    enable_netrom=yes ;;
718 no)     enable_netrom=no ;;
719 *)      AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
720 esac])
721
722 if test "${enable_netrom}" = "yes"; then
723         CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o" 
724         CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
725 fi
726
727
728 # NOTE: Don't add -Wall or -Wunused, they both include
729 # -Wunused-parameter which reports bogus warnings.
730 # NOTE: If you add to this list, remember to update
731 # gdb/doc/gdbint.texinfo.
732 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
733 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
734 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
735 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
736 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
737 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
738 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
739 # -Woverloaded-virtual -Winline -Werror"
740 AC_ARG_ENABLE(build-warnings,
741 [  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
742 [case "${enableval}" in
743   yes)  ;;
744   no)   build_warnings="-w";;
745   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
746         build_warnings="${build_warnings} ${t}";;
747   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
748         build_warnings="${t} ${build_warnings}";;
749   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
750 esac
751 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
752   echo "Setting compiler warning flags = $build_warnings" 6>&1
753 fi])dnl
754 AC_ARG_ENABLE(gdb-build-warnings,
755 [  --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
756 [case "${enableval}" in
757   yes)  ;;
758   no)   build_warnings="-w";;
759   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
760         build_warnings="${build_warnings} ${t}";;
761   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
762         build_warnings="${t} ${build_warnings}";;
763   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
764 esac
765 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
766   echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
767 fi])dnl
768 WARN_CFLAGS=""
769 WERROR_CFLAGS=""
770 if test "x${build_warnings}" != x -a "x$GCC" = xyes
771 then
772     AC_MSG_CHECKING(compiler warning flags)
773     # Separate out the -Werror flag as some files just cannot be
774     # compiled with it enabled.
775     for w in ${build_warnings}; do
776         case $w in
777         -Werr*) WERROR_CFLAGS=-Werror ;;
778         *) # Check that GCC accepts it
779             saved_CFLAGS="$CFLAGS"
780             CFLAGS="$CFLAGS $w"
781             AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
782             CFLAGS="$saved_CFLAGS"
783         esac
784     done
785     AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
786 fi
787 AC_SUBST(WARN_CFLAGS)
788 AC_SUBST(WERROR_CFLAGS)
789
790 MMALLOC_CFLAGS=
791 MMALLOC=
792 AC_SUBST(MMALLOC_CFLAGS)
793 AC_SUBST(MMALLOC)
794
795 AC_ARG_WITH(mmalloc,
796 [  --with-mmalloc          Use memory mapped malloc package],
797 [case "${withval}" in
798   yes)  want_mmalloc=true ;;
799   no)   want_mmalloc=false;;
800   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
801 esac],[want_mmalloc=false])dnl
802
803 if test x$want_mmalloc = xtrue; then
804    AC_DEFINE(USE_MMALLOC)
805    AC_DEFINE(MMCHECK_FORCE)
806    MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
807    MMALLOC='../mmalloc/libmmalloc.a'
808 fi
809
810 AC_ARG_WITH(included-regex,
811 [  --with-included-regex          Use included regex],
812 [case "${withval}" in
813   yes)  want_included_regex=true ;;
814   no)   want_included_regex=false;;
815   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
816 esac],[want_included_regex=true])dnl
817
818 if test $want_included_regex = false; then
819   AC_MSG_CHECKING(for GNU regex)
820   AC_CACHE_VAL(gdb_cv_have_gnu_regex,
821 [AC_TRY_COMPILE([#include <gnu-versions.h>
822 #include <sys/types.h>
823 #include <regex.h>],
824 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
825 #error No valid GNU regex.
826 #endif
827 ],
828                 [gdb_cv_have_gnu_regex=yes],
829                 [gdb_cv_have_gnu_regex=no])])
830   AC_MSG_RESULT($gdb_cv_have_gnu_regex)
831   if test $gdb_cv_have_gnu_regex = no; then
832         want_included_regex=true
833   fi
834 fi
835
836 if test x${want_included_regex} = xtrue; then
837     REGEX="gnu-regex.o"
838     AC_DEFINE(USE_INCLUDED_REGEX)
839 fi
840 AC_SUBST(REGEX)
841
842 # In the Cygwin environment, we need some additional flags.
843 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
844 [AC_EGREP_CPP(lose, [
845 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
846 lose
847 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
848
849
850 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
851 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
852 case ${host} in
853   *go32* ) SER_HARDWIRE=ser-go32.o ;;
854   *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
855 esac
856 AC_SUBST(SER_HARDWIRE)
857
858
859 dnl Figure out which term library to use.
860 if test x$gdb_host = xgo32; then
861   TERM_LIB=
862 else
863 if test x$gdb_cv_os_cygwin = xyes; then
864   TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
865 else
866   TERM_LIB=
867   AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
868     AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
869       AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
870         AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
871           AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
872             AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
873
874   if test "x$TERM_LIB" = x
875   then
876     AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
877   fi
878 fi
879 fi
880 AC_SUBST(TERM_LIB)
881
882 # libreadline needs libuser32.a in a cygwin environment
883 WIN32LIBS=
884 if test x$gdb_cv_os_cygwin = xyes; then
885     WIN32LIBS="-luser32"
886     case "${target}" in
887         *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
888         ;;
889     esac
890 fi
891 AC_SUBST(WIN32LIBS)
892
893 LIBGUI="../libgui/src/libgui.a"
894 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
895 AC_SUBST(LIBGUI)
896 AC_SUBST(GUI_CFLAGS_X)
897
898 AC_ARG_WITH(cpu,
899 [  --with-cpu=CPU          Set the default CPU variant to debug],
900 [case "${target}" in
901   powerpc-* | powerpcle-* )
902     ## It would be nice to keep this table in sync with the one in
903     ## gcc/configure.
904     case "${with_cpu}" in
905       ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
906       | 604 | 750 )
907         ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
908       ;;
909       common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 ) 
910         ## These are all RS6000 variants, as far as GDB is concerned.
911         with_cpu=rs6000
912       ;;
913       603e | ec603e )
914         with_cpu=603
915       ;;
916       604e )
917         with_cpu=604
918       ;;
919       * )
920         AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
921         with_cpu=ppc-uisa
922       ;;
923     esac
924   ;;
925   * )
926     AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
927   ;;
928 esac
929 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
930 ],)
931
932
933 AC_ARG_ENABLE(gdbtk,
934 [  --enable-gdbtk          Enable GDBTK GUI front end],
935 [case "${enableval}" in
936     yes)
937         case "$host" in
938         *go32*)
939             AC_MSG_WARN([GDB does not support GDBtk on host ${host}.  GDBtk will be disabled.])
940             enable_gdbtk=no ;;
941         *windows*)
942             AC_MSG_WARN([GDB does not support GDBtk on host ${host}.  GDBtk will be disabled.])
943             enable_gdbtk=no ;;
944         *)
945             enable_gdbtk=yes ;;
946         esac ;;
947     no)
948         enable_gdbtk=no  ;;
949     *)
950         AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
951 esac],
952 [
953 # Default is on for everything but go32 and Cygwin
954 case "$host" in
955     *go32* | *windows*)
956         ;;
957     *)
958         if test -d "${srcdir}/gdbtk" ; then
959             enable_gdbtk=yes
960         fi
961         ;;
962 esac
963 ])
964
965 WIN32LDAPP=
966 AC_SUBST(WIN32LIBS)
967 AC_SUBST(WIN32LDAPP)
968
969 configdir="unix"
970
971 GDBTKLIBS=
972 if test "${enable_gdbtk}" = "yes"; then
973
974     # Gdbtk must have an absolute path to srcdir in order to run
975     # properly when not installed.
976     here=`pwd`
977     cd ${srcdir}
978     GDBTK_SRC_DIR=`pwd`
979     cd $here
980
981     CY_AC_PATH_TCLCONFIG
982     if test -z "${no_tcl}"; then
983         CY_AC_LOAD_TCLCONFIG
984         CY_AC_PATH_TKCONFIG
985
986         # now look for Tcl library stuff
987
988         case "${host}" in
989         *-*-cygwin*)
990             tcldir=../tcl/win/
991             ;;
992         *)
993             tcldir=../tcl/unix/
994             ;;
995         esac
996
997         TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
998
999         # If $no_tk is nonempty, then we can't do Tk, and there is no
1000         # point to doing Tcl.
1001         if test -z "${no_tk}"; then
1002            CY_AC_LOAD_TKCONFIG
1003            CY_AC_PATH_TCLH
1004            CY_AC_PATH_TKH
1005            CY_AC_PATH_ITCLH
1006            CY_AC_PATH_ITKH
1007            CY_AC_PATH_TIXH
1008
1009
1010            # now look for Tk library stuff
1011
1012            case "${host}" in
1013            *-*-cygwin*)
1014                tkdir=../tk/win/
1015                ;;
1016            *)
1017                tkdir=../tk/unix/
1018                ;;
1019            esac
1020
1021            TK_DEPS="${tkdir}${TK_LIB_FILE}"
1022
1023            # now look for Itcl library stuff
1024
1025            CY_AC_PATH_ITCLCONFIG
1026            if test -z "${no_itcl}"; then
1027              CY_AC_LOAD_ITCLCONFIG 
1028
1029              ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1030              ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1031            fi
1032
1033            
1034            # now look for Itk library stuff
1035            CY_AC_PATH_ITKCONFIG
1036            if test -z "${no_itcl}"; then
1037              CY_AC_LOAD_ITKCONFIG
1038
1039              ITKLIB="${ITK_BUILD_LIB_SPEC}"
1040              ITK_DEPS="${ITK_LIB_FULL_PATH}"
1041            fi
1042
1043            # now look for Tix library stuff
1044            CY_AC_PATH_TIXCONFIG
1045            if test -z "${no_tix}"; then
1046              CY_AC_LOAD_TIXCONFIG
1047              TIXLIB="${TIX_BUILD_LIB_SPEC}"
1048              TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
1049            fi
1050
1051            ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1052            # Tcl/Tk 8.1 require -fwritable strings.  I don't
1053            # know whether 8.2 will or not, but I bet it will.
1054            # I don't have to worry about 7.x since we don't support it.
1055            GDBTK_CFLAGS=""
1056            if test "$GCC" = "yes"; then
1057                if test "$TCL_VERSION" != "8.0" ; then
1058                    GDBTK_CFLAGS="-fwritable-strings"
1059                fi
1060            fi
1061
1062            # Include some libraries that Tcl and Tk want.
1063            TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1064            # Yes, the ordering seems wrong here.  But it isn't.
1065            # TK_LIBS is the list of libraries that need to be linked
1066            # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
1067            # were in LIBS then any link tests after this point would
1068            # try to include things like `$(LIBGUI)', which wouldn't work.
1069            GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1070
1071            CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1072            CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1073            CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1074            CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1075            CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1076            CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1077            CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1078            CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1079
1080            if test x$gdb_cv_os_cygwin = xyes; then
1081               WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1082               WIN32LDAPP="-Wl,--subsystem,console"
1083               CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1084            fi
1085         fi
1086     fi
1087 fi
1088
1089 AC_SUBST(X_CFLAGS)
1090 AC_SUBST(X_LDFLAGS)
1091 AC_SUBST(X_LIBS)
1092 AC_SUBST(TCL_DEPS)
1093 AC_SUBST(TK_DEPS)
1094 AC_SUBST(ITCLLIB)
1095 AC_SUBST(ITCL_DEPS)
1096 AC_SUBST(ITKLIB)
1097 AC_SUBST(ITK_DEPS)
1098 AC_SUBST(TIXLIB)
1099 AC_SUBST(TIX_DEPS)
1100 AC_SUBST(GDBTKLIBS)
1101 AC_SUBST(GDBTK_CFLAGS)
1102 AC_SUBST(GDBTK_SRC_DIR)
1103
1104 AC_PATH_X
1105
1106  
1107 # Unlike the sim directory, whether a simulator is linked is controlled by 
1108 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.  
1109 # This code just checks for a few cases where we'd like to ignore those
1110 # definitions, even when they're present in the '.mt' file.  These cases
1111 # are when --disable-sim is specified, or if the simulator directory is
1112 # not part of the source tree.
1113 #
1114 AC_ARG_ENABLE(sim,
1115 [  --enable-sim            Link gdb with simulator],
1116 [echo "enable_sim = $enable_sim";
1117  echo "enableval = ${enableval}";
1118  case "${enableval}" in
1119   yes) ignore_sim=false ;;
1120   no)  ignore_sim=true ;;
1121   *)   ignore_sim=false ;;
1122  esac],
1123 [ignore_sim=false])
1124
1125 if test ! -d "${srcdir}/../sim"; then
1126   ignore_sim=true
1127 fi
1128
1129 if test "${ignore_sim}" = "true"; then
1130     IGNORE_SIM="SIM="
1131     IGNORE_SIM_OBS="SIM_OBS="
1132 else
1133     IGNORE_SIM=""
1134     IGNORE_SIM_OBS=""
1135     AC_DEFINE(WITH_SIM)
1136 fi
1137 AC_SUBST(IGNORE_SIM)
1138 AC_SUBST(IGNORE_SIM_OBS)
1139
1140 AC_SUBST(ENABLE_CFLAGS)
1141
1142 AC_SUBST(CONFIG_OBS)
1143 AC_SUBST(CONFIG_LIB_OBS)
1144 AC_SUBST(CONFIG_DEPS)
1145 AC_SUBST(CONFIG_SRCS)
1146 AC_SUBST(CONFIG_INITS)
1147 AC_SUBST(CONFIG_ALL)
1148 AC_SUBST(CONFIG_CLEAN)
1149 AC_SUBST(CONFIG_INSTALL)
1150 AC_SUBST(CONFIG_UNINSTALL)
1151
1152 # Begin stuff to support --enable-shared
1153 AC_ARG_ENABLE(shared,
1154 [  --enable-shared         Use shared libraries],
1155 [case "${enableval}" in
1156   yes) shared=true ;;
1157   no)  shared=false ;;
1158   *) shared=true ;;
1159 esac])dnl
1160
1161 HLDFLAGS=
1162 HLDENV=
1163 # If we have shared libraries, try to set rpath reasonably.
1164 if test "${shared}" = "true"; then
1165   case "${host}" in
1166   *-*-hpux*)
1167     HLDFLAGS='-Wl,+s,+b,$(libdir)'
1168     ;;
1169   *-*-irix5* | *-*-irix6*)
1170     HLDFLAGS='-Wl,-rpath,$(libdir)'
1171     ;;
1172   *-*-linux*aout*)
1173     ;;
1174   *-*-linux* | *-pc-linux-gnu*)
1175     HLDFLAGS='-Wl,-rpath,$(libdir)'
1176     ;;
1177   *-*-solaris*)
1178     HLDFLAGS='-R $(libdir)'
1179     ;;
1180   *-*-sysv4*)
1181     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;'
1182     ;;
1183   esac
1184 fi
1185
1186 # On SunOS, if the linker supports the -rpath option, use it to
1187 # prevent ../bfd and ../opcodes from being included in the run time
1188 # search path.
1189 case "${host}" in
1190   *-*-sunos*)
1191     echo 'main () { }' > conftest.c
1192     ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1193     if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1194       :
1195     elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1196       :
1197     elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1198       :
1199     elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1200       :
1201     elif test "${shared}" = "true"; then
1202       HLDFLAGS='-Wl,-rpath=$(libdir)'
1203     else
1204       HLDFLAGS='-Wl,-rpath='
1205     fi
1206     rm -f conftest.t conftest.c conftest
1207     ;;
1208 esac
1209 AC_SUBST(HLDFLAGS)
1210 AC_SUBST(HLDENV)
1211 # End stuff to support --enable-shared
1212
1213 # target_subdir is used by the testsuite to find the target libraries.
1214 target_subdir=
1215 if test "${host}" != "${target}"; then
1216     target_subdir="${target_alias}/"
1217 fi
1218 AC_SUBST(target_subdir)
1219
1220 frags=
1221 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1222 if test ! -f ${host_makefile_frag}; then
1223     # When building a native debuger the .mh file containing things
1224     # like NATDEPFILES is needed.  Cross debuggers don't need .mh
1225     # since it no longer contains anything useful.
1226     if test "${target}" = "${host}"; then
1227         AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1228     else
1229         host_makefile_frag=/dev/null
1230     fi
1231 fi
1232 frags="$frags $host_makefile_frag"
1233
1234 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1235 if test ! -f ${target_makefile_frag}; then
1236 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1237 fi
1238 frags="$frags $target_makefile_frag"
1239
1240 AC_SUBST_FILE(host_makefile_frag)
1241 AC_SUBST_FILE(target_makefile_frag)
1242 AC_SUBST(frags)
1243
1244 changequote(,)dnl
1245 hostfile=`sed -n '
1246 s/XM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1247 ' ${host_makefile_frag}`
1248
1249 targetfile=`sed -n '
1250 s/TM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1251 ' ${target_makefile_frag}`
1252
1253 GDB_MULTI_ARCH=`sed -n '
1254 s/GDB_MULTI_ARCH[       ]*=[    ]*\([^  ]*\)[   ]*/\1/p
1255 ' ${target_makefile_frag}`
1256
1257 if test "${target}" = "${host}"; then
1258 # We pick this up from the host configuration file (.mh) because we
1259 # do not have a native configuration Makefile fragment.
1260 nativefile=`sed -n '
1261 s/NAT_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
1262 ' ${host_makefile_frag}`
1263 fi
1264 changequote([,])
1265
1266 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1267 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1268 # in the target specific makefile frag.  Eventually gdb_multi_arch=yes
1269 # will be the default.
1270 if test x"${GDB_MULTI_ARCH}" = x ; then
1271     case "${gdb_multi_arch}" in
1272     yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1273     no ) GDB_MULTI_ARCH=0 ;;
1274     0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1275     esac
1276 fi
1277 if test x"${GDB_MULTI_ARCH}" != x ; then
1278     AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1279 fi
1280 # Warn the user when they use an old practice
1281 case "${GDB_MULTI_ARCH}" in
1282     "" ) ;;
1283     0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1284         AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1285     GDB_MULTI_ARCH_PURE )
1286         if test x"${targetfile}" != x ; then
1287             AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1288             targetfile=""
1289         fi ;;
1290     *)  AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1291 esac
1292
1293 SUBDIRS="doc testsuite nlm"
1294 if test "${enable_multi_ice}" = "yes"; then
1295   SUBDIRS="${SUBDIRS} multi-ice"
1296 fi
1297
1298 # ``gdbserver'' can only be built in a native configuration.
1299 if test x"${target}" = x"${host}"; then
1300     AC_MSG_CHECKING(whether gdbserver is supported on this host)
1301     if test x"${build_gdbserver}" = xyes ; then
1302         configdirs="${configdirs} gdbserver"
1303         SUBDIRS="${SUBDIRS} gdbserver"
1304         AC_MSG_RESULT(yes)
1305     else
1306         AC_MSG_RESULT(no)
1307     fi
1308 fi
1309
1310 AC_SUBST(SUBDIRS)
1311
1312 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1313 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1314 # version.
1315
1316 files=
1317 links=
1318
1319 rm -f xm.h
1320 xm_h=""
1321 if test "${hostfile}" != ""; then
1322     xm_h=xm.h
1323     GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1324     files="${files} ${GDB_XM_FILE}"
1325     links="${links} xm.h"
1326     AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1327 fi
1328 AC_SUBST(xm_h)
1329
1330 rm -f tm.h
1331 tm_h=""
1332 if test "${targetfile}" != ""; then
1333     tm_h=tm.h
1334     GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1335     files="${files} ${GDB_TM_FILE}"
1336     links="${links} tm.h"
1337     AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1338 fi
1339 AC_SUBST(tm_h)
1340
1341 rm -f nm.h
1342 nm_h=""
1343 if test "${nativefile}" != ""; then
1344     nm_h=nm.h
1345     GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1346     files="${files} ${GDB_NM_FILE}"
1347     links="${links} nm.h"
1348     AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1349 fi
1350 AC_SUBST(nm_h)
1351
1352 AC_PROG_LN_S
1353
1354 AC_LINK_FILES($files, $links)
1355
1356 dnl Check for exe extension set on certain hosts (e.g. Win32)
1357 AC_EXEEXT
1358
1359 AC_CONFIG_SUBDIRS($configdirs)
1360 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1361 [
1362 dnl Autoconf doesn't provide a mechanism for modifying definitions 
1363 dnl provided by makefile fragments.
1364 dnl
1365 if test "${nativefile}" = ""; then
1366         < Makefile \
1367         sed -e '/^NATDEPFILES[[         ]]*=[[  ]]*/s//# NATDEPFILES=/' \
1368         | sed -e '/^\(NATDEPFILES[[     ]]*[[+]]=[[     ]]*\)/s//# \1/' \
1369         > Makefile.tem
1370 mv -f Makefile.tem Makefile
1371 fi
1372
1373 changequote(,)dnl
1374 sed -e '/^TM_FILE[      ]*=/s,^TM_FILE[         ]*=[    ]*,&config/'"${gdb_target_cpu}"'/,
1375 /^XM_FILE[      ]*=/s,^XM_FILE[         ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,
1376 /^NAT_FILE[     ]*=/s,^NAT_FILE[        ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1377 mv -f Makefile.tmp Makefile
1378 changequote([,])dnl
1379
1380
1381 case x$CONFIG_HEADERS in
1382 xconfig.h:config.in)
1383 echo > stamp-h ;;
1384 esac
1385 ],
1386 [
1387 gdb_host_cpu=$gdb_host_cpu
1388 gdb_target_cpu=$gdb_target_cpu
1389 nativefile=$nativefile
1390 ])
1391
1392 exit 0