################################################################################ # # libcomposition # ################################################################################ LOCAL_PATH = $(shell pwd) LDFLAGS += -Wl,--no-as-needed -lstdc++ -lpthread -ldl -lrt -llog -L$(STAGING_DIR)/usr/lib CFLAGS += -Wall -Werror -Wno-unknown-pragmas -Wno-format -Wno-format-security -Wno-error=unused-result -Wno-error=sign-compare -Wno-unused-variable -Wno-error=attributes -g \ -O3 -fexceptions -fnon-call-exceptions -D_GNU_SOURCE -I$(STAGING_DIR)/usr/include -Wno-unused-but-set-variable MIN_GCC_VERSION = "10" GCC_VERSION := "`$(CC) -dumpversion | cut -f1 -d'.'`" IS_GCC_ABOVE_MIN_VERSION := $(shell expr "$(GCC_VERSION)" ">=" "$(MIN_GCC_VERSION)") ifeq "$(IS_GCC_ABOVE_MIN_VERSION)" "1" CFLAGS += -std=gnu++20 -DROKU_LOG -I$(STAGING_DIR)/usr/include/libdrm -DHWC_RELEASE -DKEEP_VIDEO_BOTTOM -DLINUX_COMPILE LDFLAGS += -L$(PLATFORM_COMMON_SYSRDIR)/lib ROKU_LOG_HEADER = -I$(PLATFORM_COMMON_SYSRDIR)/include endif composition_SRCS = \ $(LOCAL_PATH)/composition/Composition.cpp \ $(LOCAL_PATH)/composition/CompositionStrategyBase.cpp \ $(LOCAL_PATH)/common/base/DrmFramebufferBase.cpp \ $(LOCAL_PATH)/common/base/DrmTypes.cpp \ $(LOCAL_PATH)/common/base/DrmSync.cpp \ $(LOCAL_PATH)/common/hwc/HwcVsyncBase.cpp \ $(LOCAL_PATH)/common/display/HwDisplayPlaneBase.cpp \ $(LOCAL_PATH)/common/utils/DebugHelper.cpp \ $(LOCAL_PATH)/common/utils/MesonLog.cpp \ $(LOCAL_PATH)/common/videotunnel/VideoTunnelDev.cpp \ $(LOCAL_PATH)/common/videotunnel/VtAllocSolidColorBuffer.cpp \ $(LOCAL_PATH)/common/videotunnel/VtConsumer.cpp \ $(LOCAL_PATH)/common/videotunnel/VtHandleEventsThread.cpp \ $(LOCAL_PATH)/common/videotunnel/VtInstance.cpp \ $(LOCAL_PATH)/common/videotunnel/VtInstanceMgr.cpp \ $(LOCAL_PATH)/libs/libuvm/UvmDetach.cpp \ $(LOCAL_PATH)/libs/libuvm/UvmDev.cpp \ $(NULL) composition_HEADERS = \ -I$(LOCAL_PATH)/composition/include \ -I$(LOCAL_PATH)/common/base/include \ -I$(LOCAL_PATH)/common/display/include \ -I$(LOCAL_PATH)/common/hwc/include \ -I$(LOCAL_PATH)/common/utils/include \ -I$(LOCAL_PATH)/common/videotunnel/include \ -I$(LOCAL_PATH)/libs/libuvm/include \ $(ROKU_LOG_HEADER) \ $(NULL) OUT_DIR ?= . # --------------------------------------------------------------------- # Build rules BUILD_TARGETS = libcomposition.so .PHONY: all install uninstall clean libcomposition.so: $(composition_SRCS) $(CC) $(CFLAGS) $(LDFLAGS) -shared -fPIC $(composition_HEADERS) \ -o $(OUT_DIR)/$@ $^ all: $(BUILD_TARGETS) clean: rm -f *.o $(OUT_DIR)/$(BUILD_TARGETS) install: install -m 0644 libcomposition.so $(TARGET_DIR)/usr/lib/ install -m 644 composition/include/* $(TARGET_DIR)/usr/include/ install -m 644 common/base/include/* $(TARGET_DIR)/usr/include/ install -m 644 common/display/include/HwDisplayCrtcBase.h $(TARGET_DIR)/usr/include/ install -m 644 common/display/include/HwDisplayPlaneBase.h $(TARGET_DIR)/usr/include/ install -m 644 common/hwc/include/HwcVsyncBase.h $(TARGET_DIR)/usr/include/ install -m 644 common/utils/include/* $(TARGET_DIR)/usr/include/ install -m 644 common/videotunnel/include/* $(TARGET_DIR)/usr/include/ install -m 644 libs/libuvm/include/* $(TARGET_DIR)/usr/include/ uninstall: rm -f $(TARGET_DIR)/usr/lib/libcomposition.so