| AC_INIT(strace.c) |
| AC_CANONICAL_SYSTEM() |
| AC_MSG_CHECKING(for supported operating system) |
| |
| case "$host_os" in |
| linux*) |
| opsys=linux |
| ;; |
| sunos4*) |
| opsys=sunos4 |
| ;; |
| solaris2*) |
| opsys=svr4 |
| ;; |
| sysv4*) |
| opsys=svr4 |
| ;; |
| sysv5*) |
| opsys=svr4 |
| ;; |
| irix[[56]]*) |
| opsys=svr4 |
| ;; |
| freebsd*) |
| opsys=freebsd |
| ;; |
| *) |
| AC_MSG_ERROR(this operating system is not yet supported by strace) |
| ;; |
| esac |
| AC_MSG_RESULT($opsys) |
| |
| # Autoheader trick. Heh, heh. |
| opsys_list=' |
| @@@syms="$syms LINUX SUNOS4 SVR4 FREEBSD"@@@ |
| ' |
| |
| AC_MSG_CHECKING(for supported architecture) |
| case "$target_cpu" in |
| i[[3456]]86|pentium) |
| arch=i386 |
| ;; |
| ia64) |
| arch=ia64 |
| ;; |
| m68k) |
| arch=m68k |
| ;; |
| sparc*) |
| arch=sparc |
| ;; |
| mips*) |
| arch=mips |
| ;; |
| alpha*) |
| arch=alpha |
| ;; |
| ppc|powerpc) |
| arch=powerpc |
| ;; |
| arm) |
| arch=arm |
| ;; |
| s390) |
| arch=s390 |
| ;; |
| s390x) |
| arch=s390x |
| ;; |
| hppa*|parisc*) |
| arch=hppa |
| ;; |
| sh) |
| arch=sh |
| ;; |
| x86?64*) |
| arch=x86_64 |
| ;; |
| *) |
| AC_MSG_ERROR(this architecture is not yet supported by strace) |
| ;; |
| esac |
| AC_MSG_RESULT($arch) |
| |
| # Autoheader trick. Heh, heh. |
| arch_list=' |
| @@@syms="$syms I386 IA64 M68K SPARC MIPS ALPHA ARM POWERPC S390 S390X HPPA SH X86_64"@@@ |
| ' |
| |
| osarch="$opsys" |
| if test -d "$srcdir/$opsys/$arch"; then |
| osarch="$opsys/$arch" |
| fi |
| |
| OPSYS=`echo $opsys | tr '[[a-z]]' '[[A-Z]]'` |
| ARCH=`echo $arch | tr '[[a-z]]' '[[A-Z]]'` |
| |
| CFLAGS="-D_GNU_SOURCE $CFLAGS" |
| AC_CONFIG_HEADER(config.h) |
| AC_SUBST(opsys) |
| AC_DEFINE_UNQUOTED($OPSYS) |
| case "$host_os" in |
| sysv4.2uw*) |
| AC_DEFINE(UNIXWARE, 2) |
| ;; |
| sysv5*) |
| AC_DEFINE(UNIXWARE, 7) |
| ;; |
| esac |
| AC_SUBST(arch) |
| AC_DEFINE_UNQUOTED($ARCH) |
| AC_SUBST(osarch) |
| AC_PROG_CC |
| AC_PROG_HOSTCC($host_alias $host) |
| AC_MP_PROCFS |
| AC_POLLABLE_PROCFS |
| AC_STRUCT_PR_SYSCALL |
| AC_STRUCT_MSG_CONTROL |
| AC_INCLUDEDIR |
| if test "x$OPSYS" = "xSUNOS4" && test "x$ARCH" = "xSPARC" |
| then |
| AC_MSG_CHECKING(for valid machine include directory) |
| if test -d "$includedir/sun4" |
| then |
| rm -f machine |
| ln -s $includedir/sun4 machine |
| AC_MSG_RESULT(yes) |
| AC_DEFINE(SUNOS4_KERNEL_ARCH_KLUDGE) |
| else |
| AC_MSG_RESULT(no) |
| fi |
| fi |
| AC_WARNFLAGS |
| if test "x$OPSYS" = "xSUNOS4" |
| then |
| if test -n "$GCC" |
| then |
| # SunOS 4.x header files don't declare int functions. |
| WARNFLAGS="$WARNFLAGS -Wno-implicit" |
| fi |
| fi |
| AC_PROG_CPP |
| AC_PROG_GCC_TRADITIONAL |
| AC_PROG_INSTALL |
| AC_C_CONST |
| AC_HEADER_STDC |
| AC_HEADER_DIRENT |
| AC_TYPE_SIGNAL |
| AC_STRUCT_ST_BLKSIZE |
| AC_STRUCT_ST_BLOCKS |
| AC_STRUCT_ST_RDEV |
| AC_HEADER_STAT |
| AC_TYPE_UID_T |
| AC_TYPE_MODE_T |
| AC_TYPE_GETGROUPS |
| AC_HEADER_MAJOR |
| AC_SIG_ATOMIC_T |
| AC_SIGINFO_T |
| AC_STAT64 |
| AC_SIN6_SCOPE_ID |
| AC_LONG_LONG |
| AC_LITTLE_ENDIAN_LONG_LONG |
| AC_OFF_T_IS_LONG_LONG |
| AC_RLIM_T_IS_LONG_LONG |
| AC_ST_FLAGS |
| AC_ST_ACLCNT |
| AC_ST_LEVEL |
| AC_ST_FSTYPE |
| AC_ST_GEN |
| AC_STRUCT_OPTHDR |
| AC_STRUCT_T_OPTHDR |
| if test x$OPSYS != xLINUX; then |
| AC_CHECK_LIB(nsl, main) |
| fi |
| AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl prctl sendmsg inet_ntop if_indextoname) |
| AC_CHECK_HEADERS(sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h linux/icmp.h linux/in6.h sys/uio.h sys/aio.h linux/netlink.h linux/if_packet.h poll.h sys/poll.h sys/vfs.h netinet/tcp.h netinet/udp.h asm/sysmips.h linux/utsname.h sys/nscsys.h) |
| AC_DECL_SYS_ERRLIST |
| AC_DECL_SYS_SIGLIST |
| AC_DECL__SYS_SIGLIST |
| if test ! -d $osarch; then |
| mkdir -p $osarch |
| fi |
| AC_OUTPUT(Makefile $osarch/Makefile) |