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