Replace ../include/wait.h with gdb_wait.h.
[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_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 AC_CHECK_LIB(dl, dlopen)
325 if test "$GCC" = "yes" ; then
326 # The GNU linker requires the -export-dynamic option to make
327 # all symbols visible in the dynamic symbol table.
328 hold_ldflags=$LDFLAGS
329 AC_MSG_CHECKING(for the ld -export-dynamic flag)
330 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
331 AC_TRY_LINK(, [int i;], found=yes, found=no)
332 LDFLAGS=$hold_ldflags
333 AC_MSG_RESULT($found)
334 if test $found = yes; then
335 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
336 fi
337 fi
338 # Sun randomly tweaked the prototypes in <proc_service.h>
339 # at one point.
340 AC_MSG_CHECKING(if <proc_service.h> is old)
341 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
342 AC_TRY_COMPILE([
343 #include <proc_service.h>
344 ps_err_e ps_pdwrite
345 (struct ps_prochandle*, psaddr_t, const void*, size_t);
346 ],, gdb_cv_proc_service_is_old=no,
347 gdb_cv_proc_service_is_old=yes)
348 ])
349 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
350 if test $gdb_cv_proc_service_is_old = yes; then
351 AC_DEFINE(PROC_SERVICE_IS_OLD)
352 fi
353 else
354 AC_MSG_RESULT(no)
355 fi
356 ;;
357 esac
358 AC_SUBST(CONFIG_LDFLAGS)
359 fi
360
361 dnl Handle optional features that can be enabled.
362 ENABLE_CFLAGS=
363
364 AC_ARG_ENABLE(tui,
365 [ --enable-tui Enable full-screen terminal user interface],
366 [
367 case "${enable_tui}" in
368 yes | no) ;;
369 "") enable_tui=yes ;;
370 *)
371 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
372 ;;
373 esac
374 ])
375 case ${enable_tui} in
376 "yes" )
377 AC_DEFINE(TUI)
378 BUILD_TUI=all-tui
379 TUI_LIBRARY=tui/libtui.a
380 ;;
381 * )
382 BUILD_TUI=
383 TUI_LIBRARY=
384 ;;
385 esac
386 AC_SUBST(BUILD_TUI)
387 AC_SUBST(TUI_LIBRARY)
388
389 AC_ARG_ENABLE(netrom,
390 [ --enable-netrom Enable NetROM support],
391 [case "${enableval}" in
392 yes) enable_netrom=yes ;;
393 no) enable_netrom=no ;;
394 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
395 esac])
396
397 if test "${enable_netrom}" = "yes"; then
398 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
399 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
400 CONFIG_INITS="${CONFIG_INITS} remote-nrom.c"
401 fi
402
403 AC_ARG_ENABLE(build-warnings,
404 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
405 [build_warnings="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
406 case "${enableval}" in
407 yes) ;;
408 no) build_warnings="-w";;
409 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
410 build_warnings="${build_warnings} ${t}";;
411 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
412 build_warnings="${t} ${build_warnings}";;
413 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
414 esac
415 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
416 echo "Setting warning flags = $build_warnings" 6>&1
417 fi
418 WARN_CFLAGS=""
419 WERROR_CFLAGS=""
420 if test "x${build_warnings}" != x -a "x$GCC" = xyes
421 then
422 # Separate out the -Werror flag as some files just cannot be
423 # compiled with it enabled.
424 for w in ${build_warnings}; do
425 case $w in
426 -Werr*) WERROR_CFLAGS=-Werror ;;
427 *) WARN_CFLAGS="${WARN_CFLAGS} $w"
428 esac
429 done
430 fi],[build_warnings=""])dnl
431
432 AC_SUBST(WARN_CFLAGS)
433 AC_SUBST(WERROR_CFLAGS)
434
435 MMALLOC_CFLAGS=
436 MMALLOC=
437 AC_SUBST(MMALLOC_CFLAGS)
438 AC_SUBST(MMALLOC)
439
440 AC_ARG_WITH(mmalloc,
441 [ --with-mmalloc Use memory mapped malloc package],
442 [case "${withval}" in
443 yes) want_mmalloc=true ;;
444 no) want_mmalloc=false;;
445 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
446 esac],[want_mmalloc=false])dnl
447
448 if test x$want_mmalloc = xtrue; then
449 AC_DEFINE(USE_MMALLOC)
450 AC_DEFINE(MMCHECK_FORCE)
451 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
452 MMALLOC='../mmalloc/libmmalloc.a'
453 fi
454
455
456 # In the Cygwin environment, we need some additional flags.
457 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
458 [AC_EGREP_CPP(lose, [
459 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
460 lose
461 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
462
463 DLLTOOL=${DLLTOOL-dlltool}
464 WINDRES=${WINDRES-windres}
465 AC_SUBST(DLLTOOL)
466 AC_SUBST(WINDRES)
467
468 dnl Figure out which term library to use.
469 if test x$gdb_host = xgo32; then
470 TERM_LIB=
471 else
472 if test x$gdb_cv_os_cygwin = xyes; then
473 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
474 else
475 TERM_LIB=
476 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
477 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
478 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
479 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
480 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
481 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
482
483 if test "x$TERM_LIB" = x
484 then
485 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
486 fi
487 fi
488 fi
489 AC_SUBST(TERM_LIB)
490
491 # libreadline needs libuser32.a in a cygwin environment
492 WIN32LIBS=
493 if test x$gdb_cv_os_cygwin = xyes; then
494 WIN32LIBS="-luser32"
495 case "${target}" in
496 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
497 ;;
498 esac
499 fi
500 AC_SUBST(WIN32LIBS)
501
502 LIBGUI="../libgui/src/libgui.a"
503 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
504 AC_SUBST(LIBGUI)
505 AC_SUBST(GUI_CFLAGS_X)
506
507 AC_ARG_WITH(cpu,
508 [ --with-cpu=CPU Set the default CPU variant to debug],
509 [case "${target}" in
510 powerpc-* | powerpcle-* )
511 ## It would be nice to keep this table in sync with the one in
512 ## gcc/configure.
513 case "${with_cpu}" in
514 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
515 | 604 | 750 )
516 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
517 ;;
518 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
519 ## These are all RS6000 variants, as far as GDB is concerned.
520 with_cpu=rs6000
521 ;;
522 603e | ec603e )
523 with_cpu=603
524 ;;
525 604e )
526 with_cpu=604
527 ;;
528 * )
529 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
530 with_cpu=ppc-uisa
531 ;;
532 esac
533 ;;
534 * )
535 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
536 ;;
537 esac
538 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
539 ],)
540
541
542 ENABLE_GDBTK=
543
544 AC_ARG_ENABLE(gdbtk,
545 [ --enable-gdbtk Enable GDBTK GUI front end],
546 [case "${enableval}" in
547 yes)
548 case "$host" in
549 *go32*)
550 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
551 enable_gdbtk=no ;;
552 *windows*)
553 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
554 enable_gdbtk=no ;;
555 *)
556 enable_gdbtk=yes ;;
557 esac ;;
558 no)
559 enable_gdbtk=no ;;
560 *)
561 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
562 esac],
563 [
564 # Default is on for everything but go32 and Cygwin
565 case "$host" in
566 *go32* | *windows*)
567 ;;
568 *)
569 enable_gdbtk=yes ;;
570 esac
571 ])
572
573 WIN32LDAPP=
574 AC_SUBST(WIN32LIBS)
575 AC_SUBST(WIN32LDAPP)
576
577 configdir="unix"
578
579 GDBTKLIBS=
580 if test "${enable_gdbtk}" = "yes"; then
581
582 CY_AC_PATH_TCLCONFIG
583 if test -z "${no_tcl}"; then
584 CY_AC_LOAD_TCLCONFIG
585 CY_AC_PATH_TKCONFIG
586
587 # If $no_tk is nonempty, then we can't do Tk, and there is no
588 # point to doing Tcl.
589 if test -z "${no_tk}"; then
590 CY_AC_LOAD_TKCONFIG
591 CY_AC_PATH_TCLH
592 CY_AC_PATH_TKH
593 CY_AC_PATH_ITCLH
594 CY_AC_PATH_ITKH
595 CY_AC_PATH_TIXH
596
597 # now look for Itcl library stuff
598
599 CY_AC_PATH_ITCLCONFIG
600 if test -z "${no_itcl}"; then
601 CY_AC_LOAD_ITCLCONFIG
602 case "${host}" in
603 *-*-cygwin*)
604 itcldir=../itcl/itcl/win/
605 ;;
606 *)
607 itcldir=../itcl/itcl/unix/
608 ;;
609 esac
610
611
612 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
613 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
614 fi
615
616
617 # now look for Itk library stuff
618 CY_AC_PATH_ITKCONFIG
619 if test -z "${no_itcl}"; then
620 CY_AC_LOAD_ITKCONFIG
621
622 case "${host}" in
623 *-*-cygwin*)
624 itkdir=../itcl/itk/win/
625 ;;
626 *)
627 itkdir=../itcl/itk/unix/
628 ;;
629 esac
630
631 ITKLIB="${ITK_BUILD_LIB_SPEC}"
632 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
633 fi
634
635 # now look for Tix library stuff
636 CY_AC_PATH_TIXCONFIG
637 if test -z "${no_tix}"; then
638 CY_AC_LOAD_TIXCONFIG
639 TIXLIB="${TIX_BUILD_LIB_SPEC}"
640 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
641 fi
642
643 ENABLE_GDBTK=1
644 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
645 # Tcl/Tk 8.1 require -fwritable strings. I don't
646 # know whether 8.2 will or not, but I bet it will.
647 # I don't have to worry about 7.x since we don't support it.
648 GDBTK_CFLAGS=""
649 if test "$GCC" = "yes"; then
650 if test "$TCL_VERSION" != "8.0" ; then
651 GDBTK_CFLAGS="-fwritable-strings"
652 fi
653 fi
654
655 # Include some libraries that Tcl and Tk want.
656 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
657 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
658 # Yes, the ordering seems wrong here. But it isn't.
659 # TK_LIBS is the list of libraries that need to be linked
660 # after Tcl/Tk. Note that this isn't put into LIBS. If it
661 # were in LIBS then any link tests after this point would
662 # try to include things like `$(LIBGUI)', which wouldn't work.
663 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
664 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"
665 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-variable.o gdbtk-wrapper.o"
666 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"
667
668 if test x$gdb_cv_os_cygwin = xyes; then
669 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
670 WIN32LDAPP="-Wl,--subsystem,console"
671 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
672 fi
673 fi
674 fi
675 fi
676
677 AC_SUBST(ENABLE_GDBTK)
678 AC_SUBST(X_CFLAGS)
679 AC_SUBST(X_LDFLAGS)
680 AC_SUBST(X_LIBS)
681 AC_SUBST(ITCLLIB)
682 AC_SUBST(ITCL_DEPS)
683 AC_SUBST(ITKLIB)
684 AC_SUBST(ITK_DEPS)
685 AC_SUBST(TIXLIB)
686 AC_SUBST(TIX_DEPS)
687 AC_SUBST(GDBTKLIBS)
688 AC_SUBST(GDBTK_CFLAGS)
689
690 AC_PATH_X
691
692
693 # Unlike the sim directory, whether a simulator is linked is controlled by
694 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
695 # This code just checks for a few cases where we'd like to ignore those
696 # definitions, even when they're present in the '.mt' file. These cases
697 # are when --disable-sim is specified, or if the simulator directory is
698 # not part of the soruce tree.
699 #
700 AC_ARG_ENABLE(sim,
701 [ --enable-sim Link gdb with simulator],
702 [echo "enable_sim = $enable_sim";
703 echo "enableval = ${enableval}";
704 case "${enableval}" in
705 yes) ignore_sim=false ;;
706 no) ignore_sim=true ;;
707 *) ignore_sim=false ;;
708 esac],
709 [ignore_sim=false])
710
711 if test ! -d "${srcdir}/../sim"; then
712 ignore_sim=true
713 fi
714
715 if test "${ignore_sim}" = "true"; then
716 IGNORE_SIM="SIM="
717 IGNORE_SIM_OBS="SIM_OBS="
718 else
719 IGNORE_SIM=""
720 IGNORE_SIM_OBS=""
721 AC_DEFINE(WITH_SIM)
722 fi
723 AC_SUBST(IGNORE_SIM)
724 AC_SUBST(IGNORE_SIM_OBS)
725
726 AC_SUBST(ENABLE_CFLAGS)
727
728 AC_SUBST(CONFIG_OBS)
729 AC_SUBST(CONFIG_DEPS)
730 AC_SUBST(CONFIG_SRCS)
731 AC_SUBST(CONFIG_INITS)
732
733 # Begin stuff to support --enable-shared
734 AC_ARG_ENABLE(shared,
735 [ --enable-shared Use shared libraries],
736 [case "${enableval}" in
737 yes) shared=true ;;
738 no) shared=false ;;
739 *) shared=true ;;
740 esac])dnl
741
742 HLDFLAGS=
743 HLDENV=
744 # If we have shared libraries, try to set rpath reasonably.
745 if test "${shared}" = "true"; then
746 case "${host}" in
747 *-*-hpux*)
748 HLDFLAGS='-Wl,+s,+b,$(libdir)'
749 ;;
750 *-*-irix5* | *-*-irix6*)
751 HLDFLAGS='-Wl,-rpath,$(libdir)'
752 ;;
753 *-*-linux*aout*)
754 ;;
755 *-*-linux* | *-pc-linux-gnu)
756 HLDFLAGS='-Wl,-rpath,$(libdir)'
757 ;;
758 *-*-solaris*)
759 HLDFLAGS='-R $(libdir)'
760 ;;
761 *-*-sysv4*)
762 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;'
763 ;;
764 esac
765 fi
766
767 # On SunOS, if the linker supports the -rpath option, use it to
768 # prevent ../bfd and ../opcodes from being included in the run time
769 # search path.
770 case "${host}" in
771 *-*-sunos*)
772 echo 'main () { }' > conftest.c
773 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
774 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
775 :
776 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
777 :
778 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
779 :
780 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
781 :
782 elif test "${shared}" = "true"; then
783 HLDFLAGS='-Wl,-rpath=$(libdir)'
784 else
785 HLDFLAGS='-Wl,-rpath='
786 fi
787 rm -f conftest.t conftest.c conftest
788 ;;
789 esac
790 AC_SUBST(HLDFLAGS)
791 AC_SUBST(HLDENV)
792 # End stuff to support --enable-shared
793
794 # target_subdir is used by the testsuite to find the target libraries.
795 target_subdir=
796 if test "${host}" != "${target}"; then
797 target_subdir="${target_alias}/"
798 fi
799 AC_SUBST(target_subdir)
800
801 frags=
802 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
803 if test ! -f ${host_makefile_frag}; then
804 AC_MSG_ERROR("*** Gdb does not support host ${host}")
805 fi
806 frags="$frags $host_makefile_frag"
807
808 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
809 if test ! -f ${target_makefile_frag}; then
810 AC_MSG_ERROR("*** Gdb does not support target ${target}")
811 fi
812 frags="$frags $target_makefile_frag"
813
814 AC_SUBST_FILE(host_makefile_frag)
815 AC_SUBST_FILE(target_makefile_frag)
816 AC_SUBST(frags)
817
818 changequote(,)dnl
819 hostfile=`sed -n '
820 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
821 ' ${host_makefile_frag}`
822
823 targetfile=`sed -n '
824 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
825 ' ${target_makefile_frag}`
826
827 # these really aren't orthogonal true/false values of the same condition,
828 # but shells are slow enough that I like to reuse the test conditions
829 # whenever possible
830 if test "${target}" = "${host}"; then
831 nativefile=`sed -n '
832 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
833 ' ${host_makefile_frag}`
834 # else
835 # GDBserver is only useful in a "native" enviroment
836 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
837 fi
838 changequote([,])
839
840 SUBDIRS="doc testsuite nlm"
841 if test "${enable_multi_ice}" = "yes"; then
842 SUBDIRS="${SUBDIRS} multi-ice"
843 fi
844
845 AC_SUBST(SUBDIRS)
846
847 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
848 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
849 # corresponding links. But we have to remove the xm.h files and tm.h
850 # files anyway, e.g. when switching from "configure host" to
851 # "configure none".
852
853 files=
854 links=
855 rm -f xm.h
856 if test "${hostfile}" != ""; then
857 files="${files} config/${gdb_host_cpu}/${hostfile}"
858 links="${links} xm.h"
859 fi
860 rm -f tm.h
861 if test "${targetfile}" != ""; then
862 files="${files} config/${gdb_target_cpu}/${targetfile}"
863 links="${links} tm.h"
864 fi
865 rm -f nm.h
866 if test "${nativefile}" != ""; then
867 files="${files} config/${gdb_host_cpu}/${nativefile}"
868 links="${links} nm.h"
869 else
870 # A cross-only configuration.
871 files="${files} config/nm-empty.h"
872 links="${links} nm.h"
873 fi
874 AC_PROG_LN_S
875 # Make it possible to use the GUI without doing a full install
876 if test "${enable_gdbtk}" = "yes" ; then
877 if test "$LN_S" = "ln -s" -a ! -f gdbtcl ; then
878 echo linking $srcdir/gdbtk/library to gdbtcl
879 $LN_S $srcdir/gdbtk/library gdbtcl
880 else
881 echo Warning: Unable to link $srcdir/gdbtk/library to gdbtcl. You will need to do a
882 echo " " make install before you are able to run the GUI.
883 fi
884 fi
885
886 AC_LINK_FILES($files, $links)
887
888 dnl Check for exe extension set on certain hosts (e.g. Win32)
889 AC_EXEEXT
890
891 AC_CONFIG_SUBDIRS($configdirs)
892 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
893 [
894 dnl Autoconf doesn't provide a mechanism for modifying definitions
895 dnl provided by makefile fragments.
896 dnl
897 if test "${nativefile}" = ""; then
898 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
899 < Makefile > Makefile.tem
900 mv -f Makefile.tem Makefile
901 fi
902
903 changequote(,)dnl
904 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
905 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
906 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
907 mv -f Makefile.tmp Makefile
908 changequote([,])dnl
909
910
911 case x$CONFIG_HEADERS in
912 xconfig.h:config.in)
913 echo > stamp-h ;;
914 esac
915 ],
916 [
917 gdb_host_cpu=$gdb_host_cpu
918 gdb_target_cpu=$gdb_target_cpu
919 nativefile=$nativefile
920 ])
921
922 exit 0
This page took 0.049864 seconds and 4 git commands to generate.