Fix problems introduced with my last change.
[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 Free Software Foundation, Inc.
3 dnl
4 dnl This file is part of GDB.
5 dnl
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 2 of the License, or
9 dnl (at your option) any later version.
10 dnl
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 dnl GNU General Public License for more details.
15 dnl
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20 dnl Process this file with autoconf to produce a configure script.
21
22 AC_PREREQ(2.13)dnl
23 AC_INIT(main.c)
24 AC_CONFIG_HEADER(config.h:config.in)
25 AM_MAINTAINER_MODE
26
27 AC_PROG_CC
28 AC_AIX
29 AC_ISC_POSIX
30 AM_PROG_CC_STDC
31
32 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
33 AC_CANONICAL_SYSTEM
34
35 dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
36 dnl link with the correct libraries.
37 ALL_LINGUAS=
38 CY_GNU_GETTEXT
39
40 dnl List of object files added by configure.
41
42 CONFIG_OBS=
43 CONFIG_DEPS=
44 CONFIG_SRCS=
45 CONFIG_INITS=
46 ENABLE_CFLAGS=
47 CONFIG_ALL=
48 CONFIG_CLEAN=
49 CONFIG_INSTALL=
50 CONFIG_UNINSTALL=
51
52 configdirs="doc testsuite"
53
54 AC_ARG_ENABLE(multi-ice,
55 [ --enable-multi-ice Build the multi-ice-gdb-server],
56 [case "${enableval}" in
57 yes ) enable_multi_ice="yes" ;;
58 no) enable_multi_ice="no" ;;
59 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
60 esac
61 ])
62
63 if test "${enable_multi_ice}" = "yes"; then
64 configdirs="${configdirs} multi-ice"
65 fi
66
67 dnl
68 changequote(,)dnl
69
70 . ${srcdir}/configure.host
71
72 . ${srcdir}/configure.tgt
73
74 dnl
75 changequote([,])dnl
76
77 AC_PROG_AWK
78 AC_PROG_INSTALL
79 AC_CHECK_TOOL(AR, ar)
80 AC_CHECK_TOOL(RANLIB, ranlib, :)
81 AC_PROG_YACC
82
83 dnl MiG is needed for the Hurd.
84 AC_CHECK_TOOL(MIG, mig)
85
86 AC_ARG_PROGRAM
87
88 AC_TYPE_SIGNAL
89
90 AC_HEADER_STDC
91
92 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
93 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
94 dnl exist.
95
96 case $host_os in solaris2.7) case "$GCC" in yes)
97 AC_DEFINE(_MSE_INT_H)
98 esac; esac
99
100 AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
101 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
102 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
103 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
104 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
105 time.h sys/ioctl.h)
106 AC_HEADER_STAT
107
108 AC_C_CONST
109
110 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
111 AC_FUNC_ALLOCA
112
113 dnl See if ptrace.h provides the PTRACE_GETREGS request.
114 AC_MSG_CHECKING(for PTRACE_GETREGS)
115 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
116 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
117 [PTRACE_GETREGS;],
118 [gdb_cv_have_ptrace_getregs=yes],
119 [gdb_cv_have_ptrace_getregs=no])])
120 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
121 if test $gdb_cv_have_ptrace_getregs = yes; then
122 AC_DEFINE(HAVE_PTRACE_GETREGS)
123 fi
124
125 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
126 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
127 dnl Linux kernel patch for SSE support. That patch may or may not
128 dnl actually make it into the official distribution. If you find that
129 dnl years have gone by since this configure test was added, and Linux
130 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
131 dnl make it, and you can delete this code.
132 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
133 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
134 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
135 [PTRACE_GETXFPREGS;],
136 [gdb_cv_have_ptrace_getxfpregs=yes],
137 [gdb_cv_have_ptrace_getxfpregs=no])])
138 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
139 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
140 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
141 fi
142
143 AC_CHECK_LIB(socket, socketpair)
144 AC_CHECK_FUNCS(socketpair)
145
146
147 BFD_NEED_DECLARATION(malloc)
148 BFD_NEED_DECLARATION(realloc)
149 BFD_NEED_DECLARATION(free)
150 BFD_NEED_DECLARATION(strerror)
151 BFD_NEED_DECLARATION(strdup)
152 BFD_NEED_DECLARATION(strstr)
153
154
155 # The following save_state_t checkery is only necessary for HPUX
156 # versions earlier than 10.20. When those fade from memory, this
157 # could be expunged. --jsm 1999-03-22
158
159 AC_MSG_CHECKING(for HPUX save_state structure)
160 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
161 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
162 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
163 gdb_cv_hpux_sswide=no)
164 if test $gdb_cv_hpux_savestate = yes
165 then
166 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
167 fi
168 if test $gdb_cv_hpux_sswide = yes
169 then
170 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
171 fi
172 AC_MSG_RESULT($gdb_cv_hpux_sswide)
173
174
175 # If we are configured native on GNU/Linux, work around problems with
176 # sys/procfs.h
177 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
178
179 if test "${target}" = "${host}"; then
180 case "${host}" in
181 i[[3456]]86-*-linux*)
182 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
183 AC_DEFINE(sys_quotactl)
184 ;;
185 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
186 AC_DEFINE(NEW_PROC_API)
187 ;;
188 *-*-solaris2.[[678]])
189 AC_DEFINE(NEW_PROC_API)
190 ;;
191 esac
192 fi
193
194 if test "$ac_cv_header_sys_procfs_h" = yes; then
195 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
196 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
197 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
198 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
199 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
200 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
201 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
202 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
203
204 dnl Check for broken prfpregset_t type
205
206 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
207 dnl prfpregset_t type (it's a typedef for the pointer to a struct
208 dnl instead of the struct itself). We detect this here, and work
209 dnl around it in lin-thread.c.
210
211 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
212 AC_MSG_CHECKING(whether prfpregset_t type is broken)
213 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
214 [AC_TRY_RUN([#include <sys/procfs.h>
215 int main ()
216 {
217 if (sizeof (prfpregset_t) == sizeof (void *))
218 return 1;
219 return 0;
220 }],
221 gdb_cv_prfpregset_t_broken=no,
222 gdb_cv_prfpregset_t_broken=yes,
223 gdb_cv_prfpregset_t_broken=yes)])
224 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
225 if test $gdb_cv_prfpregset_t_broken = yes; then
226 AC_DEFINE(PRFPREGSET_T_BROKEN)
227 fi
228 fi
229
230 dnl Check for PIOCSET ioctl entry
231
232 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
233 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
234 [AC_TRY_COMPILE([#include <unistd.h>
235 #include <sys/types.h>
236 #include <sys/procfs.h>
237 ], [
238 int dummy;;
239 dummy = ioctl(0, PIOCSET, &dummy);
240 ],
241 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
242 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
243 if test $gdb_cv_have_procfs_piocset = yes; then
244 AC_DEFINE(HAVE_PROCFS_PIOCSET)
245 fi
246 fi
247
248 dnl See if host has libm. This is usually needed by simulators.
249 AC_CHECK_LIB(m, main)
250
251 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
252 dnl
253 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
254 dnl under Solaris 2.6 because it is some funky empty library.
255 dnl So only link in libw if we have to.
256 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
257
258 dnl See if compiler supports "long long" type.
259
260 AC_MSG_CHECKING(for long long support in compiler)
261 AC_CACHE_VAL(gdb_cv_c_long_long,
262 [AC_TRY_COMPILE(, [
263 extern long long foo;
264 switch (foo & 2) { case 0: return 1; }
265 ],
266 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
267 AC_MSG_RESULT($gdb_cv_c_long_long)
268 if test $gdb_cv_c_long_long = yes; then
269 AC_DEFINE(CC_HAS_LONG_LONG)
270 fi
271
272 dnl See if the compiler and runtime support printing long long
273
274 AC_MSG_CHECKING(for long long support in printf)
275 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
276 [AC_TRY_RUN([
277 int main () {
278 char buf[32];
279 long long l = 0;
280 l = (l << 16) + 0x0123;
281 l = (l << 16) + 0x4567;
282 l = (l << 16) + 0x89ab;
283 l = (l << 16) + 0xcdef;
284 sprintf (buf, "0x%016llx", l);
285 return (strcmp ("0x0123456789abcdef", buf));
286 }],
287 gdb_cv_printf_has_long_long=yes,
288 gdb_cv_printf_has_long_long=no,
289 gdb_cv_printf_has_long_long=no)])
290 if test $gdb_cv_printf_has_long_long = yes; then
291 AC_DEFINE(PRINTF_HAS_LONG_LONG)
292 fi
293 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
294
295 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
296 dnl because autoconf complains about cross-compilation issues. However, this
297 dnl code uses the same variables as the macro for compatibility.
298
299 AC_MSG_CHECKING(for long double support in compiler)
300 AC_CACHE_VAL(ac_cv_c_long_double,
301 [AC_TRY_COMPILE(, [long double foo;],
302 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
303 AC_MSG_RESULT($ac_cv_c_long_double)
304 if test $ac_cv_c_long_double = yes; then
305 AC_DEFINE(HAVE_LONG_DOUBLE)
306 fi
307
308 dnl See if the compiler and runtime support printing long doubles
309
310 AC_MSG_CHECKING(for long double support in printf)
311 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
312 [AC_TRY_RUN([
313 int main () {
314 char buf[16];
315 long double f = 3.141592653;
316 sprintf (buf, "%Lg", f);
317 return (strncmp ("3.14159", buf, 7));
318 }],
319 gdb_cv_printf_has_long_double=yes,
320 gdb_cv_printf_has_long_double=no,
321 gdb_cv_printf_has_long_double=no)])
322 if test $gdb_cv_printf_has_long_double = yes; then
323 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
324 fi
325 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
326
327 dnl See if the compiler and runtime support scanning long doubles
328
329 AC_MSG_CHECKING(for long double support in scanf)
330 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
331 [AC_TRY_RUN([
332 int main () {
333 char *buf = "3.141592653";
334 long double f = 0;
335 sscanf (buf, "%Lg", &f);
336 return !(f > 3.14159 && f < 3.14160);
337 }],
338 gdb_cv_scanf_has_long_double=yes,
339 gdb_cv_scanf_has_long_double=no,
340 gdb_cv_scanf_has_long_double=no)])
341 if test $gdb_cv_scanf_has_long_double = yes; then
342 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
343 fi
344 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
345
346 AC_FUNC_MMAP
347
348 dnl See if thread_db library is around for Solaris thread debugging. Note that
349 dnl we must explicitly test for version 1 of the library because version 0
350 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
351
352 dnl Note that we only want this if we are both native (host == target), and
353 dnl not doing a canadian cross build (build == host).
354
355 if test ${build} = ${host} -a ${host} = ${target} ; then
356 case ${host_os} in
357 hpux*)
358 AC_MSG_CHECKING(for HPUX/OSF thread support)
359 if test -f /usr/include/dce/cma_config.h ; then
360 if test "$GCC" = "yes" ; then
361 AC_MSG_RESULT(yes)
362 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
363 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
364 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
365 else
366 AC_MSG_RESULT(no (suppressed because you are not using GCC))
367 fi
368 else
369 AC_MSG_RESULT(no)
370 fi
371 ;;
372 solaris*)
373 AC_MSG_CHECKING(for Solaris thread debugging library)
374 if test -f /usr/lib/libthread_db.so.1 ; then
375 AC_MSG_RESULT(yes)
376 AC_DEFINE(HAVE_THREAD_DB_LIB)
377 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
378 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
379 AC_CHECK_LIB(dl, dlopen)
380 if test "$GCC" = "yes" ; then
381 # The GNU linker requires the -export-dynamic option to make
382 # all symbols visible in the dynamic symbol table.
383 hold_ldflags=$LDFLAGS
384 AC_MSG_CHECKING(for the ld -export-dynamic flag)
385 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
386 AC_TRY_LINK(, [int i;], found=yes, found=no)
387 LDFLAGS=$hold_ldflags
388 AC_MSG_RESULT($found)
389 if test $found = yes; then
390 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
391 fi
392 fi
393 # Sun randomly tweaked the prototypes in <proc_service.h>
394 # at one point.
395 AC_MSG_CHECKING(if <proc_service.h> is old)
396 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
397 AC_TRY_COMPILE([
398 #include <proc_service.h>
399 ps_err_e ps_pdwrite
400 (struct ps_prochandle*, psaddr_t, const void*, size_t);
401 ],, gdb_cv_proc_service_is_old=no,
402 gdb_cv_proc_service_is_old=yes)
403 ])
404 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
405 if test $gdb_cv_proc_service_is_old = yes; then
406 AC_DEFINE(PROC_SERVICE_IS_OLD)
407 fi
408 else
409 AC_MSG_RESULT(no)
410 fi
411 ;;
412 esac
413 AC_SUBST(CONFIG_LDFLAGS)
414 fi
415
416 dnl Handle optional features that can be enabled.
417
418 dnl Handle MI sub-directory configury.
419 AC_ARG_ENABLE(gdbmi,
420 [ --enable-gdbmi Enable GDB-MI interface],
421 [
422 case "${enable_gdbmi}" in
423 yes | no) ;;
424 "") enable_gdbmi=yes ;;
425 *)
426 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
427 ;;
428 esac
429 ])
430 case ${enable_gdbmi} in
431 "yes" )
432 if test -d "${srcdir}/mi" ; then
433 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
434 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
435 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
436 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
437 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
438 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
439 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
440 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
441 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
442 fi
443 ;;
444 esac
445
446 AC_ARG_ENABLE(tui,
447 [ --enable-tui Enable full-screen terminal user interface],
448 [
449 case "${enable_tui}" in
450 yes | no) ;;
451 "") enable_tui=yes ;;
452 *)
453 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
454 ;;
455 esac
456 ])
457 case ${enable_tui} in
458 "yes" )
459 AC_DEFINE(TUI)
460 BUILD_TUI=all-tui
461 TUI_LIBRARY=tui/libtui.a
462 ;;
463 * )
464 BUILD_TUI=
465 TUI_LIBRARY=
466 ;;
467 esac
468 AC_SUBST(BUILD_TUI)
469 AC_SUBST(TUI_LIBRARY)
470
471 AC_ARG_ENABLE(netrom,
472 [ --enable-netrom Enable NetROM support],
473 [case "${enableval}" in
474 yes) enable_netrom=yes ;;
475 no) enable_netrom=no ;;
476 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
477 esac])
478
479 if test "${enable_netrom}" = "yes"; then
480 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
481 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
482 fi
483
484
485 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
486 -Wformat -Wparentheses -Wpointer-arith"
487 # Not yet: -Wall -Wpointer-arith -Wstrict-prototypes
488 # -Wmissing-prototypes -Wmissing-declarations
489 AC_ARG_ENABLE(build-warnings,
490 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
491 [case "${enableval}" in
492 yes) ;;
493 no) build_warnings="-w";;
494 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
495 build_warnings="${build_warnings} ${t}";;
496 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
497 build_warnings="${t} ${build_warnings}";;
498 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
499 esac
500 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
501 echo "Setting compiler warning flags = $build_warnings" 6>&1
502 fi])dnl
503 WARN_CFLAGS=""
504 WERROR_CFLAGS=""
505 if test "x${build_warnings}" != x -a "x$GCC" = xyes
506 then
507 AC_MSG_CHECKING(compiler warning flags)
508 # Separate out the -Werror flag as some files just cannot be
509 # compiled with it enabled.
510 for w in ${build_warnings}; do
511 case $w in
512 -Werr*) WERROR_CFLAGS=-Werror ;;
513 *) # Check that GCC accepts it
514 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
515 :
516 else
517 WARN_CFLAGS="${WARN_CFLAGS} $w"
518 fi
519 esac
520 done
521 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
522 fi
523 AC_SUBST(WARN_CFLAGS)
524 AC_SUBST(WERROR_CFLAGS)
525
526 MMALLOC_CFLAGS=
527 MMALLOC=
528 AC_SUBST(MMALLOC_CFLAGS)
529 AC_SUBST(MMALLOC)
530
531 AC_ARG_WITH(mmalloc,
532 [ --with-mmalloc Use memory mapped malloc package],
533 [case "${withval}" in
534 yes) want_mmalloc=true ;;
535 no) want_mmalloc=false;;
536 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
537 esac],[want_mmalloc=false])dnl
538
539 if test x$want_mmalloc = xtrue; then
540 AC_DEFINE(USE_MMALLOC)
541 AC_DEFINE(MMCHECK_FORCE)
542 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
543 MMALLOC='../mmalloc/libmmalloc.a'
544 fi
545
546 AC_ARG_WITH(included-regex,
547 [ --with-included-regex Use included regex],
548 [case "${withval}" in
549 yes) want_included_regex=true ;;
550 no) want_included_regex=false;;
551 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
552 esac],[want_included_regex=true])dnl
553
554 if test $want_included_regex = false; then
555 AC_MSG_CHECKING(for GNU regex)
556 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
557 [AC_TRY_COMPILE([#include <gnu-versions.h>
558 #include <sys/types.h>
559 #include <regex.h>],
560 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
561 #error No valid GNU regex.
562 #endif
563 ],
564 [gdb_cv_have_gnu_regex=yes],
565 [gdb_cv_have_gnu_regex=no])])
566 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
567 if test $gdb_cv_have_gnu_regex = no; then
568 want_included_regex=true
569 fi
570 fi
571
572 if test x${want_included_regex} = xtrue; then
573 REGEX="gnu-regex.o"
574 AC_DEFINE(USE_INCLUDED_REGEX)
575 fi
576 AC_SUBST(REGEX)
577
578 # In the Cygwin environment, we need some additional flags.
579 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
580 [AC_EGREP_CPP(lose, [
581 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
582 lose
583 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
584
585 DLLTOOL=${DLLTOOL-dlltool}
586 WINDRES=${WINDRES-windres}
587 AC_SUBST(DLLTOOL)
588 AC_SUBST(WINDRES)
589
590 dnl Figure out which term library to use.
591 if test x$gdb_host = xgo32; then
592 TERM_LIB=
593 else
594 if test x$gdb_cv_os_cygwin = xyes; then
595 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
596 else
597 TERM_LIB=
598 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
599 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
600 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
601 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
602 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
603 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
604
605 if test "x$TERM_LIB" = x
606 then
607 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
608 fi
609 fi
610 fi
611 AC_SUBST(TERM_LIB)
612
613 # libreadline needs libuser32.a in a cygwin environment
614 WIN32LIBS=
615 if test x$gdb_cv_os_cygwin = xyes; then
616 WIN32LIBS="-luser32"
617 case "${target}" in
618 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
619 ;;
620 esac
621 fi
622 AC_SUBST(WIN32LIBS)
623
624 LIBGUI="../libgui/src/libgui.a"
625 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
626 AC_SUBST(LIBGUI)
627 AC_SUBST(GUI_CFLAGS_X)
628
629 AC_ARG_WITH(cpu,
630 [ --with-cpu=CPU Set the default CPU variant to debug],
631 [case "${target}" in
632 powerpc-* | powerpcle-* )
633 ## It would be nice to keep this table in sync with the one in
634 ## gcc/configure.
635 case "${with_cpu}" in
636 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
637 | 604 | 750 )
638 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
639 ;;
640 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
641 ## These are all RS6000 variants, as far as GDB is concerned.
642 with_cpu=rs6000
643 ;;
644 603e | ec603e )
645 with_cpu=603
646 ;;
647 604e )
648 with_cpu=604
649 ;;
650 * )
651 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
652 with_cpu=ppc-uisa
653 ;;
654 esac
655 ;;
656 * )
657 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
658 ;;
659 esac
660 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
661 ],)
662
663
664 AC_ARG_ENABLE(gdbtk,
665 [ --enable-gdbtk Enable GDBTK GUI front end],
666 [case "${enableval}" in
667 yes)
668 case "$host" in
669 *go32*)
670 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
671 enable_gdbtk=no ;;
672 *windows*)
673 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
674 enable_gdbtk=no ;;
675 *)
676 enable_gdbtk=yes ;;
677 esac ;;
678 no)
679 enable_gdbtk=no ;;
680 *)
681 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
682 esac],
683 [
684 # Default is on for everything but go32 and Cygwin
685 case "$host" in
686 *go32* | *windows*)
687 ;;
688 *)
689 if test -d "${srcdir}/gdbtk" ; then
690 enable_gdbtk=yes
691 fi
692 ;;
693 esac
694 ])
695
696 WIN32LDAPP=
697 AC_SUBST(WIN32LIBS)
698 AC_SUBST(WIN32LDAPP)
699
700 configdir="unix"
701
702 GDBTKLIBS=
703 if test "${enable_gdbtk}" = "yes"; then
704
705 CY_AC_PATH_TCLCONFIG
706 if test -z "${no_tcl}"; then
707 CY_AC_LOAD_TCLCONFIG
708 CY_AC_PATH_TKCONFIG
709
710 # If $no_tk is nonempty, then we can't do Tk, and there is no
711 # point to doing Tcl.
712 if test -z "${no_tk}"; then
713 CY_AC_LOAD_TKCONFIG
714 CY_AC_PATH_TCLH
715 CY_AC_PATH_TKH
716 CY_AC_PATH_ITCLH
717 CY_AC_PATH_ITKH
718 CY_AC_PATH_TIXH
719
720 # now look for Itcl library stuff
721
722 CY_AC_PATH_ITCLCONFIG
723 if test -z "${no_itcl}"; then
724 CY_AC_LOAD_ITCLCONFIG
725 case "${host}" in
726 *-*-cygwin*)
727 itcldir=../itcl/itcl/win/
728 ;;
729 *)
730 itcldir=../itcl/itcl/unix/
731 ;;
732 esac
733
734
735 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
736 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
737 fi
738
739
740 # now look for Itk library stuff
741 CY_AC_PATH_ITKCONFIG
742 if test -z "${no_itcl}"; then
743 CY_AC_LOAD_ITKCONFIG
744
745 case "${host}" in
746 *-*-cygwin*)
747 itkdir=../itcl/itk/win/
748 ;;
749 *)
750 itkdir=../itcl/itk/unix/
751 ;;
752 esac
753
754 ITKLIB="${ITK_BUILD_LIB_SPEC}"
755 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
756 fi
757
758 # now look for Tix library stuff
759 CY_AC_PATH_TIXCONFIG
760 if test -z "${no_tix}"; then
761 CY_AC_LOAD_TIXCONFIG
762 TIXLIB="${TIX_BUILD_LIB_SPEC}"
763 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
764 fi
765
766 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
767 # Tcl/Tk 8.1 require -fwritable strings. I don't
768 # know whether 8.2 will or not, but I bet it will.
769 # I don't have to worry about 7.x since we don't support it.
770 GDBTK_CFLAGS=""
771 if test "$GCC" = "yes"; then
772 if test "$TCL_VERSION" != "8.0" ; then
773 GDBTK_CFLAGS="-fwritable-strings"
774 fi
775 fi
776
777 # Include some libraries that Tcl and Tk want.
778 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
779 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
780 # Yes, the ordering seems wrong here. But it isn't.
781 # TK_LIBS is the list of libraries that need to be linked
782 # after Tcl/Tk. Note that this isn't put into LIBS. If it
783 # were in LIBS then any link tests after this point would
784 # try to include things like `$(LIBGUI)', which wouldn't work.
785 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
786 CONFIG_SRCS="${CONFIG_SRCS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
787 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
788 CONFIG_INITS="${CONFIG_INITS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
789 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
790 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
791 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
792 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
793
794 if test x$gdb_cv_os_cygwin = xyes; then
795 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
796 WIN32LDAPP="-Wl,--subsystem,console"
797 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
798 fi
799 fi
800 fi
801 fi
802
803 AC_SUBST(X_CFLAGS)
804 AC_SUBST(X_LDFLAGS)
805 AC_SUBST(X_LIBS)
806 AC_SUBST(ITCLLIB)
807 AC_SUBST(ITCL_DEPS)
808 AC_SUBST(ITKLIB)
809 AC_SUBST(ITK_DEPS)
810 AC_SUBST(TIXLIB)
811 AC_SUBST(TIX_DEPS)
812 AC_SUBST(GDBTKLIBS)
813 AC_SUBST(GDBTK_CFLAGS)
814
815 AC_PATH_X
816
817
818 # Unlike the sim directory, whether a simulator is linked is controlled by
819 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
820 # This code just checks for a few cases where we'd like to ignore those
821 # definitions, even when they're present in the '.mt' file. These cases
822 # are when --disable-sim is specified, or if the simulator directory is
823 # not part of the soruce tree.
824 #
825 AC_ARG_ENABLE(sim,
826 [ --enable-sim Link gdb with simulator],
827 [echo "enable_sim = $enable_sim";
828 echo "enableval = ${enableval}";
829 case "${enableval}" in
830 yes) ignore_sim=false ;;
831 no) ignore_sim=true ;;
832 *) ignore_sim=false ;;
833 esac],
834 [ignore_sim=false])
835
836 if test ! -d "${srcdir}/../sim"; then
837 ignore_sim=true
838 fi
839
840 if test "${ignore_sim}" = "true"; then
841 IGNORE_SIM="SIM="
842 IGNORE_SIM_OBS="SIM_OBS="
843 else
844 IGNORE_SIM=""
845 IGNORE_SIM_OBS=""
846 AC_DEFINE(WITH_SIM)
847 fi
848 AC_SUBST(IGNORE_SIM)
849 AC_SUBST(IGNORE_SIM_OBS)
850
851 AC_SUBST(ENABLE_CFLAGS)
852
853 AC_SUBST(CONFIG_OBS)
854 AC_SUBST(CONFIG_DEPS)
855 AC_SUBST(CONFIG_SRCS)
856 AC_SUBST(CONFIG_INITS)
857 AC_SUBST(CONFIG_ALL)
858 AC_SUBST(CONFIG_CLEAN)
859 AC_SUBST(CONFIG_INSTALL)
860 AC_SUBST(CONFIG_UNINSTALL)
861
862 # Begin stuff to support --enable-shared
863 AC_ARG_ENABLE(shared,
864 [ --enable-shared Use shared libraries],
865 [case "${enableval}" in
866 yes) shared=true ;;
867 no) shared=false ;;
868 *) shared=true ;;
869 esac])dnl
870
871 HLDFLAGS=
872 HLDENV=
873 # If we have shared libraries, try to set rpath reasonably.
874 if test "${shared}" = "true"; then
875 case "${host}" in
876 *-*-hpux*)
877 HLDFLAGS='-Wl,+s,+b,$(libdir)'
878 ;;
879 *-*-irix5* | *-*-irix6*)
880 HLDFLAGS='-Wl,-rpath,$(libdir)'
881 ;;
882 *-*-linux*aout*)
883 ;;
884 *-*-linux* | *-pc-linux-gnu*)
885 HLDFLAGS='-Wl,-rpath,$(libdir)'
886 ;;
887 *-*-solaris*)
888 HLDFLAGS='-R $(libdir)'
889 ;;
890 *-*-sysv4*)
891 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;'
892 ;;
893 esac
894 fi
895
896 # On SunOS, if the linker supports the -rpath option, use it to
897 # prevent ../bfd and ../opcodes from being included in the run time
898 # search path.
899 case "${host}" in
900 *-*-sunos*)
901 echo 'main () { }' > conftest.c
902 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
903 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
904 :
905 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
906 :
907 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
908 :
909 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
910 :
911 elif test "${shared}" = "true"; then
912 HLDFLAGS='-Wl,-rpath=$(libdir)'
913 else
914 HLDFLAGS='-Wl,-rpath='
915 fi
916 rm -f conftest.t conftest.c conftest
917 ;;
918 esac
919 AC_SUBST(HLDFLAGS)
920 AC_SUBST(HLDENV)
921 # End stuff to support --enable-shared
922
923 # target_subdir is used by the testsuite to find the target libraries.
924 target_subdir=
925 if test "${host}" != "${target}"; then
926 target_subdir="${target_alias}/"
927 fi
928 AC_SUBST(target_subdir)
929
930 frags=
931 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
932 if test ! -f ${host_makefile_frag}; then
933 AC_MSG_ERROR("*** Gdb does not support host ${host}")
934 fi
935 frags="$frags $host_makefile_frag"
936
937 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
938 if test ! -f ${target_makefile_frag}; then
939 AC_MSG_ERROR("*** Gdb does not support target ${target}")
940 fi
941 frags="$frags $target_makefile_frag"
942
943 AC_SUBST_FILE(host_makefile_frag)
944 AC_SUBST_FILE(target_makefile_frag)
945 AC_SUBST(frags)
946
947 changequote(,)dnl
948 hostfile=`sed -n '
949 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
950 ' ${host_makefile_frag}`
951
952 targetfile=`sed -n '
953 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
954 ' ${target_makefile_frag}`
955
956 # these really aren't orthogonal true/false values of the same condition,
957 # but shells are slow enough that I like to reuse the test conditions
958 # whenever possible
959 if test "${target}" = "${host}"; then
960 nativefile=`sed -n '
961 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
962 ' ${host_makefile_frag}`
963 # else
964 # GDBserver is only useful in a "native" enviroment
965 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
966 fi
967 changequote([,])
968
969 SUBDIRS="doc testsuite nlm"
970 if test "${enable_multi_ice}" = "yes"; then
971 SUBDIRS="${SUBDIRS} multi-ice"
972 fi
973
974 AC_SUBST(SUBDIRS)
975
976 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
977 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
978 # corresponding links. But we have to remove the xm.h files and tm.h
979 # files anyway, e.g. when switching from "configure host" to
980 # "configure none".
981
982 files=
983 links=
984 rm -f xm.h
985 if test "${hostfile}" != ""; then
986 files="${files} config/${gdb_host_cpu}/${hostfile}"
987 links="${links} xm.h"
988 fi
989 rm -f tm.h
990 if test "${targetfile}" != ""; then
991 files="${files} config/${gdb_target_cpu}/${targetfile}"
992 links="${links} tm.h"
993 fi
994 rm -f nm.h
995 if test "${nativefile}" != ""; then
996 files="${files} config/${gdb_host_cpu}/${nativefile}"
997 links="${links} nm.h"
998 else
999 # A cross-only configuration.
1000 files="${files} config/nm-empty.h"
1001 links="${links} nm.h"
1002 fi
1003 AC_PROG_LN_S
1004
1005 AC_LINK_FILES($files, $links)
1006
1007 dnl Check for exe extension set on certain hosts (e.g. Win32)
1008 AC_EXEEXT
1009
1010 AC_CONFIG_SUBDIRS($configdirs)
1011 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
1012 [
1013 dnl Autoconf doesn't provide a mechanism for modifying definitions
1014 dnl provided by makefile fragments.
1015 dnl
1016 if test "${nativefile}" = ""; then
1017 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1018 < Makefile > Makefile.tem
1019 mv -f Makefile.tem Makefile
1020 fi
1021
1022 changequote(,)dnl
1023 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1024 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1025 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1026 mv -f Makefile.tmp Makefile
1027 changequote([,])dnl
1028
1029
1030 case x$CONFIG_HEADERS in
1031 xconfig.h:config.in)
1032 echo > stamp-h ;;
1033 esac
1034 ],
1035 [
1036 gdb_host_cpu=$gdb_host_cpu
1037 gdb_target_cpu=$gdb_target_cpu
1038 nativefile=$nativefile
1039 ])
1040
1041 exit 0
This page took 0.147596 seconds and 4 git commands to generate.