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