OSDN Git Service

ChangeLog:
[pf3gnuchains/pf3gnuchains3x.git] / gdb / gdbserver / configure.ac
1 dnl Autoconf configure script for GDB server.
2 dnl Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006
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 3 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, see <http://www.gnu.org/licenses/>.
19
20 dnl Process this file with autoconf to produce a configure script.
21
22 AC_PREREQ(2.59)dnl
23
24 AC_INIT(server.c)
25 AC_CONFIG_HEADER(config.h:config.in)
26
27 AC_PROG_CC
28 AC_GNU_SOURCE
29
30 AC_CANONICAL_SYSTEM
31
32 AC_PROG_INSTALL
33
34 AC_ARG_PROGRAM
35
36 AC_HEADER_STDC
37
38 AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
39                  proc_service.h sys/procfs.h thread_db.h linux/elf.h dnl
40                  stdlib.h unistd.h dnl
41                  errno.h fcntl.h signal.h sys/file.h malloc.h dnl
42                  sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
43                  netinet/tcp.h arpa/inet.h sys/wait.h)
44 AC_CHECK_FUNCS(pread pwrite pread64)
45
46 have_errno=no
47 AC_MSG_CHECKING(for errno)
48 AC_TRY_LINK([
49 #if HAVE_ERRNO_H
50 #include <errno.h>
51 #endif], [static int x; x = errno;],
52   [AC_MSG_RESULT(yes - in errno.h); AC_DEFINE(HAVE_ERRNO, 1, [Define if errno is available]) have_errno=yes])
53 if test $have_errno = no; then
54 AC_TRY_LINK([
55 #if HAVE_ERRNO_H
56 #include <errno.h>
57 #endif], [extern int errno; static int x; x = errno;],
58   [AC_MSG_RESULT(yes - must define); AC_DEFINE(HAVE_ERRNO, 1, [Define if errno is available]) AC_DEFINE(MUST_DEFINE_ERRNO, 1, [Checking if errno must be defined])],
59   [AC_MSG_RESULT(no)])
60 fi
61
62 AC_CHECK_DECLS([strerror, perror])
63
64 AC_CHECK_TYPES(socklen_t, [], [],
65 [#include <sys/types.h>
66 #include <sys/socket.h>
67 ])
68
69 . ${srcdir}/configure.srv
70
71 if test "${srv_mingwce}" = "yes"; then
72   LIBS="$LIBS -lws2"
73 elif test "${srv_mingw}" = "yes"; then
74   LIBS="$LIBS -lwsock32"
75 fi
76
77 if test "${srv_mingw}" = "yes"; then
78   AC_DEFINE(USE_WIN32API, 1,
79             [Define if we should use the Windows API, instead of the
80              POSIX API.  On Windows, we use the Windows API when
81              building for MinGW, but the POSIX API when building
82              for Cygwin.])
83 fi
84
85 if test "${srv_linux_usrregs}" = "yes"; then
86   AC_DEFINE(HAVE_LINUX_USRREGS, 1,
87             [Define if the target supports PTRACE_PEEKUSR for register ]
88             [access.])
89 fi
90
91 if test "${srv_linux_regsets}" = "yes"; then
92   AC_DEFINE(HAVE_LINUX_REGSETS, 1,
93             [Define if the target supports register sets.])
94
95   AC_MSG_CHECKING(for PTRACE_GETREGS)
96   AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getregs,
97   [AC_TRY_COMPILE([#include <sys/ptrace.h>],
98                   [PTRACE_GETREGS;],
99                   [gdbsrv_cv_have_ptrace_getregs=yes],
100                   [gdbsrv_cv_have_ptrace_getregs=no])])
101   AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getregs)
102   if test "${gdbsrv_cv_have_ptrace_getregs}" = "yes"; then
103     AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
104               [Define if the target supports PTRACE_GETREGS for register ]
105               [access.])
106   fi
107
108   AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
109   AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getfpxregs,
110   [AC_TRY_COMPILE([#include <sys/ptrace.h>],
111                   [PTRACE_GETFPXREGS;],
112                   [gdbsrv_cv_have_ptrace_getfpxregs=yes],
113                   [gdbsrv_cv_have_ptrace_getfpxregs=no])])
114   AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getfpxregs)
115   if test "${gdbsrv_cv_have_ptrace_getfpxregs}" = "yes"; then
116     AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
117               [Define if the target supports PTRACE_GETFPXREGS for extended ]
118               [register access.])
119   fi
120 fi
121
122 if test "$ac_cv_header_sys_procfs_h" = yes; then
123   BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
124   BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
125   BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
126   BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
127 fi
128
129 srv_thread_depfiles=
130 srv_libs=
131 USE_THREAD_DB=
132
133 if test "$srv_linux_thread_db" = "yes"; then
134   SRV_CHECK_THREAD_DB
135   if test "$srv_cv_thread_db" = no; then
136     AC_WARN([Could not find libthread_db.])
137     AC_WARN([Disabling thread support in gdbserver.])
138     srv_linux_thread_db=no
139   else
140     srv_libs="$srv_cv_thread_db"
141     SRV_CHECK_TLS_GET_ADDR
142   fi
143   old_LDFLAGS="$LDFLAGS"
144   LDFLAGS="$LDFLAGS -rdynamic"
145   AC_TRY_LINK([], [], [RDYNAMIC=-rdynamic], [RDYNAMIC=])
146   AC_SUBST(RDYNAMIC)
147   LDFLAGS="$old_LDFLAGS"
148 fi
149
150 if test "$srv_linux_thread_db" = "yes"; then
151   srv_thread_depfiles="thread-db.o proc-service.o"
152   USE_THREAD_DB="-DUSE_THREAD_DB"
153   AC_CACHE_CHECK([for TD_VERSION], gdbsrv_cv_have_td_version,
154   [AC_TRY_COMPILE([#include <thread_db.h>], [TD_VERSION;],
155                   [gdbsrv_cv_have_td_version=yes],
156                   [gdbsrv_cv_have_td_version=no])])
157   if test $gdbsrv_cv_have_td_version = yes; then
158     AC_DEFINE(HAVE_TD_VERSION, 1, [Define if TD_VERSION is available.])
159   fi
160
161   if test "$srv_cv_tls_get_addr" = yes; then
162     AC_DEFINE(HAVE_TD_THR_TLS_GET_ADDR, 1, [Define if td_thr_tls_get_addr is available.])
163   fi
164 fi
165
166 if test "$srv_xmlfiles" != ""; then
167   srv_xmlbuiltin="xml-builtin.o"
168   AC_DEFINE(USE_XML, 1, [Define if an XML target description is available.])
169
170   tmp_xmlfiles=$srv_xmlfiles
171   srv_xmlfiles=""
172   for f in $tmp_xmlfiles; do
173     srv_xmlfiles="$srv_xmlfiles \$(XML_DIR)/$f"
174   done
175 fi
176
177 GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
178 GDBSERVER_LIBS="$srv_libs"
179
180 AC_SUBST(GDBSERVER_DEPFILES)
181 AC_SUBST(GDBSERVER_LIBS)
182 AC_SUBST(USE_THREAD_DB)
183 AC_SUBST(srv_xmlbuiltin)
184 AC_SUBST(srv_xmlfiles)
185
186 AC_OUTPUT(Makefile,
187 [case x$CONFIG_HEADERS in
188 xconfig.h:config.in)
189 echo > stamp-h ;;
190 esac
191 ])