Fix typo in ALIGN_N usage.
[deliverable/binutils-gdb.git] / gdb / configure.in
CommitLineData
c906108c
SS
1dnl Autoconf configure script for GDB, the GNU debugger.
2dnl Copyright 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
3dnl
4dnl This file is part of GDB.
5dnl
6dnl This program is free software; you can redistribute it and/or modify
7dnl it under the terms of the GNU General Public License as published by
8dnl the Free Software Foundation; either version 2 of the License, or
9dnl (at your option) any later version.
10dnl
11dnl This program is distributed in the hope that it will be useful,
12dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14dnl GNU General Public License for more details.
15dnl
16dnl You should have received a copy of the GNU General Public License
17dnl along with this program; if not, write to the Free Software
18dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20dnl Process this file with autoconf to produce a configure script.
21
22AC_PREREQ(2.13)dnl
23AC_INIT(main.c)
24AC_CONFIG_HEADER(config.h:config.in)
25
26AC_PROG_CC
27AC_AIX
28AC_ISC_POSIX
29AM_PROG_CC_STDC
30
31AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
32AC_CANONICAL_SYSTEM
33
34dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
35dnl link with the correct libraries.
36ALL_LINGUAS=
37CY_GNU_GETTEXT
38
39dnl List of object files added by configure.
40
41CONFIG_OBS=
42CONFIG_DEPS=
43CONFIG_SRCS=
44
45configdirs="doc testsuite"
46
96baa820
JM
47AC_ARG_ENABLE(multi-ice,
48[ --enable-multi-ice Build the multi-ice-gdb-server],
49[case "${enableval}" in
50 yes ) enable_multi_ice="yes" ;;
51 no) enable_multi_ice="no" ;;
52 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
53 esac
54])
55
56if test "${enable_multi_ice}" = "yes"; then
57 configdirs="${configdirs} multi-ice"
58fi
59
c906108c
SS
60dnl
61changequote(,)dnl
62
63. ${srcdir}/configure.host
64
65. ${srcdir}/configure.tgt
66
67dnl
68changequote([,])dnl
69
7a292a7a 70AC_PROG_AWK
c906108c
SS
71AC_PROG_INSTALL
72AC_CHECK_TOOL(AR, ar)
73AC_CHECK_TOOL(RANLIB, ranlib, :)
74AC_PROG_YACC
75
76AC_ARG_PROGRAM
77
78AC_TYPE_SIGNAL
79
80AC_HEADER_STDC
81
ed9a39eb 82AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
c906108c 83 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
ed9a39eb 84 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
c906108c 85 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
104c1213 86 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
c2d11a7d 87 time.h sys/ioctl.h)
c906108c
SS
88AC_HEADER_STAT
89
90AC_C_CONST
91
2acceee2 92AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
c906108c
SS
93AC_FUNC_ALLOCA
94
5c44784c
JM
95dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
96dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
97dnl Linux kernel patch for SSE support. That patch may or may not
98dnl actually make it into the official distribution. If you find that
99dnl years have gone by since this configure test was added, and Linux
100dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
101dnl make it, and you can delete this code.
102AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
103AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
104[AC_TRY_COMPILE([#include <sys/ptrace.h>],
105 [PTRACE_GETXFPREGS;],
106 [gdb_cv_have_ptrace_getxfpregs=yes],
107 [gdb_cv_have_ptrace_getxfpregs=no])])
108AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
109if test $gdb_cv_have_ptrace_getxfpregs = yes; then
110 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
111fi
112
7be570e7
JM
113AC_CHECK_LIB(socket, socketpair)
114AC_CHECK_FUNCS(socketpair)
115
116
c906108c
SS
117BFD_NEED_DECLARATION(malloc)
118BFD_NEED_DECLARATION(realloc)
119BFD_NEED_DECLARATION(free)
120BFD_NEED_DECLARATION(strerror)
121BFD_NEED_DECLARATION(strdup)
b83266a0 122BFD_NEED_DECLARATION(strstr)
c906108c
SS
123
124
125# The following save_state_t checkery is only necessary for HPUX
126# versions earlier than 10.20. When those fade from memory, this
127# could be expunged. --jsm 1999-03-22
128
129AC_MSG_CHECKING(for HPUX save_state structure)
130AC_EGREP_HEADER(save_state_t, machine/save_state.h,
131 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
132AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
133 gdb_cv_hpux_sswide=no)
134if test $gdb_cv_hpux_savestate = yes
135then
136 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
137fi
138if test $gdb_cv_hpux_sswide = yes
139then
140 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
141fi
142AC_MSG_RESULT($gdb_cv_hpux_sswide)
143
144
145# If we are configured native on GNU/Linux, work around problems with
146# sys/procfs.h
c3f6f71d 147# Also detect which type of /proc is in use, such as for Unixware or Solaris.
c906108c
SS
148
149if 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 ;;
c5394b80 155 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
c3f6f71d
JM
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 ;;
c906108c 164 esac
c906108c
SS
165fi
166
167if 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
189fi
190
191dnl See if host has libm. This is usually needed by simulators.
192AC_CHECK_LIB(m, main)
193
194dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
195dnl
196dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
197dnl under Solaris 2.6 because it is some funky empty library.
198dnl So only link in libw if we have to.
199AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
200
201dnl See if compiler supports "long long" type.
202
203AC_MSG_CHECKING(for long long support in compiler)
204AC_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],
209gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
210AC_MSG_RESULT($gdb_cv_c_long_long)
211if test $gdb_cv_c_long_long = yes; then
212 AC_DEFINE(CC_HAS_LONG_LONG)
213fi
214
215dnl See if the compiler and runtime support printing long long
216
217AC_MSG_CHECKING(for long long support in printf)
218AC_CACHE_VAL(gdb_cv_printf_has_long_long,
219[AC_TRY_RUN([
220int 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}],
230gdb_cv_printf_has_long_long=yes,
231gdb_cv_printf_has_long_long=no,
232gdb_cv_printf_has_long_long=no)])
233if test $gdb_cv_printf_has_long_long = yes; then
234 AC_DEFINE(PRINTF_HAS_LONG_LONG)
235fi
236AC_MSG_RESULT($gdb_cv_printf_has_long_long)
237
238dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
239dnl because autoconf complains about cross-compilation issues. However, this
240dnl code uses the same variables as the macro for compatibility.
241
242AC_MSG_CHECKING(for long double support in compiler)
243AC_CACHE_VAL(ac_cv_c_long_double,
244[AC_TRY_COMPILE(, [long double foo;],
245ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
246AC_MSG_RESULT($ac_cv_c_long_double)
247if test $ac_cv_c_long_double = yes; then
248 AC_DEFINE(HAVE_LONG_DOUBLE)
249fi
250
251dnl See if the compiler and runtime support printing long doubles
252
253AC_MSG_CHECKING(for long double support in printf)
254AC_CACHE_VAL(gdb_cv_printf_has_long_double,
255[AC_TRY_RUN([
256int main () {
257 char buf[16];
258 long double f = 3.141592653;
259 sprintf (buf, "%Lg", f);
260 return (strncmp ("3.14159", buf, 7));
261}],
262gdb_cv_printf_has_long_double=yes,
263gdb_cv_printf_has_long_double=no,
264gdb_cv_printf_has_long_double=no)])
265if test $gdb_cv_printf_has_long_double = yes; then
266 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
267fi
268AC_MSG_RESULT($gdb_cv_printf_has_long_double)
269
270dnl See if the compiler and runtime support scanning long doubles
271
272AC_MSG_CHECKING(for long double support in scanf)
273AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
274[AC_TRY_RUN([
275int 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}],
281gdb_cv_scanf_has_long_double=yes,
282gdb_cv_scanf_has_long_double=no,
283gdb_cv_scanf_has_long_double=no)])
284if test $gdb_cv_scanf_has_long_double = yes; then
285 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
286fi
287AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
288
289AC_FUNC_MMAP
290
291dnl See if thread_db library is around for Solaris thread debugging. Note that
292dnl we must explicitly test for version 1 of the library because version 0
293dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
294
295dnl Note that we only want this if we are both native (host == target), and
296dnl not doing a canadian cross build (build == host).
297
298if 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)
357fi
358
359dnl Handle optional features that can be enabled.
360ENABLE_CFLAGS=
361
362AC_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])
373case ${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 ;;
383esac
384AC_SUBST(BUILD_TUI)
385AC_SUBST(TUI_LIBRARY)
386
387AC_ARG_ENABLE(netrom,
388[ --enable-netrom Enable NetROM support],
389[case "${enableval}" in
390yes) enable_netrom=yes ;;
391no) enable_netrom=no ;;
392*) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
393esac])
394
395if test "${enable_netrom}" = "yes"; then
396 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
397 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
398fi
399
400AC_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"
403case "${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"`;;
d4f3574e
SS
411esac
412if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
413 echo "Setting warning flags = $build_warnings" 6>&1
414fi
104c1213
JM
415WARN_CFLAGS=""
416WERROR_CFLAGS=""
c906108c
SS
417if test "x${build_warnings}" != x -a "x$GCC" = xyes
418then
104c1213
JM
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
d4f3574e
SS
427fi],[build_warnings=""])dnl
428
c906108c 429AC_SUBST(WARN_CFLAGS)
104c1213 430AC_SUBST(WERROR_CFLAGS)
c906108c
SS
431
432MMALLOC_CFLAGS=
433MMALLOC=
434AC_SUBST(MMALLOC_CFLAGS)
435AC_SUBST(MMALLOC)
436
437AC_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) ;;
443esac],[want_mmalloc=false])dnl
444
445if 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'
450fi
451
7a292a7a
SS
452
453# In the Cygwin environment, we need some additional flags.
454AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
455[AC_EGREP_CPP(lose, [
456#if defined (__CYGWIN__) || defined (__CYGWIN32__)
457lose
458#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
459
460DLLTOOL=${DLLTOOL-dlltool}
461WINDRES=${WINDRES-windres}
462AC_SUBST(DLLTOOL)
463AC_SUBST(WINDRES)
464
c906108c 465dnl Figure out which term library to use.
b83266a0
SS
466if test x$gdb_host = xgo32; then
467 TERM_LIB=
468else
c906108c
SS
469if 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`'
471else
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
484fi
b83266a0 485fi
c906108c
SS
486AC_SUBST(TERM_LIB)
487
cd0fc7c3
SS
488# libreadline needs libuser32.a in a cygwin environment
489WIN32LIBS=
490if test x$gdb_cv_os_cygwin = xyes; then
c5394b80
JM
491 WIN32LIBS="-luser32"
492 case "${target}" in
493 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
494 ;;
495 esac
cd0fc7c3
SS
496fi
497AC_SUBST(WIN32LIBS)
7a292a7a
SS
498
499
8b93c638
JM
500AC_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 ;;
530esac
531AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
532],)
533
534
535
c906108c
SS
536AC_PATH_X
537
7a292a7a
SS
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#
546AC_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
557if test ! -d "${srcdir}/../sim"; then
558 ignore_sim=true
559fi
560
561if test "${ignore_sim}" = "true"; then
562 IGNORE_SIM="SIM="
563 IGNORE_SIM_OBS="SIM_OBS="
564else
565 IGNORE_SIM=""
566 IGNORE_SIM_OBS=""
567 AC_DEFINE(WITH_SIM)
568fi
569AC_SUBST(IGNORE_SIM)
570AC_SUBST(IGNORE_SIM_OBS)
571
c906108c
SS
572AC_SUBST(ENABLE_CFLAGS)
573
574AC_SUBST(CONFIG_OBS)
575AC_SUBST(CONFIG_DEPS)
576AC_SUBST(CONFIG_SRCS)
577
578# Begin stuff to support --enable-shared
579AC_ARG_ENABLE(shared,
580[ --enable-shared Use shared libraries],
581[case "${enableval}" in
582 yes) shared=true ;;
583 no) shared=false ;;
584 *) shared=true ;;
585esac])dnl
586
587HLDFLAGS=
588HLDENV=
589# If we have shared libraries, try to set rpath reasonably.
590if 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
610fi
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.
615case "${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 ;;
634esac
635AC_SUBST(HLDFLAGS)
636AC_SUBST(HLDENV)
637# End stuff to support --enable-shared
638
639# target_subdir is used by the testsuite to find the target libraries.
640target_subdir=
641if test "${host}" != "${target}"; then
642 target_subdir="${target_alias}/"
643fi
644AC_SUBST(target_subdir)
645
646frags=
647host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
648if test ! -f ${host_makefile_frag}; then
649AC_MSG_ERROR("*** Gdb does not support host ${host}")
650fi
651frags="$frags $host_makefile_frag"
652
653target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
654if test ! -f ${target_makefile_frag}; then
655AC_MSG_ERROR("*** Gdb does not support target ${target}")
656fi
657frags="$frags $target_makefile_frag"
658
659AC_SUBST_FILE(host_makefile_frag)
660AC_SUBST_FILE(target_makefile_frag)
661AC_SUBST(frags)
662
663changequote(,)dnl
664hostfile=`sed -n '
665s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
666' ${host_makefile_frag}`
667
668targetfile=`sed -n '
669s/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
675if test "${target}" = "${host}"; then
676nativefile=`sed -n '
677s/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//'`
682fi
683changequote([,])
684
96baa820
JM
685SUBDIRS="doc testsuite nlm"
686if test "${enable_multi_ice}" = "yes"; then
687 SUBDIRS="${SUBDIRS} multi-ice"
688fi
689
690AC_SUBST(SUBDIRS)
691
c906108c
SS
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
698files=
699links=
700rm -f xm.h
701if test "${hostfile}" != ""; then
702files="${files} config/${gdb_host_cpu}/${hostfile}"
703links="${links} xm.h"
704fi
705rm -f tm.h
706if test "${targetfile}" != ""; then
707files="${files} config/${gdb_target_cpu}/${targetfile}"
708links="${links} tm.h"
709fi
710rm -f nm.h
711if test "${nativefile}" != ""; then
712files="${files} config/${gdb_host_cpu}/${nativefile}"
713links="${links} nm.h"
714else
715# A cross-only configuration.
716files="${files} config/nm-empty.h"
717links="${links} nm.h"
718fi
719
720AC_LINK_FILES($files, $links)
721
722dnl Check for exe extension set on certain hosts (e.g. Win32)
723AC_EXEEXT
724
725AC_CONFIG_SUBDIRS($configdirs)
726AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
727[
728dnl Autoconf doesn't provide a mechanism for modifying definitions
729dnl provided by makefile fragments.
730dnl
731if test "${nativefile}" = ""; then
732sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
733 < Makefile > Makefile.tem
734mv -f Makefile.tem Makefile
735fi
736
737changequote(,)dnl
738sed -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
741mv -f Makefile.tmp Makefile
742changequote([,])dnl
743
2acceee2 744
c906108c
SS
745case x$CONFIG_HEADERS in
746xconfig.h:config.in)
747echo > stamp-h ;;
748esac
749],
750[
751gdb_host_cpu=$gdb_host_cpu
752gdb_target_cpu=$gdb_target_cpu
753nativefile=$nativefile
754])
755
756exit 0
This page took 0.065363 seconds and 4 git commands to generate.