1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Copyright 2005 The Android Open Source Project
2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#
3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Android.mk for adb
4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#
5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_PATH:= $(call my-dir)
7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
89113b47eacb955ec83fe8ecce67f7905b2c395beDan Albertadb_host_sanitize :=
99113b47eacb955ec83fe8ecce67f7905b2c395beDan Albertadb_target_sanitize :=
109113b47eacb955ec83fe8ecce67f7905b2c395beDan Albert
111ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan Albertadb_version := $(shell git -C $(LOCAL_PATH) rev-parse --short=12 HEAD 2>/dev/null)-android
121ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan Albert
131ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan AlbertADB_COMMON_CFLAGS := \
1423fee8fcf59880545e5fbc2cf12df77f2be3280cDan Albert    -Wall -Wextra -Werror \
15459df8f3a14d4c614f0211049800cf7cad6d30adDan Albert    -Wno-unused-parameter \
16286bb6ddbd52584af0c6c76fbe0498f3dea4b944Dan Albert    -Wno-missing-field-initializers \
176d92997ec4285caebe94064158a8cc017bbf5caaElliott Hughes    -Wvla \
181ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan Albert    -DADB_REVISION='"$(adb_version)"' \
191ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan Albert
20b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh GaoADB_COMMON_linux_CFLAGS := \
21b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    -Wexit-time-destructors \
22b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao
23b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh GaoADB_COMMON_darwin_CFLAGS := \
24b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    -Wexit-time-destructors \
25b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao
26e347c1dd475ab83b2ec483f43879b105be145ea2Spencer Low# Define windows.h and tchar.h Unicode preprocessor symbols so that
27e347c1dd475ab83b2ec483f43879b105be145ea2Spencer Low# CreateFile(), _tfopen(), etc. map to versions that take wchar_t*, breaking the
28e347c1dd475ab83b2ec483f43879b105be145ea2Spencer Low# build if you accidentally pass char*. Fix by calling like:
29d21dc825bbecad6ce480c5e5c574cc77eadcd779Spencer Low#   std::wstring path_wide;
30d21dc825bbecad6ce480c5e5c574cc77eadcd779Spencer Low#   if (!android::base::UTF8ToWide(path_utf8, &path_wide)) { /* error handling */ }
31d21dc825bbecad6ce480c5e5c574cc77eadcd779Spencer Low#   CreateFileW(path_wide.c_str());
32e347c1dd475ab83b2ec483f43879b105be145ea2Spencer LowADB_COMMON_windows_CFLAGS := \
33e347c1dd475ab83b2ec483f43879b105be145ea2Spencer Low    -DUNICODE=1 -D_UNICODE=1 \
34e347c1dd475ab83b2ec483f43879b105be145ea2Spencer Low
35630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# libadb
36630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# =========================================================
37630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert
38630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# Much of adb is duplicated in bootable/recovery/minadb and fastboot. Changes
39630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# made to adb rarely get ported to the other two, so the trees have diverged a
40630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# bit. We'd like to stop this because it is a maintenance nightmare, but the
41630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# divergence makes this difficult to do all at once. For now, we will start
42630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# small by moving common files into a static library. Hopefully some day we can
43630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert# get enough of adb in here that we no longer need minadb. https://b/17626262
44ba3a251749c88210949008ae26f8bc04812084c1Dan AlbertLIBADB_SRC_FILES := \
45bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    adb.cpp \
46cc731cc76786b6bdc58764aad9924c0d0c8d645fDan Albert    adb_io.cpp \
47bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    adb_listeners.cpp \
48aed3c61c4437ebb05eadfb3bf85d6962c30b9935Yabin Cui    adb_trace.cpp \
495830577bd82fdb7c39555da20a4cf585b8bb376aElliott Hughes    adb_utils.cpp \
503777d2ecc05d397ca501f4ee296e4e66568bb1bdJosh Gao    fdevent.cpp \
51bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    sockets.cpp \
52cfb21412e5e3a716fc45601f35d3b58ce5f78f46Josh Gao    socket_spec.cpp \
535a1e3fdaf82aee348b1b22992a8c1d15db38413bJosh Gao    sysdeps/errno.cpp \
54bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    transport.cpp \
55bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    transport_local.cpp \
56bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    transport_usb.cpp \
57ba3a251749c88210949008ae26f8bc04812084c1Dan Albert
5853daee6a2b415caa0ff3e425c7fa613c834bca61Elliott HughesLIBADB_TEST_SRCS := \
5953daee6a2b415caa0ff3e425c7fa613c834bca61Elliott Hughes    adb_io_test.cpp \
60eaae97e127717750b4264d9b6617b845f9bc701fDavid Pursell    adb_listeners_test.cpp \
6153daee6a2b415caa0ff3e425c7fa613c834bca61Elliott Hughes    adb_utils_test.cpp \
62022d447e9efcff59e22f0ab13764282116f235ddJosh Gao    fdevent_test.cpp \
631099215e30c3b09dfa390c638a45487c43b2b1e1Josh Gao    socket_spec_test.cpp \
64022d447e9efcff59e22f0ab13764282116f235ddJosh Gao    socket_test.cpp \
653b3e10d0465506abc7d9e07c0381396b3726f183Josh Gao    sysdeps_test.cpp \
66f551ea0f6309465eeab70404076bd881320f4883Josh Gao    sysdeps/stat_test.cpp \
6753daee6a2b415caa0ff3e425c7fa613c834bca61Elliott Hughes    transport_test.cpp \
6853daee6a2b415caa0ff3e425c7fa613c834bca61Elliott Hughes
69bf10647b61704a8dbe01b7381ebed5aefaa074e0Dan AlbertLIBADB_CFLAGS := \
701ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan Albert    $(ADB_COMMON_CFLAGS) \
71ba3a251749c88210949008ae26f8bc04812084c1Dan Albert    -fvisibility=hidden \
724f1d7b55d73e24c453720277e8dc5dca54f65eb8Elliott Hughes
734f1d7b55d73e24c453720277e8dc5dca54f65eb8Elliott HughesLIBADB_linux_CFLAGS := \
74b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    $(ADB_COMMON_linux_CFLAGS) \
75b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao
76b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh GaoLIBADB_darwin_CFLAGS := \
77b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    $(ADB_COMMON_darwin_CFLAGS) \
78630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert
7987a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLIBADB_windows_CFLAGS := \
8087a419c8b1343c9025fe2593206a6e95b0aa9700Dan Willemsen    $(ADB_COMMON_windows_CFLAGS) \
814f1d7b55d73e24c453720277e8dc5dca54f65eb8Elliott Hughes
82bac3474a8256cb32a29e8d46f78cad95a5502692Dan AlbertLIBADB_darwin_SRC_FILES := \
83bfd9503d1dfc652d0497fa1a5994b3d73e296898David Pursell    sysdeps_unix.cpp \
841c70e1bcbcced190b351d4fb418f32b4e428f496Josh Gao    client/usb_dispatch.cpp \
851c70e1bcbcced190b351d4fb418f32b4e428f496Josh Gao    client/usb_libusb.cpp \
86456e1ad42034316cee5a6467c4bcb23643b51e5aJosh Gao    client/usb_osx.cpp \
87bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert
88bac3474a8256cb32a29e8d46f78cad95a5502692Dan AlbertLIBADB_linux_SRC_FILES := \
89bfd9503d1dfc652d0497fa1a5994b3d73e296898David Pursell    sysdeps_unix.cpp \
901c70e1bcbcced190b351d4fb418f32b4e428f496Josh Gao    client/usb_dispatch.cpp \
911c70e1bcbcced190b351d4fb418f32b4e428f496Josh Gao    client/usb_libusb.cpp \
92456e1ad42034316cee5a6467c4bcb23643b51e5aJosh Gao    client/usb_linux.cpp \
93bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert
94bac3474a8256cb32a29e8d46f78cad95a5502692Dan AlbertLIBADB_windows_SRC_FILES := \
95a2f2e56796fef024c7374d033bd7d34af71fdf5aElliott Hughes    sysdeps_win32.cpp \
96a3577e1ac558d83428c492e806549e278e5dc8fbJosh Gao    sysdeps/win32/errno.cpp \
97f551ea0f6309465eeab70404076bd881320f4883Josh Gao    sysdeps/win32/stat.cpp \
98456e1ad42034316cee5a6467c4bcb23643b51e5aJosh Gao    client/usb_windows.cpp \
999449376328daa7c726ec693637fcdf1d3985640aDan Albert
100e6ae5735713f172eff39f9b8bc75b478b50aee7fSpencer LowLIBADB_TEST_windows_SRCS := \
101a3577e1ac558d83428c492e806549e278e5dc8fbJosh Gao    sysdeps/win32/errno_test.cpp \
102e6ae5735713f172eff39f9b8bc75b478b50aee7fSpencer Low    sysdeps_win32_test.cpp \
103e6ae5735713f172eff39f9b8bc75b478b50aee7fSpencer Low
104630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albertinclude $(CLEAR_VARS)
1052acec9153e40a558671ec0544bdd89d5a7fabf08Elliott HughesLOCAL_CLANG := true
10644c688ca19a570b4d73f92f34d410e62ef491f0aJosh GaoLOCAL_MODULE := libadbd_usb
10744c688ca19a570b4d73f92f34d410e62ef491f0aJosh GaoLOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=0
10844c688ca19a570b4d73f92f34d410e62ef491f0aJosh GaoLOCAL_SRC_FILES := daemon/usb.cpp
10944c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao
11044c688ca19a570b4d73f92f34d410e62ef491f0aJosh GaoLOCAL_SANITIZE := $(adb_target_sanitize)
11144c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao
11244c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao# Even though we're building a static library (and thus there's no link step for
11344c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao# this to take effect), this adds the includes to our path.
11444c688ca19a570b4d73f92f34d410e62ef491f0aJosh GaoLOCAL_STATIC_LIBRARIES := libcrypto_utils libcrypto libbase
11544c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao
11644c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gaoinclude $(BUILD_STATIC_LIBRARY)
11744c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao
11844c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gaoinclude $(CLEAR_VARS)
11944c688ca19a570b4d73f92f34d410e62ef491f0aJosh GaoLOCAL_CLANG := true
1209449376328daa7c726ec693637fcdf1d3985640aDan AlbertLOCAL_MODULE := libadbd
121630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan AlbertLOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=0
12221c3eaf4cc46aa835531b0cf1e0ca177046a14edDan AlbertLOCAL_SRC_FILES := \
12321c3eaf4cc46aa835531b0cf1e0ca177046a14edDan Albert    $(LIBADB_SRC_FILES) \
1243bd2879d8e9bb0c0a1b8045e09f9cf87c2daeef3Josh Gao    adbd_auth.cpp \
125bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    jdwp_service.cpp \
12621c3eaf4cc46aa835531b0cf1e0ca177046a14edDan Albert
1279113b47eacb955ec83fe8ecce67f7905b2c395beDan AlbertLOCAL_SANITIZE := $(adb_target_sanitize)
1287b506090e1ac51f4990f17621c6e33847b0632a2Elliott Hughes
129e246219d0c9897b1c08204d6c535d5d341c4e7eeDan Albert# Even though we're building a static library (and thus there's no link step for
130e246219d0c9897b1c08204d6c535d5d341c4e7eeDan Albert# this to take effect), this adds the includes to our path.
13147763c3a09e8581338c307c5a5de4ae359c3b6e7Josh GaoLOCAL_STATIC_LIBRARIES := libcrypto_utils libcrypto libbase
132e246219d0c9897b1c08204d6c535d5d341c4e7eeDan Albert
13344c688ca19a570b4d73f92f34d410e62ef491f0aJosh GaoLOCAL_WHOLE_STATIC_LIBRARIES := libadbd_usb
13444c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao
1359449376328daa7c726ec693637fcdf1d3985640aDan Albertinclude $(BUILD_STATIC_LIBRARY)
1369449376328daa7c726ec693637fcdf1d3985640aDan Albert
1379449376328daa7c726ec693637fcdf1d3985640aDan Albertinclude $(CLEAR_VARS)
1389449376328daa7c726ec693637fcdf1d3985640aDan AlbertLOCAL_MODULE := libadb
13987a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_MODULE_HOST_OS := darwin linux windows
1409449376328daa7c726ec693637fcdf1d3985640aDan AlbertLOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=1
14187a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_CFLAGS_windows := $(LIBADB_windows_CFLAGS)
14287a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_CFLAGS_linux := $(LIBADB_linux_CFLAGS)
143b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh GaoLOCAL_CFLAGS_darwin := $(LIBADB_darwin_CFLAGS)
144e1ca623faa278a264981b088fb608b2a62727ab1Dan AlbertLOCAL_SRC_FILES := \
145e1ca623faa278a264981b088fb608b2a62727ab1Dan Albert    $(LIBADB_SRC_FILES) \
1462fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey Dahlin    adb_auth_host.cpp \
1472fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey Dahlin    transport_mdns.cpp \
148e1ca623faa278a264981b088fb608b2a62727ab1Dan Albert
14987a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_SRC_FILES_darwin := $(LIBADB_darwin_SRC_FILES)
15087a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_SRC_FILES_linux := $(LIBADB_linux_SRC_FILES)
15187a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_SRC_FILES_windows := $(LIBADB_windows_SRC_FILES)
15287a419c8b1343c9025fe2593206a6e95b0aa9700Dan Willemsen
1539113b47eacb955ec83fe8ecce67f7905b2c395beDan AlbertLOCAL_SANITIZE := $(adb_host_sanitize)
1547b506090e1ac51f4990f17621c6e33847b0632a2Elliott Hughes
155e1ca623faa278a264981b088fb608b2a62727ab1Dan Albert# Even though we're building a static library (and thus there's no link step for
156e246219d0c9897b1c08204d6c535d5d341c4e7eeDan Albert# this to take effect), this adds the includes to our path.
1572fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey DahlinLOCAL_STATIC_LIBRARIES := libcrypto_utils libcrypto libbase libmdnssd
1582fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey DahlinLOCAL_STATIC_LIBRARIES_linux := libusb
1591c70e1bcbcced190b351d4fb418f32b4e428f496Josh GaoLOCAL_STATIC_LIBRARIES_darwin := libusb
160630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert
16187a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_C_INCLUDES_windows := development/host/windows/usb/api/
16266680c506ab67802626112e96a5ccef3ef7565c1Dan WillemsenLOCAL_MULTILIB := first
16388cf1c8c4ac986b89d90eed798f51fa007787db0Dan Albert
164630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albertinclude $(BUILD_HOST_STATIC_LIBRARY)
165630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert
166055f1aa4ff58ba71133d506b202ad46612758dedDan Albertinclude $(CLEAR_VARS)
16753daee6a2b415caa0ff3e425c7fa613c834bca61Elliott HughesLOCAL_CLANG := true
168055f1aa4ff58ba71133d506b202ad46612758dedDan AlbertLOCAL_MODULE := adbd_test
169055f1aa4ff58ba71133d506b202ad46612758dedDan AlbertLOCAL_CFLAGS := -DADB_HOST=0 $(LIBADB_CFLAGS)
170bec02fc43d917a4da817d4a02826f110ce340243Yabin CuiLOCAL_SRC_FILES := \
171bec02fc43d917a4da817d4a02826f110ce340243Yabin Cui    $(LIBADB_TEST_SRCS) \
172bec02fc43d917a4da817d4a02826f110ce340243Yabin Cui    $(LIBADB_TEST_linux_SRCS) \
1730955c66b226db7a7f34613f834f7b0a145fd407dDavid Pursell    shell_service.cpp \
174b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    shell_service_protocol.cpp \
175b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    shell_service_protocol_test.cpp \
1760955c66b226db7a7f34613f834f7b0a145fd407dDavid Pursell    shell_service_test.cpp \
177bec02fc43d917a4da817d4a02826f110ce340243Yabin Cui
1789113b47eacb955ec83fe8ecce67f7905b2c395beDan AlbertLOCAL_SANITIZE := $(adb_target_sanitize)
1792fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey DahlinLOCAL_STATIC_LIBRARIES := libadbd libcrypto_utils libcrypto libusb libmdnssd
18001f21da7329ed88bff94e82bab1a889e9244cad9Dimitry IvanovLOCAL_SHARED_LIBRARIES := liblog libbase libcutils
181055f1aa4ff58ba71133d506b202ad46612758dedDan Albertinclude $(BUILD_NATIVE_TEST)
182055f1aa4ff58ba71133d506b202ad46612758dedDan Albert
1831b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes# libdiagnose_usb
1841b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes# =========================================================
1851b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes
1861b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughesinclude $(CLEAR_VARS)
1871b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott HughesLOCAL_MODULE := libdiagnose_usb
1881b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott HughesLOCAL_MODULE_HOST_OS := darwin linux windows
1891b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott HughesLOCAL_CFLAGS := $(LIBADB_CFLAGS)
1901b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott HughesLOCAL_SRC_FILES := diagnose_usb.cpp
1911b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes# Even though we're building a static library (and thus there's no link step for
1921b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes# this to take effect), this adds the includes to our path.
1931b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott HughesLOCAL_STATIC_LIBRARIES := libbase
1941b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughesinclude $(BUILD_HOST_STATIC_LIBRARY)
1951b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes
196cf168a82e99e97e3ad95e37b7065f6b8e7f7390bSpencer Low# adb_test
197cf168a82e99e97e3ad95e37b7065f6b8e7f7390bSpencer Low# =========================================================
198cf168a82e99e97e3ad95e37b7065f6b8e7f7390bSpencer Low
199055f1aa4ff58ba71133d506b202ad46612758dedDan Albertinclude $(CLEAR_VARS)
200055f1aa4ff58ba71133d506b202ad46612758dedDan AlbertLOCAL_MODULE := adb_test
201ebf770fd735f843936b79df333f70319bade1cb7Spencer LowLOCAL_MODULE_HOST_OS := darwin linux windows
202055f1aa4ff58ba71133d506b202ad46612758dedDan AlbertLOCAL_CFLAGS := -DADB_HOST=1 $(LIBADB_CFLAGS)
20387a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_CFLAGS_windows := $(LIBADB_windows_CFLAGS)
20487a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_CFLAGS_linux := $(LIBADB_linux_CFLAGS)
205b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh GaoLOCAL_CFLAGS_darwin := $(LIBADB_darwin_CFLAGS)
206b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David PursellLOCAL_SRC_FILES := \
207b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    $(LIBADB_TEST_SRCS) \
208698e065e14840541f218a80241fa880703a7dbc5Felipe Leme    adb_client.cpp \
209698e065e14840541f218a80241fa880703a7dbc5Felipe Leme    bugreport.cpp \
210698e065e14840541f218a80241fa880703a7dbc5Felipe Leme    bugreport_test.cpp \
2116f5080faa5c95ba7fc9d4c73eaecf4684a79d00cFelipe Leme    line_printer.cpp \
212b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    services.cpp \
213b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    shell_service_protocol.cpp \
214b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    shell_service_protocol_test.cpp \
215b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell
216b404dec85ab07043c0a1933671aa76a159d797acDavid PursellLOCAL_SRC_FILES_linux := $(LIBADB_TEST_linux_SRCS)
21787a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_SRC_FILES_darwin := $(LIBADB_TEST_darwin_SRCS)
218e6ae5735713f172eff39f9b8bc75b478b50aee7fSpencer LowLOCAL_SRC_FILES_windows := $(LIBADB_TEST_windows_SRCS)
2199113b47eacb955ec83fe8ecce67f7905b2c395beDan AlbertLOCAL_SANITIZE := $(adb_host_sanitize)
2203d4d973e82388b113553a60336c4e47aa53453f5Josh GaoLOCAL_SHARED_LIBRARIES := libbase
221055f1aa4ff58ba71133d506b202ad46612758dedDan AlbertLOCAL_STATIC_LIBRARIES := \
222055f1aa4ff58ba71133d506b202ad46612758dedDan Albert    libadb \
22347763c3a09e8581338c307c5a5de4ae359c3b6e7Josh Gao    libcrypto_utils \
22447763c3a09e8581338c307c5a5de4ae359c3b6e7Josh Gao    libcrypto \
225055f1aa4ff58ba71133d506b202ad46612758dedDan Albert    libcutils \
2261b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes    libdiagnose_usb \
2272fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey Dahlin    libmdnssd \
228d6c8091e9f5cc31e6face99253c3805d9cc7058bCasey Dahlin    libgmock_host
229055f1aa4ff58ba71133d506b202ad46612758dedDan Albert
2302fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey DahlinLOCAL_STATIC_LIBRARIES_linux := libusb
2311c70e1bcbcced190b351d4fb418f32b4e428f496Josh GaoLOCAL_STATIC_LIBRARIES_darwin := libusb
2321c70e1bcbcced190b351d4fb418f32b4e428f496Josh Gao
233e6ae5735713f172eff39f9b8bc75b478b50aee7fSpencer Low# Set entrypoint to wmain from sysdeps_win32.cpp instead of main
234e6ae5735713f172eff39f9b8bc75b478b50aee7fSpencer LowLOCAL_LDFLAGS_windows := -municode
23587a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_LDLIBS_linux := -lrt -ldl -lpthread
2361c70e1bcbcced190b351d4fb418f32b4e428f496Josh GaoLOCAL_LDLIBS_darwin := -framework CoreFoundation -framework IOKit -lobjc
2373d4d973e82388b113553a60336c4e47aa53453f5Josh GaoLOCAL_LDLIBS_windows := -lws2_32 -luserenv
23887a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_STATIC_LIBRARIES_windows := AdbWinApi
239055f1aa4ff58ba71133d506b202ad46612758dedDan Albert
2401e20e0aa1d5bef60377376195abd244ceae81c7cDan WillemsenLOCAL_MULTILIB := first
2411e20e0aa1d5bef60377376195abd244ceae81c7cDan Willemsen
242cf168a82e99e97e3ad95e37b7065f6b8e7f7390bSpencer Lowinclude $(BUILD_HOST_NATIVE_TEST)
243cf168a82e99e97e3ad95e37b7065f6b8e7f7390bSpencer Low
244dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# adb host tool
245dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# =========================================================
246dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(CLEAR_VARS)
247dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
24887a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_LDLIBS_linux := -lrt -ldl -lpthread
249dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
2501c70e1bcbcced190b351d4fb418f32b4e428f496Josh GaoLOCAL_LDLIBS_darwin := -lpthread -framework CoreFoundation -framework IOKit -framework Carbon -lobjc
251dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
25287a419c8b1343c9025fe2593206a6e95b0aa9700Dan Willemsen# Use wmain instead of main
25387a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_LDFLAGS_windows := -municode
2543d4d973e82388b113553a60336c4e47aa53453f5Josh GaoLOCAL_LDLIBS_windows := -lws2_32 -lgdi32
25587a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_STATIC_LIBRARIES_windows := AdbWinApi
25687a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_REQUIRED_MODULES_windows := AdbWinApi AdbWinUsbApi
2579697ce520d47500a72c95bb7f688ff2f273c9070Dan Albert
258dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_SRC_FILES := \
259b708d1628332ea9266d08f0297cd9e9ee341a64fElliott Hughes    adb_client.cpp \
260698e065e14840541f218a80241fa880703a7dbc5Felipe Leme    bugreport.cpp \
261c89e0ccd40624e8b2ce30d425e8bed0264fae548Dan Albert    client/main.cpp \
262bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    console.cpp \
263bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    commandline.cpp \
264bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    file_sync_client.cpp \
265b708d1628332ea9266d08f0297cd9e9ee341a64fElliott Hughes    line_printer.cpp \
266b708d1628332ea9266d08f0297cd9e9ee341a64fElliott Hughes    services.cpp \
267b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    shell_service_protocol.cpp \
268dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
2697fd821e907c4ee25ea4bdf7643c38bd679efdacaDan AlbertLOCAL_CFLAGS += \
2701ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan Albert    $(ADB_COMMON_CFLAGS) \
2717fd821e907c4ee25ea4bdf7643c38bd679efdacaDan Albert    -D_GNU_SOURCE \
2727fd821e907c4ee25ea4bdf7643c38bd679efdacaDan Albert    -DADB_HOST=1 \
2737fd821e907c4ee25ea4bdf7643c38bd679efdacaDan Albert
27487a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_CFLAGS_windows := \
27587a419c8b1343c9025fe2593206a6e95b0aa9700Dan Willemsen    $(ADB_COMMON_windows_CFLAGS)
27687a419c8b1343c9025fe2593206a6e95b0aa9700Dan Willemsen
277b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh GaoLOCAL_CFLAGS_linux := \
278b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    $(ADB_COMMON_linux_CFLAGS) \
279b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao
280b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh GaoLOCAL_CFLAGS_darwin := \
281b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    $(ADB_COMMON_darwin_CFLAGS) \
282b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    -Wno-sizeof-pointer-memaccess -Wno-unused-parameter \
283b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao
284dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_MODULE := adb
285d5d6d97defa8999784a15003ed41449954bc7178Kenny RootLOCAL_MODULE_TAGS := debug
28687a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_MODULE_HOST_OS := darwin linux windows
287dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
2889113b47eacb955ec83fe8ecce67f7905b2c395beDan AlbertLOCAL_SANITIZE := $(adb_host_sanitize)
289630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan AlbertLOCAL_STATIC_LIBRARIES := \
290630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert    libadb \
2912baae3a876ada7e22986e92188f7933cae34ce3bElliott Hughes    libbase \
29247763c3a09e8581338c307c5a5de4ae359c3b6e7Josh Gao    libcrypto_utils \
29347763c3a09e8581338c307c5a5de4ae359c3b6e7Josh Gao    libcrypto \
2941b708d368f29e6053064c9cf6949ab6ebdbb7ac5Elliott Hughes    libdiagnose_usb \
2952fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey Dahlin    liblog \
2962fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey Dahlin    libmdnssd
297630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert
298a629e2e578acf83dbadd55b70c3221c4289d7031Josh Gao# Don't use libcutils on Windows.
299a629e2e578acf83dbadd55b70c3221c4289d7031Josh GaoLOCAL_STATIC_LIBRARIES_darwin := libcutils
3002fe9b6047536e1dbb3e6253bd6c2b3400d6f5903Casey DahlinLOCAL_STATIC_LIBRARIES_linux := libcutils
301a629e2e578acf83dbadd55b70c3221c4289d7031Josh Gao
3021c70e1bcbcced190b351d4fb418f32b4e428f496Josh GaoLOCAL_STATIC_LIBRARIES_darwin += libusb
3031c70e1bcbcced190b351d4fb418f32b4e428f496Josh GaoLOCAL_STATIC_LIBRARIES_linux += libusb
3041c70e1bcbcced190b351d4fb418f32b4e428f496Josh Gao
30587a419c8b1343c9025fe2593206a6e95b0aa9700Dan WillemsenLOCAL_CXX_STL := libc++_static
30655bf5f0017a76df0a97ec35f092054ef6f33c713Colin Cross
30755bf5f0017a76df0a97ec35f092054ef6f33c713Colin Cross# Don't add anything here, we don't want additional shared dependencies
30855bf5f0017a76df0a97ec35f092054ef6f33c713Colin Cross# on the host adb tool, and shared libraries that link against libc++
30955bf5f0017a76df0a97ec35f092054ef6f33c713Colin Cross# will violate ODR
31055bf5f0017a76df0a97ec35f092054ef6f33c713Colin CrossLOCAL_SHARED_LIBRARIES :=
31155bf5f0017a76df0a97ec35f092054ef6f33c713Colin Cross
312dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE)
313dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
31471edfc8b9ab78f00206828993526aedd115c46b1Ying Wang$(call dist-for-goals,dist_files sdk win_sdk,$(LOCAL_BUILT_MODULE))
31571edfc8b9ab78f00206828993526aedd115c46b1Ying Wangifdef HOST_CROSS_OS
31671edfc8b9ab78f00206828993526aedd115c46b1Ying Wang# Archive adb.exe for win_sdk build.
31771edfc8b9ab78f00206828993526aedd115c46b1Ying Wang$(call dist-for-goals,win_sdk,$(ALL_MODULES.host_cross_adb.BUILT))
31871edfc8b9ab78f00206828993526aedd115c46b1Ying Wangendif
319dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
320dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
321dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# adbd device daemon
322dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# =========================================================
323dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
324dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(CLEAR_VARS)
325dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
32653daee6a2b415caa0ff3e425c7fa613c834bca61Elliott HughesLOCAL_CLANG := true
3279697ce520d47500a72c95bb7f688ff2f273c9070Dan Albert
328dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_SRC_FILES := \
329c89e0ccd40624e8b2ce30d425e8bed0264fae548Dan Albert    daemon/main.cpp \
3306cd5e0b4efded6b86c27de7d97dd910190436867Casey Dahlin    daemon/mdns.cpp \
331bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    services.cpp \
332bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    file_sync_service.cpp \
333bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    framebuffer_service.cpp \
334bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    remount_service.cpp \
335bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    set_verity_enable_state_service.cpp \
33680f67029e002a97dd4f752881d820b3161f729f1David Pursell    shell_service.cpp \
337b9e2e84e7e3cc5c9f30d63ef7d1337363437d2c7David Pursell    shell_service_protocol.cpp \
338dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
33951448eb39ef28b6c0314668ce22aa1f4aa116e8dChristopher FerrisLOCAL_CFLAGS := \
3401ba1d7c1ee644967ff4743b0d257290cbeca7a83Dan Albert    $(ADB_COMMON_CFLAGS) \
341b7b1edf974a93cc4bb9a2de7a5e9c9bce9ad178bJosh Gao    $(ADB_COMMON_linux_CFLAGS) \
342bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    -DADB_HOST=0 \
343bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    -D_GNU_SOURCE \
344bac3474a8256cb32a29e8d46f78cad95a5502692Dan Albert    -Wno-deprecated-declarations \
345dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
3465cba504215ea91187cc36ec7aec5dce1b0f4b0feElliott HughesLOCAL_CFLAGS += -DALLOW_ADBD_NO_AUTH=$(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)),1,0)
3475890fe33141a9efd124c86c40a8c1ff6170ecf20Nick Kralevich
348ec7a66713144a16361724fe88332b28bbf3f4b3cElliott Hughesifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
349ec900bba20630934dc51a1b3a57d6d7a30fed325Paul LawrenceLOCAL_CFLAGS += -DALLOW_ADBD_DISABLE_VERITY=1
3505cba504215ea91187cc36ec7aec5dce1b0f4b0feElliott HughesLOCAL_CFLAGS += -DALLOW_ADBD_ROOT=1
351ec900bba20630934dc51a1b3a57d6d7a30fed325Paul Lawrenceendif
352ec900bba20630934dc51a1b3a57d6d7a30fed325Paul Lawrence
353dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_MODULE := adbd
354dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
355dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_FORCE_STATIC_EXECUTABLE := true
356dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_MODULE_PATH := $(TARGET_ROOT_OUT_SBIN)
357dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_SBIN_UNSTRIPPED)
358ec900bba20630934dc51a1b3a57d6d7a30fed325Paul Lawrence
3599113b47eacb955ec83fe8ecce67f7905b2c395beDan AlbertLOCAL_SANITIZE := $(adb_target_sanitize)
360809607ae288350ec20ef0dc1bb7f722b312038efJosh GaoLOCAL_STRIP_MODULE := keep_symbols
361630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan AlbertLOCAL_STATIC_LIBRARIES := \
3629449376328daa7c726ec693637fcdf1d3985640aDan Albert    libadbd \
363175b7bbfb4d935e1867a1d6df14e6ef94f2db2f4Tao Bao    libbase \
36440e0ec918e728911c0dc3fb3f76d5c0de83dd702Tao Bao    libbootloader_message \
365030b76fc1d2884b8bafb2bdcd4d9947b351d627dDan Albert    libfs_mgr \
3668ad80763e4b3bdcd80d16c63f03b19eb9df989b2Sami Tolvanen    libfec \
3678ad80763e4b3bdcd80d16c63f03b19eb9df989b2Sami Tolvanen    libfec_rs \
368bd2d961cc2875259677e34211d2e8ec071b0d8daWilliam Roberts    libselinux \
369630b9afeb0d7f0e5e053db0f900cfb65d914cb1aDan Albert    liblog \
370705353ae277e408e70169c0811c5d104a3b733f6Alex Deymo    libext4_utils \
3718ad80763e4b3bdcd80d16c63f03b19eb9df989b2Sami Tolvanen    libsquashfs_utils \
372e246219d0c9897b1c08204d6c535d5d341c4e7eeDan Albert    libcutils \
373e246219d0c9897b1c08204d6c535d5d341c4e7eeDan Albert    libbase \
37447763c3a09e8581338c307c5a5de4ae359c3b6e7Josh Gao    libcrypto_utils \
37547763c3a09e8581338c307c5a5de4ae359c3b6e7Josh Gao    libcrypto \
376809607ae288350ec20ef0dc1bb7f722b312038efJosh Gao    libminijail \
3776cd5e0b4efded6b86c27de7d97dd910190436867Casey Dahlin    libmdnssd \
378cbe70cb0a8cb0171f3802273050e851a47b090edJosh Gao    libdebuggerd_handler \
379dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
38029e1e7393d1742f9dd5663c63026f50981e5bd89Jeff Browninclude $(BUILD_EXECUTABLE)
38144c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gao
38244c688ca19a570b4d73f92f34d410e62ef491f0aJosh Gaoinclude $(call first-makefiles-under,$(LOCAL_PATH))
383