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