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