1998-12-30 Jason Molenda (jsm@bugshack.cygnus.com)
[deliverable/binutils-gdb.git] / gdb / configure.in
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998 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.5)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
30 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
31 AC_CANONICAL_SYSTEM
32
33 dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
34 dnl link with the correct libraries.
35 ALL_LINGUAS=
36 CY_GNU_GETTEXT
37
38 dnl List of object files added by configure.
39
40 CONFIG_OBS=
41 CONFIG_DEPS=
42 CONFIG_SRCS=
43
44 configdirs="doc testsuite"
45
46 dnl
47 changequote(,)dnl
48
49 . ${srcdir}/configure.host
50
51 . ${srcdir}/configure.tgt
52
53 dnl
54 changequote([,])dnl
55
56 AC_PROG_INSTALL
57 AC_CHECK_TOOL(AR, ar)
58 AC_CHECK_TOOL(RANLIB, ranlib, :)
59 AC_PROG_YACC
60
61 AC_ARG_PROGRAM
62
63 AC_TYPE_SIGNAL
64
65 AC_HEADER_STDC
66 AC_CHECK_HEADERS(ctype.h curses.h endian.h libintl.h link.h \
67 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
68 string.h sys/procfs.h sys/ptrace.h sys/reg.h \
69 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
70 wchar.h wctype.h asm/debugreg.h)
71
72 AC_HEADER_STAT
73
74 AC_C_CONST
75
76 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc)
77 AC_FUNC_ALLOCA
78
79 BFD_NEED_DECLARATION(malloc)
80 BFD_NEED_DECLARATION(realloc)
81 BFD_NEED_DECLARATION(free)
82 BFD_NEED_DECLARATION(strerror)
83 BFD_NEED_DECLARATION(strdup)
84
85 # If we are configured native on GNU/Linux, work around problems with sys/procfs.h
86 if test "${target}" = "${host}"; then
87 case "${host}" in
88 i[[3456]]86-*-linux*)
89 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
90 AC_DEFINE(sys_quotactl)
91 ;;
92 esac
93 fi
94
95 AC_MSG_CHECKING([for gregset_t type])
96 AC_CACHE_VAL(gdb_cv_have_gregset_t,
97 [AC_TRY_LINK([#include <sys/procfs.h>],[gregset_t *gregsetp = 0],
98 gdb_cv_have_gregset_t=yes, gdb_cv_have_gregset_t=no)])
99 AC_MSG_RESULT($gdb_cv_have_gregset_t)
100 if test $gdb_cv_have_gregset_t = yes; then
101 AC_DEFINE(HAVE_GREGSET_T)
102 fi
103
104 AC_MSG_CHECKING([for fpregset_t type])
105 AC_CACHE_VAL(gdb_cv_have_fpregset_t,
106 [AC_TRY_LINK([#include <sys/procfs.h>],[fpregset_t *fpregsetp = 0],
107 gdb_cv_have_fpregset_t=yes, gdb_cv_have_fpregset_t=no)])
108 AC_MSG_RESULT($gdb_cv_have_fpregset_t)
109 if test $gdb_cv_have_fpregset_t = yes; then
110 AC_DEFINE(HAVE_FPREGSET_T)
111 fi
112
113 dnl See if host has libm. This is usually needed by simulators.
114 AC_CHECK_LIB(m, main)
115
116 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
117 dnl
118 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
119 dnl under Solaris 2.6 because it is some funky empty library.
120 dnl So only link in libw if we have to.
121 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
122
123 dnl Figure out which term library to use.
124 TERM_LIB=
125 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
126 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
127 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
128 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
129 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo)))))
130
131 if test "x$TERM_LIB" = x
132 then
133 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
134 fi
135
136 AC_SUBST(TERM_LIB)
137
138 dnl See if compiler supports "long long" type.
139
140 AC_MSG_CHECKING(for long long support in compiler)
141 AC_CACHE_VAL(gdb_cv_c_long_long,
142 [AC_TRY_COMPILE(, [
143 extern long long foo;
144 switch (foo & 2) { case 0: return 1; }
145 ],
146 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
147 AC_MSG_RESULT($gdb_cv_c_long_long)
148 if test $gdb_cv_c_long_long = yes; then
149 AC_DEFINE(CC_HAS_LONG_LONG)
150 fi
151
152 dnl See if the compiler and runtime support printing long long
153
154 AC_MSG_CHECKING(for long long support in printf)
155 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
156 [AC_TRY_RUN([
157 int main () {
158 char buf[32];
159 long long l = 0;
160 l = (l << 16) + 0x0123;
161 l = (l << 16) + 0x4567;
162 l = (l << 16) + 0x89ab;
163 l = (l << 16) + 0xcdef;
164 sprintf (buf, "0x%016llx", l);
165 return (strcmp ("0x0123456789abcdef", buf));
166 }],
167 gdb_cv_printf_has_long_long=yes,
168 gdb_cv_printf_has_long_long=no,
169 gdb_cv_printf_has_long_long=no)])
170 if test $gdb_cv_printf_has_long_long = yes; then
171 AC_DEFINE(PRINTF_HAS_LONG_LONG)
172 fi
173 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
174
175 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
176 dnl because autoconf complains about cross-compilation issues. However, this
177 dnl code uses the same variables as the macro for compatibility.
178
179 AC_MSG_CHECKING(for long double support in compiler)
180 AC_CACHE_VAL(ac_cv_c_long_double,
181 [AC_TRY_COMPILE(, [long double foo;],
182 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
183 AC_MSG_RESULT($ac_cv_c_long_double)
184 if test $ac_cv_c_long_double = yes; then
185 AC_DEFINE(HAVE_LONG_DOUBLE)
186 fi
187
188 dnl See if the compiler and runtime support printing long doubles
189
190 AC_MSG_CHECKING(for long double support in printf)
191 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
192 [AC_TRY_RUN([
193 int main () {
194 char buf[16];
195 long double f = 3.141592653;
196 sprintf (buf, "%Lg", f);
197 return (strncmp ("3.14159", buf, 7));
198 }],
199 gdb_cv_printf_has_long_double=yes,
200 gdb_cv_printf_has_long_double=no,
201 gdb_cv_printf_has_long_double=no)])
202 if test $gdb_cv_printf_has_long_double = yes; then
203 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
204 fi
205 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
206
207 dnl See if the compiler and runtime support scanning long doubles
208
209 AC_MSG_CHECKING(for long double support in scanf)
210 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
211 [AC_TRY_RUN([
212 int main () {
213 char *buf = "3.141592653";
214 long double f = 0;
215 sscanf (buf, "%Lg", &f);
216 return !(f > 3.14159 && f < 3.14160);
217 }],
218 gdb_cv_scanf_has_long_double=yes,
219 gdb_cv_scanf_has_long_double=no,
220 gdb_cv_scanf_has_long_double=no)])
221 if test $gdb_cv_scanf_has_long_double = yes; then
222 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
223 fi
224 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
225
226 AC_FUNC_MMAP
227
228 dnl See if thread_db library is around for Solaris thread debugging. Note that
229 dnl we must explicitly test for version 1 of the library because version 0
230 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
231
232 dnl Note that we only want this if we are both native (host == target), and
233 dnl not doing a canadian cross build (build == host).
234
235 if test ${build} = ${host} -a ${host} = ${target} ; then
236 case ${host_os} in
237 hpux*)
238 AC_MSG_CHECKING(for HPUX/OSF thread support)
239 if test -f /usr/include/dce/cma_config.h ; then
240 if test "$GCC" = "yes" ; then
241 AC_MSG_RESULT(yes)
242 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
243 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
244 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
245 else
246 AC_MSG_RESULT(no (suppressed because you are not using GCC))
247 fi
248 else
249 AC_MSG_RESULT(no)
250 fi
251 ;;
252 solaris*)
253 AC_MSG_CHECKING(for Solaris thread debugging library)
254 if test -f /usr/lib/libthread_db.so.1 ; then
255 AC_MSG_RESULT(yes)
256 AC_DEFINE(HAVE_THREAD_DB_LIB)
257 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
258 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
259 AC_CHECK_LIB(dl, dlopen)
260 if test "$GCC" = "yes" ; then
261 # The GNU linker requires the -export-dynamic option to make
262 # all symbols visible in the dynamic symbol table.
263 hold_ldflags=$LDFLAGS
264 AC_MSG_CHECKING(for the ld -export-dynamic flag)
265 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
266 AC_TRY_LINK(, [int i;], found=yes, found=no)
267 LDFLAGS=$hold_ldflags
268 AC_MSG_RESULT($found)
269 if test $found = yes; then
270 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
271 fi
272 fi
273 # Sun randomly tweaked the prototypes in <proc_service.h>
274 # at one point.
275 AC_MSG_CHECKING(if <proc_service.h> is old)
276 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
277 AC_TRY_COMPILE([
278 #include <proc_service.h>
279 ps_err_e ps_pdwrite
280 (struct ps_prochandle*, psaddr_t, const void*, size_t);
281 ],, gdb_cv_proc_service_is_old=no,
282 gdb_cv_proc_service_is_old=yes)
283 ])
284 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
285 if test $gdb_cv_proc_service_is_old = yes; then
286 AC_DEFINE(PROC_SERVICE_IS_OLD)
287 fi
288 else
289 AC_MSG_RESULT(no)
290 fi
291 ;;
292 esac
293 AC_SUBST(CONFIG_LDFLAGS)
294 fi
295
296 dnl Handle optional features that can be enabled.
297 ENABLE_CFLAGS=
298
299 AC_ARG_ENABLE(netrom,
300 [ --enable-netrom ],
301 [case "${enableval}" in
302 yes) enable_netrom=yes ;;
303 no) enable_netrom=no ;;
304 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
305 esac])
306
307 if test "${enable_netrom}" = "yes"; then
308 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
309 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
310 fi
311
312 AC_ARG_ENABLE(build-warnings,
313 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
314 [build_warnings="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
315 case "${enableval}" in
316 yes) ;;
317 no) build_warnings="-w";;
318 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
319 build_warnings="${build_warnings} ${t}";;
320 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
321 build_warnings="${t} ${build_warnings}";;
322 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
323 esac],[build_warnings=""])dnl
324
325 if test "x${build_warnings}" != x -a "x$GCC" = xyes
326 then
327 WARN_CFLAGS="${build_warnings}"
328 else
329 WARN_CFLAGS=""
330 fi
331 AC_SUBST(WARN_CFLAGS)
332
333 MMALLOC_CFLAGS=
334 MMALLOC=
335 AC_SUBST(MMALLOC_CFLAGS)
336 AC_SUBST(MMALLOC)
337
338 AC_ARG_WITH(mmalloc,
339 [ --with-mmalloc Use memory mapped malloc package],
340 [case "${withval}" in
341 yes) want_mmalloc=true ;;
342 no) want_mmalloc=false;;
343 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
344 esac],[want_mmalloc=false])dnl
345
346 if test x$want_mmalloc = xtrue; then
347 AC_DEFINE(USE_MMALLOC)
348 AC_DEFINE(MMCHECK_FORCE)
349 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
350 MMALLOC='../mmalloc/libmmalloc.a'
351 fi
352
353 # start-sanitize-carp
354 # The below takes an educated guess at the targets that
355 # should be built. It is an interum version that provides
356 # significant backward compatibility.
357
358 AC_ARG_ENABLE(carp,
359 [ --enable-carp Configure alternative readaptive paradigm ],
360 [case "${enableval}" in
361 yes) enable_carp=yes ;;
362 no) enable_carp=no ;;
363 *) AC_MSG_ERROR([bad value ${enableval} for carp option]) ;;
364 esac],[enable_carp=no])dnl
365
366 AC_ARG_ENABLE(targets,
367 [ --enable-targets alternative target configurations],
368 [case "${enableval}" in
369 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
370 ;;
371 no) enable_targets= ;;
372 *) enable_targets="$enableval" ;;
373 esac])dnl
374
375 # Canonicalize the secondary target names.
376 all_targets=false
377 if test -n "$enable_targets" ; then
378 if test "$enable_targets" = all ; then
379 all_targets=true
380 else
381 for targ in `echo $enable_targets | sed 's/,/ /g'`
382 do
383 result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $targ 2>/dev/null`
384 if test -n "$result" ; then
385 canon_targets="$canon_targets $result"
386 fi
387 done
388 fi
389 fi
390
391 # Convert the target names into GDB [*]-tdep.c names
392 changequote(,)dnl
393 selarchs=
394 for targ in $target $canon_targets
395 do
396 if test "x$targ" = "xall" ; then
397 all_targets=true
398 else
399 t_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
400 t_vendor=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
401 t_os=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
402 mt=`
403 target=$targ
404 target_cpu=$t_cpu
405 target_vendor=$t_vendor
406 target_os=$t_os
407 . ${srcdir}/configure.tgt
408 echo ${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt`
409 if test -r ${mt} ; then
410 # This gets confused over .mt files that have multiple -tdep.o
411 tdep=`sed -n '
412 s/^.*[ =]\([^ ]*\)-tdep.o.*/\1/p
413 ' $mt`
414 selarchs="$selarchs $tdep"
415 fi
416 fi
417 done
418 changequote([,])dnl
419
420 # We don't do any links based on the target system, just makefile config.
421
422 if test x${all_targets} = xfalse ; then
423
424 # Target architecture .o files.
425 ta=
426
427 for arch in $selarchs
428 do
429 archdefs="$archdefs -DARCH_$arch"
430 ta="$ta ${arch}-tdep.o"
431 # Special cases
432 case "$arch" in
433 dvp) ta="$ta mips-tdep.o dvp-tdep.o" ;;
434 esac
435 done
436
437 # Weed out duplicate .o files.
438 f=""
439 for i in $ta ; do
440 case " $f " in
441 *" $i "*) ;;
442 *) f="$f $i" ;;
443 esac
444 done
445 ta="$f"
446
447 # And duplicate -D flags.
448 f=""
449 for i in $archdefs ; do
450 case " $f " in
451 *" $i "*) ;;
452 *) f="$f $i" ;;
453 esac
454 done
455 archdefs="$f"
456
457 MACHINE_OBS="$ta"
458
459 else # all_targets is true
460 archdefs=-DARCH_all
461 MACHINE_OBS='$(ALL_MACHINES)'
462 fi
463
464 dnl Don't define an archdefs list
465 dnl AC_SUBST(archdefs)
466 dnl XXXX this name will change several more times
467 if test "${enable_carp}" = yes ; then
468 gdb_target=carp
469 gdb_target_cpu=carp
470 else
471 MACHINE_OBS="# $MACHINE_OBS"
472 fi
473 AC_SUBST(MACHINE_OBS)
474
475 # end-sanitize-carp
476 # start-sanitize-gdbtk
477 # start-sanitize-ide
478 ENABLE_IDE=
479 AC_ARG_ENABLE(ide, [ --enable-ide Enable IDE support])
480 if test "$enable_ide" = yes; then
481 enable_ide=yes
482 ENABLE_IDE=1
483 else
484 enable_ide=no
485 fi
486 AC_SUBST(ENABLE_IDE)
487
488 AC_ARG_WITH(foundry-libs,
489 [ --with-foundry-libs=DIR Use the Foundry SDK in DIR],
490 [FOUNDRY_LIB_BASE=${withval}])
491 AC_SUBST(FOUNDRY_LIB_BASE)
492
493 #
494 # This is the Foundry SDK
495 #
496 # These variables are used to determine where the Foundry libs and
497 # header files are located.
498 #
499 if test "$FOUNDRY_LIB_BASE" != ""; then
500 LIBGUI="${FOUNDRY_LIB_BASE}/lib/libgui.a"
501 GUI_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
502 if test x$enable_ide = xyes; then
503 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include -DIDE"
504 IDE_X="-L${FOUNDRY_LIB_BASE}/lib -lilu-Tk -lilu-c -lilu"
505 else
506 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
507 fi
508 LIBIDETCL="${FOUNDRY_LIB_BASE}/lib/libidetcl.a"
509 LIBIDE="${FOUNDRY_LIB_BASE}/lib/libide.a"
510 IDE_DEPS="${FOUNDRY_LIB_BASE}/lib/libilu-Tk.a ${FOUNDRY_LIB_BASE}/lib/libilu-c.a ${FOUNDRY_LIB_BASE}/lib/libilu.a"
511 else
512 # end-sanitize-ide
513 LIBGUI="../libgui/src/libgui.a"
514 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
515 # start-sanitize-ide
516 if test x$enable_ide = xyes; then
517 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src -DIDE -I${srcdir}/../ilu/runtime/mainloop"
518 IDE_X="-L../ilu/runtime/mainloop -lilu-Tk -L../ilu/runtime/c -lilu-c -L../ilu/runtime/kernel -lilu"
519 else
520 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src"
521 fi
522 LIBIDETCL="../libidetcl/src/libidetcl.a"
523 LIBIDE="../libide/src/libide.a"
524 IDE_DEPS="../ilu/runtime/mainloop/libilu-Tk.a ../ilu/runtime/c/libilu-c.a ../ilu/runtime/kernel/libilu.a"
525 fi
526
527 # end-sanitize-ide
528 AC_SUBST(LIBGUI)
529 AC_SUBST(GUI_CFLAGS_X)
530 # start-sanitize-ide
531 AC_SUBST(IDE_CFLAGS_X)
532 AC_SUBST(IDE_X)
533 AC_SUBST(LIBIDETCL)
534 AC_SUBST(LIBIDE)
535 AC_SUBST(IDE_DEPS)
536 # end-sanitize-ide
537
538 ENABLE_GDBTK=
539
540 AC_ARG_ENABLE(gdbtk,
541 [ --enable-gdbtk Enable GDBTK GUI front end],
542 [case "${enableval}" in
543 yes)
544 case "$host" in
545 *go32*)
546 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
547 enable_gdbtk=no ;;
548 *windows*)
549 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
550 enable_gdbtk=no ;;
551 *)
552 enable_gdbtk=yes ;;
553 esac ;;
554 no)
555 enable_gdbtk=no ;;
556 *)
557 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
558 esac],
559 [
560 # Default is on for everything but go32 and Cygwin
561 case "$host" in
562 *go32* | *windows*)
563 ;;
564 *)
565 enable_gdbtk=yes ;;
566 esac
567 ])
568
569 # In the Cygwin environment, we need some additional flags.
570 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
571 [AC_EGREP_CPP(lose, [
572 #ifdef __CYGWIN32__
573 lose
574 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
575
576 WIN32LIBS=
577 WIN32LDAPP=
578 AC_SUBST(WIN32LIBS)
579 AC_SUBST(WIN32LDAPP)
580
581 DLLTOOL=${DLLTOOL-dlltool}
582 WINDRES=${WINDRES-windres}
583 AC_SUBST(DLLTOOL)
584 AC_SUBST(WINDRES)
585
586 if test x$gdb_cv_os_cygwin = xyes; then
587 if test x$enable_ide = xyes; then
588 WIN32LIBS="-ladvapi32"
589 fi
590 fi
591
592 configdir="unix"
593
594 GDBTKLIBS=
595 if test "${enable_gdbtk}" = "yes"; then
596
597 CY_AC_PATH_TCLCONFIG
598 if test -z "${no_tcl}"; then
599 CY_AC_LOAD_TCLCONFIG
600 CY_AC_PATH_TKCONFIG
601
602 # If $no_tk is nonempty, then we can't do Tk, and there is no
603 # point to doing Tcl.
604 if test -z "${no_tk}"; then
605 CY_AC_LOAD_TKCONFIG
606 CY_AC_PATH_TCLH
607 CY_AC_PATH_TKH
608 CY_AC_PATH_ITCLH
609 CY_AC_PATH_TIX
610
611 # now look for tix library stuff
612 TIXVERSION=4.1.8.0
613 . ${ac_cv_c_tclconfig}/tclConfig.sh
614 case "${host}" in
615 *-*-cygwin*)
616 tixdir=../tix/win/tcl8.0
617 ;;
618 *)
619 tixdir=../tix/unix/tk8.0
620 ;;
621 esac
622 if test "${TCL_SHARED_BUILD}" = "1"; then
623 TIX_LIB_EXT="${TCL_SHLIB_SUFFIX}"
624
625 # Can't win them all: SunOS 4 (others?) appends a version
626 # number after the ".so"
627 case "${host}" in
628 *-*-sunos4*)
629 TIX_LIB_EXT="${TIX_LIB_EXT}.1.0" ;;
630 esac
631
632 else
633 TIX_LIB_EXT=".a"
634 fi
635
636 if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
637 TIXLIB="-L${tixdir} -ltix${TIXVERSION}"
638 TIX_DEPS="${tixdir}/libtix${TIXVERSION}${TIX_LIB_EXT}"
639 else
640 TIXLIB="-L${tixdir} -ltix`echo ${TIXVERSION} | tr -d .`"
641 TIX_DEPS="${tixdir}/libtix`echo ${TIXVERSION} | tr -d .`${TIX_LIB_EXT}"
642 fi
643
644 ENABLE_GDBTK=1
645 ENABLE_CFLAGS="${ENABLE_CFLAGS} -DGDBTK"
646
647 # Include some libraries that Tcl and Tk want.
648 if test "${enable_ide}" = "yes"; then
649 TCL_LIBS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
650 CONFIG_DEPS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE_DEPS) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
651 else
652 TCL_LIBS='$(LIBGUI) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
653 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
654 fi
655 # Yes, the ordering seems wrong here. But it isn't.
656 # TK_LIBS is the list of libraries that need to be linked
657 # after Tcl/Tk. Note that this isn't put into LIBS. If it
658 # were in LIBS then any link tests after this point would
659 # try to include things like `$(LIBGUI)', which wouldn't work.
660 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
661 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o"
662
663 if test x$gdb_cv_os_cygwin = xyes; then
664 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32 -luser32"
665 WIN32LDAPP="-Wl,--subsystem,console"
666 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
667 fi
668 fi
669 fi
670 fi
671
672 AC_SUBST(ENABLE_GDBTK)
673 AC_SUBST(X_CFLAGS)
674 AC_SUBST(X_LDFLAGS)
675 AC_SUBST(X_LIBS)
676 AC_SUBST(TIXLIB)
677 AC_SUBST(TIX_DEPS)
678 AC_SUBST(GDBTKLIBS)
679 # end-sanitize-gdbtk
680
681 AC_PATH_X
682 # start-sanitize-sky
683 # Enable GPU2 library for MIPS simulator
684 AC_ARG_WITH(sim-gpu2,
685 [ --with-sim-gpu2=DIR Use GPU2 library under given DIR],
686 [case "${target}" in
687 mips*-sky*-*)
688 if test -d "${withval}"
689 then
690 if test x${x_libraries} != x
691 then
692 LIBS="${LIBS} -L${withval}/lib -lgpu2 -L${x_libraries} -lX11 -lXext -lm"
693 else
694 LIBS="${LIBS} -L${withval}/lib -lgpu2 -lX11 -lXext -lm"
695 fi
696 else
697 AC_MSG_WARN([Directory ${withval} does not exist.])
698 fi ;;
699 *) AC_MSG_WARN([--with-sim-gpu2 option invalid for target ${target}])
700 esac])dnl
701
702 # Enable target accurate FP library
703 AC_ARG_WITH(sim-funit,
704 [ --with-sim-funit=DIR Use target FP lib under given DIR],
705 [case "${target}" in
706 mips*-sky*-*)
707 if test -d "${withval}"
708 then
709 LIBS="${LIBS} -L${withval}/lib -lfunit"
710 else
711 AC_MSG_WARN([Directory ${withval} does not exist.])
712 fi ;;
713 *) AC_MSG_WARN([--with-sim-funit option invalid for target ${target}])
714 esac])dnl
715 # end-sanitize-sky
716
717 AC_SUBST(ENABLE_CFLAGS)
718
719 AC_SUBST(CONFIG_OBS)
720 AC_SUBST(CONFIG_DEPS)
721 AC_SUBST(CONFIG_SRCS)
722
723 # Begin stuff to support --enable-shared
724 AC_ARG_ENABLE(shared,
725 [ --enable-shared Use shared libraries],
726 [case "${enableval}" in
727 yes) shared=true ;;
728 no) shared=false ;;
729 *) shared=true ;;
730 esac])dnl
731
732 HLDFLAGS=
733 HLDENV=
734 # If we have shared libraries, try to set rpath reasonably.
735 if test "${shared}" = "true"; then
736 case "${host}" in
737 *-*-hpux*)
738 HLDFLAGS='-Wl,+s,+b,$(libdir)'
739 ;;
740 *-*-irix5* | *-*-irix6*)
741 HLDFLAGS='-Wl,-rpath,$(libdir)'
742 ;;
743 *-*-linux*aout*)
744 ;;
745 *-*-linux* | *-pc-linux-gnu)
746 HLDFLAGS='-Wl,-rpath,$(libdir)'
747 ;;
748 *-*-solaris*)
749 HLDFLAGS='-R $(libdir)'
750 ;;
751 *-*-sysv4*)
752 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;'
753 ;;
754 esac
755 fi
756
757 # On SunOS, if the linker supports the -rpath option, use it to
758 # prevent ../bfd and ../opcodes from being included in the run time
759 # search path.
760 case "${host}" in
761 *-*-sunos*)
762 echo 'main () { }' > conftest.c
763 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
764 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
765 :
766 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
767 :
768 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
769 :
770 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
771 :
772 elif test "${shared}" = "true"; then
773 HLDFLAGS='-Wl,-rpath=$(libdir)'
774 else
775 HLDFLAGS='-Wl,-rpath='
776 fi
777 rm -f conftest.t conftest.c conftest
778 ;;
779 esac
780 AC_SUBST(HLDFLAGS)
781 AC_SUBST(HLDENV)
782 # End stuff to support --enable-shared
783
784 # target_subdir is used by the testsuite to find the target libraries.
785 target_subdir=
786 if test "${host}" != "${target}"; then
787 target_subdir="${target_alias}/"
788 fi
789 AC_SUBST(target_subdir)
790
791 frags=
792 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
793 if test ! -f ${host_makefile_frag}; then
794 AC_MSG_ERROR("*** Gdb does not support host ${host}")
795 fi
796 frags="$frags $host_makefile_frag"
797
798 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
799 if test ! -f ${target_makefile_frag}; then
800 AC_MSG_ERROR("*** Gdb does not support target ${target}")
801 fi
802 frags="$frags $target_makefile_frag"
803
804 AC_SUBST_FILE(host_makefile_frag)
805 AC_SUBST_FILE(target_makefile_frag)
806 AC_SUBST(frags)
807
808 changequote(,)dnl
809 hostfile=`sed -n '
810 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
811 ' ${host_makefile_frag}`
812
813 targetfile=`sed -n '
814 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
815 ' ${target_makefile_frag}`
816
817 # these really aren't orthogonal true/false values of the same condition,
818 # but shells are slow enough that I like to reuse the test conditions
819 # whenever possible
820 if test "${target}" = "${host}"; then
821 nativefile=`sed -n '
822 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
823 ' ${host_makefile_frag}`
824 # else
825 # GDBserver is only useful in a "native" enviroment
826 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
827 fi
828 changequote([,])
829
830 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
831 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
832 # corresponding links. But we have to remove the xm.h files and tm.h
833 # files anyway, e.g. when switching from "configure host" to
834 # "configure none".
835
836 files=
837 links=
838 rm -f xm.h
839 if test "${hostfile}" != ""; then
840 files="${files} config/${gdb_host_cpu}/${hostfile}"
841 links="${links} xm.h"
842 fi
843 rm -f tm.h
844 if test "${targetfile}" != ""; then
845 files="${files} config/${gdb_target_cpu}/${targetfile}"
846 links="${links} tm.h"
847 fi
848 rm -f nm.h
849 if test "${nativefile}" != ""; then
850 files="${files} config/${gdb_host_cpu}/${nativefile}"
851 links="${links} nm.h"
852 else
853 # A cross-only configuration.
854 files="${files} config/nm-empty.h"
855 links="${links} nm.h"
856 fi
857 # start-sanitize-gdbtk
858 AC_PROG_LN_S
859 # Make it possible to use the GUI without doing a full install
860 if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl2 ; then
861 if test "$LN_S" = "ln -s" -a ! -f gdbtcl2 ; then
862 echo linking $srcdir/gdbtcl2 to gdbtcl2
863 $LN_S $srcdir/gdbtcl2 gdbtcl2
864 else
865 echo Warning: Unable to link $srcdir/gdbtcl2 to gdbtcl2. You will need to do a
866 echo " " make install before you are able to run the GUI.
867 fi
868 fi
869 # end-sanitize-gdbtk
870
871 AC_LINK_FILES($files, $links)
872
873 dnl Check for exe extension set on certain hosts (e.g. Win32)
874 AM_EXEEXT
875
876 AC_CONFIG_SUBDIRS($configdirs)
877 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
878 [
879 dnl Autoconf doesn't provide a mechanism for modifying definitions
880 dnl provided by makefile fragments.
881 dnl
882 if test "${nativefile}" = ""; then
883 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
884 < Makefile > Makefile.tem
885 mv -f Makefile.tem Makefile
886 fi
887
888 changequote(,)dnl
889 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
890 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
891 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
892 mv -f Makefile.tmp Makefile
893 changequote([,])dnl
894
895 case x$CONFIG_HEADERS in
896 xconfig.h:config.in)
897 echo > stamp-h ;;
898 esac
899 ],
900 [
901 gdb_host_cpu=$gdb_host_cpu
902 gdb_target_cpu=$gdb_target_cpu
903 nativefile=$nativefile
904 ])
905
906 exit 0
This page took 0.047171 seconds and 5 git commands to generate.