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