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