Makefile-lib 2.24 KB

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) *~