* doc/as.texinfo (Symbol Names): Don't use obsolete @ctrl macro.
[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
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 ;;
8a19b35a 258 *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
8a19b35a 272 *go32* | *windows*)
b613bfbf 273 ;;
0fe1522a
SG
274 *)
275 enable_gdbtk=yes ;;
276 esac
277])
5436fc65 278
8a19b35a
MH
279case "${target}" in
280*-cygwin32)
281 configdir="win"
282 ;;
283*)
284 configdir="unix"
285 ;;
286esac
287
5436fc65 288if test "${enable_gdbtk}" = "yes"; then
0fe1522a 289
047465fd 290 CY_AC_PATH_TCLCONFIG
0cf433d9
ILT
291 if test -z "${no_tcl}"; then
292 CY_AC_LOAD_TCLCONFIG
293 CY_AC_PATH_TKCONFIG
047465fd 294
0cf433d9
ILT
295 # If $no_tk is nonempty, then we can't do Tk, and there is no
296 # point to doing Tcl.
297 if test -z "${no_tk}"; then
298 CY_AC_LOAD_TKCONFIG
299 CY_AC_PATH_TCLH
300 CY_AC_PATH_TKH
047465fd 301
0cf433d9 302 ENABLE_GDBTK=1
1a57cd09 303
6c310da8 304 # Include some libraries that Tcl and Tk want.
f02156cf 305 TCL_LIBS='$(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
46964086
TT
306 # Yes, the ordering seems wrong here. But it isn't.
307 # TK_LIBS is the list of libraries that need to be linked
308 # after Tcl/Tk.
309 LIBS="${LIBS} ${TCL_LIBS} ${TK_LIBS}"
6c310da8 310 CONFIG_OBS="${CONFIG_OBS} gdbtk.o"
0cf433d9 311 fi
a2b63bbd 312 fi
5436fc65 313fi
a2b63bbd 314
5436fc65 315AC_SUBST(ENABLE_GDBTK)
9c0bc1da 316AC_SUBST(X_CFLAGS)
a2b63bbd
JM
317AC_SUBST(X_LDFLAGS)
318AC_SUBST(X_LIBS)
5436fc65
C
319# end-sanitize-gdbtk
320
321AC_SUBST(ENABLE_CFLAGS)
6c310da8
SG
322
323AC_SUBST(CONFIG_OBS)
6ec7e4d3 324
1d5eb137
FF
325# Begin stuff to support --enable-shared
326AC_ARG_ENABLE(shared,
327[ --enable-shared use shared libraries],
328[case "${enableval}" in
329 yes) shared=true ;;
330 no) shared=false ;;
331 *) shared=true ;;
332esac])dnl
333
334HLDFLAGS=
335HLDENV=
336# If we have shared libraries, try to set rpath reasonably.
337if test "${shared}" = "true"; then
338 case "${host}" in
339 *-*-hpux*)
340 HLDFLAGS='-Wl,+s,+b,$(libdir)'
341 ;;
342 *-*-irix5* | *-*-irix6*)
343 HLDFLAGS='-Wl,-rpath,$(libdir)'
344 ;;
345 *-*-linux*aout*)
346 ;;
8ddf07a2 347 *-*-linux* | *-pc-linux-gnu)
1d5eb137
FF
348 HLDFLAGS='-Wl,-rpath,$(libdir)'
349 ;;
350 *-*-solaris*)
351 HLDFLAGS='-R $(libdir)'
352 ;;
353 *-*-sysv4*)
354 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;'
355 ;;
356 esac
357fi
358
359# On SunOS, if the linker supports the -rpath option, use it to
360# prevent ../bfd and ../opcodes from being included in the run time
361# search path.
362case "${host}" in
363 *-*-sunos*)
364 echo 'main () { }' > conftest.c
365 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
366 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
367 :
368 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
369 :
370 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
371 :
074d813d
PS
372 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
373 :
1d5eb137
FF
374 elif test "${shared}" = "true"; then
375 HLDFLAGS='-Wl,-rpath=$(libdir)'
376 else
377 HLDFLAGS='-Wl,-rpath='
378 fi
379 rm -f conftest.t conftest.c conftest
380 ;;
381esac
382AC_SUBST(HLDFLAGS)
383AC_SUBST(HLDENV)
384# End stuff to support --enable-shared
385
9c0bc1da
DE
386# target_subdir is used by the testsuite to find the target libraries.
387target_subdir=
388if test "${host}" != "${target}"; then
389 target_subdir="${target_alias}/"
390fi
391AC_SUBST(target_subdir)
bc028766 392
5f107900 393frags=
5436fc65
C
394host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
395if test ! -f ${host_makefile_frag}; then
396AC_MSG_ERROR("*** Gdb does not support host ${host}")
912e0732 397fi
5f107900 398frags="$frags $host_makefile_frag"
912e0732 399
5436fc65
C
400target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
401if test ! -f ${target_makefile_frag}; then
402AC_MSG_ERROR("*** Gdb does not support target ${target}")
912e0732 403fi
5f107900 404frags="$frags $target_makefile_frag"
912e0732 405
5436fc65
C
406AC_SUBST_FILE(host_makefile_frag)
407AC_SUBST_FILE(target_makefile_frag)
5f107900 408AC_SUBST(frags)
5436fc65 409
094fd4ae
C
410changequote(,)dnl
411hostfile=`sed -n '
412s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
413' ${host_makefile_frag}`
5436fc65 414
094fd4ae
C
415targetfile=`sed -n '
416s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
417' ${target_makefile_frag}`
79f68f0f
DZ
418
419# these really aren't orthogonal true/false values of the same condition,
420# but shells are slow enough that I like to reuse the test conditions
421# whenever possible
5436fc65 422if test "${target}" = "${host}"; then
094fd4ae
C
423nativefile=`sed -n '
424s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
425' ${host_makefile_frag}`
33ef0f93 426# else
5436fc65 427# GDBserver is only useful in a "native" enviroment
33ef0f93 428# configdirs=`echo $configdirs | sed 's/gdbserver//'`
d40309c7 429fi
094fd4ae 430changequote([,])
d40309c7 431
d40309c7 432# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
6573c898 433# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
d40309c7
JG
434# corresponding links. But we have to remove the xm.h files and tm.h
435# files anyway, e.g. when switching from "configure host" to
436# "configure none".
437
bdf3621b
JG
438files=
439links=
dc0c3f64 440rm -f xm.h
5436fc65
C
441if test "${hostfile}" != ""; then
442files="${files} config/${gdb_host_cpu}/${hostfile}"
443links="${links} xm.h"
bdf3621b 444fi
dc0c3f64 445rm -f tm.h
5436fc65
C
446if test "${targetfile}" != ""; then
447files="${files} config/${gdb_target_cpu}/${targetfile}"
448links="${links} tm.h"
bdf3621b 449fi
1a0edbc7 450rm -f nm.h
5436fc65
C
451if test "${nativefile}" != ""; then
452files="${files} config/${gdb_host_cpu}/${nativefile}"
453links="${links} nm.h"
c9c23412 454else
5436fc65
C
455# A cross-only configuration.
456files="${files} config/nm-empty.h"
457links="${links} nm.h"
d40309c7 458fi
d3d75ec9 459# start-sanitize-gdbtk
912e0732 460
5436fc65
C
461# Make it possible to use the GUI without doing a full install
462if test "${enable_gdbtk}" = "yes" -a ! -f gdbtk.tcl ; then
463files="${files} gdbtk.tcl"
464links="${links} gdbtk.tcl"
754e5da2 465fi
d3d75ec9 466# end-sanitize-gdbtk
754e5da2 467
5436fc65
C
468AC_LINK_FILES($files, $links)
469
470AC_CONFIG_SUBDIRS($configdirs)
471AC_OUTPUT(Makefile,
472[
473dnl Autoconf doesn't provide a mechanism for modifying definitions
474dnl provided by makefile fragments.
475dnl
476if test "${nativefile}" = ""; then
7bd1f0c5 477sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
5436fc65
C
478 < Makefile > Makefile.tem
479mv -f Makefile.tem Makefile
33bc979d
SS
480fi
481
5436fc65 482changequote(,)dnl
94d4b713
JK
483sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
484/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
485/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
486mv -f Makefile.tmp Makefile
5436fc65
C
487changequote([,])dnl
488
489case ${srcdir} in
490.)
491;;
492*)
493grep "source ${srcdir}/.gdbinit" .gdbinit >/dev/null 2>/dev/null || \
494echo "source ${srcdir}/.gdbinit" >> .gdbinit
495esac
31520669
FF
496
497case x$CONFIG_HEADERS in
18ea4416 498xconfig.h:config.in)
31520669
FF
499echo > stamp-h ;;
500esac
0a5a1821
C
501],
502[
503gdb_host_cpu=$gdb_host_cpu
504gdb_target_cpu=$gdb_target_cpu
505nativefile=$nativefile
5436fc65 506])
5e711e7f
PS
507
508exit 0
b7f3b6d5 509
This page took 0.350788 seconds and 4 git commands to generate.