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