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