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