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