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