1999-02-01 Jason Molenda (jsm@bugshack.cygnus.com)
[deliverable/binutils-gdb.git] / gdb / configure.in
CommitLineData
2f4973f8 1dnl Autoconf configure script for GDB, the GNU debugger.
f240337a 2dnl Copyright 1995, 1996, 1997, 1998, 1999 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
0abbe35d 22AC_PREREQ(2.13)dnl
5436fc65 23AC_INIT(main.c)
18ea4416 24AC_CONFIG_HEADER(config.h:config.in)
5436fc65 25
5436fc65
C
26AC_PROG_CC
27AC_AIX
5436fc65 28AC_ISC_POSIX
460845ab 29AM_PROG_CC_STDC
5436fc65 30
f02156cf 31AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
0579b53d
GN
32AC_CANONICAL_SYSTEM
33
fcfc3c0c
TT
34dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
35dnl link with the correct libraries.
36ALL_LINGUAS=
37CY_GNU_GETTEXT
38
bfde4a67
SG
39dnl List of object files added by configure.
40
41CONFIG_OBS=
018d76dd 42CONFIG_DEPS=
c7bb1531 43CONFIG_SRCS=
bfde4a67
SG
44
45configdirs="doc testsuite"
46
47dnl
48changequote(,)dnl
49
50. ${srcdir}/configure.host
51
52. ${srcdir}/configure.tgt
53
54dnl
55changequote([,])dnl
56
5436fc65 57AC_PROG_INSTALL
d8efbc66
FF
58AC_CHECK_TOOL(AR, ar)
59AC_CHECK_TOOL(RANLIB, ranlib, :)
1e02f078 60AC_PROG_YACC
5436fc65 61
5436fc65
C
62AC_ARG_PROGRAM
63
c14cabba
AC
64AC_TYPE_SIGNAL
65
2b576293 66AC_HEADER_STDC
9ed669cf 67
c98fe0c1
JI
68AC_CHECK_HEADERS(ctype.h curses.h endian.h libintl.h link.h \
69 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
70 string.h sys/procfs.h sys/ptrace.h sys/reg.h \
71 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
72 wchar.h wctype.h asm/debugreg.h)
2b576293
C
73AC_HEADER_STAT
74
8501c742
SG
75AC_C_CONST
76
b0f33a03 77AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc)
0aa3233e 78AC_FUNC_ALLOCA
72ae15f6 79
87feff9d
JM
80BFD_NEED_DECLARATION(malloc)
81BFD_NEED_DECLARATION(realloc)
82BFD_NEED_DECLARATION(free)
83BFD_NEED_DECLARATION(strerror)
84BFD_NEED_DECLARATION(strdup)
85
e3147bf2 86# If we are configured native on GNU/Linux, work around problems with sys/procfs.h
54225fd0
MA
87if test "${target}" = "${host}"; then
88 case "${host}" in
3435297a 89 i[[3456]]86-*-linux*)
0728afad 90 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
54225fd0
MA
91 AC_DEFINE(sys_quotactl)
92 ;;
93 esac
94fi
95
4708ac65 96AC_MSG_CHECKING([for gregset_t type])
07b77f5c 97AC_CACHE_VAL(gdb_cv_have_gregset_t,
4708ac65 98[AC_TRY_LINK([#include <sys/procfs.h>],[gregset_t *gregsetp = 0],
07b77f5c
FF
99gdb_cv_have_gregset_t=yes, gdb_cv_have_gregset_t=no)])
100AC_MSG_RESULT($gdb_cv_have_gregset_t)
101if test $gdb_cv_have_gregset_t = yes; then
4708ac65
FF
102 AC_DEFINE(HAVE_GREGSET_T)
103fi
104
105AC_MSG_CHECKING([for fpregset_t type])
07b77f5c 106AC_CACHE_VAL(gdb_cv_have_fpregset_t,
4708ac65 107[AC_TRY_LINK([#include <sys/procfs.h>],[fpregset_t *fpregsetp = 0],
07b77f5c
FF
108gdb_cv_have_fpregset_t=yes, gdb_cv_have_fpregset_t=no)])
109AC_MSG_RESULT($gdb_cv_have_fpregset_t)
110if test $gdb_cv_have_fpregset_t = yes; then
4708ac65
FF
111 AC_DEFINE(HAVE_FPREGSET_T)
112fi
113
ef6c51d1
SG
114dnl See if host has libm. This is usually needed by simulators.
115AC_CHECK_LIB(m, main)
116
879c0417
JM
117dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
118dnl
119dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
120dnl under Solaris 2.6 because it is some funky empty library.
121dnl So only link in libw if we have to.
122AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
123
adcb1e06
JM
124dnl Figure out which term library to use.
125TERM_LIB=
126AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
127 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
128 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
129 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
130 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo)))))
131
132if test "x$TERM_LIB" = x
133then
134 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
135fi
136
137AC_SUBST(TERM_LIB)
138
3f550b59
FF
139dnl See if compiler supports "long long" type.
140
141AC_MSG_CHECKING(for long long support in compiler)
142AC_CACHE_VAL(gdb_cv_c_long_long,
80f600a4 143[AC_TRY_COMPILE(, [
d538f9cf
FF
144 extern long long foo;
145 switch (foo & 2) { case 0: return 1; }
146],
3f550b59
FF
147gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
148AC_MSG_RESULT($gdb_cv_c_long_long)
149if test $gdb_cv_c_long_long = yes; then
150 AC_DEFINE(CC_HAS_LONG_LONG)
151fi
152
153dnl See if the compiler and runtime support printing long long
154
155AC_MSG_CHECKING(for long long support in printf)
156AC_CACHE_VAL(gdb_cv_printf_has_long_long,
157[AC_TRY_RUN([
158int main () {
f7b8c9ce
AC
159 char buf[32];
160 long long l = 0;
161 l = (l << 16) + 0x0123;
162 l = (l << 16) + 0x4567;
163 l = (l << 16) + 0x89ab;
164 l = (l << 16) + 0xcdef;
165 sprintf (buf, "0x%016llx", l);
166 return (strcmp ("0x0123456789abcdef", buf));
3f550b59
FF
167}],
168gdb_cv_printf_has_long_long=yes,
169gdb_cv_printf_has_long_long=no,
170gdb_cv_printf_has_long_long=no)])
171if test $gdb_cv_printf_has_long_long = yes; then
172 AC_DEFINE(PRINTF_HAS_LONG_LONG)
173fi
174AC_MSG_RESULT($gdb_cv_printf_has_long_long)
175
aa220473
SG
176dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
177dnl because autoconf complains about cross-compilation issues. However, this
178dnl code uses the same variables as the macro for compatibility.
179
07b77f5c 180AC_MSG_CHECKING(for long double support in compiler)
aa220473
SG
181AC_CACHE_VAL(ac_cv_c_long_double,
182[AC_TRY_COMPILE(, [long double foo;],
183ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
184AC_MSG_RESULT($ac_cv_c_long_double)
185if test $ac_cv_c_long_double = yes; then
186 AC_DEFINE(HAVE_LONG_DOUBLE)
187fi
188
07b77f5c
FF
189dnl See if the compiler and runtime support printing long doubles
190
191AC_MSG_CHECKING(for long double support in printf)
192AC_CACHE_VAL(gdb_cv_printf_has_long_double,
193[AC_TRY_RUN([
194int main () {
195 char buf[16];
196 long double f = 3.141592653;
197 sprintf (buf, "%Lg", f);
198 return (strncmp ("3.14159", buf, 7));
199}],
200gdb_cv_printf_has_long_double=yes,
201gdb_cv_printf_has_long_double=no,
202gdb_cv_printf_has_long_double=no)])
203if test $gdb_cv_printf_has_long_double = yes; then
204 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
205fi
206AC_MSG_RESULT($gdb_cv_printf_has_long_double)
207
f7b8c9ce
AC
208dnl See if the compiler and runtime support scanning long doubles
209
210AC_MSG_CHECKING(for long double support in scanf)
211AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
212[AC_TRY_RUN([
213int main () {
214 char *buf = "3.141592653";
215 long double f = 0;
216 sscanf (buf, "%Lg", &f);
217 return !(f > 3.14159 && f < 3.14160);
218}],
219gdb_cv_scanf_has_long_double=yes,
220gdb_cv_scanf_has_long_double=no,
221gdb_cv_scanf_has_long_double=no)])
222if test $gdb_cv_scanf_has_long_double = yes; then
223 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
224fi
225AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
226
2b576293 227AC_FUNC_MMAP
5436fc65 228
4915acad
SG
229dnl See if thread_db library is around for Solaris thread debugging. Note that
230dnl we must explicitly test for version 1 of the library because version 0
231dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
232
89e673a4
SG
233dnl Note that we only want this if we are both native (host == target), and
234dnl not doing a canadian cross build (build == host).
235
236if test ${build} = ${host} -a ${host} = ${target} ; then
4b95e9a1
JM
237 case ${host_os} in
238 hpux*)
239 AC_MSG_CHECKING(for HPUX/OSF thread support)
240 if test -f /usr/include/dce/cma_config.h ; then
241 if test "$GCC" = "yes" ; then
242 AC_MSG_RESULT(yes)
243 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
244 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
c7bb1531 245 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
4b95e9a1
JM
246 else
247 AC_MSG_RESULT(no (suppressed because you are not using GCC))
248 fi
249 else
250 AC_MSG_RESULT(no)
251 fi
252 ;;
253 solaris*)
254 AC_MSG_CHECKING(for Solaris thread debugging library)
255 if test -f /usr/lib/libthread_db.so.1 ; then
256 AC_MSG_RESULT(yes)
257 AC_DEFINE(HAVE_THREAD_DB_LIB)
258 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
c7bb1531 259 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
4b95e9a1
JM
260 AC_CHECK_LIB(dl, dlopen)
261 if test "$GCC" = "yes" ; then
262 # The GNU linker requires the -export-dynamic option to make
263 # all symbols visible in the dynamic symbol table.
264 hold_ldflags=$LDFLAGS
265 AC_MSG_CHECKING(for the ld -export-dynamic flag)
266 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
267 AC_TRY_LINK(, [int i;], found=yes, found=no)
268 LDFLAGS=$hold_ldflags
269 AC_MSG_RESULT($found)
270 if test $found = yes; then
271 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
272 fi
273 fi
37f58dce
FL
274 # Sun randomly tweaked the prototypes in <proc_service.h>
275 # at one point.
276 AC_MSG_CHECKING(if <proc_service.h> is old)
277 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
278 AC_TRY_COMPILE([
279 #include <proc_service.h>
280 ps_err_e ps_pdwrite
281 (struct ps_prochandle*, psaddr_t, const void*, size_t);
282 ],, gdb_cv_proc_service_is_old=no,
283 gdb_cv_proc_service_is_old=yes)
284 ])
285 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
286 if test $gdb_cv_proc_service_is_old = yes; then
287 AC_DEFINE(PROC_SERVICE_IS_OLD)
288 fi
4b95e9a1
JM
289 else
290 AC_MSG_RESULT(no)
291 fi
292 ;;
293 esac
294 AC_SUBST(CONFIG_LDFLAGS)
89e673a4 295fi
47ef0da5 296
5436fc65
C
297dnl Handle optional features that can be enabled.
298ENABLE_CFLAGS=
5436fc65 299
460845ab
DT
300AC_ARG_ENABLE(tui,
301[ --enable-tui Enable full-screen terminal user interface],
302[
303 case "${enable_tui}" in
304 yes | no) ;;
305 "") enable_tui=yes ;;
306 *)
307 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
308 ;;
309 esac
310])
311case ${enable_tui} in
312 "yes" )
313 AC_DEFINE(TUI)
314 BUILD_TUI=all-tui
315 TUI_LIBRARY=tui/libtui.a
316 ;;
317 * )
318 BUILD_TUI=
319 TUI_LIBRARY=
320 ;;
321esac
322AC_SUBST(BUILD_TUI)
323AC_SUBST(TUI_LIBRARY)
324
5436fc65 325AC_ARG_ENABLE(netrom,
d951f9e4 326[ --enable-netrom Enable NetROM support],
5436fc65
C
327[case "${enableval}" in
328yes) enable_netrom=yes ;;
329no) enable_netrom=no ;;
330*) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
331esac])
332
333if test "${enable_netrom}" = "yes"; then
6c310da8 334 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
c7bb1531 335 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
5436fc65
C
336fi
337
b9a9cde4 338AC_ARG_ENABLE(build-warnings,
d951f9e4 339[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
b9a9cde4
AC
340[build_warnings="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
341case "${enableval}" in
342 yes) ;;
343 no) build_warnings="-w";;
c8623080
AC
344 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
345 build_warnings="${build_warnings} ${t}";;
346 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
347 build_warnings="${t} ${build_warnings}";;
348 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
b9a9cde4
AC
349esac],[build_warnings=""])dnl
350
351if test "x${build_warnings}" != x -a "x$GCC" = xyes
ba68ad57 352then
b9a9cde4 353 WARN_CFLAGS="${build_warnings}"
ba68ad57
JM
354else
355 WARN_CFLAGS=""
356fi
357AC_SUBST(WARN_CFLAGS)
358
0728afad
FF
359MMALLOC_CFLAGS=
360MMALLOC=
361AC_SUBST(MMALLOC_CFLAGS)
362AC_SUBST(MMALLOC)
363
364AC_ARG_WITH(mmalloc,
ba68ad57 365[ --with-mmalloc Use memory mapped malloc package],
0728afad
FF
366[case "${withval}" in
367 yes) want_mmalloc=true ;;
368 no) want_mmalloc=false;;
369 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
370esac],[want_mmalloc=false])dnl
371
372if test x$want_mmalloc = xtrue; then
373 AC_DEFINE(USE_MMALLOC)
dd600735 374 AC_DEFINE(MMCHECK_FORCE)
0728afad
FF
375 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
376 MMALLOC='../mmalloc/libmmalloc.a'
377fi
378
287026b7
AC
379# start-sanitize-carp
380# The below takes an educated guess at the targets that
381# should be built. It is an interum version that provides
382# significant backward compatibility.
383
384AC_ARG_ENABLE(carp,
d951f9e4 385[ --enable-carp Configure alternative readaptive paradigm ],
287026b7
AC
386[case "${enableval}" in
387 yes) enable_carp=yes ;;
388 no) enable_carp=no ;;
389 *) AC_MSG_ERROR([bad value ${enableval} for carp option]) ;;
390esac],[enable_carp=no])dnl
391
392AC_ARG_ENABLE(targets,
393[ --enable-targets alternative target configurations],
394[case "${enableval}" in
395 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
396 ;;
397 no) enable_targets= ;;
398 *) enable_targets="$enableval" ;;
399esac])dnl
400
401# Canonicalize the secondary target names.
402all_targets=false
403if test -n "$enable_targets" ; then
404 if test "$enable_targets" = all ; then
405 all_targets=true
406 else
407 for targ in `echo $enable_targets | sed 's/,/ /g'`
408 do
409 result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $targ 2>/dev/null`
410 if test -n "$result" ; then
411 canon_targets="$canon_targets $result"
412 fi
413 done
414 fi
415fi
416
417# Convert the target names into GDB [*]-tdep.c names
418changequote(,)dnl
419selarchs=
420for targ in $target $canon_targets
421do
422 if test "x$targ" = "xall" ; then
423 all_targets=true
424 else
b0f33a03 425 t_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
287026b7 426 t_vendor=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
b0f33a03 427 t_os=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
287026b7
AC
428 mt=`
429target=$targ
430target_cpu=$t_cpu
431target_vendor=$t_vendor
432target_os=$t_os
433. ${srcdir}/configure.tgt
434echo ${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt`
435 if test -r ${mt} ; then
436 # This gets confused over .mt files that have multiple -tdep.o
437 tdep=`sed -n '
438s/^.*[ =]\([^ ]*\)-tdep.o.*/\1/p
439' $mt`
440 selarchs="$selarchs $tdep"
441 fi
442 fi
443done
444changequote([,])dnl
445
446# We don't do any links based on the target system, just makefile config.
447
448if test x${all_targets} = xfalse ; then
449
450 # Target architecture .o files.
451 ta=
452
453 for arch in $selarchs
454 do
455 archdefs="$archdefs -DARCH_$arch"
456 ta="$ta ${arch}-tdep.o"
457 # Special cases
458 case "$arch" in
b0f33a03 459 dvp) ta="$ta mips-tdep.o dvp-tdep.o" ;;
287026b7
AC
460 esac
461 done
462
463 # Weed out duplicate .o files.
464 f=""
465 for i in $ta ; do
466 case " $f " in
b0f33a03
JM
467 *" $i "*) ;;
468 *) f="$f $i" ;;
287026b7
AC
469 esac
470 done
471 ta="$f"
472
473 # And duplicate -D flags.
474 f=""
475 for i in $archdefs ; do
476 case " $f " in
b0f33a03
JM
477 *" $i "*) ;;
478 *) f="$f $i" ;;
287026b7
AC
479 esac
480 done
481 archdefs="$f"
482
483 MACHINE_OBS="$ta"
484
485else # all_targets is true
486 archdefs=-DARCH_all
487 MACHINE_OBS='$(ALL_MACHINES)'
488fi
489
490dnl Don't define an archdefs list
491dnl AC_SUBST(archdefs)
492dnl XXXX this name will change several more times
493if test "${enable_carp}" = yes ; then
494 gdb_target=carp
495 gdb_target_cpu=carp
496else
497 MACHINE_OBS="# $MACHINE_OBS"
498fi
499AC_SUBST(MACHINE_OBS)
500
501# end-sanitize-carp
5436fc65 502# start-sanitize-gdbtk
fa41e1a3 503# start-sanitize-ide
2476848a
MH
504ENABLE_IDE=
505AC_ARG_ENABLE(ide, [ --enable-ide Enable IDE support])
506if test "$enable_ide" = yes; then
507 enable_ide=yes
508 ENABLE_IDE=1
509else
510 enable_ide=no
511fi
512AC_SUBST(ENABLE_IDE)
513
c076f1ed 514AC_ARG_WITH(foundry-libs,
ba68ad57 515[ --with-foundry-libs=DIR Use the Foundry SDK in DIR],
c076f1ed
DM
516[FOUNDRY_LIB_BASE=${withval}])
517AC_SUBST(FOUNDRY_LIB_BASE)
518
519#
520# This is the Foundry SDK
521#
522# These variables are used to determine where the Foundry libs and
523# header files are located.
524#
525if test "$FOUNDRY_LIB_BASE" != ""; then
526 LIBGUI="${FOUNDRY_LIB_BASE}/lib/libgui.a"
527 GUI_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
528 if test x$enable_ide = xyes; then
529 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include -DIDE"
530 IDE_X="-L${FOUNDRY_LIB_BASE}/lib -lilu-Tk -lilu-c -lilu"
531 else
532 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
533 fi
534 LIBIDETCL="${FOUNDRY_LIB_BASE}/lib/libidetcl.a"
535 LIBIDE="${FOUNDRY_LIB_BASE}/lib/libide.a"
536 IDE_DEPS="${FOUNDRY_LIB_BASE}/lib/libilu-Tk.a ${FOUNDRY_LIB_BASE}/lib/libilu-c.a ${FOUNDRY_LIB_BASE}/lib/libilu.a"
537else
44ffbd6e 538# end-sanitize-ide
c076f1ed
DM
539 LIBGUI="../libgui/src/libgui.a"
540 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
44ffbd6e 541# start-sanitize-ide
c076f1ed
DM
542 if test x$enable_ide = xyes; then
543 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src -DIDE -I${srcdir}/../ilu/runtime/mainloop"
544 IDE_X="-L../ilu/runtime/mainloop -lilu-Tk -L../ilu/runtime/c -lilu-c -L../ilu/runtime/kernel -lilu"
545 else
546 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src"
547 fi
548 LIBIDETCL="../libidetcl/src/libidetcl.a"
549 LIBIDE="../libide/src/libide.a"
550 IDE_DEPS="../ilu/runtime/mainloop/libilu-Tk.a ../ilu/runtime/c/libilu-c.a ../ilu/runtime/kernel/libilu.a"
551fi
44ffbd6e
JI
552
553# end-sanitize-ide
c076f1ed
DM
554AC_SUBST(LIBGUI)
555AC_SUBST(GUI_CFLAGS_X)
44ffbd6e 556# start-sanitize-ide
c076f1ed
DM
557AC_SUBST(IDE_CFLAGS_X)
558AC_SUBST(IDE_X)
559AC_SUBST(LIBIDETCL)
560AC_SUBST(LIBIDE)
561AC_SUBST(IDE_DEPS)
fa41e1a3 562# end-sanitize-ide
c076f1ed 563
2ac058fd
JB
564
565AC_ARG_WITH(cpu,
566[ --with-cpu=CPU set the default CPU variant to debug],
567[case "${target}" in
568 powerpc-* | powerpcle-* )
569 ## It would be nice to keep this table in sync with the one in
570 ## gcc/configure.
571 case "${with_cpu}" in
572 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
573 | 604 | 750 )
574 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
575 ;;
576 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
577 ## These are all RS6000 variants, as far as GDB is concerned.
578 with_cpu=rs6000
579 ;;
580 603e | ec603e )
581 with_cpu=603
582 ;;
583 604e )
584 with_cpu=604
585 ;;
586 * )
587 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
588 with_cpu=ppc-uisa
589 ;;
590 esac
591 ;;
592 * )
593 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
594 ;;
595esac
596AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
597],)
598
599
5436fc65
C
600ENABLE_GDBTK=
601
602AC_ARG_ENABLE(gdbtk,
ba68ad57 603[ --enable-gdbtk Enable GDBTK GUI front end],
5436fc65 604[case "${enableval}" in
0fe1522a
SG
605 yes)
606 case "$host" in
607 *go32*)
608 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
609 enable_gdbtk=no ;;
8a19b35a 610 *windows*)
b613bfbf
GN
611 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
612 enable_gdbtk=no ;;
0fe1522a
SG
613 *)
614 enable_gdbtk=yes ;;
615 esac ;;
616 no)
617 enable_gdbtk=no ;;
618 *)
619 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
620esac],
621[
b93f016b 622# Default is on for everything but go32 and Cygwin
0fe1522a 623case "$host" in
8a19b35a 624 *go32* | *windows*)
b613bfbf 625 ;;
0fe1522a
SG
626 *)
627 enable_gdbtk=yes ;;
628 esac
629])
5436fc65 630
b93f016b 631# In the Cygwin environment, we need some additional flags.
d836385e 632AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
9b119644 633[AC_EGREP_CPP(lose, [
94a91918 634#ifdef __CYGWIN32__
9b119644 635lose
d836385e 636#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
9b119644
ILT
637
638WIN32LIBS=
639WIN32LDAPP=
640AC_SUBST(WIN32LIBS)
641AC_SUBST(WIN32LDAPP)
642
b0f33a03 643DLLTOOL=${DLLTOOL-dlltool}
929db6e5 644WINDRES=${WINDRES-windres}
b0f33a03 645AC_SUBST(DLLTOOL)
929db6e5
EZ
646AC_SUBST(WINDRES)
647
d836385e 648if test x$gdb_cv_os_cygwin = xyes; then
040bbbc2 649 WIN32LIBS="-luser32"
9b119644 650 if test x$enable_ide = xyes; then
040bbbc2 651 WIN32LIBS="$WIN32LIBS -ladvapi32"
9b119644
ILT
652 fi
653fi
654
655configdir="unix"
8a19b35a 656
b177bf84 657GDBTKLIBS=
5436fc65 658if test "${enable_gdbtk}" = "yes"; then
0fe1522a 659
047465fd 660 CY_AC_PATH_TCLCONFIG
0cf433d9
ILT
661 if test -z "${no_tcl}"; then
662 CY_AC_LOAD_TCLCONFIG
663 CY_AC_PATH_TKCONFIG
047465fd 664
0cf433d9
ILT
665 # If $no_tk is nonempty, then we can't do Tk, and there is no
666 # point to doing Tcl.
667 if test -z "${no_tk}"; then
668 CY_AC_LOAD_TKCONFIG
669 CY_AC_PATH_TCLH
670 CY_AC_PATH_TKH
2476848a 671 CY_AC_PATH_ITCLH
c98fe0c1 672 CY_AC_PATH_ITKH
2476848a 673 CY_AC_PATH_TIX
047465fd 674
c98fe0c1
JI
675 # now look for Itcl library stuff
676
677 CY_AC_PATH_ITCLCONFIG
678 if test -z "${no_itcl}"; then
679 CY_AC_LOAD_ITCLCONFIG
680 case "${host}" in
681 *-*-cygwin32*)
682 itcldir=../itcl/itcl/win/
683 ;;
684 *)
685 itcldir=../itcl/itcl/unix/
686 ;;
687 esac
688
689
690 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
691 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
692 fi
693
694
695 # now look for Itk library stuff
696 CY_AC_PATH_ITKCONFIG
697 if test -z "${no_itcl}"; then
698 CY_AC_LOAD_ITKCONFIG
699
700 case "${host}" in
701 *-*-cygwin32*)
702 itkdir=../itcl/itk/win/
703 ;;
704 *)
705 itkdir=../itcl/itk/unix/
706 ;;
707 esac
708
709 ITKLIB="${ITK_BUILD_LIB_SPEC}"
710 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
711 fi
712
6bc5b2fa 713 # now look for tix library stuff
1154b47a 714 TIXVERSION=4.1.8.0
6bc5b2fa
MH
715 . ${ac_cv_c_tclconfig}/tclConfig.sh
716 case "${host}" in
b93f016b 717 *-*-cygwin*)
f1f6dd9c 718 tixdir=../tix/win/tcl8.0
6bc5b2fa
MH
719 ;;
720 *)
1154b47a 721 tixdir=../tix/unix/tk8.0
6bc5b2fa
MH
722 ;;
723 esac
bb3d9f43
KS
724 if test "${TCL_SHARED_BUILD}" = "1"; then
725 TIX_LIB_EXT="${TCL_SHLIB_SUFFIX}"
11f91b2b
KS
726
727 # Can't win them all: SunOS 4 (others?) appends a version
728 # number after the ".so"
729 case "${host}" in
730 *-*-sunos4*)
731 TIX_LIB_EXT="${TIX_LIB_EXT}.1.0" ;;
732 esac
733
bb3d9f43
KS
734 else
735 TIX_LIB_EXT=".a"
736 fi
11f91b2b 737
6bc5b2fa
MH
738 if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
739 TIXLIB="-L${tixdir} -ltix${TIXVERSION}"
bb3d9f43 740 TIX_DEPS="${tixdir}/libtix${TIXVERSION}${TIX_LIB_EXT}"
6bc5b2fa
MH
741 else
742 TIXLIB="-L${tixdir} -ltix`echo ${TIXVERSION} | tr -d .`"
bb3d9f43 743 TIX_DEPS="${tixdir}/libtix`echo ${TIXVERSION} | tr -d .`${TIX_LIB_EXT}"
6bc5b2fa
MH
744 fi
745
0cf433d9 746 ENABLE_GDBTK=1
509b70ac 747 ENABLE_CFLAGS="${ENABLE_CFLAGS} -DGDBTK"
1a57cd09 748
6c310da8 749 # Include some libraries that Tcl and Tk want.
2476848a 750 if test "${enable_ide}" = "yes"; then
c98fe0c1 751 TCL_LIBS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
8b5befef 752 CONFIG_DEPS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE_DEPS) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
2476848a 753 else
c98fe0c1
JI
754 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
755 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
2476848a 756 fi
46964086
TT
757 # Yes, the ordering seems wrong here. But it isn't.
758 # TK_LIBS is the list of libraries that need to be linked
b177bf84
TT
759 # after Tcl/Tk. Note that this isn't put into LIBS. If it
760 # were in LIBS then any link tests after this point would
761 # try to include things like `$(LIBGUI)', which wouldn't work.
762 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
c98fe0c1 763 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-variable.o gdbtk-wrapper.o"
9b119644 764
d836385e 765 if test x$gdb_cv_os_cygwin = xyes; then
040bbbc2 766 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
47792960 767 WIN32LDAPP="-Wl,--subsystem,console"
929db6e5 768 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
9b119644 769 fi
0cf433d9 770 fi
a2b63bbd 771 fi
5436fc65 772fi
a2b63bbd 773
5436fc65 774AC_SUBST(ENABLE_GDBTK)
9c0bc1da 775AC_SUBST(X_CFLAGS)
a2b63bbd
JM
776AC_SUBST(X_LDFLAGS)
777AC_SUBST(X_LIBS)
c98fe0c1
JI
778AC_SUBST(ITCLLIB)
779AC_SUBST(ITCL_DEPS)
780AC_SUBST(ITKLIB)
781AC_SUBST(ITK_DEPS)
6bc5b2fa 782AC_SUBST(TIXLIB)
018d76dd 783AC_SUBST(TIX_DEPS)
b177bf84 784AC_SUBST(GDBTKLIBS)
5436fc65
C
785# end-sanitize-gdbtk
786
b236defa
FCE
787AC_PATH_X
788# start-sanitize-sky
789# Enable GPU2 library for MIPS simulator
790AC_ARG_WITH(sim-gpu2,
ba68ad57 791[ --with-sim-gpu2=DIR Use GPU2 library under given DIR],
bd5eafcd 792[case "${target}" in
af3711e6 793 mips*-sky*-*)
bd5eafcd
FCE
794 if test -d "${withval}"
795 then
852b7d11
JM
796 if test x${x_libraries} != x
797 then
798 LIBS="${LIBS} -L${withval}/lib -lgpu2 -L${x_libraries} -lX11 -lXext -lm"
799 else
800 LIBS="${LIBS} -L${withval}/lib -lgpu2 -lX11 -lXext -lm"
801 fi
bd5eafcd
FCE
802 else
803 AC_MSG_WARN([Directory ${withval} does not exist.])
804 fi ;;
805 *) AC_MSG_WARN([--with-sim-gpu2 option invalid for target ${target}])
806esac])dnl
3e5fbf91
JL
807
808# Enable target accurate FP library
809AC_ARG_WITH(sim-funit,
ba68ad57 810[ --with-sim-funit=DIR Use target FP lib under given DIR],
3e5fbf91 811[case "${target}" in
af3711e6 812 mips*-sky*-*)
3e5fbf91
JL
813 if test -d "${withval}"
814 then
815 LIBS="${LIBS} -L${withval}/lib -lfunit"
816 else
817 AC_MSG_WARN([Directory ${withval} does not exist.])
818 fi ;;
819 *) AC_MSG_WARN([--with-sim-funit option invalid for target ${target}])
820esac])dnl
b236defa
FCE
821# end-sanitize-sky
822
5436fc65 823AC_SUBST(ENABLE_CFLAGS)
6c310da8
SG
824
825AC_SUBST(CONFIG_OBS)
018d76dd 826AC_SUBST(CONFIG_DEPS)
c7bb1531 827AC_SUBST(CONFIG_SRCS)
6ec7e4d3 828
1d5eb137
FF
829# Begin stuff to support --enable-shared
830AC_ARG_ENABLE(shared,
ba68ad57 831[ --enable-shared Use shared libraries],
1d5eb137
FF
832[case "${enableval}" in
833 yes) shared=true ;;
834 no) shared=false ;;
835 *) shared=true ;;
836esac])dnl
837
838HLDFLAGS=
839HLDENV=
840# If we have shared libraries, try to set rpath reasonably.
841if test "${shared}" = "true"; then
842 case "${host}" in
843 *-*-hpux*)
844 HLDFLAGS='-Wl,+s,+b,$(libdir)'
845 ;;
846 *-*-irix5* | *-*-irix6*)
847 HLDFLAGS='-Wl,-rpath,$(libdir)'
848 ;;
849 *-*-linux*aout*)
850 ;;
8ddf07a2 851 *-*-linux* | *-pc-linux-gnu)
1d5eb137
FF
852 HLDFLAGS='-Wl,-rpath,$(libdir)'
853 ;;
854 *-*-solaris*)
855 HLDFLAGS='-R $(libdir)'
856 ;;
857 *-*-sysv4*)
858 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;'
859 ;;
860 esac
861fi
862
863# On SunOS, if the linker supports the -rpath option, use it to
864# prevent ../bfd and ../opcodes from being included in the run time
865# search path.
866case "${host}" in
867 *-*-sunos*)
868 echo 'main () { }' > conftest.c
869 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
870 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
871 :
872 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
873 :
874 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
875 :
074d813d
PS
876 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
877 :
1d5eb137
FF
878 elif test "${shared}" = "true"; then
879 HLDFLAGS='-Wl,-rpath=$(libdir)'
880 else
881 HLDFLAGS='-Wl,-rpath='
882 fi
883 rm -f conftest.t conftest.c conftest
884 ;;
885esac
886AC_SUBST(HLDFLAGS)
887AC_SUBST(HLDENV)
888# End stuff to support --enable-shared
889
9c0bc1da
DE
890# target_subdir is used by the testsuite to find the target libraries.
891target_subdir=
892if test "${host}" != "${target}"; then
893 target_subdir="${target_alias}/"
894fi
895AC_SUBST(target_subdir)
bc028766 896
5f107900 897frags=
5436fc65
C
898host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
899if test ! -f ${host_makefile_frag}; then
900AC_MSG_ERROR("*** Gdb does not support host ${host}")
912e0732 901fi
5f107900 902frags="$frags $host_makefile_frag"
912e0732 903
5436fc65
C
904target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
905if test ! -f ${target_makefile_frag}; then
906AC_MSG_ERROR("*** Gdb does not support target ${target}")
912e0732 907fi
5f107900 908frags="$frags $target_makefile_frag"
912e0732 909
5436fc65
C
910AC_SUBST_FILE(host_makefile_frag)
911AC_SUBST_FILE(target_makefile_frag)
5f107900 912AC_SUBST(frags)
5436fc65 913
094fd4ae
C
914changequote(,)dnl
915hostfile=`sed -n '
916s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
917' ${host_makefile_frag}`
5436fc65 918
094fd4ae
C
919targetfile=`sed -n '
920s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
921' ${target_makefile_frag}`
79f68f0f
DZ
922
923# these really aren't orthogonal true/false values of the same condition,
924# but shells are slow enough that I like to reuse the test conditions
925# whenever possible
5436fc65 926if test "${target}" = "${host}"; then
094fd4ae
C
927nativefile=`sed -n '
928s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
929' ${host_makefile_frag}`
33ef0f93 930# else
5436fc65 931# GDBserver is only useful in a "native" enviroment
33ef0f93 932# configdirs=`echo $configdirs | sed 's/gdbserver//'`
d40309c7 933fi
094fd4ae 934changequote([,])
d40309c7 935
d40309c7 936# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
6573c898 937# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
d40309c7
JG
938# corresponding links. But we have to remove the xm.h files and tm.h
939# files anyway, e.g. when switching from "configure host" to
940# "configure none".
941
bdf3621b
JG
942files=
943links=
dc0c3f64 944rm -f xm.h
5436fc65
C
945if test "${hostfile}" != ""; then
946files="${files} config/${gdb_host_cpu}/${hostfile}"
947links="${links} xm.h"
bdf3621b 948fi
dc0c3f64 949rm -f tm.h
5436fc65
C
950if test "${targetfile}" != ""; then
951files="${files} config/${gdb_target_cpu}/${targetfile}"
952links="${links} tm.h"
bdf3621b 953fi
1a0edbc7 954rm -f nm.h
5436fc65
C
955if test "${nativefile}" != ""; then
956files="${files} config/${gdb_host_cpu}/${nativefile}"
957links="${links} nm.h"
c9c23412 958else
5436fc65
C
959# A cross-only configuration.
960files="${files} config/nm-empty.h"
961links="${links} nm.h"
d40309c7 962fi
d3d75ec9 963# start-sanitize-gdbtk
99174711 964AC_PROG_LN_S
5436fc65 965# Make it possible to use the GUI without doing a full install
454e0c7d
AC
966if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl2 ; then
967 if test "$LN_S" = "ln -s" -a ! -f gdbtcl2 ; then
968 echo linking $srcdir/gdbtcl2 to gdbtcl2
969 $LN_S $srcdir/gdbtcl2 gdbtcl2
99174711 970 else
454e0c7d 971 echo Warning: Unable to link $srcdir/gdbtcl2 to gdbtcl2. You will need to do a
99174711
JM
972 echo " " make install before you are able to run the GUI.
973 fi
754e5da2 974fi
d3d75ec9 975# end-sanitize-gdbtk
754e5da2 976
5436fc65
C
977AC_LINK_FILES($files, $links)
978
98fa4ade 979dnl Check for exe extension set on certain hosts (e.g. Win32)
0abbe35d 980AC_EXEEXT
98fa4ade 981
5436fc65 982AC_CONFIG_SUBDIRS($configdirs)
460845ab 983AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
5436fc65
C
984[
985dnl Autoconf doesn't provide a mechanism for modifying definitions
986dnl provided by makefile fragments.
987dnl
988if test "${nativefile}" = ""; then
7bd1f0c5 989sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
5436fc65
C
990 < Makefile > Makefile.tem
991mv -f Makefile.tem Makefile
33bc979d
SS
992fi
993
5436fc65 994changequote(,)dnl
94d4b713
JK
995sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
996/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
997/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
998mv -f Makefile.tmp Makefile
5436fc65
C
999changequote([,])dnl
1000
31520669 1001case x$CONFIG_HEADERS in
18ea4416 1002xconfig.h:config.in)
31520669
FF
1003echo > stamp-h ;;
1004esac
0a5a1821
C
1005],
1006[
1007gdb_host_cpu=$gdb_host_cpu
1008gdb_target_cpu=$gdb_target_cpu
1009nativefile=$nativefile
5436fc65 1010])
5e711e7f
PS
1011
1012exit 0
This page took 0.427814 seconds and 4 git commands to generate.