Makefile 1.26 KB

XX = g++

PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder

DEPEND_DIR = $(PROJECT_ROOT)/bin
SRC_ROOT = $(PROJECT_ROOT)/src
CUDA_ROOT = /usr/local/cuda-11.1

NVCC = $(CUDA_ROOT)/bin/nvcc

TARGET= $(DEPEND_DIR)/lib/test


INCLUDE= -I $(DEPEND_DIR)/include \
  -I $(CUDA_ROOT)/include \
  -I $(SRC_ROOT)/common/inc \
  -I $(SRC_ROOT)/common/UtilNPP \
  -I $(SRC_ROOT)\

LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \
   -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \

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)
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)/%.cu
	@echo "#######################CU_OBJS:$@###############"
	$(NVCC) $(NFLAGS) -o $@ $< 

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