158 lines
5.5 KiB
Makefile
158 lines
5.5 KiB
Makefile
################################################################################
|
|
#
|
|
# aml_tvserver - libtv only
|
|
#
|
|
# Build/install only the libtv layer (libtv.so) and the development
|
|
# headers required to compile against it.
|
|
#
|
|
################################################################################
|
|
OUT_DIR ?= .
|
|
BASEDIR := $(shell basename $(CURDIR))
|
|
OBJDIR ?= $(OUT_DIR)
|
|
PROTO_DIR := $(OBJDIR)/$(BASEDIR)
|
|
LOCAL_PATH = $(shell pwd)
|
|
|
|
DESTDIR ?=
|
|
LIB_INSTALL_DIR ?= $(DESTDIR)$(TARGET_DIR)/usr/lib
|
|
HDR_INSTALL_DIR ?= $(DESTDIR)$(TARGET_DIR)/usr/include/libtv
|
|
|
|
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 -DHAVE_AUDIO
|
|
|
|
LDFLAGS += -llog -lubootenv -lmediahal_resman
|
|
|
|
$(info VIDEO_BACKEND=$(VIDEO_BACKEND))
|
|
ifeq ($(VIDEO_BACKEND),wayland)
|
|
CFLAGS += -DUSE_WAYLAND=1 -I$(PROTO_DIR)
|
|
LDFLAGS += -lwayland-client -ldrm
|
|
else ifeq ($(VIDEO_BACKEND),displayadapter)
|
|
CFLAGS += -DUSE_VIDEOCOMPOSER=1
|
|
LDFLAGS += -ldisplayadapter
|
|
else
|
|
CFLAGS += -DUSE_AMVIDEO=1
|
|
endif
|
|
|
|
LDFLAGS += -L $(OUT_DIR)/
|
|
|
|
################################################################################
|
|
# 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/CTvAudio.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 ($(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)
|
|
|
|
################################################################################
|
|
# development headers installed for building against libtv
|
|
################################################################################
|
|
tvdev_HEADERS = \
|
|
$(LOCAL_PATH)/include/tvapi.h \
|
|
$(LOCAL_PATH)/include/TvCommon.h \
|
|
$(LOCAL_PATH)/include/CTvEvent.h \
|
|
$(LOCAL_PATH)/common/CTvLog.h \
|
|
$(LOCAL_PATH)/common/tvcmd.h \
|
|
$(LOCAL_PATH)/libtv/CTv.h \
|
|
$(LOCAL_PATH)/libtv/CTvin.h \
|
|
$(LOCAL_PATH)/libtv/CTvAudio.h \
|
|
$(LOCAL_PATH)/libtv/CAmVideo.h \
|
|
$(LOCAL_PATH)/libtv/CHDMIRxManager.h \
|
|
$(LOCAL_PATH)/libtv/CTvDevicesPollDetect.h \
|
|
$(LOCAL_PATH)/libtv/CTvDisplayadapter.h \
|
|
$(LOCAL_PATH)/libtv/CTvWayland.h \
|
|
$(LOCAL_PATH)/libtv/CTvResman.h \
|
|
$(LOCAL_PATH)/libtv/CVpp.h \
|
|
$(LOCAL_PATH)/libtv/CVrr.h \
|
|
$(LOCAL_PATH)/libtv/panel/CTvPanel.h \
|
|
$(LOCAL_PATH)/libtv/tvutils/tvutils.h \
|
|
$(LOCAL_PATH)/libtv/tvutils/CFile.h \
|
|
$(LOCAL_PATH)/libtv/tvutils/ConfigFile.h \
|
|
$(LOCAL_PATH)/libtv/tvutils/CMsgQueue.h \
|
|
$(LOCAL_PATH)/libtv/tvutils/CSerialPort.h \
|
|
$(LOCAL_PATH)/libtv/tvutils/TvConfigManager.h \
|
|
$(LOCAL_PATH)/libtv/tvutils/zepoll.h \
|
|
$(NULL)
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Build rules
|
|
BUILD_TARGETS = libtv.so
|
|
BUILD_TARGETS_FULLPATH := $(patsubst %, $(OUT_DIR)/%, $(BUILD_TARGETS))
|
|
|
|
.PHONY: all install install-dev clean
|
|
|
|
libtv.so: $(tv_SRCS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -shared -fPIC $(tvcommon_HEADERS) \
|
|
-I$(LOCAL_PATH)/libtv/tvutils -I$(LOCAL_PATH)/libtv/panel \
|
|
-laudio_client -o $(OUT_DIR)/$@ $^ $(LDLIBS)
|
|
|
|
all: $(BUILD_TARGETS)
|
|
|
|
install: all install-dev
|
|
install -d $(LIB_INSTALL_DIR)
|
|
install -m 0644 $(OUT_DIR)/libtv.so $(LIB_INSTALL_DIR)/
|
|
|
|
install-dev:
|
|
install -d $(HDR_INSTALL_DIR)
|
|
install -m 0644 $(tvdev_HEADERS) $(HDR_INSTALL_DIR)/
|
|
|
|
clean:
|
|
rm -f $(OUT_DIR)/*.o $(BUILD_TARGETS_FULLPATH)
|
|
rm -rf $(HDR_INSTALL_DIR)
|
|
rm -rf $(LIB_INSTALL_DIR)/libtv.so
|
|
|
|
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))
|