Makefile 1.79 KB

XX = g++

CUDA_ROOT = /usr/local/cuda-11.1
NVCC = $(CUDA_ROOT)/bin/nvcc

PROJECT_ROOT= /mnt/e/fiss/FFNvDecoder

DEPEND_DIR = $(PROJECT_ROOT)/bin
SRC_ROOT = $(PROJECT_ROOT)/src
THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty

TARGET= $(DEPEND_DIR)/lib/test


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 $(SRC_ROOT)/common/inc \
  -I $(SRC_ROOT)/common/UtilNPP \
  -I $(SRC_ROOT)\
  -I $(SPDLOG_ROOT)/include \
  -I $(SRC_ROOT)/gb28181 \
  -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \
  -I $(JRTP_ROOT)/jthread/include/jthread

LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \
   -L $(CUDA_ROOT)/lib64 -lcudart -lcurand -lcublas -lnvjpeg \
   -L /usr/lib/wsl/lib -lcuda -lnvcuvid\
   -L $(SPDLOG_ROOT)/lib64 -l:libspdlog.a \
   -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \
   -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a

CFLAGS= -g -fPIC -O0 $(INCLUDE) -pthread -lrt -lz -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl
	# -DUNICODE -D_UNICODE

NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden
NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11

SRCS:=$(wildcard $(SRC_ROOT)/*.cpp) \
		$(wildcard $(SRC_ROOT)/gb28181/*.cpp)
OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS)))

CU_SOURCES = $(wildcard ${SRC_ROOT}/*.cu)
CU_OBJS = $(patsubst %.cu, %.o, $(notdir $(CU_SOURCES)))


$(TARGET):$(OBJS) $(CU_OBJS)
	rm -f $(TARGET)
	$(XX) -o $@ $^ $(CFLAGS)  $(LIBSPATH) $(LIBS) -Wwrite-strings
	rm -f *.o

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

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

%.o:$(SRC_ROOT)/%.cu
	@echo "#######################CU_OBJS:$@###############"
	$(NVCC) $(NFLAGS) -o $@ $< 

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