1LOCAL_PATH := $(call my-dir)
2include $(CLEAR_VARS)
3
4LOCAL_CLANG := true
5
6LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
7LOCAL_SRC_FILES := \
8    Client.cpp \
9    DisplayDevice.cpp \
10    DispSync.cpp \
11    EventControlThread.cpp \
12    StartBootAnimThread.cpp \
13    EventThread.cpp \
14    FrameTracker.cpp \
15    GpuService.cpp \
16    Layer.cpp \
17    LayerDim.cpp \
18    LayerRejecter.cpp \
19    LayerVector.cpp \
20    MessageQueue.cpp \
21    MonitoredProducer.cpp \
22    SurfaceFlingerConsumer.cpp \
23    SurfaceInterceptor.cpp \
24    Transform.cpp \
25    DisplayHardware/ComposerHal.cpp \
26    DisplayHardware/FramebufferSurface.cpp \
27    DisplayHardware/HWC2.cpp \
28    DisplayHardware/HWComposerBufferCache.cpp \
29    DisplayHardware/PowerHAL.cpp \
30    DisplayHardware/VirtualDisplaySurface.cpp \
31    Effects/Daltonizer.cpp \
32    EventLog/EventLogTags.logtags \
33    EventLog/EventLog.cpp \
34    RenderEngine/Description.cpp \
35    RenderEngine/Mesh.cpp \
36    RenderEngine/Program.cpp \
37    RenderEngine/ProgramCache.cpp \
38    RenderEngine/GLExtensions.cpp \
39    RenderEngine/RenderEngine.cpp \
40    RenderEngine/Texture.cpp \
41    RenderEngine/GLES20RenderEngine.cpp \
42
43LOCAL_MODULE := libsurfaceflinger
44LOCAL_C_INCLUDES := \
45    frameworks/native/vulkan/include \
46    external/vulkan-validation-layers/libs/vkjson \
47    system/libhwbinder/fast_msgq/include \
48
49LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"
50LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
51
52ifeq ($(TARGET_USES_HWC2),true)
53    LOCAL_CFLAGS += -DUSE_HWC2
54    LOCAL_SRC_FILES += \
55        SurfaceFlinger.cpp \
56        DisplayHardware/HWComposer.cpp
57else
58    LOCAL_SRC_FILES += \
59        SurfaceFlinger_hwc1.cpp \
60        DisplayHardware/HWComposer_hwc1.cpp
61endif
62
63LOCAL_CFLAGS += -fvisibility=hidden -Werror=format
64
65LOCAL_STATIC_LIBRARIES := \
66    libhwcomposer-command-buffer \
67    libtrace_proto \
68    libvkjson \
69    libvr_manager \
70    libvrflinger
71
72LOCAL_SHARED_LIBRARIES := \
73    android.frameworks.vr.composer@1.0 \
74    android.hardware.graphics.allocator@2.0 \
75    android.hardware.graphics.composer@2.1 \
76    android.hardware.configstore@1.0 \
77    android.hardware.configstore-utils \
78    libcutils \
79    liblog \
80    libdl \
81    libfmq \
82    libhardware \
83    libhidlbase \
84    libhidltransport \
85    libhwbinder \
86    libutils \
87    libEGL \
88    libGLESv1_CM \
89    libGLESv2 \
90    libbinder \
91    libui \
92    libgui \
93    libpowermanager \
94    libvulkan \
95    libsync \
96    libprotobuf-cpp-lite \
97    libbase \
98    android.hardware.power@1.0
99
100LOCAL_EXPORT_SHARED_LIBRARY_HEADERS := \
101    android.hardware.graphics.allocator@2.0 \
102    android.hardware.graphics.composer@2.1 \
103    libhidlbase \
104    libhidltransport \
105    libhwbinder
106
107LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
108
109include $(BUILD_SHARED_LIBRARY)
110
111###############################################################
112# build surfaceflinger's executable
113include $(CLEAR_VARS)
114
115LOCAL_CLANG := true
116
117LOCAL_LDFLAGS_32 := -Wl,--version-script,art/sigchainlib/version-script32.txt -Wl,--export-dynamic
118LOCAL_LDFLAGS_64 := -Wl,--version-script,art/sigchainlib/version-script64.txt -Wl,--export-dynamic
119LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"
120
121LOCAL_INIT_RC := surfaceflinger.rc
122
123ifeq ($(TARGET_USES_HWC2),true)
124    LOCAL_CFLAGS += -DUSE_HWC2
125endif
126
127LOCAL_SRC_FILES := \
128    main_surfaceflinger.cpp
129
130LOCAL_SHARED_LIBRARIES := \
131    android.frameworks.displayservice@1.0 \
132    android.hardware.configstore@1.0 \
133    android.hardware.configstore-utils \
134    android.hardware.graphics.allocator@2.0 \
135    libsurfaceflinger \
136    libcutils \
137    libdisplayservicehidl \
138    liblog \
139    libbinder \
140    libhidlbase \
141    libhidltransport \
142    libutils \
143    libui \
144    libgui \
145    libdl
146
147LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain
148LOCAL_STATIC_LIBRARIES := libtrace_proto
149
150LOCAL_MODULE := surfaceflinger
151
152ifdef TARGET_32_BIT_SURFACEFLINGER
153LOCAL_32_BIT_ONLY := true
154endif
155
156LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
157
158include $(BUILD_EXECUTABLE)
159
160###############################################################
161# uses jni which may not be available in PDK
162ifneq ($(wildcard libnativehelper/include),)
163include $(CLEAR_VARS)
164
165LOCAL_CLANG := true
166
167LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"
168
169LOCAL_SRC_FILES := \
170    DdmConnection.cpp
171
172LOCAL_SHARED_LIBRARIES := \
173    libcutils \
174    liblog \
175    libdl
176
177LOCAL_MODULE := libsurfaceflinger_ddmconnection
178
179LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
180
181include $(BUILD_SHARED_LIBRARY)
182endif # libnativehelper
183
184include $(call first-makefiles-under,$(LOCAL_PATH))
185