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