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