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