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