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