* configure.in (SUBDIR_MI_CFLAGS): Fix typo, wrong brace.
[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=
fb40c209
AC
44CONFIG_INITS=
45ENABLE_CFLAGS=
c906108c
SS
46
47configdirs="doc testsuite"
48
96baa820
JM
49AC_ARG_ENABLE(multi-ice,
50[ --enable-multi-ice Build the multi-ice-gdb-server],
51[case "${enableval}" in
52 yes ) enable_multi_ice="yes" ;;
53 no) enable_multi_ice="no" ;;
54 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
55 esac
56])
57
58if test "${enable_multi_ice}" = "yes"; then
59 configdirs="${configdirs} multi-ice"
60fi
61
c906108c
SS
62dnl
63changequote(,)dnl
64
65. ${srcdir}/configure.host
66
67. ${srcdir}/configure.tgt
68
69dnl
70changequote([,])dnl
71
7a292a7a 72AC_PROG_AWK
c906108c
SS
73AC_PROG_INSTALL
74AC_CHECK_TOOL(AR, ar)
75AC_CHECK_TOOL(RANLIB, ranlib, :)
76AC_PROG_YACC
77
78AC_ARG_PROGRAM
79
80AC_TYPE_SIGNAL
81
82AC_HEADER_STDC
83
ed9a39eb 84AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
c906108c 85 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
ed9a39eb 86 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
c906108c 87 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
104c1213 88 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
c2d11a7d 89 time.h sys/ioctl.h)
c906108c
SS
90AC_HEADER_STAT
91
92AC_C_CONST
93
2acceee2 94AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
c906108c
SS
95AC_FUNC_ALLOCA
96
5c44784c
JM
97dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
98dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
99dnl Linux kernel patch for SSE support. That patch may or may not
100dnl actually make it into the official distribution. If you find that
101dnl years have gone by since this configure test was added, and Linux
102dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
103dnl make it, and you can delete this code.
104AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
105AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
106[AC_TRY_COMPILE([#include <sys/ptrace.h>],
107 [PTRACE_GETXFPREGS;],
108 [gdb_cv_have_ptrace_getxfpregs=yes],
109 [gdb_cv_have_ptrace_getxfpregs=no])])
110AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
111if test $gdb_cv_have_ptrace_getxfpregs = yes; then
112 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
113fi
114
7be570e7
JM
115AC_CHECK_LIB(socket, socketpair)
116AC_CHECK_FUNCS(socketpair)
117
118
c906108c
SS
119BFD_NEED_DECLARATION(malloc)
120BFD_NEED_DECLARATION(realloc)
121BFD_NEED_DECLARATION(free)
122BFD_NEED_DECLARATION(strerror)
123BFD_NEED_DECLARATION(strdup)
b83266a0 124BFD_NEED_DECLARATION(strstr)
c906108c
SS
125
126
127# The following save_state_t checkery is only necessary for HPUX
128# versions earlier than 10.20. When those fade from memory, this
129# could be expunged. --jsm 1999-03-22
130
131AC_MSG_CHECKING(for HPUX save_state structure)
132AC_EGREP_HEADER(save_state_t, machine/save_state.h,
133 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
134AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
135 gdb_cv_hpux_sswide=no)
136if test $gdb_cv_hpux_savestate = yes
137then
138 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
139fi
140if test $gdb_cv_hpux_sswide = yes
141then
142 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
143fi
144AC_MSG_RESULT($gdb_cv_hpux_sswide)
145
146
147# If we are configured native on GNU/Linux, work around problems with
148# sys/procfs.h
c3f6f71d 149# Also detect which type of /proc is in use, such as for Unixware or Solaris.
c906108c
SS
150
151if test "${target}" = "${host}"; then
152 case "${host}" in
153 i[[3456]]86-*-linux*)
154 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
155 AC_DEFINE(sys_quotactl)
156 ;;
c5394b80 157 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
c3f6f71d
JM
158 AC_DEFINE(NEW_PROC_API)
159 ;;
160 # FIXME: we would like to define NEW_PROC_API for all versions of
161 # Solaris from 2.6 on... but it isn't quite working yet. Seems
162 # to work on sparc 2.6, so let's try it out there.
163 sparc-sun-solaris2.6)
164 AC_DEFINE(NEW_PROC_API)
165 ;;
c906108c 166 esac
c906108c
SS
167fi
168
169if test "$ac_cv_header_sys_procfs_h" = yes; then
170 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
171 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
172 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
173 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
83d37ec8
MK
174 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
175 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
176 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
177 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
c906108c
SS
178
179 dnl Check for PIOCSET ioctl entry
180
181 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
182 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
183 [AC_TRY_COMPILE([#include <unistd.h>
184#include <sys/types.h>
185#include <sys/procfs.h>
186], [
187 int dummy;;
188 dummy = ioctl(0, PIOCSET, &dummy);
189 ],
190 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
191 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
192 if test $gdb_cv_have_procfs_piocset = yes; then
193 AC_DEFINE(HAVE_PROCFS_PIOCSET)
194 fi
195fi
196
197dnl See if host has libm. This is usually needed by simulators.
198AC_CHECK_LIB(m, main)
199
200dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
201dnl
202dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
203dnl under Solaris 2.6 because it is some funky empty library.
204dnl So only link in libw if we have to.
205AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
206
207dnl See if compiler supports "long long" type.
208
209AC_MSG_CHECKING(for long long support in compiler)
210AC_CACHE_VAL(gdb_cv_c_long_long,
211[AC_TRY_COMPILE(, [
212 extern long long foo;
213 switch (foo & 2) { case 0: return 1; }
214],
215gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
216AC_MSG_RESULT($gdb_cv_c_long_long)
217if test $gdb_cv_c_long_long = yes; then
218 AC_DEFINE(CC_HAS_LONG_LONG)
219fi
220
221dnl See if the compiler and runtime support printing long long
222
223AC_MSG_CHECKING(for long long support in printf)
224AC_CACHE_VAL(gdb_cv_printf_has_long_long,
225[AC_TRY_RUN([
226int main () {
227 char buf[32];
228 long long l = 0;
229 l = (l << 16) + 0x0123;
230 l = (l << 16) + 0x4567;
231 l = (l << 16) + 0x89ab;
232 l = (l << 16) + 0xcdef;
233 sprintf (buf, "0x%016llx", l);
234 return (strcmp ("0x0123456789abcdef", buf));
235}],
236gdb_cv_printf_has_long_long=yes,
237gdb_cv_printf_has_long_long=no,
238gdb_cv_printf_has_long_long=no)])
239if test $gdb_cv_printf_has_long_long = yes; then
240 AC_DEFINE(PRINTF_HAS_LONG_LONG)
241fi
242AC_MSG_RESULT($gdb_cv_printf_has_long_long)
243
244dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
245dnl because autoconf complains about cross-compilation issues. However, this
246dnl code uses the same variables as the macro for compatibility.
247
248AC_MSG_CHECKING(for long double support in compiler)
249AC_CACHE_VAL(ac_cv_c_long_double,
250[AC_TRY_COMPILE(, [long double foo;],
251ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
252AC_MSG_RESULT($ac_cv_c_long_double)
253if test $ac_cv_c_long_double = yes; then
254 AC_DEFINE(HAVE_LONG_DOUBLE)
255fi
256
257dnl See if the compiler and runtime support printing long doubles
258
259AC_MSG_CHECKING(for long double support in printf)
260AC_CACHE_VAL(gdb_cv_printf_has_long_double,
261[AC_TRY_RUN([
262int main () {
263 char buf[16];
264 long double f = 3.141592653;
265 sprintf (buf, "%Lg", f);
266 return (strncmp ("3.14159", buf, 7));
267}],
268gdb_cv_printf_has_long_double=yes,
269gdb_cv_printf_has_long_double=no,
270gdb_cv_printf_has_long_double=no)])
271if test $gdb_cv_printf_has_long_double = yes; then
272 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
273fi
274AC_MSG_RESULT($gdb_cv_printf_has_long_double)
275
276dnl See if the compiler and runtime support scanning long doubles
277
278AC_MSG_CHECKING(for long double support in scanf)
279AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
280[AC_TRY_RUN([
281int main () {
282 char *buf = "3.141592653";
283 long double f = 0;
284 sscanf (buf, "%Lg", &f);
285 return !(f > 3.14159 && f < 3.14160);
286}],
287gdb_cv_scanf_has_long_double=yes,
288gdb_cv_scanf_has_long_double=no,
289gdb_cv_scanf_has_long_double=no)])
290if test $gdb_cv_scanf_has_long_double = yes; then
291 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
292fi
293AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
294
295AC_FUNC_MMAP
296
297dnl See if thread_db library is around for Solaris thread debugging. Note that
298dnl we must explicitly test for version 1 of the library because version 0
299dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
300
301dnl Note that we only want this if we are both native (host == target), and
302dnl not doing a canadian cross build (build == host).
303
304if test ${build} = ${host} -a ${host} = ${target} ; then
305 case ${host_os} in
306 hpux*)
307 AC_MSG_CHECKING(for HPUX/OSF thread support)
308 if test -f /usr/include/dce/cma_config.h ; then
309 if test "$GCC" = "yes" ; then
310 AC_MSG_RESULT(yes)
311 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
312 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
313 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
dfcd3bfb 314 CONFIG_INITS="${CONFIG_INITS} hpux-thread.c"
c906108c
SS
315 else
316 AC_MSG_RESULT(no (suppressed because you are not using GCC))
317 fi
318 else
319 AC_MSG_RESULT(no)
320 fi
321 ;;
322 solaris*)
323 AC_MSG_CHECKING(for Solaris thread debugging library)
324 if test -f /usr/lib/libthread_db.so.1 ; then
325 AC_MSG_RESULT(yes)
326 AC_DEFINE(HAVE_THREAD_DB_LIB)
327 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
328 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
329 AC_CHECK_LIB(dl, dlopen)
330 if test "$GCC" = "yes" ; then
331 # The GNU linker requires the -export-dynamic option to make
332 # all symbols visible in the dynamic symbol table.
333 hold_ldflags=$LDFLAGS
334 AC_MSG_CHECKING(for the ld -export-dynamic flag)
335 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
336 AC_TRY_LINK(, [int i;], found=yes, found=no)
337 LDFLAGS=$hold_ldflags
338 AC_MSG_RESULT($found)
339 if test $found = yes; then
340 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
341 fi
342 fi
343 # Sun randomly tweaked the prototypes in <proc_service.h>
344 # at one point.
345 AC_MSG_CHECKING(if <proc_service.h> is old)
346 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
347 AC_TRY_COMPILE([
348 #include <proc_service.h>
349 ps_err_e ps_pdwrite
350 (struct ps_prochandle*, psaddr_t, const void*, size_t);
351 ],, gdb_cv_proc_service_is_old=no,
352 gdb_cv_proc_service_is_old=yes)
353 ])
354 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
355 if test $gdb_cv_proc_service_is_old = yes; then
356 AC_DEFINE(PROC_SERVICE_IS_OLD)
357 fi
358 else
359 AC_MSG_RESULT(no)
360 fi
361 ;;
362 esac
363 AC_SUBST(CONFIG_LDFLAGS)
364fi
365
366dnl Handle optional features that can be enabled.
fb40c209
AC
367
368dnl Handle MI sub-directory configury.
369AC_ARG_ENABLE(gdbmi,
370[ --enable-gdbmi Enable GDB-MI interface],
371[
372 case "${enable_gdbmi}" in
373 yes | no) ;;
374 "") enable_gdbmi=yes ;;
375 *)
376 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
377 ;;
378 esac
379])
380case ${enable_gdbmi} in
381 "yes" )
382 if test -d "${srcdir}/mi" ; then
383 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
384 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
385 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
386 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
b0b1b869 387 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
fb40c209
AC
388 fi
389 ;;
390esac
c906108c
SS
391
392AC_ARG_ENABLE(tui,
393[ --enable-tui Enable full-screen terminal user interface],
394[
395 case "${enable_tui}" in
396 yes | no) ;;
397 "") enable_tui=yes ;;
398 *)
399 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
400 ;;
401 esac
402])
403case ${enable_tui} in
404 "yes" )
405 AC_DEFINE(TUI)
406 BUILD_TUI=all-tui
407 TUI_LIBRARY=tui/libtui.a
408 ;;
409 * )
410 BUILD_TUI=
411 TUI_LIBRARY=
412 ;;
413esac
414AC_SUBST(BUILD_TUI)
415AC_SUBST(TUI_LIBRARY)
416
417AC_ARG_ENABLE(netrom,
418[ --enable-netrom Enable NetROM support],
419[case "${enableval}" in
420yes) enable_netrom=yes ;;
421no) enable_netrom=no ;;
422*) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
423esac])
424
425if test "${enable_netrom}" = "yes"; then
426 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
427 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
dfcd3bfb 428 CONFIG_INITS="${CONFIG_INITS} remote-nrom.c"
c906108c
SS
429fi
430
431AC_ARG_ENABLE(build-warnings,
432[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
fb40c209
AC
433[
434# not yet: -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
435build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith"
c906108c
SS
436case "${enableval}" in
437 yes) ;;
438 no) build_warnings="-w";;
439 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
440 build_warnings="${build_warnings} ${t}";;
441 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
442 build_warnings="${t} ${build_warnings}";;
443 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
d4f3574e
SS
444esac
445if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
446 echo "Setting warning flags = $build_warnings" 6>&1
447fi
104c1213
JM
448WARN_CFLAGS=""
449WERROR_CFLAGS=""
c906108c
SS
450if test "x${build_warnings}" != x -a "x$GCC" = xyes
451then
104c1213
JM
452 # Separate out the -Werror flag as some files just cannot be
453 # compiled with it enabled.
454 for w in ${build_warnings}; do
455 case $w in
456 -Werr*) WERROR_CFLAGS=-Werror ;;
457 *) WARN_CFLAGS="${WARN_CFLAGS} $w"
458 esac
459 done
d4f3574e
SS
460fi],[build_warnings=""])dnl
461
c906108c 462AC_SUBST(WARN_CFLAGS)
104c1213 463AC_SUBST(WERROR_CFLAGS)
c906108c
SS
464
465MMALLOC_CFLAGS=
466MMALLOC=
467AC_SUBST(MMALLOC_CFLAGS)
468AC_SUBST(MMALLOC)
469
470AC_ARG_WITH(mmalloc,
471[ --with-mmalloc Use memory mapped malloc package],
472[case "${withval}" in
473 yes) want_mmalloc=true ;;
474 no) want_mmalloc=false;;
475 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
476esac],[want_mmalloc=false])dnl
477
478if test x$want_mmalloc = xtrue; then
479 AC_DEFINE(USE_MMALLOC)
480 AC_DEFINE(MMCHECK_FORCE)
481 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
482 MMALLOC='../mmalloc/libmmalloc.a'
483fi
484
7a292a7a
SS
485
486# In the Cygwin environment, we need some additional flags.
487AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
488[AC_EGREP_CPP(lose, [
489#if defined (__CYGWIN__) || defined (__CYGWIN32__)
490lose
491#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
492
493DLLTOOL=${DLLTOOL-dlltool}
494WINDRES=${WINDRES-windres}
495AC_SUBST(DLLTOOL)
496AC_SUBST(WINDRES)
497
c906108c 498dnl Figure out which term library to use.
b83266a0
SS
499if test x$gdb_host = xgo32; then
500 TERM_LIB=
501else
c906108c
SS
502if test x$gdb_cv_os_cygwin = xyes; then
503 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
504else
505 TERM_LIB=
506 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
507 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
508 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
509 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
510 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
511 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
512
513 if test "x$TERM_LIB" = x
514 then
515 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
516 fi
517fi
b83266a0 518fi
c906108c
SS
519AC_SUBST(TERM_LIB)
520
cd0fc7c3
SS
521# libreadline needs libuser32.a in a cygwin environment
522WIN32LIBS=
523if test x$gdb_cv_os_cygwin = xyes; then
c5394b80
JM
524 WIN32LIBS="-luser32"
525 case "${target}" in
526 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
527 ;;
528 esac
cd0fc7c3
SS
529fi
530AC_SUBST(WIN32LIBS)
7a292a7a 531
3fc11d3e
JM
532LIBGUI="../libgui/src/libgui.a"
533GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
534AC_SUBST(LIBGUI)
535AC_SUBST(GUI_CFLAGS_X)
7a292a7a 536
8b93c638
JM
537AC_ARG_WITH(cpu,
538[ --with-cpu=CPU Set the default CPU variant to debug],
539[case "${target}" in
540 powerpc-* | powerpcle-* )
541 ## It would be nice to keep this table in sync with the one in
542 ## gcc/configure.
543 case "${with_cpu}" in
544 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
545 | 604 | 750 )
546 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
547 ;;
548 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
549 ## These are all RS6000 variants, as far as GDB is concerned.
550 with_cpu=rs6000
551 ;;
552 603e | ec603e )
553 with_cpu=603
554 ;;
555 604e )
556 with_cpu=604
557 ;;
558 * )
559 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
560 with_cpu=ppc-uisa
561 ;;
562 esac
563 ;;
564 * )
565 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
566 ;;
567esac
568AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
569],)
570
571
3fc11d3e
JM
572ENABLE_GDBTK=
573
574AC_ARG_ENABLE(gdbtk,
575[ --enable-gdbtk Enable GDBTK GUI front end],
576[case "${enableval}" in
577 yes)
578 case "$host" in
579 *go32*)
580 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
581 enable_gdbtk=no ;;
582 *windows*)
583 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
584 enable_gdbtk=no ;;
585 *)
586 enable_gdbtk=yes ;;
587 esac ;;
588 no)
589 enable_gdbtk=no ;;
590 *)
591 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
592esac],
593[
594# Default is on for everything but go32 and Cygwin
595case "$host" in
596 *go32* | *windows*)
597 ;;
598 *)
599 enable_gdbtk=yes ;;
600 esac
601])
602
603WIN32LDAPP=
604AC_SUBST(WIN32LIBS)
605AC_SUBST(WIN32LDAPP)
606
607configdir="unix"
608
609GDBTKLIBS=
610if test "${enable_gdbtk}" = "yes"; then
611
612 CY_AC_PATH_TCLCONFIG
613 if test -z "${no_tcl}"; then
614 CY_AC_LOAD_TCLCONFIG
615 CY_AC_PATH_TKCONFIG
616
617 # If $no_tk is nonempty, then we can't do Tk, and there is no
618 # point to doing Tcl.
619 if test -z "${no_tk}"; then
620 CY_AC_LOAD_TKCONFIG
621 CY_AC_PATH_TCLH
622 CY_AC_PATH_TKH
623 CY_AC_PATH_ITCLH
624 CY_AC_PATH_ITKH
625 CY_AC_PATH_TIXH
626
627 # now look for Itcl library stuff
628
629 CY_AC_PATH_ITCLCONFIG
630 if test -z "${no_itcl}"; then
631 CY_AC_LOAD_ITCLCONFIG
632 case "${host}" in
633 *-*-cygwin*)
634 itcldir=../itcl/itcl/win/
635 ;;
636 *)
637 itcldir=../itcl/itcl/unix/
638 ;;
639 esac
640
641
642 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
643 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
644 fi
645
646
647 # now look for Itk library stuff
648 CY_AC_PATH_ITKCONFIG
649 if test -z "${no_itcl}"; then
650 CY_AC_LOAD_ITKCONFIG
651
652 case "${host}" in
653 *-*-cygwin*)
654 itkdir=../itcl/itk/win/
655 ;;
656 *)
657 itkdir=../itcl/itk/unix/
658 ;;
659 esac
660
661 ITKLIB="${ITK_BUILD_LIB_SPEC}"
662 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
663 fi
664
665 # now look for Tix library stuff
666 CY_AC_PATH_TIXCONFIG
667 if test -z "${no_tix}"; then
668 CY_AC_LOAD_TIXCONFIG
669 TIXLIB="${TIX_BUILD_LIB_SPEC}"
670 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
671 fi
672
673 ENABLE_GDBTK=1
674 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
675 # Tcl/Tk 8.1 require -fwritable strings. I don't
676 # know whether 8.2 will or not, but I bet it will.
677 # I don't have to worry about 7.x since we don't support it.
678 GDBTK_CFLAGS=""
679 if test "$GCC" = "yes"; then
680 if test "$TCL_VERSION" != "8.0" ; then
681 GDBTK_CFLAGS="-fwritable-strings"
682 fi
683 fi
684
685 # Include some libraries that Tcl and Tk want.
686 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
687 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
688 # Yes, the ordering seems wrong here. But it isn't.
689 # TK_LIBS is the list of libraries that need to be linked
690 # after Tcl/Tk. Note that this isn't put into LIBS. If it
691 # were in LIBS then any link tests after this point would
692 # try to include things like `$(LIBGUI)', which wouldn't work.
693 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
d45b9300
FN
694 CONFIG_SRCS="${CONFIG_SRCS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
695 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
696 CONFIG_INITS="${CONFIG_INITS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
3fc11d3e
JM
697
698 if test x$gdb_cv_os_cygwin = xyes; then
699 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
700 WIN32LDAPP="-Wl,--subsystem,console"
701 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
702 fi
703 fi
704 fi
705fi
706
707AC_SUBST(ENABLE_GDBTK)
708AC_SUBST(X_CFLAGS)
709AC_SUBST(X_LDFLAGS)
710AC_SUBST(X_LIBS)
711AC_SUBST(ITCLLIB)
712AC_SUBST(ITCL_DEPS)
713AC_SUBST(ITKLIB)
714AC_SUBST(ITK_DEPS)
715AC_SUBST(TIXLIB)
716AC_SUBST(TIX_DEPS)
717AC_SUBST(GDBTKLIBS)
718AC_SUBST(GDBTK_CFLAGS)
8b93c638 719
c906108c
SS
720AC_PATH_X
721
7a292a7a
SS
722
723# Unlike the sim directory, whether a simulator is linked is controlled by
724# presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
725# This code just checks for a few cases where we'd like to ignore those
726# definitions, even when they're present in the '.mt' file. These cases
727# are when --disable-sim is specified, or if the simulator directory is
728# not part of the soruce tree.
729#
730AC_ARG_ENABLE(sim,
731[ --enable-sim Link gdb with simulator],
732[echo "enable_sim = $enable_sim";
733 echo "enableval = ${enableval}";
734 case "${enableval}" in
735 yes) ignore_sim=false ;;
736 no) ignore_sim=true ;;
737 *) ignore_sim=false ;;
738 esac],
739[ignore_sim=false])
740
741if test ! -d "${srcdir}/../sim"; then
742 ignore_sim=true
743fi
744
745if test "${ignore_sim}" = "true"; then
746 IGNORE_SIM="SIM="
747 IGNORE_SIM_OBS="SIM_OBS="
748else
749 IGNORE_SIM=""
750 IGNORE_SIM_OBS=""
751 AC_DEFINE(WITH_SIM)
752fi
753AC_SUBST(IGNORE_SIM)
754AC_SUBST(IGNORE_SIM_OBS)
755
c906108c
SS
756AC_SUBST(ENABLE_CFLAGS)
757
758AC_SUBST(CONFIG_OBS)
759AC_SUBST(CONFIG_DEPS)
760AC_SUBST(CONFIG_SRCS)
dfcd3bfb 761AC_SUBST(CONFIG_INITS)
c906108c
SS
762
763# Begin stuff to support --enable-shared
764AC_ARG_ENABLE(shared,
765[ --enable-shared Use shared libraries],
766[case "${enableval}" in
767 yes) shared=true ;;
768 no) shared=false ;;
769 *) shared=true ;;
770esac])dnl
771
772HLDFLAGS=
773HLDENV=
774# If we have shared libraries, try to set rpath reasonably.
775if test "${shared}" = "true"; then
776 case "${host}" in
777 *-*-hpux*)
778 HLDFLAGS='-Wl,+s,+b,$(libdir)'
779 ;;
780 *-*-irix5* | *-*-irix6*)
781 HLDFLAGS='-Wl,-rpath,$(libdir)'
782 ;;
783 *-*-linux*aout*)
784 ;;
785 *-*-linux* | *-pc-linux-gnu)
786 HLDFLAGS='-Wl,-rpath,$(libdir)'
787 ;;
788 *-*-solaris*)
789 HLDFLAGS='-R $(libdir)'
790 ;;
791 *-*-sysv4*)
792 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;'
793 ;;
794 esac
795fi
796
797# On SunOS, if the linker supports the -rpath option, use it to
798# prevent ../bfd and ../opcodes from being included in the run time
799# search path.
800case "${host}" in
801 *-*-sunos*)
802 echo 'main () { }' > conftest.c
803 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
804 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
805 :
806 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
807 :
808 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
809 :
810 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
811 :
812 elif test "${shared}" = "true"; then
813 HLDFLAGS='-Wl,-rpath=$(libdir)'
814 else
815 HLDFLAGS='-Wl,-rpath='
816 fi
817 rm -f conftest.t conftest.c conftest
818 ;;
819esac
820AC_SUBST(HLDFLAGS)
821AC_SUBST(HLDENV)
822# End stuff to support --enable-shared
823
824# target_subdir is used by the testsuite to find the target libraries.
825target_subdir=
826if test "${host}" != "${target}"; then
827 target_subdir="${target_alias}/"
828fi
829AC_SUBST(target_subdir)
830
831frags=
832host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
833if test ! -f ${host_makefile_frag}; then
834AC_MSG_ERROR("*** Gdb does not support host ${host}")
835fi
836frags="$frags $host_makefile_frag"
837
838target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
839if test ! -f ${target_makefile_frag}; then
840AC_MSG_ERROR("*** Gdb does not support target ${target}")
841fi
842frags="$frags $target_makefile_frag"
843
844AC_SUBST_FILE(host_makefile_frag)
845AC_SUBST_FILE(target_makefile_frag)
846AC_SUBST(frags)
847
848changequote(,)dnl
849hostfile=`sed -n '
850s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
851' ${host_makefile_frag}`
852
853targetfile=`sed -n '
854s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
855' ${target_makefile_frag}`
856
857# these really aren't orthogonal true/false values of the same condition,
858# but shells are slow enough that I like to reuse the test conditions
859# whenever possible
860if test "${target}" = "${host}"; then
861nativefile=`sed -n '
862s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
863' ${host_makefile_frag}`
864# else
865# GDBserver is only useful in a "native" enviroment
866# configdirs=`echo $configdirs | sed 's/gdbserver//'`
867fi
868changequote([,])
869
96baa820
JM
870SUBDIRS="doc testsuite nlm"
871if test "${enable_multi_ice}" = "yes"; then
872 SUBDIRS="${SUBDIRS} multi-ice"
873fi
874
875AC_SUBST(SUBDIRS)
876
c906108c
SS
877# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
878# (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
879# corresponding links. But we have to remove the xm.h files and tm.h
880# files anyway, e.g. when switching from "configure host" to
881# "configure none".
882
883files=
884links=
885rm -f xm.h
886if test "${hostfile}" != ""; then
887files="${files} config/${gdb_host_cpu}/${hostfile}"
888links="${links} xm.h"
889fi
890rm -f tm.h
891if test "${targetfile}" != ""; then
892files="${files} config/${gdb_target_cpu}/${targetfile}"
893links="${links} tm.h"
894fi
895rm -f nm.h
896if test "${nativefile}" != ""; then
897files="${files} config/${gdb_host_cpu}/${nativefile}"
898links="${links} nm.h"
899else
900# A cross-only configuration.
901files="${files} config/nm-empty.h"
902links="${links} nm.h"
903fi
3fc11d3e
JM
904AC_PROG_LN_S
905# Make it possible to use the GUI without doing a full install
906if test "${enable_gdbtk}" = "yes" ; then
907 if test "$LN_S" = "ln -s" -a ! -f gdbtcl ; then
908 echo linking $srcdir/gdbtk/library to gdbtcl
909 $LN_S $srcdir/gdbtk/library gdbtcl
910 else
911 echo Warning: Unable to link $srcdir/gdbtk/library to gdbtcl. You will need to do a
912 echo " " make install before you are able to run the GUI.
913 fi
914fi
c906108c
SS
915
916AC_LINK_FILES($files, $links)
917
918dnl Check for exe extension set on certain hosts (e.g. Win32)
919AC_EXEEXT
920
921AC_CONFIG_SUBDIRS($configdirs)
922AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
923[
924dnl Autoconf doesn't provide a mechanism for modifying definitions
925dnl provided by makefile fragments.
926dnl
927if test "${nativefile}" = ""; then
928sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
929 < Makefile > Makefile.tem
930mv -f Makefile.tem Makefile
931fi
932
933changequote(,)dnl
934sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
935/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
936/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
937mv -f Makefile.tmp Makefile
938changequote([,])dnl
939
2acceee2 940
c906108c
SS
941case x$CONFIG_HEADERS in
942xconfig.h:config.in)
943echo > stamp-h ;;
944esac
945],
946[
947gdb_host_cpu=$gdb_host_cpu
948gdb_target_cpu=$gdb_target_cpu
949nativefile=$nativefile
950])
951
952exit 0
This page took 0.075507 seconds and 4 git commands to generate.