Sat Nov 21 17:15:40 1998 Philippe De Muyter <phdm@macqel.be>
[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";;
303dnl ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
304dnl build_warnings="${build_warnings} ${t}";;
305dnl *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
306dnl build_warnings="${t} ${build_warnings}";;
307dnl *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
308 *) ;;
309esac],[build_warnings=""])dnl
310
311if test "x${build_warnings}" != x -a "x$GCC" = xyes
ba68ad57 312then
b9a9cde4 313 WARN_CFLAGS="${build_warnings}"
ba68ad57
JM
314else
315 WARN_CFLAGS=""
316fi
317AC_SUBST(WARN_CFLAGS)
318
0728afad
FF
319MMALLOC_CFLAGS=
320MMALLOC=
321AC_SUBST(MMALLOC_CFLAGS)
322AC_SUBST(MMALLOC)
323
324AC_ARG_WITH(mmalloc,
ba68ad57 325[ --with-mmalloc Use memory mapped malloc package],
0728afad
FF
326[case "${withval}" in
327 yes) want_mmalloc=true ;;
328 no) want_mmalloc=false;;
329 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
330esac],[want_mmalloc=false])dnl
331
332if test x$want_mmalloc = xtrue; then
333 AC_DEFINE(USE_MMALLOC)
dd600735 334 AC_DEFINE(MMCHECK_FORCE)
0728afad
FF
335 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
336 MMALLOC='../mmalloc/libmmalloc.a'
337fi
338
287026b7
AC
339# start-sanitize-carp
340# The below takes an educated guess at the targets that
341# should be built. It is an interum version that provides
342# significant backward compatibility.
343
344AC_ARG_ENABLE(carp,
345[ --enable-carp Configure alternative readaptive paradigm ],
346[case "${enableval}" in
347 yes) enable_carp=yes ;;
348 no) enable_carp=no ;;
349 *) AC_MSG_ERROR([bad value ${enableval} for carp option]) ;;
350esac],[enable_carp=no])dnl
351
352AC_ARG_ENABLE(targets,
353[ --enable-targets alternative target configurations],
354[case "${enableval}" in
355 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
356 ;;
357 no) enable_targets= ;;
358 *) enable_targets="$enableval" ;;
359esac])dnl
360
361# Canonicalize the secondary target names.
362all_targets=false
363if test -n "$enable_targets" ; then
364 if test "$enable_targets" = all ; then
365 all_targets=true
366 else
367 for targ in `echo $enable_targets | sed 's/,/ /g'`
368 do
369 result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $targ 2>/dev/null`
370 if test -n "$result" ; then
371 canon_targets="$canon_targets $result"
372 fi
373 done
374 fi
375fi
376
377# Convert the target names into GDB [*]-tdep.c names
378changequote(,)dnl
379selarchs=
380for targ in $target $canon_targets
381do
382 if test "x$targ" = "xall" ; then
383 all_targets=true
384 else
b0f33a03 385 t_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
287026b7 386 t_vendor=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
b0f33a03 387 t_os=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
287026b7
AC
388 mt=`
389target=$targ
390target_cpu=$t_cpu
391target_vendor=$t_vendor
392target_os=$t_os
393. ${srcdir}/configure.tgt
394echo ${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt`
395 if test -r ${mt} ; then
396 # This gets confused over .mt files that have multiple -tdep.o
397 tdep=`sed -n '
398s/^.*[ =]\([^ ]*\)-tdep.o.*/\1/p
399' $mt`
400 selarchs="$selarchs $tdep"
401 fi
402 fi
403done
404changequote([,])dnl
405
406# We don't do any links based on the target system, just makefile config.
407
408if test x${all_targets} = xfalse ; then
409
410 # Target architecture .o files.
411 ta=
412
413 for arch in $selarchs
414 do
415 archdefs="$archdefs -DARCH_$arch"
416 ta="$ta ${arch}-tdep.o"
417 # Special cases
418 case "$arch" in
b0f33a03 419 dvp) ta="$ta mips-tdep.o dvp-tdep.o" ;;
287026b7
AC
420 esac
421 done
422
423 # Weed out duplicate .o files.
424 f=""
425 for i in $ta ; do
426 case " $f " in
b0f33a03
JM
427 *" $i "*) ;;
428 *) f="$f $i" ;;
287026b7
AC
429 esac
430 done
431 ta="$f"
432
433 # And duplicate -D flags.
434 f=""
435 for i in $archdefs ; do
436 case " $f " in
b0f33a03
JM
437 *" $i "*) ;;
438 *) f="$f $i" ;;
287026b7
AC
439 esac
440 done
441 archdefs="$f"
442
443 MACHINE_OBS="$ta"
444
445else # all_targets is true
446 archdefs=-DARCH_all
447 MACHINE_OBS='$(ALL_MACHINES)'
448fi
449
450dnl Don't define an archdefs list
451dnl AC_SUBST(archdefs)
452dnl XXXX this name will change several more times
453if test "${enable_carp}" = yes ; then
454 gdb_target=carp
455 gdb_target_cpu=carp
456else
457 MACHINE_OBS="# $MACHINE_OBS"
458fi
459AC_SUBST(MACHINE_OBS)
460
461# end-sanitize-carp
5436fc65 462# start-sanitize-gdbtk
fa41e1a3 463# start-sanitize-ide
2476848a
MH
464ENABLE_IDE=
465AC_ARG_ENABLE(ide, [ --enable-ide Enable IDE support])
466if test "$enable_ide" = yes; then
467 enable_ide=yes
468 ENABLE_IDE=1
469else
470 enable_ide=no
471fi
472AC_SUBST(ENABLE_IDE)
473
c076f1ed 474AC_ARG_WITH(foundry-libs,
ba68ad57 475[ --with-foundry-libs=DIR Use the Foundry SDK in DIR],
c076f1ed
DM
476[FOUNDRY_LIB_BASE=${withval}])
477AC_SUBST(FOUNDRY_LIB_BASE)
478
479#
480# This is the Foundry SDK
481#
482# These variables are used to determine where the Foundry libs and
483# header files are located.
484#
485if test "$FOUNDRY_LIB_BASE" != ""; then
486 LIBGUI="${FOUNDRY_LIB_BASE}/lib/libgui.a"
487 GUI_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
488 if test x$enable_ide = xyes; then
489 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include -DIDE"
490 IDE_X="-L${FOUNDRY_LIB_BASE}/lib -lilu-Tk -lilu-c -lilu"
491 else
492 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
493 fi
494 LIBIDETCL="${FOUNDRY_LIB_BASE}/lib/libidetcl.a"
495 LIBIDE="${FOUNDRY_LIB_BASE}/lib/libide.a"
496 IDE_DEPS="${FOUNDRY_LIB_BASE}/lib/libilu-Tk.a ${FOUNDRY_LIB_BASE}/lib/libilu-c.a ${FOUNDRY_LIB_BASE}/lib/libilu.a"
497else
498 LIBGUI="../libgui/src/libgui.a"
499 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
500 if test x$enable_ide = xyes; then
501 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src -DIDE -I${srcdir}/../ilu/runtime/mainloop"
502 IDE_X="-L../ilu/runtime/mainloop -lilu-Tk -L../ilu/runtime/c -lilu-c -L../ilu/runtime/kernel -lilu"
503 else
504 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src"
505 fi
506 LIBIDETCL="../libidetcl/src/libidetcl.a"
507 LIBIDE="../libide/src/libide.a"
508 IDE_DEPS="../ilu/runtime/mainloop/libilu-Tk.a ../ilu/runtime/c/libilu-c.a ../ilu/runtime/kernel/libilu.a"
509fi
510AC_SUBST(LIBGUI)
511AC_SUBST(GUI_CFLAGS_X)
512AC_SUBST(IDE_CFLAGS_X)
513AC_SUBST(IDE_X)
514AC_SUBST(LIBIDETCL)
515AC_SUBST(LIBIDE)
516AC_SUBST(IDE_DEPS)
fa41e1a3 517# end-sanitize-ide
c076f1ed 518
5436fc65
C
519ENABLE_GDBTK=
520
521AC_ARG_ENABLE(gdbtk,
ba68ad57 522[ --enable-gdbtk Enable GDBTK GUI front end],
5436fc65 523[case "${enableval}" in
0fe1522a
SG
524 yes)
525 case "$host" in
526 *go32*)
527 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
528 enable_gdbtk=no ;;
8a19b35a 529 *windows*)
b613bfbf
GN
530 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
531 enable_gdbtk=no ;;
0fe1522a
SG
532 *)
533 enable_gdbtk=yes ;;
534 esac ;;
535 no)
536 enable_gdbtk=no ;;
537 *)
538 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
539esac],
540[
b93f016b 541# Default is on for everything but go32 and Cygwin
0fe1522a 542case "$host" in
8a19b35a 543 *go32* | *windows*)
b613bfbf 544 ;;
0fe1522a
SG
545 *)
546 enable_gdbtk=yes ;;
547 esac
548])
5436fc65 549
b93f016b 550# In the Cygwin environment, we need some additional flags.
d836385e 551AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
9b119644 552[AC_EGREP_CPP(lose, [
94a91918 553#ifdef __CYGWIN32__
9b119644 554lose
d836385e 555#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
9b119644
ILT
556
557WIN32LIBS=
558WIN32LDAPP=
559AC_SUBST(WIN32LIBS)
560AC_SUBST(WIN32LDAPP)
561
b0f33a03 562DLLTOOL=${DLLTOOL-dlltool}
929db6e5 563WINDRES=${WINDRES-windres}
b0f33a03 564AC_SUBST(DLLTOOL)
929db6e5
EZ
565AC_SUBST(WINDRES)
566
d836385e 567if test x$gdb_cv_os_cygwin = xyes; then
9b119644
ILT
568 if test x$enable_ide = xyes; then
569 WIN32LIBS="-ladvapi32"
570 fi
571fi
572
573configdir="unix"
8a19b35a 574
b177bf84 575GDBTKLIBS=
5436fc65 576if test "${enable_gdbtk}" = "yes"; then
0fe1522a 577
047465fd 578 CY_AC_PATH_TCLCONFIG
0cf433d9
ILT
579 if test -z "${no_tcl}"; then
580 CY_AC_LOAD_TCLCONFIG
581 CY_AC_PATH_TKCONFIG
047465fd 582
0cf433d9
ILT
583 # If $no_tk is nonempty, then we can't do Tk, and there is no
584 # point to doing Tcl.
585 if test -z "${no_tk}"; then
586 CY_AC_LOAD_TKCONFIG
587 CY_AC_PATH_TCLH
588 CY_AC_PATH_TKH
2476848a
MH
589 CY_AC_PATH_ITCLH
590 CY_AC_PATH_TIX
047465fd 591
6bc5b2fa 592 # now look for tix library stuff
1154b47a 593 TIXVERSION=4.1.8.0
6bc5b2fa
MH
594 . ${ac_cv_c_tclconfig}/tclConfig.sh
595 case "${host}" in
b93f016b 596 *-*-cygwin*)
f1f6dd9c 597 tixdir=../tix/win/tcl8.0
6bc5b2fa
MH
598 ;;
599 *)
1154b47a 600 tixdir=../tix/unix/tk8.0
6bc5b2fa
MH
601 ;;
602 esac
bb3d9f43
KS
603 if test "${TCL_SHARED_BUILD}" = "1"; then
604 TIX_LIB_EXT="${TCL_SHLIB_SUFFIX}"
11f91b2b
KS
605
606 # Can't win them all: SunOS 4 (others?) appends a version
607 # number after the ".so"
608 case "${host}" in
609 *-*-sunos4*)
610 TIX_LIB_EXT="${TIX_LIB_EXT}.1.0" ;;
611 esac
612
bb3d9f43
KS
613 else
614 TIX_LIB_EXT=".a"
615 fi
11f91b2b 616
6bc5b2fa
MH
617 if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
618 TIXLIB="-L${tixdir} -ltix${TIXVERSION}"
bb3d9f43 619 TIX_DEPS="${tixdir}/libtix${TIXVERSION}${TIX_LIB_EXT}"
6bc5b2fa
MH
620 else
621 TIXLIB="-L${tixdir} -ltix`echo ${TIXVERSION} | tr -d .`"
bb3d9f43 622 TIX_DEPS="${tixdir}/libtix`echo ${TIXVERSION} | tr -d .`${TIX_LIB_EXT}"
6bc5b2fa
MH
623 fi
624
0cf433d9 625 ENABLE_GDBTK=1
509b70ac 626 ENABLE_CFLAGS="${ENABLE_CFLAGS} -DGDBTK"
1a57cd09 627
6c310da8 628 # Include some libraries that Tcl and Tk want.
2476848a 629 if test "${enable_ide}" = "yes"; then
8b5befef
ILT
630 TCL_LIBS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
631 CONFIG_DEPS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE_DEPS) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
2476848a 632 else
dafec9dd
ILT
633 TCL_LIBS='$(LIBGUI) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
634 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
2476848a 635 fi
46964086
TT
636 # Yes, the ordering seems wrong here. But it isn't.
637 # TK_LIBS is the list of libraries that need to be linked
b177bf84
TT
638 # after Tcl/Tk. Note that this isn't put into LIBS. If it
639 # were in LIBS then any link tests after this point would
640 # try to include things like `$(LIBGUI)', which wouldn't work.
641 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
f3b86a30 642 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o"
9b119644 643
d836385e 644 if test x$gdb_cv_os_cygwin = xyes; then
018d76dd 645 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32 -luser32"
47792960 646 WIN32LDAPP="-Wl,--subsystem,console"
929db6e5 647 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
9b119644 648 fi
0cf433d9 649 fi
a2b63bbd 650 fi
5436fc65 651fi
a2b63bbd 652
5436fc65 653AC_SUBST(ENABLE_GDBTK)
9c0bc1da 654AC_SUBST(X_CFLAGS)
a2b63bbd
JM
655AC_SUBST(X_LDFLAGS)
656AC_SUBST(X_LIBS)
6bc5b2fa 657AC_SUBST(TIXLIB)
018d76dd 658AC_SUBST(TIX_DEPS)
b177bf84 659AC_SUBST(GDBTKLIBS)
5436fc65
C
660# end-sanitize-gdbtk
661
b236defa
FCE
662AC_PATH_X
663# start-sanitize-sky
664# Enable GPU2 library for MIPS simulator
665AC_ARG_WITH(sim-gpu2,
ba68ad57 666[ --with-sim-gpu2=DIR Use GPU2 library under given DIR],
bd5eafcd 667[case "${target}" in
af3711e6 668 mips*-sky*-*)
bd5eafcd
FCE
669 if test -d "${withval}"
670 then
59bbabf5 671 LIBS="${LIBS} -L${withval}/lib -lgpu2 -L${x_libraries} -lX11 -lXext"
bd5eafcd
FCE
672 else
673 AC_MSG_WARN([Directory ${withval} does not exist.])
674 fi ;;
675 *) AC_MSG_WARN([--with-sim-gpu2 option invalid for target ${target}])
676esac])dnl
3e5fbf91
JL
677
678# Enable target accurate FP library
679AC_ARG_WITH(sim-funit,
ba68ad57 680[ --with-sim-funit=DIR Use target FP lib under given DIR],
3e5fbf91 681[case "${target}" in
af3711e6 682 mips*-sky*-*)
3e5fbf91
JL
683 if test -d "${withval}"
684 then
685 LIBS="${LIBS} -L${withval}/lib -lfunit"
686 else
687 AC_MSG_WARN([Directory ${withval} does not exist.])
688 fi ;;
689 *) AC_MSG_WARN([--with-sim-funit option invalid for target ${target}])
690esac])dnl
b236defa
FCE
691# end-sanitize-sky
692
5436fc65 693AC_SUBST(ENABLE_CFLAGS)
6c310da8
SG
694
695AC_SUBST(CONFIG_OBS)
018d76dd 696AC_SUBST(CONFIG_DEPS)
c7bb1531 697AC_SUBST(CONFIG_SRCS)
6ec7e4d3 698
1d5eb137
FF
699# Begin stuff to support --enable-shared
700AC_ARG_ENABLE(shared,
ba68ad57 701[ --enable-shared Use shared libraries],
1d5eb137
FF
702[case "${enableval}" in
703 yes) shared=true ;;
704 no) shared=false ;;
705 *) shared=true ;;
706esac])dnl
707
708HLDFLAGS=
709HLDENV=
710# If we have shared libraries, try to set rpath reasonably.
711if test "${shared}" = "true"; then
712 case "${host}" in
713 *-*-hpux*)
714 HLDFLAGS='-Wl,+s,+b,$(libdir)'
715 ;;
716 *-*-irix5* | *-*-irix6*)
717 HLDFLAGS='-Wl,-rpath,$(libdir)'
718 ;;
719 *-*-linux*aout*)
720 ;;
8ddf07a2 721 *-*-linux* | *-pc-linux-gnu)
1d5eb137
FF
722 HLDFLAGS='-Wl,-rpath,$(libdir)'
723 ;;
724 *-*-solaris*)
725 HLDFLAGS='-R $(libdir)'
726 ;;
727 *-*-sysv4*)
728 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;'
729 ;;
730 esac
731fi
732
733# On SunOS, if the linker supports the -rpath option, use it to
734# prevent ../bfd and ../opcodes from being included in the run time
735# search path.
736case "${host}" in
737 *-*-sunos*)
738 echo 'main () { }' > conftest.c
739 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
740 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
741 :
742 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
743 :
744 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
745 :
074d813d
PS
746 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
747 :
1d5eb137
FF
748 elif test "${shared}" = "true"; then
749 HLDFLAGS='-Wl,-rpath=$(libdir)'
750 else
751 HLDFLAGS='-Wl,-rpath='
752 fi
753 rm -f conftest.t conftest.c conftest
754 ;;
755esac
756AC_SUBST(HLDFLAGS)
757AC_SUBST(HLDENV)
758# End stuff to support --enable-shared
759
9c0bc1da
DE
760# target_subdir is used by the testsuite to find the target libraries.
761target_subdir=
762if test "${host}" != "${target}"; then
763 target_subdir="${target_alias}/"
764fi
765AC_SUBST(target_subdir)
bc028766 766
5f107900 767frags=
5436fc65
C
768host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
769if test ! -f ${host_makefile_frag}; then
770AC_MSG_ERROR("*** Gdb does not support host ${host}")
912e0732 771fi
5f107900 772frags="$frags $host_makefile_frag"
912e0732 773
5436fc65
C
774target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
775if test ! -f ${target_makefile_frag}; then
776AC_MSG_ERROR("*** Gdb does not support target ${target}")
912e0732 777fi
5f107900 778frags="$frags $target_makefile_frag"
912e0732 779
5436fc65
C
780AC_SUBST_FILE(host_makefile_frag)
781AC_SUBST_FILE(target_makefile_frag)
5f107900 782AC_SUBST(frags)
5436fc65 783
094fd4ae
C
784changequote(,)dnl
785hostfile=`sed -n '
786s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
787' ${host_makefile_frag}`
5436fc65 788
094fd4ae
C
789targetfile=`sed -n '
790s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
791' ${target_makefile_frag}`
79f68f0f
DZ
792
793# these really aren't orthogonal true/false values of the same condition,
794# but shells are slow enough that I like to reuse the test conditions
795# whenever possible
5436fc65 796if test "${target}" = "${host}"; then
094fd4ae
C
797nativefile=`sed -n '
798s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
799' ${host_makefile_frag}`
33ef0f93 800# else
5436fc65 801# GDBserver is only useful in a "native" enviroment
33ef0f93 802# configdirs=`echo $configdirs | sed 's/gdbserver//'`
d40309c7 803fi
094fd4ae 804changequote([,])
d40309c7 805
d40309c7 806# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
6573c898 807# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
d40309c7
JG
808# corresponding links. But we have to remove the xm.h files and tm.h
809# files anyway, e.g. when switching from "configure host" to
810# "configure none".
811
bdf3621b
JG
812files=
813links=
dc0c3f64 814rm -f xm.h
5436fc65
C
815if test "${hostfile}" != ""; then
816files="${files} config/${gdb_host_cpu}/${hostfile}"
817links="${links} xm.h"
bdf3621b 818fi
dc0c3f64 819rm -f tm.h
5436fc65
C
820if test "${targetfile}" != ""; then
821files="${files} config/${gdb_target_cpu}/${targetfile}"
822links="${links} tm.h"
bdf3621b 823fi
1a0edbc7 824rm -f nm.h
5436fc65
C
825if test "${nativefile}" != ""; then
826files="${files} config/${gdb_host_cpu}/${nativefile}"
827links="${links} nm.h"
c9c23412 828else
5436fc65
C
829# A cross-only configuration.
830files="${files} config/nm-empty.h"
831links="${links} nm.h"
d40309c7 832fi
d3d75ec9 833# start-sanitize-gdbtk
99174711 834AC_PROG_LN_S
5436fc65 835# Make it possible to use the GUI without doing a full install
454e0c7d
AC
836if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl2 ; then
837 if test "$LN_S" = "ln -s" -a ! -f gdbtcl2 ; then
838 echo linking $srcdir/gdbtcl2 to gdbtcl2
839 $LN_S $srcdir/gdbtcl2 gdbtcl2
99174711 840 else
454e0c7d 841 echo Warning: Unable to link $srcdir/gdbtcl2 to gdbtcl2. You will need to do a
99174711
JM
842 echo " " make install before you are able to run the GUI.
843 fi
754e5da2 844fi
d3d75ec9 845# end-sanitize-gdbtk
754e5da2 846
5436fc65
C
847AC_LINK_FILES($files, $links)
848
98fa4ade 849dnl Check for exe extension set on certain hosts (e.g. Win32)
d836385e 850AM_EXEEXT
98fa4ade 851
5436fc65 852AC_CONFIG_SUBDIRS($configdirs)
0cb7d01d 853AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
5436fc65
C
854[
855dnl Autoconf doesn't provide a mechanism for modifying definitions
856dnl provided by makefile fragments.
857dnl
858if test "${nativefile}" = ""; then
7bd1f0c5 859sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
5436fc65
C
860 < Makefile > Makefile.tem
861mv -f Makefile.tem Makefile
33bc979d
SS
862fi
863
5436fc65 864changequote(,)dnl
94d4b713
JK
865sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
866/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
867/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
868mv -f Makefile.tmp Makefile
5436fc65
C
869changequote([,])dnl
870
31520669 871case x$CONFIG_HEADERS in
18ea4416 872xconfig.h:config.in)
31520669
FF
873echo > stamp-h ;;
874esac
0a5a1821
C
875],
876[
877gdb_host_cpu=$gdb_host_cpu
878gdb_target_cpu=$gdb_target_cpu
879nativefile=$nativefile
5436fc65 880])
5e711e7f
PS
881
882exit 0
This page took 0.363818 seconds and 4 git commands to generate.