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