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