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