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