Wed Dec 2 15:11:38 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
[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
497 LIBGUI="../libgui/src/libgui.a"
498 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
499 if test x$enable_ide = xyes; then
500 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src -DIDE -I${srcdir}/../ilu/runtime/mainloop"
501 IDE_X="-L../ilu/runtime/mainloop -lilu-Tk -L../ilu/runtime/c -lilu-c -L../ilu/runtime/kernel -lilu"
502 else
503 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src"
504 fi
505 LIBIDETCL="../libidetcl/src/libidetcl.a"
506 LIBIDE="../libide/src/libide.a"
507 IDE_DEPS="../ilu/runtime/mainloop/libilu-Tk.a ../ilu/runtime/c/libilu-c.a ../ilu/runtime/kernel/libilu.a"
508fi
509AC_SUBST(LIBGUI)
510AC_SUBST(GUI_CFLAGS_X)
511AC_SUBST(IDE_CFLAGS_X)
512AC_SUBST(IDE_X)
513AC_SUBST(LIBIDETCL)
514AC_SUBST(LIBIDE)
515AC_SUBST(IDE_DEPS)
fa41e1a3 516# end-sanitize-ide
c076f1ed 517
5436fc65
C
518ENABLE_GDBTK=
519
520AC_ARG_ENABLE(gdbtk,
ba68ad57 521[ --enable-gdbtk Enable GDBTK GUI front end],
5436fc65 522[case "${enableval}" in
0fe1522a
SG
523 yes)
524 case "$host" in
525 *go32*)
526 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
527 enable_gdbtk=no ;;
8a19b35a 528 *windows*)
b613bfbf
GN
529 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
530 enable_gdbtk=no ;;
0fe1522a
SG
531 *)
532 enable_gdbtk=yes ;;
533 esac ;;
534 no)
535 enable_gdbtk=no ;;
536 *)
537 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
538esac],
539[
b93f016b 540# Default is on for everything but go32 and Cygwin
0fe1522a 541case "$host" in
8a19b35a 542 *go32* | *windows*)
b613bfbf 543 ;;
0fe1522a
SG
544 *)
545 enable_gdbtk=yes ;;
546 esac
547])
5436fc65 548
b93f016b 549# In the Cygwin environment, we need some additional flags.
d836385e 550AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
9b119644 551[AC_EGREP_CPP(lose, [
94a91918 552#ifdef __CYGWIN32__
9b119644 553lose
d836385e 554#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
9b119644
ILT
555
556WIN32LIBS=
557WIN32LDAPP=
558AC_SUBST(WIN32LIBS)
559AC_SUBST(WIN32LDAPP)
560
b0f33a03 561DLLTOOL=${DLLTOOL-dlltool}
929db6e5 562WINDRES=${WINDRES-windres}
b0f33a03 563AC_SUBST(DLLTOOL)
929db6e5
EZ
564AC_SUBST(WINDRES)
565
d836385e 566if test x$gdb_cv_os_cygwin = xyes; then
9b119644
ILT
567 if test x$enable_ide = xyes; then
568 WIN32LIBS="-ladvapi32"
569 fi
570fi
571
572configdir="unix"
8a19b35a 573
b177bf84 574GDBTKLIBS=
5436fc65 575if test "${enable_gdbtk}" = "yes"; then
0fe1522a 576
047465fd 577 CY_AC_PATH_TCLCONFIG
0cf433d9
ILT
578 if test -z "${no_tcl}"; then
579 CY_AC_LOAD_TCLCONFIG
580 CY_AC_PATH_TKCONFIG
047465fd 581
0cf433d9
ILT
582 # If $no_tk is nonempty, then we can't do Tk, and there is no
583 # point to doing Tcl.
584 if test -z "${no_tk}"; then
585 CY_AC_LOAD_TKCONFIG
586 CY_AC_PATH_TCLH
587 CY_AC_PATH_TKH
2476848a
MH
588 CY_AC_PATH_ITCLH
589 CY_AC_PATH_TIX
047465fd 590
6bc5b2fa 591 # now look for tix library stuff
1154b47a 592 TIXVERSION=4.1.8.0
6bc5b2fa
MH
593 . ${ac_cv_c_tclconfig}/tclConfig.sh
594 case "${host}" in
b93f016b 595 *-*-cygwin*)
f1f6dd9c 596 tixdir=../tix/win/tcl8.0
6bc5b2fa
MH
597 ;;
598 *)
1154b47a 599 tixdir=../tix/unix/tk8.0
6bc5b2fa
MH
600 ;;
601 esac
bb3d9f43
KS
602 if test "${TCL_SHARED_BUILD}" = "1"; then
603 TIX_LIB_EXT="${TCL_SHLIB_SUFFIX}"
11f91b2b
KS
604
605 # Can't win them all: SunOS 4 (others?) appends a version
606 # number after the ".so"
607 case "${host}" in
608 *-*-sunos4*)
609 TIX_LIB_EXT="${TIX_LIB_EXT}.1.0" ;;
610 esac
611
bb3d9f43
KS
612 else
613 TIX_LIB_EXT=".a"
614 fi
11f91b2b 615
6bc5b2fa
MH
616 if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
617 TIXLIB="-L${tixdir} -ltix${TIXVERSION}"
bb3d9f43 618 TIX_DEPS="${tixdir}/libtix${TIXVERSION}${TIX_LIB_EXT}"
6bc5b2fa
MH
619 else
620 TIXLIB="-L${tixdir} -ltix`echo ${TIXVERSION} | tr -d .`"
bb3d9f43 621 TIX_DEPS="${tixdir}/libtix`echo ${TIXVERSION} | tr -d .`${TIX_LIB_EXT}"
6bc5b2fa
MH
622 fi
623
0cf433d9 624 ENABLE_GDBTK=1
509b70ac 625 ENABLE_CFLAGS="${ENABLE_CFLAGS} -DGDBTK"
1a57cd09 626
6c310da8 627 # Include some libraries that Tcl and Tk want.
2476848a 628 if test "${enable_ide}" = "yes"; then
8b5befef
ILT
629 TCL_LIBS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
630 CONFIG_DEPS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE_DEPS) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
2476848a 631 else
dafec9dd
ILT
632 TCL_LIBS='$(LIBGUI) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
633 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
2476848a 634 fi
46964086
TT
635 # Yes, the ordering seems wrong here. But it isn't.
636 # TK_LIBS is the list of libraries that need to be linked
b177bf84
TT
637 # after Tcl/Tk. Note that this isn't put into LIBS. If it
638 # were in LIBS then any link tests after this point would
639 # try to include things like `$(LIBGUI)', which wouldn't work.
640 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
f3b86a30 641 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o"
9b119644 642
d836385e 643 if test x$gdb_cv_os_cygwin = xyes; then
018d76dd 644 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32 -luser32"
47792960 645 WIN32LDAPP="-Wl,--subsystem,console"
929db6e5 646 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
9b119644 647 fi
0cf433d9 648 fi
a2b63bbd 649 fi
5436fc65 650fi
a2b63bbd 651
5436fc65 652AC_SUBST(ENABLE_GDBTK)
9c0bc1da 653AC_SUBST(X_CFLAGS)
a2b63bbd
JM
654AC_SUBST(X_LDFLAGS)
655AC_SUBST(X_LIBS)
6bc5b2fa 656AC_SUBST(TIXLIB)
018d76dd 657AC_SUBST(TIX_DEPS)
b177bf84 658AC_SUBST(GDBTKLIBS)
5436fc65
C
659# end-sanitize-gdbtk
660
b236defa
FCE
661AC_PATH_X
662# start-sanitize-sky
663# Enable GPU2 library for MIPS simulator
664AC_ARG_WITH(sim-gpu2,
ba68ad57 665[ --with-sim-gpu2=DIR Use GPU2 library under given DIR],
bd5eafcd 666[case "${target}" in
af3711e6 667 mips*-sky*-*)
bd5eafcd
FCE
668 if test -d "${withval}"
669 then
59bbabf5 670 LIBS="${LIBS} -L${withval}/lib -lgpu2 -L${x_libraries} -lX11 -lXext"
bd5eafcd
FCE
671 else
672 AC_MSG_WARN([Directory ${withval} does not exist.])
673 fi ;;
674 *) AC_MSG_WARN([--with-sim-gpu2 option invalid for target ${target}])
675esac])dnl
3e5fbf91
JL
676
677# Enable target accurate FP library
678AC_ARG_WITH(sim-funit,
ba68ad57 679[ --with-sim-funit=DIR Use target FP lib under given DIR],
3e5fbf91 680[case "${target}" in
af3711e6 681 mips*-sky*-*)
3e5fbf91
JL
682 if test -d "${withval}"
683 then
684 LIBS="${LIBS} -L${withval}/lib -lfunit"
685 else
686 AC_MSG_WARN([Directory ${withval} does not exist.])
687 fi ;;
688 *) AC_MSG_WARN([--with-sim-funit option invalid for target ${target}])
689esac])dnl
b236defa
FCE
690# end-sanitize-sky
691
5436fc65 692AC_SUBST(ENABLE_CFLAGS)
6c310da8
SG
693
694AC_SUBST(CONFIG_OBS)
018d76dd 695AC_SUBST(CONFIG_DEPS)
c7bb1531 696AC_SUBST(CONFIG_SRCS)
6ec7e4d3 697
1d5eb137
FF
698# Begin stuff to support --enable-shared
699AC_ARG_ENABLE(shared,
ba68ad57 700[ --enable-shared Use shared libraries],
1d5eb137
FF
701[case "${enableval}" in
702 yes) shared=true ;;
703 no) shared=false ;;
704 *) shared=true ;;
705esac])dnl
706
707HLDFLAGS=
708HLDENV=
709# If we have shared libraries, try to set rpath reasonably.
710if test "${shared}" = "true"; then
711 case "${host}" in
712 *-*-hpux*)
713 HLDFLAGS='-Wl,+s,+b,$(libdir)'
714 ;;
715 *-*-irix5* | *-*-irix6*)
716 HLDFLAGS='-Wl,-rpath,$(libdir)'
717 ;;
718 *-*-linux*aout*)
719 ;;
8ddf07a2 720 *-*-linux* | *-pc-linux-gnu)
1d5eb137
FF
721 HLDFLAGS='-Wl,-rpath,$(libdir)'
722 ;;
723 *-*-solaris*)
724 HLDFLAGS='-R $(libdir)'
725 ;;
726 *-*-sysv4*)
727 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;'
728 ;;
729 esac
730fi
731
732# On SunOS, if the linker supports the -rpath option, use it to
733# prevent ../bfd and ../opcodes from being included in the run time
734# search path.
735case "${host}" in
736 *-*-sunos*)
737 echo 'main () { }' > conftest.c
738 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
739 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
740 :
741 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
742 :
743 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
744 :
074d813d
PS
745 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
746 :
1d5eb137
FF
747 elif test "${shared}" = "true"; then
748 HLDFLAGS='-Wl,-rpath=$(libdir)'
749 else
750 HLDFLAGS='-Wl,-rpath='
751 fi
752 rm -f conftest.t conftest.c conftest
753 ;;
754esac
755AC_SUBST(HLDFLAGS)
756AC_SUBST(HLDENV)
757# End stuff to support --enable-shared
758
9c0bc1da
DE
759# target_subdir is used by the testsuite to find the target libraries.
760target_subdir=
761if test "${host}" != "${target}"; then
762 target_subdir="${target_alias}/"
763fi
764AC_SUBST(target_subdir)
bc028766 765
5f107900 766frags=
5436fc65
C
767host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
768if test ! -f ${host_makefile_frag}; then
769AC_MSG_ERROR("*** Gdb does not support host ${host}")
912e0732 770fi
5f107900 771frags="$frags $host_makefile_frag"
912e0732 772
5436fc65
C
773target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
774if test ! -f ${target_makefile_frag}; then
775AC_MSG_ERROR("*** Gdb does not support target ${target}")
912e0732 776fi
5f107900 777frags="$frags $target_makefile_frag"
912e0732 778
5436fc65
C
779AC_SUBST_FILE(host_makefile_frag)
780AC_SUBST_FILE(target_makefile_frag)
5f107900 781AC_SUBST(frags)
5436fc65 782
094fd4ae
C
783changequote(,)dnl
784hostfile=`sed -n '
785s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
786' ${host_makefile_frag}`
5436fc65 787
094fd4ae
C
788targetfile=`sed -n '
789s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
790' ${target_makefile_frag}`
79f68f0f
DZ
791
792# these really aren't orthogonal true/false values of the same condition,
793# but shells are slow enough that I like to reuse the test conditions
794# whenever possible
5436fc65 795if test "${target}" = "${host}"; then
094fd4ae
C
796nativefile=`sed -n '
797s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
798' ${host_makefile_frag}`
33ef0f93 799# else
5436fc65 800# GDBserver is only useful in a "native" enviroment
33ef0f93 801# configdirs=`echo $configdirs | sed 's/gdbserver//'`
d40309c7 802fi
094fd4ae 803changequote([,])
d40309c7 804
d40309c7 805# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
6573c898 806# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
d40309c7
JG
807# corresponding links. But we have to remove the xm.h files and tm.h
808# files anyway, e.g. when switching from "configure host" to
809# "configure none".
810
bdf3621b
JG
811files=
812links=
dc0c3f64 813rm -f xm.h
5436fc65
C
814if test "${hostfile}" != ""; then
815files="${files} config/${gdb_host_cpu}/${hostfile}"
816links="${links} xm.h"
bdf3621b 817fi
dc0c3f64 818rm -f tm.h
5436fc65
C
819if test "${targetfile}" != ""; then
820files="${files} config/${gdb_target_cpu}/${targetfile}"
821links="${links} tm.h"
bdf3621b 822fi
1a0edbc7 823rm -f nm.h
5436fc65
C
824if test "${nativefile}" != ""; then
825files="${files} config/${gdb_host_cpu}/${nativefile}"
826links="${links} nm.h"
c9c23412 827else
5436fc65
C
828# A cross-only configuration.
829files="${files} config/nm-empty.h"
830links="${links} nm.h"
d40309c7 831fi
d3d75ec9 832# start-sanitize-gdbtk
99174711 833AC_PROG_LN_S
5436fc65 834# Make it possible to use the GUI without doing a full install
454e0c7d
AC
835if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl2 ; then
836 if test "$LN_S" = "ln -s" -a ! -f gdbtcl2 ; then
837 echo linking $srcdir/gdbtcl2 to gdbtcl2
838 $LN_S $srcdir/gdbtcl2 gdbtcl2
99174711 839 else
454e0c7d 840 echo Warning: Unable to link $srcdir/gdbtcl2 to gdbtcl2. You will need to do a
99174711
JM
841 echo " " make install before you are able to run the GUI.
842 fi
754e5da2 843fi
d3d75ec9 844# end-sanitize-gdbtk
754e5da2 845
5436fc65
C
846AC_LINK_FILES($files, $links)
847
98fa4ade 848dnl Check for exe extension set on certain hosts (e.g. Win32)
d836385e 849AM_EXEEXT
98fa4ade 850
5436fc65 851AC_CONFIG_SUBDIRS($configdirs)
0cb7d01d 852AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
5436fc65
C
853[
854dnl Autoconf doesn't provide a mechanism for modifying definitions
855dnl provided by makefile fragments.
856dnl
857if test "${nativefile}" = ""; then
7bd1f0c5 858sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
5436fc65
C
859 < Makefile > Makefile.tem
860mv -f Makefile.tem Makefile
33bc979d
SS
861fi
862
5436fc65 863changequote(,)dnl
94d4b713
JK
864sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
865/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
866/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
867mv -f Makefile.tmp Makefile
5436fc65
C
868changequote([,])dnl
869
31520669 870case x$CONFIG_HEADERS in
18ea4416 871xconfig.h:config.in)
31520669
FF
872echo > stamp-h ;;
873esac
0a5a1821
C
874],
875[
876gdb_host_cpu=$gdb_host_cpu
877gdb_target_cpu=$gdb_target_cpu
878nativefile=$nativefile
5436fc65 879])
5e711e7f
PS
880
881exit 0
This page took 0.393144 seconds and 4 git commands to generate.