1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
3 dnl Free Software Foundation, Inc.
5 dnl This file is part of GDB.
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.
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.
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.
21 dnl Process this file with autoconf to produce a configure script.
25 AC_CONFIG_HEADER(config.h:config.in)
33 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
36 # FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13
37 # doesn't support cross-compilation, but the one from Autoconf 2.5x
38 # does. Override RANLIB here (i.e. before running AC_PROG_RANLIB) to
39 # deal with the lossage. Note that CY_GNU_GETTEXT currently calls
40 # AC_PROG_RANLIB. This can be removed when we switch to # Autoconf
42 AC_CHECK_TOOL(RANLIB, ranlib, :)
44 dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
47 AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
50 dnl List of object files added by configure.
63 SUBDIRS="doc testsuite nlm"
64 configdirs="doc testsuite"
66 AC_ARG_ENABLE(multi-ice,
67 [ --enable-multi-ice Build the multi-ice-gdb-server],
68 [case "${enableval}" in
69 yes ) enable_multi_ice="yes" ;;
70 no) enable_multi_ice="no" ;;
71 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
75 if test "${enable_multi_ice}" = "yes"; then
76 configdirs="${configdirs} multi-ice"
82 . ${srcdir}/configure.host
84 . ${srcdir}/configure.tgt
86 targ=${target} ; . ${srcdir}/../bfd/config.bfd
91 dnl use BFD to determine the default architecture and byte order
92 dnl (bfd_vec->byteorder provides the latter).
94 . ${srcdir}/../bfd/config.bfd
96 dnl We only want the first arch, if there is more than one.
97 targ_archs=`echo ${targ_archs} | sed -e 's/ .*//;'`
99 if test x"${targ_archs}" != x ; then
100 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, ${targ_archs})
102 if test x"${targ_defvec}" != x ; then
103 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, ${targ_defvec})
108 # --------------------- #
109 # Checks for programs. #
110 # --------------------- #
118 AC_CHECK_TOOL(AR, ar)
119 AC_CHECK_TOOL(DLLTOOL, dlltool)
120 AC_CHECK_TOOL(WINDRES, windres)
122 # Needed for GNU/Hurd.
123 AC_CHECK_TOOL(MIG, mig)
125 # ---------------------- #
126 # Checks for libraries. #
127 # ---------------------- #
129 # We might need to link with -lm; most simulators need it.
130 AC_CHECK_LIB(m, main)
132 # We need to link with -lw to get `wctype' on Solaris before Solaris
133 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
134 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
135 # is known to have this problem). Therefore we avoid libw if we can.
136 AC_CHECK_FUNC(wctype, [],
137 [AC_CHECK_LIB(w, wctype)])
139 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
140 AC_SEARCH_LIBS(socketpair, socket)
147 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
148 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
151 case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
152 AC_DEFINE(_MSE_INT_H)
155 AC_CHECK_HEADERS(ctype.h nlist.h link.h thread_db.h proc_service.h \
156 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
157 string.h sys/procfs.h sys/proc.h sys/ptrace.h sys/reg.h stdint.h \
158 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
159 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
160 time.h sys/file.h sys/ioctl.h sys/user.h sys/fault.h sys/syscall.h \
169 AC_CHECK_FUNCS(btowc canonicalize_file_name isascii poll \
170 realpath sbrk setpgid setpgrp sigaction sigprocmask sigsetmask )
173 dnl AC_FUNC_SETPGRP does not work when cross compiling
174 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
175 if test "$cross_compiling" = no; then
178 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
182 if (setpgrp(1,1) == -1)
186 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
187 if test $ac_cv_func_setpgrp_void = yes; then
188 AC_DEFINE(SETPGRP_VOID, 1)
192 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
193 # since sigsetjmp might only be defined as a macro.
194 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
197 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
198 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
199 if test $gdb_cv_func_sigsetjmp = yes; then
200 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
203 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
204 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
205 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
206 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
207 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
208 if test $gdb_cv_struct_reg_r_fs = yes; then
209 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
211 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
212 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
213 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
214 if test $gdb_cv_struct_reg_r_gs = yes; then
215 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
218 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
219 AC_MSG_CHECKING(for PTRACE_GETREGS)
220 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
221 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
223 [gdb_cv_have_ptrace_getregs=yes],
224 [gdb_cv_have_ptrace_getregs=no])])
225 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
226 if test $gdb_cv_have_ptrace_getregs = yes; then
227 AC_DEFINE(HAVE_PTRACE_GETREGS)
230 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
231 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
232 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
233 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
234 [PTRACE_GETFPXREGS;],
235 [gdb_cv_have_ptrace_getfpxregs=yes],
236 [gdb_cv_have_ptrace_getfpxregs=no])])
237 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
238 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
239 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
242 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
243 AC_MSG_CHECKING(for PT_GETDBREGS)
244 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
245 [AC_TRY_COMPILE([#include <sys/types.h>
246 #include <sys/ptrace.h>],
248 [gdb_cv_have_pt_getdbregs=yes],
249 [gdb_cv_have_pt_getdbregs=no])])
250 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
251 if test $gdb_cv_have_pt_getdbregs = yes; then
252 AC_DEFINE(HAVE_PT_GETDBREGS)
255 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
256 AC_MSG_CHECKING(for PT_GETXMMREGS)
257 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
258 [AC_TRY_COMPILE([#include <sys/types.h>
259 #include <sys/ptrace.h>],
261 [gdb_cv_have_pt_getxmmregs=yes],
262 [gdb_cv_have_pt_getxmmregs=no])])
263 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
264 if test $gdb_cv_have_pt_getxmmregs = yes; then
265 AC_DEFINE(HAVE_PT_GETXMMREGS)
269 AC_CHECK_FUNCS(socketpair)
272 BFD_NEED_DECLARATION(malloc)
273 BFD_NEED_DECLARATION(realloc)
274 BFD_NEED_DECLARATION(free)
275 BFD_NEED_DECLARATION(strerror)
276 BFD_NEED_DECLARATION(strdup)
277 BFD_NEED_DECLARATION(strstr)
278 BFD_NEED_DECLARATION(canonicalize_file_name)
280 # The following save_state_t checkery is only necessary for HPUX
281 # versions earlier than 10.20. When those fade from memory, this
282 # could be expunged. --jsm 1999-03-22
284 AC_MSG_CHECKING(for HPUX save_state structure)
285 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
286 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
287 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
288 gdb_cv_hpux_sswide=no)
289 if test $gdb_cv_hpux_savestate = yes
291 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
293 if test $gdb_cv_hpux_sswide = yes
295 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
297 AC_MSG_RESULT($gdb_cv_hpux_sswide)
300 # If we are configured native on GNU/Linux, work around problems with
302 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
304 if test "${target}" = "${host}"; then
306 i[[3456]]86-*-linux*)
307 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
308 AC_DEFINE(sys_quotactl)
311 AC_DEFINE(NEW_PROC_API)
313 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
314 AC_DEFINE(NEW_PROC_API)
316 *-*-solaris2.[[678]])
317 AC_DEFINE(NEW_PROC_API)
322 if test "$ac_cv_header_sys_procfs_h" = yes; then
323 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
324 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
325 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
326 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
327 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
328 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
329 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
330 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
331 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
332 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
333 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
334 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
335 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
336 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
339 dnl Check for broken prfpregset_t type
341 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
342 dnl prfpregset_t type (it's a typedef for the pointer to a struct
343 dnl instead of the struct itself). We detect this here, and work
344 dnl around it in gdb_proc_service.h.
346 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
347 AC_MSG_CHECKING(whether prfpregset_t type is broken)
348 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
349 [AC_TRY_RUN([#include <sys/procfs.h>
352 if (sizeof (prfpregset_t) == sizeof (void *))
356 gdb_cv_prfpregset_t_broken=no,
357 gdb_cv_prfpregset_t_broken=yes,
358 gdb_cv_prfpregset_t_broken=yes)])
359 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
360 if test $gdb_cv_prfpregset_t_broken = yes; then
361 AC_DEFINE(PRFPREGSET_T_BROKEN)
365 dnl Check for PIOCSET ioctl entry
367 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
368 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
369 [AC_TRY_COMPILE([#include <unistd.h>
370 #include <sys/types.h>
371 #include <sys/procfs.h>
374 dummy = ioctl(0, PIOCSET, &dummy);
376 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
377 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
378 if test $gdb_cv_have_procfs_piocset = yes; then
379 AC_DEFINE(HAVE_PROCFS_PIOCSET)
383 dnl For native ports (host == target), check to see what kind of
384 dnl legacy link.h support is needed. (See solib-legacy.c.)
385 if test ${host} = ${target} ; then
386 dnl Check for struct link_map with l_ members which are indicative
387 dnl of SVR4-like shared libraries
389 AC_MSG_CHECKING(for member l_addr in struct link_map)
390 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
391 [AC_TRY_COMPILE([#include <link.h>],
392 [struct link_map lm; (void) lm.l_addr;],
393 gdb_cv_have_struct_link_map_with_l_members=yes,
394 gdb_cv_have_struct_link_map_with_l_members=no)])
395 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
396 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
397 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
400 dnl Check for struct link_map with lm_ members which are indicative
401 dnl of SunOS-like shared libraries
403 AC_MSG_CHECKING(for member lm_addr in struct link_map)
404 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
405 [AC_TRY_COMPILE([#include <sys/types.h>
407 [struct link_map lm; (void) lm.lm_addr;],
408 gdb_cv_have_struct_link_map_with_lm_members=yes,
409 gdb_cv_have_struct_link_map_with_lm_members=no)])
410 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
411 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
412 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
415 dnl Check for struct so_map with som_ members which are found on
416 dnl some *BSD systems.
418 AC_MSG_CHECKING(for member som_addr in struct so_map)
419 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
420 [AC_TRY_COMPILE([#include <sys/types.h>
425 [struct so_map lm; (void) lm.som_addr;],
426 gdb_cv_have_struct_so_map_with_som_members=yes,
427 gdb_cv_have_struct_so_map_with_som_members=no)])
428 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
429 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
430 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
433 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
434 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
436 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
437 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
438 [AC_TRY_COMPILE([#define _SYSCALL32
439 #include <sys/link.h>], [struct link_map32 l;],
440 gdb_cv_have_struct_link_map32=yes,
441 gdb_cv_have_struct_link_map32=no)])
442 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
443 if test $gdb_cv_have_struct_link_map32 = yes; then
444 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
445 AC_DEFINE(_SYSCALL32)
449 dnl See if compiler supports "long long" type.
451 AC_MSG_CHECKING(for long long support in compiler)
452 AC_CACHE_VAL(gdb_cv_c_long_long,
454 extern long long foo;
455 switch (foo & 2) { case 0: return 1; }
457 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
458 AC_MSG_RESULT($gdb_cv_c_long_long)
459 if test $gdb_cv_c_long_long = yes; then
460 AC_DEFINE(CC_HAS_LONG_LONG)
463 dnl See if the compiler and runtime support printing long long
465 AC_MSG_CHECKING(for long long support in printf)
466 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
471 l = (l << 16) + 0x0123;
472 l = (l << 16) + 0x4567;
473 l = (l << 16) + 0x89ab;
474 l = (l << 16) + 0xcdef;
475 sprintf (buf, "0x%016llx", l);
476 return (strcmp ("0x0123456789abcdef", buf));
478 gdb_cv_printf_has_long_long=yes,
479 gdb_cv_printf_has_long_long=no,
480 gdb_cv_printf_has_long_long=no)])
481 if test $gdb_cv_printf_has_long_long = yes; then
482 AC_DEFINE(PRINTF_HAS_LONG_LONG)
484 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
486 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
487 dnl because autoconf complains about cross-compilation issues. However, this
488 dnl code uses the same variables as the macro for compatibility.
490 AC_MSG_CHECKING(for long double support in compiler)
491 AC_CACHE_VAL(ac_cv_c_long_double,
492 [AC_TRY_COMPILE(, [long double foo;],
493 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
494 AC_MSG_RESULT($ac_cv_c_long_double)
495 if test $ac_cv_c_long_double = yes; then
496 AC_DEFINE(HAVE_LONG_DOUBLE)
499 dnl See if the compiler and runtime support printing long doubles
501 AC_MSG_CHECKING(for long double support in printf)
502 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
506 long double f = 3.141592653;
507 sprintf (buf, "%Lg", f);
508 return (strncmp ("3.14159", buf, 7));
510 gdb_cv_printf_has_long_double=yes,
511 gdb_cv_printf_has_long_double=no,
512 gdb_cv_printf_has_long_double=no)])
513 if test $gdb_cv_printf_has_long_double = yes; then
514 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
516 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
518 dnl See if the compiler and runtime support scanning long doubles
520 AC_MSG_CHECKING(for long double support in scanf)
521 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
524 char *buf = "3.141592653";
526 sscanf (buf, "%Lg", &f);
527 return !(f > 3.14159 && f < 3.14160);
529 gdb_cv_scanf_has_long_double=yes,
530 gdb_cv_scanf_has_long_double=no,
531 gdb_cv_scanf_has_long_double=no)])
532 if test $gdb_cv_scanf_has_long_double = yes; then
533 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
535 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
541 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
542 SAVE_LDFLAGS=$LDFLAGS
545 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
546 *) gdb_cv_bigtoc=-bbigtoc ;;
549 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
550 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
552 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
557 dnl For certain native configurations, we need to check whether thread
558 dnl support can be built in or not.
560 dnl Note that we only want this if we are both native (host == target),
561 dnl and not doing a canadian cross build (build == host).
563 if test ${build} = ${host} -a ${host} = ${target} ; then
566 AC_MSG_CHECKING(for HPUX/OSF thread support)
567 if test -f /usr/include/dce/cma_config.h ; then
568 if test "$GCC" = "yes" ; then
570 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
571 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
572 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
574 AC_MSG_RESULT(no (suppressed because you are not using GCC))
581 # See if thread_db library is around for Solaris thread debugging.
582 # Note that we must explicitly test for version 1 of the library
583 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
585 AC_MSG_CHECKING(for Solaris thread debugging library)
586 if test -f /usr/lib/libthread_db.so.1 ; then
588 AC_DEFINE(HAVE_THREAD_DB_LIB)
589 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
590 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
591 AC_CHECK_LIB(dl, dlopen)
592 if test "$GCC" = "yes" ; then
593 # The GNU linker requires the -export-dynamic option to make
594 # all symbols visible in the dynamic symbol table.
595 hold_ldflags=$LDFLAGS
596 AC_MSG_CHECKING(for the ld -export-dynamic flag)
597 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
598 AC_TRY_LINK(, [int i;], found=yes, found=no)
599 LDFLAGS=$hold_ldflags
600 AC_MSG_RESULT($found)
601 if test $found = yes; then
602 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
605 # Sun randomly tweaked the prototypes in <proc_service.h>
607 AC_MSG_CHECKING(if <proc_service.h> is old)
608 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
610 #include <proc_service.h>
612 (struct ps_prochandle*, psaddr_t, const void*, size_t);
613 ],, gdb_cv_proc_service_is_old=no,
614 gdb_cv_proc_service_is_old=yes)
616 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
617 if test $gdb_cv_proc_service_is_old = yes; then
618 AC_DEFINE(PROC_SERVICE_IS_OLD)
625 AC_MSG_CHECKING(for AiX thread debugging library)
626 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
627 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
628 [#ifndef PTHDB_VERSION_3
631 gdb_cv_have_aix_thread_debug=yes,
632 gdb_cv_have_aix_thread_debug=no)])
633 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
634 if test $gdb_cv_have_aix_thread_debug = yes; then
635 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
636 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
637 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
641 AC_SUBST(CONFIG_LDFLAGS)
644 dnl See if we have a thread_db header file that has TD_NOTALLOC.
645 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
646 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
647 gdb_cv_thread_db_h_has_td_notalloc,
649 [#include <thread_db.h>],
650 [int i = TD_NOTALLOC;],
651 gdb_cv_thread_db_h_has_td_notalloc=yes,
652 gdb_cv_thread_db_h_has_td_notalloc=no
656 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
657 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
658 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
661 dnl linux-proc.c wants to use pread64, which may require special CFLAGS
662 dnl -D_BSD_SOURCE is normally assumed but we have to specify it because of
663 dnl -D_XOPEN_SOURCE=500.
664 if test $host = $target; then
668 CFLAGS="$CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
669 AC_TRY_LINK([#include <unistd.h>],
670 [pread64 (0, NULL, 0, 0);],
671 [ENABLE_CFLAGS="$ENABLE_CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
672 AC_DEFINE(HAVE_PREAD64)], [])
678 dnl The CLI cannot be disabled yet, but may be in the future
680 dnl Handle CLI sub-directory configury.
681 AC_ARG_ENABLE(gdbcli,
682 [ --enable-gdbcli Enable GDB-CLI interface],
684 case "${enableval}" in
685 yes) enable_gdbcli=yes ;;
686 "") enable_gdbcli=yes ;;
688 AC_MSG_ERROR(The CLI cannot be disabled yet)
691 AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
696 case ${enable_gdbcli} in
698 if test -d "${srcdir}/cli" ; then
699 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
700 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
701 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
702 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
703 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
704 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
705 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
706 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
707 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
712 dnl Handle optional features that can be enabled.
714 dnl Handle MI sub-directory configury.
716 [ --enable-gdbmi Enable GDB-MI interface],
718 case "${enable_gdbmi}" in
720 "") enable_gdbmi=yes ;;
722 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
727 case ${enable_gdbmi} in
729 if test -d "${srcdir}/mi" ; then
730 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
731 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
732 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
733 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
734 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
735 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
736 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
737 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
738 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
743 # Configure UI_OUT by default (before 5.2 it can be disabled)
744 # It must be configured if gdbmi is configured
747 AC_SUBST(UIOUT_CFLAGS)
750 [ --with-uiout Use new uiout functions instead of *printf's],
751 [case "${withval}" in
752 yes) want_uiout=true ;;
753 no) if test $enable_gdbmi = yes; then
754 AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
758 *) AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
760 [want_uiout=true])dnl
762 if test $want_uiout = true; then
763 UIOUT_CFLAGS="-DUI_OUT=1"
767 [ --enable-tui Enable full-screen terminal user interface],
769 case "${enable_tui}" in
771 "") enable_tui=yes ;;
773 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
777 case ${enable_tui} in
779 if test -d "${srcdir}/tui" ; then
780 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
781 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
782 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
783 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
784 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
785 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
786 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
787 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
788 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
793 AC_ARG_ENABLE(netrom,
794 [ --enable-netrom Enable NetROM support],
795 [case "${enableval}" in
796 yes) enable_netrom=yes ;;
797 no) enable_netrom=no ;;
798 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
801 if test "${enable_netrom}" = "yes"; then
802 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
803 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
807 # NOTE: Don't add -Wall or -Wunused, they both include
808 # -Wunused-parameter which reports bogus warnings.
809 # NOTE: If you add to this list, remember to update
810 # gdb/doc/gdbint.texinfo.
811 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
812 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
813 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
814 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
815 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
816 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
817 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
818 # -Woverloaded-virtual -Winline -Werror"
819 AC_ARG_ENABLE(build-warnings,
820 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
821 [case "${enableval}" in
823 no) build_warnings="-w";;
824 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
825 build_warnings="${build_warnings} ${t}";;
826 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
827 build_warnings="${t} ${build_warnings}";;
828 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
830 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
831 echo "Setting compiler warning flags = $build_warnings" 6>&1
833 AC_ARG_ENABLE(gdb-build-warnings,
834 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
835 [case "${enableval}" in
837 no) build_warnings="-w";;
838 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
839 build_warnings="${build_warnings} ${t}";;
840 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
841 build_warnings="${t} ${build_warnings}";;
842 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
844 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
845 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
849 if test "x${build_warnings}" != x -a "x$GCC" = xyes
851 AC_MSG_CHECKING(compiler warning flags)
852 # Separate out the -Werror flag as some files just cannot be
853 # compiled with it enabled.
854 for w in ${build_warnings}; do
856 -Werr*) WERROR_CFLAGS=-Werror ;;
857 *) # Check that GCC accepts it
858 saved_CFLAGS="$CFLAGS"
860 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
861 CFLAGS="$saved_CFLAGS"
864 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
866 AC_SUBST(WARN_CFLAGS)
867 AC_SUBST(WERROR_CFLAGS)
871 AC_SUBST(MMALLOC_CFLAGS)
875 [ --with-mmalloc Use memory mapped malloc package],
876 [case "${withval}" in
877 yes) want_mmalloc=true ;;
878 no) want_mmalloc=false;;
879 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
880 esac],[want_mmalloc=false])dnl
882 if test x$want_mmalloc = xtrue; then
883 AC_DEFINE(USE_MMALLOC)
884 AC_DEFINE(MMCHECK_FORCE)
885 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
886 MMALLOC='../mmalloc/libmmalloc.a'
889 AC_ARG_WITH(included-regex,
890 [ --with-included-regex Use included regex],
891 [case "${withval}" in
892 yes) want_included_regex=true ;;
893 no) want_included_regex=false;;
894 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
895 esac],[want_included_regex=true])dnl
897 if test $want_included_regex = false; then
898 AC_MSG_CHECKING(for GNU regex)
899 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
900 [AC_TRY_COMPILE([#include <gnu-versions.h>
901 #include <sys/types.h>
903 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
904 #error No valid GNU regex.
907 [gdb_cv_have_gnu_regex=yes],
908 [gdb_cv_have_gnu_regex=no])])
909 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
910 if test $gdb_cv_have_gnu_regex = no; then
911 want_included_regex=true
915 if test x${want_included_regex} = xtrue; then
917 AC_DEFINE(USE_INCLUDED_REGEX)
921 # In the Cygwin environment, we need some additional flags.
922 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
923 [AC_EGREP_CPP(lose, [
924 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
926 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
929 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
930 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
932 *go32* ) SER_HARDWIRE=ser-go32.o ;;
933 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
935 AC_SUBST(SER_HARDWIRE)
938 dnl Figure out which term library to use.
939 if test x$gdb_host = xgo32; then
942 if test x$gdb_cv_os_cygwin = xyes; then
943 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
946 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
947 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
948 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
949 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
950 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
951 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
953 if test "x$TERM_LIB" = x
955 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
961 # libreadline needs libuser32.a in a cygwin environment
963 if test x$gdb_cv_os_cygwin = xyes; then
966 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
972 LIBGUI="../libgui/src/libgui.a"
973 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
975 AC_SUBST(GUI_CFLAGS_X)
978 [ --with-cpu=CPU Set the default CPU variant to debug],
980 powerpc-* | powerpcle-* )
981 ## It would be nice to keep this table in sync with the one in
983 case "${with_cpu}" in
984 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
986 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
988 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
989 ## These are all RS6000 variants, as far as GDB is concerned.
999 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
1005 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
1008 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
1012 AC_ARG_ENABLE(gdbtk,
1013 [ --enable-gdbtk Enable GDBTK GUI front end],
1014 [case "${enableval}" in
1018 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1021 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1029 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
1032 # Default is on for everything but go32 and Cygwin
1037 if test -d "${srcdir}/gdbtk" ; then
1046 AC_SUBST(WIN32LDAPP)
1051 if test "${enable_gdbtk}" = "yes"; then
1053 # Gdbtk must have an absolute path to srcdir in order to run
1054 # properly when not installed.
1060 CY_AC_PATH_TCLCONFIG
1061 if test -z "${no_tcl}"; then
1062 CY_AC_LOAD_TCLCONFIG
1065 # now look for Tcl library stuff
1076 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1078 # If $no_tk is nonempty, then we can't do Tk, and there is no
1079 # point to doing Tcl.
1080 if test -z "${no_tk}"; then
1088 # now look for Tk library stuff
1099 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1101 # now look for Itcl library stuff
1103 CY_AC_PATH_ITCLCONFIG
1104 if test -z "${no_itcl}"; then
1105 CY_AC_LOAD_ITCLCONFIG
1107 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1108 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1112 # now look for Itk library stuff
1113 CY_AC_PATH_ITKCONFIG
1114 if test -z "${no_itcl}"; then
1115 CY_AC_LOAD_ITKCONFIG
1117 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1118 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1121 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1122 # Tcl/Tk 8.1 require -fwritable strings. I don't
1123 # know whether 8.2 will or not, but I bet it will.
1124 # I don't have to worry about 7.x since we don't support it.
1126 if test "$GCC" = "yes"; then
1127 if test "$TCL_VERSION" != "8.0" ; then
1128 GDBTK_CFLAGS="-fwritable-strings"
1132 # Include some libraries that Tcl and Tk want.
1133 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1134 # Yes, the ordering seems wrong here. But it isn't.
1135 # TK_LIBS is the list of libraries that need to be linked
1136 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1137 # were in LIBS then any link tests after this point would
1138 # try to include things like `$(LIBGUI)', which wouldn't work.
1139 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1141 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1142 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1143 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1144 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1145 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1146 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1147 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1148 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1150 if test x$gdb_cv_os_cygwin = xyes; then
1151 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1152 WIN32LDAPP="-Wl,--subsystem,console"
1153 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1158 SUBDIRS="${SUBDIRS} gdbtk"
1159 configdirs="${configdirs} gdbtk"
1172 AC_SUBST(GDBTK_CFLAGS)
1173 AC_SUBST(GDBTK_SRC_DIR)
1178 # Unlike the sim directory, whether a simulator is linked is controlled by
1179 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1180 # This code just checks for a few cases where we'd like to ignore those
1181 # definitions, even when they're present in the '.mt' file. These cases
1182 # are when --disable-sim is specified, or if the simulator directory is
1183 # not part of the source tree.
1186 [ --enable-sim Link gdb with simulator],
1187 [echo "enable_sim = $enable_sim";
1188 echo "enableval = ${enableval}";
1189 case "${enableval}" in
1190 yes) ignore_sim=false ;;
1191 no) ignore_sim=true ;;
1192 *) ignore_sim=false ;;
1196 if test ! -d "${srcdir}/../sim"; then
1200 if test "${ignore_sim}" = "true"; then
1202 IGNORE_SIM_OBS="SIM_OBS="
1208 AC_SUBST(IGNORE_SIM)
1209 AC_SUBST(IGNORE_SIM_OBS)
1211 AC_SUBST(ENABLE_CFLAGS)
1213 AC_SUBST(CONFIG_OBS)
1214 AC_SUBST(CONFIG_LIB_OBS)
1215 AC_SUBST(CONFIG_DEPS)
1216 AC_SUBST(CONFIG_SRCS)
1217 AC_SUBST(CONFIG_INITS)
1218 AC_SUBST(CONFIG_ALL)
1219 AC_SUBST(CONFIG_CLEAN)
1220 AC_SUBST(CONFIG_INSTALL)
1221 AC_SUBST(CONFIG_UNINSTALL)
1223 # Begin stuff to support --enable-shared
1224 AC_ARG_ENABLE(shared,
1225 [ --enable-shared Use shared libraries],
1226 [case "${enableval}" in
1234 # If we have shared libraries, try to set rpath reasonably.
1235 if test "${shared}" = "true"; then
1238 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1240 *-*-irix5* | *-*-irix6*)
1241 HLDFLAGS='-Wl,-rpath,$(libdir)'
1245 *-*-linux* | *-pc-linux-gnu*)
1246 HLDFLAGS='-Wl,-rpath,$(libdir)'
1249 HLDFLAGS='-R $(libdir)'
1252 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;'
1257 # On SunOS, if the linker supports the -rpath option, use it to
1258 # prevent ../bfd and ../opcodes from being included in the run time
1262 echo 'main () { }' > conftest.c
1263 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1264 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1266 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1268 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1270 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1272 elif test "${shared}" = "true"; then
1273 HLDFLAGS='-Wl,-rpath=$(libdir)'
1275 HLDFLAGS='-Wl,-rpath='
1277 rm -f conftest.t conftest.c conftest
1282 # End stuff to support --enable-shared
1284 # target_subdir is used by the testsuite to find the target libraries.
1286 if test "${host}" != "${target}"; then
1287 target_subdir="${target_alias}/"
1289 AC_SUBST(target_subdir)
1292 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1293 if test ! -f ${host_makefile_frag}; then
1294 # When building a native debuger the .mh file containing things
1295 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1296 # since it no longer contains anything useful.
1297 if test "${target}" = "${host}"; then
1298 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1300 host_makefile_frag=/dev/null
1303 frags="$frags $host_makefile_frag"
1305 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1306 if test ! -f ${target_makefile_frag}; then
1307 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1309 frags="$frags $target_makefile_frag"
1311 AC_SUBST_FILE(host_makefile_frag)
1312 AC_SUBST_FILE(target_makefile_frag)
1317 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1318 ' ${host_makefile_frag}`
1320 targetfile=`sed -n '
1321 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1322 ' ${target_makefile_frag}`
1324 GDB_MULTI_ARCH=`sed -n '
1325 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1326 ' ${target_makefile_frag}`
1328 if test "${target}" = "${host}"; then
1329 # We pick this up from the host configuration file (.mh) because we
1330 # do not have a native configuration Makefile fragment.
1331 nativefile=`sed -n '
1332 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1333 ' ${host_makefile_frag}`
1337 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1338 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1339 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1340 # will be the default.
1341 if test x"${GDB_MULTI_ARCH}" = x ; then
1342 case "${gdb_multi_arch}" in
1343 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1344 no ) GDB_MULTI_ARCH=0 ;;
1345 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1348 if test x"${GDB_MULTI_ARCH}" != x ; then
1349 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1351 # Warn the user when they use an old practice
1352 case "${GDB_MULTI_ARCH}" in
1354 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1355 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1356 GDB_MULTI_ARCH_PURE )
1357 if test x"${targetfile}" != x ; then
1358 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1361 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1364 if test "${enable_multi_ice}" = "yes"; then
1365 SUBDIRS="${SUBDIRS} multi-ice"
1368 # ``gdbserver'' can only be built in a native configuration.
1369 if test x"${target}" = x"${host}"; then
1370 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1371 if test x"${build_gdbserver}" = xyes ; then
1372 configdirs="${configdirs} gdbserver"
1373 SUBDIRS="${SUBDIRS} gdbserver"
1382 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1383 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1391 if test "${hostfile}" != ""; then
1393 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1394 files="${files} ${GDB_XM_FILE}"
1395 links="${links} xm.h"
1396 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1402 if test "${targetfile}" != ""; then
1404 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1405 files="${files} ${GDB_TM_FILE}"
1406 links="${links} tm.h"
1407 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1413 if test "${nativefile}" != ""; then
1415 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1416 files="${files} ${GDB_NM_FILE}"
1417 links="${links} nm.h"
1418 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1422 AC_LINK_FILES($files, $links)
1424 dnl Check for exe extension set on certain hosts (e.g. Win32)
1427 dnl Detect the character set used by this host.
1429 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1430 dnl superset of ASCII containing the characters needed for French,
1431 dnl German, Spanish, Italian, and possibly others), but if were
1432 dnl *were* to support any host character sets other than ISO-8859-1,
1433 dnl here's where we'd detect it.
1434 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1435 [Define to be a string naming the default host character set.])
1439 AC_CONFIG_SUBDIRS($configdirs)
1440 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1442 dnl Autoconf doesn't provide a mechanism for modifying definitions
1443 dnl provided by makefile fragments.
1445 if test "${nativefile}" = ""; then
1447 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1448 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
1449 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1451 mv -f Makefile.tem Makefile
1455 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1456 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1457 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1458 mv -f Makefile.tmp Makefile
1462 case x$CONFIG_HEADERS in
1463 xconfig.h:config.in)
1468 gdb_host_cpu=$gdb_host_cpu
1469 gdb_target_cpu=$gdb_target_cpu
1470 nativefile=$nativefile