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