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