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