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