Android.mk revision 218dbccefa3d874d988e4784bda5e45b7643cb5a
1# Copyright 2005 The Android Open Source Project 2# 3# Android.mk for adb 4# 5 6LOCAL_PATH:= $(call my-dir) 7 8ifeq ($(HOST_OS),windows) 9 adb_host_clang := false # libc++ for mingw not ready yet. 10else 11 adb_host_clang := true 12endif 13 14adb_version := $(shell git -C $(LOCAL_PATH) rev-parse --short=12 HEAD 2>/dev/null)-android 15 16ADB_COMMON_CFLAGS := \ 17 -Wall -Werror \ 18 -Wno-unused-parameter \ 19 -DADB_REVISION='"$(adb_version)"' \ 20 21# libadb 22# ========================================================= 23 24# Much of adb is duplicated in bootable/recovery/minadb and fastboot. Changes 25# made to adb rarely get ported to the other two, so the trees have diverged a 26# bit. We'd like to stop this because it is a maintenance nightmare, but the 27# divergence makes this difficult to do all at once. For now, we will start 28# small by moving common files into a static library. Hopefully some day we can 29# get enough of adb in here that we no longer need minadb. https://b/17626262 30LIBADB_SRC_FILES := \ 31 adb.cpp \ 32 adb_auth.cpp \ 33 adb_io.cpp \ 34 adb_listeners.cpp \ 35 adb_utils.cpp \ 36 sockets.cpp \ 37 transport.cpp \ 38 transport_local.cpp \ 39 transport_usb.cpp \ 40 41LIBADB_TEST_SRCS := \ 42 adb_io_test.cpp \ 43 adb_utils_test.cpp \ 44 transport_test.cpp \ 45 46LIBADB_CFLAGS := \ 47 $(ADB_COMMON_CFLAGS) \ 48 -Wno-missing-field-initializers \ 49 -fvisibility=hidden \ 50 51LIBADB_darwin_SRC_FILES := \ 52 fdevent.cpp \ 53 get_my_path_darwin.cpp \ 54 usb_osx.cpp \ 55 56LIBADB_linux_SRC_FILES := \ 57 fdevent.cpp \ 58 get_my_path_linux.cpp \ 59 usb_linux.cpp \ 60 61LIBADB_windows_SRC_FILES := \ 62 get_my_path_windows.cpp \ 63 sysdeps_win32.cpp \ 64 usb_windows.cpp \ 65 66include $(CLEAR_VARS) 67LOCAL_CLANG := true 68LOCAL_MODULE := libadbd 69LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=0 70LOCAL_SRC_FILES := \ 71 $(LIBADB_SRC_FILES) \ 72 adb_auth_client.cpp \ 73 fdevent.cpp \ 74 jdwp_service.cpp \ 75 qemu_tracing.cpp \ 76 usb_linux_client.cpp \ 77 78LOCAL_SHARED_LIBRARIES := libbase 79 80include $(BUILD_STATIC_LIBRARY) 81 82include $(CLEAR_VARS) 83LOCAL_CLANG := $(adb_host_clang) 84LOCAL_MODULE := libadb 85LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=1 86LOCAL_SRC_FILES := \ 87 $(LIBADB_SRC_FILES) \ 88 $(LIBADB_$(HOST_OS)_SRC_FILES) \ 89 adb_auth_host.cpp \ 90 91LOCAL_SHARED_LIBRARIES := libbase 92 93# Even though we're building a static library (and thus there's no link step for 94# this to take effect), this adds the SSL includes to our path. 95LOCAL_STATIC_LIBRARIES := libcrypto_static 96 97ifeq ($(HOST_OS),windows) 98 LOCAL_C_INCLUDES += development/host/windows/usb/api/ 99 # Windows.h defines an awful ERROR macro that collides with base/logging.h. 100 # Suppress it with NOGDI. 101 LOCAL_CFLAGS += -DNOGDI 102endif 103 104include $(BUILD_HOST_STATIC_LIBRARY) 105 106include $(CLEAR_VARS) 107LOCAL_CLANG := true 108LOCAL_MODULE := adbd_test 109LOCAL_CFLAGS := -DADB_HOST=0 $(LIBADB_CFLAGS) 110LOCAL_SRC_FILES := $(LIBADB_TEST_SRCS) 111LOCAL_STATIC_LIBRARIES := libadbd 112LOCAL_SHARED_LIBRARIES := liblog libbase libcutils 113include $(BUILD_NATIVE_TEST) 114 115ifneq ($(HOST_OS),windows) 116include $(CLEAR_VARS) 117LOCAL_CLANG := $(adb_host_clang) 118LOCAL_MODULE := adb_test 119LOCAL_CFLAGS := -DADB_HOST=1 $(LIBADB_CFLAGS) 120LOCAL_SRC_FILES := $(LIBADB_TEST_SRCS) services.cpp 121LOCAL_SHARED_LIBRARIES := liblog libbase 122LOCAL_STATIC_LIBRARIES := \ 123 libadb \ 124 libcrypto_static \ 125 libcutils \ 126 127ifeq ($(HOST_OS),linux) 128 LOCAL_LDLIBS += -lrt -ldl -lpthread 129endif 130 131ifeq ($(HOST_OS),darwin) 132 LOCAL_LDLIBS += -framework CoreFoundation -framework IOKit 133endif 134 135include $(BUILD_HOST_NATIVE_TEST) 136endif 137 138# adb device tracker (used by ddms) test tool 139# ========================================================= 140 141ifeq ($(HOST_OS),linux) 142include $(CLEAR_VARS) 143LOCAL_CLANG := $(adb_host_clang) 144LOCAL_MODULE := adb_device_tracker_test 145LOCAL_CFLAGS := -DADB_HOST=1 $(LIBADB_CFLAGS) 146LOCAL_SRC_FILES := test_track_devices.cpp 147LOCAL_SHARED_LIBRARIES := liblog libbase 148LOCAL_STATIC_LIBRARIES := libadb libcrypto_static libcutils 149LOCAL_LDLIBS += -lrt -ldl -lpthread 150include $(BUILD_HOST_EXECUTABLE) 151endif 152 153# adb host tool 154# ========================================================= 155include $(CLEAR_VARS) 156 157ifeq ($(HOST_OS),linux) 158 LOCAL_LDLIBS += -lrt -ldl -lpthread 159 LOCAL_CFLAGS += -DWORKAROUND_BUG6558362 160endif 161 162ifeq ($(HOST_OS),darwin) 163 LOCAL_LDLIBS += -lpthread -framework CoreFoundation -framework IOKit -framework Carbon 164 LOCAL_CFLAGS += -Wno-sizeof-pointer-memaccess -Wno-unused-parameter 165endif 166 167ifeq ($(HOST_OS),windows) 168 # Windows.h defines an awful ERROR macro that collides with base/logging.h. 169 # Suppress it with NOGDI. 170 LOCAL_CFLAGS += -DNOGDI 171 LOCAL_LDLIBS += -lws2_32 -lgdi32 172 EXTRA_STATIC_LIBS := AdbWinApi 173endif 174 175LOCAL_CLANG := $(adb_host_clang) 176 177LOCAL_SRC_FILES := \ 178 adb_main.cpp \ 179 console.cpp \ 180 commandline.cpp \ 181 adb_client.cpp \ 182 services.cpp \ 183 file_sync_client.cpp \ 184 185LOCAL_CFLAGS += \ 186 $(ADB_COMMON_CFLAGS) \ 187 -D_GNU_SOURCE \ 188 -DADB_HOST=1 \ 189 190LOCAL_MODULE := adb 191LOCAL_MODULE_TAGS := debug 192 193LOCAL_STATIC_LIBRARIES := \ 194 libadb \ 195 libbase \ 196 libcrypto_static \ 197 libcutils \ 198 liblog \ 199 $(EXTRA_STATIC_LIBS) \ 200 201# libc++ not available on windows yet 202ifneq ($(HOST_OS),windows) 203 LOCAL_CXX_STL := libc++_static 204endif 205 206# Don't add anything here, we don't want additional shared dependencies 207# on the host adb tool, and shared libraries that link against libc++ 208# will violate ODR 209LOCAL_SHARED_LIBRARIES := 210 211include $(BUILD_HOST_EXECUTABLE) 212 213$(call dist-for-goals,dist_files sdk,$(LOCAL_BUILT_MODULE)) 214 215ifeq ($(HOST_OS),windows) 216$(LOCAL_INSTALLED_MODULE): \ 217 $(HOST_OUT_EXECUTABLES)/AdbWinApi.dll \ 218 $(HOST_OUT_EXECUTABLES)/AdbWinUsbApi.dll 219endif 220 221 222# adbd device daemon 223# ========================================================= 224 225include $(CLEAR_VARS) 226 227LOCAL_CLANG := true 228 229LOCAL_SRC_FILES := \ 230 adb_main.cpp \ 231 services.cpp \ 232 file_sync_service.cpp \ 233 framebuffer_service.cpp \ 234 remount_service.cpp \ 235 set_verity_enable_state_service.cpp \ 236 237LOCAL_CFLAGS := \ 238 $(ADB_COMMON_CFLAGS) \ 239 -DADB_HOST=0 \ 240 -D_GNU_SOURCE \ 241 -Wno-deprecated-declarations \ 242 243ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) 244LOCAL_CFLAGS += -DALLOW_ADBD_ROOT=1 245endif 246 247ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) 248LOCAL_CFLAGS += -DALLOW_ADBD_DISABLE_VERITY=1 249endif 250 251LOCAL_MODULE := adbd 252 253LOCAL_FORCE_STATIC_EXECUTABLE := true 254LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT_SBIN) 255LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_SBIN_UNSTRIPPED) 256LOCAL_C_INCLUDES += system/extras/ext4_utils 257 258LOCAL_STATIC_LIBRARIES := \ 259 libadbd \ 260 libbase \ 261 libfs_mgr \ 262 liblog \ 263 libcutils \ 264 libc \ 265 libmincrypt \ 266 libselinux \ 267 libext4_utils_static \ 268 269include $(BUILD_EXECUTABLE) 270