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