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#LOCAL_CFLAGS += -DENABLE_FENCE_TRACKING 48 49USE_HWC2 := false 50ifeq ($(USE_HWC2),true) 51 LOCAL_CFLAGS += -DUSE_HWC2 52 LOCAL_SRC_FILES += \ 53 SurfaceFlinger.cpp \ 54 DisplayHardware/HWComposer.cpp 55else 56 LOCAL_SRC_FILES += \ 57 SurfaceFlinger_hwc1.cpp \ 58 DisplayHardware/HWComposer_hwc1.cpp 59endif 60 61ifeq ($(TARGET_BOARD_PLATFORM),omap4) 62 LOCAL_CFLAGS += -DHAS_CONTEXT_PRIORITY 63endif 64ifeq ($(TARGET_BOARD_PLATFORM),s5pc110) 65 LOCAL_CFLAGS += -DHAS_CONTEXT_PRIORITY 66endif 67 68ifeq ($(TARGET_DISABLE_TRIPLE_BUFFERING),true) 69 LOCAL_CFLAGS += -DTARGET_DISABLE_TRIPLE_BUFFERING 70endif 71 72ifeq ($(TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS),true) 73 LOCAL_CFLAGS += -DFORCE_HWC_COPY_FOR_VIRTUAL_DISPLAYS 74endif 75 76ifneq ($(NUM_FRAMEBUFFER_SURFACE_BUFFERS),) 77 LOCAL_CFLAGS += -DNUM_FRAMEBUFFER_SURFACE_BUFFERS=$(NUM_FRAMEBUFFER_SURFACE_BUFFERS) 78endif 79 80ifeq ($(TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK),true) 81 LOCAL_CFLAGS += -DRUNNING_WITHOUT_SYNC_FRAMEWORK 82endif 83 84# See build/target/board/generic/BoardConfig.mk for a description of this setting. 85ifneq ($(VSYNC_EVENT_PHASE_OFFSET_NS),) 86 LOCAL_CFLAGS += -DVSYNC_EVENT_PHASE_OFFSET_NS=$(VSYNC_EVENT_PHASE_OFFSET_NS) 87else 88 LOCAL_CFLAGS += -DVSYNC_EVENT_PHASE_OFFSET_NS=0 89endif 90 91# See build/target/board/generic/BoardConfig.mk for a description of this setting. 92ifneq ($(SF_VSYNC_EVENT_PHASE_OFFSET_NS),) 93 LOCAL_CFLAGS += -DSF_VSYNC_EVENT_PHASE_OFFSET_NS=$(SF_VSYNC_EVENT_PHASE_OFFSET_NS) 94else 95 LOCAL_CFLAGS += -DSF_VSYNC_EVENT_PHASE_OFFSET_NS=0 96endif 97 98ifneq ($(PRESENT_TIME_OFFSET_FROM_VSYNC_NS),) 99 LOCAL_CFLAGS += -DPRESENT_TIME_OFFSET_FROM_VSYNC_NS=$(PRESENT_TIME_OFFSET_FROM_VSYNC_NS) 100else 101 LOCAL_CFLAGS += -DPRESENT_TIME_OFFSET_FROM_VSYNC_NS=0 102endif 103 104ifneq ($(MAX_VIRTUAL_DISPLAY_DIMENSION),) 105 LOCAL_CFLAGS += -DMAX_VIRTUAL_DISPLAY_DIMENSION=$(MAX_VIRTUAL_DISPLAY_DIMENSION) 106else 107 LOCAL_CFLAGS += -DMAX_VIRTUAL_DISPLAY_DIMENSION=0 108endif 109 110LOCAL_CFLAGS += -fvisibility=hidden -Werror=format 111LOCAL_CFLAGS += -std=c++14 112 113LOCAL_STATIC_LIBRARIES := libvkjson 114LOCAL_SHARED_LIBRARIES := \ 115 libcutils \ 116 liblog \ 117 libdl \ 118 libhardware \ 119 libutils \ 120 libEGL \ 121 libGLESv1_CM \ 122 libGLESv2 \ 123 libbinder \ 124 libui \ 125 libgui \ 126 libpowermanager \ 127 libvulkan 128 129LOCAL_MODULE := libsurfaceflinger 130 131LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code 132 133include $(BUILD_SHARED_LIBRARY) 134 135############################################################### 136# build surfaceflinger's executable 137include $(CLEAR_VARS) 138 139LOCAL_CLANG := true 140 141LOCAL_LDFLAGS := -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic 142LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\" 143LOCAL_CPPFLAGS := -std=c++14 144 145LOCAL_INIT_RC := surfaceflinger.rc 146 147ifneq ($(ENABLE_CPUSETS),) 148 LOCAL_CFLAGS += -DENABLE_CPUSETS 149endif 150 151LOCAL_SRC_FILES := \ 152 main_surfaceflinger.cpp 153 154LOCAL_SHARED_LIBRARIES := \ 155 libsurfaceflinger \ 156 libcutils \ 157 liblog \ 158 libbinder \ 159 libutils \ 160 libdl 161 162LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain 163 164LOCAL_MODULE := surfaceflinger 165 166ifdef TARGET_32_BIT_SURFACEFLINGER 167LOCAL_32_BIT_ONLY := true 168endif 169 170LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code 171 172include $(BUILD_EXECUTABLE) 173 174############################################################### 175# uses jni which may not be available in PDK 176ifneq ($(wildcard libnativehelper/include),) 177include $(CLEAR_VARS) 178 179LOCAL_CLANG := true 180 181LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\" 182LOCAL_CPPFLAGS := -std=c++14 183 184LOCAL_SRC_FILES := \ 185 DdmConnection.cpp 186 187LOCAL_SHARED_LIBRARIES := \ 188 libcutils \ 189 liblog \ 190 libdl 191 192LOCAL_MODULE := libsurfaceflinger_ddmconnection 193 194LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code 195 196include $(BUILD_SHARED_LIBRARY) 197endif # libnativehelper 198