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