1include rules_yocto.mk
2NAME = adbd
3
4SOURCES = \
5	adb/adbconnection/adbconnection_server.cpp \
6	adb/daemon/auth.cpp \
7	adb/daemon/file_sync_service.cpp \
8	adb/daemon/file_sync_service.h \
9	adb/daemon/framebuffer_service.cpp \
10	adb/daemon/framebuffer_service.h \
11	adb/daemon/jdwp_service.cpp \
12	adb/daemon/main.cpp \
13	adb/daemon/restart_service.cpp \
14	adb/daemon/restart_service.h \
15	adb/daemon/services.cpp \
16	adb/daemon/shell_service.cpp \
17	adb/daemon/shell_service.h \
18	adb/daemon/usb_ffs.cpp \
19	adb/daemon/usb_legacy.cpp \
20	adb/daemon/usb.cpp \
21	adb/shell_service_protocol.cpp \
22	adb/adb.cpp \
23	adb/adb_io.cpp \
24	adb/adb_listeners.cpp \
25	adb/adb_trace.cpp \
26	adb/adb_unique_fd.cpp \
27	adb/adb_utils.cpp \
28	adb/fdevent/fdevent.cpp \
29	adb/fdevent/fdevent_epoll.cpp \
30	adb/services.cpp \
31	adb/sockets.cpp \
32	adb/socket_spec.cpp \
33	adb/sysdeps/errno.cpp \
34	adb/sysdeps/posix/network.cpp \
35	adb/sysdeps_unix.cpp \
36	adb/transport.cpp \
37	adb/transport_fd.cpp \
38	adb/transport_local.cpp \
39	adb/transport_usb.cpp \
40	adb/types.cpp \
41	diagnose_usb/diagnose_usb.cpp \
42	libasyncio/AsyncIO.cpp \
43
44SOURCES := $(foreach source, $(SOURCES), system/core/$(source))
45
46SOURCES += \
47    frameworks/native/libs/adbd_auth/adbd_auth.cpp
48
49CXXFLAGS += -std=gnu++20
50CPPFLAGS += -Isystem/coreinclude -Isystem/core/adb -Isystem/core/base/include  -Idebian/out/system/core -Isystem/tools/mkbootimg/include/bootimg -Isystem/core/fs_mgr/include \
51	    -Isystem/core/fs_mgr/include_fstab \
52            -DADB_VERSION='"$(DEB_VERSION)"' -D_GNU_SOURCE
53LDFLAGS += -Wl,-rpath='$$ORIGIN/../lib/android' -Wl,-rpath-link='$$ORIGIN/../lib/android' \
54           -lpthread -Ldebian/out/system/core -Ldebian/out/external/boringssl -lbase -lcrypto_utils -l:libcrypto.a -lcutils -llog -lresolv
55
56PAGE_SIZE ?= 4096
57
58CXXFLAGS += -UADB_HOST
59CXXFLAGS +=	-DADB_HOST=0
60CXXFLAGS += -DALLOW_ADBD_DISABLE_VERITY
61CXXFLAGS += -DALLOW_ADBD_NO_AUTH
62CXXFLAGS += -DPLATFORM_TOOLS_VERSION='"28.0.2"'
63CXXFLAGS += -Isystem/core/diagnose_usb/include
64CXXFLAGS += -Isystem/core/adb/daemon/include
65CXXFLAGS += -Isystem/core/adb/adbconnection/include
66CXXFLAGS += -Isystem/core/libasyncio/include
67CXXFLAGS += -Isystem/core/libcutils/include
68CXXFLAGS += -Isystem/core/libcrypto_utils/include
69CXXFLAGS += -Isystem/core/liblog/include/
70CXXFLAGS += -Isystem/core/libutils/include
71CXXFLAGS += -Iframeworks/native/libs/adbd_auth/include
72CXXFLAGS += -Wno-c++11-narrowing
73CXXFLAGS += -DPAGE_SIZE=$(PAGE_SIZE)
74
75
76# -latomic should be the last library specified
77# https://github.com/android/ndk/issues/589
78ifneq ($(filter armel mipsel,$(DEB_HOST_ARCH)),)
79  LDFLAGS += -latomic
80endif
81
82build: $(SOURCES)
83	mkdir --parents debian/out/system/core
84	$(CXX) $^ -o debian/out/system/core/adbd $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
85
86clean:
87	$(RM) debian/out/system/core/adbd
88