Files
BPI-CM9-Linux/aml-comp/vendor/amlogic/aml_tvserver/Makefile.libtv
T

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))