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