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