SmartAudio/package/allwinner/liballwinner_tina/liballwinner/xplayer/Makefile

189 lines
6.1 KiB
Makefile
Raw Normal View History

2018-07-13 01:31:50 +00:00
include ../LIBRARY/config.mk
include ../Makefile.inc
################################################################################
## set flags for golobal compile and link setting.
################################################################################
CONFIG_FOR_COMPILE = $(CFLAGS) $(LOCAL_CFLAGS) -Werror
CONFIG_FOR_LINK =
################################################################################
BuildPath = ./build
ObjectPath = $(BuildPath)/obj
OutputPath = ./
DependFilePath = $(BuildPath)/dep
Target = $(OutputPath)/libxplayer.so ## output target.
ifneq ($(BuildPath),wildcard($(BuildPath)))
a := $(shell mkdir -p $(BuildPath))
endif
ifneq ($(ObjectPath),wildcard($(ObjectPath)))
a := $(shell mkdir -p $(ObjectPath))
endif
ifneq ($(OutputPath),wildcard($(OutputPath)))
a := $(shell mkdir -p $(OutputPath))
endif
ifneq ($(DependFilePath),wildcard($(DependFilePath)))
a := $(shell mkdir -p $(DependFilePath))
endif
################################################################################
## set the source files, object files and dependency files
################################################################################
## set the source path to VPATH.
SourcePath = $(shell find ./ -type d)
SvnPath = $(shell find ./ -type d | grep ".svn")
SourcePath := $(filter-out $(SvnPath) $(BuildPath) $(ObjectPath) $(DependFilePath), $(SourcePath))
VPATH := $(SourcePath)
## set the source files.
SourceFiles = $(foreach dir,$(SourcePath),$(shell find $(dir) -maxdepth 1 -name "*.cpp"))
## set the object files.
ObjectFiles = $(addprefix $(ObjectPath)/, $(addsuffix .o ,$(basename $(notdir $(SourceFiles)))))
## set the dependency files.
DependFiles = $(addprefix $(DependFilePath)/, $(addsuffix .d ,$(notdir $(basename $(SourceFiles)))))
################################################################################
## set flags for compile and link
################################################################################
## set the include path for compile flags.
SourceIncludePath = $(foreach dir,$(SourcePath),-I$(dir)) \
-I../LIBRARY/ \
-I../LIBRARY/DEMUX/BASE/include/ \
-I../LIBRARY/DEMUX/STREAM/include/ \
-I../LIBRARY/DEMUX/PARSER/include/ \
-I../LIBRARY/libcedarc/include \
-I../LIBRARY/PLAYER/include/ \
-I../LIBRARY/PLUGIN/include/ \
## set compile flags
ifeq ($(CONFIG_CC),$(OPTION_CC_LINUX_MUSLGNUEABI64))
CompileFlags = $(CONFIG_FOR_COMPILE) $(SourceIncludePath) -O1 -fPIC -ldl
else
CompileFlags = $(CONFIG_FOR_COMPILE) $(SourceIncludePath) -mfpu=neon -O1 -fPIC -ldl
endif
## set link flags
LoadFlags = $(CONFIG_FOR_LINK) -ldl -shared
LoadFlags += -lplayer -lcdc_vdecoder -lcdc_adecoder -lcdc_sdecoder \
-lcdx_parser -lcdx_stream -lcdx_base -lcdc_ve -lcdc_memory \
-lpthread -ldl -lstdc++
ifeq ($(CONFIG_HAVE_SSL), $(OPTION_HAVE_SSL))
LoadFlags += -lcrypto -lssl
endif
LoadFlags += -L../LIBRARY/DEMUX/BASE/ \
-L../LIBRARY/DEMUX/STREAM/ \
-L../LIBRARY/DEMUX/PARSER/ \
-L../LIBRARY/PLAYER/ \
-L../LIBRARY/PLUGIN/manager \
ifeq ($(CONFIG_CC),$(OPTION_CC_GNUEABIHF))
ifeq ($(LINUX_VERSION),$(LINUX_VERSION_3_10))
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/lgnueabihf_linux310
else
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/lgnueabihf
endif
LoadFlags += -L../LIBRARY/EXTERNAL/lib32/lgnueabihf
endif
ifeq ($(CONFIG_CC),$(OPTION_CC_GNUEABI))
ifeq ($(LINUX_VERSION),$(LINUX_VERSION_3_10))
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/lgnueabi_linux310
else
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/lgnueabi
endif
LoadFlags += -L../LIBRARY/EXTERNAL/lib32/lgnueabi
endif
ifeq ($(CONFIG_CC),$(OPTION_CC_UCLIBC_ARM926))
LoadFlags += -L../LIBRARY/EXTERNAL/lib32/uclibc_arm926
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/uclibc-arm926
endif
ifeq ($(CONFIG_CC),$(OPTION_CC_UCGNUEABI))
LoadFlags += -L../LIBRARY/EXTERNAL/lib32/uclgnueabi
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/uclgnueabi
endif
ifeq ($(CONFIG_CC),$(OPTION_CC_LINUX_UCGNUEABI))
LoadFlags +=-L../LIBRARY/EXTERNAL/lib32/linuxgnueabi
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/linuxgnueabi
endif
ifeq ($(CONFIG_CC),$(OPTION_CC_LINUX_MUSLGNUEABI))
ifeq ($(LINUX_VERSION),$(LINUX_VERSION_3_10))
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/muslgnueabi_linux310
else
LoadFlags +=-L../LIBRARY/libcedarc/library/lib32/muslgnueabi
endif
LoadFlags +=-L../LIBRARY/EXTERNAL/lib32/muslgnueabi
endif
ifeq ($(CONFIG_CC),$(OPTION_CC_LINUX_MUSLGNUEABI64))
LoadFlags +=-L../LIBRARY/libcedarc/library/lib64/muslgnueabi_64_linux440
LoadFlags +=-L../LIBRARY/EXTERNAL/lib64/muslgnueabi64
endif
################################################################################
## make commands, all/clean/cleanall
################################################################################
## define commands for make, sush as all, clean
.PHONY: all clean cleantarget cleanall
all:$(Target)
clean:
-rm -f $(ObjectPath)/*
-rm -rf $(Target)
cleanall: clean
-rm -f $(DependFilePath)/*
-rm -rf $(BuildPath)
################################################################################
## define target dependencies.
################################################################################
## compile source files to object files.
#$(ObjectPath)/%.o:%.cpp
# $(CPP) $(CompileFlags) -o $@ -c $<
$(ObjectFiles):$(ObjectPath)/%.o:%.cpp
@$(CPP) $(CompileFlags) -o $@ -c $<
@echo "CC $<"
## link object files to the target share library.
$(Target):$(ObjectFiles)
@$(LD) -o $@ $^ $(LoadFlags)
@echo "LD $@"
## set rules to generate .d files.
$(DependFilePath)/%.d:%.cpp
@set -e; rm -f $@; \
$(CPP) -MM $(CompileFlags) $< > $@.$$$$; \
sed 's,\($*\)\.o[:]*,$(ObjectPath)/\1.o $@: ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
## include the .d files to set dependency rules.
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),cleantarget)
ifneq ($(MAKECMDGOALS),cleanall)
-include $(DependFiles)
endif
endif
endif