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