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