e486cb56df3c8a3bcfd51e4712c40acdc2dd3060
[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 AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
92 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
93 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
94 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
95 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
96 time.h sys/ioctl.h)
97 AC_HEADER_STAT
98
99 AC_C_CONST
100
101 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
102 AC_FUNC_ALLOCA
103
104 dnl See if ptrace.h provides the PTRACE_GETREGS request.
105 AC_MSG_CHECKING(for PTRACE_GETREGS)
106 AC_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])])
111 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
112 if test $gdb_cv_have_ptrace_getregs = yes; then
113 AC_DEFINE(HAVE_PTRACE_GETREGS)
114 fi
115
116 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
117 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
118 dnl Linux kernel patch for SSE support. That patch may or may not
119 dnl actually make it into the official distribution. If you find that
120 dnl years have gone by since this configure test was added, and Linux
121 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
122 dnl make it, and you can delete this code.
123 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
124 AC_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])])
129 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
130 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
131 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
132 fi
133
134 AC_CHECK_LIB(socket, socketpair)
135 AC_CHECK_FUNCS(socketpair)
136
137
138 BFD_NEED_DECLARATION(malloc)
139 BFD_NEED_DECLARATION(realloc)
140 BFD_NEED_DECLARATION(free)
141 BFD_NEED_DECLARATION(strerror)
142 BFD_NEED_DECLARATION(strdup)
143 BFD_NEED_DECLARATION(strstr)
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
150 AC_MSG_CHECKING(for HPUX save_state structure)
151 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
152 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
153 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
154 gdb_cv_hpux_sswide=no)
155 if test $gdb_cv_hpux_savestate = yes
156 then
157 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
158 fi
159 if test $gdb_cv_hpux_sswide = yes
160 then
161 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
162 fi
163 AC_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
168 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
169
170 if 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 ;;
176 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
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 ;;
185 esac
186 fi
187
188 if 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)
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)
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
214 fi
215
216 dnl See if host has libm. This is usually needed by simulators.
217 AC_CHECK_LIB(m, main)
218
219 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
220 dnl
221 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
222 dnl under Solaris 2.6 because it is some funky empty library.
223 dnl So only link in libw if we have to.
224 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
225
226 dnl See if compiler supports "long long" type.
227
228 AC_MSG_CHECKING(for long long support in compiler)
229 AC_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 ],
234 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
235 AC_MSG_RESULT($gdb_cv_c_long_long)
236 if test $gdb_cv_c_long_long = yes; then
237 AC_DEFINE(CC_HAS_LONG_LONG)
238 fi
239
240 dnl See if the compiler and runtime support printing long long
241
242 AC_MSG_CHECKING(for long long support in printf)
243 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
244 [AC_TRY_RUN([
245 int 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 }],
255 gdb_cv_printf_has_long_long=yes,
256 gdb_cv_printf_has_long_long=no,
257 gdb_cv_printf_has_long_long=no)])
258 if test $gdb_cv_printf_has_long_long = yes; then
259 AC_DEFINE(PRINTF_HAS_LONG_LONG)
260 fi
261 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
262
263 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
264 dnl because autoconf complains about cross-compilation issues. However, this
265 dnl code uses the same variables as the macro for compatibility.
266
267 AC_MSG_CHECKING(for long double support in compiler)
268 AC_CACHE_VAL(ac_cv_c_long_double,
269 [AC_TRY_COMPILE(, [long double foo;],
270 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
271 AC_MSG_RESULT($ac_cv_c_long_double)
272 if test $ac_cv_c_long_double = yes; then
273 AC_DEFINE(HAVE_LONG_DOUBLE)
274 fi
275
276 dnl See if the compiler and runtime support printing long doubles
277
278 AC_MSG_CHECKING(for long double support in printf)
279 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
280 [AC_TRY_RUN([
281 int main () {
282 char buf[16];
283 long double f = 3.141592653;
284 sprintf (buf, "%Lg", f);
285 return (strncmp ("3.14159", buf, 7));
286 }],
287 gdb_cv_printf_has_long_double=yes,
288 gdb_cv_printf_has_long_double=no,
289 gdb_cv_printf_has_long_double=no)])
290 if test $gdb_cv_printf_has_long_double = yes; then
291 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
292 fi
293 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
294
295 dnl See if the compiler and runtime support scanning long doubles
296
297 AC_MSG_CHECKING(for long double support in scanf)
298 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
299 [AC_TRY_RUN([
300 int 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 }],
306 gdb_cv_scanf_has_long_double=yes,
307 gdb_cv_scanf_has_long_double=no,
308 gdb_cv_scanf_has_long_double=no)])
309 if test $gdb_cv_scanf_has_long_double = yes; then
310 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
311 fi
312 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
313
314 AC_FUNC_MMAP
315
316 dnl See if thread_db library is around for Solaris thread debugging. Note that
317 dnl we must explicitly test for version 1 of the library because version 0
318 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
319
320 dnl Note that we only want this if we are both native (host == target), and
321 dnl not doing a canadian cross build (build == host).
322
323 if 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)
382 fi
383
384 dnl Handle optional features that can be enabled.
385
386 dnl Handle MI sub-directory configury.
387 AC_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 ])
398 case ${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)"
405 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
406 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
407 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
408 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
409 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
410 fi
411 ;;
412 esac
413
414 AC_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 ])
425 case ${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 ;;
435 esac
436 AC_SUBST(BUILD_TUI)
437 AC_SUBST(TUI_LIBRARY)
438
439 AC_ARG_ENABLE(netrom,
440 [ --enable-netrom Enable NetROM support],
441 [case "${enableval}" in
442 yes) enable_netrom=yes ;;
443 no) enable_netrom=no ;;
444 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
445 esac])
446
447 if test "${enable_netrom}" = "yes"; then
448 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
449 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
450 fi
451
452 AC_ARG_ENABLE(build-warnings,
453 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
454 [
455 # not yet: -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
456 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith"
457 case "${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"`;;
465 esac
466 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
467 echo "Setting warning flags = $build_warnings" 6>&1
468 fi
469 WARN_CFLAGS=""
470 WERROR_CFLAGS=""
471 if test "x${build_warnings}" != x -a "x$GCC" = xyes
472 then
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
481 fi],[build_warnings=""])dnl
482
483 AC_SUBST(WARN_CFLAGS)
484 AC_SUBST(WERROR_CFLAGS)
485
486 MMALLOC_CFLAGS=
487 MMALLOC=
488 AC_SUBST(MMALLOC_CFLAGS)
489 AC_SUBST(MMALLOC)
490
491 AC_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) ;;
497 esac],[want_mmalloc=false])dnl
498
499 if 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'
504 fi
505
506 AC_ARG_WITH(included-regex,
507 [ --with-included-regex Use included regex],
508 [case "${withval}" in
509 yes) want_included_regex=true ;;
510 no) want_included_regex=false;;
511 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
512 esac],[want_included_regex=true])dnl
513
514 REGEX="gnu-regex.o"
515 REGEX_CFLAGS="-DUSE_INCLUDED_REGEX"
516 if test $want_included_regex = false; then
517 AC_MSG_CHECKING(for GNU regex)
518 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
519 [AC_TRY_COMPILE([#include <gnu-versions.h>
520 #include <sys/types.h>
521 #include <regex.h>],
522 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
523 #error No valid GNU regex.
524 #endif
525 ],
526 [gdb_cv_have_gnu_regex=yes],
527 [gdb_cv_have_gnu_regex=no])])
528 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
529 if test $gdb_cv_have_gnu_regex = yes; then
530 REGEX=
531 REGEX_CFLAGS=
532 fi
533 fi
534 AC_SUBST(REGEX)
535 AC_SUBST(REGEX_CFLAGS)
536
537 # In the Cygwin environment, we need some additional flags.
538 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
539 [AC_EGREP_CPP(lose, [
540 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
541 lose
542 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
543
544 DLLTOOL=${DLLTOOL-dlltool}
545 WINDRES=${WINDRES-windres}
546 AC_SUBST(DLLTOOL)
547 AC_SUBST(WINDRES)
548
549 dnl Figure out which term library to use.
550 if test x$gdb_host = xgo32; then
551 TERM_LIB=
552 else
553 if test x$gdb_cv_os_cygwin = xyes; then
554 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
555 else
556 TERM_LIB=
557 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
558 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
559 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
560 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
561 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
562 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
563
564 if test "x$TERM_LIB" = x
565 then
566 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
567 fi
568 fi
569 fi
570 AC_SUBST(TERM_LIB)
571
572 # libreadline needs libuser32.a in a cygwin environment
573 WIN32LIBS=
574 if test x$gdb_cv_os_cygwin = xyes; then
575 WIN32LIBS="-luser32"
576 case "${target}" in
577 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
578 ;;
579 esac
580 fi
581 AC_SUBST(WIN32LIBS)
582
583 LIBGUI="../libgui/src/libgui.a"
584 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
585 AC_SUBST(LIBGUI)
586 AC_SUBST(GUI_CFLAGS_X)
587
588 AC_ARG_WITH(cpu,
589 [ --with-cpu=CPU Set the default CPU variant to debug],
590 [case "${target}" in
591 powerpc-* | powerpcle-* )
592 ## It would be nice to keep this table in sync with the one in
593 ## gcc/configure.
594 case "${with_cpu}" in
595 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
596 | 604 | 750 )
597 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
598 ;;
599 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
600 ## These are all RS6000 variants, as far as GDB is concerned.
601 with_cpu=rs6000
602 ;;
603 603e | ec603e )
604 with_cpu=603
605 ;;
606 604e )
607 with_cpu=604
608 ;;
609 * )
610 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
611 with_cpu=ppc-uisa
612 ;;
613 esac
614 ;;
615 * )
616 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
617 ;;
618 esac
619 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
620 ],)
621
622
623 AC_ARG_ENABLE(gdbtk,
624 [ --enable-gdbtk Enable GDBTK GUI front end],
625 [case "${enableval}" in
626 yes)
627 case "$host" in
628 *go32*)
629 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
630 enable_gdbtk=no ;;
631 *windows*)
632 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
633 enable_gdbtk=no ;;
634 *)
635 enable_gdbtk=yes ;;
636 esac ;;
637 no)
638 enable_gdbtk=no ;;
639 *)
640 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
641 esac],
642 [
643 # Default is on for everything but go32 and Cygwin
644 case "$host" in
645 *go32* | *windows*)
646 ;;
647 *)
648 if test -d "${srcdir}/gdbtk" ; then
649 enable_gdbtk=yes
650 fi
651 ;;
652 esac
653 ])
654
655 WIN32LDAPP=
656 AC_SUBST(WIN32LIBS)
657 AC_SUBST(WIN32LDAPP)
658
659 configdir="unix"
660
661 GDBTKLIBS=
662 if test "${enable_gdbtk}" = "yes"; then
663
664 CY_AC_PATH_TCLCONFIG
665 if test -z "${no_tcl}"; then
666 CY_AC_LOAD_TCLCONFIG
667 CY_AC_PATH_TKCONFIG
668
669 # If $no_tk is nonempty, then we can't do Tk, and there is no
670 # point to doing Tcl.
671 if test -z "${no_tk}"; then
672 CY_AC_LOAD_TKCONFIG
673 CY_AC_PATH_TCLH
674 CY_AC_PATH_TKH
675 CY_AC_PATH_ITCLH
676 CY_AC_PATH_ITKH
677 CY_AC_PATH_TIXH
678
679 # now look for Itcl library stuff
680
681 CY_AC_PATH_ITCLCONFIG
682 if test -z "${no_itcl}"; then
683 CY_AC_LOAD_ITCLCONFIG
684 case "${host}" in
685 *-*-cygwin*)
686 itcldir=../itcl/itcl/win/
687 ;;
688 *)
689 itcldir=../itcl/itcl/unix/
690 ;;
691 esac
692
693
694 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
695 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
696 fi
697
698
699 # now look for Itk library stuff
700 CY_AC_PATH_ITKCONFIG
701 if test -z "${no_itcl}"; then
702 CY_AC_LOAD_ITKCONFIG
703
704 case "${host}" in
705 *-*-cygwin*)
706 itkdir=../itcl/itk/win/
707 ;;
708 *)
709 itkdir=../itcl/itk/unix/
710 ;;
711 esac
712
713 ITKLIB="${ITK_BUILD_LIB_SPEC}"
714 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
715 fi
716
717 # now look for Tix library stuff
718 CY_AC_PATH_TIXCONFIG
719 if test -z "${no_tix}"; then
720 CY_AC_LOAD_TIXCONFIG
721 TIXLIB="${TIX_BUILD_LIB_SPEC}"
722 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
723 fi
724
725 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
726 # Tcl/Tk 8.1 require -fwritable strings. I don't
727 # know whether 8.2 will or not, but I bet it will.
728 # I don't have to worry about 7.x since we don't support it.
729 GDBTK_CFLAGS=""
730 if test "$GCC" = "yes"; then
731 if test "$TCL_VERSION" != "8.0" ; then
732 GDBTK_CFLAGS="-fwritable-strings"
733 fi
734 fi
735
736 # Include some libraries that Tcl and Tk want.
737 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
738 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
739 # Yes, the ordering seems wrong here. But it isn't.
740 # TK_LIBS is the list of libraries that need to be linked
741 # after Tcl/Tk. Note that this isn't put into LIBS. If it
742 # were in LIBS then any link tests after this point would
743 # try to include things like `$(LIBGUI)', which wouldn't work.
744 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
745 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"
746 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
747 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"
748 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
749 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
750 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
751 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
752
753 if test x$gdb_cv_os_cygwin = xyes; then
754 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
755 WIN32LDAPP="-Wl,--subsystem,console"
756 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
757 fi
758 fi
759 fi
760 fi
761
762 AC_SUBST(X_CFLAGS)
763 AC_SUBST(X_LDFLAGS)
764 AC_SUBST(X_LIBS)
765 AC_SUBST(ITCLLIB)
766 AC_SUBST(ITCL_DEPS)
767 AC_SUBST(ITKLIB)
768 AC_SUBST(ITK_DEPS)
769 AC_SUBST(TIXLIB)
770 AC_SUBST(TIX_DEPS)
771 AC_SUBST(GDBTKLIBS)
772 AC_SUBST(GDBTK_CFLAGS)
773
774 AC_PATH_X
775
776
777 # Unlike the sim directory, whether a simulator is linked is controlled by
778 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
779 # This code just checks for a few cases where we'd like to ignore those
780 # definitions, even when they're present in the '.mt' file. These cases
781 # are when --disable-sim is specified, or if the simulator directory is
782 # not part of the soruce tree.
783 #
784 AC_ARG_ENABLE(sim,
785 [ --enable-sim Link gdb with simulator],
786 [echo "enable_sim = $enable_sim";
787 echo "enableval = ${enableval}";
788 case "${enableval}" in
789 yes) ignore_sim=false ;;
790 no) ignore_sim=true ;;
791 *) ignore_sim=false ;;
792 esac],
793 [ignore_sim=false])
794
795 if test ! -d "${srcdir}/../sim"; then
796 ignore_sim=true
797 fi
798
799 if test "${ignore_sim}" = "true"; then
800 IGNORE_SIM="SIM="
801 IGNORE_SIM_OBS="SIM_OBS="
802 else
803 IGNORE_SIM=""
804 IGNORE_SIM_OBS=""
805 AC_DEFINE(WITH_SIM)
806 fi
807 AC_SUBST(IGNORE_SIM)
808 AC_SUBST(IGNORE_SIM_OBS)
809
810 AC_SUBST(ENABLE_CFLAGS)
811
812 AC_SUBST(CONFIG_OBS)
813 AC_SUBST(CONFIG_DEPS)
814 AC_SUBST(CONFIG_SRCS)
815 AC_SUBST(CONFIG_INITS)
816 AC_SUBST(CONFIG_ALL)
817 AC_SUBST(CONFIG_CLEAN)
818 AC_SUBST(CONFIG_INSTALL)
819 AC_SUBST(CONFIG_UNINSTALL)
820
821 # Begin stuff to support --enable-shared
822 AC_ARG_ENABLE(shared,
823 [ --enable-shared Use shared libraries],
824 [case "${enableval}" in
825 yes) shared=true ;;
826 no) shared=false ;;
827 *) shared=true ;;
828 esac])dnl
829
830 HLDFLAGS=
831 HLDENV=
832 # If we have shared libraries, try to set rpath reasonably.
833 if test "${shared}" = "true"; then
834 case "${host}" in
835 *-*-hpux*)
836 HLDFLAGS='-Wl,+s,+b,$(libdir)'
837 ;;
838 *-*-irix5* | *-*-irix6*)
839 HLDFLAGS='-Wl,-rpath,$(libdir)'
840 ;;
841 *-*-linux*aout*)
842 ;;
843 *-*-linux* | *-pc-linux-gnu*)
844 HLDFLAGS='-Wl,-rpath,$(libdir)'
845 ;;
846 *-*-solaris*)
847 HLDFLAGS='-R $(libdir)'
848 ;;
849 *-*-sysv4*)
850 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;'
851 ;;
852 esac
853 fi
854
855 # On SunOS, if the linker supports the -rpath option, use it to
856 # prevent ../bfd and ../opcodes from being included in the run time
857 # search path.
858 case "${host}" in
859 *-*-sunos*)
860 echo 'main () { }' > conftest.c
861 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
862 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
863 :
864 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
865 :
866 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
867 :
868 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
869 :
870 elif test "${shared}" = "true"; then
871 HLDFLAGS='-Wl,-rpath=$(libdir)'
872 else
873 HLDFLAGS='-Wl,-rpath='
874 fi
875 rm -f conftest.t conftest.c conftest
876 ;;
877 esac
878 AC_SUBST(HLDFLAGS)
879 AC_SUBST(HLDENV)
880 # End stuff to support --enable-shared
881
882 # target_subdir is used by the testsuite to find the target libraries.
883 target_subdir=
884 if test "${host}" != "${target}"; then
885 target_subdir="${target_alias}/"
886 fi
887 AC_SUBST(target_subdir)
888
889 frags=
890 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
891 if test ! -f ${host_makefile_frag}; then
892 AC_MSG_ERROR("*** Gdb does not support host ${host}")
893 fi
894 frags="$frags $host_makefile_frag"
895
896 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
897 if test ! -f ${target_makefile_frag}; then
898 AC_MSG_ERROR("*** Gdb does not support target ${target}")
899 fi
900 frags="$frags $target_makefile_frag"
901
902 AC_SUBST_FILE(host_makefile_frag)
903 AC_SUBST_FILE(target_makefile_frag)
904 AC_SUBST(frags)
905
906 changequote(,)dnl
907 hostfile=`sed -n '
908 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
909 ' ${host_makefile_frag}`
910
911 targetfile=`sed -n '
912 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
913 ' ${target_makefile_frag}`
914
915 # these really aren't orthogonal true/false values of the same condition,
916 # but shells are slow enough that I like to reuse the test conditions
917 # whenever possible
918 if test "${target}" = "${host}"; then
919 nativefile=`sed -n '
920 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
921 ' ${host_makefile_frag}`
922 # else
923 # GDBserver is only useful in a "native" enviroment
924 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
925 fi
926 changequote([,])
927
928 SUBDIRS="doc testsuite nlm"
929 if test "${enable_multi_ice}" = "yes"; then
930 SUBDIRS="${SUBDIRS} multi-ice"
931 fi
932
933 AC_SUBST(SUBDIRS)
934
935 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
936 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
937 # corresponding links. But we have to remove the xm.h files and tm.h
938 # files anyway, e.g. when switching from "configure host" to
939 # "configure none".
940
941 files=
942 links=
943 rm -f xm.h
944 if test "${hostfile}" != ""; then
945 files="${files} config/${gdb_host_cpu}/${hostfile}"
946 links="${links} xm.h"
947 fi
948 rm -f tm.h
949 if test "${targetfile}" != ""; then
950 files="${files} config/${gdb_target_cpu}/${targetfile}"
951 links="${links} tm.h"
952 fi
953 rm -f nm.h
954 if test "${nativefile}" != ""; then
955 files="${files} config/${gdb_host_cpu}/${nativefile}"
956 links="${links} nm.h"
957 else
958 # A cross-only configuration.
959 files="${files} config/nm-empty.h"
960 links="${links} nm.h"
961 fi
962 AC_PROG_LN_S
963
964 AC_LINK_FILES($files, $links)
965
966 dnl Check for exe extension set on certain hosts (e.g. Win32)
967 AC_EXEEXT
968
969 AC_CONFIG_SUBDIRS($configdirs)
970 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
971 [
972 dnl Autoconf doesn't provide a mechanism for modifying definitions
973 dnl provided by makefile fragments.
974 dnl
975 if test "${nativefile}" = ""; then
976 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
977 < Makefile > Makefile.tem
978 mv -f Makefile.tem Makefile
979 fi
980
981 changequote(,)dnl
982 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
983 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
984 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
985 mv -f Makefile.tmp Makefile
986 changequote([,])dnl
987
988
989 case x$CONFIG_HEADERS in
990 xconfig.h:config.in)
991 echo > stamp-h ;;
992 esac
993 ],
994 [
995 gdb_host_cpu=$gdb_host_cpu
996 gdb_target_cpu=$gdb_target_cpu
997 nativefile=$nativefile
998 ])
999
1000 exit 0
This page took 0.09978 seconds and 4 git commands to generate.