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