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