blob: a257c1bef7fed1e055444bbbcf53755c7472df03 [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 \
Elliott Hughesa7f55552014-01-09 16:07:59 -080061 -DHAVE_ELF_H=1 \
Elliott Hughes15fc6a22014-01-09 10:30:06 -080062 -DHAVE_FORK=1 \
63 -DHAVE_IF_INDEXTONAME=1 \
64 -DHAVE_INET_NTOP=1 \
65 -DHAVE_LINUX_CAPABILITY_H=1 \
66 -DHAVE_LINUX_ICMP_H=1 \
67 -DHAVE_LINUX_IF_PACKET_H=1 \
68 -DHAVE_LINUX_IN6_H=1 \
69 -DHAVE_LINUX_NETLINK_H=1 \
70 -DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \
71 -DHAVE_LONG_LONG=1 \
72 -DHAVE_NETINET_TCP_H=1 \
73 -DHAVE_NETINET_UDP_H=1 \
74 -DHAVE_POLL_H=1 \
75 -DHAVE_PRCTL=1 \
76 -DHAVE_SENDMSG=1 \
77 -DHAVE_SIGACTION=1 \
78 -DHAVE_SIGINFO_T=1 \
79 -DHAVE_SIG_ATOMIC_T=1 \
80 -DHAVE_STATFS64=1 \
81 -DHAVE_STDBOOL_H=1 \
82 -DHAVE_STRERROR=1 \
83 -DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \
84 -DHAVE_STRUCT_SIGCONTEXT \
85 -DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \
86 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \
87 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
88 -DHAVE_STRUCT_STAT_ST_RDEV=1 \
89 -DHAVE_STRUCT_USER_DESC=1 \
90 -DHAVE_SYS_EPOLL_H=1 \
91 -DHAVE_SYS_IOCTL_H=1 \
92 -DHAVE_SYS_POLL_H=1 \
93 -DHAVE_SYS_REG_H=1 \
94 -DHAVE_SYS_VFS_H=1 \
95 -DMAJOR_IN_SYSMACROS \
96 -DPACKAGE_NAME='"strace"' \
97 -DVERSION='"$(strace_version)"' \
98 -DSIZEOF_LONG_LONG=8 \
99 -DSTDC_HEADERS=1 \
100 -D_LFS64_LARGEFILE=1 \
101
102LOCAL_CFLAGS += -D_GNU_SOURCE=1 -D_POSIX_SOURCE=1
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800103
104# bionic doesn't have fputs_unlocked.
105LOCAL_CFLAGS += -Dfputs_unlocked=fputs
Elliott Hughes15fc6a22014-01-09 10:30:06 -0800106# bionic's LFS64 support is incomplete.
107LOCAL_CFLAGS += -Dfopen64=fopen
108LOCAL_CFLAGS += -Dreaddir64=readdir
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800109# uapi's asm/sigcontext.h doesn't have sigcontext_struct.
110LOCAL_CFLAGS += -Dsigcontext_struct=sigcontext
Jeff Brownf76f96e2012-03-02 16:23:23 -0800111
Elliott Hughes15fc6a22014-01-09 10:30:06 -0800112ifeq ($(TARGET_IS_64_BIT),true)
113 LOCAL_CFLAGS += -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8
114else
115 LOCAL_CFLAGS += -DSIZEOF_LONG=4 -DSIZEOF_RLIM_T=4
116endif
Jeff Brownf76f96e2012-03-02 16:23:23 -0800117
118arch := $(TARGET_ARCH)
Elliott Hughesa7f55552014-01-09 16:07:59 -0800119ifeq ($(TARGET_ARCH),aarch64)
120 LOCAL_CFLAGS += -DAARCH64=1
121else ifeq ($(TARGET_ARCH),arm)
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800122 LOCAL_CFLAGS += -DARM=1
123 LOCAL_CFLAGS += -DHAVE_STAT64=1
124 LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800125else ifeq ($(TARGET_ARCH),mips)
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800126 LOCAL_CFLAGS += -DMIPS=1
127 LOCAL_CFLAGS += -DHAVE_STAT64=1
128 LOCAL_CFLAGS += -DHAVE_ASM_SYSMIPS_H=1
Elliott Hughesa7f55552014-01-09 16:07:59 -0800129 LOCAL_CFLAGS += -UHAVE_STRUCT___OLD_KERNEL_STAT
Jeff Brownf76f96e2012-03-02 16:23:23 -0800130else ifeq ($(TARGET_ARCH),x86)
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800131 LOCAL_CFLAGS += -DI386=1
132 LOCAL_CFLAGS += -DHAVE_STAT64=1
133 LOCAL_CFLAGS += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
134 arch := i386
135else ifeq ($(TARGET_ARCH),x86_64)
136 LOCAL_CFLAGS += -DX86_64=1
Lorenzo Colittia0b125c2009-08-20 15:06:43 -0700137endif
138
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800139LOCAL_CFLAGS += \
Elliott Hughes10bd42d2014-01-08 16:34:09 -0800140 -Wall \
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800141 -Wno-missing-field-initializers \
142 -Wno-unused-parameter \
143 -Wno-sign-compare \
Jeff Brownf76f96e2012-03-02 16:23:23 -0800144
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800145LOCAL_C_INCLUDES := \
Elliott Hughes15fc6a22014-01-09 10:30:06 -0800146 $(KERNEL_HEADERS) \
147 $(LOCAL_PATH)/linux/$(arch) \
148 $(LOCAL_PATH)/linux
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800149
150LOCAL_MODULE := strace
151
152LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
153
154LOCAL_MODULE_TAGS := debug
155
Elliott Hughesbb0c2d52014-01-07 17:34:14 -0800156LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
157
The Android Open Source Project34d6eab2009-03-03 19:30:45 -0800158include $(BUILD_EXECUTABLE)