51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|  | PROJECT_NAME:= evaluate | ||
|  | 
 | ||
|  | # config ----------------------------------
 | ||
|  | OPENCV_VERSION := 3 | ||
|  | 
 | ||
|  | INCLUDE_DIRS := include | ||
|  | LIBRARY_DIRS := lib /usr/local/lib | ||
|  | 
 | ||
|  | COMMON_FLAGS := -DCPU_ONLY | ||
|  | CXXFLAGS := -std=c++11 -fopenmp | ||
|  | LDFLAGS := -fopenmp -Wl,-rpath,./lib | ||
|  | BUILD_DIR := build | ||
|  | 
 | ||
|  | 
 | ||
|  | # make rules -------------------------------
 | ||
|  | CXX ?= g++ | ||
|  | BUILD_DIR ?= ./build | ||
|  | 
 | ||
|  | LIBRARIES += opencv_core opencv_highgui opencv_imgproc  | ||
|  | ifeq ($(OPENCV_VERSION), 3) | ||
|  | 		LIBRARIES += opencv_imgcodecs | ||
|  | endif | ||
|  | 
 | ||
|  | CXXFLAGS += $(COMMON_FLAGS) $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) | ||
|  | LDFLAGS +=  $(COMMON_FLAGS) $(foreach includedir,$(LIBRARY_DIRS),-L$(includedir)) $(foreach library,$(LIBRARIES),-l$(library)) | ||
|  | SRC_DIRS += $(shell find * -type d -exec bash -c "find {} -maxdepth 1 \( -name '*.cpp' -o -name '*.proto' \) | grep -q ." \; -print) | ||
|  | CXX_SRCS += $(shell find src/ -name "*.cpp") | ||
|  | CXX_TARGETS:=$(patsubst %.cpp, $(BUILD_DIR)/%.o, $(CXX_SRCS)) | ||
|  | ALL_BUILD_DIRS := $(sort $(BUILD_DIR) $(addprefix $(BUILD_DIR)/, $(SRC_DIRS))) | ||
|  | 
 | ||
|  | .PHONY: all | ||
|  | all: $(PROJECT_NAME) | ||
|  | 
 | ||
|  | .PHONY: $(ALL_BUILD_DIRS) | ||
|  | $(ALL_BUILD_DIRS): | ||
|  | 	@mkdir -p $@ | ||
|  | 
 | ||
|  | $(BUILD_DIR)/%.o: %.cpp | $(ALL_BUILD_DIRS) | ||
|  | 	@echo "CXX" $< | ||
|  | 	@$(CXX) $(CXXFLAGS) -c -o $@ $< | ||
|  | 
 | ||
|  | $(PROJECT_NAME): $(CXX_TARGETS) | ||
|  | 	@echo "CXX/LD" $@ | ||
|  | 	@$(CXX) -o $@ $^ $(LDFLAGS) | ||
|  | 
 | ||
|  | .PHONY: clean | ||
|  | clean: | ||
|  | 	@rm -rf $(CXX_TARGETS) | ||
|  | 	@rm -rf $(PROJECT_NAME) | ||
|  | 	@rm -rf $(BUILD_DIR) |