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