configure.ac revision 25caa318eedf38200cd7660320d95bf4662c6c5b
1dnl Process this file with autoconf to create configure. Use autoreconf. 2AC_PREREQ(2.57) 3AC_INIT([strace],[4.6]) 4AC_CONFIG_SRCDIR([strace.c]) 5AC_CONFIG_AUX_DIR([.]) 6AM_CONFIG_HEADER([config.h]) 7AM_INIT_AUTOMAKE([foreign check-news dist-xz no-dist-gzip silent-rules]) 8AM_MAINTAINER_MODE 9AC_CANONICAL_HOST 10 11AC_MSG_CHECKING([for supported operating system]) 12case "$host_os" in 13*linux*) 14 opsys=linux 15 AC_DEFINE([LINUX], 1, [Define for the Linux operating system.]) 16 ;; 17sunos4*) 18 opsys=sunos4 19 AC_DEFINE([SUNOS4], 1, [Define for the SunOS 4.x operating system.]) 20 ;; 21solaris2* | sysv[[45]]* | irix[[56]]*) 22 opsys=svr4 23 AC_DEFINE([SVR4], 1, [Define for the System V release 4 operating 24system or a derivative like Solaris 2.x or Irix 5.x.]) 25 case "$host_os" in 26 sysv4.2uw*) 27 AC_DEFINE(UNIXWARE, 2, [Define for UnixWare systems.]) 28 ;; 29 sysv5*) 30 AC_DEFINE(UNIXWARE, 7, [Define for UnixWare systems.]) 31 ;; 32 esac 33 ;; 34freebsd*) 35 opsys=freebsd 36 AC_DEFINE([FREEBSD], 1, [Define for the FreeBSD operating system.]) 37 ;; 38*) 39 AC_MSG_RESULT([NO!]) 40 AC_MSG_ERROR([operating system $host_os is not supported by strace]) 41 ;; 42esac 43AC_MSG_RESULT($opsys) 44 45AC_MSG_CHECKING([for supported architecture]) 46case "$host_cpu" in 47bfin) 48 arch=bfin 49 AC_DEFINE([BFIN], 1, [Define for the Blackfin architecture.]) 50 ;; 51i[[3456]]86|pentium) 52 arch=i386 53 AC_DEFINE([I386], 1, [Define for the i386 architecture.]) 54 ;; 55ia64) 56 arch=ia64 57 AC_DEFINE([IA64], 1, [Define for the IA64 architecture.]) 58 ;; 59m68k) 60 arch=m68k 61 AC_DEFINE([M68K], 1, [Define for the m68k architecture.]) 62 ;; 63sparc64*) 64 arch=sparc64 65 AC_DEFINE([SPARC64], 1, [Define for the SPARC64 architecture.]) 66 ;; 67sparc*) 68 arch=sparc 69 AC_DEFINE([SPARC], 1, [Define for the SPARC architecture.]) 70 ;; 71mips*) 72 arch=mips 73 AC_DEFINE([MIPS], 1, [Define for the MIPS architecture.]) 74 ;; 75alpha*) 76 arch=alpha 77 AC_DEFINE([ALPHA], 1, [Define for the Alpha architecture.]) 78 ;; 79powerpc*) 80 arch=powerpc 81 AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.]) 82 if test $host_cpu = powerpc64; then 83 AC_DEFINE([POWERPC64], 1, [Define for the PowerPC64 architecture.]) 84 fi 85 ;; 86arm*) 87 arch=arm 88 AC_DEFINE([ARM], 1, [Define for the ARM architecture.]) 89 ;; 90avr32*) 91 arch=avr32 92 AC_DEFINE([AVR32], 1, [Define for the AVR32 architecture.]) 93 ;; 94s390) 95 arch=s390 96 AC_DEFINE([S390], 1, [Define for the S390 architecture.]) 97 ;; 98s390x) 99 arch=s390x 100 AC_DEFINE([S390X], 1, [Define for the S390x architecture.]) 101 ;; 102hppa*|parisc*) 103 arch=hppa 104 AC_DEFINE([HPPA], 1, [Define for the HPPA architecture.]) 105 ;; 106sh64*) 107 arch=sh64 108 AC_DEFINE([SH64], 1, [Define for the SH64 architecture.]) 109 ;; 110sh*) 111 arch=sh 112 AC_DEFINE([SH], 1, [Define for the SH architecture.]) 113 ;; 114x86?64*) 115 arch=x86_64 116 AC_DEFINE([X86_64], 1, [Define for the AMD x86-64 architecture.]) 117 ;; 118cris|crisv10) 119 arch=crisv10 120 AC_DEFINE([CRISV10], 1, [Define for the CRISv10 architecture.]) 121 ;; 122crisv32) 123 arch=crisv32 124 AC_DEFINE([CRISV32], 1, [Define for the CRISv32 architecture.]) 125 ;; 126tile*) 127 arch=tile 128 AC_DEFINE([TILE], 1, [Define for the Tile architecture]) 129 ;; 130microblaze*) 131 arch=microblaze 132 AC_DEFINE([MICROBLAZE], 1, [Define for the MicroBlaze architecture.]) 133 ;; 134*) 135 AC_MSG_RESULT([NO!]) 136 AC_MSG_ERROR([architecture $host_cpu is not supported by strace]) 137 ;; 138esac 139AC_MSG_RESULT($arch) 140 141AC_SUBST(opsys) 142AC_SUBST(arch) 143 144AM_CONDITIONAL([LINUX], [test x$opsys = xlinux]) 145AM_CONDITIONAL([I386], [test x$arch = xi386]) 146AM_CONDITIONAL([X86_64], [test x$arch = xx86_64]) 147AM_CONDITIONAL([SUNOS4], [test x$opsys = xsunos4]) 148AM_CONDITIONAL([SVR4], [test x$opsys = xsvr4]) 149AM_CONDITIONAL([FREEBSD], [test x$opsys = xfreebsd]) 150 151AC_PROG_CC 152AC_GNU_SOURCE 153 154AC_INCLUDEDIR 155 156if test "x$opsys" = "xsunos4" && test "x$arch" = "xsparc" 157then 158 AC_MSG_CHECKING(for valid machine include directory) 159 if test -d "$includedir/sun4" 160 then 161 rm -f machine 162 ln -s $includedir/sun4 machine 163 AC_MSG_RESULT(yes) 164 AC_DEFINE(SUNOS4_KERNEL_ARCH_KLUDGE, 1, [ 165Define if you are have a SPARC with SUNOS4 and your want a version 166of strace that will work on sun4, sun4c and sun4m kernel architectures. 167Only useful if you have a symbolic link from machine to /usr/include/sun4 168in the compilation directory.]) 169 else 170 AC_MSG_RESULT(no) 171 fi 172fi 173 174gl_WARN_ADD([-Wall]) 175gl_WARN_ADD([-Wwrite-strings]) 176if test "x$opsys" = "xsunos4" 177then 178 # SunOS 4.x header files don't declare int functions. 179 gl_WARN_ADD([-Wno-implicit]) 180fi 181AC_SUBST([WARN_CFLAGS]) 182 183AC_PROG_CPP 184AC_PROG_GCC_TRADITIONAL 185AC_PROG_INSTALL 186AC_C_CONST 187AC_C_BIGENDIAN 188AC_HEADER_STDC 189AC_HEADER_STDBOOL 190AC_HEADER_DIRENT 191AC_HEADER_STAT 192AC_CHECK_MEMBERS([struct stat.st_blksize, 193 struct stat.st_blocks, 194 struct stat.st_aclcnt, 195 struct stat.st_flags, 196 struct stat.st_fstype, 197 struct stat.st_gen, 198 struct stat.st_level, 199 struct stat.st_rdev]) 200AC_STAT64 201AC_STATFS64 202 203AC_TYPE_SIGNAL 204AC_TYPE_UID_T 205AC_TYPE_MODE_T 206AC_TYPE_GETGROUPS 207AC_HEADER_MAJOR 208AC_CHECK_TYPES([sig_atomic_t, siginfo_t],,, [#include <signal.h>]) 209AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,, 210[#include <sys/types.h> 211#include <sys/socket.h> 212#include <netinet/in.h>]) 213AC_CHECK_TYPES([long long]) 214AC_LITTLE_ENDIAN_LONG_LONG 215AC_OFF_T_IS_LONG_LONG 216AC_RLIM_T_IS_LONG_LONG 217AC_CHECK_TYPES([struct opthdr],,, [#include <sys/socket.h>]) 218AC_CHECK_TYPES([struct t_opthdr],,, [#include <sys/tiuser.h>]) 219 220if test x$opsys != xlinux; then 221AC_CHECK_LIB(nsl, main) 222fi 223 224AC_CHECK_FUNCS([ \ 225 fork \ 226 getdents \ 227 if_indextoname \ 228 inet_ntop \ 229 mctl \ 230 prctl \ 231 pread \ 232 sendmsg \ 233 sigaction \ 234 strerror \ 235 strsignal \ 236 sys_siglist \ 237 _sys_siglist \ 238]) 239AC_CHECK_HEADERS([ \ 240 inttypes.h \ 241 ioctls.h \ 242 libaio.h \ 243 mqueue.h \ 244 poll.h \ 245 stropts.h \ 246 termio.h \ 247 sys/acl.h \ 248 sys/aio.h \ 249 sys/asynch.h \ 250 sys/conf.h \ 251 sys/door.h \ 252 sys/epoll.h \ 253 sys/filio.h \ 254 sys/ioctl.h \ 255 sys/nscsys.h \ 256 sys/poll.h \ 257 sys/ptrace.h \ 258 sys/reg.h \ 259 sys/stream.h \ 260 sys/sysconfig.h \ 261 sys/tihdr.h \ 262 sys/tiuser.h \ 263 sys/uio.h \ 264 sys/vfs.h \ 265 asm/cachectl.h \ 266 asm/sysmips.h \ 267 linux/capability.h \ 268 linux/ptrace.h \ 269 linux/utsname.h \ 270 netinet/sctp.h \ 271], [], []) 272AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h], 273 [], [], [#include <stddef.h> 274#include <sys/socket.h> 275#include <asm/types.h>]) 276AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include <signal.h>]) 277AC_CHECK_TYPES([struct sigcontext_struct, 278 struct sigcontext],,, [#include <signal.h>]) 279AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,, [#include <netinet/in.h>]) 280 281AC_MP_PROCFS 282AC_POLLABLE_PROCFS 283 284AC_CHECK_MEMBERS([struct msghdr.msg_control],,, [#include <sys/socket.h>]) 285AC_STRUCT_PR_SYSCALL 286 287AC_CHECK_MEMBERS([struct T_conn_res.QUEUE_ptr, 288 struct T_conn_res.ACCEPTOR_id],,, 289[#include <sys/stream.h> 290#include <sys/tihdr.h>]) 291 292AC_CHECK_TYPES([struct __old_kernel_stat],,, [#include <asm/stat.h>]) 293 294AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg],,, 295 [#include <sys/ptrace.h>]) 296 297AC_CHECK_TYPES([struct user_desc],,, [#include <asm/ldt.h>]) 298 299AC_CHECK_MEMBERS([struct dqblk.dqb_curblocks],,, [#include <sys/quota.h>]) 300 301AC_CHECK_MEMBERS([struct sigcontext.sc_hi2],,, [#include <signal.h> 302#ifdef HAVE_ASM_SIGCONTEXT_H 303# include <asm/sigcontext.h> 304#endif]) 305 306 307AC_CHECK_DECLS([sys_errlist]) 308AC_CHECK_DECLS([sys_siglist, _sys_siglist],,, [#include <signal.h>]) 309AC_CHECK_DECLS([ 310 PTRACE_SETOPTIONS, 311 PTRACE_GETEVENTMSG, 312 PTRACE_GETSIGINFO, 313 PTRACE_O_TRACESYSGOOD, 314 PTRACE_O_TRACEFORK, 315 PTRACE_O_TRACEVFORK, 316 PTRACE_O_TRACECLONE, 317 PTRACE_O_TRACEEXEC, 318 PTRACE_O_TRACEEXIT, 319 PTRACE_EVENT_FORK, 320 PTRACE_EVENT_VFORK, 321 PTRACE_EVENT_CLONE, 322 PTRACE_EVENT_EXEC, 323 PTRACE_EVENT_VFORK_DONE, 324 PTRACE_EVENT_EXIT],,, [#include <sys/ptrace.h>]) 325 326AC_CACHE_CHECK([for BLKGETSIZE64], [ac_cv_have_blkgetsize64], 327 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ 328#include <stdlib.h> 329#include <linux/fs.h>], [return !BLKGETSIZE64;])], 330 [ac_cv_have_blkgetsize64=yes], [ac_cv_have_blkgetsize64=no])] 331 if test $ac_cv_have_blkgetsize64 = yes; then 332 AC_DEFINE([HAVE_BLKGETSIZE64], [1], [Define to 1 if you have BLKGETSIZE64.]) 333 fi) 334 335AC_PATH_PROG([PERL], [perl]) 336 337AC_CONFIG_FILES([Makefile tests/Makefile]) 338AC_OUTPUT 339