Commit efa03a70174864c9949cb6c013d4c63049876743
1 parent
5686354a
优化makefile
Showing
5 changed files
with
42 additions
and
93 deletions
src/Makefile
... | ... | @@ -8,25 +8,29 @@ BIN_DIR:=$(BUILD_DIR)/bin |
8 | 8 | export BUILD_DIR |
9 | 9 | |
10 | 10 | PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder |
11 | - | |
12 | -DEPEND_DIR = $(PROJECT_ROOT)/bin | |
13 | -SRC_ROOT = $(PROJECT_ROOT)/src | |
14 | 11 | THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty |
12 | +export PROJECT_ROOT THIRDPARTY_ROOT | |
13 | + | |
14 | +CUDA_ROOT = /usr/local/cuda-11.1 | |
15 | +export CUDA_ROOT | |
16 | + | |
17 | +FFMPEG_DIR = $(PROJECT_ROOT)/bin | |
15 | 18 | SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release |
16 | 19 | |
17 | 20 | #编译器 |
18 | 21 | CXX:=g++ |
19 | -CXXFLAGS:=-std=c++11 -Wall -Wextra -Og -g | |
22 | + | |
20 | 23 | INCS:=-I $(TOP_DIR) \ |
21 | 24 | -I $(SPDLOG_ROOT)/include \ |
25 | + -I $(FFMPEG_DIR)/include \ | |
22 | 26 | |
23 | 27 | MACROS:= |
24 | -export CXX CXXFLAGS INCS MACROS | |
25 | 28 | |
26 | 29 | # 链接器 |
27 | -LD:=g++ | |
28 | -LDFLAGS:= | |
29 | -LIBS:= -L $(SPDLOG_ROOT)/lib -l:libspdlog.a \ | |
30 | +LIBS:= -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
31 | + -L $(FFMPEG_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
32 | + | |
33 | +export CXX INCS MACROS LIBS | |
30 | 34 | |
31 | 35 | # 各个模块 |
32 | 36 | MODULES:= nvdec gb28181 interface demo | ... | ... |
src/demo/Makefile
... | ... | @@ -16,45 +16,26 @@ DEPFLAGS=-MT $@ -MMD -MP -MF $(DEP_DIR)/$*.d |
16 | 16 | TARGET:=/mnt/data/cmhu/FFNvDecoder/bin/lib/demo |
17 | 17 | |
18 | 18 | |
19 | - | |
20 | -PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder | |
21 | - | |
22 | -DEPEND_DIR = $(PROJECT_ROOT)/bin | |
23 | -THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty | |
24 | -SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release | |
25 | 19 | JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export |
26 | 20 | |
27 | -CUDA_ROOT = /usr/local/cuda-11.1 | |
28 | - | |
29 | -LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
30 | - -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ | |
31 | - -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
32 | - -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
33 | - -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a | |
34 | - | |
35 | - | |
36 | 21 | INCLUDE= -I $(TOP_DIR)/interface \ |
37 | 22 | -I $(TOP_DIR)/nvdec \ |
38 | 23 | -I $(TOP_DIR)/gb28181 \ |
39 | - -I $(DEPEND_DIR)/include \ | |
40 | 24 | -I $(CUDA_ROOT)/include \ |
41 | 25 | -I $(TOP_DIR)/common/inc \ |
42 | 26 | -I $(TOP_DIR)/common/UtilNPP \ |
43 | 27 | -I $(TOP_DIR)/ \ |
44 | - -I $(SPDLOG_ROOT)/include \ | |
45 | 28 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
46 | 29 | -I $(JRTP_ROOT)/jthread/include/jthread |
47 | 30 | |
48 | 31 | LIBSPATH= -L $(BUILD_DIR)/interface/lib -l:interface.a \ |
49 | 32 | -L $(BUILD_DIR)/nvdec/lib -l:nvdec.a \ |
50 | 33 | -L $(BUILD_DIR)/gb28181/lib -l:gb28181.a \ |
51 | - -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
52 | 34 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ |
53 | - -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
54 | 35 | -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ |
55 | 36 | -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a |
56 | 37 | |
57 | -CXXFLAGS= -g -O0 -fPIC $(INCLUDE) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
38 | +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(LIBSPATH) $(INCS) $(LIBS) $(MACROS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
58 | 39 | # -DUNICODE -D_UNICODE |
59 | 40 | |
60 | 41 | # 默认最终目标 |
... | ... | @@ -74,8 +55,8 @@ $(LIB_DIR): |
74 | 55 | # 生成中间目标文件 |
75 | 56 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
76 | 57 | @echo -e "\e[33m""Building object $@""\e[0m" |
77 | - @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
78 | - $(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | |
58 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) -o $@ $<" | |
59 | + $(CXX) -c $(DEPFLAGS) $(CXXFLAGS) -o $@ $< | |
79 | 60 | |
80 | 61 | # 若没有obj目录则自动生成 |
81 | 62 | $(OBJ_DIR): | ... | ... |
src/gb28181/Makefile
... | ... | @@ -12,33 +12,21 @@ DEPS:=$(addprefix $(DEP_DIR)/, $(patsubst %.cpp, %.d,a $(SRCS))) |
12 | 12 | # 自动生成头文件依赖选项 |
13 | 13 | DEPFLAGS=-MT $@ -MMD -MP -MF $(DEP_DIR)/$*.d |
14 | 14 | |
15 | -CUDA_ROOT = /usr/local/cuda-11.1 | |
16 | - | |
17 | -PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder | |
18 | - | |
19 | -DEPEND_DIR = $(PROJECT_ROOT)/bin | |
20 | -THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty | |
21 | -SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release | |
22 | 15 | JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export |
23 | 16 | |
24 | - | |
25 | -INCLUDE= -I $(DEPEND_DIR)/include \ | |
26 | - -I $(CUDA_ROOT)/include \ | |
27 | - -I $(TOP_DIR)/common/inc \ | |
17 | +INCLUDE= -I $(TOP_DIR)/common/inc \ | |
28 | 18 | -I $(TOP_DIR)/common/UtilNPP \ |
29 | 19 | -I $(TOP_DIR)/ \ |
30 | - -I $(SPDLOG_ROOT)/include \ | |
20 | + -I $(CUDA_ROOT)/include \ | |
31 | 21 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
32 | 22 | -I $(JRTP_ROOT)/jthread/include/jthread |
33 | 23 | |
34 | -LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
24 | +LIBSPATH= -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
25 | + -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a \ | |
35 | 26 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ |
36 | - -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
37 | - -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
38 | - -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a | |
39 | 27 | |
40 | 28 | |
41 | -CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
29 | +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(INCS) $(LIBS) $(LIBSPATH) $(MACROS) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
42 | 30 | |
43 | 31 | # 最终目标文件 |
44 | 32 | TARGET:=$(LIB_DIR)/$(MODULE).a |
... | ... | @@ -60,8 +48,8 @@ $(LIB_DIR): |
60 | 48 | # 生成中间目标文件 |
61 | 49 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
62 | 50 | @echo -e "\e[33m""Building object $@""\e[0m" |
63 | - @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
64 | - @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | |
51 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) -o $@ $<" | |
52 | + @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) -o $@ $< | |
65 | 53 | |
66 | 54 | # 若没有obj目录则自动生成 |
67 | 55 | $(OBJ_DIR): | ... | ... |
src/interface/Makefile
... | ... | @@ -12,41 +12,28 @@ DEPS:=$(addprefix $(DEP_DIR)/, $(patsubst %.cpp, %.d,a $(SRCS))) |
12 | 12 | # 自动生成头文件依赖选项 |
13 | 13 | DEPFLAGS=-MT $@ -MMD -MP -MF $(DEP_DIR)/$*.d |
14 | 14 | |
15 | - | |
16 | -PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder | |
17 | - | |
18 | -DEPEND_DIR = $(PROJECT_ROOT)/bin | |
19 | -THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty | |
20 | -SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release | |
21 | 15 | JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export |
22 | 16 | |
23 | - | |
24 | -INCLUDE= -I $(DEPEND_DIR)/include \ | |
25 | - -I $(CUDA_ROOT)/include \ | |
26 | - -I $(TOP_DIR)/common/inc \ | |
17 | +INCLUDE= -I $(TOP_DIR)/common/inc \ | |
27 | 18 | -I $(TOP_DIR)/common/UtilNPP \ |
28 | 19 | -I $(TOP_DIR)/ \ |
29 | - -I $(SPDLOG_ROOT)/include \ | |
30 | 20 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
31 | 21 | -I $(JRTP_ROOT)/jthread/include/jthread \ |
32 | 22 | -I $(TOP_DIR)/src/gb28181 \ |
33 | 23 | -I $(TOP_DIR)/src/nvdec \ |
24 | + -I $(CUDA_ROOT)/include \ | |
34 | 25 | |
35 | -LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
26 | +LIBSPATH= -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
27 | + -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a \ | |
36 | 28 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ |
37 | - -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
38 | - -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
39 | - -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a | |
40 | 29 | |
41 | 30 | |
42 | -CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
31 | +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(LIBSPATH) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
43 | 32 | |
44 | 33 | |
45 | 34 | # 最终目标文件 |
46 | 35 | TARGET:=$(LIB_DIR)/$(MODULE).a |
47 | 36 | |
48 | -# MODULE_LIBS:=$(BUILD_DIR)/nvdec/lib/nvdec.a \ | |
49 | -# $(BUILD_DIR)/gb28181/lib/gb28181.a\ | |
50 | 37 | |
51 | 38 | # 默认最终目标 |
52 | 39 | .PHONY:all |
... | ... | @@ -65,9 +52,9 @@ $(LIB_DIR): |
65 | 52 | # 生成中间目标文件 |
66 | 53 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
67 | 54 | @echo -e "\e[33m""Building object $@""\e[0m" |
68 | - @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
55 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBS) $(MACROS) -o $@ $<" | |
69 | 56 | # @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $(MODULE_LIBS) $< |
70 | - @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | |
57 | + @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBS) $(MACROS) -o $@ $< | |
71 | 58 | |
72 | 59 | # 若没有obj目录则自动生成 |
73 | 60 | $(OBJ_DIR): | ... | ... |
src/nvdec/Makefile
... | ... | @@ -9,7 +9,7 @@ SRCS:=$(notdir $(wildcard $(SRC_DIR)/*.cpp)) |
9 | 9 | OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cpp, %.o, $(SRCS))) |
10 | 10 | DEPS:=$(addprefix $(DEP_DIR)/, $(patsubst %.cpp, %.d,a $(SRCS))) |
11 | 11 | |
12 | -CUDA_ROOT = /usr/local/cuda-11.1 | |
12 | + | |
13 | 13 | NVCC = $(CUDA_ROOT)/bin/nvcc |
14 | 14 | |
15 | 15 | # 自动生成头文件依赖选项 |
... | ... | @@ -21,35 +21,24 @@ DEFS = -DENABLE_DVPP_INTERFACE |
21 | 21 | TARGET:=$(LIB_DIR)/$(MODULE).a |
22 | 22 | |
23 | 23 | |
24 | -PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder | |
25 | - | |
26 | -DEPEND_DIR = $(PROJECT_ROOT)/bin | |
27 | -THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty | |
28 | -SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release | |
29 | 24 | JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export |
30 | 25 | |
31 | - | |
32 | -INCLUDE= -I $(DEPEND_DIR)/include \ | |
33 | - -I $(CUDA_ROOT)/include \ | |
34 | - -I $(TOP_DIR)/common/inc \ | |
26 | +INCLUDE= -I $(TOP_DIR)/common/inc \ | |
35 | 27 | -I $(TOP_DIR)/common/UtilNPP \ |
36 | - -I $(TOP_DIR)/ \ | |
37 | - -I $(SPDLOG_ROOT)/include \ | |
28 | + -I $(TOP_DIR) \ | |
29 | + -I $(CUDA_ROOT)/include \ | |
38 | 30 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
39 | 31 | -I $(JRTP_ROOT)/jthread/include/jthread |
40 | 32 | |
41 | -LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
33 | +LIBSPATH= -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
34 | + -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a \ | |
42 | 35 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ |
43 | - -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
44 | - -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
45 | - -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a | |
46 | - | |
47 | 36 | |
48 | -CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
37 | +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(LIBSPATH) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
49 | 38 | # -DUNICODE -D_UNICODE |
50 | 39 | |
51 | -NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden | |
52 | -NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 | |
40 | +NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC | |
41 | +NFLAGS = $(NFLAGS_LIB) $(INCLUDE) $(LIBSPATH) -std=c++11 | |
53 | 42 | |
54 | 43 | CU_SOURCES:=$(notdir $(wildcard $(SRC_DIR)/*.cu)) |
55 | 44 | CU_OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cu, %.o, $(CU_SOURCES))) |
... | ... | @@ -72,13 +61,13 @@ $(LIB_DIR): |
72 | 61 | # 生成中间目标文件 |
73 | 62 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
74 | 63 | @echo -e "\e[33m""Building object $@""\e[0m" |
75 | - @echo "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
76 | - @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | |
64 | + @echo "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBS) $(MACROS) -o $@ $<" | |
65 | + @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBS) $(MACROS) -o $@ $< | |
77 | 66 | |
78 | 67 | $(OBJ_DIR)%.o:$(SRC_DIR)/%.cu |
79 | 68 | @echo -e "\e[33m""Building object $@""\e[0m" |
80 | - @echo "$(NVCC) $(NFLAGS) -o $@ $<" | |
81 | - $(NVCC) $(NFLAGS) -o $@ $< | |
69 | + @echo "$(NVCC) $(NFLAGS) $(INCS) $(LIBS) -o $@ $<" | |
70 | + $(NVCC) $(NFLAGS) $(INCS) $(LIBS) -o $@ $< | |
82 | 71 | |
83 | 72 | |
84 | 73 | # 若没有obj目录则自动生成 | ... | ... |