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