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