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)
142 # ------------------------- #
143 # Checks for header files. #
144 # ------------------------- #
149 AC_CHECK_HEADERS(link.h)
150 AC_CHECK_HEADERS(nlist.h)
151 AC_CHECK_HEADERS(poll.h sys/poll.h)
152 AC_CHECK_HEADERS(proc_service.h thread_db.h)
153 AC_CHECK_HEADERS(stddef.h)
154 AC_CHECK_HEADERS(stdlib.h)
155 AC_CHECK_HEADERS(stdint.h)
156 AC_CHECK_HEADERS(string.h memory.h strings.h)
157 AC_CHECK_HEADERS(sys/fault.h)
158 AC_CHECK_HEADERS(sys/file.h)
159 AC_CHECK_HEADERS(sys/filio.h)
160 AC_CHECK_HEADERS(sys/ioctl.h)
161 AC_CHECK_HEADERS(sys/param.h)
162 AC_CHECK_HEADERS(sys/proc.h)
163 AC_CHECK_HEADERS(sys/procfs.h)
164 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
165 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
166 AC_CHECK_HEADERS(sys/select.h)
167 AC_CHECK_HEADERS(sys/syscall.h)
168 AC_CHECK_HEADERS(sys/user.h)
169 AC_CHECK_HEADERS(sys/wait.h wait.h)
170 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
171 AC_CHECK_HEADERS(unistd.h)
173 # On Solaris 2.[78], we need to define _MSE_INT_H to avoid a clash
174 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
175 # think that we don't have <curses.h> if we're using GCC.
178 if test "$GCC" = yes; then
179 AC_DEFINE(_MSE_INT_H, 1,
180 [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
181 Solaris 2.[78] when using GCC. ]])
184 AC_CHECK_HEADERS(curses.h ncurses.h term.h)
186 # FIXME: kettenis/20030102: In most cases we include these
187 # unconditionally, so what's the point in checking these?
188 AC_CHECK_HEADERS(ctype.h time.h)
190 # ------------------ #
191 # Checks for types. #
192 # ------------------ #
196 # ------------------------------------- #
197 # Checks for compiler characteristics. #
198 # ------------------------------------- #
203 # ------------------------------ #
204 # Checks for library functions. #
205 # ------------------------------ #
210 AC_CHECK_FUNCS(canonicalize_file_name realpath)
213 AC_CHECK_FUNCS(setpgid setpgrp)
214 AC_CHECK_FUNCS(sigaction sigprocmask, sigsetmask)
215 AC_CHECK_FUNCS(socketpair)
217 dnl AC_FUNC_SETPGRP does not work when cross compiling
218 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
219 if test "$cross_compiling" = no; then
222 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
226 if (setpgrp(1,1) == -1)
230 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
231 if test $ac_cv_func_setpgrp_void = yes; then
232 AC_DEFINE(SETPGRP_VOID, 1)
236 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
237 # since sigsetjmp might only be defined as a macro.
238 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
241 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
242 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
243 if test $gdb_cv_func_sigsetjmp = yes; then
244 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
247 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
248 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
249 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
250 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
251 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
252 if test $gdb_cv_struct_reg_r_fs = yes; then
253 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
255 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
256 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
257 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
258 if test $gdb_cv_struct_reg_r_gs = yes; then
259 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
262 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
263 AC_MSG_CHECKING(for PTRACE_GETREGS)
264 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
265 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
267 [gdb_cv_have_ptrace_getregs=yes],
268 [gdb_cv_have_ptrace_getregs=no])])
269 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
270 if test $gdb_cv_have_ptrace_getregs = yes; then
271 AC_DEFINE(HAVE_PTRACE_GETREGS)
274 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
275 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
276 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
277 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
278 [PTRACE_GETFPXREGS;],
279 [gdb_cv_have_ptrace_getfpxregs=yes],
280 [gdb_cv_have_ptrace_getfpxregs=no])])
281 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
282 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
283 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
286 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
287 AC_MSG_CHECKING(for PT_GETDBREGS)
288 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
289 [AC_TRY_COMPILE([#include <sys/types.h>
290 #include <sys/ptrace.h>],
292 [gdb_cv_have_pt_getdbregs=yes],
293 [gdb_cv_have_pt_getdbregs=no])])
294 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
295 if test $gdb_cv_have_pt_getdbregs = yes; then
296 AC_DEFINE(HAVE_PT_GETDBREGS)
299 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
300 AC_MSG_CHECKING(for PT_GETXMMREGS)
301 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
302 [AC_TRY_COMPILE([#include <sys/types.h>
303 #include <sys/ptrace.h>],
305 [gdb_cv_have_pt_getxmmregs=yes],
306 [gdb_cv_have_pt_getxmmregs=no])])
307 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
308 if test $gdb_cv_have_pt_getxmmregs = yes; then
309 AC_DEFINE(HAVE_PT_GETXMMREGS)
313 BFD_NEED_DECLARATION(malloc)
314 BFD_NEED_DECLARATION(realloc)
315 BFD_NEED_DECLARATION(free)
316 BFD_NEED_DECLARATION(strerror)
317 BFD_NEED_DECLARATION(strdup)
318 BFD_NEED_DECLARATION(strstr)
319 BFD_NEED_DECLARATION(canonicalize_file_name)
321 # The following save_state_t checkery is only necessary for HPUX
322 # versions earlier than 10.20. When those fade from memory, this
323 # could be expunged. --jsm 1999-03-22
325 AC_MSG_CHECKING(for HPUX save_state structure)
326 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
327 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
328 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
329 gdb_cv_hpux_sswide=no)
330 if test $gdb_cv_hpux_savestate = yes
332 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
334 if test $gdb_cv_hpux_sswide = yes
336 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
338 AC_MSG_RESULT($gdb_cv_hpux_sswide)
341 # If we are configured native on GNU/Linux, work around problems with
343 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
345 if test "${target}" = "${host}"; then
347 i[[3456]]86-*-linux*)
348 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
349 AC_DEFINE(sys_quotactl)
352 AC_DEFINE(NEW_PROC_API)
354 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
355 AC_DEFINE(NEW_PROC_API)
357 *-*-solaris2.[[678]])
358 AC_DEFINE(NEW_PROC_API)
363 if test "$ac_cv_header_sys_procfs_h" = yes; then
364 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
365 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
366 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
367 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
368 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
369 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
370 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
371 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
372 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
373 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
374 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
375 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
376 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
377 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
380 dnl Check for broken prfpregset_t type
382 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
383 dnl prfpregset_t type (it's a typedef for the pointer to a struct
384 dnl instead of the struct itself). We detect this here, and work
385 dnl around it in gdb_proc_service.h.
387 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
388 AC_MSG_CHECKING(whether prfpregset_t type is broken)
389 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
390 [AC_TRY_RUN([#include <sys/procfs.h>
393 if (sizeof (prfpregset_t) == sizeof (void *))
397 gdb_cv_prfpregset_t_broken=no,
398 gdb_cv_prfpregset_t_broken=yes,
399 gdb_cv_prfpregset_t_broken=yes)])
400 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
401 if test $gdb_cv_prfpregset_t_broken = yes; then
402 AC_DEFINE(PRFPREGSET_T_BROKEN)
406 dnl Check for PIOCSET ioctl entry
408 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
409 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
410 [AC_TRY_COMPILE([#include <unistd.h>
411 #include <sys/types.h>
412 #include <sys/procfs.h>
415 dummy = ioctl(0, PIOCSET, &dummy);
417 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
418 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
419 if test $gdb_cv_have_procfs_piocset = yes; then
420 AC_DEFINE(HAVE_PROCFS_PIOCSET)
424 dnl For native ports (host == target), check to see what kind of
425 dnl legacy link.h support is needed. (See solib-legacy.c.)
426 if test ${host} = ${target} ; then
427 dnl Check for struct link_map with l_ members which are indicative
428 dnl of SVR4-like shared libraries
430 AC_MSG_CHECKING(for member l_addr in struct link_map)
431 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
432 [AC_TRY_COMPILE([#include <link.h>],
433 [struct link_map lm; (void) lm.l_addr;],
434 gdb_cv_have_struct_link_map_with_l_members=yes,
435 gdb_cv_have_struct_link_map_with_l_members=no)])
436 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
437 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
438 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
441 dnl Check for struct link_map with lm_ members which are indicative
442 dnl of SunOS-like shared libraries
444 AC_MSG_CHECKING(for member lm_addr in struct link_map)
445 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
446 [AC_TRY_COMPILE([#include <sys/types.h>
448 [struct link_map lm; (void) lm.lm_addr;],
449 gdb_cv_have_struct_link_map_with_lm_members=yes,
450 gdb_cv_have_struct_link_map_with_lm_members=no)])
451 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
452 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
453 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
456 dnl Check for struct so_map with som_ members which are found on
457 dnl some *BSD systems.
459 AC_MSG_CHECKING(for member som_addr in struct so_map)
460 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
461 [AC_TRY_COMPILE([#include <sys/types.h>
466 [struct so_map lm; (void) lm.som_addr;],
467 gdb_cv_have_struct_so_map_with_som_members=yes,
468 gdb_cv_have_struct_so_map_with_som_members=no)])
469 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
470 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
471 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
474 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
475 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
477 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
478 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
479 [AC_TRY_COMPILE([#define _SYSCALL32
480 #include <sys/link.h>], [struct link_map32 l;],
481 gdb_cv_have_struct_link_map32=yes,
482 gdb_cv_have_struct_link_map32=no)])
483 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
484 if test $gdb_cv_have_struct_link_map32 = yes; then
485 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
486 AC_DEFINE(_SYSCALL32)
490 dnl See if compiler supports "long long" type.
492 AC_MSG_CHECKING(for long long support in compiler)
493 AC_CACHE_VAL(gdb_cv_c_long_long,
495 extern long long foo;
496 switch (foo & 2) { case 0: return 1; }
498 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
499 AC_MSG_RESULT($gdb_cv_c_long_long)
500 if test $gdb_cv_c_long_long = yes; then
501 AC_DEFINE(CC_HAS_LONG_LONG)
504 dnl See if the compiler and runtime support printing long long
506 AC_MSG_CHECKING(for long long support in printf)
507 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
512 l = (l << 16) + 0x0123;
513 l = (l << 16) + 0x4567;
514 l = (l << 16) + 0x89ab;
515 l = (l << 16) + 0xcdef;
516 sprintf (buf, "0x%016llx", l);
517 return (strcmp ("0x0123456789abcdef", buf));
519 gdb_cv_printf_has_long_long=yes,
520 gdb_cv_printf_has_long_long=no,
521 gdb_cv_printf_has_long_long=no)])
522 if test $gdb_cv_printf_has_long_long = yes; then
523 AC_DEFINE(PRINTF_HAS_LONG_LONG)
525 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
527 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
528 dnl because autoconf complains about cross-compilation issues. However, this
529 dnl code uses the same variables as the macro for compatibility.
531 AC_MSG_CHECKING(for long double support in compiler)
532 AC_CACHE_VAL(ac_cv_c_long_double,
533 [AC_TRY_COMPILE(, [long double foo;],
534 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
535 AC_MSG_RESULT($ac_cv_c_long_double)
536 if test $ac_cv_c_long_double = yes; then
537 AC_DEFINE(HAVE_LONG_DOUBLE)
540 dnl See if the compiler and runtime support printing long doubles
542 AC_MSG_CHECKING(for long double support in printf)
543 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
547 long double f = 3.141592653;
548 sprintf (buf, "%Lg", f);
549 return (strncmp ("3.14159", buf, 7));
551 gdb_cv_printf_has_long_double=yes,
552 gdb_cv_printf_has_long_double=no,
553 gdb_cv_printf_has_long_double=no)])
554 if test $gdb_cv_printf_has_long_double = yes; then
555 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
557 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
559 dnl See if the compiler and runtime support scanning long doubles
561 AC_MSG_CHECKING(for long double support in scanf)
562 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
565 char *buf = "3.141592653";
567 sscanf (buf, "%Lg", &f);
568 return !(f > 3.14159 && f < 3.14160);
570 gdb_cv_scanf_has_long_double=yes,
571 gdb_cv_scanf_has_long_double=no,
572 gdb_cv_scanf_has_long_double=no)])
573 if test $gdb_cv_scanf_has_long_double = yes; then
574 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
576 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
580 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
581 SAVE_LDFLAGS=$LDFLAGS
584 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
585 *) gdb_cv_bigtoc=-bbigtoc ;;
588 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
589 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
591 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
596 dnl For certain native configurations, we need to check whether thread
597 dnl support can be built in or not.
599 dnl Note that we only want this if we are both native (host == target),
600 dnl and not doing a canadian cross build (build == host).
602 if test ${build} = ${host} -a ${host} = ${target} ; then
605 AC_MSG_CHECKING(for HPUX/OSF thread support)
606 if test -f /usr/include/dce/cma_config.h ; then
607 if test "$GCC" = "yes" ; then
609 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
610 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
611 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
613 AC_MSG_RESULT(no (suppressed because you are not using GCC))
620 # See if thread_db library is around for Solaris thread debugging.
621 # Note that we must explicitly test for version 1 of the library
622 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
624 AC_MSG_CHECKING(for Solaris thread debugging library)
625 if test -f /usr/lib/libthread_db.so.1 ; then
627 AC_DEFINE(HAVE_THREAD_DB_LIB)
628 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
629 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
630 AC_CHECK_LIB(dl, dlopen)
631 if test "$GCC" = "yes" ; then
632 # The GNU linker requires the -export-dynamic option to make
633 # all symbols visible in the dynamic symbol table.
634 hold_ldflags=$LDFLAGS
635 AC_MSG_CHECKING(for the ld -export-dynamic flag)
636 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
637 AC_TRY_LINK(, [int i;], found=yes, found=no)
638 LDFLAGS=$hold_ldflags
639 AC_MSG_RESULT($found)
640 if test $found = yes; then
641 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
644 # Sun randomly tweaked the prototypes in <proc_service.h>
646 AC_MSG_CHECKING(if <proc_service.h> is old)
647 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
649 #include <proc_service.h>
651 (struct ps_prochandle*, psaddr_t, const void*, size_t);
652 ],, gdb_cv_proc_service_is_old=no,
653 gdb_cv_proc_service_is_old=yes)
655 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
656 if test $gdb_cv_proc_service_is_old = yes; then
657 AC_DEFINE(PROC_SERVICE_IS_OLD)
664 AC_MSG_CHECKING(for AiX thread debugging library)
665 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
666 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
667 [#ifndef PTHDB_VERSION_3
670 gdb_cv_have_aix_thread_debug=yes,
671 gdb_cv_have_aix_thread_debug=no)])
672 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
673 if test $gdb_cv_have_aix_thread_debug = yes; then
674 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
675 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
676 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
680 AC_SUBST(CONFIG_LDFLAGS)
683 dnl See if we have a thread_db header file that has TD_NOTALLOC.
684 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
685 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
686 gdb_cv_thread_db_h_has_td_notalloc,
688 [#include <thread_db.h>],
689 [int i = TD_NOTALLOC;],
690 gdb_cv_thread_db_h_has_td_notalloc=yes,
691 gdb_cv_thread_db_h_has_td_notalloc=no
695 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
696 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
697 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
700 dnl linux-proc.c wants to use pread64, which may require special CFLAGS
701 dnl -D_BSD_SOURCE is normally assumed but we have to specify it because of
702 dnl -D_XOPEN_SOURCE=500.
703 if test $host = $target; then
707 CFLAGS="$CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
708 AC_TRY_LINK([#include <unistd.h>],
709 [pread64 (0, NULL, 0, 0);],
710 [ENABLE_CFLAGS="$ENABLE_CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
711 AC_DEFINE(HAVE_PREAD64)], [])
717 dnl The CLI cannot be disabled yet, but may be in the future
719 dnl Handle CLI sub-directory configury.
720 AC_ARG_ENABLE(gdbcli,
721 [ --enable-gdbcli Enable GDB-CLI interface],
723 case "${enableval}" in
724 yes) enable_gdbcli=yes ;;
725 "") enable_gdbcli=yes ;;
727 AC_MSG_ERROR(The CLI cannot be disabled yet)
730 AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
735 case ${enable_gdbcli} in
737 if test -d "${srcdir}/cli" ; then
738 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
739 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
740 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
741 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
742 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
743 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
744 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
745 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
746 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
751 dnl Handle optional features that can be enabled.
753 dnl Handle MI sub-directory configury.
755 [ --enable-gdbmi Enable GDB-MI interface],
757 case "${enable_gdbmi}" in
759 "") enable_gdbmi=yes ;;
761 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
766 case ${enable_gdbmi} in
768 if test -d "${srcdir}/mi" ; then
769 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
770 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
771 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
772 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
773 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
774 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
775 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
776 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
777 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
782 # Configure UI_OUT by default (before 5.2 it can be disabled)
783 # It must be configured if gdbmi is configured
786 AC_SUBST(UIOUT_CFLAGS)
789 [ --with-uiout Use new uiout functions instead of *printf's],
790 [case "${withval}" in
791 yes) want_uiout=true ;;
792 no) if test $enable_gdbmi = yes; then
793 AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
797 *) AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
799 [want_uiout=true])dnl
801 if test $want_uiout = true; then
802 UIOUT_CFLAGS="-DUI_OUT=1"
806 [ --enable-tui Enable full-screen terminal user interface],
808 case "${enable_tui}" in
810 "") enable_tui=yes ;;
812 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
816 case ${enable_tui} in
818 if test -d "${srcdir}/tui" ; then
819 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
820 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
821 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
822 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
823 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
824 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
825 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
826 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
827 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
832 AC_ARG_ENABLE(netrom,
833 [ --enable-netrom Enable NetROM support],
834 [case "${enableval}" in
835 yes) enable_netrom=yes ;;
836 no) enable_netrom=no ;;
837 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
840 if test "${enable_netrom}" = "yes"; then
841 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
842 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
846 # NOTE: Don't add -Wall or -Wunused, they both include
847 # -Wunused-parameter which reports bogus warnings.
848 # NOTE: If you add to this list, remember to update
849 # gdb/doc/gdbint.texinfo.
850 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
851 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
852 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
853 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
854 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
855 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
856 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
857 # -Woverloaded-virtual -Winline -Werror"
858 AC_ARG_ENABLE(build-warnings,
859 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
860 [case "${enableval}" in
862 no) build_warnings="-w";;
863 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
864 build_warnings="${build_warnings} ${t}";;
865 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
866 build_warnings="${t} ${build_warnings}";;
867 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
869 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
870 echo "Setting compiler warning flags = $build_warnings" 6>&1
872 AC_ARG_ENABLE(gdb-build-warnings,
873 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
874 [case "${enableval}" in
876 no) build_warnings="-w";;
877 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
878 build_warnings="${build_warnings} ${t}";;
879 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
880 build_warnings="${t} ${build_warnings}";;
881 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
883 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
884 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
888 if test "x${build_warnings}" != x -a "x$GCC" = xyes
890 AC_MSG_CHECKING(compiler warning flags)
891 # Separate out the -Werror flag as some files just cannot be
892 # compiled with it enabled.
893 for w in ${build_warnings}; do
895 -Werr*) WERROR_CFLAGS=-Werror ;;
896 *) # Check that GCC accepts it
897 saved_CFLAGS="$CFLAGS"
899 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
900 CFLAGS="$saved_CFLAGS"
903 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
905 AC_SUBST(WARN_CFLAGS)
906 AC_SUBST(WERROR_CFLAGS)
910 AC_SUBST(MMALLOC_CFLAGS)
914 [ --with-mmalloc Use memory mapped malloc package],
915 [case "${withval}" in
916 yes) want_mmalloc=true ;;
917 no) want_mmalloc=false;;
918 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
919 esac],[want_mmalloc=false])dnl
921 if test x$want_mmalloc = xtrue; then
922 AC_DEFINE(USE_MMALLOC)
923 AC_DEFINE(MMCHECK_FORCE)
924 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
925 MMALLOC='../mmalloc/libmmalloc.a'
928 AC_ARG_WITH(included-regex,
929 [ --with-included-regex Use included regex],
930 [case "${withval}" in
931 yes) want_included_regex=true ;;
932 no) want_included_regex=false;;
933 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
934 esac],[want_included_regex=true])dnl
936 if test $want_included_regex = false; then
937 AC_MSG_CHECKING(for GNU regex)
938 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
939 [AC_TRY_COMPILE([#include <gnu-versions.h>
940 #include <sys/types.h>
942 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
943 #error No valid GNU regex.
946 [gdb_cv_have_gnu_regex=yes],
947 [gdb_cv_have_gnu_regex=no])])
948 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
949 if test $gdb_cv_have_gnu_regex = no; then
950 want_included_regex=true
954 if test x${want_included_regex} = xtrue; then
956 AC_DEFINE(USE_INCLUDED_REGEX)
960 # In the Cygwin environment, we need some additional flags.
961 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
962 [AC_EGREP_CPP(lose, [
963 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
965 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
968 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
969 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
971 *go32* ) SER_HARDWIRE=ser-go32.o ;;
972 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
974 AC_SUBST(SER_HARDWIRE)
977 dnl Figure out which term library to use.
978 if test x$gdb_host = xgo32; then
981 if test x$gdb_cv_os_cygwin = xyes; then
982 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
985 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
986 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
987 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
988 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
989 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
990 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
992 if test "x$TERM_LIB" = x
994 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
1000 # libreadline needs libuser32.a in a cygwin environment
1002 if test x$gdb_cv_os_cygwin = xyes; then
1003 WIN32LIBS="-luser32"
1005 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1011 LIBGUI="../libgui/src/libgui.a"
1012 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1014 AC_SUBST(GUI_CFLAGS_X)
1017 [ --with-cpu=CPU Set the default CPU variant to debug],
1018 [case "${target}" in
1019 powerpc-* | powerpcle-* )
1020 ## It would be nice to keep this table in sync with the one in
1022 case "${with_cpu}" in
1023 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
1025 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
1027 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
1028 ## These are all RS6000 variants, as far as GDB is concerned.
1038 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
1044 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
1047 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
1051 AC_ARG_ENABLE(gdbtk,
1052 [ --enable-gdbtk Enable GDBTK GUI front end],
1053 [case "${enableval}" in
1057 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1060 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1068 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
1071 # Default is on for everything but go32 and Cygwin
1076 if test -d "${srcdir}/gdbtk" ; then
1085 AC_SUBST(WIN32LDAPP)
1090 if test "${enable_gdbtk}" = "yes"; then
1092 # Gdbtk must have an absolute path to srcdir in order to run
1093 # properly when not installed.
1099 CY_AC_PATH_TCLCONFIG
1100 if test -z "${no_tcl}"; then
1101 CY_AC_LOAD_TCLCONFIG
1104 # now look for Tcl library stuff
1115 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1117 # If $no_tk is nonempty, then we can't do Tk, and there is no
1118 # point to doing Tcl.
1119 if test -z "${no_tk}"; then
1127 # now look for Tk library stuff
1138 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1140 # now look for Itcl library stuff
1142 CY_AC_PATH_ITCLCONFIG
1143 if test -z "${no_itcl}"; then
1144 CY_AC_LOAD_ITCLCONFIG
1146 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1147 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1151 # now look for Itk library stuff
1152 CY_AC_PATH_ITKCONFIG
1153 if test -z "${no_itcl}"; then
1154 CY_AC_LOAD_ITKCONFIG
1156 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1157 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1160 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1161 # Tcl/Tk 8.1 require -fwritable strings. I don't
1162 # know whether 8.2 will or not, but I bet it will.
1163 # I don't have to worry about 7.x since we don't support it.
1165 if test "$GCC" = "yes"; then
1166 if test "$TCL_VERSION" != "8.0" ; then
1167 GDBTK_CFLAGS="-fwritable-strings"
1171 # Include some libraries that Tcl and Tk want.
1172 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1173 # Yes, the ordering seems wrong here. But it isn't.
1174 # TK_LIBS is the list of libraries that need to be linked
1175 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1176 # were in LIBS then any link tests after this point would
1177 # try to include things like `$(LIBGUI)', which wouldn't work.
1178 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1180 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1181 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1182 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1183 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1184 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1185 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1186 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1187 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1189 if test x$gdb_cv_os_cygwin = xyes; then
1190 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1191 WIN32LDAPP="-Wl,--subsystem,console"
1192 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1197 SUBDIRS="${SUBDIRS} gdbtk"
1198 configdirs="${configdirs} gdbtk"
1211 AC_SUBST(GDBTK_CFLAGS)
1212 AC_SUBST(GDBTK_SRC_DIR)
1217 # Unlike the sim directory, whether a simulator is linked is controlled by
1218 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1219 # This code just checks for a few cases where we'd like to ignore those
1220 # definitions, even when they're present in the '.mt' file. These cases
1221 # are when --disable-sim is specified, or if the simulator directory is
1222 # not part of the source tree.
1225 [ --enable-sim Link gdb with simulator],
1226 [echo "enable_sim = $enable_sim";
1227 echo "enableval = ${enableval}";
1228 case "${enableval}" in
1229 yes) ignore_sim=false ;;
1230 no) ignore_sim=true ;;
1231 *) ignore_sim=false ;;
1235 if test ! -d "${srcdir}/../sim"; then
1239 if test "${ignore_sim}" = "true"; then
1241 IGNORE_SIM_OBS="SIM_OBS="
1247 AC_SUBST(IGNORE_SIM)
1248 AC_SUBST(IGNORE_SIM_OBS)
1250 AC_SUBST(ENABLE_CFLAGS)
1252 AC_SUBST(CONFIG_OBS)
1253 AC_SUBST(CONFIG_LIB_OBS)
1254 AC_SUBST(CONFIG_DEPS)
1255 AC_SUBST(CONFIG_SRCS)
1256 AC_SUBST(CONFIG_INITS)
1257 AC_SUBST(CONFIG_ALL)
1258 AC_SUBST(CONFIG_CLEAN)
1259 AC_SUBST(CONFIG_INSTALL)
1260 AC_SUBST(CONFIG_UNINSTALL)
1262 # Begin stuff to support --enable-shared
1263 AC_ARG_ENABLE(shared,
1264 [ --enable-shared Use shared libraries],
1265 [case "${enableval}" in
1273 # If we have shared libraries, try to set rpath reasonably.
1274 if test "${shared}" = "true"; then
1277 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1279 *-*-irix5* | *-*-irix6*)
1280 HLDFLAGS='-Wl,-rpath,$(libdir)'
1284 *-*-linux* | *-pc-linux-gnu*)
1285 HLDFLAGS='-Wl,-rpath,$(libdir)'
1288 HLDFLAGS='-R $(libdir)'
1291 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;'
1296 # On SunOS, if the linker supports the -rpath option, use it to
1297 # prevent ../bfd and ../opcodes from being included in the run time
1301 echo 'main () { }' > conftest.c
1302 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1303 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1305 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1307 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1309 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1311 elif test "${shared}" = "true"; then
1312 HLDFLAGS='-Wl,-rpath=$(libdir)'
1314 HLDFLAGS='-Wl,-rpath='
1316 rm -f conftest.t conftest.c conftest
1321 # End stuff to support --enable-shared
1323 # target_subdir is used by the testsuite to find the target libraries.
1325 if test "${host}" != "${target}"; then
1326 target_subdir="${target_alias}/"
1328 AC_SUBST(target_subdir)
1331 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1332 if test ! -f ${host_makefile_frag}; then
1333 # When building a native debuger the .mh file containing things
1334 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1335 # since it no longer contains anything useful.
1336 if test "${target}" = "${host}"; then
1337 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1339 host_makefile_frag=/dev/null
1342 frags="$frags $host_makefile_frag"
1344 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1345 if test ! -f ${target_makefile_frag}; then
1346 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1348 frags="$frags $target_makefile_frag"
1350 AC_SUBST_FILE(host_makefile_frag)
1351 AC_SUBST_FILE(target_makefile_frag)
1356 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1357 ' ${host_makefile_frag}`
1359 targetfile=`sed -n '
1360 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1361 ' ${target_makefile_frag}`
1363 GDB_MULTI_ARCH=`sed -n '
1364 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1365 ' ${target_makefile_frag}`
1367 if test "${target}" = "${host}"; then
1368 # We pick this up from the host configuration file (.mh) because we
1369 # do not have a native configuration Makefile fragment.
1370 nativefile=`sed -n '
1371 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1372 ' ${host_makefile_frag}`
1376 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1377 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1378 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1379 # will be the default.
1380 if test x"${GDB_MULTI_ARCH}" = x ; then
1381 case "${gdb_multi_arch}" in
1382 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1383 no ) GDB_MULTI_ARCH=0 ;;
1384 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1387 if test x"${GDB_MULTI_ARCH}" != x ; then
1388 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1390 # Warn the user when they use an old practice
1391 case "${GDB_MULTI_ARCH}" in
1393 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1394 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1395 GDB_MULTI_ARCH_PURE )
1396 if test x"${targetfile}" != x ; then
1397 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1400 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1403 if test "${enable_multi_ice}" = "yes"; then
1404 SUBDIRS="${SUBDIRS} multi-ice"
1407 # ``gdbserver'' can only be built in a native configuration.
1408 if test x"${target}" = x"${host}"; then
1409 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1410 if test x"${build_gdbserver}" = xyes ; then
1411 configdirs="${configdirs} gdbserver"
1412 SUBDIRS="${SUBDIRS} gdbserver"
1421 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1422 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1430 if test "${hostfile}" != ""; then
1432 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1433 files="${files} ${GDB_XM_FILE}"
1434 links="${links} xm.h"
1435 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1441 if test "${targetfile}" != ""; then
1443 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1444 files="${files} ${GDB_TM_FILE}"
1445 links="${links} tm.h"
1446 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1452 if test "${nativefile}" != ""; then
1454 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1455 files="${files} ${GDB_NM_FILE}"
1456 links="${links} nm.h"
1457 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1461 AC_LINK_FILES($files, $links)
1463 dnl Check for exe extension set on certain hosts (e.g. Win32)
1466 dnl Detect the character set used by this host.
1468 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1469 dnl superset of ASCII containing the characters needed for French,
1470 dnl German, Spanish, Italian, and possibly others), but if were
1471 dnl *were* to support any host character sets other than ISO-8859-1,
1472 dnl here's where we'd detect it.
1473 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1474 [Define to be a string naming the default host character set.])
1478 AC_CONFIG_SUBDIRS($configdirs)
1479 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1481 dnl Autoconf doesn't provide a mechanism for modifying definitions
1482 dnl provided by makefile fragments.
1484 if test "${nativefile}" = ""; then
1486 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1487 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
1488 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1490 mv -f Makefile.tem Makefile
1494 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1495 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1496 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1497 mv -f Makefile.tmp Makefile
1501 case x$CONFIG_HEADERS in
1502 xconfig.h:config.in)
1507 gdb_host_cpu=$gdb_host_cpu
1508 gdb_target_cpu=$gdb_target_cpu
1509 nativefile=$nativefile