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