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