From 313a8621b1e44036623b7be412f8d0da2062b3fb Mon Sep 17 00:00:00 2001 From: Yangqing Jia Date: Tue, 26 Nov 2013 09:47:26 -0800 Subject: [PATCH] makefile update --- Makefile | 22 ++-------- Makefile.config | 17 ++++++++ Makefile.icsi | 111 ------------------------------------------------ 3 files changed, 21 insertions(+), 129 deletions(-) create mode 100644 Makefile.config delete mode 100644 Makefile.icsi diff --git a/Makefile b/Makefile index 07a24a3b..e71305b5 100644 --- a/Makefile +++ b/Makefile @@ -2,21 +2,7 @@ PROJECT := caffe TEST_GPUID := 0 -# define third-party library paths -# CHANGE YOUR CUDA PATH IF IT IS NOT THIS -CUDA_DIR := /usr/local/cuda -# CHANGE YOUR CUDA ARCH IF IT IS NOT THIS -CUDA_ARCH := -arch=sm_30 -# CHANGE YOUR MKL PATH IF IT IS NOT THIS -MKL_DIR := /opt/intel/mkl -# CHANGE YOUR MATLAB PATH IF IT IS NOT THIS -# your mex binary should be located at $(MATLAB_DIR)/bin/mex -MATLAB_DIR := /usr/local -# PUT ALL OTHER INCLUDE AND LIB DIRECTORIES HERE -INCLUDE_DIRS := /usr/local/include /usr/include/python2.7 \ - /usr/local/lib/python2.7/dist-packages/numpy/core/include -LIBRARY_DIRS := /usr/lib /usr/local/lib - +include Makefile.config ############################################################################## # After this line, things should happen automatically. @@ -85,9 +71,9 @@ LIBRARIES := cudart cublas curand protobuf opencv_core opencv_highgui \ PYTHON_LIBRARIES := boost_python python2.7 WARNINGS := -Wall -COMMON_FLAGS := -DNDEBUG $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) -CXXFLAGS += -pthread -fPIC -O2 $(COMMON_FLAGS) -NVCCFLAGS := -Xcompiler -fPIC -O2 $(COMMON_FLAGS) +COMMON_FLAGS := -DNDEBUG -O2 $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) +CXXFLAGS += -pthread -fPIC $(COMMON_FLAGS) +NVCCFLAGS := -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) \ $(foreach library,$(LIBRARIES),-l$(library)) \ -Wl,-rpath,../lib/ diff --git a/Makefile.config b/Makefile.config new file mode 100644 index 00000000..7934f728 --- /dev/null +++ b/Makefile.config @@ -0,0 +1,17 @@ +# define third-party library paths +# CHANGE YOUR CUDA PATH IF IT IS NOT THIS +CUDA_DIR := /usr/local/cuda +# CHANGE YOUR CUDA ARCH IF IT IS NOT THIS +CUDA_ARCH := -arch=sm_30 +# CHANGE YOUR MKL PATH IF IT IS NOT THIS +MKL_DIR := /opt/intel/mkl +# CHANGE YOUR MATLAB PATH IF IT IS NOT THIS +# your mex binary should be located at $(MATLAB_DIR)/bin/mex +MATLAB_DIR := /usr/local +# PUT ALL OTHER INCLUDE AND LIB DIRECTORIES HERE +INCLUDE_DIRS := /usr/local/include /usr/include/python2.7 \ + /usr/local/lib/python2.7/dist-packages/numpy/core/include +LIBRARY_DIRS := /usr/lib /usr/local/lib + +# DEFINE THE CXX PATH +CXX=/usr/bin/g++ diff --git a/Makefile.icsi b/Makefile.icsi deleted file mode 100644 index a612cb8b..00000000 --- a/Makefile.icsi +++ /dev/null @@ -1,111 +0,0 @@ -# The makefile for caffe. Extremely hack. -PROJECT := caffe -TEST_GPUID := 1 - -# The target static library and shared library name -NAME := lib$(PROJECT).so -STATIC_NAME := lib$(PROJECT).a -# All source files -CXX_SRCS := $(shell find src/caffe ! -name "test_*.cpp" -name "*.cpp") -CU_SRCS := $(shell find src/caffe -name "*.cu") -TEST_SRCS := $(shell find src/caffe -name "test_*.cpp") -GTEST_SRC := src/gtest/gtest-all.cpp -EXAMPLE_SRCS := $(shell find examples -name "*.cpp") -PROTO_SRCS := $(wildcard src/caffe/proto/*.proto) -# The generated files for protocol buffers -PROTO_GEN_HEADER := ${PROTO_SRCS:.proto=.pb.h} -PROTO_GEN_CC := ${PROTO_SRCS:.proto=.pb.cc} -PROTO_GEN_PY := ${PROTO_SRCS:.proto=_pb2.py} -# The objects that are needed to generate the library -CXX_OBJS := ${CXX_SRCS:.cpp=.o} -CU_OBJS := ${CU_SRCS:.cu=.cuo} -PROTO_OBJS := ${PROTO_GEN_CC:.cc=.o} -OBJS := $(PROTO_OBJS) $(CXX_OBJS) $(CU_OBJS) -# program and test objects -EXAMPLE_OBJS := ${EXAMPLE_SRCS:.cpp=.o} -TEST_OBJS := ${TEST_SRCS:.cpp=.o} -GTEST_OBJ := ${GTEST_SRC:.cpp=.o} -# program and test bins -EXAMPLE_BINS :=${EXAMPLE_OBJS:.o=.bin} -TEST_BINS := ${TEST_OBJS:.o=.testbin} - -# define third-party library paths -CUDA_DIR := /u/vis/software/cuda-5.5 -CUDA_ARCH := -arch=sm_30 -MKL_DIR := /u/vis/software/dist/intel/composerxe-2011.3.174/mkl - -CUDA_INCLUDE_DIR := $(CUDA_DIR)/include -CUDA_LIB_DIR := $(CUDA_DIR)/lib64 $(CUDA_DIR)/lib -MKL_INCLUDE_DIR := $(MKL_DIR)/include -MKL_LIB_DIR := $(MKL_DIR)/lib $(MKL_DIR)/lib/intel64 - -# define inclue and libaries -# We put src here just for gtest -INCLUDE_DIRS := ./src ./include /u/vis/software/include /usr/local/include $(CUDA_INCLUDE_DIR) $(MKL_INCLUDE_DIR) -LIBRARY_DIRS := /usr/lib /u/vis/software/lib /usr/local/lib $(CUDA_LIB_DIR) $(MKL_LIB_DIR) -LIBRARIES := cudart cublas protobuf glog mkl_rt curand \ - leveldb snappy pthread opencv_core opencv_highgui -WARNINGS := -Wall - -COMMON_FLAGS := $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) -CXXFLAGS += -pthread -fPIC -O2 $(COMMON_FLAGS) -NVCCFLAGS := -Xcompiler -fPIC -O2 $(COMMON_FLAGS) -LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) \ - $(foreach library,$(LIBRARIES),-l$(library)) - -NVCC = $(CUDA_DIR)/bin/nvcc $(NVCCFLAGS) $(CPPFLAGS) $(CUDA_ARCH) - -.PHONY: all test clean distclean linecount examples distribute - -all: $(NAME) $(STATIC_NAME) test examples - -linecount: clean - cloc --read-lang-def=caffe.cloc src/caffe/ - -test: $(TEST_BINS) - -examples: $(EXAMPLE_BINS) - -$(NAME): $(PROTO_OBJS) $(OBJS) - $(CXX) -shared $(OBJS) -o $(NAME) $(LDFLAGS) $(WARNINGS) - -$(STATIC_NAME): $(PROTO_OBJS) $(OBJS) - ar rcs $(STATIC_NAME) $(PROTO_OBJS) $(OBJS) - -runtest: test - for testbin in $(TEST_BINS); do $$testbin $(TEST_GPUID); done - -$(TEST_BINS): %.testbin : %.o $(GTEST_OBJ) $(STATIC_NAME) - $(CXX) $< $(GTEST_OBJ) $(STATIC_NAME) -o $@ $(LDFLAGS) $(WARNINGS) - -$(EXAMPLE_BINS): %.bin : %.o $(STATIC_NAME) - $(CXX) $< $(STATIC_NAME) -o $@ $(LDFLAGS) $(WARNINGS) - -$(OBJS): $(PROTO_GEN_CC) - -$(EXAMPLE_OBJS): $(PROTO_GEN_CC) - -$(CU_OBJS): %.cuo: %.cu - $(NVCC) -c $< -o $@ - -$(PROTO_GEN_CC): $(PROTO_SRCS) - protoc --proto_path=src --cpp_out=src --python_out=src $(PROTO_SRCS) - mkdir -p include/caffe/proto - cp $(PROTO_GEN_HEADER) include/caffe/proto/ - -clean: - @- $(RM) $(NAME) $(STATIC_NAME) $(TEST_BINS) $(EXAMPLE_BINS) - @- $(RM) $(OBJS) $(TEST_OBJS) $(EXAMPLE_OBJS) - @- $(RM) $(PROTO_GEN_HEADER) $(PROTO_GEN_CC) $(PROTO_GEN_PY) - @- $(RM) -rf build - -distclean: clean - -distribute: all - mkdir build - cp -r include build/ - mkdir build/bin - cp $(EXAMPLE_BINS) build/bin - mkdir build/lib - cp $(NAME) build/lib - cp $(STATIC_NAME) build/lib -- 2.39.2