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