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