blob: 76829981aa6fdfe997cbd7370bded635f08360ac [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 Hughesbb0c2d52014-01-07 17:34:14 -08006strace_VERSION = 4.7
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
Jeff Brownf76f96e2012-03-02 16:23:23 -080038LOCAL_CFLAGS := -DLINUX=1 \
39 -DGETGROUPS_T=gid_t \
40 -DHAVE_ASM_SIGCONTEXT_H=1 \
Elliott Hughesbb0c2d52014-01-07 17:34:14 -080041 -DHAVE_DECL_PTRACE_O_TRACECLONE=1 \
42 -DHAVE_DECL_PTRACE_O_TRACEEXEC=1 \
43 -DHAVE_DECL_PTRACE_O_TRACEEXIT=1 \
44 -DHAVE_DECL_PTRACE_O_TRACEFORK=1 \
45 -DHAVE_DECL_PTRACE_O_TRACESYSGOOD=1 \
46 -DHAVE_DECL_PTRACE_O_TRACEVFORK=1 \
Jeff Brownf76f96e2012-03-02 16:23:23 -080047 -DHAVE_DECL_SYS_ERRLIST=1 \
48 -DHAVE_DECL_SYS_SIGLIST=1 \
49 -DHAVE_DECL_____PTRACE_EVENT_CLONE=1 \
50 -DHAVE_DECL_____PTRACE_EVENT_FORK=1 \
51 -DHAVE_DECL_____PTRACE_EVENT_VFORK=1 \
52 -DHAVE_DECL_____PTRACE_GETEVENTMSG=1 \
53 -DHAVE_DECL_____PTRACE_GETSIGINFO=1 \
54 -DHAVE_DECL_____PTRACE_O_TRACECLONE=1 \
55 -DHAVE_DECL_____PTRACE_O_TRACEFORK=1 \
56 -DHAVE_DECL_____PTRACE_O_TRACEVFORK=1 \
57 -DHAVE_DECL_____PTRACE_SETOPTIONS=1 \
58 -DHAVE_DECL_____PTRACE_EVENT_CLONE=1 \
59 -DHAVE_DECL_____PTRACE_EVENT_CLONE=1 \
60 -DHAVE_DIRENT_H=1 \
61 -DHAVE_FORK=1 \
62 -DHAVE_GETDENTS=1 \
63 -DHAVE_IF_INDEXTONAME=1 \
64 -DHAVE_INET_NTOP=1 \
65 -DHAVE_INTTYPES_H=1 \
66 -DHAVE_LINUX_CAPABILITY_H=1 \
67 -DHAVE_LINUX_ICMP_H=1 \
68 -DHAVE_LINUX_IF_PACKET_H=1 \
69 -DHAVE_LINUX_IN6_H=1 \
70 -DHAVE_LINUX_NETLINK_H=1 \
71 -DHAVE_LINUX_UTSNAME_H=1 \
Elliott Hughesbb0c2d52014-01-07 17:34:14 -080072 -DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \
Jeff Brownf76f96e2012-03-02 16:23:23 -080073 -DHAVE_LONG_LONG=1 \
74 -DHAVE_LONG_LONG_RLIM_T=1 \
75 -DHAVE_MEMORY_H=1 \
76 -DHAVE_NETINET_TCP_H=1 \
77 -DHAVE_NETINET_UDP_H=1 \
78 -DHAVE_POLL_H=1 \
79 -DHAVE_PRCTL=1 \
80 -DHAVE_PREAD=1 \
81 -DHAVE_SENDMSG=1 \
82 -DHAVE_SIGACTION=1 \
83 -DHAVE_SIGINFO_T=1 \
84 -DHAVE_SIG_ATOMIC_T=1 \
85 -DHAVE_STAT64=1 \
86 -DHAVE_STATFS64=1 \
87 -DHAVE_STDBOOL_H=1 \
88 -DHAVE_STDINT_H=1 \
89 -DHAVE_STDLIB_H=1 \
90 -DHAVE_STRERROR=1 \
91 -DHAVE_STRINGS_H=1 \
92 -DHAVE_STRING_H=1 \
93 -DHAVE_STRSIGNAL=1 \
94 -DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \
95 -DHAVE_STRUCT_SIGCONTEXT \
96 -DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \
97 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \
98 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
99 -DHAVE_STRUCT_STAT_ST_RDEV=1 \
100 -DHAVE_STRUCT_USER_DESC=1 \
Jeff Brownf76f96e2012-03-02 16:23:23 -0800101 -DHAVE_SYS_EPOLL_H=1 \
102 -DHAVE_SYS_IOCTL_H=1 \
103 -DHAVE_SYS_POLL_H=1 \
104 -DHAVE_SYS_PTRACE_H=1 \
105 -DHAVE_SYS_SIGLIST=1 \
106 -DHAVE_SYS_STAT_H=1 \
107 -DHAVE_SYS_TYPES_H=1 \
108 -DHAVE_SYS_VFS_H=1 \
109 -DHAVE_UNISTD_H=1 \
110 -DLINUX=1 \
111 -DMAJOR_IN_SYSMACROS \
112 -DPACKAGE=strace \
113 -DPACKAGE_BUGREPORT= \
114 -DPACKAGE_NAME='"strace"' \
115 -DPACKAGE_STRING='"strace $(strace_VERSION)"' \
116 -DPACKAGE_TARNAME='"strace"' \
117 -DPACKAGE_VERSION='"$(strace_VERSION)"' \
118 -DRETSIGTYPE=void \
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800119 -DSIZEOF_RLIM_T=8 \
Jeff Brownf76f96e2012-03-02 16:23:23 -0800120 -DSTDC_HEADER=1 \
121 -DVERSION='"$(strace_VERSION)"' \
122 -D_GNU_SOURCE=1 \
123 -D_POSIX_SOURCE=1 \
124 -Dfopen64=fopen \
125 -Dd_fileno=d_ino \
126 -D_LFS64_LARGEFILE=1 \
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800127 -D__KERNEL__=1 \
128
129# bionic doesn't have fputs_unlocked.
130LOCAL_CFLAGS += -Dfputs_unlocked=fputs
131# uapi's asm/sigcontext.h doesn't have sigcontext_struct.
132LOCAL_CFLAGS += -Dsigcontext_struct=sigcontext
Jeff Brownf76f96e2012-03-02 16:23:23 -0800133
134#These are defined in AndroidConfig.h so we omit them above.
135# -DHAVE_SYS_UIO_H=1 \
136# -DHAVE_TERMIO_H=1 \
137
138
139arch := $(TARGET_ARCH)
Lorenzo Colittia0b125c2009-08-20 15:06:43 -0700140ifeq ($(TARGET_ARCH),arm)
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800141 LOCAL_CFLAGS += -DARM=1
Duane Sandf20b06e2012-05-24 14:02:25 -0700142 LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800143else ifeq ($(TARGET_ARCH),mips)
144 LOCAL_CFLAGS += -DMIPS=1
145 LOCAL_CFLAGS += -DHAVE_ASM_SYSMIPS_H=1
146# Mips does not use STRUCT__OLD_KERNEL_STAT type
Jeff Brownf76f96e2012-03-02 16:23:23 -0800147else ifeq ($(TARGET_ARCH),x86)
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800148 LOCAL_CFLAGS += -DI386=1
Duane Sandf20b06e2012-05-24 14:02:25 -0700149 LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
Jeff Brownf76f96e2012-03-02 16:23:23 -0800150 arch := i386
Lorenzo Colittia0b125c2009-08-20 15:06:43 -0700151endif
152
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800153LOCAL_CFLAGS += \
154 -Wno-missing-field-initializers \
155 -Wno-unused-parameter \
156 -Wno-sign-compare \
Jeff Brownf76f96e2012-03-02 16:23:23 -0800157
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800158LOCAL_C_INCLUDES := \
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800159 $(KERNEL_HEADERS) \
Chris Dearman2f063cf2013-10-05 00:35:27 -0700160 $(LOCAL_PATH)/linux/$(arch) \
161 $(LOCAL_PATH)/linux
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800162
163LOCAL_MODULE := strace
164
165LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
166
167LOCAL_MODULE_TAGS := debug
168
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800169LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
170
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800171include $(BUILD_EXECUTABLE)