-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
46 lines (33 loc) · 1.32 KB
/
Makefile
File metadata and controls
46 lines (33 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
CXX = g++
CXXFLAGS = -std=c++11 -O3 -pthread
EXE = image_processor
DEMO = demo.exe
DEMO_DIR = demo
LIBRARY = imageio
SRC_DIR = src
INCL_DIRS = include
LIB_DIR = lib
OBJ_DIR = obj
SOURCES = $(filter-out $(SRC_DIR)/main.cpp, $(wildcard $(SRC_DIR)/*.cpp))
OBJFILES := $(patsubst $(SRC_DIR)/%.cpp, $(OBJ_DIR)/%.o, $(SOURCES))
DEMOOBJFILES := $(patsubst $(DEMO_DIR)/%.cpp, $(OBJ_DIR)/%.o, $(wildcard $(DEMO_DIR)/*.cpp))
INCL_PARAMS := $(foreach dir, $(INCL_DIRS), -I$(dir))
all: $(EXE)
$(EXE): lib $(OBJ_DIR)/main.o
$(CXX) $(CXXFLAGS) -Wl,-rpath,$(LIB_DIR) $(OBJ_DIR)/main.o $(INCL_PARAMS) -L$(LIB_DIR) -l$(LIBRARY) -o $@
lib: $(OBJFILES)
$(CXX) $(CXXFLAGS) $(OBJFILES) $(INCL_PARAMS) -shared -o $(LIB_DIR)/lib$(LIBRARY).so
$(OBJ_DIR)/main.o: $(SRC_DIR)/main.cpp
$(CXX) $(CXXFLAGS) $(INCL_PARAMS) -c $< -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CXX) $(CXXFLAGS) -fPIC $(INCL_PARAMS) -c $< -o $@
$(OBJ_DIR)/demo.o: $(DEMO_DIR)/demo.cpp
$(CXX) $(CXXFLAGS) $(INCL_PARAMS) -c $< -o $@
demo: lib $(DEMOOBJFILES)
$(CXX) $(CXXFLAGS) -Wl,-rpath,$(LIB_DIR) $(DEMOOBJFILES) $(INCL_PARAMS) -L$(LIB_DIR) -l$(LIBRARY) -o $(DEMO)
clean:
rm -f obj/*.o lib/*.so $(EXE) $(DEMO)
canny: $(EXE)
./$(EXE) input/statue.png canny-edge-detect output/statue_canny_edge.png 0.1 0.25
gaussian: $(EXE)
./$(EXE) input/statue.png gaussian-blur output/statue_gaussian.png