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