]> Git Repo - binutils.git/blame - gdb/configure.in
* sparc-tdep.c (isbranch): Always handle v9 branch instructions,
[binutils.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
0579b53d
GN
31AC_CANONICAL_SYSTEM
32
bfde4a67
SG
33dnl List of object files added by configure.
34
35CONFIG_OBS=
36
37configdirs="doc testsuite"
38
39dnl
40changequote(,)dnl
41
42. ${srcdir}/configure.host
43
44. ${srcdir}/configure.tgt
45
46dnl
47changequote([,])dnl
48
5436fc65 49AC_PROG_INSTALL
d8efbc66
FF
50AC_CHECK_TOOL(AR, ar)
51AC_CHECK_TOOL(RANLIB, ranlib, :)
1e02f078 52AC_PROG_YACC
d8efbc66 53AC_PROG_AWK
5436fc65
C
54
55AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
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
3c0bf315
MM
239AC_ARG_ENABLE(sim-powerpc,
240[ --enable-sim-powerpc ],
241[case "${enableval}" in
242yes) powerpc_sim=yes ;;
243no) powerpc_sim=no ;;
244*) AC_MSG_ERROR(bad value ${enableval} given for sim-powerpc option) ;;
245esac],[if test x"$GCC" != x""; then powerpc_sim=yes; else powerpc_sim=no; fi])
246
5436fc65
C
247# start-sanitize-gdbtk
248ENABLE_GDBTK=
249
250AC_ARG_ENABLE(gdbtk,
251[ --enable-gdbtk ],
252[case "${enableval}" in
0fe1522a
SG
253 yes)
254 case "$host" in
255 *go32*)
256 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
257 enable_gdbtk=no ;;
d9951af4 258 *cygwin32* | *windows*)
b613bfbf
GN
259 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
260 enable_gdbtk=no ;;
0fe1522a
SG
261 *)
262 enable_gdbtk=yes ;;
263 esac ;;
264 no)
265 enable_gdbtk=no ;;
266 *)
267 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
268esac],
269[
b613bfbf 270# Default is on for everything but go32 and cygwin32
0fe1522a 271case "$host" in
d9951af4 272 *go32* | *cygwin32* | *windows*)
b613bfbf 273 ;;
0fe1522a
SG
274 *)
275 enable_gdbtk=yes ;;
276 esac
277])
5436fc65
C
278
279if test "${enable_gdbtk}" = "yes"; then
0fe1522a 280
047465fd 281 CY_AC_PATH_TCLCONFIG
0cf433d9
ILT
282 if test -z "${no_tcl}"; then
283 CY_AC_LOAD_TCLCONFIG
284 CY_AC_PATH_TKCONFIG
047465fd 285
0cf433d9
ILT
286 # If $no_tk is nonempty, then we can't do Tk, and there is no
287 # point to doing Tcl.
288 if test -z "${no_tk}"; then
289 CY_AC_LOAD_TKCONFIG
290 CY_AC_PATH_TCLH
291 CY_AC_PATH_TKH
047465fd 292
0cf433d9 293 ENABLE_GDBTK=1
1a57cd09 294
6c310da8 295 # Include some libraries that Tcl and Tk want.
0cf433d9 296 TCL_LIBS='$(TCL) $(TK) $(X11_LDFLAGS) $(X11_LIBS)'
6c310da8
SG
297 LIBS="${LIBS} ${TCL_LIBS} ${TK_LIBS}"
298 CONFIG_OBS="${CONFIG_OBS} gdbtk.o"
0cf433d9 299 fi
a2b63bbd 300 fi
5436fc65 301fi
a2b63bbd 302
5436fc65 303AC_SUBST(ENABLE_GDBTK)
9c0bc1da 304AC_SUBST(X_CFLAGS)
a2b63bbd
JM
305AC_SUBST(X_LDFLAGS)
306AC_SUBST(X_LIBS)
5436fc65
C
307# end-sanitize-gdbtk
308
309AC_SUBST(ENABLE_CFLAGS)
6c310da8
SG
310
311AC_SUBST(CONFIG_OBS)
6ec7e4d3 312
1d5eb137
FF
313# Begin stuff to support --enable-shared
314AC_ARG_ENABLE(shared,
315[ --enable-shared use shared libraries],
316[case "${enableval}" in
317 yes) shared=true ;;
318 no) shared=false ;;
319 *) shared=true ;;
320esac])dnl
321
322HLDFLAGS=
323HLDENV=
324# If we have shared libraries, try to set rpath reasonably.
325if test "${shared}" = "true"; then
326 case "${host}" in
327 *-*-hpux*)
328 HLDFLAGS='-Wl,+s,+b,$(libdir)'
329 ;;
330 *-*-irix5* | *-*-irix6*)
331 HLDFLAGS='-Wl,-rpath,$(libdir)'
332 ;;
333 *-*-linux*aout*)
334 ;;
8ddf07a2 335 *-*-linux* | *-pc-linux-gnu)
1d5eb137
FF
336 HLDFLAGS='-Wl,-rpath,$(libdir)'
337 ;;
338 *-*-solaris*)
339 HLDFLAGS='-R $(libdir)'
340 ;;
341 *-*-sysv4*)
342 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;'
343 ;;
344 esac
345fi
346
347# On SunOS, if the linker supports the -rpath option, use it to
348# prevent ../bfd and ../opcodes from being included in the run time
349# search path.
350case "${host}" in
351 *-*-sunos*)
352 echo 'main () { }' > conftest.c
353 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
354 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
355 :
356 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
357 :
358 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
359 :
074d813d
PS
360 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
361 :
1d5eb137
FF
362 elif test "${shared}" = "true"; then
363 HLDFLAGS='-Wl,-rpath=$(libdir)'
364 else
365 HLDFLAGS='-Wl,-rpath='
366 fi
367 rm -f conftest.t conftest.c conftest
368 ;;
369esac
370AC_SUBST(HLDFLAGS)
371AC_SUBST(HLDENV)
372# End stuff to support --enable-shared
373
9c0bc1da
DE
374# target_subdir is used by the testsuite to find the target libraries.
375target_subdir=
376if test "${host}" != "${target}"; then
377 target_subdir="${target_alias}/"
378fi
379AC_SUBST(target_subdir)
bc028766 380
5f107900 381frags=
5436fc65
C
382host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
383if test ! -f ${host_makefile_frag}; then
384AC_MSG_ERROR("*** Gdb does not support host ${host}")
912e0732 385fi
5f107900 386frags="$frags $host_makefile_frag"
912e0732 387
5436fc65
C
388target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
389if test ! -f ${target_makefile_frag}; then
390AC_MSG_ERROR("*** Gdb does not support target ${target}")
912e0732 391fi
5f107900 392frags="$frags $target_makefile_frag"
912e0732 393
5436fc65
C
394AC_SUBST_FILE(host_makefile_frag)
395AC_SUBST_FILE(target_makefile_frag)
5f107900 396AC_SUBST(frags)
5436fc65 397
094fd4ae
C
398changequote(,)dnl
399hostfile=`sed -n '
400s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
401' ${host_makefile_frag}`
5436fc65 402
094fd4ae
C
403targetfile=`sed -n '
404s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
405' ${target_makefile_frag}`
79f68f0f
DZ
406
407# these really aren't orthogonal true/false values of the same condition,
408# but shells are slow enough that I like to reuse the test conditions
409# whenever possible
5436fc65 410if test "${target}" = "${host}"; then
094fd4ae
C
411nativefile=`sed -n '
412s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
413' ${host_makefile_frag}`
79f68f0f 414else
5436fc65
C
415# GDBserver is only useful in a "native" enviroment
416configdirs=`echo $configdirs | sed 's/gdbserver//'`
d40309c7 417fi
094fd4ae 418changequote([,])
d40309c7 419
d40309c7 420# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
6573c898 421# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
d40309c7
JG
422# corresponding links. But we have to remove the xm.h files and tm.h
423# files anyway, e.g. when switching from "configure host" to
424# "configure none".
425
bdf3621b
JG
426files=
427links=
dc0c3f64 428rm -f xm.h
5436fc65
C
429if test "${hostfile}" != ""; then
430files="${files} config/${gdb_host_cpu}/${hostfile}"
431links="${links} xm.h"
bdf3621b 432fi
dc0c3f64 433rm -f tm.h
5436fc65
C
434if test "${targetfile}" != ""; then
435files="${files} config/${gdb_target_cpu}/${targetfile}"
436links="${links} tm.h"
bdf3621b 437fi
1a0edbc7 438rm -f nm.h
5436fc65
C
439if test "${nativefile}" != ""; then
440files="${files} config/${gdb_host_cpu}/${nativefile}"
441links="${links} nm.h"
c9c23412 442else
5436fc65
C
443# A cross-only configuration.
444files="${files} config/nm-empty.h"
445links="${links} nm.h"
d40309c7 446fi
d3d75ec9 447# start-sanitize-gdbtk
912e0732 448
5436fc65
C
449# Make it possible to use the GUI without doing a full install
450if test "${enable_gdbtk}" = "yes" -a ! -f gdbtk.tcl ; then
451files="${files} gdbtk.tcl"
452links="${links} gdbtk.tcl"
754e5da2 453fi
d3d75ec9 454# end-sanitize-gdbtk
754e5da2 455
5436fc65
C
456AC_LINK_FILES($files, $links)
457
458AC_CONFIG_SUBDIRS($configdirs)
459AC_OUTPUT(Makefile,
460[
461dnl Autoconf doesn't provide a mechanism for modifying definitions
462dnl provided by makefile fragments.
463dnl
464if test "${nativefile}" = ""; then
7bd1f0c5 465sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
5436fc65
C
466 < Makefile > Makefile.tem
467mv -f Makefile.tem Makefile
33bc979d
SS
468fi
469
5436fc65 470changequote(,)dnl
94d4b713
JK
471sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
472/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
473/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
474mv -f Makefile.tmp Makefile
5436fc65
C
475changequote([,])dnl
476
477case ${srcdir} in
478.)
479;;
480*)
481grep "source ${srcdir}/.gdbinit" .gdbinit >/dev/null 2>/dev/null || \
482echo "source ${srcdir}/.gdbinit" >> .gdbinit
483esac
31520669
FF
484
485case x$CONFIG_HEADERS in
18ea4416 486xconfig.h:config.in)
31520669
FF
487echo > stamp-h ;;
488esac
0a5a1821
C
489],
490[
491gdb_host_cpu=$gdb_host_cpu
492gdb_target_cpu=$gdb_target_cpu
493nativefile=$nativefile
5436fc65 494])
5e711e7f
PS
495
496exit 0
b7f3b6d5 497
This page took 0.590035 seconds and 4 git commands to generate.