Remove sanitized-out Magic Cap support, will never be released
[deliverable/binutils-gdb.git] / gdb / configure.in
CommitLineData
2f4973f8
SG
1dnl Autoconf configure script for GDB, the GNU debugger.
2dnl Copyright 1995, 1996 Free Software Foundation, Inc.
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
28AC_MINIX
29AC_ISC_POSIX
30
35ce4f08
GN
31DLLTOOL=${DLLTOOL-dlltool}
32AC_SUBST(DLLTOOL)
33
f02156cf 34AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
0579b53d
GN
35AC_CANONICAL_SYSTEM
36
bfde4a67
SG
37dnl List of object files added by configure.
38
39CONFIG_OBS=
40
41configdirs="doc testsuite"
42
43dnl
44changequote(,)dnl
45
46. ${srcdir}/configure.host
47
48. ${srcdir}/configure.tgt
49
50dnl
51changequote([,])dnl
52
5436fc65 53AC_PROG_INSTALL
d8efbc66
FF
54AC_CHECK_TOOL(AR, ar)
55AC_CHECK_TOOL(RANLIB, ranlib, :)
1e02f078 56AC_PROG_YACC
d8efbc66 57AC_PROG_AWK
5436fc65 58
5436fc65
C
59AC_ARG_PROGRAM
60
c14cabba
AC
61AC_TYPE_SIGNAL
62
2b576293 63AC_HEADER_STDC
0db3fe94 64AC_CHECK_HEADERS(limits.h memory.h string.h strings.h unistd.h termios.h termio.h sgtty.h stddef.h stdlib.h sys/procfs.h link.h endian.h objlist.h)
2b576293
C
65AC_HEADER_STAT
66
8501c742
SG
67AC_C_CONST
68
5d394f70 69AC_CHECK_FUNCS(setpgid sbrk select poll)
72ae15f6 70
54225fd0
MA
71# If we are configured native on Linux, work around problems with sys/procfs.h
72if test "${target}" = "${host}"; then
73 case "${host}" in
74 i[3456]86-*-linux*)
75 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,"2")
76 AC_DEFINE(sys_quotactl)
77 ;;
78 esac
79fi
80
4708ac65 81AC_MSG_CHECKING([for gregset_t type])
07b77f5c 82AC_CACHE_VAL(gdb_cv_have_gregset_t,
4708ac65 83[AC_TRY_LINK([#include <sys/procfs.h>],[gregset_t *gregsetp = 0],
07b77f5c
FF
84gdb_cv_have_gregset_t=yes, gdb_cv_have_gregset_t=no)])
85AC_MSG_RESULT($gdb_cv_have_gregset_t)
86if test $gdb_cv_have_gregset_t = yes; then
4708ac65
FF
87 AC_DEFINE(HAVE_GREGSET_T)
88fi
89
90AC_MSG_CHECKING([for fpregset_t type])
07b77f5c 91AC_CACHE_VAL(gdb_cv_have_fpregset_t,
4708ac65 92[AC_TRY_LINK([#include <sys/procfs.h>],[fpregset_t *fpregsetp = 0],
07b77f5c
FF
93gdb_cv_have_fpregset_t=yes, gdb_cv_have_fpregset_t=no)])
94AC_MSG_RESULT($gdb_cv_have_fpregset_t)
95if test $gdb_cv_have_fpregset_t = yes; then
4708ac65
FF
96 AC_DEFINE(HAVE_FPREGSET_T)
97fi
98
ef6c51d1
SG
99dnl See if host has libm. This is usually needed by simulators.
100AC_CHECK_LIB(m, main)
101
3f550b59
FF
102dnl See if compiler supports "long long" type.
103
104AC_MSG_CHECKING(for long long support in compiler)
105AC_CACHE_VAL(gdb_cv_c_long_long,
80f600a4 106[AC_TRY_COMPILE(, [
d538f9cf
FF
107 extern long long foo;
108 switch (foo & 2) { case 0: return 1; }
109],
3f550b59
FF
110gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
111AC_MSG_RESULT($gdb_cv_c_long_long)
112if test $gdb_cv_c_long_long = yes; then
113 AC_DEFINE(CC_HAS_LONG_LONG)
114fi
115
116dnl See if the compiler and runtime support printing long long
117
118AC_MSG_CHECKING(for long long support in printf)
119AC_CACHE_VAL(gdb_cv_printf_has_long_long,
120[AC_TRY_RUN([
121int main () {
122 char buf[16];
123 long long l = 0x12345;
124 sprintf (buf, "%llx", l);
125 return (strcmp ("12345", buf));
126}],
127gdb_cv_printf_has_long_long=yes,
128gdb_cv_printf_has_long_long=no,
129gdb_cv_printf_has_long_long=no)])
130if test $gdb_cv_printf_has_long_long = yes; then
131 AC_DEFINE(PRINTF_HAS_LONG_LONG)
132fi
133AC_MSG_RESULT($gdb_cv_printf_has_long_long)
134
aa220473
SG
135dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
136dnl because autoconf complains about cross-compilation issues. However, this
137dnl code uses the same variables as the macro for compatibility.
138
07b77f5c 139AC_MSG_CHECKING(for long double support in compiler)
aa220473
SG
140AC_CACHE_VAL(ac_cv_c_long_double,
141[AC_TRY_COMPILE(, [long double foo;],
142ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
143AC_MSG_RESULT($ac_cv_c_long_double)
144if test $ac_cv_c_long_double = yes; then
145 AC_DEFINE(HAVE_LONG_DOUBLE)
146fi
147
07b77f5c
FF
148dnl See if the compiler and runtime support printing long doubles
149
150AC_MSG_CHECKING(for long double support in printf)
151AC_CACHE_VAL(gdb_cv_printf_has_long_double,
152[AC_TRY_RUN([
153int main () {
154 char buf[16];
155 long double f = 3.141592653;
156 sprintf (buf, "%Lg", f);
157 return (strncmp ("3.14159", buf, 7));
158}],
159gdb_cv_printf_has_long_double=yes,
160gdb_cv_printf_has_long_double=no,
161gdb_cv_printf_has_long_double=no)])
162if test $gdb_cv_printf_has_long_double = yes; then
163 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
164fi
165AC_MSG_RESULT($gdb_cv_printf_has_long_double)
166
2b576293 167AC_FUNC_MMAP
5436fc65 168
fef1696f
ILT
169BFD_NEED_DECLARATION(malloc)
170BFD_NEED_DECLARATION(realloc)
171BFD_NEED_DECLARATION(free)
172
4915acad
SG
173dnl See if thread_db library is around for Solaris thread debugging. Note that
174dnl we must explicitly test for version 1 of the library because version 0
175dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
176
89e673a4
SG
177dnl Note that we only want this if we are both native (host == target), and
178dnl not doing a canadian cross build (build == host).
179
180if test ${build} = ${host} -a ${host} = ${target} ; then
5d394f70
SG
181 case ${host_os} in
182 hpux*)
183 AC_MSG_CHECKING(for HPUX/OSF thread support)
184 if test -f /usr/include/dce/cma_config.h ; then
c4c9112a
SG
185 if test "$GCC" = "yes" ; then
186 AC_MSG_RESULT(yes)
187 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
188 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
189 else
190 AC_MSG_RESULT(no (suppressed because you are not using GCC))
191 fi
6c310da8
SG
192 else
193 AC_MSG_RESULT(no)
194 fi
195 ;;
196 solaris*)
197 AC_MSG_CHECKING(for Solaris thread debugging library)
198 if test -f /usr/lib/libthread_db.so.1 ; then
199 AC_MSG_RESULT(yes)
200 AC_DEFINE(HAVE_THREAD_DB_LIB)
201 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
95b47547 202 AC_CHECK_LIB(dl, dlopen)
ef6c51d1
SG
203 if test "$GCC" = "yes" ; then
204 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Xlinker -export-dynamic"
205 fi
5d394f70
SG
206 else
207 AC_MSG_RESULT(no)
208 fi
209 ;;
210 esac
4915acad 211 AC_SUBST(CONFIG_LDFLAGS)
89e673a4 212fi
47ef0da5 213
5436fc65
C
214dnl Handle optional features that can be enabled.
215ENABLE_CFLAGS=
5436fc65
C
216
217AC_ARG_ENABLE(netrom,
218[ --enable-netrom ],
219[case "${enableval}" in
220yes) enable_netrom=yes ;;
221no) enable_netrom=no ;;
222*) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
223esac])
224
225if test "${enable_netrom}" = "yes"; then
6c310da8 226 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
5436fc65
C
227fi
228
229# start-sanitize-gdbtk
2476848a
MH
230ENABLE_IDE=
231AC_ARG_ENABLE(ide, [ --enable-ide Enable IDE support])
232if test "$enable_ide" = yes; then
233 enable_ide=yes
234 ENABLE_IDE=1
235else
236 enable_ide=no
237fi
238AC_SUBST(ENABLE_IDE)
239
5436fc65
C
240ENABLE_GDBTK=
241
242AC_ARG_ENABLE(gdbtk,
243[ --enable-gdbtk ],
244[case "${enableval}" in
0fe1522a
SG
245 yes)
246 case "$host" in
247 *go32*)
248 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
249 enable_gdbtk=no ;;
8a19b35a 250 *windows*)
b613bfbf
GN
251 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
252 enable_gdbtk=no ;;
0fe1522a
SG
253 *)
254 enable_gdbtk=yes ;;
255 esac ;;
256 no)
257 enable_gdbtk=no ;;
258 *)
259 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
260esac],
261[
b613bfbf 262# Default is on for everything but go32 and cygwin32
0fe1522a 263case "$host" in
8a19b35a 264 *go32* | *windows*)
b613bfbf 265 ;;
0fe1522a
SG
266 *)
267 enable_gdbtk=yes ;;
268 esac
269])
5436fc65 270
9b119644
ILT
271# In the cygwin32 environment, we need some additional flags.
272AC_CACHE_CHECK([for cygwin32], gdb_cv_os_cygwin32,
273[AC_EGREP_CPP(lose, [
274#ifdef __CYGWIN32__
275lose
276#endif],[gdb_cv_os_cygwin32=yes],[gdb_cv_os_cygwin32=no])])
277
278WIN32LIBS=
279WIN32LDAPP=
280AC_SUBST(WIN32LIBS)
281AC_SUBST(WIN32LDAPP)
282
283if test x$gdb_cv_os_cygwin32 = xyes; then
284 if test x$enable_ide = xyes; then
285 WIN32LIBS="-ladvapi32"
286 fi
287fi
288
289configdir="unix"
8a19b35a 290
5436fc65 291if test "${enable_gdbtk}" = "yes"; then
0fe1522a 292
047465fd 293 CY_AC_PATH_TCLCONFIG
0cf433d9
ILT
294 if test -z "${no_tcl}"; then
295 CY_AC_LOAD_TCLCONFIG
296 CY_AC_PATH_TKCONFIG
047465fd 297
0cf433d9
ILT
298 # If $no_tk is nonempty, then we can't do Tk, and there is no
299 # point to doing Tcl.
300 if test -z "${no_tk}"; then
301 CY_AC_LOAD_TKCONFIG
302 CY_AC_PATH_TCLH
303 CY_AC_PATH_TKH
2476848a
MH
304 CY_AC_PATH_ITCLH
305 CY_AC_PATH_TIX
047465fd 306
6bc5b2fa 307 # now look for tix library stuff
1154b47a 308 TIXVERSION=4.1.8.0
6bc5b2fa
MH
309 . ${ac_cv_c_tclconfig}/tclConfig.sh
310 case "${host}" in
311 *-*-cygwin32*)
f1f6dd9c 312 tixdir=../tix/win/tcl8.0
6bc5b2fa
MH
313 ;;
314 *)
1154b47a 315 tixdir=../tix/unix/tk8.0
6bc5b2fa
MH
316 ;;
317 esac
318 if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
319 TIXLIB="-L${tixdir} -ltix${TIXVERSION}"
320 else
321 TIXLIB="-L${tixdir} -ltix`echo ${TIXVERSION} | tr -d .`"
322 fi
323
0cf433d9 324 ENABLE_GDBTK=1
1a57cd09 325
6c310da8 326 # Include some libraries that Tcl and Tk want.
2476848a
MH
327 if test "${enable_ide}" = "yes"; then
328 TCL_LIBS='$(IDE) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
329 else
330 TCL_LIBS='$(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
331 fi
46964086
TT
332 # Yes, the ordering seems wrong here. But it isn't.
333 # TK_LIBS is the list of libraries that need to be linked
334 # after Tcl/Tk.
335 LIBS="${LIBS} ${TCL_LIBS} ${TK_LIBS}"
6c310da8 336 CONFIG_OBS="${CONFIG_OBS} gdbtk.o"
9b119644
ILT
337
338 if test x$gdb_cv_os_cygwin32 = xyes; then
339 WIN32LIBS="${WIN32LIBS} -luser32"
340 WIN32LDAPP="-Wl,--subsystem,windows"
341 fi
0cf433d9 342 fi
a2b63bbd 343 fi
5436fc65 344fi
a2b63bbd 345
5436fc65 346AC_SUBST(ENABLE_GDBTK)
9c0bc1da 347AC_SUBST(X_CFLAGS)
a2b63bbd
JM
348AC_SUBST(X_LDFLAGS)
349AC_SUBST(X_LIBS)
6bc5b2fa 350AC_SUBST(TIXLIB)
5436fc65
C
351# end-sanitize-gdbtk
352
353AC_SUBST(ENABLE_CFLAGS)
6c310da8
SG
354
355AC_SUBST(CONFIG_OBS)
6ec7e4d3 356
1d5eb137
FF
357# Begin stuff to support --enable-shared
358AC_ARG_ENABLE(shared,
359[ --enable-shared use shared libraries],
360[case "${enableval}" in
361 yes) shared=true ;;
362 no) shared=false ;;
363 *) shared=true ;;
364esac])dnl
365
366HLDFLAGS=
367HLDENV=
368# If we have shared libraries, try to set rpath reasonably.
369if test "${shared}" = "true"; then
370 case "${host}" in
371 *-*-hpux*)
372 HLDFLAGS='-Wl,+s,+b,$(libdir)'
373 ;;
374 *-*-irix5* | *-*-irix6*)
375 HLDFLAGS='-Wl,-rpath,$(libdir)'
376 ;;
377 *-*-linux*aout*)
378 ;;
8ddf07a2 379 *-*-linux* | *-pc-linux-gnu)
1d5eb137
FF
380 HLDFLAGS='-Wl,-rpath,$(libdir)'
381 ;;
382 *-*-solaris*)
383 HLDFLAGS='-R $(libdir)'
384 ;;
385 *-*-sysv4*)
386 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;'
387 ;;
388 esac
389fi
390
391# On SunOS, if the linker supports the -rpath option, use it to
392# prevent ../bfd and ../opcodes from being included in the run time
393# search path.
394case "${host}" in
395 *-*-sunos*)
396 echo 'main () { }' > conftest.c
397 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
398 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
399 :
400 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
401 :
402 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
403 :
074d813d
PS
404 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
405 :
1d5eb137
FF
406 elif test "${shared}" = "true"; then
407 HLDFLAGS='-Wl,-rpath=$(libdir)'
408 else
409 HLDFLAGS='-Wl,-rpath='
410 fi
411 rm -f conftest.t conftest.c conftest
412 ;;
413esac
414AC_SUBST(HLDFLAGS)
415AC_SUBST(HLDENV)
416# End stuff to support --enable-shared
417
9c0bc1da
DE
418# target_subdir is used by the testsuite to find the target libraries.
419target_subdir=
420if test "${host}" != "${target}"; then
421 target_subdir="${target_alias}/"
422fi
423AC_SUBST(target_subdir)
bc028766 424
5f107900 425frags=
5436fc65
C
426host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
427if test ! -f ${host_makefile_frag}; then
428AC_MSG_ERROR("*** Gdb does not support host ${host}")
912e0732 429fi
5f107900 430frags="$frags $host_makefile_frag"
912e0732 431
5436fc65
C
432target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
433if test ! -f ${target_makefile_frag}; then
434AC_MSG_ERROR("*** Gdb does not support target ${target}")
912e0732 435fi
5f107900 436frags="$frags $target_makefile_frag"
912e0732 437
5436fc65
C
438AC_SUBST_FILE(host_makefile_frag)
439AC_SUBST_FILE(target_makefile_frag)
5f107900 440AC_SUBST(frags)
5436fc65 441
094fd4ae
C
442changequote(,)dnl
443hostfile=`sed -n '
444s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
445' ${host_makefile_frag}`
5436fc65 446
094fd4ae
C
447targetfile=`sed -n '
448s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
449' ${target_makefile_frag}`
79f68f0f
DZ
450
451# these really aren't orthogonal true/false values of the same condition,
452# but shells are slow enough that I like to reuse the test conditions
453# whenever possible
5436fc65 454if test "${target}" = "${host}"; then
094fd4ae
C
455nativefile=`sed -n '
456s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
457' ${host_makefile_frag}`
33ef0f93 458# else
5436fc65 459# GDBserver is only useful in a "native" enviroment
33ef0f93 460# configdirs=`echo $configdirs | sed 's/gdbserver//'`
d40309c7 461fi
094fd4ae 462changequote([,])
d40309c7 463
d40309c7 464# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
6573c898 465# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
d40309c7
JG
466# corresponding links. But we have to remove the xm.h files and tm.h
467# files anyway, e.g. when switching from "configure host" to
468# "configure none".
469
bdf3621b
JG
470files=
471links=
dc0c3f64 472rm -f xm.h
5436fc65
C
473if test "${hostfile}" != ""; then
474files="${files} config/${gdb_host_cpu}/${hostfile}"
475links="${links} xm.h"
bdf3621b 476fi
dc0c3f64 477rm -f tm.h
5436fc65
C
478if test "${targetfile}" != ""; then
479files="${files} config/${gdb_target_cpu}/${targetfile}"
480links="${links} tm.h"
bdf3621b 481fi
1a0edbc7 482rm -f nm.h
5436fc65
C
483if test "${nativefile}" != ""; then
484files="${files} config/${gdb_host_cpu}/${nativefile}"
485links="${links} nm.h"
c9c23412 486else
5436fc65
C
487# A cross-only configuration.
488files="${files} config/nm-empty.h"
489links="${links} nm.h"
d40309c7 490fi
d3d75ec9 491# start-sanitize-gdbtk
99174711 492AC_PROG_LN_S
5436fc65 493# Make it possible to use the GUI without doing a full install
99174711
JM
494if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl ; then
495 if test "$LN_S" = "ln -s" -a ! -f gdbtcl ; then
496 echo linking $srcdir/gdbtcl to gdbtcl
497 $LN_S $srcdir/gdbtcl gdbtcl
498 else
499 echo Warning: Unable to link $srcdir/gdbtcl to gdbtcl. You will need to do a
500 echo " " make install before you are able to run the GUI.
501 fi
754e5da2 502fi
d3d75ec9 503# end-sanitize-gdbtk
754e5da2 504
5436fc65
C
505AC_LINK_FILES($files, $links)
506
507AC_CONFIG_SUBDIRS($configdirs)
0cb7d01d 508AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
5436fc65
C
509[
510dnl Autoconf doesn't provide a mechanism for modifying definitions
511dnl provided by makefile fragments.
512dnl
513if test "${nativefile}" = ""; then
7bd1f0c5 514sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
5436fc65
C
515 < Makefile > Makefile.tem
516mv -f Makefile.tem Makefile
33bc979d
SS
517fi
518
5436fc65 519changequote(,)dnl
94d4b713
JK
520sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
521/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
522/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
523mv -f Makefile.tmp Makefile
5436fc65
C
524changequote([,])dnl
525
31520669 526case x$CONFIG_HEADERS in
18ea4416 527xconfig.h:config.in)
31520669
FF
528echo > stamp-h ;;
529esac
0a5a1821
C
530],
531[
532gdb_host_cpu=$gdb_host_cpu
533gdb_target_cpu=$gdb_target_cpu
534nativefile=$nativefile
5436fc65 535])
5e711e7f
PS
536
537exit 0
b7f3b6d5 538
This page took 0.301563 seconds and 4 git commands to generate.