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