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