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