Blame view

src/interface/Makefile 2.51 KB
63e6f7bc   Hu Chunming   完成dvpp。但是nv和gb281...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  # 各项目录
  LIB_DIR:=$(BUILD_DIR)/$(MODULE)/lib
  DEP_DIR:=$(BUILD_DIR)/$(MODULE)/.dep
  OBJ_DIR:=$(BUILD_DIR)/$(MODULE)/obj
  SRC_DIR:=$(TOP_DIR)/$(MODULE)
  
  # 源文件以及中间目标文件和依赖文件
  SRCS:=$(notdir $(wildcard $(SRC_DIR)/*.cpp))
  OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cpp, %.o, $(SRCS)))
  DEPS:=$(addprefix $(DEP_DIR)/, $(patsubst %.cpp, %.d,a $(SRCS)))
  
  # 自动生成头文件依赖选项
  DEPFLAGS=-MT $@ -MMD -MP -MF $(DEP_DIR)/$*.d
  
00b0fbdb   Hu Chunming   编译nvdec
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  
  PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder
  
  DEPEND_DIR = $(PROJECT_ROOT)/bin
  THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty
  SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release
  JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export
  
  
  INCLUDE= -I $(DEPEND_DIR)/include \
    -I $(CUDA_ROOT)/include \
    -I $(TOP_DIR)/common/inc \
    -I $(TOP_DIR)/common/UtilNPP \
    -I $(TOP_DIR)/ \
    -I $(SPDLOG_ROOT)/include \
    -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \
    -I $(JRTP_ROOT)/jthread/include/jthread \
    -I $(TOP_DIR)/src/gb28181 \
    -I $(TOP_DIR)/src/nvdecoder \
  
  LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \
     -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \
     -L $(SPDLOG_ROOT) -l:libspdlog.a \
     -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \
     -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a
  
  
  CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings
  
  
63e6f7bc   Hu Chunming   完成dvpp。但是nv和gb281...
45
46
47
  # 最终目标文件
  TARGET:=$(LIB_DIR)/$(MODULE).a
  
00b0fbdb   Hu Chunming   编译nvdec
48
49
  # MODULE_LIBS:=$(BUILD_DIR)/nvdecoder/lib/nvdecoder.a \
  # 			$(BUILD_DIR)/gb28181/lib/gb28181.a\
63e6f7bc   Hu Chunming   完成dvpp。但是nv和gb281...
50
51
52
53
54
55
56
  
  # 默认最终目标
  .PHONY:all
  all:$(TARGET)
  
  # 生成最终目标
  $(TARGET):$(OBJS) | $(LIB_DIR)
00b0fbdb   Hu Chunming   编译nvdec
57
58
  	# @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m"
  # @ar -rc $@ $^
63e6f7bc   Hu Chunming   完成dvpp。但是nv和gb281...
59
60
61
62
63
64
65
66
  
  # 若没有lib目录则自动生成
  $(LIB_DIR):
  	@mkdir -p $@
  
  # 生成中间目标文件
  $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR)
  	@echo -e "\e[33m""Building object $@""\e[0m"
00b0fbdb   Hu Chunming   编译nvdec
67
68
  # @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@  $(MODULE_LIBS) $<
  	@$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<
63e6f7bc   Hu Chunming   完成dvpp。但是nv和gb281...
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
  
  # 若没有obj目录则自动生成
  $(OBJ_DIR):
  	@mkdir -p $@
  
  # 若没有.dep目录则自动生成
  $(DEP_DIR):
  	@mkdir -p $@
  
  # 依赖文件会在生成中间文件的时候自动生成,这里只是为了防止报错
  $(DEPS):
  
  # 引入中间目标文件头文件依赖关系
  include $(wildcard $(DEPS))
  
  # 直接删除组件build目录
  .PHONY:clean
  clean:
  	@rm -rf $(BUILD_DIR)/$(MODULE)