Elliott Hughes | 858a5c7 | 2014-02-28 15:58:12 -0800 | [diff] [blame] | 1 | # |
| 2 | # Copyright (C) 2006 The Android Open Source Project |
| 3 | # |
| 4 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | # you may not use this file except in compliance with the License. |
| 6 | # You may obtain a copy of the License at |
| 7 | # |
| 8 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | # |
| 10 | # Unless required by applicable law or agreed to in writing, software |
| 11 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | # See the License for the specific language governing permissions and |
| 14 | # limitations under the License. |
| 15 | # |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 16 | |
Elliott Hughes | 858a5c7 | 2014-02-28 15:58:12 -0800 | [diff] [blame] | 17 | LOCAL_PATH := $(call my-dir) |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 18 | |
Elliott Hughes | 4e779b4 | 2014-05-07 09:10:38 -0700 | [diff] [blame] | 19 | # |
| 20 | # To update: |
| 21 | # |
| 22 | |
Elliott Hughes | 60b6d90 | 2014-06-06 22:42:41 -0700 | [diff] [blame] | 23 | # git remote add strace git://git.code.sf.net/p/strace/code |
Elliott Hughes | 4e779b4 | 2014-05-07 09:10:38 -0700 | [diff] [blame] | 24 | # git fetch strace |
| 25 | # git merge strace/master |
| 26 | # mm -j32 |
| 27 | # # (Make any necessary Android.mk changes and test the new strace.) |
Elliott Hughes | 60b6d90 | 2014-06-06 22:42:41 -0700 | [diff] [blame] | 28 | # git push aosp HEAD:master # Push directly, avoiding gerrit. |
| 29 | # git push aosp HEAD:refs/for/master # Push to gerrit. |
Elliott Hughes | 4e779b4 | 2014-05-07 09:10:38 -0700 | [diff] [blame] | 30 | # |
| 31 | # # Now commit any necessary Android.mk changes like normal: |
| 32 | # repo start post-sync . |
| 33 | # git commit -a |
| 34 | # |
| 35 | |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 36 | # ------------------------------------------------------------------------- |
| 37 | |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 38 | include $(CLEAR_VARS) |
| 39 | |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 40 | strace_version := $(shell grep Version $(LOCAL_PATH)/strace.spec | cut -d " " -f 2) |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 41 | |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 42 | LOCAL_SRC_FILES := \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 43 | aio.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 44 | bjm.c \ |
| 45 | block.c \ |
| 46 | count.c \ |
| 47 | desc.c \ |
Elliott Hughes | 1f72dc7 | 2014-09-22 10:04:17 -0700 | [diff] [blame] | 48 | dirent.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 49 | fanotify.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 50 | file.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 51 | inotify.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 52 | io.c \ |
| 53 | ioctl.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 54 | ioprio.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 55 | ipc.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 56 | kexec.c \ |
| 57 | keyctl.c \ |
Elliott Hughes | 5150567 | 2014-04-10 11:06:16 -0700 | [diff] [blame] | 58 | ldt.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 59 | loop.c \ |
| 60 | mem.c \ |
| 61 | mtd.c \ |
| 62 | net.c \ |
| 63 | pathtrace.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 64 | process.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 65 | ptp.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 66 | quota.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 67 | reboot.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 68 | resource.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 69 | scsi.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 70 | signal.c \ |
| 71 | sock.c \ |
Elliott Hughes | 1f72dc7 | 2014-09-22 10:04:17 -0700 | [diff] [blame] | 72 | socketutils.c \ |
| 73 | statfs.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 74 | strace.c \ |
| 75 | stream.c \ |
| 76 | syscall.c \ |
Elliott Hughes | 5a9d3b9 | 2014-10-03 09:50:14 -0700 | [diff] [blame] | 77 | sysinfo.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 78 | system.c \ |
| 79 | term.c \ |
| 80 | time.c \ |
| 81 | util.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 82 | vsprintf.c \ |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 83 | |
| 84 | LOCAL_SHARED_LIBRARIES := |
| 85 | |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 86 | LOCAL_CFLAGS := \ |
| 87 | -DGETGROUPS_T=gid_t \ |
| 88 | -DHAVE_ASM_SIGCONTEXT_H=1 \ |
| 89 | -DHAVE_DECL_PTRACE_EVENT_FORK=1 \ |
| 90 | -DHAVE_DECL_PTRACE_EVENT_VFORK=1 \ |
| 91 | -DHAVE_DECL_PTRACE_EVENT_CLONE=1 \ |
| 92 | -DHAVE_DECL_PTRACE_EVENT_EXEC=1 \ |
| 93 | -DHAVE_DECL_PTRACE_EVENT_VFORK_DONE=1 \ |
| 94 | -DHAVE_DECL_PTRACE_EVENT_EXIT=1 \ |
| 95 | -DHAVE_DECL_PTRACE_GETEVENTMSG=1 \ |
| 96 | -DHAVE_DECL_PTRACE_GETSIGINFO=1 \ |
| 97 | -DHAVE_DECL_PTRACE_O_TRACECLONE=1 \ |
| 98 | -DHAVE_DECL_PTRACE_O_TRACEEXEC=1 \ |
| 99 | -DHAVE_DECL_PTRACE_O_TRACEEXIT=1 \ |
| 100 | -DHAVE_DECL_PTRACE_O_TRACEFORK=1 \ |
| 101 | -DHAVE_DECL_PTRACE_O_TRACESYSGOOD=1 \ |
| 102 | -DHAVE_DECL_PTRACE_O_TRACEVFORK=1 \ |
| 103 | -DHAVE_DECL_PTRACE_SETOPTIONS=1 \ |
| 104 | -UHAVE_DECL_IO_CMD_PWRITE \ |
| 105 | -UHAVE_DECL_IO_CMD_PWRITEV \ |
| 106 | -UHAVE_DECL_LO_FLAGS_AUTOCLEAR \ |
| 107 | -UHAVE_DECL_LO_FLAGS_PARTSCAN \ |
| 108 | -DHAVE_DECL_SYS_ERRLIST=1 \ |
Elliott Hughes | a7f5555 | 2014-01-09 16:07:59 -0800 | [diff] [blame] | 109 | -DHAVE_ELF_H=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 110 | -DHAVE_FORK=1 \ |
| 111 | -DHAVE_IF_INDEXTONAME=1 \ |
| 112 | -DHAVE_INET_NTOP=1 \ |
| 113 | -DHAVE_LINUX_CAPABILITY_H=1 \ |
| 114 | -DHAVE_LINUX_ICMP_H=1 \ |
| 115 | -DHAVE_LINUX_IF_PACKET_H=1 \ |
| 116 | -DHAVE_LINUX_IN6_H=1 \ |
| 117 | -DHAVE_LINUX_NETLINK_H=1 \ |
| 118 | -DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \ |
| 119 | -DHAVE_LONG_LONG=1 \ |
| 120 | -DHAVE_NETINET_TCP_H=1 \ |
| 121 | -DHAVE_NETINET_UDP_H=1 \ |
| 122 | -DHAVE_POLL_H=1 \ |
| 123 | -DHAVE_PRCTL=1 \ |
| 124 | -DHAVE_SENDMSG=1 \ |
| 125 | -DHAVE_SIGACTION=1 \ |
| 126 | -DHAVE_SIGINFO_T=1 \ |
| 127 | -DHAVE_SIG_ATOMIC_T=1 \ |
| 128 | -DHAVE_STATFS64=1 \ |
| 129 | -DHAVE_STDBOOL_H=1 \ |
| 130 | -DHAVE_STRERROR=1 \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 131 | -DHAVE_STRUCT_FLOCK64=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 132 | -DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \ |
Elliott Hughes | 4e779b4 | 2014-05-07 09:10:38 -0700 | [diff] [blame] | 133 | -DHAVE_STRUCT_SIGCONTEXT=1 \ |
| 134 | -DHAVE_STRUCT_SIGEVENT__SIGEV_UN__PAD=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 135 | -DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \ |
| 136 | -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \ |
| 137 | -DHAVE_STRUCT_STAT_ST_BLOCKS=1 \ |
| 138 | -DHAVE_STRUCT_STAT_ST_RDEV=1 \ |
Elliott Hughes | 37be67d | 2014-10-03 09:58:58 -0700 | [diff] [blame] | 139 | -DHAVE_STRUCT_SYSINFO_FREEHIGH=1 \ |
| 140 | -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 \ |
| 141 | -DHAVE_STRUCT_SYSINFO_TOTALHIGH=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 142 | -DHAVE_STRUCT_USER_DESC=1 \ |
| 143 | -DHAVE_SYS_EPOLL_H=1 \ |
| 144 | -DHAVE_SYS_IOCTL_H=1 \ |
| 145 | -DHAVE_SYS_POLL_H=1 \ |
| 146 | -DHAVE_SYS_REG_H=1 \ |
| 147 | -DHAVE_SYS_VFS_H=1 \ |
| 148 | -DMAJOR_IN_SYSMACROS \ |
| 149 | -DPACKAGE_NAME='"strace"' \ |
| 150 | -DVERSION='"$(strace_version)"' \ |
Elliott Hughes | 556f9ae | 2014-03-03 16:08:32 -0800 | [diff] [blame] | 151 | -DSIZEOF_OFF_T=SIZEOF_LONG \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 152 | -DSIZEOF_LONG_LONG=8 \ |
| 153 | -DSTDC_HEADERS=1 \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 154 | -DSTRACE_KNOWS_ONLY_EABI=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 155 | -D_LFS64_LARGEFILE=1 \ |
| 156 | |
| 157 | LOCAL_CFLAGS += -D_GNU_SOURCE=1 -D_POSIX_SOURCE=1 |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 158 | |
Elliott Hughes | 4ce18c8 | 2014-04-09 19:23:30 -0700 | [diff] [blame] | 159 | LOCAL_CFLAGS_32 += -DSIZEOF_LONG=4 -DSIZEOF_RLIM_T=4 -DHAVE_STAT64=1 |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 160 | LOCAL_CFLAGS_64 += -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8 |
Jeff Brown | f76f96e | 2012-03-02 16:23:23 -0800 | [diff] [blame] | 161 | |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 162 | LOCAL_CFLAGS_arm += -DARM=1 |
| 163 | LOCAL_CFLAGS_arm += -DHAVE_STRUCT___OLD_KERNEL_STAT=1 |
| 164 | |
| 165 | LOCAL_CFLAGS_arm64 += -DAARCH64=1 |
| 166 | |
| 167 | LOCAL_CFLAGS_mips += -DMIPS=1 |
| 168 | LOCAL_CFLAGS_mips += -DHAVE_ASM_SYSMIPS_H=1 |
| 169 | |
Raghu Gandham | 5577601 | 2014-08-29 12:20:30 -0700 | [diff] [blame] | 170 | LOCAL_CFLAGS_mips64 += -DMIPS=1 |
| 171 | LOCAL_CFLAGS_mips64 += -DHAVE_ASM_SYSMIPS_H=1 |
| 172 | |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 173 | LOCAL_CFLAGS_x86 += -DI386=1 |
| 174 | LOCAL_CFLAGS_x86 += -DHAVE_STRUCT___OLD_KERNEL_STAT=1 |
| 175 | |
Elliott Hughes | 4ce18c8 | 2014-04-09 19:23:30 -0700 | [diff] [blame] | 176 | LOCAL_CFLAGS_x86_64 += -DX86_64=1 |
Lorenzo Colitti | a0b125c | 2009-08-20 15:06:43 -0700 | [diff] [blame] | 177 | |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 178 | LOCAL_CFLAGS += \ |
Elliott Hughes | 10bd42d | 2014-01-08 16:34:09 -0800 | [diff] [blame] | 179 | -Wall \ |
Elliott Hughes | 1f72dc7 | 2014-09-22 10:04:17 -0700 | [diff] [blame] | 180 | -Wwrite-strings \ |
| 181 | -Wsign-compare \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 182 | -Wno-missing-field-initializers \ |
| 183 | -Wno-unused-parameter \ |
| 184 | -Wno-sign-compare \ |
Jeff Brown | f76f96e | 2012-03-02 16:23:23 -0800 | [diff] [blame] | 185 | |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 186 | LOCAL_C_INCLUDES := \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 187 | $(LOCAL_PATH)/linux |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 188 | |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 189 | LOCAL_C_INCLUDES_arm := $(LOCAL_PATH)/linux/arm |
| 190 | LOCAL_C_INCLUDES_arm64 := $(LOCAL_PATH)/linux/aarch64 |
| 191 | LOCAL_C_INCLUDES_mips := $(LOCAL_PATH)/linux/mips |
Duane Sand | 2cafa72 | 2014-05-20 12:57:09 -0700 | [diff] [blame] | 192 | LOCAL_C_INCLUDES_mips64 := $(LOCAL_PATH)/linux/mips |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 193 | LOCAL_C_INCLUDES_x86 := $(LOCAL_PATH)/linux/i386 |
| 194 | LOCAL_C_INCLUDES_x86_64 := $(LOCAL_PATH)/linux/x86_64 |
| 195 | |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 196 | LOCAL_MODULE := strace |
| 197 | |
| 198 | LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) |
| 199 | |
| 200 | LOCAL_MODULE_TAGS := debug |
| 201 | |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 202 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk |
| 203 | |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 204 | include $(BUILD_EXECUTABLE) |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 205 | |
Elliott Hughes | 858a5c7 | 2014-02-28 15:58:12 -0800 | [diff] [blame] | 206 | |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 207 | # ------------------------------------------------------------------------- |
| 208 | |
| 209 | .PHONY: update-ioctls |
| 210 | update-ioctls: |
| 211 | # Build the generated .h files needed by ioctlsort from the current bionic uapi headers. |
| 212 | cd external/strace; ./linux/ioctlent.sh ../../bionic/libc/kernel/uapi/ |
| 213 | # Build the ioctlsort tool. |
| 214 | ONE_SHOT_MAKEFILE=external/strace/Android.mk make -f build/core/main.mk $(TARGET_OUT_EXECUTABLES)/ioctlsort |
| 215 | # Remove the generated .h files now we've built ioctlsort. |
| 216 | rm external/strace/ioctls.h external/strace/ioctldefs.h |
| 217 | # Run the ioctlsort tool on the target to generate the one file we do want to check in. |
| 218 | adb sync |
| 219 | adb shell ioctlsort | tr -d '\r' > external/strace/linux/ioctlent.h |
| 220 | # Rebuild strace with the new "ioctlent.h". |
| 221 | ONE_SHOT_MAKEFILE=external/strace/Android.mk make -f build/core/main.mk |
| 222 | |
| 223 | # We don't build ioctlsort unless really necessary, because we don't check |
| 224 | # in the temporary files needed to build it. This tool is only necessary |
| 225 | # when updating strace's list of ioctls. |
Elliott Hughes | 16488d5 | 2014-06-06 22:58:11 -0700 | [diff] [blame] | 226 | ifneq (,$(filter $(TARGET_OUT_EXECUTABLES)/ioctlsort,$(MAKECMDGOALS))) |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 227 | include $(CLEAR_VARS) |
| 228 | LOCAL_SRC_FILES := linux/ioctlsort.c |
| 229 | LOCAL_CFLAGS += -include asm/types.h -include linux/ashmem.h |
| 230 | LOCAL_CFLAGS += -Wno-unused-parameter |
| 231 | LOCAL_MODULE := ioctlsort |
| 232 | LOCAL_MODULE_TAGS := optional |
| 233 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk |
| 234 | include $(BUILD_EXECUTABLE) |
| 235 | endif |
| 236 | |
| 237 | # ------------------------------------------------------------------------- |
| 238 | |
Elliott Hughes | 858a5c7 | 2014-02-28 15:58:12 -0800 | [diff] [blame] | 239 | include $(LOCAL_PATH)/test/Android.mk |