################################################################################ # Device/Makefile # # This Makefile builds the libs # ################################################################################ OUT_ROOT ?= dist DEPENDS := audio_client libbinder DEPENDS := $(addsuffix /build, $(addprefix $(OUT_ROOT)/../../, $(DEPENDS))) override LDFLAGS += $(addprefix -L, $(DEPENDS)) LOCAL_PATH = . AUDIO_HAL_DIR = $(AML_COMMON_DIR)/audio_hal CUTILS_DIR = $(AML_COMMON_DIR)/cutils TVSERVER_DIR = $(AML_COMMON_DIR)/tvserver BINDER_DIR = $(AML_COMMON_DIR)/aml_commonlib/libbinder CFLAGS += -Wall -D_GNU_SOURCE -DHAVE_AUDIO ################################################################################ # libpq.so - src files ################################################################################ pq_SRCS = \ $(LOCAL_PATH)/libpq/CPQdb.cpp \ $(LOCAL_PATH)/libpq/COverScandb.cpp \ $(LOCAL_PATH)/libpq/CPQControl.cpp \ $(LOCAL_PATH)/libpq/CSqlite.cpp \ $(LOCAL_PATH)/libpq/SSMAction.cpp \ $(LOCAL_PATH)/libpq/SSMHandler.cpp \ $(LOCAL_PATH)/libpq/SSMHeader.cpp \ $(LOCAL_PATH)/libpq/CDevicePollCheckThread.cpp \ $(LOCAL_PATH)/libpq/CPQColorData.cpp \ $(LOCAL_PATH)/libpq/CPQLog.cpp \ $(LOCAL_PATH)/libpq/CPQFile.cpp \ $(LOCAL_PATH)/libpq/CEpoll.cpp \ $(LOCAL_PATH)/libpq/CDynamicBackLight.cpp \ $(LOCAL_PATH)/libpq/CConfigFile.cpp \ $(NULL) ################################################################################ # 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/CTvLog.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 \ $(NULL) ################################################################################ # libtvclient.so - src files ################################################################################ tvclient_SRCS = \ $(LOCAL_PATH)/client/TvClient.cpp \ $(LOCAL_PATH)/client/CTvClientLog.cpp \ $(NULL) ################################################################################ # tvservice - src files ################################################################################ tvservice_SRCS = \ $(LOCAL_PATH)/service/main_tvservice.cpp \ $(LOCAL_PATH)/service/TvService.cpp \ $(NULL) ################################################################################ # tvtest - src files ################################################################################ tvtest_SRCS = \ $(LOCAL_PATH)/test/main_tvtest.cpp \ $(NULL) #TODO: Add more include directories here, if necessary. INCLUDES += \ -I$(LOCAL_PATH)/include \ -I$(LOCAL_PATH)/common \ -I$(LOCAL_PATH)/libtv \ -I$(LOCAL_PATH)/libtv/tvutils \ -I$(LOCAL_PATH)/libpq \ -I$(ROKU_3PARTY_INCLUDE_DIRS)/../usr/include \ -I$(AUDIO_HAL_DIR) \ -I$(AUDIO_HAL_DIR)/include \ -I$(CUTILS_DIR)/include \ -I$(BINDER_DIR)/include \ $(NULL) ALL_SRCS = $(pq_SRCS) $(tv_SRCS) $(tvclient_SRCS) $(tvservice_SRCS) $(tvtest_SRCS) CLEAN_FILES = libpq/PQSettingCfg.h libpq/SSMHeader.cpp include $(ROKU_PORT_COMMON_DIR)/build/define_target.mk comma = , $(eval $(call DEFINE_TARGET,libpq.so,$(pq_SRCS),,$(LDFLAGS) -lstdc++ -lpthread -lz -ldl -lrt -lm -lsqlite3 -fPIC -shared -Wl$(comma)-z$(comma)defs -Wl$(comma)--build-id,lib)) $(eval $(call DEFINE_TARGET,libtvclient.so,$(tvclient_SRCS),,$(LDFLAGS) -lstdc++ -lpthread -lz -ldl -lrt -lbinder -fPIC -shared -Wl$(comma)-z$(comma)defs -Wl$(comma)--build-id,lib)) $(eval $(call DEFINE_TARGET,libtv.so,$(tv_SRCS),,$(LDFLAGS) -L$(OUT_ROOT) -lpq -laudio_client -lexpat -lboost_system -lboost_filesystem -lstdc++ -lpthread -lz -ldl -lrt -fPIC -shared -Wl$(comma)-z$(comma)defs -Wl$(comma)--build-id,lib)) $(eval $(call DEFINE_TARGET,tvservice,$(tvservice_SRCS),,$(LDFLAGS) -L$(OUT_ROOT) -lpq -ltv -lstdc++ -lpthread -lz -ldl -lrt -lbinder -lsqlite3 -laudio_client -lexpat -lboost_system -lboost_filesystem -Wl$(comma)-z$(comma)defs -Wl$(comma)--build-id,bin)) $(eval $(call DEFINE_TARGET,tvtest,$(tvtest_SRCS),,$(LDFLAGS) -L$(OUT_ROOT) -ltvclient -lstdc++ -lpthread -lz -ldl -lrt -lbinder -Wl$(comma)-z$(comma)defs -Wl$(comma)--build-id,bin)) # --------------------------------------------------------------------- # Build rules all: $(VENDOR_ALL_TARGETS) $(NATIVE_ALL_TARGETS) # Compile .c file. # Simultaneously create .d file (see http://make.mad-scientist.net/papers/advanced-auto-dependency-generation). $(OUT_ROOT)/%.o: %.c $(OUT_ROOT)/%.d mkdir -p $(dir $@) $(CC) -MT $@ -MMD -MP -MF $(OUT_ROOT)/$*.Td $(CFLAGS) $(INCLUDES) -c -o $@ $< mv -f $(OUT_ROOT)/$*.Td $(OUT_ROOT)/$*.d && touch $@ # Compile .cpp file. # Simultaneously create .d file (see http://make.mad-scientist.net/papers/advanced-auto-dependency-generation). $(OUT_ROOT)/%.o: %.cpp $(OUT_ROOT)/%.d @mkdir -p $(dir $@) $(CXX) -MT $@ -MMD -MP -MF $(OUT_ROOT)/$*.Td $(CFLAGS) $(INCLUDES) -c -o $@ $< mv -f $(OUT_ROOT)/$*.Td $(OUT_ROOT)/$*.d && touch $@ $(OUT_ROOT)/%.d: ; .PRECIOUS: $(OUT_ROOT)/%.d .PHONY: clean distclean install include $(wildcard $(patsubst %,$(OUT_ROOT)/%.d,$(basename $(pq_SRCS)))) include $(wildcard $(patsubst %,$(OUT_ROOT)/%.d,$(basename $(tvclient_SRCS)))) include $(wildcard $(patsubst %,$(OUT_ROOT)/%.d,$(basename $(tv_SRCS)))) include $(wildcard $(patsubst %,$(OUT_ROOT)/%.d,$(basename $(tvservice_SRCS)))) include $(wildcard $(patsubst %,$(OUT_ROOT)/%.d,$(basename $(tvtest_SRCS)))) configure: CSV_RET=$(shell ($(LOCAL_PATH)/libpq/csvAnalyze.sh > /dev/zero;echo $$?)) ifeq ($(CSV_RET), 1) $(error "Csv file or common.h file is not exist!!!!") else ifeq ($(CSV_RET), 2) $(error "Csv file's Id must be integer") else ifeq ($(CSV_RET), 3) $(error "Csv file's Size must be integer or defined in common.h") endif clean: -rm -rf $(OUT_ROOT) $(CLEAN_FILES) mkdir -p $(OUT_ROOT) distclean: -rm -rf $(DESTDIR)/usr/lib/libpq.so -rm -rf $(DESTDIR)/usr/lib/libtvclient.so -rm -rf $(DESTDIR)/usr/lib/libtv.so -rm -rf $(DESTDIR)/usr/bin/tvservice -rm -rf $(DESTDIR)/usr/bin/tvtest install: mkdir -p $(DESTDIR)/usr/lib cp $(OUT_ROOT)/libpq.so $(DESTDIR)/usr/lib/ cp $(OUT_ROOT)/libtvclient.so $(DESTDIR)/usr/lib/ cp $(OUT_ROOT)/libtv.so $(DESTDIR)/usr/lib/ mkdir -p $(DESTDIR)/usr/bin cp $(OUT_ROOT)/tvservice $(DESTDIR)/usr/bin/ cp $(OUT_ROOT)/tvtest $(DESTDIR)/usr/bin/