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