1998-12-14 Dave Brolley <brolley@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
852b7d11
JM
670 if test x${x_libraries} != x
671 then
672 LIBS="${LIBS} -L${withval}/lib -lgpu2 -L${x_libraries} -lX11 -lXext -lm"
673 else
674 LIBS="${LIBS} -L${withval}/lib -lgpu2 -lX11 -lXext -lm"
675 fi
bd5eafcd
FCE
676 else
677 AC_MSG_WARN([Directory ${withval} does not exist.])
678 fi ;;
679 *) AC_MSG_WARN([--with-sim-gpu2 option invalid for target ${target}])
680esac])dnl
3e5fbf91
JL
681
682# Enable target accurate FP library
683AC_ARG_WITH(sim-funit,
ba68ad57 684[ --with-sim-funit=DIR Use target FP lib under given DIR],
3e5fbf91 685[case "${target}" in
af3711e6 686 mips*-sky*-*)
3e5fbf91
JL
687 if test -d "${withval}"
688 then
689 LIBS="${LIBS} -L${withval}/lib -lfunit"
690 else
691 AC_MSG_WARN([Directory ${withval} does not exist.])
692 fi ;;
693 *) AC_MSG_WARN([--with-sim-funit option invalid for target ${target}])
694esac])dnl
b236defa
FCE
695# end-sanitize-sky
696
5436fc65 697AC_SUBST(ENABLE_CFLAGS)
6c310da8
SG
698
699AC_SUBST(CONFIG_OBS)
018d76dd 700AC_SUBST(CONFIG_DEPS)
c7bb1531 701AC_SUBST(CONFIG_SRCS)
6ec7e4d3 702
1d5eb137
FF
703# Begin stuff to support --enable-shared
704AC_ARG_ENABLE(shared,
ba68ad57 705[ --enable-shared Use shared libraries],
1d5eb137
FF
706[case "${enableval}" in
707 yes) shared=true ;;
708 no) shared=false ;;
709 *) shared=true ;;
710esac])dnl
711
712HLDFLAGS=
713HLDENV=
714# If we have shared libraries, try to set rpath reasonably.
715if test "${shared}" = "true"; then
716 case "${host}" in
717 *-*-hpux*)
718 HLDFLAGS='-Wl,+s,+b,$(libdir)'
719 ;;
720 *-*-irix5* | *-*-irix6*)
721 HLDFLAGS='-Wl,-rpath,$(libdir)'
722 ;;
723 *-*-linux*aout*)
724 ;;
8ddf07a2 725 *-*-linux* | *-pc-linux-gnu)
1d5eb137
FF
726 HLDFLAGS='-Wl,-rpath,$(libdir)'
727 ;;
728 *-*-solaris*)
729 HLDFLAGS='-R $(libdir)'
730 ;;
731 *-*-sysv4*)
732 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;'
733 ;;
734 esac
735fi
736
737# On SunOS, if the linker supports the -rpath option, use it to
738# prevent ../bfd and ../opcodes from being included in the run time
739# search path.
740case "${host}" in
741 *-*-sunos*)
742 echo 'main () { }' > conftest.c
743 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
744 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
745 :
746 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
747 :
748 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
749 :
074d813d
PS
750 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
751 :
1d5eb137
FF
752 elif test "${shared}" = "true"; then
753 HLDFLAGS='-Wl,-rpath=$(libdir)'
754 else
755 HLDFLAGS='-Wl,-rpath='
756 fi
757 rm -f conftest.t conftest.c conftest
758 ;;
759esac
760AC_SUBST(HLDFLAGS)
761AC_SUBST(HLDENV)
762# End stuff to support --enable-shared
763
9c0bc1da
DE
764# target_subdir is used by the testsuite to find the target libraries.
765target_subdir=
766if test "${host}" != "${target}"; then
767 target_subdir="${target_alias}/"
768fi
769AC_SUBST(target_subdir)
bc028766 770
5f107900 771frags=
5436fc65
C
772host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
773if test ! -f ${host_makefile_frag}; then
774AC_MSG_ERROR("*** Gdb does not support host ${host}")
912e0732 775fi
5f107900 776frags="$frags $host_makefile_frag"
912e0732 777
5436fc65
C
778target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
779if test ! -f ${target_makefile_frag}; then
780AC_MSG_ERROR("*** Gdb does not support target ${target}")
912e0732 781fi
5f107900 782frags="$frags $target_makefile_frag"
912e0732 783
5436fc65
C
784AC_SUBST_FILE(host_makefile_frag)
785AC_SUBST_FILE(target_makefile_frag)
5f107900 786AC_SUBST(frags)
5436fc65 787
094fd4ae
C
788changequote(,)dnl
789hostfile=`sed -n '
790s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
791' ${host_makefile_frag}`
5436fc65 792
094fd4ae
C
793targetfile=`sed -n '
794s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
795' ${target_makefile_frag}`
79f68f0f
DZ
796
797# these really aren't orthogonal true/false values of the same condition,
798# but shells are slow enough that I like to reuse the test conditions
799# whenever possible
5436fc65 800if test "${target}" = "${host}"; then
094fd4ae
C
801nativefile=`sed -n '
802s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
803' ${host_makefile_frag}`
33ef0f93 804# else
5436fc65 805# GDBserver is only useful in a "native" enviroment
33ef0f93 806# configdirs=`echo $configdirs | sed 's/gdbserver//'`
d40309c7 807fi
094fd4ae 808changequote([,])
d40309c7 809
d40309c7 810# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
6573c898 811# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
d40309c7
JG
812# corresponding links. But we have to remove the xm.h files and tm.h
813# files anyway, e.g. when switching from "configure host" to
814# "configure none".
815
bdf3621b
JG
816files=
817links=
dc0c3f64 818rm -f xm.h
5436fc65
C
819if test "${hostfile}" != ""; then
820files="${files} config/${gdb_host_cpu}/${hostfile}"
821links="${links} xm.h"
bdf3621b 822fi
dc0c3f64 823rm -f tm.h
5436fc65
C
824if test "${targetfile}" != ""; then
825files="${files} config/${gdb_target_cpu}/${targetfile}"
826links="${links} tm.h"
bdf3621b 827fi
1a0edbc7 828rm -f nm.h
5436fc65
C
829if test "${nativefile}" != ""; then
830files="${files} config/${gdb_host_cpu}/${nativefile}"
831links="${links} nm.h"
c9c23412 832else
5436fc65
C
833# A cross-only configuration.
834files="${files} config/nm-empty.h"
835links="${links} nm.h"
d40309c7 836fi
d3d75ec9 837# start-sanitize-gdbtk
99174711 838AC_PROG_LN_S
5436fc65 839# Make it possible to use the GUI without doing a full install
454e0c7d
AC
840if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl2 ; then
841 if test "$LN_S" = "ln -s" -a ! -f gdbtcl2 ; then
842 echo linking $srcdir/gdbtcl2 to gdbtcl2
843 $LN_S $srcdir/gdbtcl2 gdbtcl2
99174711 844 else
454e0c7d 845 echo Warning: Unable to link $srcdir/gdbtcl2 to gdbtcl2. You will need to do a
99174711
JM
846 echo " " make install before you are able to run the GUI.
847 fi
754e5da2 848fi
d3d75ec9 849# end-sanitize-gdbtk
754e5da2 850
5436fc65
C
851AC_LINK_FILES($files, $links)
852
98fa4ade 853dnl Check for exe extension set on certain hosts (e.g. Win32)
d836385e 854AM_EXEEXT
98fa4ade 855
5436fc65 856AC_CONFIG_SUBDIRS($configdirs)
0cb7d01d 857AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
5436fc65
C
858[
859dnl Autoconf doesn't provide a mechanism for modifying definitions
860dnl provided by makefile fragments.
861dnl
862if test "${nativefile}" = ""; then
7bd1f0c5 863sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
5436fc65
C
864 < Makefile > Makefile.tem
865mv -f Makefile.tem Makefile
33bc979d
SS
866fi
867
5436fc65 868changequote(,)dnl
94d4b713
JK
869sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
870/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
871/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
872mv -f Makefile.tmp Makefile
5436fc65
C
873changequote([,])dnl
874
31520669 875case x$CONFIG_HEADERS in
18ea4416 876xconfig.h:config.in)
31520669
FF
877echo > stamp-h ;;
878esac
0a5a1821
C
879],
880[
881gdb_host_cpu=$gdb_host_cpu
882gdb_target_cpu=$gdb_target_cpu
883nativefile=$nativefile
5436fc65 884])
5e711e7f
PS
885
886exit 0
This page took 0.34269 seconds and 4 git commands to generate.