import gdb-1999-12-06 snapshot
[external/binutils.git] / gdb / configure.in
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
3 dnl
4 dnl This file is part of GDB.
5 dnl 
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 2 of the License, or
9 dnl (at your option) any later version.
10 dnl 
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 dnl GNU General Public License for more details.
15 dnl 
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20 dnl Process this file with autoconf to produce a configure script.
21
22 AC_PREREQ(2.13)dnl
23 AC_INIT(main.c)
24 AC_CONFIG_HEADER(config.h:config.in)
25
26 AC_PROG_CC
27 AC_AIX
28 AC_ISC_POSIX
29 AM_PROG_CC_STDC
30
31 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
32 AC_CANONICAL_SYSTEM
33
34 dnl gdb doesn't use gettext, but bfd does.  We call this to ensure we
35 dnl link with the correct libraries.
36 ALL_LINGUAS=
37 CY_GNU_GETTEXT
38
39 dnl List of object files added by configure.
40
41 CONFIG_OBS=
42 CONFIG_DEPS=
43 CONFIG_SRCS=
44
45 configdirs="doc testsuite"
46
47 AC_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
56 if test "${enable_multi_ice}" = "yes"; then
57   configdirs="${configdirs} multi-ice"
58 fi
59
60 dnl
61 changequote(,)dnl
62
63 . ${srcdir}/configure.host
64
65 . ${srcdir}/configure.tgt
66
67 dnl
68 changequote([,])dnl
69
70 AC_PROG_AWK
71 AC_PROG_INSTALL
72 AC_CHECK_TOOL(AR, ar)
73 AC_CHECK_TOOL(RANLIB, ranlib, :)
74 AC_PROG_YACC
75
76 AC_ARG_PROGRAM
77
78 AC_TYPE_SIGNAL
79
80 AC_HEADER_STDC
81
82 AC_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 \
86         wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
87         time.h sys/ioctl.h)
88 AC_HEADER_STAT
89
90 AC_C_CONST
91
92 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
93 AC_FUNC_ALLOCA
94
95 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
96 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
97 dnl Linux kernel patch for SSE support.  That patch may or may not
98 dnl actually make it into the official distribution.  If you find that
99 dnl years have gone by since this configure test was added, and Linux
100 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
101 dnl make it, and you can delete this code.
102 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
103 AC_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])])
108 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
109 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
110   AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
111 fi
112
113 AC_CHECK_LIB(socket, socketpair)
114 AC_CHECK_FUNCS(socketpair)
115
116
117 BFD_NEED_DECLARATION(malloc)
118 BFD_NEED_DECLARATION(realloc)
119 BFD_NEED_DECLARATION(free)
120 BFD_NEED_DECLARATION(strerror)
121 BFD_NEED_DECLARATION(strdup)
122 BFD_NEED_DECLARATION(strstr)
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
129 AC_MSG_CHECKING(for HPUX save_state structure)
130 AC_EGREP_HEADER(save_state_t, machine/save_state.h, 
131                 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
132 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
133                 gdb_cv_hpux_sswide=no)
134 if test $gdb_cv_hpux_savestate = yes
135 then
136   AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
137 fi
138 if test $gdb_cv_hpux_sswide = yes
139 then
140   AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
141 fi
142 AC_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
149 if test "${target}" = "${host}"; then
150   gdb_cv_hostos_is_solaris=no
151   case "${host}" in
152   i[[3456]]86-*-linux*)
153         AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
154         AC_DEFINE(sys_quotactl)
155         ;;
156   *-*-solaris*)
157         gdb_cv_hostos_is_solaris=yes ;;
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.
162   if test "$ac_cv_header_sys_procfs_h" = yes -a \
163           "$gdb_cv_hostos_is_solaris" = no \
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
174 fi
175
176 if 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
198 fi
199
200 dnl See if host has libm.  This is usually needed by simulators.
201 AC_CHECK_LIB(m, main)
202
203 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
204 dnl
205 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw 
206 dnl under Solaris 2.6 because it is some funky empty library.
207 dnl So only link in libw if we have to.
208 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
209
210 dnl See if compiler supports "long long" type.
211
212 AC_MSG_CHECKING(for long long support in compiler)
213 AC_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 ],
218 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
219 AC_MSG_RESULT($gdb_cv_c_long_long)
220 if test $gdb_cv_c_long_long = yes; then
221   AC_DEFINE(CC_HAS_LONG_LONG)
222 fi
223
224 dnl See if the compiler and runtime support printing long long
225
226 AC_MSG_CHECKING(for long long support in printf)
227 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
228 [AC_TRY_RUN([
229 int 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 }],
239 gdb_cv_printf_has_long_long=yes,
240 gdb_cv_printf_has_long_long=no,
241 gdb_cv_printf_has_long_long=no)])
242 if test $gdb_cv_printf_has_long_long = yes; then
243   AC_DEFINE(PRINTF_HAS_LONG_LONG)
244 fi
245 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
246
247 dnl See if compiler supports "long double" type.  Can't use AC_C_LONG_DOUBLE
248 dnl because autoconf complains about cross-compilation issues.  However, this
249 dnl code uses the same variables as the macro for compatibility.
250
251 AC_MSG_CHECKING(for long double support in compiler)
252 AC_CACHE_VAL(ac_cv_c_long_double,
253 [AC_TRY_COMPILE(, [long double foo;],
254 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
255 AC_MSG_RESULT($ac_cv_c_long_double)
256 if test $ac_cv_c_long_double = yes; then
257   AC_DEFINE(HAVE_LONG_DOUBLE)
258 fi
259
260 dnl See if the compiler and runtime support printing long doubles
261
262 AC_MSG_CHECKING(for long double support in printf)
263 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
264 [AC_TRY_RUN([
265 int main () {
266   char buf[16];
267   long double f = 3.141592653;
268   sprintf (buf, "%Lg", f);
269   return (strncmp ("3.14159", buf, 7));
270 }],
271 gdb_cv_printf_has_long_double=yes,
272 gdb_cv_printf_has_long_double=no,
273 gdb_cv_printf_has_long_double=no)])
274 if test $gdb_cv_printf_has_long_double = yes; then
275   AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
276 fi
277 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
278
279 dnl See if the compiler and runtime support scanning long doubles
280
281 AC_MSG_CHECKING(for long double support in scanf)
282 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
283 [AC_TRY_RUN([
284 int 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 }],
290 gdb_cv_scanf_has_long_double=yes,
291 gdb_cv_scanf_has_long_double=no,
292 gdb_cv_scanf_has_long_double=no)])
293 if test $gdb_cv_scanf_has_long_double = yes; then
294   AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
295 fi
296 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
297
298 AC_FUNC_MMAP
299
300 dnl See if thread_db library is around for Solaris thread debugging.  Note that
301 dnl we must explicitly test for version 1 of the library because version 0
302 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
303
304 dnl Note that we only want this if we are both native (host == target), and
305 dnl not doing a canadian cross build (build == host).
306
307 if 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)
366 fi
367
368 dnl Handle optional features that can be enabled.
369 ENABLE_CFLAGS=
370
371 AC_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 ])
382 case ${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   ;;
392 esac
393 AC_SUBST(BUILD_TUI)
394 AC_SUBST(TUI_LIBRARY)
395
396 AC_ARG_ENABLE(netrom,
397 [  --enable-netrom         Enable NetROM support],
398 [case "${enableval}" in
399 yes)    enable_netrom=yes ;;
400 no)     enable_netrom=no ;;
401 *)      AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
402 esac])
403
404 if test "${enable_netrom}" = "yes"; then
405         CONFIG_OBS="${CONFIG_OBS} remote-nrom.o" 
406         CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
407 fi
408
409 AC_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"
412 case "${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"`;;
420 esac
421 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
422   echo "Setting warning flags = $build_warnings" 6>&1
423 fi
424 WARN_CFLAGS=""
425 WERROR_CFLAGS=""
426 if test "x${build_warnings}" != x -a "x$GCC" = xyes
427 then
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
436 fi],[build_warnings=""])dnl
437
438 AC_SUBST(WARN_CFLAGS)
439 AC_SUBST(WERROR_CFLAGS)
440
441 MMALLOC_CFLAGS=
442 MMALLOC=
443 AC_SUBST(MMALLOC_CFLAGS)
444 AC_SUBST(MMALLOC)
445
446 AC_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) ;;
452 esac],[want_mmalloc=false])dnl
453
454 if 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'
459 fi
460
461
462 # In the Cygwin environment, we need some additional flags.
463 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
464 [AC_EGREP_CPP(lose, [
465 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
466 lose
467 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
468
469 DLLTOOL=${DLLTOOL-dlltool}
470 WINDRES=${WINDRES-windres}
471 AC_SUBST(DLLTOOL)
472 AC_SUBST(WINDRES)
473
474 dnl Figure out which term library to use.
475 if test x$gdb_host = xgo32; then
476   TERM_LIB=
477 else
478 if 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`'
480 else
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
493 fi
494 fi
495 AC_SUBST(TERM_LIB)
496
497 # libreadline needs libuser32.a in a cygwin environment
498 WIN32LIBS=
499 if test x$gdb_cv_os_cygwin = xyes; then
500     WIN32LIBS="-luser32"
501 fi
502 AC_SUBST(WIN32LIBS)
503
504
505 AC_PATH_X
506
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 #
515 AC_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
526 if test ! -d "${srcdir}/../sim"; then
527   ignore_sim=true
528 fi
529
530 if test "${ignore_sim}" = "true"; then
531     IGNORE_SIM="SIM="
532     IGNORE_SIM_OBS="SIM_OBS="
533 else
534     IGNORE_SIM=""
535     IGNORE_SIM_OBS=""
536     AC_DEFINE(WITH_SIM)
537 fi
538 AC_SUBST(IGNORE_SIM)
539 AC_SUBST(IGNORE_SIM_OBS)
540
541 AC_SUBST(ENABLE_CFLAGS)
542
543 AC_SUBST(CONFIG_OBS)
544 AC_SUBST(CONFIG_DEPS)
545 AC_SUBST(CONFIG_SRCS)
546
547 # Begin stuff to support --enable-shared
548 AC_ARG_ENABLE(shared,
549 [  --enable-shared         Use shared libraries],
550 [case "${enableval}" in
551   yes) shared=true ;;
552   no)  shared=false ;;
553   *) shared=true ;;
554 esac])dnl
555
556 HLDFLAGS=
557 HLDENV=
558 # If we have shared libraries, try to set rpath reasonably.
559 if 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
579 fi
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.
584 case "${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     ;;
603 esac
604 AC_SUBST(HLDFLAGS)
605 AC_SUBST(HLDENV)
606 # End stuff to support --enable-shared
607
608 # target_subdir is used by the testsuite to find the target libraries.
609 target_subdir=
610 if test "${host}" != "${target}"; then
611     target_subdir="${target_alias}/"
612 fi
613 AC_SUBST(target_subdir)
614
615 frags=
616 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
617 if test ! -f ${host_makefile_frag}; then
618 AC_MSG_ERROR("*** Gdb does not support host ${host}")
619 fi
620 frags="$frags $host_makefile_frag"
621
622 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
623 if test ! -f ${target_makefile_frag}; then
624 AC_MSG_ERROR("*** Gdb does not support target ${target}")
625 fi
626 frags="$frags $target_makefile_frag"
627
628 AC_SUBST_FILE(host_makefile_frag)
629 AC_SUBST_FILE(target_makefile_frag)
630 AC_SUBST(frags)
631
632 changequote(,)dnl
633 hostfile=`sed -n '
634 s/XM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
635 ' ${host_makefile_frag}`
636
637 targetfile=`sed -n '
638 s/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
644 if test "${target}" = "${host}"; then
645 nativefile=`sed -n '
646 s/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//'`
651 fi
652 changequote([,])
653
654 SUBDIRS="doc testsuite nlm"
655 if test "${enable_multi_ice}" = "yes"; then
656   SUBDIRS="${SUBDIRS} multi-ice"
657 fi
658
659 AC_SUBST(SUBDIRS)
660
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
667 files=
668 links=
669 rm -f xm.h
670 if test "${hostfile}" != ""; then
671 files="${files} config/${gdb_host_cpu}/${hostfile}"
672 links="${links} xm.h"
673 fi
674 rm -f tm.h
675 if test "${targetfile}" != ""; then
676 files="${files} config/${gdb_target_cpu}/${targetfile}"
677 links="${links} tm.h"
678 fi
679 rm -f nm.h
680 if test "${nativefile}" != ""; then
681 files="${files} config/${gdb_host_cpu}/${nativefile}"
682 links="${links} nm.h"
683 else
684 # A cross-only configuration.
685 files="${files} config/nm-empty.h"
686 links="${links} nm.h"
687 fi
688
689 AC_LINK_FILES($files, $links)
690
691 dnl Check for exe extension set on certain hosts (e.g. Win32)
692 AC_EXEEXT
693
694 AC_CONFIG_SUBDIRS($configdirs)
695 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
696 [
697 dnl Autoconf doesn't provide a mechanism for modifying definitions 
698 dnl provided by makefile fragments.
699 dnl
700 if test "${nativefile}" = ""; then
701 sed -e '/^NATDEPFILES[[         ]]*=[[  ]]*/s//# NATDEPFILES=/' \
702         < Makefile > Makefile.tem
703 mv -f Makefile.tem Makefile
704 fi
705
706 changequote(,)dnl
707 sed -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
710 mv -f Makefile.tmp Makefile
711 changequote([,])dnl
712
713
714 case x$CONFIG_HEADERS in
715 xconfig.h:config.in)
716 echo > stamp-h ;;
717 esac
718 ],
719 [
720 gdb_host_cpu=$gdb_host_cpu
721 gdb_target_cpu=$gdb_target_cpu
722 nativefile=$nativefile
723 ])
724
725 exit 0