| SHELL := /bin/bash |
| BRANCH_NAME="$(shell cd $(SRC_PATH);git branch -a | sed -n '/'*'/p')" |
| GIT_VERSION :="$(shell cd $(SRC_PATH);git log | grep commit -m 1 | cut -d' ' -f 2)" |
| COMMIT_CHANGEID="$(shell cd $(SRC_PATH);git log | grep Change-Id -m 1)" |
| |
| COMMIT_PD :="$(shell cd $(SRC_PATH);git log | grep PD\# -m 1)" |
| LAST_CHANGED="$(shell cd $(SRC_PATH);git log | grep Date -m 1)" |
| BUILD_TIME=" $(shell date)" |
| BUILD_NAME=" $(shell echo ${LOGNAME})" |
| |
| VERSION_CFLAGS := -DHAVE_VERSION_INFO |
| VERSION_CFLAGS+=-DBRANCH_NAME=\"${BRANCH_NAME}\" |
| VERSION_CFLAGS+=-DGIT_VERSION=\"${GIT_VERSION}${GIT_DIRTY}\" |
| VERSION_CFLAGS+=-DCOMMIT_CHANGEID=\"${COMMIT_CHANGEID}\" |
| VERSION_CFLAGS+=-DCOMMIT_PD=\"${COMMIT_PD}\" |
| VERSION_CFLAGS+=-DLAST_CHANGED=\"${LAST_CHANGED}\" |
| VERSION_CFLAGS+=-DBUILD_TIME=\"${BUILD_TIME}\" |
| VERSION_CFLAGS+=-DBUILD_NAME=\"${BUILD_NAME}\" |
| |
| CLIENT_LIB = libvideorender_client.so |
| |
| TOOLS_PATH = ../tools |
| |
| $(info ***makefile support wayland->$(WAYLAND_SUPPORT)) |
| #buildroot or local |
| ifeq ($(WAYLAND_SUPPORT),n) |
| WAYLAND_SUPPORT=n |
| else |
| WAYLAND_SUPPORT=y |
| endif |
| |
| #roku platform has no wayland so |
| ifeq ($(CC_TARGET_FLOAT_ABI_),softfp) |
| WAYLAND_SUPPORT=n |
| endif |
| |
| #path set |
| SCANNER_TOOL ?= wayland-scanner |
| PROTOCOL_PATH = wayland-protocol |
| |
| GENERATED_SOURCES = \ |
| $(PROTOCOL_PATH)/linux-dmabuf-unstable-v1-protocol.c \ |
| $(PROTOCOL_PATH)/linux-dmabuf-unstable-v1-client-protocol.h \ |
| $(PROTOCOL_PATH)/fullscreen-shell-unstable-v1-protocol.c \ |
| $(PROTOCOL_PATH)/fullscreen-shell-unstable-v1-client-protocol.h \ |
| $(PROTOCOL_PATH)/linux-explicit-synchronization-unstable-v1-protocol.c \ |
| $(PROTOCOL_PATH)/linux-explicit-synchronization-unstable-v1-client-protocol.h \ |
| $(PROTOCOL_PATH)/xdg-shell-protocol.c \ |
| $(PROTOCOL_PATH)/xdg-shell-client-protocol.h \ |
| $(PROTOCOL_PATH)/viewporter-protocol.c \ |
| $(PROTOCOL_PATH)/viewporter-client-protocol.h \ |
| $(PROTOCOL_PATH)/vpc-protocol.c \ |
| $(PROTOCOL_PATH)/vpc-client-protocol.h \ |
| $(PROTOCOL_PATH)/vpc-server-protocol.h \ |
| $(PROTOCOL_PATH)/simplebuffer-protocol.c \ |
| $(PROTOCOL_PATH)/simplebuffer-client-protocol.h \ |
| $(PROTOCOL_PATH)/simplebuffer-server-protocol.h \ |
| $(PROTOCOL_PATH)/simpleshell-protocol.c \ |
| $(PROTOCOL_PATH)/simpleshell-client-protocol.h \ |
| $(PROTOCOL_PATH)/simpleshell-server-protocol.h \ |
| $(PROTOCOL_PATH)/wayland-client-protocol.h |
| |
| OBJ_WESTON_DISPLAY = \ |
| wayland_display.o \ |
| wayland_buffer.o \ |
| wayland_plugin.o \ |
| wayland_videoformat.o \ |
| wayland_shm.o \ |
| wayland_dma.o |
| |
| LOCAL_CFLAGS += \ |
| -I$(PROTOCOL_PATH) |
| |
| ifeq ($(WAYLAND_SUPPORT), y) |
| LOCAL_CFLAGS += -DSUPPORT_WAYLAND |
| OBJ_CLIENT_LIB += $(OBJ_WESTON_DISPLAY) |
| OBJ_CLIENT_LIB += $(GENERATED_SOURCES:.c=.o) |
| LD_SUPPORT += -lwayland-client |
| endif |
| |
| LOCAL_CFLAGS += \ |
| -I../ \ |
| -I$(TOOLS_PATH) \ |
| -I$(STAGING_DIR)/usr/include \ |
| -I$(STAGING_DIR)/usr/include/libdrm \ |
| $(VERSION_CFLAGS) \ |
| |
| OBJ_CLIENT_LIB += \ |
| $(TOOLS_PATH)/Thread.o \ |
| $(TOOLS_PATH)/Poll.o \ |
| $(TOOLS_PATH)/Queue.o \ |
| $(TOOLS_PATH)/Times.o \ |
| $(TOOLS_PATH)/Utils.o \ |
| $(TOOLS_PATH)/Logger.o |
| |
| LOCAL_CFLAGS += -fPIC -O -Wcpp -g |
| |
| CFLAGS += $(LOCAL_CFLAGS) |
| CXXFLAGS += $(LOCAL_CFLAGS) -std=c++11 |
| |
| TARGET = $(CLIENT_LIB) |
| |
| all: $(GENERATED_SOURCES) $(TARGET) |
| |
| LD_FLAG = -g -fPIC -O -Wcpp -lm -lpthread -lz -Wl,-Bsymbolic -ldl |
| LD_FLAG_LIB = $(LD_FLAG) -shared $(LD_SUPPORT) -llog |
| |
| %.o:%.c $(DEPS) |
| echo CC $@ $< $(FLAGS) |
| $(CC) -c -o $@ $< $(CFLAGS) -fPIC |
| |
| %.o:%.cpp $(DEPS) |
| echo CXX $@ $< $(FLAGS) |
| $(CXX) -c -o $@ $< $(CXXFLAGS) -fPIC |
| |
| $(CLIENT_LIB): $(OBJ_CLIENT_LIB) |
| $(CXX) -o $@ $^ $(LD_FLAG_LIB) |
| cp -f $(CLIENT_LIB) $(STAGING_DIR)/usr/lib |
| rm -f $(OBJ_CLIENT_LIB) |
| |
| $(PROTOCOL_PATH)/%-protocol.c : $(PROTOCOL_PATH)/%.xml |
| echo $(@D) |
| mkdir -p $(@D) && $(SCANNER_TOOL) public-code < $< > $@ |
| |
| $(PROTOCOL_PATH)/%-server-protocol.h : $(PROTOCOL_PATH)/%.xml |
| mkdir -p $(@D) && $(SCANNER_TOOL) server-header < $< > $@ |
| |
| $(PROTOCOL_PATH)/%-client-protocol.h : $(PROTOCOL_PATH)/%.xml |
| mkdir -p $(@D) && $(SCANNER_TOOL) client-header < $< > $@ |
| |
| |
| .PHONY: install |
| install: |
| echo $(TARGET_DIR) |
| cp -f $(CLIENT_LIB) $(TARGET_DIR)/usr/lib/ |
| |
| .PHONY: clean |
| |
| clean: |
| rm $(CLIENT_LIB) |
| rm -f $(PROTOCOL_PATH)/*.o |
| rm -f $(OBJ_WESTON_DISPLAY) |
| rm -f *.o |