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