CC = gcc XX = g++ AR = ar NVCC=nvcc TARGET = libVPT.a NVDECODE_ROOT=../NvDecode DEPEND_DIR = $(STATIC_RELEASE_ROOT) UTOOLS_ROOT = $(UTOOLS_SSD_ROOT)/utools UTOOLS_SRC = $(UTOOLS_SSD_ROOT)/../src VPT_ROOT = . INCLUDE =-I $(OPENCV_ROOT)/include \ -I $(OPENCV_ROOT)/include/opencv \ -I $(OPENCV_ROOT)/include/opencv2 \ -I $(BOOST_ROOT)/include \ -I /usr/local/cuda/include \ -I $(UTOOLS_SRC) \ -I $(NVDECODE_ROOT) \ -I $(NVDECODE_ROOT)/common/inc \ -I $(VPT_ROOT)/sort \ #-I $(VPT_ROOT)/vpt \ # -I ./MD5 \ #CFLAGS =-g -Wall -O3 $(INCLUDE) # -std=c++11 CFLAGS = $(CFLAGS_LIB) $(INCLUDE) -std=c++11 NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 LIBSPATH=-L $(UTOOLS_ROOT) \ -L/usr/local/cuda/lib64 -lcudart -lcublas -lcusolver -lcurand LIBS=-lustools -ldl -lpthread #SRCS:=$(wildcard *.cpp) #OBJS:=$(patsubst %cpp, %o, $(SRCS)) SRCS:=$(wildcard *.cpp) $(wildcard $(VPT_ROOT)/sort/*.cpp) $(wildcard $(VPT_ROOT)/MD5/mID.cpp) DIRS:=$(notdir $(SRCS)) OBJS:=$(patsubst %cpp, %o, $(DIRS)) CU_SOURCES = $(shell ls *.cu) CU_OBJS=$(CU_SOURCES:.cu=.o) STATICLIBS:=$(wildcard $(UTOOLS_ROOT)/*.a) all:$(TARGET) $(TARGET):$(OBJS) $(CU_OBJS) rm -f $(TARGET) $(AR) crs $@ $(OBJS) $(CU_OBJS) ranlib $(TARGET) rm -f *.o echo create $(TARGET) > script.mri; echo addlib $(TARGET) >> script.mri; @for alib in `echo $(STATICLIBS) | cut -d' ' -f 1-`; \ do \ echo addlib $$alib >> script.mri; \ done echo save >> script.mri; echo end >> script.mri; ar -M < script.mri # $(foreach alib, $(STATICLIBS), $(AR) x $(alib)) # ar cru $(TARGET) *.o ranlib $(TARGET) rm -f *.o cp $(TARGET) $(DES_LIB) chmod 777 $(DES_LIB)/$(TARGET) %.o:%.cpp @echo "##############################$@##############################" $(XX) $(CFLAGS) -c $< %.o:$(VPT_ROOT)/sort/%.cpp @echo "##############################$@###############################" $(XX) $(CFLAGS) -c $< %.o:$(VPT_ROOT)/MD5/%.cpp @echo "##############################$@###############################" $(XX) $(CFLAGS) -c $< $(CU_OBJS):%.o:%.cu @echo "#######################CU_OBJS###############" @echo $@ $(NVCC) $(NFLAGS) -o $@ $< .PHONY:clean clean: $(RM) $(OBJS) $(RM) $(TARGET) $(RM) $(DES_LIB)/$(TARGET) $(RM) *~