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