168 lines
6.0 KiB
Makefile
168 lines
6.0 KiB
Makefile
################################################################################
|
|
#
|
|
# aml_tvserver
|
|
#
|
|
################################################################################
|
|
OUT_DIR ?= .
|
|
BASEDIR := $(shell basename $(CURDIR))
|
|
OBJDIR ?= $(OUT_DIR)
|
|
PROTO_DIR := $(OBJDIR)/$(BASEDIR)
|
|
LOCAL_PATH = $(shell pwd)
|
|
LDFLAGS += -Wl,--no-as-needed -lstdc++ -lpthread -lz -ldl -lrt -L$(STAGING_DIR)/usr/lib
|
|
CFLAGS += -Wall -Wno-unknown-pragmas -Wno-format -Wno-format-security\
|
|
-O3 -fexceptions -fnon-call-exceptions -D_GNU_SOURCE \
|
|
-I$(STAGING_DIR)/usr/include
|
|
|
|
ifeq (${REMOVE_AUDIO}, )
|
|
CFLAGS += -DHAVE_AUDIO
|
|
endif
|
|
|
|
$(info VIDEO_BACKEND=$(VIDEO_BACKEND))
|
|
ifeq ($(VIDEO_BACKEND),wayland)
|
|
CFLAGS += -DUSE_WAYLAND=1 -I$(PROTO_DIR)
|
|
LDFLAGS += -lwayland-client -ldrm -lvideotunnel
|
|
else ifeq ($(VIDEO_BACKEND),displayadapter)
|
|
CFLAGS += -DUSE_VIDEOCOMPOSER=1
|
|
LDFLAGS += -ldisplayadapter -lvideotunnel
|
|
else
|
|
CFLAGS += -DUSE_AMVIDEO=1
|
|
endif
|
|
|
|
LDFLAGS += -L $(OUT_DIR)/
|
|
|
|
ifeq (${REMOVE_AUDIO}, )
|
|
TV_LDFLAGS += -laudio_client
|
|
endif
|
|
|
|
################################################################################
|
|
# libtv.so - src files
|
|
################################################################################
|
|
tv_SRCS = \
|
|
$(LOCAL_PATH)/libtv/tvutils/CFile.cpp \
|
|
$(LOCAL_PATH)/libtv/tvutils/ConfigFile.cpp \
|
|
$(LOCAL_PATH)/libtv/tvutils/CSerialPort.cpp \
|
|
$(LOCAL_PATH)/libtv/tvutils/TvConfigManager.cpp \
|
|
$(LOCAL_PATH)/libtv/tvutils/tvutils.cpp \
|
|
$(LOCAL_PATH)/libtv/tvutils/zepoll.cpp \
|
|
$(LOCAL_PATH)/libtv/tvutils/CMsgQueue.cpp \
|
|
$(LOCAL_PATH)/libtv/CHDMIRxManager.cpp \
|
|
$(LOCAL_PATH)/libtv/CTv.cpp \
|
|
$(LOCAL_PATH)/libtv/CTvin.cpp \
|
|
$(LOCAL_PATH)/libtv/CTvDevicesPollDetect.cpp \
|
|
$(LOCAL_PATH)/libtv/CAmVideo.cpp \
|
|
$(LOCAL_PATH)/libtv/CVpp.cpp \
|
|
$(LOCAL_PATH)/libtv/CVrr.cpp \
|
|
$(LOCAL_PATH)/common/CTvLog.cpp \
|
|
$(LOCAL_PATH)/libtv/panel/CTvPanel.cpp \
|
|
$(LOCAL_PATH)/libtv/panel/CTvTconlessFileLoad.cpp \
|
|
$(LOCAL_PATH)/libtv/CTvResman.cpp \
|
|
$(LOCAL_PATH)/libtv/CTvDisplayadapter.cpp \
|
|
$(LOCAL_PATH)/libtv/CTvWayland.cpp \
|
|
$(NULL)
|
|
|
|
ifeq (${REMOVE_AUDIO}, )
|
|
tv_SRCS += $(LOCAL_PATH)/libtv/CTvAudio.cpp
|
|
endif
|
|
|
|
ifeq ($(VIDEO_BACKEND),wayland)
|
|
tv_SRCS += \
|
|
$(PROTO_DIR)/xdg-shell-protocol.c \
|
|
$(PROTO_DIR)/linux-dmabuf-unstable-v1-protocol.c \
|
|
$(PROTO_DIR)/viewporter-protocol.c \
|
|
$(PROTO_DIR)/fullscreen-shell-unstable-v1-protocol.c \
|
|
$(PROTO_DIR)/weston-direct-display-protocol.c
|
|
endif
|
|
|
|
tvcommon_HEADERS = \
|
|
-I$(LOCAL_PATH)/common \
|
|
-I$(LOCAL_PATH)/include \
|
|
$(NULL)
|
|
|
|
################################################################################
|
|
# libtvclient.so - src files
|
|
################################################################################
|
|
tvclient_SRCS = \
|
|
$(LOCAL_PATH)/dbus/tvclient.cpp \
|
|
$(LOCAL_PATH)/client/TvClientWrapper.cpp \
|
|
$(LOCAL_PATH)/common/CTvLog.cpp \
|
|
$(NULL)
|
|
|
|
################################################################################
|
|
# tvservice - src files
|
|
################################################################################
|
|
tvservice_SRCS = \
|
|
$(LOCAL_PATH)/dbus/tvservice.cpp \
|
|
$(NULL)
|
|
|
|
################################################################################
|
|
# tvtest - src files
|
|
################################################################################
|
|
tvtest_SRCS = \
|
|
$(LOCAL_PATH)/test/main_tvtest.c \
|
|
$(NULL)
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Build rules
|
|
BUILD_TARGETS = libtvclient.so libtv.so tvservice tvtest
|
|
BUILD_TARGETS_FULLPATH := $(patsubst %, $(OUT_DIR)/%, $(BUILD_TARGETS))
|
|
|
|
.PHONY: all install clean
|
|
|
|
libtvclient.so: $(tvclient_SRCS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -lsystemd -shared -fPIC $(tvcommon_HEADERS) \
|
|
-o $(OUT_DIR)/$@ $^ $(LDLIBS)
|
|
|
|
libtv.so: $(tv_SRCS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -lubootenv -shared -lmediahal_resman -fPIC $(tvcommon_HEADERS) \
|
|
-I$(LOCAL_PATH)/libtv/tvutils -I$(LOCAL_PATH)/libtv/panel \
|
|
$(TV_LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
|
|
|
|
tvservice: $(tvservice_SRCS) libtv.so
|
|
$(CXX) $(CXXFLAGS) $(CFLAGS) $(LDFLAGS) $(tvcommon_HEADERS) \
|
|
-I$(LOCAL_PATH)/libtv -I$(LOCAL_PATH)/libtv/tvutils -I$(LOCAL_PATH)/libtv/panel \
|
|
-L$(LOCAL_PATH) -ltv -lsystemd -o $(OUT_DIR)/$@ $(filter-out %.so,$^) $(LDLIBS)
|
|
|
|
tvtest: $(tvtest_SRCS) libtvclient.so
|
|
$(CC) $(CFLAGS) $(tvcommon_HEADERS) -L$(LOCAL_PATH) \
|
|
-ltvclient $(LDFLAGS) -o $(OUT_DIR)/$@ $(filter-out %.so,$^) $(LDLIBS)
|
|
|
|
all: $(BUILD_TARGETS)
|
|
|
|
clean:
|
|
rm -f $(OUT_DIR)/*.o $(BUILD_TARGETS_FULLPATH)
|
|
rm -rf $(TARGET_DIR)/usr/lib/libtv.so
|
|
rm -rf $(TARGET_DIR)/usr/bin/tvservice
|
|
rm -rf $(TARGET_DIR)/usr/lib/libtvclient.so
|
|
rm -rf $(TARGET_DIR)/usr/bin/tvtest
|
|
rm -rf $(TARGET_DIR)/etc/dbus-1/system.d/amlogic.yocto.tvservice.conf
|
|
|
|
install:
|
|
install -m 0644 $(OUT_DIR)/libtv.so $(TARGET_DIR)/usr/lib/
|
|
install -m 0755 $(OUT_DIR)/tvservice $(TARGET_DIR)/usr/bin/
|
|
install -m 0644 $(OUT_DIR)/libtvclient.so $(TARGET_DIR)/usr/lib
|
|
install -m 0755 $(OUT_DIR)/tvtest $(TARGET_DIR)/usr/bin/
|
|
install -d $(TARGET_DIR)/etc/dbus-1/system.d/
|
|
install -m 0644 $(LOCAL_PATH)/dbus/amlogic.yocto.tvserver.conf $(TARGET_DIR)/etc/dbus-1/system.d/
|
|
|
|
create-dir:
|
|
mkdir -p $(PROTO_DIR)
|
|
|
|
define gen_wayland_client
|
|
$(PROTO_DIR)/$3-protocol.c : $(STAGING_DIR)/usr/share/wayland-protocols/$1/$2/$3.xml $(PROTO_DIR)/$3-client-protocol.h | create-dir
|
|
wayland-scanner private-code $$< $$@
|
|
$(PROTO_DIR)/$3-client-protocol.h : $(STAGING_DIR)/usr/share/wayland-protocols/$1/$2/$3.xml | create-dir
|
|
wayland-scanner client-header $$< $$@
|
|
endef
|
|
|
|
WESTON_DD_XML := $(LOCAL_PATH)/protocol/weston-direct-display.xml
|
|
$(PROTO_DIR)/weston-direct-display-client-protocol.h: $(WESTON_DD_XML) | create-dir
|
|
wayland-scanner client-header $< $@
|
|
|
|
$(PROTO_DIR)/weston-direct-display-protocol.c: $(WESTON_DD_XML) $(PROTO_DIR)/weston-direct-display-client-protocol.h | create-dir
|
|
wayland-scanner private-code $< $@
|
|
|
|
$(eval $(call gen_wayland_client,stable,xdg-shell,xdg-shell))
|
|
$(eval $(call gen_wayland_client,unstable,linux-dmabuf,linux-dmabuf-unstable-v1))
|
|
$(eval $(call gen_wayland_client,stable,viewporter,viewporter))
|
|
$(eval $(call gen_wayland_client,unstable,fullscreen-shell,fullscreen-shell-unstable-v1))
|