]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/configure.in
import gdb-1999-12-06 snapshot
[thirdparty/binutils-gdb.git] / gdb / configure.in
CommitLineData
c906108c
SS
1dnl Autoconf configure script for GDB, the GNU debugger.
2dnl Copyright 1995, 1996, 1997, 1998, 1999 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
18dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20dnl Process this file with autoconf to produce a configure script.
21
22AC_PREREQ(2.13)dnl
23AC_INIT(main.c)
24AC_CONFIG_HEADER(config.h:config.in)
25
26AC_PROG_CC
27AC_AIX
28AC_ISC_POSIX
29AM_PROG_CC_STDC
30
31AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
32AC_CANONICAL_SYSTEM
33
34dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
35dnl link with the correct libraries.
36ALL_LINGUAS=
37CY_GNU_GETTEXT
38
39dnl List of object files added by configure.
40
41CONFIG_OBS=
42CONFIG_DEPS=
43CONFIG_SRCS=
44
45configdirs="doc testsuite"
46
96baa820
JM
47AC_ARG_ENABLE(multi-ice,
48[ --enable-multi-ice Build the multi-ice-gdb-server],
49[case "${enableval}" in
50 yes ) enable_multi_ice="yes" ;;
51 no) enable_multi_ice="no" ;;
52 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
53 esac
54])
55
56if test "${enable_multi_ice}" = "yes"; then
57 configdirs="${configdirs} multi-ice"
58fi
59
c906108c
SS
60dnl
61changequote(,)dnl
62
63. ${srcdir}/configure.host
64
65. ${srcdir}/configure.tgt
66
67dnl
68changequote([,])dnl
69
7a292a7a 70AC_PROG_AWK
c906108c
SS
71AC_PROG_INSTALL
72AC_CHECK_TOOL(AR, ar)
73AC_CHECK_TOOL(RANLIB, ranlib, :)
74AC_PROG_YACC
75
76AC_ARG_PROGRAM
77
78AC_TYPE_SIGNAL
79
80AC_HEADER_STDC
81
82AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h \
83 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
84 string.h sys/procfs.h sys/ptrace.h sys/reg.h \
85 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
104c1213
JM
86 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
87 time.h)
c906108c
SS
88AC_HEADER_STAT
89
90AC_C_CONST
91
2acceee2 92AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
c906108c
SS
93AC_FUNC_ALLOCA
94
5c44784c
JM
95dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
96dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
97dnl Linux kernel patch for SSE support. That patch may or may not
98dnl actually make it into the official distribution. If you find that
99dnl years have gone by since this configure test was added, and Linux
100dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
101dnl make it, and you can delete this code.
102AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
103AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
104[AC_TRY_COMPILE([#include <sys/ptrace.h>],
105 [PTRACE_GETXFPREGS;],
106 [gdb_cv_have_ptrace_getxfpregs=yes],
107 [gdb_cv_have_ptrace_getxfpregs=no])])
108AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
109if test $gdb_cv_have_ptrace_getxfpregs = yes; then
110 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
111fi
112
7be570e7
JM
113AC_CHECK_LIB(socket, socketpair)
114AC_CHECK_FUNCS(socketpair)
115
116
c906108c
SS
117BFD_NEED_DECLARATION(malloc)
118BFD_NEED_DECLARATION(realloc)
119BFD_NEED_DECLARATION(free)
120BFD_NEED_DECLARATION(strerror)
121BFD_NEED_DECLARATION(strdup)
b83266a0 122BFD_NEED_DECLARATION(strstr)
c906108c
SS
123
124
125# The following save_state_t checkery is only necessary for HPUX
126# versions earlier than 10.20. When those fade from memory, this
127# could be expunged. --jsm 1999-03-22
128
129AC_MSG_CHECKING(for HPUX save_state structure)
130AC_EGREP_HEADER(save_state_t, machine/save_state.h,
131 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
132AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
133 gdb_cv_hpux_sswide=no)
134if test $gdb_cv_hpux_savestate = yes
135then
136 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
137fi
138if test $gdb_cv_hpux_sswide = yes
139then
140 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
141fi
142AC_MSG_RESULT($gdb_cv_hpux_sswide)
143
144
145# If we are configured native on GNU/Linux, work around problems with
146# sys/procfs.h
147# Also detect which type of /proc is in use, such as for Unixware.
148
149if test "${target}" = "${host}"; then
7a292a7a 150 gdb_cv_hostos_is_solaris=no
c906108c
SS
151 case "${host}" in
152 i[[3456]]86-*-linux*)
153 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
154 AC_DEFINE(sys_quotactl)
155 ;;
7a292a7a
SS
156 *-*-solaris*)
157 gdb_cv_hostos_is_solaris=yes ;;
c906108c
SS
158 esac
159 AC_MSG_CHECKING(for directory proc entries)
160# The [gdb_host != sun4sol2] hack is because Solaris does provide the
161# multiple procfs files as of Solaris 2.6, but GDB can't use it right now.
7a292a7a
SS
162 if test "$ac_cv_header_sys_procfs_h" = yes -a \
163 "$gdb_cv_hostos_is_solaris" = no \
c906108c
SS
164 -a -d /proc/$$ \
165 -a -f /proc/$$/ctl \
166 -a -f /proc/$$/as \
167 -a -f /proc/$$/map \
168 -a -f /proc/$$/status; then
169 AC_MSG_RESULT(yes)
170 AC_DEFINE(HAVE_MULTIPLE_PROC_FDS)
171 else
172 AC_MSG_RESULT(no)
173 fi
174fi
175
176if test "$ac_cv_header_sys_procfs_h" = yes; then
177 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
178 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
179 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
180 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
181
182 dnl Check for PIOCSET ioctl entry
183
184 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
185 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
186 [AC_TRY_COMPILE([#include <unistd.h>
187#include <sys/types.h>
188#include <sys/procfs.h>
189], [
190 int dummy;;
191 dummy = ioctl(0, PIOCSET, &dummy);
192 ],
193 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
194 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
195 if test $gdb_cv_have_procfs_piocset = yes; then
196 AC_DEFINE(HAVE_PROCFS_PIOCSET)
197 fi
198fi
199
200dnl See if host has libm. This is usually needed by simulators.
201AC_CHECK_LIB(m, main)
202
203dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
204dnl
205dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
206dnl under Solaris 2.6 because it is some funky empty library.
207dnl So only link in libw if we have to.
208AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
209
210dnl See if compiler supports "long long" type.
211
212AC_MSG_CHECKING(for long long support in compiler)
213AC_CACHE_VAL(gdb_cv_c_long_long,
214[AC_TRY_COMPILE(, [
215 extern long long foo;
216 switch (foo & 2) { case 0: return 1; }
217],
218gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
219AC_MSG_RESULT($gdb_cv_c_long_long)
220if test $gdb_cv_c_long_long = yes; then
221 AC_DEFINE(CC_HAS_LONG_LONG)
222fi
223
224dnl See if the compiler and runtime support printing long long
225
226AC_MSG_CHECKING(for long long support in printf)
227AC_CACHE_VAL(gdb_cv_printf_has_long_long,
228[AC_TRY_RUN([
229int main () {
230 char buf[32];
231 long long l = 0;
232 l = (l << 16) + 0x0123;
233 l = (l << 16) + 0x4567;
234 l = (l << 16) + 0x89ab;
235 l = (l << 16) + 0xcdef;
236 sprintf (buf, "0x%016llx", l);
237 return (strcmp ("0x0123456789abcdef", buf));
238}],
239gdb_cv_printf_has_long_long=yes,
240gdb_cv_printf_has_long_long=no,
241gdb_cv_printf_has_long_long=no)])
242if test $gdb_cv_printf_has_long_long = yes; then
243 AC_DEFINE(PRINTF_HAS_LONG_LONG)
244fi
245AC_MSG_RESULT($gdb_cv_printf_has_long_long)
246
247dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
248dnl because autoconf complains about cross-compilation issues. However, this
249dnl code uses the same variables as the macro for compatibility.
250
251AC_MSG_CHECKING(for long double support in compiler)
252AC_CACHE_VAL(ac_cv_c_long_double,
253[AC_TRY_COMPILE(, [long double foo;],
254ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
255AC_MSG_RESULT($ac_cv_c_long_double)
256if test $ac_cv_c_long_double = yes; then
257 AC_DEFINE(HAVE_LONG_DOUBLE)
258fi
259
260dnl See if the compiler and runtime support printing long doubles
261
262AC_MSG_CHECKING(for long double support in printf)
263AC_CACHE_VAL(gdb_cv_printf_has_long_double,
264[AC_TRY_RUN([
265int main () {
266 char buf[16];
267 long double f = 3.141592653;
268 sprintf (buf, "%Lg", f);
269 return (strncmp ("3.14159", buf, 7));
270}],
271gdb_cv_printf_has_long_double=yes,
272gdb_cv_printf_has_long_double=no,
273gdb_cv_printf_has_long_double=no)])
274if test $gdb_cv_printf_has_long_double = yes; then
275 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
276fi
277AC_MSG_RESULT($gdb_cv_printf_has_long_double)
278
279dnl See if the compiler and runtime support scanning long doubles
280
281AC_MSG_CHECKING(for long double support in scanf)
282AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
283[AC_TRY_RUN([
284int main () {
285 char *buf = "3.141592653";
286 long double f = 0;
287 sscanf (buf, "%Lg", &f);
288 return !(f > 3.14159 && f < 3.14160);
289}],
290gdb_cv_scanf_has_long_double=yes,
291gdb_cv_scanf_has_long_double=no,
292gdb_cv_scanf_has_long_double=no)])
293if test $gdb_cv_scanf_has_long_double = yes; then
294 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
295fi
296AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
297
298AC_FUNC_MMAP
299
300dnl See if thread_db library is around for Solaris thread debugging. Note that
301dnl we must explicitly test for version 1 of the library because version 0
302dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
303
304dnl Note that we only want this if we are both native (host == target), and
305dnl not doing a canadian cross build (build == host).
306
307if test ${build} = ${host} -a ${host} = ${target} ; then
308 case ${host_os} in
309 hpux*)
310 AC_MSG_CHECKING(for HPUX/OSF thread support)
311 if test -f /usr/include/dce/cma_config.h ; then
312 if test "$GCC" = "yes" ; then
313 AC_MSG_RESULT(yes)
314 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
315 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
316 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
317 else
318 AC_MSG_RESULT(no (suppressed because you are not using GCC))
319 fi
320 else
321 AC_MSG_RESULT(no)
322 fi
323 ;;
324 solaris*)
325 AC_MSG_CHECKING(for Solaris thread debugging library)
326 if test -f /usr/lib/libthread_db.so.1 ; then
327 AC_MSG_RESULT(yes)
328 AC_DEFINE(HAVE_THREAD_DB_LIB)
329 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
330 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
331 AC_CHECK_LIB(dl, dlopen)
332 if test "$GCC" = "yes" ; then
333 # The GNU linker requires the -export-dynamic option to make
334 # all symbols visible in the dynamic symbol table.
335 hold_ldflags=$LDFLAGS
336 AC_MSG_CHECKING(for the ld -export-dynamic flag)
337 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
338 AC_TRY_LINK(, [int i;], found=yes, found=no)
339 LDFLAGS=$hold_ldflags
340 AC_MSG_RESULT($found)
341 if test $found = yes; then
342 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
343 fi
344 fi
345 # Sun randomly tweaked the prototypes in <proc_service.h>
346 # at one point.
347 AC_MSG_CHECKING(if <proc_service.h> is old)
348 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
349 AC_TRY_COMPILE([
350 #include <proc_service.h>
351 ps_err_e ps_pdwrite
352 (struct ps_prochandle*, psaddr_t, const void*, size_t);
353 ],, gdb_cv_proc_service_is_old=no,
354 gdb_cv_proc_service_is_old=yes)
355 ])
356 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
357 if test $gdb_cv_proc_service_is_old = yes; then
358 AC_DEFINE(PROC_SERVICE_IS_OLD)
359 fi
360 else
361 AC_MSG_RESULT(no)
362 fi
363 ;;
364 esac
365 AC_SUBST(CONFIG_LDFLAGS)
366fi
367
368dnl Handle optional features that can be enabled.
369ENABLE_CFLAGS=
370
371AC_ARG_ENABLE(tui,
372[ --enable-tui Enable full-screen terminal user interface],
373[
374 case "${enable_tui}" in
375 yes | no) ;;
376 "") enable_tui=yes ;;
377 *)
378 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
379 ;;
380 esac
381])
382case ${enable_tui} in
383 "yes" )
384 AC_DEFINE(TUI)
385 BUILD_TUI=all-tui
386 TUI_LIBRARY=tui/libtui.a
387 ;;
388 * )
389 BUILD_TUI=
390 TUI_LIBRARY=
391 ;;
392esac
393AC_SUBST(BUILD_TUI)
394AC_SUBST(TUI_LIBRARY)
395
396AC_ARG_ENABLE(netrom,
397[ --enable-netrom Enable NetROM support],
398[case "${enableval}" in
399yes) enable_netrom=yes ;;
400no) enable_netrom=no ;;
401*) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
402esac])
403
404if test "${enable_netrom}" = "yes"; then
405 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
406 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
407fi
408
409AC_ARG_ENABLE(build-warnings,
410[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
411[build_warnings="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
412case "${enableval}" in
413 yes) ;;
414 no) build_warnings="-w";;
415 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
416 build_warnings="${build_warnings} ${t}";;
417 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
418 build_warnings="${t} ${build_warnings}";;
419 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
d4f3574e
SS
420esac
421if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
422 echo "Setting warning flags = $build_warnings" 6>&1
423fi
104c1213
JM
424WARN_CFLAGS=""
425WERROR_CFLAGS=""
c906108c
SS
426if test "x${build_warnings}" != x -a "x$GCC" = xyes
427then
104c1213
JM
428 # Separate out the -Werror flag as some files just cannot be
429 # compiled with it enabled.
430 for w in ${build_warnings}; do
431 case $w in
432 -Werr*) WERROR_CFLAGS=-Werror ;;
433 *) WARN_CFLAGS="${WARN_CFLAGS} $w"
434 esac
435 done
d4f3574e
SS
436fi],[build_warnings=""])dnl
437
c906108c 438AC_SUBST(WARN_CFLAGS)
104c1213 439AC_SUBST(WERROR_CFLAGS)
c906108c
SS
440
441MMALLOC_CFLAGS=
442MMALLOC=
443AC_SUBST(MMALLOC_CFLAGS)
444AC_SUBST(MMALLOC)
445
446AC_ARG_WITH(mmalloc,
447[ --with-mmalloc Use memory mapped malloc package],
448[case "${withval}" in
449 yes) want_mmalloc=true ;;
450 no) want_mmalloc=false;;
451 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
452esac],[want_mmalloc=false])dnl
453
454if test x$want_mmalloc = xtrue; then
455 AC_DEFINE(USE_MMALLOC)
456 AC_DEFINE(MMCHECK_FORCE)
457 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
458 MMALLOC='../mmalloc/libmmalloc.a'
459fi
460
7a292a7a
SS
461
462# In the Cygwin environment, we need some additional flags.
463AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
464[AC_EGREP_CPP(lose, [
465#if defined (__CYGWIN__) || defined (__CYGWIN32__)
466lose
467#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
468
469DLLTOOL=${DLLTOOL-dlltool}
470WINDRES=${WINDRES-windres}
471AC_SUBST(DLLTOOL)
472AC_SUBST(WINDRES)
473
c906108c 474dnl Figure out which term library to use.
b83266a0
SS
475if test x$gdb_host = xgo32; then
476 TERM_LIB=
477else
c906108c
SS
478if test x$gdb_cv_os_cygwin = xyes; then
479 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
480else
481 TERM_LIB=
482 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
483 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
484 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
485 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
486 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
487 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
488
489 if test "x$TERM_LIB" = x
490 then
491 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
492 fi
493fi
b83266a0 494fi
c906108c
SS
495AC_SUBST(TERM_LIB)
496
cd0fc7c3
SS
497# libreadline needs libuser32.a in a cygwin environment
498WIN32LIBS=
499if test x$gdb_cv_os_cygwin = xyes; then
500 WIN32LIBS="-luser32"
501fi
502AC_SUBST(WIN32LIBS)
7a292a7a
SS
503
504
c906108c
SS
505AC_PATH_X
506
7a292a7a
SS
507
508# Unlike the sim directory, whether a simulator is linked is controlled by
509# presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
510# This code just checks for a few cases where we'd like to ignore those
511# definitions, even when they're present in the '.mt' file. These cases
512# are when --disable-sim is specified, or if the simulator directory is
513# not part of the soruce tree.
514#
515AC_ARG_ENABLE(sim,
516[ --enable-sim Link gdb with simulator],
517[echo "enable_sim = $enable_sim";
518 echo "enableval = ${enableval}";
519 case "${enableval}" in
520 yes) ignore_sim=false ;;
521 no) ignore_sim=true ;;
522 *) ignore_sim=false ;;
523 esac],
524[ignore_sim=false])
525
526if test ! -d "${srcdir}/../sim"; then
527 ignore_sim=true
528fi
529
530if test "${ignore_sim}" = "true"; then
531 IGNORE_SIM="SIM="
532 IGNORE_SIM_OBS="SIM_OBS="
533else
534 IGNORE_SIM=""
535 IGNORE_SIM_OBS=""
536 AC_DEFINE(WITH_SIM)
537fi
538AC_SUBST(IGNORE_SIM)
539AC_SUBST(IGNORE_SIM_OBS)
540
c906108c
SS
541AC_SUBST(ENABLE_CFLAGS)
542
543AC_SUBST(CONFIG_OBS)
544AC_SUBST(CONFIG_DEPS)
545AC_SUBST(CONFIG_SRCS)
546
547# Begin stuff to support --enable-shared
548AC_ARG_ENABLE(shared,
549[ --enable-shared Use shared libraries],
550[case "${enableval}" in
551 yes) shared=true ;;
552 no) shared=false ;;
553 *) shared=true ;;
554esac])dnl
555
556HLDFLAGS=
557HLDENV=
558# If we have shared libraries, try to set rpath reasonably.
559if test "${shared}" = "true"; then
560 case "${host}" in
561 *-*-hpux*)
562 HLDFLAGS='-Wl,+s,+b,$(libdir)'
563 ;;
564 *-*-irix5* | *-*-irix6*)
565 HLDFLAGS='-Wl,-rpath,$(libdir)'
566 ;;
567 *-*-linux*aout*)
568 ;;
569 *-*-linux* | *-pc-linux-gnu)
570 HLDFLAGS='-Wl,-rpath,$(libdir)'
571 ;;
572 *-*-solaris*)
573 HLDFLAGS='-R $(libdir)'
574 ;;
575 *-*-sysv4*)
576 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;'
577 ;;
578 esac
579fi
580
581# On SunOS, if the linker supports the -rpath option, use it to
582# prevent ../bfd and ../opcodes from being included in the run time
583# search path.
584case "${host}" in
585 *-*-sunos*)
586 echo 'main () { }' > conftest.c
587 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
588 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
589 :
590 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
591 :
592 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
593 :
594 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
595 :
596 elif test "${shared}" = "true"; then
597 HLDFLAGS='-Wl,-rpath=$(libdir)'
598 else
599 HLDFLAGS='-Wl,-rpath='
600 fi
601 rm -f conftest.t conftest.c conftest
602 ;;
603esac
604AC_SUBST(HLDFLAGS)
605AC_SUBST(HLDENV)
606# End stuff to support --enable-shared
607
608# target_subdir is used by the testsuite to find the target libraries.
609target_subdir=
610if test "${host}" != "${target}"; then
611 target_subdir="${target_alias}/"
612fi
613AC_SUBST(target_subdir)
614
615frags=
616host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
617if test ! -f ${host_makefile_frag}; then
618AC_MSG_ERROR("*** Gdb does not support host ${host}")
619fi
620frags="$frags $host_makefile_frag"
621
622target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
623if test ! -f ${target_makefile_frag}; then
624AC_MSG_ERROR("*** Gdb does not support target ${target}")
625fi
626frags="$frags $target_makefile_frag"
627
628AC_SUBST_FILE(host_makefile_frag)
629AC_SUBST_FILE(target_makefile_frag)
630AC_SUBST(frags)
631
632changequote(,)dnl
633hostfile=`sed -n '
634s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
635' ${host_makefile_frag}`
636
637targetfile=`sed -n '
638s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
639' ${target_makefile_frag}`
640
641# these really aren't orthogonal true/false values of the same condition,
642# but shells are slow enough that I like to reuse the test conditions
643# whenever possible
644if test "${target}" = "${host}"; then
645nativefile=`sed -n '
646s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
647' ${host_makefile_frag}`
648# else
649# GDBserver is only useful in a "native" enviroment
650# configdirs=`echo $configdirs | sed 's/gdbserver//'`
651fi
652changequote([,])
653
96baa820
JM
654SUBDIRS="doc testsuite nlm"
655if test "${enable_multi_ice}" = "yes"; then
656 SUBDIRS="${SUBDIRS} multi-ice"
657fi
658
659AC_SUBST(SUBDIRS)
660
c906108c
SS
661# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
662# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
663# corresponding links. But we have to remove the xm.h files and tm.h
664# files anyway, e.g. when switching from "configure host" to
665# "configure none".
666
667files=
668links=
669rm -f xm.h
670if test "${hostfile}" != ""; then
671files="${files} config/${gdb_host_cpu}/${hostfile}"
672links="${links} xm.h"
673fi
674rm -f tm.h
675if test "${targetfile}" != ""; then
676files="${files} config/${gdb_target_cpu}/${targetfile}"
677links="${links} tm.h"
678fi
679rm -f nm.h
680if test "${nativefile}" != ""; then
681files="${files} config/${gdb_host_cpu}/${nativefile}"
682links="${links} nm.h"
683else
684# A cross-only configuration.
685files="${files} config/nm-empty.h"
686links="${links} nm.h"
687fi
688
689AC_LINK_FILES($files, $links)
690
691dnl Check for exe extension set on certain hosts (e.g. Win32)
692AC_EXEEXT
693
694AC_CONFIG_SUBDIRS($configdirs)
695AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
696[
697dnl Autoconf doesn't provide a mechanism for modifying definitions
698dnl provided by makefile fragments.
699dnl
700if test "${nativefile}" = ""; then
701sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
702 < Makefile > Makefile.tem
703mv -f Makefile.tem Makefile
704fi
705
706changequote(,)dnl
707sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
708/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
709/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
710mv -f Makefile.tmp Makefile
711changequote([,])dnl
712
2acceee2 713
c906108c
SS
714case x$CONFIG_HEADERS in
715xconfig.h:config.in)
716echo > stamp-h ;;
717esac
718],
719[
720gdb_host_cpu=$gdb_host_cpu
721gdb_target_cpu=$gdb_target_cpu
722nativefile=$nativefile
723])
724
725exit 0