blob: 82a364e8fe443bce753b1e630049abeceab008be [file] [log] [blame]
The Android Open Source Project34d6eab2009-03-03 19:30:45 -08001# Copyright 2006 The Android Open Source Project
2
The Android Open Source Project34d6eab2009-03-03 19:30:45 -08003LOCAL_PATH := $(my-dir)
4include $(CLEAR_VARS)
5
Elliott Hughes15fc6a22014-01-09 10:30:06 -08006strace_version := $(shell grep Version $(LOCAL_PATH)/strace.spec | cut -d " " -f 2)
The Android Open Source Project34d6eab2009-03-03 19:30:45 -08007
Elliott Hughesbb0c2d52014-01-07 17:34:14 -08008LOCAL_SRC_FILES := \
9 bjm.c \
10 block.c \
11 count.c \
12 desc.c \
13 file.c \
14 io.c \
15 ioctl.c \
16 ipc.c \
17 loop.c \
18 mem.c \
19 mtd.c \
20 net.c \
21 pathtrace.c \
22 proc.c \
23 process.c \
24 quota.c \
25 resource.c \
26 signal.c \
27 sock.c \
28 strace.c \
29 stream.c \
30 syscall.c \
31 system.c \
32 term.c \
33 time.c \
34 util.c \
The Android Open Source Project34d6eab2009-03-03 19:30:45 -080035
36LOCAL_SHARED_LIBRARIES :=
37
Elliott Hughes15fc6a22014-01-09 10:30:06 -080038LOCAL_CFLAGS := \
39 -DGETGROUPS_T=gid_t \
40 -DHAVE_ASM_SIGCONTEXT_H=1 \
41 -DHAVE_DECL_PTRACE_EVENT_FORK=1 \
42 -DHAVE_DECL_PTRACE_EVENT_VFORK=1 \
43 -DHAVE_DECL_PTRACE_EVENT_CLONE=1 \
44 -DHAVE_DECL_PTRACE_EVENT_EXEC=1 \
45 -DHAVE_DECL_PTRACE_EVENT_VFORK_DONE=1 \
46 -DHAVE_DECL_PTRACE_EVENT_EXIT=1 \
47 -DHAVE_DECL_PTRACE_GETEVENTMSG=1 \
48 -DHAVE_DECL_PTRACE_GETSIGINFO=1 \
49 -DHAVE_DECL_PTRACE_O_TRACECLONE=1 \
50 -DHAVE_DECL_PTRACE_O_TRACEEXEC=1 \
51 -DHAVE_DECL_PTRACE_O_TRACEEXIT=1 \
52 -DHAVE_DECL_PTRACE_O_TRACEFORK=1 \
53 -DHAVE_DECL_PTRACE_O_TRACESYSGOOD=1 \
54 -DHAVE_DECL_PTRACE_O_TRACEVFORK=1 \
55 -DHAVE_DECL_PTRACE_SETOPTIONS=1 \
56 -UHAVE_DECL_IO_CMD_PWRITE \
57 -UHAVE_DECL_IO_CMD_PWRITEV \
58 -UHAVE_DECL_LO_FLAGS_AUTOCLEAR \
59 -UHAVE_DECL_LO_FLAGS_PARTSCAN \
60 -DHAVE_DECL_SYS_ERRLIST=1 \
61 -DHAVE_FORK=1 \
62 -DHAVE_IF_INDEXTONAME=1 \
63 -DHAVE_INET_NTOP=1 \
64 -DHAVE_LINUX_CAPABILITY_H=1 \
65 -DHAVE_LINUX_ICMP_H=1 \
66 -DHAVE_LINUX_IF_PACKET_H=1 \
67 -DHAVE_LINUX_IN6_H=1 \
68 -DHAVE_LINUX_NETLINK_H=1 \
69 -DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \
70 -DHAVE_LONG_LONG=1 \
71 -DHAVE_NETINET_TCP_H=1 \
72 -DHAVE_NETINET_UDP_H=1 \
73 -DHAVE_POLL_H=1 \
74 -DHAVE_PRCTL=1 \
75 -DHAVE_SENDMSG=1 \
76 -DHAVE_SIGACTION=1 \
77 -DHAVE_SIGINFO_T=1 \
78 -DHAVE_SIG_ATOMIC_T=1 \
79 -DHAVE_STATFS64=1 \
80 -DHAVE_STDBOOL_H=1 \
81 -DHAVE_STRERROR=1 \
82 -DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \
83 -DHAVE_STRUCT_SIGCONTEXT \
84 -DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \
85 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \
86 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
87 -DHAVE_STRUCT_STAT_ST_RDEV=1 \
88 -DHAVE_STRUCT_USER_DESC=1 \
89 -DHAVE_SYS_EPOLL_H=1 \
90 -DHAVE_SYS_IOCTL_H=1 \
91 -DHAVE_SYS_POLL_H=1 \
92 -DHAVE_SYS_REG_H=1 \
93 -DHAVE_SYS_VFS_H=1 \
94 -DMAJOR_IN_SYSMACROS \
95 -DPACKAGE_NAME='"strace"' \
96 -DVERSION='"$(strace_version)"' \
97 -DSIZEOF_LONG_LONG=8 \
98 -DSTDC_HEADERS=1 \
99 -D_LFS64_LARGEFILE=1 \
100
101LOCAL_CFLAGS += -D_GNU_SOURCE=1 -D_POSIX_SOURCE=1
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800102
103# bionic doesn't have fputs_unlocked.
104LOCAL_CFLAGS += -Dfputs_unlocked=fputs
Elliott Hughes15fc6a22014-01-09 10:30:06 -0800105# bionic's LFS64 support is incomplete.
106LOCAL_CFLAGS += -Dfopen64=fopen
107LOCAL_CFLAGS += -Dreaddir64=readdir
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800108# uapi's asm/sigcontext.h doesn't have sigcontext_struct.
109LOCAL_CFLAGS += -Dsigcontext_struct=sigcontext
Jeff Brownf76f96e2012-03-02 16:23:23 -0800110
Elliott Hughes15fc6a22014-01-09 10:30:06 -0800111ifeq ($(TARGET_IS_64_BIT),true)
112 LOCAL_CFLAGS += -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8
113else
114 LOCAL_CFLAGS += -DSIZEOF_LONG=4 -DSIZEOF_RLIM_T=4
115endif
Jeff Brownf76f96e2012-03-02 16:23:23 -0800116
117arch := $(TARGET_ARCH)
Lorenzo Colittia0b125c2009-08-20 15:06:43 -0700118ifeq ($(TARGET_ARCH),arm)
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800119 LOCAL_CFLAGS += -DARM=1
120 LOCAL_CFLAGS += -DHAVE_STAT64=1
121 LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800122else ifeq ($(TARGET_ARCH),mips)
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800123 LOCAL_CFLAGS += -DMIPS=1
124 LOCAL_CFLAGS += -DHAVE_STAT64=1
125 LOCAL_CFLAGS += -DHAVE_ASM_SYSMIPS_H=1
Elliott Hughes15fc6a22014-01-09 10:30:06 -0800126 LOCAL_CFLAGS += -UHAVE_STRUCT___OLD_KERNEL_STAT
Jeff Brownf76f96e2012-03-02 16:23:23 -0800127else ifeq ($(TARGET_ARCH),x86)
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800128 LOCAL_CFLAGS += -DI386=1
129 LOCAL_CFLAGS += -DHAVE_STAT64=1
130 LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
131 arch := i386
132else ifeq ($(TARGET_ARCH),x86_64)
133 LOCAL_CFLAGS += -DX86_64=1
Lorenzo Colittia0b125c2009-08-20 15:06:43 -0700134endif
135
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800136LOCAL_CFLAGS += \
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800137 -Wall \
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800138 -Wno-missing-field-initializers \
139 -Wno-unused-parameter \
140 -Wno-sign-compare \
Jeff Brownf76f96e2012-03-02 16:23:23 -0800141
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800142LOCAL_C_INCLUDES := \
Elliott Hughes15fc6a22014-01-09 10:30:06 -0800143 $(KERNEL_HEADERS) \
144 $(LOCAL_PATH)/linux/$(arch) \
145 $(LOCAL_PATH)/linux
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800146
147LOCAL_MODULE := strace
148
149LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
150
151LOCAL_MODULE_TAGS := debug
152
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800153LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
154
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800155include $(BUILD_EXECUTABLE)