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