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