]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/configure.in
import gdb-1999-12-06 snapshot
[thirdparty/binutils-gdb.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