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