OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [configure.in] - Blame information for rev 1765

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.