Makefile 4 KB
XX = g++


PROJECT_ROOT= /home/cmhu/vpt_ascend_arm

DEPEND_DIR = $(PROJECT_ROOT)/bin
SRC_ROOT = $(PROJECT_ROOT)/src

TARGET= $(PROJECT_ROOT)/bin/libvpt_ascend.so

THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty
SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release
OPENCV_ROOT = $(THIRDPARTY_ROOT)/opencv_4_1
JSON_ROOT = $(THIRDPARTY_ROOT)/jsoncpp-1.9.5/release
FFMPEG_ROOT = $(THIRDPARTY_ROOT)/ffmpeg-4.4.4/release
RABBITMQ_CLIENT_ROOT = $(THIRDPARTY_ROOT)/rabbitmq-c-0.11.0/release
AUTHORITY_DIR = $(THIRDPARTY_ROOT)/atlas_lic-aarch64-20220112/atlas_lic
BOOST_ROOT = $(THIRDPARTY_ROOT)/boost_1_81_0/release
WEBSOCKETPP_ROOT = $(THIRDPARTY_ROOT)/websocketpp-0.8.2/release/include \

JRTP_ROOT = $(THIRDPARTY_ROOT)/gb28181_3rd/jrtp_export

DEFS = -DENABLE_DVPP_INTERFACE -DWITH_FACE_DET_SS -DPOST_USE_RABBITMQ -DUSE_VILLAGE
# DEFS = -DENABLE_DVPP_INTERFACE -DUSE_VILLAGE

include_dir=-I/usr/local/Ascend/ascend-toolkit/latest/include \
			-I $(SRC_ROOT)/common \
			-I $(SPDLOG_ROOT)/include \
			-I $(OPENCV_ROOT)/include \
			-I $(JSON_ROOT)/include \
			-I $(FFMPEG_ROOT)/include \
			-I $(RABBITMQ_CLIENT_ROOT)/include \
			-I $(AUTHORITY_DIR)/include \
			-I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \
			-I $(SRC_ROOT)/decoder/gb28181/rtp \
			-I $(SRC_ROOT)/decoder/gb28181 \
			-I $(WEBSOCKETPP_ROOT) \
			-I $(BOOST_ROOT)/include \


LIBS= -L $(SPDLOG_ROOT)/lib -l:libspdlog.a \
		-L $(DEPEND_DIR) -lvpt_det_vdec -lsycheck -lface_det_vdec -lhs_tri_process -lhs_truck_process -lphone_motor_det -lhcp_vdec -lmotor_rainshed_vdec -ltraffic_light_vdec -lvehicle_pose_vdec -lroad_seg_vdec -lroad_3clsseg_vdec -lhs_motor_process\
		-L $(OPENCV_ROOT)/lib -lopencv_world\
		-L $(JSON_ROOT)/lib -l:libjsoncpp.a \
		-L $(FFMPEG_ROOT)/lib -l:libavformat.a -l:libavcodec.a -l:libswscale.a -l:libavutil.a -l:libavfilter.a -l:libswresample.a -l:libavdevice.a -l:libx264.a\
		-L $(RABBITMQ_CLIENT_ROOT)/lib/aarch64-linux-gnu -l:librabbitmq.a \
		-L $(AUTHORITY_DIR)/lib -latlaslic \
		-L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a \
		-L/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64 -lacl_dvpp -lascendcl \
		-L $(BOOST_ROOT)/lib -lboost_system \



CXXFLAGS= -g -O0 -fPIC $(include_dir) $(LIBS) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 -fvisibility=hidden -Wall -Wno-deprecated -Wdeprecated-declarations -Wl,-Bsymbolic -ldl



SRCS:=$(wildcard $(SRC_ROOT)/ai_platform/*.cpp) \
		$(wildcard $(SRC_ROOT)/decoder/interface/*.cpp) \
    	$(wildcard $(SRC_ROOT)/decoder/dvpp/*.cpp) \
		$(wildcard $(SRC_ROOT)/ai_engine_module/sort/*.cpp) \
		$(wildcard $(SRC_ROOT)/ai_engine_module/*.cpp) \
		$(wildcard $(SRC_ROOT)/util/*.cpp) \
		$(wildcard $(SRC_ROOT)/reprocessing_module/*.cpp) \
		$(wildcard $(SRC_ROOT)/reprocessing_module/rbmq/*.cpp) \
		$(wildcard $(SRC_ROOT)/decoder/gb28181/*.cpp) \
		$(wildcard $(SRC_ROOT)/decoder/gb28181/rtp/*.cpp) \
		$(wildcard $(SRC_ROOT)/decoder/gb28181/Message/*.cpp) \
		$(wildcard $(SRC_ROOT)/decoder/gb28181/tinyxml2/*.cpp) \
		$(wildcard $(SRC_ROOT)/decoder/gb28181/websocket/*.cpp) \

OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS)))


$(TARGET):$(OBJS)
	rm -f $(TARGET)
	$(XX) -shared -o $@ $^ $(CXXFLAGS)
# rm -f *.o

%.o:$(SRC_ROOT)/decoder/dvpp/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/decoder/interface/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/ai_platform/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/ai_engine_module/sort/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/ai_engine_module/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/util/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/reprocessing_module/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/reprocessing_module/rbmq/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/decoder/gb28181/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/decoder/gb28181/rtp/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/decoder/gb28181/websocket/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/decoder/gb28181/Message/%.cpp
	$(XX) $(CXXFLAGS) -c $<

%.o:$(SRC_ROOT)/decoder/gb28181/tinyxml2/%.cpp
	$(XX) $(CXXFLAGS) -c $<




	
clean:
	rm -f *.o $(TARGET)


cleano:
	rm -f *.o