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