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 EventThread.cpp \ 13 FenceTracker.cpp \ 14 FrameTracker.cpp \ 15 GpuService.cpp \ 16 Layer.cpp \ 17 LayerDim.cpp \ 18 MessageQueue.cpp \ 19 MonitoredProducer.cpp \ 20 SurfaceFlingerConsumer.cpp \ 21 Transform.cpp \ 22 DisplayHardware/FramebufferSurface.cpp \ 23 DisplayHardware/HWC2.cpp \ 24 DisplayHardware/HWC2On1Adapter.cpp \ 25 DisplayHardware/PowerHAL.cpp \ 26 DisplayHardware/VirtualDisplaySurface.cpp \ 27 Effects/Daltonizer.cpp \ 28 EventLog/EventLogTags.logtags \ 29 EventLog/EventLog.cpp \ 30 RenderEngine/Description.cpp \ 31 RenderEngine/Mesh.cpp \ 32 RenderEngine/Program.cpp \ 33 RenderEngine/ProgramCache.cpp \ 34 RenderEngine/GLExtensions.cpp \ 35 RenderEngine/RenderEngine.cpp \ 36 RenderEngine/Texture.cpp \ 37 RenderEngine/GLES10RenderEngine.cpp \ 38 RenderEngine/GLES11RenderEngine.cpp \ 39 RenderEngine/GLES20RenderEngine.cpp 40 41LOCAL_C_INCLUDES := \ 42 frameworks/native/vulkan/include \ 43 external/vulkan-validation-layers/libs/vkjson 44 45LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\" 46LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES 47 48ifeq ($(TARGET_USES_HWC2),true) 49 LOCAL_CFLAGS += -DUSE_HWC2 50 LOCAL_SRC_FILES += \ 51 SurfaceFlinger.cpp \ 52 DisplayHardware/HWComposer.cpp 53else 54 LOCAL_SRC_FILES += \ 55 SurfaceFlinger_hwc1.cpp \ 56 DisplayHardware/HWComposer_hwc1.cpp 57endif 58 59ifeq ($(TARGET_BOARD_PLATFORM),omap4) 60 LOCAL_CFLAGS += -DHAS_CONTEXT_PRIORITY 61endif 62ifeq ($(TARGET_BOARD_PLATFORM),s5pc110) 63 LOCAL_CFLAGS += -DHAS_CONTEXT_PRIORITY 64endif 65 66ifeq ($(TARGET_DISABLE_TRIPLE_BUFFERING),true) 67 LOCAL_CFLAGS += -DTARGET_DISABLE_TRIPLE_BUFFERING 68endif 69 70ifeq ($(TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS),true) 71 LOCAL_CFLAGS += -DFORCE_HWC_COPY_FOR_VIRTUAL_DISPLAYS 72endif 73 74ifneq ($(NUM_FRAMEBUFFER_SURFACE_BUFFERS),) 75 LOCAL_CFLAGS += -DNUM_FRAMEBUFFER_SURFACE_BUFFERS=$(NUM_FRAMEBUFFER_SURFACE_BUFFERS) 76endif 77 78ifeq ($(TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK),true) 79 LOCAL_CFLAGS += -DRUNNING_WITHOUT_SYNC_FRAMEWORK 80endif 81 82# See build/target/board/generic/BoardConfig.mk for a description of this setting. 83ifneq ($(VSYNC_EVENT_PHASE_OFFSET_NS),) 84 LOCAL_CFLAGS += -DVSYNC_EVENT_PHASE_OFFSET_NS=$(VSYNC_EVENT_PHASE_OFFSET_NS) 85else 86 LOCAL_CFLAGS += -DVSYNC_EVENT_PHASE_OFFSET_NS=0 87endif 88 89# See build/target/board/generic/BoardConfig.mk for a description of this setting. 90ifneq ($(SF_VSYNC_EVENT_PHASE_OFFSET_NS),) 91 LOCAL_CFLAGS += -DSF_VSYNC_EVENT_PHASE_OFFSET_NS=$(SF_VSYNC_EVENT_PHASE_OFFSET_NS) 92else 93 LOCAL_CFLAGS += -DSF_VSYNC_EVENT_PHASE_OFFSET_NS=0 94endif 95 96ifneq ($(PRESENT_TIME_OFFSET_FROM_VSYNC_NS),) 97 LOCAL_CFLAGS += -DPRESENT_TIME_OFFSET_FROM_VSYNC_NS=$(PRESENT_TIME_OFFSET_FROM_VSYNC_NS) 98else 99 LOCAL_CFLAGS += -DPRESENT_TIME_OFFSET_FROM_VSYNC_NS=0 100endif 101 102ifneq ($(MAX_VIRTUAL_DISPLAY_DIMENSION),) 103 LOCAL_CFLAGS += -DMAX_VIRTUAL_DISPLAY_DIMENSION=$(MAX_VIRTUAL_DISPLAY_DIMENSION) 104else 105 LOCAL_CFLAGS += -DMAX_VIRTUAL_DISPLAY_DIMENSION=0 106endif 107 108LOCAL_CFLAGS += -fvisibility=hidden -Werror=format 109LOCAL_CFLAGS += -std=c++14 110 111LOCAL_STATIC_LIBRARIES := libvkjson 112LOCAL_SHARED_LIBRARIES := \ 113 libcutils \ 114 liblog \ 115 libdl \ 116 libhardware \ 117 libutils \ 118 libEGL \ 119 libGLESv1_CM \ 120 libGLESv2 \ 121 libbinder \ 122 libui \ 123 libgui \ 124 libpowermanager \ 125 libvulkan 126 127LOCAL_MODULE := libsurfaceflinger 128 129LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code 130 131include $(BUILD_SHARED_LIBRARY) 132 133############################################################### 134# build surfaceflinger's executable 135include $(CLEAR_VARS) 136 137LOCAL_CLANG := true 138 139LOCAL_LDFLAGS := -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic 140LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\" 141LOCAL_CPPFLAGS := -std=c++14 142 143LOCAL_INIT_RC := surfaceflinger.rc 144 145ifneq ($(ENABLE_CPUSETS),) 146 LOCAL_CFLAGS += -DENABLE_CPUSETS 147endif 148 149ifeq ($(TARGET_USES_HWC2),true) 150 LOCAL_CFLAGS += -DUSE_HWC2 151endif 152 153LOCAL_SRC_FILES := \ 154 main_surfaceflinger.cpp 155 156LOCAL_SHARED_LIBRARIES := \ 157 libsurfaceflinger \ 158 libcutils \ 159 liblog \ 160 libbinder \ 161 libutils \ 162 libdl 163 164LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain 165 166LOCAL_MODULE := surfaceflinger 167 168ifdef TARGET_32_BIT_SURFACEFLINGER 169LOCAL_32_BIT_ONLY := true 170endif 171 172LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code 173 174include $(BUILD_EXECUTABLE) 175 176############################################################### 177# uses jni which may not be available in PDK 178ifneq ($(wildcard libnativehelper/include),) 179include $(CLEAR_VARS) 180 181LOCAL_CLANG := true 182 183LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\" 184LOCAL_CPPFLAGS := -std=c++14 185 186LOCAL_SRC_FILES := \ 187 DdmConnection.cpp 188 189LOCAL_SHARED_LIBRARIES := \ 190 libcutils \ 191 liblog \ 192 libdl 193 194LOCAL_MODULE := libsurfaceflinger_ddmconnection 195 196LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code 197 198include $(BUILD_SHARED_LIBRARY) 199endif # libnativehelper 200