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