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