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 | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 48 | fanotify.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 49 | file.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 50 | inotify.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 51 | io.c \ |
| 52 | ioctl.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 53 | ioprio.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 54 | ipc.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 55 | kexec.c \ |
| 56 | keyctl.c \ |
Elliott Hughes | 5150567 | 2014-04-10 11:06:16 -0700 | [diff] [blame] | 57 | ldt.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 58 | loop.c \ |
| 59 | mem.c \ |
| 60 | mtd.c \ |
| 61 | net.c \ |
| 62 | pathtrace.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 63 | process.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 64 | ptp.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 65 | quota.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 66 | reboot.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 67 | resource.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 68 | scsi.c \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 69 | signal.c \ |
| 70 | sock.c \ |
| 71 | strace.c \ |
| 72 | stream.c \ |
| 73 | syscall.c \ |
| 74 | system.c \ |
| 75 | term.c \ |
| 76 | time.c \ |
| 77 | util.c \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 78 | vsprintf.c \ |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 79 | |
| 80 | LOCAL_SHARED_LIBRARIES := |
| 81 | |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 82 | LOCAL_CFLAGS := \ |
| 83 | -DGETGROUPS_T=gid_t \ |
| 84 | -DHAVE_ASM_SIGCONTEXT_H=1 \ |
| 85 | -DHAVE_DECL_PTRACE_EVENT_FORK=1 \ |
| 86 | -DHAVE_DECL_PTRACE_EVENT_VFORK=1 \ |
| 87 | -DHAVE_DECL_PTRACE_EVENT_CLONE=1 \ |
| 88 | -DHAVE_DECL_PTRACE_EVENT_EXEC=1 \ |
| 89 | -DHAVE_DECL_PTRACE_EVENT_VFORK_DONE=1 \ |
| 90 | -DHAVE_DECL_PTRACE_EVENT_EXIT=1 \ |
| 91 | -DHAVE_DECL_PTRACE_GETEVENTMSG=1 \ |
| 92 | -DHAVE_DECL_PTRACE_GETSIGINFO=1 \ |
| 93 | -DHAVE_DECL_PTRACE_O_TRACECLONE=1 \ |
| 94 | -DHAVE_DECL_PTRACE_O_TRACEEXEC=1 \ |
| 95 | -DHAVE_DECL_PTRACE_O_TRACEEXIT=1 \ |
| 96 | -DHAVE_DECL_PTRACE_O_TRACEFORK=1 \ |
| 97 | -DHAVE_DECL_PTRACE_O_TRACESYSGOOD=1 \ |
| 98 | -DHAVE_DECL_PTRACE_O_TRACEVFORK=1 \ |
| 99 | -DHAVE_DECL_PTRACE_SETOPTIONS=1 \ |
| 100 | -UHAVE_DECL_IO_CMD_PWRITE \ |
| 101 | -UHAVE_DECL_IO_CMD_PWRITEV \ |
| 102 | -UHAVE_DECL_LO_FLAGS_AUTOCLEAR \ |
| 103 | -UHAVE_DECL_LO_FLAGS_PARTSCAN \ |
| 104 | -DHAVE_DECL_SYS_ERRLIST=1 \ |
Elliott Hughes | a7f5555 | 2014-01-09 16:07:59 -0800 | [diff] [blame] | 105 | -DHAVE_ELF_H=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 106 | -DHAVE_FORK=1 \ |
| 107 | -DHAVE_IF_INDEXTONAME=1 \ |
| 108 | -DHAVE_INET_NTOP=1 \ |
| 109 | -DHAVE_LINUX_CAPABILITY_H=1 \ |
| 110 | -DHAVE_LINUX_ICMP_H=1 \ |
| 111 | -DHAVE_LINUX_IF_PACKET_H=1 \ |
| 112 | -DHAVE_LINUX_IN6_H=1 \ |
| 113 | -DHAVE_LINUX_NETLINK_H=1 \ |
| 114 | -DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \ |
| 115 | -DHAVE_LONG_LONG=1 \ |
| 116 | -DHAVE_NETINET_TCP_H=1 \ |
| 117 | -DHAVE_NETINET_UDP_H=1 \ |
| 118 | -DHAVE_POLL_H=1 \ |
| 119 | -DHAVE_PRCTL=1 \ |
| 120 | -DHAVE_SENDMSG=1 \ |
| 121 | -DHAVE_SIGACTION=1 \ |
| 122 | -DHAVE_SIGINFO_T=1 \ |
| 123 | -DHAVE_SIG_ATOMIC_T=1 \ |
| 124 | -DHAVE_STATFS64=1 \ |
| 125 | -DHAVE_STDBOOL_H=1 \ |
| 126 | -DHAVE_STRERROR=1 \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 127 | -DHAVE_STRUCT_FLOCK64=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 128 | -DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \ |
Elliott Hughes | 4e779b4 | 2014-05-07 09:10:38 -0700 | [diff] [blame] | 129 | -DHAVE_STRUCT_SIGCONTEXT=1 \ |
| 130 | -DHAVE_STRUCT_SIGEVENT__SIGEV_UN__PAD=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 131 | -DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \ |
| 132 | -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \ |
| 133 | -DHAVE_STRUCT_STAT_ST_BLOCKS=1 \ |
| 134 | -DHAVE_STRUCT_STAT_ST_RDEV=1 \ |
| 135 | -DHAVE_STRUCT_USER_DESC=1 \ |
| 136 | -DHAVE_SYS_EPOLL_H=1 \ |
| 137 | -DHAVE_SYS_IOCTL_H=1 \ |
| 138 | -DHAVE_SYS_POLL_H=1 \ |
| 139 | -DHAVE_SYS_REG_H=1 \ |
| 140 | -DHAVE_SYS_VFS_H=1 \ |
| 141 | -DMAJOR_IN_SYSMACROS \ |
| 142 | -DPACKAGE_NAME='"strace"' \ |
| 143 | -DVERSION='"$(strace_version)"' \ |
Elliott Hughes | 556f9ae | 2014-03-03 16:08:32 -0800 | [diff] [blame] | 144 | -DSIZEOF_OFF_T=SIZEOF_LONG \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 145 | -DSIZEOF_LONG_LONG=8 \ |
| 146 | -DSTDC_HEADERS=1 \ |
Elliott Hughes | 5dec78d | 2014-02-26 15:56:23 -0800 | [diff] [blame] | 147 | -DSTRACE_KNOWS_ONLY_EABI=1 \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 148 | -D_LFS64_LARGEFILE=1 \ |
| 149 | |
| 150 | LOCAL_CFLAGS += -D_GNU_SOURCE=1 -D_POSIX_SOURCE=1 |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 151 | |
Elliott Hughes | 4ce18c8 | 2014-04-09 19:23:30 -0700 | [diff] [blame] | 152 | 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] | 153 | LOCAL_CFLAGS_64 += -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8 |
Jeff Brown | f76f96e | 2012-03-02 16:23:23 -0800 | [diff] [blame] | 154 | |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 155 | LOCAL_CFLAGS_arm += -DARM=1 |
| 156 | LOCAL_CFLAGS_arm += -DHAVE_STRUCT___OLD_KERNEL_STAT=1 |
| 157 | |
| 158 | LOCAL_CFLAGS_arm64 += -DAARCH64=1 |
| 159 | |
| 160 | LOCAL_CFLAGS_mips += -DMIPS=1 |
| 161 | LOCAL_CFLAGS_mips += -DHAVE_ASM_SYSMIPS_H=1 |
| 162 | |
Raghu Gandham | 5577601 | 2014-08-29 12:20:30 -0700 | [diff] [blame] | 163 | LOCAL_CFLAGS_mips64 += -DMIPS=1 |
| 164 | LOCAL_CFLAGS_mips64 += -DHAVE_ASM_SYSMIPS_H=1 |
| 165 | |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 166 | LOCAL_CFLAGS_x86 += -DI386=1 |
| 167 | LOCAL_CFLAGS_x86 += -DHAVE_STRUCT___OLD_KERNEL_STAT=1 |
| 168 | |
Elliott Hughes | 4ce18c8 | 2014-04-09 19:23:30 -0700 | [diff] [blame] | 169 | LOCAL_CFLAGS_x86_64 += -DX86_64=1 |
Lorenzo Colitti | a0b125c | 2009-08-20 15:06:43 -0700 | [diff] [blame] | 170 | |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 171 | LOCAL_CFLAGS += \ |
Elliott Hughes | 10bd42d | 2014-01-08 16:34:09 -0800 | [diff] [blame] | 172 | -Wall \ |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 173 | -Wno-missing-field-initializers \ |
| 174 | -Wno-unused-parameter \ |
| 175 | -Wno-sign-compare \ |
Jeff Brown | f76f96e | 2012-03-02 16:23:23 -0800 | [diff] [blame] | 176 | |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 177 | LOCAL_C_INCLUDES := \ |
Elliott Hughes | 15fc6a2 | 2014-01-09 10:30:06 -0800 | [diff] [blame] | 178 | $(LOCAL_PATH)/linux |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 179 | |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 180 | LOCAL_C_INCLUDES_arm := $(LOCAL_PATH)/linux/arm |
| 181 | LOCAL_C_INCLUDES_arm64 := $(LOCAL_PATH)/linux/aarch64 |
| 182 | LOCAL_C_INCLUDES_mips := $(LOCAL_PATH)/linux/mips |
Duane Sand | 2cafa72 | 2014-05-20 12:57:09 -0700 | [diff] [blame] | 183 | LOCAL_C_INCLUDES_mips64 := $(LOCAL_PATH)/linux/mips |
Colin Cross | d6b039c | 2014-01-29 18:09:48 -0800 | [diff] [blame] | 184 | LOCAL_C_INCLUDES_x86 := $(LOCAL_PATH)/linux/i386 |
| 185 | LOCAL_C_INCLUDES_x86_64 := $(LOCAL_PATH)/linux/x86_64 |
| 186 | |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 187 | LOCAL_MODULE := strace |
| 188 | |
| 189 | LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) |
| 190 | |
| 191 | LOCAL_MODULE_TAGS := debug |
| 192 | |
Elliott Hughes | bb0c2d5 | 2014-01-07 17:34:14 -0800 | [diff] [blame] | 193 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk |
| 194 | |
The Android Open Source Project | 34d6eab | 2009-03-03 19:30:45 -0800 | [diff] [blame] | 195 | include $(BUILD_EXECUTABLE) |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 196 | |
Elliott Hughes | 858a5c7 | 2014-02-28 15:58:12 -0800 | [diff] [blame] | 197 | |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 198 | # ------------------------------------------------------------------------- |
| 199 | |
| 200 | .PHONY: update-ioctls |
| 201 | update-ioctls: |
| 202 | # Build the generated .h files needed by ioctlsort from the current bionic uapi headers. |
| 203 | cd external/strace; ./linux/ioctlent.sh ../../bionic/libc/kernel/uapi/ |
| 204 | # Build the ioctlsort tool. |
| 205 | ONE_SHOT_MAKEFILE=external/strace/Android.mk make -f build/core/main.mk $(TARGET_OUT_EXECUTABLES)/ioctlsort |
| 206 | # Remove the generated .h files now we've built ioctlsort. |
| 207 | rm external/strace/ioctls.h external/strace/ioctldefs.h |
| 208 | # Run the ioctlsort tool on the target to generate the one file we do want to check in. |
| 209 | adb sync |
| 210 | adb shell ioctlsort | tr -d '\r' > external/strace/linux/ioctlent.h |
| 211 | # Rebuild strace with the new "ioctlent.h". |
| 212 | ONE_SHOT_MAKEFILE=external/strace/Android.mk make -f build/core/main.mk |
| 213 | |
| 214 | # We don't build ioctlsort unless really necessary, because we don't check |
| 215 | # in the temporary files needed to build it. This tool is only necessary |
| 216 | # when updating strace's list of ioctls. |
Elliott Hughes | 16488d5 | 2014-06-06 22:58:11 -0700 | [diff] [blame] | 217 | ifneq (,$(filter $(TARGET_OUT_EXECUTABLES)/ioctlsort,$(MAKECMDGOALS))) |
Elliott Hughes | 7c53832 | 2014-02-28 10:32:04 -0800 | [diff] [blame] | 218 | include $(CLEAR_VARS) |
| 219 | LOCAL_SRC_FILES := linux/ioctlsort.c |
| 220 | LOCAL_CFLAGS += -include asm/types.h -include linux/ashmem.h |
| 221 | LOCAL_CFLAGS += -Wno-unused-parameter |
| 222 | LOCAL_MODULE := ioctlsort |
| 223 | LOCAL_MODULE_TAGS := optional |
| 224 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk |
| 225 | include $(BUILD_EXECUTABLE) |
| 226 | endif |
| 227 | |
| 228 | # ------------------------------------------------------------------------- |
| 229 | |
Elliott Hughes | 858a5c7 | 2014-02-28 15:58:12 -0800 | [diff] [blame] | 230 | include $(LOCAL_PATH)/test/Android.mk |