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