Blame view

src/demo/Makefile.dvpp 2.52 KB
28925304   Hu Chunming   makefile优化
1
2
3
4
5
  # 各项目录
  LIB_DIR:=$(BUILD_DIR)/$(MODULE)/lib
  DEP_DIR:=$(BUILD_DIR)/$(MODULE)/.dep
  OBJ_DIR:=$(BUILD_DIR)/$(MODULE)/obj
  SRC_DIR:=$(TOP_DIR)/$(MODULE)
00b0fbdb   Hu Chunming   编译nvdec
6
  
28925304   Hu Chunming   makefile优化
7
8
9
10
  # 源文件以及中间目标文件和依赖文件
  SRCS:=$(notdir $(wildcard $(SRC_DIR)/*.cpp))
  OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cpp, %.o, $(SRCS)))
  DEPS:=$(addprefix $(DEP_DIR)/, $(patsubst %.cpp, %.d,a $(SRCS)))
00b0fbdb   Hu Chunming   编译nvdec
11
  
28925304   Hu Chunming   makefile优化
12
13
  # 自动生成头文件依赖选项
  DEPFLAGS=-MT $@ -MMD -MP -MF $(DEP_DIR)/$*.d
00b0fbdb   Hu Chunming   编译nvdec
14
15
16
  
  DEFS = -DENABLE_DVPP_INTERFACE
  
28925304   Hu Chunming   makefile优化
17
18
19
  # 最终目标文件
  TARGET:=$(BUILD_DIR)/bin/demo
  
00b0fbdb   Hu Chunming   编译nvdec
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  
  include_dir=-I/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/include
  
  lib_dir=-L/usr/lib \
  		-L/usr/local/lib \
  		-L/usr/local/Ascend/driver/lib64 \
  		-L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/atc/lib64\
  		-L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/lib64 \
  		-L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/lib64/stub \
  		-L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/lib64 \
  		-L/usr/local/Ascend/driver/lib64/driver
  		
  lib=-lacl_dvpp -lascendcl -lmmpa -lglog -lgflags -lpthread -lz -lacl_dvpp_mpi -lruntime -lascendalog -lc_sec -lmsprofiler -lgert -lge_executor -lge_common \
  	-lgraph -lascend_protobuf -lprofapi -lerror_manager -lexe_graph -lregister -lplatform
00b0fbdb   Hu Chunming   编译nvdec
34
  
28925304   Hu Chunming   makefile优化
35
36
37
38
  INCLUDE= -I $(TOP_DIR)/interface \
  
  LIBSPATH= -L $(BUILD_DIR)/interface/lib -l:interface.a \
  			-L $(BUILD_DIR)/dvpp/lib -l:dvpp.a
00b0fbdb   Hu Chunming   编译nvdec
39
  
28925304   Hu Chunming   makefile优化
40
41
  CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(include_dir) $(LIBSPATH) $(INCS) $(LIBS) $(lib_dir) $(lib) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl
  	# -DUNICODE -D_UNICODE
00b0fbdb   Hu Chunming   编译nvdec
42
  
28925304   Hu Chunming   makefile优化
43
44
45
  # 默认最终目标
  .PHONY:all
  all:$(TARGET)
00b0fbdb   Hu Chunming   编译nvdec
46
  
28925304   Hu Chunming   makefile优化
47
48
49
50
51
52
53
54
55
56
57
58
  # 生成最终目标
  $(TARGET): $(OBJS) | $(LIB_DIR)
  	@echo -e "\e[32m""Linking static library $(TARGET)""\e[0m"
  	@echo -e "$(CXX) -o $@ $^ $(DEPFLAGS) $(CXXFLAGS) $(MACROS)"
  	$(CXX) -o $@ $^ $(DEPFLAGS) $(CXXFLAGS) $(MACROS)
  
  # 若没有lib目录则自动生成
  $(LIB_DIR):
  	@mkdir -p $@
  
  # 生成中间目标文件
  $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR)
00b0fbdb   Hu Chunming   编译nvdec
59
  	@echo -e "\e[33m""Building object $@""\e[0m"
28925304   Hu Chunming   makefile优化
60
61
62
63
64
65
66
67
68
69
  	@echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) -o $@ $<"
  	$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) -o $@ $<
  
  # 若没有obj目录则自动生成
  $(OBJ_DIR):
  	@mkdir -p $@
  
  # 若没有.dep目录则自动生成
  $(DEP_DIR):
  	@mkdir -p $@
00b0fbdb   Hu Chunming   编译nvdec
70
  
28925304   Hu Chunming   makefile优化
71
72
  # 依赖文件会在生成中间文件的时候自动生成,这里只是为了防止报错
  $(DEPS):
00b0fbdb   Hu Chunming   编译nvdec
73
  
28925304   Hu Chunming   makefile优化
74
75
  # 引入中间目标文件头文件依赖关系
  include $(wildcard $(DEPS))
00b0fbdb   Hu Chunming   编译nvdec
76
  
28925304   Hu Chunming   makefile优化
77
78
  # 直接删除组件build目录
  .PHONY:clean
00b0fbdb   Hu Chunming   编译nvdec
79
  clean:
28925304   Hu Chunming   makefile优化
80
  	@rm -rf $(BUILD_DIR)/$(MODULE)