blob: 8d35756ed794da92b0ce88234503cdcd56174c57 [file] [log] [blame]
# Copyright 2006 The Android Open Source Project
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
strace_version := $(shell grep Version $(LOCAL_PATH)/strace.spec | cut -d " " -f 2)
LOCAL_SRC_FILES := \
bjm.c \
block.c \
count.c \
desc.c \
file.c \
io.c \
ioctl.c \
ipc.c \
loop.c \
mem.c \
mtd.c \
net.c \
pathtrace.c \
proc.c \
process.c \
quota.c \
resource.c \
signal.c \
sock.c \
strace.c \
stream.c \
syscall.c \
system.c \
term.c \
time.c \
util.c \
LOCAL_SHARED_LIBRARIES :=
LOCAL_CFLAGS := \
-DGETGROUPS_T=gid_t \
-DHAVE_ASM_SIGCONTEXT_H=1 \
-DHAVE_DECL_PTRACE_EVENT_FORK=1 \
-DHAVE_DECL_PTRACE_EVENT_VFORK=1 \
-DHAVE_DECL_PTRACE_EVENT_CLONE=1 \
-DHAVE_DECL_PTRACE_EVENT_EXEC=1 \
-DHAVE_DECL_PTRACE_EVENT_VFORK_DONE=1 \
-DHAVE_DECL_PTRACE_EVENT_EXIT=1 \
-DHAVE_DECL_PTRACE_GETEVENTMSG=1 \
-DHAVE_DECL_PTRACE_GETSIGINFO=1 \
-DHAVE_DECL_PTRACE_O_TRACECLONE=1 \
-DHAVE_DECL_PTRACE_O_TRACEEXEC=1 \
-DHAVE_DECL_PTRACE_O_TRACEEXIT=1 \
-DHAVE_DECL_PTRACE_O_TRACEFORK=1 \
-DHAVE_DECL_PTRACE_O_TRACESYSGOOD=1 \
-DHAVE_DECL_PTRACE_O_TRACEVFORK=1 \
-DHAVE_DECL_PTRACE_SETOPTIONS=1 \
-UHAVE_DECL_IO_CMD_PWRITE \
-UHAVE_DECL_IO_CMD_PWRITEV \
-UHAVE_DECL_LO_FLAGS_AUTOCLEAR \
-UHAVE_DECL_LO_FLAGS_PARTSCAN \
-DHAVE_DECL_SYS_ERRLIST=1 \
-DHAVE_ELF_H=1 \
-DHAVE_FORK=1 \
-DHAVE_IF_INDEXTONAME=1 \
-DHAVE_INET_NTOP=1 \
-DHAVE_LINUX_CAPABILITY_H=1 \
-DHAVE_LINUX_ICMP_H=1 \
-DHAVE_LINUX_IF_PACKET_H=1 \
-DHAVE_LINUX_IN6_H=1 \
-DHAVE_LINUX_NETLINK_H=1 \
-DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \
-DHAVE_LONG_LONG=1 \
-DHAVE_NETINET_TCP_H=1 \
-DHAVE_NETINET_UDP_H=1 \
-DHAVE_POLL_H=1 \
-DHAVE_PRCTL=1 \
-DHAVE_SENDMSG=1 \
-DHAVE_SIGACTION=1 \
-DHAVE_SIGINFO_T=1 \
-DHAVE_SIG_ATOMIC_T=1 \
-DHAVE_STATFS64=1 \
-DHAVE_STDBOOL_H=1 \
-DHAVE_STRERROR=1 \
-DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \
-DHAVE_STRUCT_SIGCONTEXT \
-DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \
-DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \
-DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
-DHAVE_STRUCT_STAT_ST_RDEV=1 \
-DHAVE_STRUCT_USER_DESC=1 \
-DHAVE_SYS_EPOLL_H=1 \
-DHAVE_SYS_IOCTL_H=1 \
-DHAVE_SYS_POLL_H=1 \
-DHAVE_SYS_REG_H=1 \
-DHAVE_SYS_VFS_H=1 \
-DMAJOR_IN_SYSMACROS \
-DPACKAGE_NAME='"strace"' \
-DVERSION='"$(strace_version)"' \
-DSIZEOF_LONG_LONG=8 \
-DSTDC_HEADERS=1 \
-D_LFS64_LARGEFILE=1 \
LOCAL_CFLAGS += -D_GNU_SOURCE=1 -D_POSIX_SOURCE=1
# bionic doesn't have fputs_unlocked.
LOCAL_CFLAGS += -Dfputs_unlocked=fputs
# bionic's LFS64 support is incomplete.
LOCAL_CFLAGS += -Dfopen64=fopen
LOCAL_CFLAGS += -Dreaddir64=readdir
# uapi's asm/sigcontext.h doesn't have sigcontext_struct.
LOCAL_CFLAGS += -Dsigcontext_struct=sigcontext
ifeq ($(TARGET_IS_64_BIT),true)
LOCAL_CFLAGS += -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8
else
LOCAL_CFLAGS += -DSIZEOF_LONG=4 -DSIZEOF_RLIM_T=4
endif
arch := $(TARGET_ARCH)
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -DARM=1
LOCAL_CFLAGS += -DHAVE_STAT64=1
LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
else ($(TARGET_ARCH),arm64)
LOCAL_CFLAGS += -DAARCH64=1
arch := aarch64
else ifeq ($(TARGET_ARCH),mips)
LOCAL_CFLAGS += -DMIPS=1
LOCAL_CFLAGS += -DHAVE_STAT64=1
LOCAL_CFLAGS += -DHAVE_ASM_SYSMIPS_H=1
LOCAL_CFLAGS += -UHAVE_STRUCT___OLD_KERNEL_STAT
else ifeq ($(TARGET_ARCH),x86)
LOCAL_CFLAGS += -DI386=1
LOCAL_CFLAGS += -DHAVE_STAT64=1
LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
arch := i386
else ifeq ($(TARGET_ARCH),x86_64)
LOCAL_CFLAGS += -DX86_64=1
endif
LOCAL_CFLAGS += \
-Wall \
-Wno-missing-field-initializers \
-Wno-unused-parameter \
-Wno-sign-compare \
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/linux/$(arch) \
$(LOCAL_PATH)/linux
LOCAL_MODULE := strace
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := debug
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
include $(BUILD_EXECUTABLE)